Index: doc/Announce2.0.0 =================================================================== diff -u -rf934951db464db1a6f39ac98290ecde17a466cd7 -r37fe2bc49a8594e767ddeb0eabbe47f8c348513a --- doc/Announce2.0.0 (.../Announce2.0.0) (revision f934951db464db1a6f39ac98290ecde17a466cd7) +++ doc/Announce2.0.0 (.../Announce2.0.0) (revision 37fe2bc49a8594e767ddeb0eabbe47f8c348513a) @@ -11,7 +11,7 @@ happened in NX and, therefore, on the NSF scripting level, without the need to modify the NSF C layer. The implementation of XOTcl 2 has changed very little. The Next Scripting Framework was tested with Tcl -8.5.17 and Tcl 8.6.2 on Linux, Mac OS X, and in Windows environments +8.5.17 and Tcl 8.6.2 on Linux, macOS, and in Windows environments (MinGW, VC12). Below are the most notable differences in NSF/NX 2.0 final relative to Index: doc/Announce2.0b5 =================================================================== diff -u -rf934951db464db1a6f39ac98290ecde17a466cd7 -r37fe2bc49a8594e767ddeb0eabbe47f8c348513a --- doc/Announce2.0b5 (.../Announce2.0b5) (revision f934951db464db1a6f39ac98290ecde17a466cd7) +++ doc/Announce2.0b5 (.../Announce2.0b5) (revision 37fe2bc49a8594e767ddeb0eabbe47f8c348513a) @@ -14,7 +14,7 @@ happened in NX and, therefore, on the NSF scripting level, without the need to modify the NSF C layer. The implementation of XOTcl 2 has changed very little. The Next Scripting Framework was tested with Tcl -8.5.14 and Tcl 8.6.0 on Linux, Mac OS X, and in windows environments +8.5.14 and Tcl 8.6.0 on Linux, macOS, and in windows environments (MinGW, VC11). This beta-release is supposed to be the last release before Index: doc/Announce2.1.0 =================================================================== diff -u -rdea81850a408e8484970561ddc553ff8c51e5906 -r37fe2bc49a8594e767ddeb0eabbe47f8c348513a --- doc/Announce2.1.0 (.../Announce2.1.0) (revision dea81850a408e8484970561ddc553ff8c51e5906) +++ doc/Announce2.1.0 (.../Announce2.1.0) (revision 37fe2bc49a8594e767ddeb0eabbe47f8c348513a) @@ -6,7 +6,7 @@ This is a maintenance release. Since the release of 2.0.0, there have been more than 450 commits to our code repository. The Next Scripting Framework was tested in 192 build configurations with Tcl 8.5.19 and -Tcl 8.6.6 on Linux and Mac OS X (both using recent gcc and +Tcl 8.6.6 on Linux and macOS (both using recent gcc and clang). Common build configurations have been tested under Windows (Windows 2012 Server: VS15 & MSVC 19, MinGW). Index: doc/example-scripts/rosetta-singleton.html =================================================================== diff -u -rc4f449cb353be812ba6502ef8e9587e87881f59b -r37fe2bc49a8594e767ddeb0eabbe47f8c348513a --- doc/example-scripts/rosetta-singleton.html (.../rosetta-singleton.html) (revision c4f449cb353be812ba6502ef8e9587e87881f59b) +++ doc/example-scripts/rosetta-singleton.html (.../rosetta-singleton.html) (revision 37fe2bc49a8594e767ddeb0eabbe47f8c348513a) @@ -788,7 +788,7 @@

A Singleton Meta-class

Alternatively, we can follow a more generic approach and define a -metaclass which allows to define several application classes as +metaclass which allows one to define several application classes as singletons. The metaclass has the most general metaclass nx::Class as superclass. In contrary to the example obove, the create method is not defined as a class method, but it will be inherited to its Index: doc/example-scripts/rosetta-sudoku.html =================================================================== diff -u -rc4f449cb353be812ba6502ef8e9587e87881f59b -r37fe2bc49a8594e767ddeb0eabbe47f8c348513a --- doc/example-scripts/rosetta-sudoku.html (.../rosetta-sudoku.html) (revision c4f449cb353be812ba6502ef8e9587e87881f59b) +++ doc/example-scripts/rosetta-sudoku.html (.../rosetta-sudoku.html) (revision 37fe2bc49a8594e767ddeb0eabbe47f8c348513a) @@ -976,7 +976,7 @@ :Solve $hSudoku $x $y [$hSudoku validchoices $x $y] } - # Get all the allocated numbers for each square in the the row, column, and + # Get all the allocated numbers for each square in the row, column, and # region containing $x,$y. If there is only one unallocated number among all # three groups, it must be allocated at $x,$y :create ruleOnlyChoice { Index: doc/next-migration.txt =================================================================== diff -u -r5c0a03007041ac414ccc3ff2bc6783db1a01d13d -r37fe2bc49a8594e767ddeb0eabbe47f8c348513a --- doc/next-migration.txt (.../next-migration.txt) (revision 5c0a03007041ac414ccc3ff2bc6783db1a01d13d) +++ doc/next-migration.txt (.../next-migration.txt) (revision 37fe2bc49a8594e767ddeb0eabbe47f8c348513a) @@ -136,7 +136,7 @@ . *Value Checking:* .. The Next Scripting Language supports checking of the _input - parmeters_ and the _return values_ of scripted and C-implemented + parameters_ and the _return values_ of scripted and C-implemented methods and commands. .. NX provides a set of predefined checkers (like e.g. +integer+, @@ -153,7 +153,7 @@ . *Scripted Init Blocks:* The Next Scripting Language provides _scripted init blocks_ for objects and classes (replacement for the - dangerous dash "-" mechanism in XOTcl that allows to set variables + dangerous dash "-" mechanism in XOTcl that allows one to set variables and invoke methods upon object creation). . *More Conventional Naming for Predefined Methods:* The naming of @@ -1191,7 +1191,7 @@ ---------------- |====================== -In general, NX allows to create variables and properties with and +In general, NX allows one to create variables and properties with and without accessor methods. The created accessor methods might be +public+, +protected+ or +public+. When the value +none+ is provided to +-accessor+, no accessor will be created. This is actually the @@ -1331,7 +1331,7 @@ In XOTcl all configure parameters were _optional_. Required parameters have to be passed to the constructor of the object. -NX allows to define _optional_ and _required_ configure parameters (as +NX allows one to define _optional_ and _required_ configure parameters (as well as method parameters). Therefore, configure parameters can be used as the single mechanism to parametrize objects. It is in NX not necessary (and per default not possible) to pass arguments to the @@ -1475,7 +1475,7 @@ |[source,tcl] ---------------- -# Define parameter with an an +# Define parameter with an # attribute-specific type checker Class Person -slots { @@ -1845,7 +1845,7 @@ definition of all methods via +info method definition+ and one can get an manual-like interface description via +info method syntax+. In addition, NX provides means to query the type of -a method, and NX allows to filter by the type of the method. +a method, and NX allows one to filter by the type of the method. ==== List sub- and superclass relations @@ -2931,7 +2931,7 @@ ==== Changing classes and superclasses -NX does not define the methods +class+ and +superclass+ (like XOTcl), but allows to +NX does not define the methods +class+ and +superclass+ (like XOTcl), but allows one to alter all object/class relations (including class/superclass/object-mixin/...) +nsf::relation::set+. The class and superclass can be certainly queried @@ -2950,7 +2950,7 @@ ==== Overwriting procs/methods with objects and vice versa NSF is now more conservative on object/method creation. In contrary to -XOTcl 1 NSF does not allow to redefined a pre-existing command +XOTcl 1 NSF does not allow one to redefined a pre-existing command (e.g. "set") with an object and vice versa. Like in XOTcl 1, preexisting objects and classes con be redefined (necessary for reloading objects/classes in an running interpreter). Index: doc/next-tutorial/next-tutorial.txt =================================================================== diff -u -r8f15a5f377b42426e7d1cedea575ae356d9368da -r37fe2bc49a8594e767ddeb0eabbe47f8c348513a --- doc/next-tutorial/next-tutorial.txt (.../next-tutorial.txt) (revision 8f15a5f377b42426e7d1cedea575ae356d9368da) +++ doc/next-tutorial/next-tutorial.txt (.../next-tutorial.txt) (revision 37fe2bc49a8594e767ddeb0eabbe47f8c348513a) @@ -618,7 +618,7 @@ === Variables and Properties -In general, NX does not need variable declarations. It allows to +In general, NX does not need variable declarations. It allows one to create or modify variables on the fly by using for example the Tcl commands +set+ and +unset+. Depending on the variable name (or more precisely, depending on the variable name's prefix consisting of @@ -1825,7 +1825,7 @@ Value constraints are specified as parameter options in the parameter specifications. The parameter specification +x:integer+ defines +x+ as -a required positional parmeter which value is constraint to an +a required positional parameter which value is constraint to an integer. The parameter specification +o:object,optional+ shows how to combine multiple parameter options. The parameter +o+ is an optional positional parameter, its value must be an object (see @@ -2327,7 +2327,7 @@ handlers also a means to dynamically create objects and classes, when these are referenced. This happens e.g. when superclasses, mixins, or parent objects are referenced. This mechanism can be used to implement -e.g. lazy loading of these classes. Nsf allows to register multiple +e.g. lazy loading of these classes. Nsf allows one to register multiple unknown handlers, each identified by a key (a unique name, different from the keys of other unknown handlers). @@ -2360,7 +2360,7 @@ } -------------------------------------------------- -The Next Scripting Framework allows to add, query, delete and list unknown handlers. +The Next Scripting Framework allows one to add, query, delete and list unknown handlers. [[xmp-unknown-registration]] .Listing {counter:figure-number}: Unknown Handler registration Index: doc/tutorial2.html =================================================================== diff -u -rc4f449cb353be812ba6502ef8e9587e87881f59b -r37fe2bc49a8594e767ddeb0eabbe47f8c348513a --- doc/tutorial2.html (.../tutorial2.html) (revision c4f449cb353be812ba6502ef8e9587e87881f59b) +++ doc/tutorial2.html (.../tutorial2.html) (revision 37fe2bc49a8594e767ddeb0eabbe47f8c348513a) @@ -78,7 +78,7 @@

  • Object specific methods
  • Refining the behavior of objects and classes
  • Stack of integers -
  • Class specifc methods +
  • Class specific methods
  • Introductory Overview Example: Soccer Club @@ -346,7 +346,6 @@ % Stack create s1 ::s1 % s1 push a -a % s1 push b b % s1 push c @@ -434,7 +433,6 @@ % Stack create s2 -mixin Safety ::s2 % s2 push a -a % s2 pop a % s2 pop @@ -486,7 +484,7 @@ } -

     
    Class specifc methods

    +

     
    Class specific methods

    In extended object Tcl, classes are objects as well (objects with certain properties; we will come to this later in more @@ -3057,7 +3055,7 @@ className info instmixin ?className2?

    -It returns the list of all instmixins of the the class, if className2 +It returns the list of all instmixins of the class, if className2 is not specified, otherwise it returns 1, if className2 is a mixin of the object, or 0 if not.

    @@ -3691,7 +3689,7 @@ Person slot projects -

    This object structure can be used to to query and modify the slot +

    This object structure can be used to query and modify the slot properties or to add additional methods to the slot objects. One application is for example to used slot-specific methods for checking slot values, as shown in the next section. @@ -3773,8 +3771,7 @@

    For the most common simple cases with single valued attributes, where neither setter or getter are redefined, XOTcl optimizes the slot -access function and replaces the delegation to the slot object by the -the C-level implementation of instparametercmd. +access function and replaces the delegation to the slot object by the C-level implementation of instparametercmd.

    Note that it is possible to subclass Attribute (e.g. in order to store more properties for attributes, like when attributes @@ -3931,7 +3928,7 @@

    The initcmd is executed only once, when the variable is read the first time. For later reads of the variable contents, the values are returned. -

    A value command (valuecmd) of a slot is similar to a a +

    A value command (valuecmd) of a slot is similar to a init command, except that it is executed whenever the value of the variable is read. A value command can be used e.g. to implement live updates for variables or for abstracting from sql sequences or the @@ -4226,7 +4223,7 @@ method should be prefixed with the specified string (to avoid name clashes), -earlybinding means that the function pointer of the specified command (callee) is take at invocation time (should only -be done for (builtin) commands inplemented in C), and +be done for (built-in) commands inplemented in C), and -default provides a means for providing default methods when none are specified.

    @@ -4446,8 +4443,7 @@

    The following examples show a few usages of the positional arguments in the forwarder. The forwarders f1 to f5 are created, followed by -one or more usages. The first argument of the usage is the call to -to forewarder, the second argument is the result. +one or more usages. The first argument of the usage is the call to forewarder, the second argument is the result.

       ###########################################
    @@ -4920,7 +4916,7 @@
     the current namespace because there are no name-clashes with the
     commands defined by other extensions.

    -

    Consider you want to perform a deeper integration of an other +

    Consider you want to perform a deeper integration of another extension and XOTcl because you want to benefit from XOTcl's object system. For instance, you might want to introduce composite TK widgets (sometimes called mega-widgets) as classes and inherit from these Index: library/xotcl/doc/Announce-1.1.1 =================================================================== diff -u -re8715774bf274fbeadabf08a5a0777a968f71148 -r37fe2bc49a8594e767ddeb0eabbe47f8c348513a --- library/xotcl/doc/Announce-1.1.1 (.../Announce-1.1.1) (revision e8715774bf274fbeadabf08a5a0777a968f71148) +++ library/xotcl/doc/Announce-1.1.1 (.../Announce-1.1.1) (revision 37fe2bc49a8594e767ddeb0eabbe47f8c348513a) @@ -16,8 +16,8 @@ CHANGES relative to 1.1.0 are: - Improved portability - * for Mac OS X (many thanks to Daniel Steffen) - * freebsd 4.9 (many thanks to Marc Spitzer) + * for macOS (many thanks to Daniel Steffen) + * FreeBSD 4.9 (many thanks to Marc Spitzer) - configure can run outside of xotcl-tree and can install to a different directory. Example: Index: library/xotcl/doc/Announce-1.5.0 =================================================================== diff -u -re8715774bf274fbeadabf08a5a0777a968f71148 -r37fe2bc49a8594e767ddeb0eabbe47f8c348513a --- library/xotcl/doc/Announce-1.5.0 (.../Announce-1.5.0) (revision e8715774bf274fbeadabf08a5a0777a968f71148) +++ library/xotcl/doc/Announce-1.5.0 (.../Announce-1.5.0) (revision 37fe2bc49a8594e767ddeb0eabbe47f8c348513a) @@ -196,7 +196,7 @@ + added new method for ::xotcl::Object named "contains": This method is essentially a value added back-port - of the OpenACS version. It allows to create a nested + of the OpenACS version. It allows one to create a nested object structure with little syntactic overhead. See tutorial or language reference for more details. Index: library/xotcl/doc/tutorial.html =================================================================== diff -u -rc4f449cb353be812ba6502ef8e9587e87881f59b -r37fe2bc49a8594e767ddeb0eabbe47f8c348513a --- library/xotcl/doc/tutorial.html (.../tutorial.html) (revision c4f449cb353be812ba6502ef8e9587e87881f59b) +++ library/xotcl/doc/tutorial.html (.../tutorial.html) (revision 37fe2bc49a8594e767ddeb0eabbe47f8c348513a) @@ -72,7 +72,7 @@

  • Object specific methods
  • Refining the behavior of objects and classes
  • Stack of integers -
  • Class specifc methods +
  • Class specific methods
  • Introductory Overview Example: Soccer Club @@ -326,7 +326,6 @@ % Stack create s1 ::s1 % s1 push a -a % s1 push b b % s1 push c @@ -404,7 +403,6 @@ % Stack create s2 -mixin Safety ::s2 % s2 push a -a % s2 pop a % s2 pop @@ -452,7 +450,7 @@ }
  • -

     
    Class specifc methods

    +

     
    Class specific methods

    In extended object Tcl, classes are objects as well (objects with different properties). We will come to this later in more detail. However, we can define as well methods of classes, which are not inherited to the instances, by defining class-specific methods using proc. This happens exactly like defining objects specific methods as shown before. In the following example, we will define a class-specific method available_stacks that returns the number of the currently existing stack instances. @@ -2958,7 +2956,7 @@ className info instmixin ?className2?

    -It returns the list of all instmixins of the the class, if className2 +It returns the list of all instmixins of the class, if className2 is not specified, otherwise it returns 1, if className2 is a mixin of the object, or 0 if not.

    @@ -3592,7 +3590,7 @@ Person slot projects -

    This object structure can be used to to query and modify the slot +

    This object structure can be used to query and modify the slot properties or to add additional methods to the slot objects. One application is for example to used slot-specific methods for checking slot values, as shown in the next section. @@ -3674,8 +3672,7 @@

    For the most common simple cases with single valued attributes, where neither setter or getter are redefined, XOTcl optimizes the slot -access function and replaces the delegation to the slot object by the -the C-level implementation of instparametercmd. +access function and replaces the delegation to the slot object by the C-level implementation of instparametercmd.

    Note that it is possible to subclass Attribute (e.g. in order to store more properties for attributes, like when attributes @@ -3830,7 +3827,7 @@

    The initcmd is executed only once, when the variable is read the first time. For later reads of the variable contents, the values are returned. -

    A value command (valuecmd) of a slot is similar to a a +

    A value command (valuecmd) of a slot is similar to a init command, except that it is executed whenever the value of the variable is read. A value command can be used e.g. to implement live updates for variables or for abstracting from sql sequences or the @@ -4125,7 +4122,7 @@ method should be prefixed with the specified string (to avoid name clashes), -earlybinding means that the function pointer of the specified command (callee) is take at invocation time (should only -be done for (builtin) commands inplemented in C), and +be done for (built-in) commands inplemented in C), and -default provides a means for providing default methods when none are specified.

    @@ -4345,8 +4342,7 @@

    The following examples show a few usages of the positional arguments in the forwarder. The forwarders f1 to f5 are created, followed by -one or more usages. The first argument of the usage is the call to -to forewarder, the second argument is the result. +one or more usages. The first argument of the usage is the call to forewarder, the second argument is the result.

       ###########################################
    @@ -4819,7 +4815,7 @@
     the current namespace because there are no name-clashes with the
     commands defined by other extensions.

    -

    Consider you want to perform a deeper integration of an other +

    Consider you want to perform a deeper integration of another extension and XOTcl because you want to benefit from XOTcl's object system. For instance, you might want to introduce composite TK widgets (sometimes called mega-widgets) as classes and inherit from these