serializer.tcl

Clone Tools
  • last updated 18 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- serializer: * pertain perobjectdispatch and keepcallerself in serializer * extend regression test

  1. … 2 more files in changeset.
- serializer: * make [::Serializer deepSerialize -ignoreVarsRE "" $o] behave like [::Serializer deepSerialize $o], since learn@wu depends on that, and a value for ignoreVarsRE of empty looks more like an omitted value than a regular expression, that should match everything. * extended regression test

  1. … 2 more files in changeset.
- tests/serialize.test: Added some basic regression tests, in particular to challenge the filter options provided by Serializer->deepSerialize() and Serializer->all(). - Included a test for commit 595e6a2. - Along the line, two minor issues where fixed: 1) Set Serializer->ignore() to public, otherwise the various external message sends to this method would fail; 2) Object-serialize() did not distinguish between serialising a per-object or per-class container properly; as a consequence, per-object containers were not restored at all. Add a test covering this.

  1. … 2 more files in changeset.
- library/serialize/serializer.tcl: Due to the split between serializer and object system serializer, the ignore settings (passed as object variables, i.e., ignoreVarRE) got lost. This is fixed now ...

- library/serialize/serializer.tcl: Remove uses of ::nsf::method::property to handle "returns", now redundant because "returns" are properly reported by "info method definition"

- Use directdispatch to query existing traces without the need of an extra method. By this change, the serializer works in constant time independent on the number of existing objects.

  1. … 1 more file in changeset.
- rename "info method handle /methodName/" into "info method registrationhandle /methodName/" - rename "info method origin /methodName/" into "info method definitionhandle /methodName/" - added "info method origin" to return the target of an alias (or empty)

  1. … 19 more files in changeset.
- fix old typos (many thanks to Victor Guerra for noticing it)

- renamed "nsf::method::dispatch" to "nsf::directdispatch" - renamed "nsf::object::dispatch" to "nsf::dispatch"

  1. … 16 more files in changeset.
- nsf.c: experimental implementation of ::nsf::method::dispatch

  1. … 8 more files in changeset.
- minor cleanup

  1. … 2 more files in changeset.
- nx.tcl * renamed "info parameter name" to "info parameter names" (since it returns a list of names) * renamed "info parameter name" to "info parameter names" (since it returns a list of names) * renamed "info slots" to "info slot objects" * additional method "info slot definition" * additional method "info slot name" * additional method "info properties" (alias to "info slot definition") * removed "info parameter slot" * use term "noaccessor" and "noconfig" to deactivate accessors or object-parameters in property definitions * don't show slots with noconfig in "info parameter names" * don't show slots with noconfig in "info parameter definition" * renamed slot property "configparam" to "config" * renamed "::nsf::methods::class::info::slots" to "::nsf::methods::class::info::slotobjects" * additional public method ObjectParameterSlot.getPropertyDefinition * updated and extended regression test

  1. … 14 more files in changeset.
- nx.tcl * renamed "attribute" to "property" * renamed "defaultAttributeCallProtection" to "defaultPropertyCallProtection" * renamed "nx::Attribute" to ""nx::VariableSlot" * renamed "BootStrapAttributeSlot" to "BootStrapVariableSlot" * renamed "createBootstrapAttributeSlots" to "createBootstrapVariableSlots" * removed method attributes * implemented old attributes definition in xotcl2 as method "parameter"

  1. … 32 more files in changeset.
- nsf.c: * added flag "-array" to nsf::var::set such we have now "::nsf::var::set ?-array? object varName ?value?" With "-array", nsf::var::set behaves like "array get" or "array set" (on instance variables) * use "::nsf::var::set -array" in serializer symmetrically to scalar case * extended regression test

  1. … 6 more files in changeset.
- regularized more nsf::* names: renamed "nsf::createobjectsystem" => "nsf::objectsystem::create" renamed "nsf::unknown" => "nsf::object::unknown" renamed "nsf::dispatch" => "nsf::object::dispatch"

  1. … 17 more files in changeset.
- nsf.c: * report only fully initialized slot objects via "info slots" to avoid chicken-egg problem during method "objectparameter" * added flag -array to ::nsf::var::exists to check, whether the variable is an array (to avoid "o eval {array exists ...}" in the serializer. * provided flags to VarExists instead of multiple args * don't add new pointer entries in Nsf_PointerTypeLookup()

  1. … 9 more files in changeset.
- nsf.c: added cmd "::nsd::method::registered /handle/" that returns the object on which the method identified by the handle was registered, or empty. - extended regression test

  1. … 5 more files in changeset.
- nsf.c: * handling of same named per-object and provided slots for Class objects * per-object slots are saved now under <obj>::per-object-slot::* * returning correct results when per-object slots are used * removed obsolete functions: NsfObjectListFree(), NsfObjectListAdd() * removed obsolete type NsfObjects * transformed ComputeSlotObjects() into a more generic AddSlotObjects() that can handle per-object slots as well - nx.tcl: * generalized slot object handling. * extended regression test

  1. … 6 more files in changeset.
- serializer: * prefix warnings to ease tracking of warnings * some cleanup for handling aliased methods

- nsf: renamed nsf::isobject to nsf::object::exists - nsf: renamed nsf::qualify to nsf::object::qualify

  1. … 17 more files in changeset.
* Hopefully the last big naming change: Instead of writing "C class-object method foo {} {...}" one can write now "C class method foo {} {...}" to define a class method named "foo" for class "C". This naming change became possible by defining XOTcl's "class" (and "superclass") as object parameter only. To change a class of an object o, one has to use "o configure -class NEWCLASS". The term "object-class" looks alien to language beginners, the term "class" is much more straightforward. Changing classes or superclasses is seldomly used by typicall application programs.

For already existing nx scripts, changing "object-class" into

class should be straightforward.

* various documentation updates (migration guide, nx tutorial)

  1. … 22 more files in changeset.
- serializer: catch for object-level alias apparently not needed anymore (search for ns_cache_flush) - silence compilation when compiled without dtrace

  1. … 2 more files in changeset.
- changed names of var handling commands in nsf: ::nsf::existsvar => ::nsf::var::exists ::nsf::importvar => ::nsf::var::import ::nsf::setvar => ::nsf::var::set

  1. … 12 more files in changeset.
- changed named of method handling commands in nsf: ::nsf::methodproperty => ::nsf::method::property ::nsf::method => ::nsf::method::create ::nsf::methoddelete => ::nsf::method::delete ::nsf::alias => ::nsf::method::alias ::nsf::forward => ::nsf::method::forward ::nsf::setter => ::nsf::method::setter (updated regression test, docs, ...)

  1. … 24 more files in changeset.
- small optimization

- serializer: fixed a problem with object level alias

- serializer.tcl: reactivated methodSerialize (used in api-browser of OpenACS)

  1. … 1 more file in changeset.
- serializer.tcl: export nsf::procs via "Serializer all"

- make usage of nx in nx::serializer explicit

- serializer: updated serializer to avoid calls to "setter" - extended regression test

  1. … 1 more file in changeset.