lib

Clone Tools
  • last updated 9 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- namespace changes: mostly due to marketing reasons, the naming of the top-level namespace changed from "xotcl2" to "next". reasons: xotcl is hard to pronounce for beginners, sounds like "exotic" (but who wants to program in an exotic language) has a certain stigma of strange namings (e.g. "instproc"), is seen as a precursor of tcloo, the top-level namespace ::xotcl2:: is not very nice either, the separation of framework and language is not clear.

We have now:

::next (the new object system, former ::xotcl2)

::next::core (framework, primitives)

::xotcl (former xotcl1)

- "::xotcl::use" no longer needed, use Tcl standard mechanisms instead

(e.g. "package req next"; "package req XOTcl", "namespace import ::next*")

  1. … 42 more files in changeset.
- first checkin of doc-tools

    • -0
    • +541
    ./doc-tools.xotcl
  1. … 3 more files in changeset.
- fix a potential ordering problem with cyclic dependencies created by namespace import commands

  1. … 2 more files in changeset.
- change library/lib/make.xotcl to xotcl2

  1. … 2 more files in changeset.
- xotcl 1.6.6: one more cases for the packaging, where we want to load xotcl1 not 2

  1. … 4 more files in changeset.
- xotcl 1.6.6: make sure to load always xotcl 1 versions when needed - xotcl 1.6.6: make compilation clean when compiled with assertions on

  1. … 18 more files in changeset.
- handling of minimal object systems. For example, the following three command create an object system around ::object and ::class ...

::xotcl::createobjectsystem ::object ::class

::xotcl::alias ::class + ::xotcl::cmd::Class::create

::xotcl::alias ::object - ::xotcl::cmd::Object::destroy

