A Document to register features that I still need to implement, plus, if I need to, logs for my development logic
- 2.0 Macros
- 2.0.1 defclass
- 2.0.2 defgeneric
- 2.0.3 defmethod
- 2.0.4 defbuiltin
- 2.1 Classes
- 2.2 Instances
- 2.3 Slot Access
- 2.4 Generic Functions and methods
- 2.5 Pre-defined Generic Functions and Methods
- 2.6 MetaObjects
- 2.7 Class Options
- 2.8 Readers and Writers
- 2.9 Generic Function Calls
- 2.10 Multiple Dispatch
- 2.11 Multiple Inheritance
- 2.12 Class Hierarchy
- 2.13 Class Precedence List
- 2.14 Built-In Classes
- 2.15 Introspection
- 2.16 Meta-Object Protocols
- 2.16.1 Class Instantiation Protocol
- 2.16.2 The Compute Slots Protocol
- 2.16.3 Slot Access Protocol
- 2.16.4 Class Precedence List protocol
- 2.17 Multiple Meta-Class Inheritance
- 2.18 Extensions
- 2.18.1 Meta-Objects for slot definitions
- 2.18.2 CLOS-like method combination for generic functions
- 2.18.3 CLOS or Dylan's strategy for computing the class precedence list
- 2.18.4 Additional Metaobject protocols
- Make
check_polymorphism
andcheck_class
a JOS method - Make
is_class
- Make
non-applicable-method
predefined - If generic function does not exist when method created, auto generate it
- Compute class precedence list
- Compute slots
- Refactor so that defclass uses instantiation protocol
- Refactor so that defgeneric uses instantiation protocol
- Refactor so that defmethod uses instantiation protocol
- Add support for unions
- Add call previous method
- Improve how comparisons between slots is made so that I dont need to override hash
- Check and Improve introspection assertions
- Ability to call new without naming properties (in order?)
- Create a Julia library?
- Replace
getfield(o, :class_of_reference)
withclass_of(o)
- Solve warning on running tests "Warning: Assignment to
Person
in soft scope is ambiguous because a global variable by the same name exists:Person
will be treated as a new local. Disambiguate by usinglocal Person
to suppress this warning orglobal Person
to assign to the existing global variable." - Update branch protection
- Uniformize naming conventions