[hmm, it seems my previous message didn't go to the list by mistake]
On 22/02/07, Luís Oliveira luismbo@gmail.com wrote:
There's no rush. We should get this right. I put my changes here: http://common-lisp.net/~loliveira/darcs/cffi-newtypes/. It includes some updated documentation.
Here are some random thoughts after a few days of using this.
- There's no direct way of doing inheritance with enum, bitfield, union or struct types. One can use composition, of course, so it's not too terrible.
- No inheritance for define-parse-method either. One way to minimize the effects of this would be to make the :simple-parser option smarter that would, for instance, look at the class' initargs and automatically add those to the parser's lambda list as keyword arguments.
- I'm not sure I like the name :simple-parser. Maybe :default-parser.
- The common case of defining new types with translations but no arguments got slightly more verbose. Not sure if it's worth worrying about this.
- I suppose we should export foreign-string-type, foreign-boolean-type, foreign-pointer-type, etc, so the users can extend these.
- That reminds that :actual-type might be misleading coming from the previous system. Specifying :actual-type :string won't inherit any of foreign-string-type's translators, for instance.