Class ClassName
Index: TODO =================================================================== diff -u -rb252a0a0d40f1125c6ad5fa4269bfb500bfd034f -r80f8424525f6c3d14ab4755be446758559f810a3 --- TODO (.../TODO) (revision b252a0a0d40f1125c6ad5fa4269bfb500bfd034f) +++ TODO (.../TODO) (revision 80f8424525f6c3d14ab4755be446758559f810a3) @@ -2426,8 +2426,10 @@ - added first version of "nsf::methoddelete" - extended regression test - updated TODO + - fixed potential crash with -param:switch - added "... info method exists ...." +- updated migration guide TODO: @@ -2444,8 +2446,6 @@ {-argName "methodName" -required 1 -type tclobj} - implemented above suggestion; two more issues: - * fix crash for non-existing per-object procs - * add "... method exists ...." * document "nsf::methoddelete" (or find a better name for it) * extend regression test Index: doc/next-migration.html =================================================================== diff -u -r46bcd7f85b54540391f426a5ce5d70876bd9aead -r80f8424525f6c3d14ab4755be446758559f810a3 --- doc/next-migration.html (.../next-migration.html) (revision 46bcd7f85b54540391f426a5ce5d70876bd9aead) +++ doc/next-migration.html (.../next-migration.html) (revision 80f8424525f6c3d14ab4755be446758559f810a3) @@ -573,8 +573,8 @@ (e.g. defined in nx.tcl). The Next Scripting Framework is shipped with three language definitions, containing NX and XOTcl 2. Most of the existing XOTcl 1 programs can be used without modification in the -Next Scripting Framework. The Next Scripting Framework requires Tcl -8.5 or newer.
+Next Scripting Framework by using XOTcl 2. The Next Scripting +Framework requires Tcl 8.5 or newer.Although NX is fully scripted (as well as XOTcl 2), our benchmarks show that scripts based on NX are often 2 or 4 times faster than the counterparts in XOTcl 1. But speed was not the primary focus on the @@ -665,7 +665,7 @@
-19 +18
Class ClassName
Object ObjectName
# Method "alias" not available
/obj/ set /varName/ ?value?
set /varName/ [/obj/ set /otherVar/]
/obj/ exists varName
# Parameters only available at class level
# Required parameter not available
# Multiplicity for parameter not available
# n.a.
# n.a.
/cls/ instfilter ... -/cls/ instfilterguard filter /condition/
/cls/ filter ... +/cls/ filter ... /cls/ filterguard ...
/obj/ filter ... -/obj/ filterguard filter /condition/
/obj/ filter ... +/obj/ filterguard filter /condition/
/cls/ info instcommands ?pattern?
/cls/ info instparametercmd ?pattern?
/cls/ info instprocs ?pattern?
# n.a.
/cls/ info methods -methodtype alias ?pattern?
/cls/ info methods -methodtype alias ?pattern?
# n.a.
# n.a.
# n.a.
/obj/ info commands ?pattern?
/obj/ info parametercmd ?pattern?
/obj/ info procs ?pattern?
# n.a.
/obj/ info methods -methodtype alias ?pattern?
/obj/ info methods -methodtype alias ?pattern?
# n.a.
# n.a.
# n.a.
/cls/ info commands ?pattern?
/cls/ info parametercmd ?pattern?
/cls/ info procs ?pattern?
# n.a.
/cls/ class-object info methods -methodtype alias ?pattern?
/cls/ class-object info methods -methodtype alias ?pattern?
# n.a.
# n.a.
# n.a.
/obj|cls/ info [inst](commands|procs|parametercmd) ?pattern?
/obj/ info method exists /methodName/ +/obj/ info methods /methodName/
/obj|cls/ info [inst](commands|procs|parametercmd) ?pattern?
/cls/ ?class-object? info method exists /methodName/ +/cls/ ?class-object? info methods /methodName/
In order to obtain for an object the set of artefacts defined in the class hierarchy, NX uses info lookup. One can either lookup methods (via info lookup methods) or slots (via info lookup slots). The @@ -3340,8 +3667,10 @@
/obj/ info methods ?pattern?
# n.a.
# n.a.
/obj/ procsearch /methodName/
/obj/ filtersearch /methodName/
/obj/ info lookup filter /methodName/ +/obj/ info lookup filter /methodName/ # Returns method-handle
XOTcl contains a long list of info subcommands for different kinds of methods and for obtaining more detailed information about these methods.
# n.a.
/cls/ info instbody /methodName/
/cls/ info instargs /methodName/
/cls/ info instnonposargs /methodName/
/cls/ info instdefault /methodName/
/cls/ info instpre /methodName/
/cls/ info instpost /methodName/
# n.a.
# n.a.
/obj/ info body /methodName/
/obj/ info args /methodName/
/obj/ info nonposargs /methodName/
/obj/ info default /methodName/
/obj/ info pre /methodName/
/obj/ info post /methodName/
# n.a.
/obj/ info filter ?-guards? ?-order? ?pattern?
/obj/ info filter ?-guards? ?-order? ?pattern?
/obj/ info filterguard /name/
/obj/ info filter guard /name/
/obj/ info filter guard /name/
/cls/ info filter ?-guards? ?-order? ?pattern?
/cls/ info filter ?-guards? ?-order? ?pattern?
/cls/ class-object info filter methods \ +/cls/ class-object info filter methods \ ?-guards? ?-order? ?pattern?
/cls/ info filterguard /name/
/cls/ class-object info filter guard /name/
/cls/ class-object info filter guard /name/
/cls/ info filter methods \ +/cls/ info filter methods \ ?-guards? ?-order? ?pattern?
/cls/ info instfilterguard /name/
/cls/ info filter guard /name/
/cls/ info filter guard /name/
/obj/ info mixin ?-guards? ?-order? ?pattern?
/obj/ info mixinguard /name/
/cls/ info mixin ?-guards? ?-order? ?pattern?
/cls/ info mixinguard /name/
/cls/ info instmixinguard /name/
# n.a.
# n.a.
# n.a.
# n.a.
# n.a.
# n.a.
/cls/ info mixinof ?-closure? ?pattern?
/cls/ info instmixinof ?-closure? ?pattern?
# n.a.
/obj/ istype /sometype/
/obj/ ismixin /cls/
/obj/ isclass ?/cls/?
/obj/ ismetaclass /cls/
# n.a.
/obj/ isobject /obj/
self
self
self class
self proc
self callingclass
self callingobject
self callingproc
self calledclass
self calledproc
self isnextcall
self next
self filterreg
self callinglevel
self activelevel
/obj/ requireNamespace
# n.a.
/obj/ check /checkoptions/
/obj/ info check
/obj/ invar /conditions/
/obj/ info invar
/cls/ instinvar /conditions/
/cls/ info instinvar
/cls/ invar /conditions/
/cls/ info invar