nsf

Clone Tools
  • last updated 9 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Saving away the ad hoc changes to fix method-path generation

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

- add target for cppcheck with same arguments as for compilation

Removing traces of nxdoc

Fixing an example script for changes in getter/setter reform

- updated migration guide and tutorial to reflect recent changes

    • -16
    • +12
    /doc/next-tutorial/next-tutorial.html
    • -14
    • +11
    /doc/next-tutorial/next-tutorial.txt
- minor cleanup

- improve spelling

- update of TODO and regression test

    • -0
    • +286
    /tests/nsf-cmd.test
- adapt mixinof.test to the additional information - transform mixinof.test to newer style regression test with autoated object deletion

- add test file nsf-cmd.test

- ignore generated .txt files

nx.tcl: - removed /cls/ info configure parameters /cls/ info configure /cls/ info syntax Use e.g. "/cls/ info lookup parameters create" instead

- nsf.c: - Let "/cls/ info mixinof -closure" return as well implicit mixin classes to make it easier to determine class dependencies.

Example:

nx::Class create M0

nx::Class create M1 -superclass M0

nx::Class create M2 -superclass M1

nx::Class create C

nx::Class create D -superclass C

C mixin add M2

# M2 is mixed into C, and implicitely into D

#

# Since M2 is a subclass of M1, classes C and D depend as well

# on M1 and M0, as seen in the heritage:

? {C info heritage} ":M2 ::M1 ::M0 ::nx::Object"

? {D info heritage} ":M2 ::M1 ::M0 ::C ::nx::Object"

# previously, only "M2 info mixinof -closure" showed the

# mixin relations, even with "-closure", while M1 and M0 did not.

? {M2 info mixinof -closure} "::C ::D"

# now these show the same relations (in this example).

? {M1 info mixinof -closure} "::C ::D"

? {M0 info mixinof -closure} "::C ::D"

- handle ensembles in info nx::help