Opened 17 years ago
Closed 17 years ago
#53 closed defect (fixed)
Research switching from using slot's :type specifier to our own metaclass
Reported by: | Slava Akhmechet | Owned by: | Slava Akhmechet |
---|---|---|---|
Priority: | medium | Milestone: | 0.1 |
Component: | weblocks | Version: | pre-0.1 |
Keywords: | slot type renderer | Cc: |
Description
Note, some implementations (like OpenMCL) enforce slot type specializations. If we set a slot's type as integer, OpenMCL will not let us assign nil. Currently we rely on default values of data types to be nil, but in case of OpenMCL we're forced to set the default to some integer value. For some types of data (like age, for example) this leads to weird 'default' age of zero. In the future, we may want to rely on boundp instead of checking for nil.
Additionally, some implementations (CLISP) don't return the value of type declaration as is: if we define a new type alias 'age', set the type for a slot, and then query the type of the slot, we may get back a different value equivalent to age.
In light of these facts, we may want to consider creating a new metaclass for datatypes and using a new slot specifier instead of 'type'.
Initforms are no longer required. Weblocks is now changed to fully rely on typespecs for input validation. Direct-slot-object always returns type declaration as it was declared.