nsf.c

Clone Tools
  • last updated 14 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- remove useless distinction from the past

nsf.c: - remove redundant definition - reduce variable scope - make sure to follow nonnull assumptions

  1. … 1 more file in changeset.
XXX

  1. … 2 more files in changeset.
nsf.c: - remove redundant null check for object and add assertion

nsf.c: - provide error messages for ambiguous abbreviations - extend regression test (now 5460 tests)

  1. … 2 more files in changeset.
nsf.c: - dropped unused object::info::is - renamed ::nsf::methods::class::info::filtermethods -> ::nsf::methods::class::info::filters ::nsf::methods::object::info::filtermethods -> ::nsf::methods::object::info::filters ::nsf::methods::class::info::mixinclasses -> ::nsf::methods::class::info::mixins ::nsf::methods::object::info::mixinclasses -> ::nsf::methods::object::info::mixins

  1. … 6 more files in changeset.
nx.tcl: - make all __* system methods in nx redefine-protected - let "nsf::configure objectsystem" return handles and protections as well

  1. … 4 more files in changeset.
nsf.c: - allow abbreaviated nonpos args - change name of relationslot "superclass" to "superclasses". (part of a planned change to use plural for setvalued parameters, "info superclasses" and similar changes for mixins/filters will probably follow)

  1. … 7 more files in changeset.
nsf.c: - define means to protect "undefined" internally-directly called methods __alloc and __dealloc in nx. This is achieved mostly via a an additional value in a method declaration in ::nsf::objectsystem::create. Example: -class.dealloc {__dealloc ::nsf::methods::class::dealloc 1} - extend regression test

  1. … 9 more files in changeset.
nsf.c: - relax the meaning of noleadingdash to allow negative numbers - rename noleadingdash to e.g. nodashalnum

  1. … 11 more files in changeset.
- remove debugging output

- cleanup, reduce verbosity

nsf.c: - checked, that all CallDirectly() cases, where method is dispatched (no direct call) are covered by the regression tests - avoid double memcpy() in dispatch recreate by using ObjectDispatch() rather than CallMethod() - removed memcopy() in call-directy for "create" - some more cleanup

  1. … 1 more file in changeset.
nsf.c: parameter passing reform - don't pass full argument list for filteing methods calle further methods from C (such as new/create/... ) to allow processing of e.g. "--" in "new" to separate arguments to "new" cleanly from arguments passed to "create". Now we can use e.g. "C new -- -childof 123" in case class C has a property "childof". - extend c-generator to accept option "-objv0" to pass the original "objv[0]" to the called command. Since we had previously "allargs", we have to pass the objv[0] now differently - more thorough checking ISOBJ(someObj) macro for asserts (use "assert(ISOBJ(someObj))" instead of just "assert(someObj)") - extend regression test

  1. … 11 more files in changeset.
- fix parse context initialization

- fix shotdown comparison

- don't invalidate class-level param caches during shutdown

  1. … 1 more file in changeset.
- add assertions for class colorings

- use 3-argument version of NsfMethodNamePath()

  1. … 3 more files in changeset.
Adding to the state of the method-path introspection reform; introducing CallStackGetFrame() which can also be used to implement CallStackGetTopFrame

  1. … 1 more file in changeset.
- fix name paths in error messages triggered from ArgumentParse()

  1. … 5 more files in changeset.
- move NsfMethodNamePath() out of NsfUnexpectedArgumentError() and NsfUnexpectedNonposArgumentError()

  1. … 1 more file in changeset.
- move NsfMethodNamePath() out of NsfObjWrongArgs()

  1. … 2 more files in changeset.
Saving away the ad hoc changes to fix method-path generation

  1. … 6 more files in changeset.
nsf.c: - added option "-dependent" to "info subclass" - extended regression test

  1. … 4 more files in changeset.
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

  1. … 2 more files in changeset.
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()

  1. … 1 more file in changeset.
- added experimental code feature CYCLIC_MIXIN_ERROR

  1. … 2 more files in changeset.
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).

  1. … 1 more file in changeset.
- 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.

  1. … 2 more files in changeset.