... where no internal message dispatch are used (e.g. no

constructor "init", and where just two methods ("+" and "-")

are used to create and destroy objects

- extended regression test

  1. … 2 more files in changeset.
- provide prefix for internally called methods to distinguish between methods called on objects or classes

  1. … 5 more files in changeset.
- eliminated XOTE___UNKNOWN - renamed __unknown to requireobject

  1. … 5 more files in changeset.
- created new functions: ObjectSystemFree(), ObjectSystemAdd(), ObjectSystemsCheckSystemMethod(), ObjectSystemsCleanup(), GetObjectSystem(), CallDirectly() for better separation of systems. We keep track which essential system methods are defined and which which methods are potentially overloaded.

  1. … 2 more files in changeset.
- defined "info is" as alias of "::xotcl::objectproperty"

  1. … 2 more files in changeset.
- renamed old "xotcl::is" -> "xotcl::objectproperty" - renamed old "xotcl::is2" -> "xotcl::is" - we have now is tests for objects in ::xotcl::objectproperty ::xotcl::objectproperty $obj object ::xotcl::objectproperty $obj class ::xotcl::objectproperty $obj baseclass ::xotcl::objectproperty $obj metaclass ::xotcl::objectproperty $obj type XXXX ::xotcl::objectproperty $obj hasmixin XXXX

- "::xotcl::is" is the higher level command,

supporting string contstraints "e.g. upper", user defined type checkers

and as well object properties (every parameter type supported for object

and method paameter). Examples:

::xotcl::is $obj object ?-type $type? ?-hasmixin $mixin?

::xotcl::is $cl class ?-type $type? ?-hasmixin $mixin?

::xotcl::is obj metaclass

::xotcl::is $num integer

::xotcl::is $string upper

- implemented 2nd level reference counting for paramObjType

  1. … 6 more files in changeset.
- Unified on c-level "info class-mixin-of" and "info object-mixin-of" to "info mixinof ?-scope all|object|class? ?-closure? ?pattern? The former "info class-mixin-of" is now "info mixinof -scope class" - adapted xotcl1 layer for this change - extended experimental ::xotcl::is2 to handle flags -type and -hasmixin ::xotcl::is2 <obj> object ?-type <type>? ?-hasmixin <class>?

  1. … 8 more files in changeset.
- support for method modifier "object", "protected" and "public" for method "attribute". One can use now e.g.

Class create C {

:attribute a

:public attribute b

:protected attribute c

:object attribute A

:public object attribute B

:protected object attribute C

}

"protected" and "public" refers to the registered accessor functions

  1. … 4 more files in changeset.
- fix namespace in method "case" of "Test" - use Test->case for all tests in parameter.xotcl

  1. … 1 more file in changeset.
- new "Test case" method with initblock

  1. … 1 more file in changeset.
- new methods for MetaSlot to factor out common code: + slotName (to ease name-construction, care about slot container) + createFromParameterSyntax: essentially move from ::xotcl::Attribute to the meta class - test environment: make sure to avoid confusions between the "namespace" method and command

  1. … 3 more files in changeset.
* provide compatibility with 8.6b1

  1. … 6 more files in changeset.
- renamed "::xotcl::is ... mixin ..." to "::xotcl::is ... hasmixin ..." (affects parametertypes as well)

  1. … 6 more files in changeset.
- move methodParameter checkers for "mixin", "baseclass" and "metaclass" to predefined. - deactivated checkMethods in gentclAPI.decls and in xotcl.c

  1. … 6 more files in changeset.
- refactor Slot class hierarchie - new methods in ObjectParameterSlot "toParameterSyntax" and "createFromParameterSyntax" - some more cleanup - removed legacy syntax for "-parmeters"

  1. … 7 more files in changeset.
- cleanup of legacy stuff in slot management. * merged InfoSlot and InterceptorSlot into RelationSlot * get rid of legacy "mixin set ...." command - renamed "parameterSlot" into "methodParameterSlot" to avoid potential confusions

  1. … 6 more files in changeset.
- define everything concerning basic slot setup in a single "namespace eval ::xotcl {...}" - undefine ::xotcl::createBootstrapAttributeSlots after this block - fix default DefaultSuperClass() with isMeta==1 in cases, where we are already at the root meta class - use "-parameter" in xotcl1 instead of createBootstrapAttributeSlots

  1. … 3 more files in changeset.
- added "multivalued" to parameter options - made error message produced by XOTclObjErrType look like Tcl's error messages - extended regression test - test utility: changed "?" to return error msg in case of error

  1. … 4 more files in changeset.
- don't run multiple queries in "??" - fixed last changes to regression test as usual

  1. … 2 more files in changeset.
- added instance variable arg for interfacing with parameter interface. "arg" acts like a clientdata for type converter - added multiple parameter options handling to method "parameter" to obtain similar functionality from object parameters as from method parameters - added conveniance method "??" to test to indicated test that should fail with an error - added severy type converters to achieve same object type checking as in ::xotcl::is (these are currently in the regression test, should move finally into predefined.xotcl) - extended regression test

  1. … 3 more files in changeset.
- experimental change of resolver name prefix char from dot to single colon

  1. … 15 more files in changeset.
- extended migration guide - defined eval in predefined via "-nonleaf", used at various places - added "info mixinof ?-scope all|object|class? ?pattern?", dropped "object-mixin-of" and "class-mixin-on" from registerd method - extended regression test - xotcl1: make "-volatile" invoked via unknown behave correctly

  1. … 5 more files in changeset.
- use uplevel in slot add/delete to evalute in calling namespace (for not fully qualified object names) - determine namespace in test method "?" to allow its execution in an "namespace eval" - added regression tests

  1. … 6 more files in changeset.
- added option "objectsystems" to ::xotcl::configure to obtain the currently defined object systems - added option "baseclass" to ::xotcl::is to check, whether a class is a baseclass of an object system (root class or root meta-class of object system) - changed result of "... info methods -methodtype scripted" to return only truely scripted methods (no aliases) - some more cleanup in regression tests - first version of serializer for xotcl1 + xotcl2

  1. … 9 more files in changeset.