nsf

Clone Tools
  • last updated 14 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Editing TODO

Add doc fragment on new

Adding missing info submethod docs for Class, document -dependent flag, and method create

- simplify test

- use 3-argument version of NsfMethodNamePath()

Add basic test for unexpected-#-args error in ensembles

Adding to the state of the method-path introspection reform; introducing CallStackGetFrame() which can also be used to implement CallStackGetTopFrame

- fix name paths in error messages triggered from ArgumentParse()

- move NsfMethodNamePath() out of NsfUnexpectedArgumentError() and NsfUnexpectedNonposArgumentError()

- no need to call NsfMethodNamePath in NsfArgumentError()

- move NsfMethodNamePath() out of NsfUnexpectedArgumentError() and NsfUnexpectedNonposArgumentError()

- move NsfMethodNamePath() out of NsfObjWrongArgs()

Saving away the ad hoc changes to fix method-path generation

nsf.c: - added option "-dependent" to "info subclass" - extended regression test

Working on info submethods for Class

- white-space change

nsf.c - base MixinInvalidateObjOrders() on DependentSubClasses() and avoid the need of using a separate hash table for class-mixin handling. The new implementation is several times faster and improves the speed of the functions CleanupDestroyClass(), SuperclassAdd() and NsfRelationClassMixinsSet(). Adding a class-mixin to ::xotcl::Object in OpenACS is more than 4x faster. - remove obsolete function MixinResetOrderForInstances() - rename ResetOrderOfClassesUsedAsMixins() to ResetOrderOfObjectsUsingThisClassAsObjectMixin() - used consistenlty DependentSubClasses() instead of TransitiveSubClasses() for invalidations. - extend regression test

- fix a few more cases, where required accessor method "get" was missing

- omit warnings, when value of "expected" looks like a non-positional parameter

nsf.c: - improve performance of MixinInvalidateObjOrders() by about 30% by recomping the list of the dependent classes over and over again, since MixinInvalidateObjOrders() iterates over the full list already. - Document NsfRelationClassMixinsSet() and add nonnull declarations and the usual assertions()

- added experimental code feature CYCLIC_MIXIN_ERROR

nsf.c: - new function DependentSubClasses() to determine all classes that inherit from a given class. The result extend TransitiveSubClasses() by including class mixin relationships. - simplify NsfParameterCacheClassInvalidateCmd() by using the new function DependentSubClasses(). With the new implementation, NsfParameterCacheClassInvalidateCmd() is as efficient as before without to MostGeneralSuperclass optimization (but being complete now) when working on the root classes (an more efficient on subclasses).

- fixed error message for forward ... onerror and method paths. The command "C object mixin" returns now "::C object mixin add|clear|delete|get|guard|set" and not "::C mixin add|clear|delete|get|guard|set" as before.

- add ".add" file for mongodb interface

    • -0
    • +1
    /library/mongodb/pkgIndex.add
- use cget interface

- rename nsf::parameter:invalidate::classcache -> nsf::parameter::cache::classinvalidate nsf::parameter:invalidate::objectcache -> nsf::parameter::cache::objectinvalidate reasons: (a) remove single colon inside the name, (b) put verb to the end

- use functions IsRootClass(), IsRootMetaClass() and IsBaseClass() to access object/class properties - add gcc attribute "pure"

nsf.c: - cleanup of NsfParameterInvalidateClassCacheCmd(): performance improvements. After the fixing of indirect mixin validation, performance of invalidation went up by a factor of 5. At least, in some important cases (invalidation of rootclasses like nx::Object / xotcl::Object), we are again on the same level as before (actually slightly faster).

- reduce variable scopes

- fix error message