xotcl

Clone Tools
  • last updated 17 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- nsf.c: * renamed old flag "-order" of "info mixin classes" to "-heritage" since it computes same heritage as in "info heritage" (but potentially for a list of classes) * added compatibility layer for xotcl2 * added lost option "-heritage" to "/cls/ info mixin classes" (was only there for "/obj/ info mixin classes") * extended regression test

  1. … 7 more files in changeset.
- nsf.c: * ensure that explicit per-object-mixins are kept at the front in "info heritage" order and in "info precedence" when classes are added as POMs and PCMs * extended regression test

  1. … 3 more files in changeset.
- nsf.c: * added NsfClassListNoDup() to allow just single inserts * added NsfClassListPrint() for debugging * info heritage returns no duplicates * added prototype for NsfNoCurrentObjectError() * report "no current object" when no object is passed to a method. * code cleanup - extended regression test

  1. … 6 more files in changeset.
- test.tcl: * don't export Test per-default * define Test as nx::Test * make Test parameter count 1 the default, change to higher numbers where needed

  1. … 13 more files in changeset.
- 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.
* provided a fast path implementation for "defaultmethod" * provided default system methods for "init", "defaultmethod" and "unknown" * provided handles for system methods "alloc", "dealloc", "recreate", and "defaultmethod" * strip in dispatch invocations of "unknown" potental leading colons * removed c-level implementation of init again, since scripted one can be used now as well in registration of createobjectsystem * reduced verbosity * added defintions such that these methods can be loaded via ::nsf::method::require ::nx::Object unknown

  1. … 6 more files in changeset.
* reactivated "configure", since we plan to use it more prominently * added a configure flag for "class" * removed method "class" (should be used via "/obj/ configure -class ...")

  1. … 4 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. … 23 more files in changeset.
- nsf::relation: fixed error message when receiving and invalid class for relation type "class"

  1. … 2 more files in changeset.
- update slot uml diagram - fixed incorrect (unwanted) call to unknown that caused creation of objects names __unknown when classes could not be resolved

  1. … 4 more files in changeset.
- nx.tcl: * full rewrite of slot machinerie, much simpler structure * relation handling via parameter aliases instread of pseudo converter * mixinclass SlotOptimizer removed * new class BootStrapAttributeSlot

- ConvertToRelation() and handling of parametertype "relation"

- Make CompiledColonVarFetch() more robust in case of

half initialized objects (create vartable on the fly if needed)

- allow empty parameter options in parameter parser

- removed nsf::parametersfromslots (became simple, part of objectparameter now)

- removed hardcoded objectparameter (attributes, volatile and noinit)

- updated regression test

  1. … 7 more files in changeset.
- removed c-implementation of method vwait, it was replaced by "vwait :varName". We had to allow flag TCL_GLOBAL_ONLY in InterpColonVarResolver(), since Tcl vwait implementation calls it with that flag. - added a scripted implementation for vwait in xotcl2

  1. … 7 more files in changeset.
- create slots via MetaSlot

- don't mix object systems

- xotcl2.tcl: defined ::xotcl::MetaSlot

- library/lib/doc-tools.tcl: Some fixes, including adjusting @class.inherited() to return only doc entities of classes which are part of the same project as the inheritee. - library/lib/doc-tools.tcl: Integrated an xodoc-compat infrastructure and provided for processing xodoc packages (see processor.process=@package()). - tests/doc.test: Now also serves a nxdoc port of the XOTcl-langref package - library/xotcl/doc/langRef.xotcl: equipped with an empty namespace declaration (to please pkg_mkIndex.tcl) and import ::xotcl::@ by default (for convenience).

  1. … 2 more files in changeset.
- library/lib/doc-tools.tcl: Added a link renderer for Tcl commands, pointing to the tcl.tk online reference; usage: <<tclcmd /cmd/>>. - library/nx/nx.nxd: Fixed glossary references pointing to mixin classes. - glossary.html.tmpl: Made the tmpl more robust against the non-existence of glossary entries. - method.html.tmpl: Made Type and Protection fully conditional - doc-tools.tcl: added a @project.is_validated attribute to reflect the validation status of a given project. this should later turn into a derived property. - langRef.xotcl: added a missing </tt> closing tag, to avoid tt pollution of the remaining document space.

  1. … 5 more files in changeset.
- removed unneded functions: NsfComputePrecedence(), NsfComputeDependents(), Nsf_SetVar2Ex(), NsfOSetInstVar(), Nsf_ObjGetVar2(), NsfOGetInstVar(), qNsfCreateObject() - removed unneeded external declarations: NsfClassListAdd() NsfClassListFree() - make extern declarations explicit - grouped most extern definitions together - improved documentation - moved variable declarations to inner scopes - removed warning from cppcheck()

    • -0
    • +5
    ./library/xml/TclExpat-1.1/readfilemap.c
  1. … 7 more files in changeset.
- Experimental Object-System specific resolver in method bodies (allows resolving to the "right" next, self, etc. without namespace imports/paths) - deactivated automatic namespace path copying for child-objects - extended regression test

  1. … 4 more files in changeset.
- "/obj/ info method parametersyntax /method/": return results of ::nsf::parametersyntax in case, the parametersyntax cannot obtained from a parameter definition (e.g. the method is a forwarder to a tcl cmd).

  1. … 4 more files in changeset.
- made error messages more consistent - improved error messages for "returns" and "nsf::is" (omit parameter name)

  1. … 11 more files in changeset.
- further cleanup of error procs: eliminated NsfObjErrArgCnt() - improve error message, when too many arguments are passed

  1. … 6 more files in changeset.
- fix messages when test fails

- make sure to load the local version of the old XOTcl documentation toolkit

- new printf-style error message generator: NsfPrintError() - simplified error handling: removed NsfVarErrMsg() and NsfErrMsg() and replaced it by NsfPrintError()

    • -30
    • +26
    ./library/store/XOTclGdbm/xotclgdbm.c
    • -29
    • +27
    ./library/store/XOTclSdbm/xotclsdbm.c
  1. … 8 more files in changeset.
- fixed bug with required last object parameter without provided value - extended regression test

  1. … 4 more files in changeset.
- introduced a few forms of multiplicty * 0..1 allow empty value * 0..* list, can be empty (equivalent to 0..n) * 1..* list, cannot be empty (equivalent to 1..n) - deprecate multivalued in parameter specs in favor of multiplicty - deprecate allowempty in parameter specs in favor of multiplicty - adjust regression test

  1. … 6 more files in changeset.
- make "... info children ?pattern?" compliant with XOTcl 1; if pattern contains no wildcard and is no absolute path, nsf completes it. (eg. Object create o; Object create o:x; o info children x" will return ::o::x) - extended regression test

  1. … 2 more files in changeset.