xotcl

Clone Tools
  • last updated 11 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
nx::shell reform: Provide an alternative nx::shell impl (nx::shell2), used by all four shell scripts. nx::shell2 builds on Tcl's event loop, rather than while + update. This avoids blocking the Tk main window (update). In addition, nx::shell2 is closer to Tcl's native shells (e.g., no extra lines on enter, catches EOF).

  1. … 3 more files in changeset.
xotcl2: - added "-returns" flag to XOTcl's instprocs/procs and methods, very similar to "-returns" in nx - extended serializer to handle "-returns" flag - extended regression test

  1. … 2 more files in changeset.
- bump version number of XOTcl to 2.1

  1. … 1 more file in changeset.
- turned all for-loops controlled over a nonnull value into while loops - updated TODO, copyright notices, version number

  1. … 10 more files in changeset.
Slot trace reform: - redesign of slot interface of traces from * variables contains cmds and variable references to * slot specific methods with the same interface as slot-setters - new: * specify flag "-trace" with a list of values "get", "set", "default" * when flag is set, a trace will be registered calling methods value=get obj variable value=set obj variable value value=default obj variable on the slot (actually the first two are identical with the methods used for slot-defined accessors) - updated regression test * new flag "-notrace" for "nsf::var::set" and "nsf::var::get"

  1. … 9 more files in changeset.
xotclsh, xowish: Make sure minor versions >2.1 are accepted

nx::shell: Have xotclsh and xowish use nx::shell

  1. … 3 more files in changeset.
- added flags "-debug" and "-deprecated" to XOTcl 2 "instproc", "proc", "instforward" and "forward" methods

  1. … 2 more files in changeset.
serializer: - added handling of "-debug" and "-deprecated" in serializer - allow export of nsfprocs via "exportMethods declaration" in order to keep otherwise excluded cmds in the result. this allows us to keep nsf::debug::* or nsf::deprecated definitions in the blueprint in OpenACS. - hardened serializer (use e.g. "::namespace" instead of "namespace" when there is a potential conflict with a method named "namespace", prefer nsf::directdispatch, etc.) - extended regression test

  1. … 3 more files in changeset.
- Fixed a bug that disallowed the combination of valuecmd and valuechangedcmd for a single property (many thanks to Zoran for pointing this out)

Removed implicit substdefault for configure parameters in nx:

- The syntax of substdefault for method parameters and configure

parameters was different. For method parameters, it was necessary to

specify :substdefault per parameter to activate it, for configure

parameter is was based in the XOTcl tradition on the content of the

default (whether it contains [...]) One problem is, that there was

no easy way to turn this feature off. If one wants to provide a

script block as a default, it was necessary to escape all square

brackets.

- Now, in nx, one has to specify :substdefault for configure

parameter explicitly as well, syntax for configure and method

parameters is the same.

- XOTcl 2.0 keeps implicit substdefaults (backward compatible)

- fix bug: never try to substdefault, when there is no default given.

  1. … 4 more files in changeset.
- new command nsf::method::forward::property in analogy to nsf::method::property for reading+writing introspection of forwarders (important for serializer, when different target objects are specified, to map the per-object forwarder) - extended regression test - bumped version number of serializer to 2.1

  1. … 9 more files in changeset.
- provide actual pkgIndex files

  1. … 1 more file in changeset.
Bump version numbers in nx.tcl and xotcl2.tcl; adjust license statements

  1. … 1 more file in changeset.
Use revised interpreter directive throughout

  1. … 1 more file in changeset.
Fix the remaining shebangs

  1. … 1 more file 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.
- improve spelling

nsf.c, gentclAPI.tcl: - new argument types "virtualobjectargs" and "virtualclassargs" for context-specific argument resolutions: when a context object is provided, arguments of type "virtualobjectargs" are determined based on the slots applicable for the object (like "... lookup ..."), arguments of type "virtualclassargs" are resolved against a class. These types are used as follows: /obj/ configure /virtualobjectargs/ /cls/ create /name/ /virtualclassargs/ /cls/ recreate /name/ /virtualclassargs/ /cls/ new ?-childof /obj/? /virtualclassargs/ This new feature allows us to provide better error messages and to make much of the "... info ... configure parameter ..." infrastructure much less important. - For "virtualclassargs" we need the functionality to obtain from the C-Code based on a class the configure parameters applicable to objects of this class. - add argument "-context ..." to "cmd::info" to pass the context object (so far the only place where the context-object is used) - object system configuration parameters changes: new: -class.configureparameter new: -object.configureparameter removed: -class.objectparameter

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

  1. … 5 more files in changeset.
nsf.c - force again literal "-guard" in a "mixinreg" type to avoid potential confusions - Base nsfRelationSet for mixins on cmds rather than TclObjs to avoid confusions and duplication of guard detection logic - Add interp to NsfMixinregGet() and NsfFilterregGet() to be able to return error messages - return more error message from mixinreg converter - provide at least minimal support for "funny class names" (i.e. containing spaces) - FinalObjectDeletion: don't enforce namespace = 1 for cases with wierd namespace deletion order - extended regression test

  1. … 5 more files in changeset.
- name parameter option "slotset" instead of "slotassign"

  1. … 10 more files in changeset.
- renamed nsf::relation to nsf::relation::set and added nsf::relation::get in accordance with nsf::var::get

  1. … 17 more files in changeset.
nx.tcl: - reworked error message generation of slot-forwarder (list all available slot methods with prefix value=)

xotcl2:

- use xotcl::RelationSlot instead of nx::Relationslot in xotcl2

(we can more value=assign here).

  1. … 3 more files in changeset.
xotcl2: - use value=set instead of value=assign - simplify "-parameter" implementation - add setters for "name", "domain", and "default" to xotcl::Attribute for backward compatibility

  1. … 3 more files in changeset.
nx.tcl, xotcl2.tcl: - use value=* as names for interally called and forwarder-called accessor methods - disallow "assign" for nx::variableSlots

  1. … 11 more files in changeset.
nx.tcl: - use set/get/add as slot methods for get/configure/incremental operations - demangle slots for nx/xotcl2 further

xotcl2:

- use assign/get/add as slot methods for get/configure/incremental

operations

- use object system configuration for -slot.get and -slot.set

  1. … 8 more files in changeset.
- enforce usage of "get" for all slots in nx - TODO: check, what in detail "parameter" in xtocl2 inherit from nx::variableslot (e.g. needsForwarder?)

  1. … 4 more files in changeset.
nx.tcl: - remove setter methods from BootstrapVariableSlots - reducing interface of BootstrapVariableSlots by setting methods protected

  1. … 4 more files in changeset.
- finalize dropping of setter methods for nx

  1. … 9 more files in changeset.
- add flag "-onerror" to nsf::forward::method to handle errors during dispatch of a forwarder (not all error messags of forwarder are already transformed) - added log-level Info which prints always, e.g. for "-verbose" flag of forwarder - drop setter-rule from properties (use always forwarder) - drop "/obj/ /prop/" and "/obj/ /prop/ /value/" in favor of "/obj/ /prop/ get" and "/obj/ /prop/ assign /value/" to achieve better orthogonality with e.g. incremental properties

  1. … 16 more files in changeset.