xotcl.c

Clone Tools
  • last updated 17 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- use size_t where appropriate - added notnull annotations

  1. … 3 more files in changeset.
- provide error messages for [objectproperty ... type ...] - replace 0 by NULL in calls to GetClassFromObj() - extended regression test

  1. … 4 more files in changeset.
- copied infoObjectMethod and infoClassMethod decls as comments to xotcl.c, aligned order of method definitions

  1. … 1 more file in changeset.
- new function CheckVarName() to check for colons in instance variable names - unified name-checking in "nx::var import|exists|set" - extended regression test

  1. … 2 more files in changeset.
- don't allow names with namespace separators or colon prefix in importvar/instvar - provide error message, when method (proc scope) is not found - fix array boundaries for looping on variables in importvar/instvar - extended regression test

  1. … 3 more files in changeset.
- provide spacing in conditional assignments

- fix cleanup of subclasses of metaclasses, keeping metaclass property (thanks to Stefan for digging into this)

  1. … 1 more file in changeset.
- provide explicit error message stating the "substdefault" is not allowed for setters - don't add "substdefault" a second time, in case it was already used - never add "substdefault" to methodopts - extended regression test

  1. … 5 more files in changeset.
- changed prefix from "::next::" to "::nx"

  1. … 21 more files in changeset.
- 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. … 48 more files in changeset.
- undid part of last commit

- xotcl 1.6.6: initialize value

- backported part of the deletion logic of xotcl 2.0 to 1.6.6 to avoid a potential crash with volatile objects

  1. … 1 more file in changeset.
- ::xotcl:.configure: added option "keepinitcmd" to flag, whether or not initcmds should be kept as instance variables

  1. … 6 more files in changeset.
- Handle cases, where objects/classes are created with the name of preexiting namespaces. Cases, where pre-exisitng namespaces contained classes/objects lead to problems, since xotcl did not see the object/classes of the pre-exiting namespace as children of the new object/class.

  1. … 3 more files in changeset.
- backport change from 2.0 to 1.6.6 concerning cylcic dependencies through namespace imported commands

- fix a potential ordering problem with cyclic dependencies created by namespace import commands

  1. … 2 more files in changeset.
- xotcl 1.6.6: backport of memory fixes from xotcl 2.0

- add check for optional match arguments in tcl stub generator - fix potential memory leaks all "definitely losts" from valgrind (except 24 bytes from Tcl_PkgRequire) gone

  1. … 3 more files in changeset.
- minor leak cleanup

- make valgrind + system malloc (instead of tcl malloc) run cleanly

  1. … 2 more files in changeset.
- replace hash-lookup in namespace in ObjectHasChildren() by pointer lookup to reduce namespace dependency. - fix memcopy size

  1. … 1 more file 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. … 19 more files in changeset.
- remove "buffer" from compiled var structures - remove xotcl1 dependency from aol-tcl - removed conditional var table creation by assertion - make clean compile with assertions turned on

  1. … 4 more files in changeset.
- add verbosity for varname copying

- rename CallStackPush() to CscInit() - rename CallStackPop() to CscFinish()

  1. … 1 more file in changeset.
- get rid of reminder of tcl 8.4 compatiblity and remove range of ifdefs, such as PRE85, FORWARD_COMPATIBLE, TCL85STACK, CANONICAL_ARGS, USE_COMPILED_VAR_RESOLVER

  1. … 5 more files in changeset.
- removed EXPERIMENTAL_CMD_RESOLVER

- 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. … 4 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.