diff -ru smalltalk-3.0.1/ChangeLog smalltalk-3.0.2/ChangeLog --- smalltalk-3.0.1/ChangeLog 2008-01-31 15:40:28.000000000 +0100 +++ smalltalk-3.0.2/ChangeLog 2008-03-07 11:53:43.000000000 +0100 @@ -1,3 +1,85 @@ +2008-03-04 Paolo Bonzini + + * main.c: Set GST_NO_TTY in Emacs mode. + * smalltalk-mode.el.in: Fix smalltalk-bang for old syntax. + * gst-mode.el.in: Wrap send-to-smalltalk with save-window-excursion. + +2008-02-25 Paolo Bonzini + + * kernel/Float.st: The final word on floating-point printing. + * tests/floatmath.st: Adjust test vectors. + +2008-02-25 Paolo Bonzini + + * kernel/ScaledDec.st: Make #zero and #one return a number with + the same scale as the receiver. + +2008-02-25 Paolo Bonzini + + * kernel/DirMessage.st: Add #receiver:selector:argument:. + * kernel/Message.st: Add #selector:argument:. + +2008-02-22 Paolo Bonzini + + * kernel/AnsiDates.st: Add #date:time:offset:, #date:time:. + * kernel/Date.st: Add #-. + * kernel/Dictionary.st: Add #associations. + * kernel/Time.st: Add #midnight, #addSeconds:. + +2008-02-22 Paolo Bonzini + + * kernel/Collection.st: Add #gather:. + * kernel/ArrayColl.st: Likewise. + +2008-02-13 Paolo Bonzini + + * kernel/Regex.st: Make Regex a subclass of Object. + +2008-02-13 Paolo Bonzini + + * kernel/File.st: Canonicalize names before finding directory + components. + +2008-02-12 Paolo Bonzini + + * kernel/Collection.st: Add #noneSatisfy:. + +2008-02-12 Paolo Bonzini + + * kernel/SeqCollect.st: Add more methods for Seaside. + +2008-02-12 Paolo Bonzini + + * kernel/Collection.st: Add #count:. + * kernel/DirMessage.st: Implement more creation messages. + * kernel/Number.st: Modify #coerce: so as to not return Fractions if + #readFrom: is called on Number. + +2008-02-08 Paolo Bonzini + + * tests/processes.st: Test that processes with the same priority + are scheduled fairly. + +2008-02-06 Paolo Bonzini + + * kernel/SeqCollect.st: Don't fail in #copyUpTo: if the character + is not there, return the whole collection instead. + +2008-02-05 Paolo Bonzini + + * kernel/CharArray.st: Add #endsWith:. + * kernel/SeqCollect.st: Add #sort and #sortBy:. + +2008-02-05 Paolo Bonzini + + * scripts/Convert.st: Return method from #compile:. + +2008-02-04 Paolo Bonzini + + * kernel/Number.st: Add #to:collect: and #to:by:collect:. + * kernel/SeqCollect.st: Add instance side #with:... + * kernel/StreamOps.st: Add #with:... and a class implementing it. + 2008-01-27 Stephen Compall * kernel/AnsiExcept.st: Comment or private-ize uncommented methods. diff -ru smalltalk-3.0.1/Makefile.am smalltalk-3.0.2/Makefile.am --- smalltalk-3.0.1/Makefile.am 2008-01-24 13:21:21.000000000 +0100 +++ smalltalk-3.0.2/Makefile.am 2008-03-07 11:53:43.000000000 +0100 @@ -122,15 +122,15 @@ uninstall-local:: @for i in gst-load $(GST_EXTRA_TOOLS); do \ - echo rm -f "$(DESTDIR)$(bindir)/$$i"; \ - rm -f "$(DESTDIR)$(bindir)/$$i"; \ + echo rm -f "$(DESTDIR)$(bindir)/$$i$(EXEEXT)"; \ + rm -f "$(DESTDIR)$(bindir)/$$i$(EXEEXT)"; \ done install-exec-hook:: $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL) gst-tool "$(DESTDIR)$(bindir)/gst-load" @for i in $(GST_EXTRA_TOOLS); do \ - echo $(LN) -f "$(DESTDIR)$(bindir)/gst-load" "$(DESTDIR)$(bindir)/$$i"; \ - $(LN) -f "$(DESTDIR)$(bindir)/gst-load" "$(DESTDIR)$(bindir)/$$i"; \ + echo $(LN) -f "$(DESTDIR)$(bindir)/gst-load$(EXEEXT)" "$(DESTDIR)$(bindir)/$$i$(EXEEXT)"; \ + $(LN) -f "$(DESTDIR)$(bindir)/gst-load$(EXEEXT)" "$(DESTDIR)$(bindir)/$$i$(EXEEXT)"; \ done nodist_noinst_HEADERS = config.h diff -ru smalltalk-3.0.1/Makefile.in smalltalk-3.0.2/Makefile.in --- smalltalk-3.0.1/Makefile.in 2008-01-31 15:41:01.000000000 +0100 +++ smalltalk-3.0.2/Makefile.in 2008-03-07 11:54:45.000000000 +0100 @@ -1112,15 +1112,15 @@ uninstall-local:: @for i in gst-load $(GST_EXTRA_TOOLS); do \ - echo rm -f "$(DESTDIR)$(bindir)/$$i"; \ - rm -f "$(DESTDIR)$(bindir)/$$i"; \ + echo rm -f "$(DESTDIR)$(bindir)/$$i$(EXEEXT)"; \ + rm -f "$(DESTDIR)$(bindir)/$$i$(EXEEXT)"; \ done install-exec-hook:: $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL) gst-tool "$(DESTDIR)$(bindir)/gst-load" @for i in $(GST_EXTRA_TOOLS); do \ - echo $(LN) -f "$(DESTDIR)$(bindir)/gst-load" "$(DESTDIR)$(bindir)/$$i"; \ - $(LN) -f "$(DESTDIR)$(bindir)/gst-load" "$(DESTDIR)$(bindir)/$$i"; \ + echo $(LN) -f "$(DESTDIR)$(bindir)/gst-load$(EXEEXT)" "$(DESTDIR)$(bindir)/$$i$(EXEEXT)"; \ + $(LN) -f "$(DESTDIR)$(bindir)/gst-load$(EXEEXT)" "$(DESTDIR)$(bindir)/$$i$(EXEEXT)"; \ done # These two lines add a beatiful icon to the Win32 executable diff -ru smalltalk-3.0.1/NEWS smalltalk-3.0.2/NEWS --- smalltalk-3.0.1/NEWS 2008-01-31 15:40:28.000000000 +0100 +++ smalltalk-3.0.2/NEWS 2008-03-07 11:53:43.000000000 +0100 @@ -1,5 +1,54 @@ List of user-visible changes in GNU Smalltalk +NEWS FROM 3.0.1 TO 3.0.2 + +o Fixed bugs in floating-point I/O + +o Fixed bugs in comparisons between ScaledDecimals and Integers. + +o Fixes for MinGW + +o Fixes to the Emacs modes. + +o Improved GNUPlot bindings (support for histograms). + +o Improved SqueakParser + +o Number>>#readFrom: will return floating-point numbers, not fractions. + +o New methods: + + AbstractSocket>>#isPeerAlive + CharacterArray>>#endsWith: + Collection>>#count: + Collection>>#gather: + Collection>>#noneSatisfy: + Date>>#- + DateTime>>#date:time: + DateTime>>#date:time:offset: + Dictionary>>#associations + Message>>#selector:argument: + Number>>#to:collect: + Number>>#to:by:collect: + SequenceableCollection>>#copyAfter: + SequenceableCollection>>#copyAfterLast: + SequenceableCollection>>#copyUpToLast: + SequenceableCollection>>#identityIndexOfLast:ifAbsent: + SequenceableCollection>>#indexOfLast:ifAbsent: + SequenceableCollection>>#sort + SequenceableCollection>>#sortBy: + SequenceableCollection>>#with: (also #with:#with: etc.) + Stream>>#with: (also #with:#with: etc.) + Time>>#addSeconds: + Time>>#midnight + +o Regex is now a subclass of Object + +o SQLite bindings return a different Row object for each #next call + to a ResultSet. + +----------------------------------------------------------------------------- + NEWS FROM 3.0 TO 3.0.1 o `gst-package --list-files' emits file paths relative from the current diff -ru smalltalk-3.0.1/THANKS smalltalk-3.0.2/THANKS --- smalltalk-3.0.1/THANKS 2008-01-22 11:14:31.000000000 +0100 +++ smalltalk-3.0.2/THANKS 2008-03-07 11:53:43.000000000 +0100 @@ -65,6 +65,7 @@ Hiroshi Nanosecond Ryan Pavlik Nicolas Pelletier +Jeronimo Pellegrini Ian Piumarta J Pfersich Robin Redeker diff -ru smalltalk-3.0.1/build-aux/gst-package.m4 smalltalk-3.0.2/build-aux/gst-package.m4 --- smalltalk-3.0.1/build-aux/gst-package.m4 2008-01-22 11:14:31.000000000 +0100 +++ smalltalk-3.0.2/build-aux/gst-package.m4 2008-02-19 18:49:43.000000000 +0100 @@ -97,7 +97,7 @@ [(for i in $4; do eval ac_var='${'$i'-bad}' case "$ac_var" in - no | 'not found' ) + no* ) exit 1 ;; bad ) AC_MSG_WARN([variable $i not set, proceeding as if \"no\"]) diff -ru smalltalk-3.0.1/build-aux/readline.m4 smalltalk-3.0.2/build-aux/readline.m4 --- smalltalk-3.0.1/build-aux/readline.m4 2008-01-22 11:14:31.000000000 +0100 +++ smalltalk-3.0.2/build-aux/readline.m4 2008-02-14 21:56:23.000000000 +0100 @@ -47,7 +47,7 @@ gst_cv_readline_libs="-lreadline $lib" test "x$with_readline" != x && test "$with_readline" != yes \ && test -d "$with_readline" \ - && gst_cv_readline_libs="-L$with_readline $gst_readline_libs" + && gst_cv_readline_libs="-L$with_readline $gst_cv_readline_libs" break fi done diff -ru smalltalk-3.0.1/configure smalltalk-3.0.2/configure --- smalltalk-3.0.1/configure 2008-01-31 15:41:04.000000000 +0100 +++ smalltalk-3.0.2/configure 2008-03-07 11:54:48.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for GNU Smalltalk 3.0.1. +# Generated by GNU Autoconf 2.61 for GNU Smalltalk 3.0.2. # # Report bugs to . # @@ -724,8 +724,8 @@ # Identity of this package. PACKAGE_NAME='GNU Smalltalk' PACKAGE_TARNAME='smalltalk' -PACKAGE_VERSION='3.0.1' -PACKAGE_STRING='GNU Smalltalk 3.0.1' +PACKAGE_VERSION='3.0.2' +PACKAGE_STRING='GNU Smalltalk 3.0.2' PACKAGE_BUGREPORT='help-smalltalk@gnu.org' ac_unique_file="main.c" @@ -1446,7 +1446,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures GNU Smalltalk 3.0.1 to adapt to many kinds of systems. +\`configure' configures GNU Smalltalk 3.0.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1516,7 +1516,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GNU Smalltalk 3.0.1:";; + short | recursive ) echo "Configuration of GNU Smalltalk 3.0.2:";; esac cat <<\_ACEOF @@ -1646,7 +1646,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GNU Smalltalk configure 3.0.1 +GNU Smalltalk configure 3.0.2 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1660,7 +1660,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by GNU Smalltalk $as_me 3.0.1, which was +It was created by GNU Smalltalk $as_me 3.0.2, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -2434,7 +2434,7 @@ # Define the identity of the package. PACKAGE='smalltalk' - VERSION='3.0.1' + VERSION='3.0.2' cat >>confdefs.h <<_ACEOF @@ -5282,7 +5282,7 @@ enableval=$enable_generational_gc; else case $host in - *-*-cygwin* | *-*-mingw* ) enable_generational_gc=no ;; + *-*-cygwin* | *-*-mingw* | ia64-*-* ) enable_generational_gc=no ;; *) enable_generational_gc=yes ;; esac fi @@ -20827,7 +20827,7 @@ gst_cv_readline_libs="-lreadline $lib" test "x$with_readline" != x && test "$with_readline" != yes \ && test -d "$with_readline" \ - && gst_cv_readline_libs="-L$with_readline $gst_readline_libs" + && gst_cv_readline_libs="-L$with_readline $gst_cv_readline_libs" break fi done @@ -21410,7 +21410,7 @@ (for i in gst_cv_tcltk_libs; do eval ac_var='${'$i'-bad}' case "$ac_var" in - no | 'not found' ) + no* ) exit 1 ;; bad ) { echo "$as_me:$LINENO: WARNING: variable $i not set, proceeding as if \"no\"" >&5 @@ -21843,7 +21843,7 @@ (for i in ac_cv_lib_pq_PQconnectdb; do eval ac_var='${'$i'-bad}' case "$ac_var" in - no | 'not found' ) + no* ) exit 1 ;; bad ) { echo "$as_me:$LINENO: WARNING: variable $i not set, proceeding as if \"no\"" >&5 @@ -22047,7 +22047,7 @@ (for i in ac_cv_header_sqlite3_h; do eval ac_var='${'$i'-bad}' case "$ac_var" in - no | 'not found' ) + no* ) exit 1 ;; bad ) { echo "$as_me:$LINENO: WARNING: variable $i not set, proceeding as if \"no\"" >&5 @@ -22308,7 +22308,7 @@ (for i in ac_cv_header_gdbm_h; do eval ac_var='${'$i'-bad}' case "$ac_var" in - no | 'not found' ) + no* ) exit 1 ;; bad ) { echo "$as_me:$LINENO: WARNING: variable $i not set, proceeding as if \"no\"" >&5 @@ -23289,7 +23289,7 @@ (for i in enable_gtk; do eval ac_var='${'$i'-bad}' case "$ac_var" in - no | 'not found' ) + no* ) exit 1 ;; bad ) { echo "$as_me:$LINENO: WARNING: variable $i not set, proceeding as if \"no\"" >&5 @@ -23362,7 +23362,7 @@ (for i in enable_gtk; do eval ac_var='${'$i'-bad}' case "$ac_var" in - no | 'not found' ) + no* ) exit 1 ;; bad ) { echo "$as_me:$LINENO: WARNING: variable $i not set, proceeding as if \"no\"" >&5 @@ -23437,7 +23437,7 @@ (for i in enable_blox; do eval ac_var='${'$i'-bad}' case "$ac_var" in - no | 'not found' ) + no* ) exit 1 ;; bad ) { echo "$as_me:$LINENO: WARNING: variable $i not set, proceeding as if \"no\"" >&5 @@ -24400,7 +24400,7 @@ (for i in ac_cv_func_nl_langinfo am_cv_func_iconv; do eval ac_var='${'$i'-bad}' case "$ac_var" in - no | 'not found' ) + no* ) exit 1 ;; bad ) { echo "$as_me:$LINENO: WARNING: variable $i not set, proceeding as if \"no\"" >&5 @@ -24708,7 +24708,7 @@ (for i in am_cv_func_iconv; do eval ac_var='${'$i'-bad}' case "$ac_var" in - no | 'not found' ) + no* ) exit 1 ;; bad ) { echo "$as_me:$LINENO: WARNING: variable $i not set, proceeding as if \"no\"" >&5 @@ -25023,7 +25023,7 @@ (for i in ac_cv_lib_ncurses_initscr; do eval ac_var='${'$i'-bad}' case "$ac_var" in - no | 'not found' ) + no* ) exit 1 ;; bad ) { echo "$as_me:$LINENO: WARNING: variable $i not set, proceeding as if \"no\"" >&5 @@ -26068,7 +26068,7 @@ (for i in gst_cv_inet_sockets; do eval ac_var='${'$i'-bad}' case "$ac_var" in - no | 'not found' ) + no* ) exit 1 ;; bad ) { echo "$as_me:$LINENO: WARNING: variable $i not set, proceeding as if \"no\"" >&5 @@ -26708,7 +26708,7 @@ (for i in ac_cv_header_zlib_h; do eval ac_var='${'$i'-bad}' case "$ac_var" in - no | 'not found' ) + no* ) exit 1 ;; bad ) { echo "$as_me:$LINENO: WARNING: variable $i not set, proceeding as if \"no\"" >&5 @@ -27579,7 +27579,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by GNU Smalltalk $as_me 3.0.1, which was +This file was extended by GNU Smalltalk $as_me 3.0.2, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -27636,7 +27636,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -GNU Smalltalk config.status 3.0.1 +GNU Smalltalk config.status 3.0.2 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff -ru smalltalk-3.0.1/configure.ac smalltalk-3.0.2/configure.ac --- smalltalk-3.0.1/configure.ac 2008-01-31 15:40:28.000000000 +0100 +++ smalltalk-3.0.2/configure.ac 2008-03-07 11:53:43.000000000 +0100 @@ -7,7 +7,7 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.60) -AC_INIT([GNU Smalltalk], 3.0.1, help-smalltalk@gnu.org, smalltalk) +AC_INIT([GNU Smalltalk], 3.0.2, help-smalltalk@gnu.org, smalltalk) MAINTAINER="bonzini@gnu.org" dnl CURRENT:REVISION:AGE means this is the REVISION-th version of @@ -84,7 +84,7 @@ AC_ARG_ENABLE(generational-gc, [ --disable-generational-gc disable generational garbage collection], , [case $host in - *-*-cygwin* | *-*-mingw* ) enable_generational_gc=no ;; + *-*-cygwin* | *-*-mingw* | ia64-*-* ) enable_generational_gc=no ;; *) enable_generational_gc=yes ;; esac]) if test $enable_generational_gc != no; then diff -ru smalltalk-3.0.1/doc/classes.texi smalltalk-3.0.2/doc/classes.texi --- smalltalk-3.0.1/doc/classes.texi 2008-01-31 15:53:44.000000000 +0100 +++ smalltalk-3.0.2/doc/classes.texi 2008-03-07 12:04:08.000000000 +0100 @@ -360,7 +360,6 @@ @class{@t{ }, ByteArray} @class{@t{ }, CharacterArray} @class{@t{ }, String} -@class{@t{ }, Regex} @class{@t{ }, Symbol} @class{@t{ }, UnicodeString} @class{@t{ }, CompiledCode} @@ -444,6 +443,7 @@ @class{@t{ }, ProcessorScheduler} @class{@t{ }, Rectangle} @class{@t{ }, RecursionLock} +@class{@t{ }, Regex} @class{@t{ }, RegexResults} @class{@t{ }, SecurityPolicy} @class{@t{ }, SharedQueue} @@ -1117,6 +1117,7 @@ * ArrayedCollection-built ins:: (instance) * ArrayedCollection-copying Collections:: (instance) * ArrayedCollection-enumerating the elements of a collection:: (instance) +* ArrayedCollection-enumeration:: (instance) * ArrayedCollection-storing:: (instance) * ArrayedCollection-streams:: (instance) @end menu @@ -1328,6 +1329,22 @@ +@node ArrayedCollection-enumeration +@subsection ArrayedCollection:@- enumeration + +@table @b +@meindex gather:@- +@item gather:@- aBlock +Answer a new instance of a Collection containing all the results +of evaluating aBlock, joined together. aBlock should return +collections. The result is the same kind of the receiver, +independent of the type of collection returned by aBlock. + + +@end table + + + @node ArrayedCollection-storing @subsection ArrayedCollection:@- storing @@ -5364,6 +5381,11 @@ the receiver, it is considered to be less than the receiver. +@meindex endsWith:@- +@item endsWith:@- aCharacterArray +Returns true if the receiver ends with the same characters as aCharacterArray. + + @meindex indexOf:@-matchCase:@-startingAt:@- @item indexOf:@- aCharacterArray matchCase:@- aBoolean startingAt:@- anIndex Answer an Interval of indices in the receiver which match the aCharacterArray @@ -7048,6 +7070,12 @@ Answer true if some does, false otherwise. +@meindex count:@- +@item count:@- aBlock +Count the elements of the receiver for which aBlock returns true, +and return their number. + + @meindex detect:@- @item detect:@- aBlock Search the receiver for an element for which aBlock returns true. @@ -7081,6 +7109,14 @@ is empty. +@meindex gather:@- +@item gather:@- aBlock +Answer a new instance of a Collection containing all the results +of evaluating aBlock, joined together. aBlock should return +collections. The result is the same kind of the receiver, +independent of the type of collection returned by aBlock. + + @meindex inject:@-into:@- @item inject:@- thisValue into:@- binaryBlock First, pass to binaryBlock thisValue and the first element of the @@ -7088,6 +7124,12 @@ evaluation and an element. Answer the result of the last invocation. +@meindex noneSatisfy:@- +@item noneSatisfy:@- aBlock +Search the receiver for an element for which aBlock returns true. +Answer true if none does, false otherwise. + + @meindex readStream @item readStream Answer a stream that gives elements of the receiver @@ -9861,6 +9903,11 @@ @subsection Date:@- basic @table @b +@meindex - +@item - aDate +Answer a new Date pointing dayCount before the receiver + + @meindex addDays:@- @item addDays:@- dayCount Answer a new Date pointing dayCount past the receiver @@ -10150,11 +10197,23 @@ @subsection DateTime class:@- instance creation (non-ANSI) @table @b +@meindex date:@-time:@- +@item date:@- aDate time:@- aTime +Answer a DateTime denoting the given date and time. Set the +offset field to ofs (a Duration). + + +@meindex date:@-time:@-offset:@- +@item date:@- aDate time:@- aTime offset:@- ofs +Answer a DateTime denoting the given date and time. Set the +offset field to ofs (a Duration). + + @meindex fromDays:@-seconds:@-offset:@- @item fromDays:@- days seconds:@- secs offset:@- ofs -Answer a DateTime denoting the d-th day of the given (as a number) -month and year. Set the offset field to ofs (a Duration), and -the the time part to the given hour, minute, and second +Answer a DateTime denoting the given date (as days since +January 1, 1901) and time (as seconds since midnight). Set the +offset field to ofs (a Duration). @end table @@ -10719,6 +10778,11 @@ (answering the result) if the key is not found +@meindex associations +@item associations +Returns the content of a Dictionary as a Set of Associations. + + @meindex at:@- @item at:@- key Answer the value associated to the given key. Fail if the key @@ -11013,6 +11077,21 @@ @subsection DirectedMessage class:@- creating instances @table @b +@meindex receiver:@-selector:@- +@item receiver:@- anObject selector:@- aSymbol +Create a new instance of the receiver + + +@meindex receiver:@-selector:@-argument:@- +@item receiver:@- receiverObject selector:@- aSymbol argument:@- argumentObject +Create a new instance of the receiver + + +@meindex receiver:@-selector:@-arguments:@- +@item receiver:@- anObject selector:@- aSymbol arguments:@- anArray +Create a new instance of the receiver + + @meindex selector:@-arguments:@- @item selector:@- aSymbol arguments:@- anArray This method should not be called for instances of this class. @@ -18026,6 +18105,11 @@ @subsection Message class:@- creating instances @table @b +@meindex selector:@-argument:@- +@item selector:@- aSymbol argument:@- anObject +Create a new Message with the given selector and argument + + @meindex selector:@-arguments:@- @item selector:@- aSymbol arguments:@- anArray Create a new Message with the given selector and arguments @@ -19626,7 +19710,7 @@ @meindex coerce:@- @item coerce:@- aNumber -Answer aNumber - whatever class it belongs to, it is good +Answer aNumber, converted to an integer or floating-point number. @meindex degreesToRadians @@ -19956,6 +20040,13 @@ Return an interval going from the receiver to stop with the given step +@meindex to:@-by:@-collect:@- +@item to:@- stop by:@- step collect:@- aBlock +Evaluate aBlock for each value in the interval going from the receiver +to stop with the given step. The results are collected in an Array +and returned. + + @meindex to:@-by:@-do:@- @item to:@- stop by:@- step do:@- aBlock Evaluate aBlock for each value in the interval going from the receiver @@ -19964,6 +20055,12 @@ not overridable. +@meindex to:@-collect:@- +@item to:@- stop collect:@- aBlock +Evaluate aBlock for each value in the interval going from the receiver +to stop by 1. The results are collected in an Array and returned. + + @meindex to:@-do:@- @item to:@- stop do:@- aBlock Evaluate aBlock for each value in the interval going from the receiver @@ -24341,14 +24438,13 @@ @table @b @item Defined in namespace Smalltalk -@itemx Superclass: String +@itemx Superclass: Object @itemx Category: Collections-Text -A Regex is equivalent to a String, except that it is read-only and that -the regular expression matcher caches a compiled representation of the -most recently used Regexes, thus speeding up matching. Regex objects -are constructed automatically by methods that expect to match many -times the same regular expression, but can be constructed explicitly +A Regex is a read-only string for which the regular expression matcher +can cache a compiled representation, thus speeding up matching. Regex +objects are constructed automatically by methods that expect to match many +times the same regular expression, but can also be constructed explicitly sending @-#asRegex to a String or Symbol. Creation of Regex objects inside a loop is of course slower than creating @@ -24926,7 +25022,6 @@ @end table @menu -* ScaledDecimal class-constants:: (class) * ScaledDecimal class-instance creation:: (class) * ScaledDecimal-arithmetic:: (instance) * ScaledDecimal-coercion:: (instance) @@ -24938,19 +25033,6 @@ -@node ScaledDecimal class-constants -@subsection ScaledDecimal class:@- constants - -@table @b -@meindex initialize -@item initialize -Initialize the receiver's class variables - - -@end table - - - @node ScaledDecimal class-instance creation @subsection ScaledDecimal class:@- instance creation @@ -25395,6 +25477,7 @@ * SequenceableCollection-copying SequenceableCollections:: (instance) * SequenceableCollection-enumerating:: (instance) * SequenceableCollection-replacing items:: (instance) +* SequenceableCollection-sorting:: (instance) * SequenceableCollection-testing:: (instance) @end menu @@ -25526,6 +25609,12 @@ Invoke exceptionBlock and answer its result if no item is found +@meindex identityIndexOfLast:@-ifAbsent:@- +@item identityIndexOfLast:@- anElement ifAbsent:@- exceptionBlock +Answer the last index which contains an object identical to anElement. +Invoke exceptionBlock and answer its result if no item is found + + @meindex includes:@- @item includes:@- anObject Answer whether we include anObject @@ -25555,6 +25644,12 @@ Invoke exceptionBlock and answer its result if no item is found +@meindex indexOfLast:@-ifAbsent:@- +@item indexOfLast:@- anElement ifAbsent:@- exceptionBlock +Answer the last index which contains anElement. +Invoke exceptionBlock and answer its result if no item is found + + @meindex indexOfSubCollection:@- @item indexOfSubCollection:@- aSubCollection Answer the first index > anIndex at which starts a sequence of @@ -25634,6 +25729,30 @@ @-#('hello,' 'world') join:@- ' ' => 'hello, world' +@meindex with:@- +@item with:@- aSequenceableCollection +Return an Array with the same size as the receiver and +aSequenceableCollection, each element of which is a 2-element +Arrays including one element from the receiver and one from +aSequenceableCollection. + + +@meindex with:@-with:@- +@item with:@- seqColl1 with:@- seqColl2 +Return an Array with the same size as the receiver and +the arguments, each element of which is a 3-element +Arrays including one element from the receiver and one from +each argument. + + +@meindex with:@-with:@-with:@- +@item with:@- seqColl1 with:@- seqColl2 with:@- seqColl3 +Return an Array with the same size as the receiver and +the arguments, each element of which is a 4-element +Arrays including one element from the receiver and one from +each argument. + + @end table @@ -25649,6 +25768,18 @@ and answer a new collection +@meindex copyAfter:@- +@item copyAfter:@- anObject +Answer a new collection holding all the elements of the receiver +after the first occurrence of anObject, up to the last. + + +@meindex copyAfterLast:@- +@item copyAfterLast:@- anObject +Answer a new collection holding all the elements of the receiver +after the last occurrence of anObject, up to the last. + + @meindex copyFrom:@- @item copyFrom:@- start Answer a new collection containing all the items in the receiver from the @@ -25700,6 +25831,12 @@ from the first up to the first occurrence of anObject, excluded. +@meindex copyUpToLast:@- +@item copyUpToLast:@- anObject +Answer a new collection holding all the elements of the receiver +from the first up to the last occurrence of anObject, excluded. + + @end table @@ -25862,6 +25999,28 @@ +@node SequenceableCollection-sorting +@subsection SequenceableCollection:@- sorting + +@table @b +@meindex sort +@slindex <= +@item sort +Sort the contents of the receiver according to the default +sort block, which uses @-#<= to compare items. + + +@meindex sortBy:@- +@item sortBy:@- sortBlock +Sort the contents of the receiver according to the given +sort block, which accepts pair of items and returns true if +the first item is less than the second one. + + +@end table + + + @node SequenceableCollection-testing @subsection SequenceableCollection:@- testing @@ -26827,6 +26986,7 @@ * Stream-basic:: (instance) * Stream-built ins:: (instance) * Stream-character writing:: (instance) +* Stream-concatenating:: (instance) * Stream-enumerating:: (instance) * Stream-filing out:: (instance) * Stream-filtering:: (instance) @@ -27055,6 +27215,35 @@ +@node Stream-concatenating +@subsection Stream:@- concatenating + +@table @b +@meindex with:@- +@item with:@- aStream +Return a new Stream whose elements are 2-element +Arrays, including one element from the receiver and one from +aStream. + + +@meindex with:@-with:@- +@item with:@- stream1 with:@- stream2 +Return a new Stream whose elements are 3-element +Arrays, including one element from the receiver and one from +each argument. + + +@meindex with:@-with:@-with:@- +@item with:@- stream1 with:@- stream2 with:@- stream3 +Return a new Stream whose elements are 3-element +Arrays, including one element from the receiver and one from +each argument. + + +@end table + + + @node Stream-enumerating @subsection Stream:@- enumerating @@ -29892,6 +30081,12 @@ @subsection Time class:@- basic (UTC) @table @b +@meindex midnight +@item midnight +Answer a time representing midnight in Coordinated +Universal Time (UTC) + + @meindex utcNow @item utcNow Answer a time representing the current time of day in Coordinated @@ -30111,9 +30306,15 @@ @subsection Time:@- arithmetic @table @b +@meindex addSeconds:@- +@item addSeconds:@- timeAmount +Answer a new Time that is timeAmount seconds after the receiver + + @meindex addTime:@- @item addTime:@- timeAmount -Answer a new Time that is timeAmount seconds after the receiver +Answer a new Time that is timeAmount seconds after the receiver; +timeAmount is a Time. @meindex printOn:@- @@ -30123,7 +30324,8 @@ @meindex subtractTime:@- @item subtractTime:@- timeAmount -Answer a new Time that is timeAmount seconds before the receiver +Answer a new Time that is timeAmount seconds before the receiver; +timeAmount is a Time. @end table diff -ru smalltalk-3.0.1/doc/gst-base.info smalltalk-3.0.2/doc/gst-base.info --- smalltalk-3.0.1/doc/gst-base.info 2008-01-31 15:53:45.000000000 +0100 +++ smalltalk-3.0.2/doc/gst-base.info 2008-03-07 12:12:21.000000000 +0100 @@ -1,5 +1,5 @@ -This is gst-base.info, produced by makeinfo version 4.11 from -/home/bonzinip/smalltalk-3.0.1/doc/gst-base-fixed.texi. +This is gst-base.info, produced by makeinfo version 4.8 from +/Users/bonzinip/devel/gst/+build/doc/../../doc/gst-base-fixed.texi. INFO-DIR-SECTION Software development START-INFO-DIR-ENTRY @@ -15,1123 +15,1125 @@  Indirect: -gst-base.info-1: 680 -gst-base.info-2: 300312 -gst-base.info-3: 599840 -gst-base.info-4: 772178 -gst-base.info-5: 1220797 +gst-base.info-1: 691 +gst-base.info-2: 299671 +gst-base.info-3: 598229 +gst-base.info-4: 777294 +gst-base.info-5: 1230129  Tag Table: (Indirect) -Node: Top680 -Node: Base classes1616 -Node: AbstractNamespace11664 -Node: AbstractNamespace class-instance creation12419 -Node: AbstractNamespace-accessing12858 -Node: AbstractNamespace-basic & copying14096 -Node: AbstractNamespace-copying14650 -Node: AbstractNamespace-namespace hierarchy15106 -Node: AbstractNamespace-overrides for superspaces17903 -Node: AbstractNamespace-printing19633 -Node: AbstractNamespace-testing20218 -Node: AlternativeObjectProxy20469 -Node: AlternativeObjectProxy class-instance creation21211 -Node: AlternativeObjectProxy-accessing22156 -Node: ArithmeticError22720 -Node: ArithmeticError-description23179 -Node: Array23397 -Node: Array class-instance creation24079 -Node: Array-mutating objects24401 -Node: Array-printing24751 -Node: Array-testing25245 -Node: ArrayedCollection25398 -Node: ArrayedCollection class-instance creation26237 -Node: ArrayedCollection-basic27934 -Node: ArrayedCollection-built ins29072 -Node: ArrayedCollection-copying Collections29348 -Node: ArrayedCollection-enumerating the elements of a collection31113 -Node: ArrayedCollection-storing32272 -Node: ArrayedCollection-streams32603 -Node: Association32851 -Node: Association class-basic33536 -Node: Association-accessing33787 -Node: Association-finalization34407 -Node: Association-printing34640 -Node: Association-storing34900 -Node: Association-testing35166 -Node: Autoload35664 -Node: Autoload class-instance creation36332 -Node: Autoload-accessing36848 -Node: Bag37188 -Node: Bag class-basic37896 -Node: Bag-adding38165 -Node: Bag-enumerating the elements of a collection38658 -Node: Bag-extracting items39028 -Node: Bag-printing39320 -Node: Bag-removing39537 -Node: Bag-storing39859 -Node: Bag-testing collections40089 -Node: Behavior40587 -Node: Behavior-accessing class hierarchy42313 -Node: Behavior-accessing instances and variables43052 -Node: Behavior-accessing the methodDictionary44351 -Node: Behavior-built ins45764 -Node: Behavior-builtin47473 -Node: Behavior-compilation (alternative)48243 -Node: Behavior-compiling methods49074 -Node: Behavior-creating a class hierarchy49547 -Node: Behavior-enumerating49996 -Node: Behavior-evaluating51062 -Node: Behavior-instance creation52361 -Node: Behavior-instance variables53155 -Node: Behavior-method dictionary53720 -Node: Behavior-parsing class declarations57295 -Node: Behavior-pluggable behavior (not yet implemented)57973 -Node: Behavior-printing hierarchy59120 -Node: Behavior-still unclassified59715 -Node: Behavior-support for lightweight classes60309 -Node: Behavior-testing functionality61499 -Node: Behavior-testing the class hierarchy61782 -Node: Behavior-testing the form of the instances62852 -Node: Behavior-testing the method dictionary63789 -Node: BindingDictionary65190 -Node: BindingDictionary-accessing66047 -Node: BindingDictionary-copying67943 -Node: BindingDictionary-forward declarations68618 -Node: BindingDictionary-printing69056 -Node: BindingDictionary-testing69464 -Node: BlockClosure69693 -Node: BlockClosure class-instance creation70926 -Node: BlockClosure class-testing71808 -Node: BlockClosure-accessing72116 -Node: BlockClosure-built ins73718 -Node: BlockClosure-control structures74368 -Node: BlockClosure-exception handling75049 -Node: BlockClosure-multiple process77065 -Node: BlockClosure-overriding78522 -Node: BlockClosure-testing78799 -Node: BlockClosure-unwind protection79073 -Node: BlockContext80558 -Node: BlockContext-accessing81387 -Node: BlockContext-debugging82914 -Node: BlockContext-printing83333 -Node: Boolean83572 -Node: Boolean class-testing84333 -Node: Boolean-basic84650 -Node: Boolean-C hacks85946 -Node: Boolean-overriding86208 -Node: Boolean-storing86451 -Node: ByteArray86867 -Node: ByteArray class-instance creation87499 -Node: ByteArray-built ins87835 -Node: ByteArray-converting89174 -Node: ByteArray-more advanced accessing89633 -Node: ByteArray-storing96553 -Node: ByteStream96977 -Node: ByteStream-basic97366 -Node: CAggregate99155 -Node: CAggregate class-accessing99460 -Node: CAggregate-accessing99750 -Node: CallinProcess99988 -Node: CArray100516 -Node: CArray-accessing100769 -Node: CArrayCType100976 -Node: CArrayCType class-instance creation101323 -Node: CArrayCType-accessing102018 -Node: CArrayCType-storing102424 -Node: CBoolean102619 -Node: CBoolean-accessing102926 -Node: CByte103257 -Node: CByte class-conversion103570 -Node: CByte-accessing103863 -Node: CChar104275 -Node: CChar class-accessing104579 -Node: CChar-accessing104946 -Node: CChar-conversion105291 -Node: CCompound105692 -Node: CCompound class-instance creation106044 -Node: CCompound class-subclass creation106374 -Node: CCompound-instance creation108001 -Node: CDouble108354 -Node: CDouble class-accessing108636 -Node: CDouble-accessing109013 -Node: CFloat109343 -Node: CFloat class-accessing109631 -Node: CFloat-accessing110003 -Node: CFunctionDescriptor110328 -Node: CFunctionDescriptor class-instance creation111113 -Node: CFunctionDescriptor class-testing111475 -Node: CFunctionDescriptor-accessing111986 -Node: CFunctionDescriptor-calling112618 -Node: CFunctionDescriptor-printing114516 -Node: Character114789 -Node: Character class-built ins116092 -Node: Character class-constants116746 -Node: Character class-initializing lookup tables117554 -Node: Character class-instance creation118204 -Node: Character class-testing118576 -Node: Character-built ins118866 -Node: Character-coercion methods119655 -Node: Character-comparing120359 -Node: Character-converting121006 -Node: Character-printing121395 -Node: Character-storing121883 -Node: Character-testing122227 -Node: Character-testing functionality123115 -Node: CharacterArray123363 -Node: CharacterArray class-basic124100 -Node: CharacterArray class-multibyte encodings124587 -Node: CharacterArray-built ins124970 -Node: CharacterArray-comparing125419 -Node: CharacterArray-converting127722 -Node: CharacterArray-multibyte encodings129264 -Node: CharacterArray-string processing129839 -Node: CharacterArray-testing functionality132980 -Node: CInt133240 -Node: CInt class-accessing133511 -Node: CInt-accessing133853 -Node: Class134188 -Node: Class class-initialize135141 -Node: Class-accessing instances and variables135388 -Node: Class-filing137342 -Node: Class-instance creation137774 -Node: Class-instance creation - alternative140735 -Node: Class-pragmas142913 -Node: Class-printing143427 -Node: Class-saving and loading143824 -Node: Class-security145206 -Node: Class-testing145490 -Node: Class-testing functionality145735 -Node: ClassDescription145968 -Node: ClassDescription-compiling146752 -Node: ClassDescription-conversion147594 -Node: ClassDescription-copying148061 -Node: ClassDescription-filing149272 -Node: ClassDescription-organization of messages and classes150069 -Node: ClassDescription-parsing class declarations151498 -Node: ClassDescription-printing152007 -Node: ClassDescription-still unclassified152804 -Node: CLong153357 -Node: CLong class-accessing153641 -Node: CLong-accessing154008 -Node: CLongDouble154328 -Node: CLongDouble class-accessing154627 -Node: CLongDouble-accessing155024 -Node: CObject155374 -Node: CObject class-conversion156279 -Node: CObject class-instance creation156543 -Node: CObject class-subclassing157163 -Node: CObject-accessing157433 -Node: CObject-C data access157876 -Node: CObject-conversion158494 -Node: CObject-finalization159157 -Node: CObject-pointer-like behavior159635 -Node: Collection161909 -Node: Collection class-instance creation162896 -Node: Collection class-multibyte encodings164344 -Node: Collection-adding164684 -Node: Collection-converting165047 -Node: Collection-copying Collections166318 -Node: Collection-enumeration166870 -Node: Collection-finalization169978 -Node: Collection-printing170297 -Node: Collection-removing170654 -Node: Collection-storing171608 -Node: Collection-testing collections171881 -Node: CompiledBlock172645 -Node: CompiledBlock class-instance creation173153 -Node: CompiledBlock-accessing173922 -Node: CompiledBlock-basic174995 -Node: CompiledBlock-printing175718 -Node: CompiledBlock-saving and loading175999 -Node: CompiledCode176434 -Node: CompiledCode class-cache flushing177297 -Node: CompiledCode class-instance creation177667 -Node: CompiledCode class-tables178266 -Node: CompiledCode-accessing179501 -Node: CompiledCode-basic181021 -Node: CompiledCode-copying181786 -Node: CompiledCode-debugging182025 -Node: CompiledCode-decoding bytecodes182298 -Node: CompiledCode-literals - iteration182723 -Node: CompiledCode-security183285 -Node: CompiledCode-testing accesses183617 -Node: CompiledCode-translation184784 -Node: CompiledMethod185058 -Node: CompiledMethod class-instance creation186055 -Node: CompiledMethod class-lean images186931 -Node: CompiledMethod-accessing187266 -Node: CompiledMethod-attributes188968 -Node: CompiledMethod-basic189924 -Node: CompiledMethod-c call-outs190241 -Node: CompiledMethod-compiling190791 -Node: CompiledMethod-invoking191641 -Node: CompiledMethod-printing192688 -Node: CompiledMethod-saving and loading193046 -Node: CompiledMethod-source code193516 -Node: CompiledMethod-testing194222 -Node: ContextPart194815 -Node: ContextPart class-built ins195683 -Node: ContextPart class-exception handling195998 -Node: ContextPart-accessing196994 -Node: ContextPart-built ins200337 -Node: ContextPart-copying201037 -Node: ContextPart-debugging201397 -Node: ContextPart-enumerating202255 -Node: ContextPart-exception handling202873 -Node: ContextPart-printing203149 -Node: ContextPart-security checks203562 -Node: Continuation204130 -Node: Continuation class-instance creation204800 -Node: Continuation-invocation205474 -Node: CPtr206841 -Node: CPtr-accessing207083 -Node: CPtrCType207632 -Node: CPtrCType class-instance creation207960 -Node: CPtrCType-accessing208331 -Node: CPtrCType-storing208832 -Node: CScalar209017 -Node: CScalar class-instance creation209313 -Node: CScalar-accessing209785 -Node: CScalarCType210314 -Node: CScalarCType-accessing210612 -Node: CScalarCType-storing210954 -Node: CShort211190 -Node: CShort class-accessing211474 -Node: CShort-accessing211846 -Node: CSmalltalk212171 -Node: CSmalltalk class-accessing212466 -Node: CSmalltalk-accessing212858 -Node: CString213203 -Node: CString class-accessing214251 -Node: CString class-instance creation214545 -Node: CString-accessing215049 -Node: CStringCType215578 -Node: CStringCType-accessing215847 -Node: CStruct216062 -Node: CStruct class-subclass creation216322 -Node: CType216563 -Node: CType class-C instance creation217727 -Node: CType class-initialization218421 -Node: CType-accessing218678 -Node: CType-C instance creation219530 -Node: CType-storing220055 -Node: CUChar220266 -Node: CUChar class-getting info220541 -Node: CUChar-accessing220922 -Node: CUInt221250 -Node: CUInt class-accessing221519 -Node: CUInt-accessing221886 -Node: CULong222206 -Node: CULong class-accessing222479 -Node: CULong-accessing222851 -Node: CUnion223176 -Node: CUnion class-subclass creation223428 -Node: CUShort223665 -Node: CUShort class-accessing223942 -Node: CUShort-accessing224319 -Node: Date224649 -Node: Date class-basic226121 -Node: Date class-instance creation (ANSI)227249 -Node: Date class-instance creation (Blue Book)227739 -Node: Date-basic229059 -Node: Date-compatibility (non-ANSI)229533 -Node: Date-date computations229946 -Node: Date-printing231657 -Node: Date-storing231885 -Node: Date-testing232108 -Node: DateTime232427 -Node: DateTime class-information233089 -Node: DateTime class-instance creation233380 -Node: DateTime class-instance creation (non-ANSI)234681 -Node: DateTime-basic235183 -Node: DateTime-computations235530 -Node: DateTime-printing236222 -Node: DateTime-splitting in dates & times236488 -Node: DateTime-storing237087 -Node: DateTime-testing237352 -Node: DateTime-time zones237727 -Node: DeferredVariableBinding238857 -Node: DeferredVariableBinding class-basic239458 -Node: DeferredVariableBinding-basic240097 -Node: DeferredVariableBinding-storing240585 -Node: Delay240966 -Node: Delay class-instance creation241780 -Node: Delay class-timer process242257 -Node: Delay-accessing243081 -Node: Delay-comparing243368 -Node: Delay-delaying243649 -Node: Delay-initialization243965 -Node: Delay-instance creation244238 -Node: DelayedAdaptor244515 -Node: DelayedAdaptor-accessing245051 -Node: Dictionary245430 -Node: Dictionary class-instance creation246638 -Node: Dictionary-accessing247082 -Node: Dictionary-awful ST-80 compatibility hacks248979 -Node: Dictionary-dictionary enumerating249442 -Node: Dictionary-dictionary removing250530 -Node: Dictionary-dictionary testing251399 -Node: Dictionary-polymorphism hacks252073 -Node: Dictionary-printing252358 -Node: Dictionary-rehashing252722 -Node: Dictionary-storing252939 -Node: Dictionary-testing253201 -Node: DirectedMessage253477 -Node: DirectedMessage class-creating instances254053 -Node: DirectedMessage-accessing254486 -Node: DirectedMessage-basic254794 -Node: DirectedMessage-multiple process255218 -Node: DirectedMessage-saving and loading255816 -Node: Directory256254 -Node: Directory class-file name management256994 -Node: Directory class-file operations257533 -Node: Directory class-reading system defaults258218 -Node: Directory-accessing259433 -Node: Directory-enumerating260534 -Node: DLD261509 -Node: DLD class-C call-outs262189 -Node: DLD class-dynamic linking262441 -Node: DumperProxy263787 -Node: DumperProxy class-accessing264323 -Node: DumperProxy class-instance creation264788 -Node: DumperProxy-saving and restoring265293 -Node: Duration265708 -Node: Duration class-instance creation266119 -Node: Duration class-instance creation (non ANSI)266619 -Node: Duration-arithmetics267098 -Node: Error268286 -Node: Error-exception description268611 -Node: Exception268952 -Node: Exception class-comparison270090 -Node: Exception class-creating ExceptionCollections270554 -Node: Exception class-initialization270978 -Node: Exception class-instance creation271360 -Node: Exception class-interoperability with TrappableEvents271944 -Node: Exception-comparison272418 -Node: Exception-exception description272866 -Node: Exception-exception signaling273309 -Node: ExceptionSet273702 -Node: ExceptionSet class-instance creation274284 -Node: ExceptionSet-enumerating274549 -Node: False275113 -Node: False-basic275512 -Node: False-C hacks276506 -Node: False-printing276686 -Node: File276887 -Node: File class-C functions277750 -Node: File class-file name management278031 -Node: File class-file operations279570 -Node: File class-instance creation280501 -Node: File class-reading system defaults281003 -Node: File class-testing281357 -Node: File-accessing282009 -Node: File-file name management283735 -Node: File-file operations284589 -Node: File-printing286419 -Node: File-testing286723 -Node: FileDescriptor287783 -Node: FileDescriptor class-initialization288944 -Node: FileDescriptor class-instance creation289282 -Node: FileDescriptor-accessing295163 -Node: FileDescriptor-basic296323 -Node: FileDescriptor-built ins297774 -Node: FileDescriptor-class type methods299290 -Node: FileDescriptor-initialize-release299720 -Node: FileDescriptor-low-level access300312 -Node: FileDescriptor-overriding inherited methods301540 -Node: FileDescriptor-printing302384 -Node: FileDescriptor-testing302684 -Node: FileSegment302908 -Node: FileSegment class-basic303527 -Node: FileSegment class-installing303884 -Node: FileSegment-basic304270 -Node: FileSegment-equality305269 -Node: FileStream305552 -Node: FileStream class-file-in306268 -Node: FileStream class-standard streams309805 -Node: FileStream-basic310545 -Node: FileStream-buffering311494 -Node: FileStream-compiling312707 -Node: FileStream-overriding inherited methods313082 -Node: FileStream-testing313863 -Node: Float314085 -Node: Float class-byte-order dependancies314968 -Node: Float class-characterization315248 -Node: Float-arithmetic316270 -Node: Float-basic316680 -Node: Float-built ins316875 -Node: Float-coercing317816 -Node: Float-comparing318321 -Node: Float-printing318971 -Node: Float-storing319196 -Node: Float-testing319604 -Node: Float-testing functionality320373 -Node: Float-transcendental operations320611 -Node: FloatD321096 -Node: FloatD class-byte-order dependencies321601 -Node: FloatD class-characterization321996 -Node: FloatD class-converting323270 -Node: FloatD-built ins323526 -Node: FloatD-coercing324763 -Node: FloatE325166 -Node: FloatE class-byte-order dependancies325721 -Node: FloatE class-byte-order dependencies326013 -Node: FloatE class-characterization326379 -Node: FloatE class-converting327941 -Node: FloatE-built ins328197 -Node: FloatE-coercing329434 -Node: FloatQ329837 -Node: FloatQ class-byte-order dependancies330383 -Node: FloatQ class-characterization330668 -Node: FloatQ class-converting332230 -Node: FloatQ-built ins332486 -Node: FloatQ-coercing333723 -Node: FloatQ-misc math334151 -Node: Fraction334348 -Node: Fraction class-converting335105 -Node: Fraction class-instance creation335349 -Node: Fraction-accessing335734 -Node: Fraction-arithmetic336024 -Node: Fraction-coercing336748 -Node: Fraction-comparing337387 -Node: Fraction-converting337889 -Node: Fraction-optimized cases338390 -Node: Fraction-printing338824 -Node: Fraction-testing339154 -Node: Generator339361 -Node: Generator class-instance creation341667 -Node: Generator-stream protocol342414 -Node: Getopt343477 -Node: Getopt class-instance creation343843 -Node: Halt346482 -Node: Halt-description346776 -Node: HashedCollection347027 -Node: HashedCollection class-instance creation347888 -Node: HashedCollection-accessing348360 -Node: HashedCollection-builtins348940 -Node: HashedCollection-copying349717 -Node: HashedCollection-enumerating the elements of a collection350195 -Node: HashedCollection-rehashing350571 -Node: HashedCollection-removing350857 -Node: HashedCollection-saving and loading351266 -Node: HashedCollection-storing351780 -Node: HashedCollection-testing collections352107 -Node: HomedAssociation353054 -Node: HomedAssociation class-basic353624 -Node: HomedAssociation-accessing353926 -Node: HomedAssociation-finalization354292 -Node: HomedAssociation-storing354912 -Node: IdentityDictionary355181 -Node: IdentitySet355574 -Node: IdentitySet-testing355973 -Node: Integer356234 -Node: Integer class-converting357063 -Node: Integer-accessing357424 -Node: Integer-basic357663 -Node: Integer-bit operators357873 -Node: Integer-converting359241 -Node: Integer-extension359967 -Node: Integer-iterators360280 -Node: Integer-math methods360646 -Node: Integer-printing361547 -Node: Integer-storing362793 -Node: Integer-testing functionality363120 -Node: Interval363394 -Node: Interval class-instance creation363990 -Node: Interval-basic364592 -Node: Interval-printing365278 -Node: Interval-storing365611 -Node: Interval-testing365858 -Node: LargeArray366129 -Node: LargeArray-overridden366532 -Node: LargeArrayedCollection366724 -Node: LargeArrayedCollection class-instance creation367264 -Node: LargeArrayedCollection-accessing367623 -Node: LargeArrayedCollection-basic368127 -Node: LargeByteArray368528 -Node: LargeByteArray-overridden368956 -Node: LargeInteger369397 -Node: LargeInteger-accessing370232 -Node: LargeInteger-arithmetic370471 -Node: LargeInteger-bit operations371598 -Node: LargeInteger-built-ins372273 -Node: LargeInteger-coercion373352 -Node: LargeInteger-disabled373788 -Node: LargeInteger-primitive operations374163 -Node: LargeInteger-testing374643 -Node: LargeNegativeInteger375287 -Node: LargeNegativeInteger-converting375989 -Node: LargeNegativeInteger-numeric testing376377 -Node: LargeNegativeInteger-reverting to LargePositiveInteger376912 -Node: LargePositiveInteger377484 -Node: LargePositiveInteger-arithmetic378361 -Node: LargePositiveInteger-converting378837 -Node: LargePositiveInteger-helper byte-level methods379391 -Node: LargePositiveInteger-numeric testing381128 -Node: LargePositiveInteger-primitive operations381664 -Node: LargeWordArray382358 -Node: LargeWordArray-overridden382788 -Node: LargeZeroInteger383087 -Node: LargeZeroInteger-accessing383915 -Node: LargeZeroInteger-arithmetic384180 -Node: LargeZeroInteger-numeric testing385110 -Node: LargeZeroInteger-printing385447 -Node: Link385745 -Node: Link class-instance creation386290 -Node: Link-basic386522 -Node: Link-iteration386775 -Node: LinkedList387236 -Node: LinkedList-accessing387844 -Node: LinkedList-adding388160 -Node: LinkedList-enumerating388893 -Node: LinkedList-testing389373 -Node: LookupKey389729 -Node: LookupKey class-basic390283 -Node: LookupKey-accessing390525 -Node: LookupKey-printing390790 -Node: LookupKey-storing391037 -Node: LookupKey-testing391293 -Node: LookupTable391727 -Node: LookupTable class-instance creation392602 -Node: LookupTable-accessing392864 -Node: LookupTable-enumerating393673 -Node: LookupTable-hashing394198 -Node: LookupTable-rehashing394439 -Node: LookupTable-removing394664 -Node: LookupTable-storing395166 -Node: Magnitude395405 -Node: Magnitude-basic395861 -Node: Magnitude-misc methods396393 -Node: MappedCollection396809 -Node: MappedCollection class-instance creation398184 -Node: MappedCollection-basic398637 -Node: Memory400392 -Node: Memory class-accessing400952 -Node: Message405084 -Node: Message class-creating instances405760 -Node: Message-accessing406052 -Node: Message-basic406494 -Node: Message-printing406793 -Node: MessageNotUnderstood407125 -Node: MessageNotUnderstood-accessing407619 -Node: MessageNotUnderstood-description407958 -Node: Metaclass408239 -Node: Metaclass class-instance creation409238 -Node: Metaclass-accessing409523 -Node: Metaclass-basic409969 -Node: Metaclass-delegation411313 -Node: Metaclass-filing412842 -Node: Metaclass-printing413133 -Node: Metaclass-testing functionality413688 -Node: MethodContext413949 -Node: MethodContext-accessing414491 -Node: MethodContext-debugging415801 -Node: MethodContext-printing416583 -Node: MethodDictionary416829 -Node: MethodDictionary-adding417360 -Node: MethodDictionary-rehashing417609 -Node: MethodDictionary-removing417863 -Node: MethodInfo418275 -Node: MethodInfo-accessing418761 -Node: MethodInfo-equality419706 -Node: Namespace419999 -Node: Namespace class-accessing420607 -Node: Namespace class-disabling instance creation421010 -Node: Namespace class-initialization421406 -Node: Namespace-accessing421843 -Node: Namespace-namespace hierarchy422132 -Node: Namespace-overrides for superspaces422630 -Node: Namespace-printing424427 -Node: NetClients.URIResolver424931 -Node: NetClients.URIResolver class-api425386 -Node: NetClients.URIResolver class-instance creation426536 -Node: NetClients.URL426913 -Node: NetClients.URL class-encoding URLs427634 -Node: NetClients.URL class-instance creation428139 -Node: NetClients.URL-accessing428964 -Node: NetClients.URL-comparing431689 -Node: NetClients.URL-copying432215 -Node: NetClients.URL-initialize-release432752 -Node: NetClients.URL-printing433051 -Node: NetClients.URL-testing433345 -Node: NetClients.URL-utilities434121 -Node: Notification434431 -Node: Notification-exception description434884 -Node: NullProxy435346 -Node: NullProxy class-instance creation435958 -Node: NullProxy-accessing436229 -Node: NullValueHolder436481 -Node: NullValueHolder class-creating instances437070 -Node: NullValueHolder-accessing437417 -Node: Number437765 -Node: Number class-converting438661 -Node: Number class-testing439121 -Node: Number-arithmetic439389 -Node: Number-comparing440722 -Node: Number-converting441275 -Node: Number-copying442622 -Node: Number-error raising442937 -Node: Number-misc math443308 -Node: Number-point creation445473 -Node: Number-retrying445768 -Node: Number-shortcuts and iterators447573 -Node: Number-testing448440 -Node: Number-truncation and round off449876 -Node: Object450691 -Node: Object class-initialization451647 -Node: Object-built ins452246 -Node: Object-change and update460965 -Node: Object-class type methods462172 -Node: Object-conversion462991 -Node: Object-copying463238 -Node: Object-debugging463902 -Node: Object-dependents access464231 -Node: Object-error raising464935 -Node: Object-finalization465622 -Node: Object-printing466615 -Node: Object-relational operators468360 -Node: Object-saving and loading468724 -Node: Object-storing469727 -Node: Object-syntax shortcuts470425 -Node: Object-testing functionality470752 -Node: Object-VM callbacks472320 -Node: ObjectDumper472805 -Node: ObjectDumper class-establishing proxy classes474010 -Node: ObjectDumper class-instance creation474859 -Node: ObjectDumper class-shortcuts475272 -Node: ObjectDumper class-testing475666 -Node: ObjectDumper-accessing476110 -Node: ObjectDumper-loading/dumping objects476618 -Node: ObjectDumper-stream interface477058 -Node: ObjectMemory477440 -Node: ObjectMemory class-accessing478525 -Node: ObjectMemory class-builtins478792 -Node: ObjectMemory class-initialization482139 -Node: ObjectMemory class-saving the image482506 -Node: ObjectMemory-accessing482834 -Node: ObjectMemory-builtins487788 -Node: ObjectMemory-derived information488073 -Node: OrderedCollection489060 -Node: OrderedCollection class-instance creation489782 -Node: OrderedCollection-accessing490140 -Node: OrderedCollection-adding490607 -Node: OrderedCollection-removing492671 -Node: Package493326 -Node: Package class-instance creation493800 -Node: Package-accessing494056 -Node: PackageLoader497116 -Node: PackageLoader class-accessing497680 -Node: PackageLoader class-loading500301 -Node: PackageLoader class-testing500701 -Node: Permission500992 -Node: Permission class-testing501461 -Node: Permission-accessing502211 -Node: Permission-testing502789 -Node: PluggableAdaptor503039 -Node: PluggableAdaptor class-creating instances503676 -Node: PluggableAdaptor-accessing504772 -Node: PluggableProxy505073 -Node: PluggableProxy class-accessing505711 -Node: PluggableProxy-saving and restoring506161 -Node: Point506596 -Node: Point class-instance creation507335 -Node: Point-accessing507648 -Node: Point-arithmetic508082 -Node: Point-comparing508801 -Node: Point-converting509614 -Node: Point-point functions510133 -Node: Point-printing511081 -Node: Point-storing511315 -Node: Point-truncation and round off511563 -Node: PositionableStream511975 -Node: PositionableStream class-instance creation512939 -Node: PositionableStream-accessing-reading513464 -Node: PositionableStream-class type methods514839 -Node: PositionableStream-compiling515374 -Node: PositionableStream-positioning515868 -Node: PositionableStream-testing517099 -Node: PositionableStream-truncating517581 -Node: Process517881 -Node: Process-accessing518461 -Node: Process-basic519586 -Node: Process-builtins521298 -Node: Process-printing522418 -Node: ProcessorScheduler522632 -Node: ProcessorScheduler class-instance creation523311 -Node: ProcessorScheduler-basic523625 -Node: ProcessorScheduler-built ins525099 -Node: ProcessorScheduler-idle tasks525801 -Node: ProcessorScheduler-printing526305 -Node: ProcessorScheduler-priorities526624 -Node: ProcessorScheduler-storing528290 -Node: ProcessorScheduler-timed invocation528631 -Node: Promise529202 -Node: Promise class-creating instances529829 -Node: Promise-accessing530240 -Node: Promise-initializing530695 -Node: Promise-printing530939 -Node: Promise-still unclassified531181 -Node: Random531437 -Node: Random class-instance creation531898 -Node: Random class-shortcuts532280 -Node: Random-basic532670 -Node: Random-testing533100 -Node: ReadStream533426 -Node: ReadStream class-instance creation533833 -Node: ReadWriteStream534253 -Node: ReadWriteStream class-instance creation534751 -Node: ReadWriteStream-positioning535389 -Node: Rectangle535708 -Node: Rectangle class-instance creation536509 -Node: Rectangle-accessing537067 -Node: Rectangle-copying539481 -Node: Rectangle-printing539715 -Node: Rectangle-rectangle functions540057 -Node: Rectangle-testing541960 -Node: Rectangle-transforming542790 -Node: Rectangle-truncation and round off543430 -Node: RecursionLock543735 -Node: RecursionLock class-instance creation544139 -Node: RecursionLock-accessing544389 -Node: RecursionLock-mutual exclusion545002 -Node: RecursionLock-printing545377 -Node: Regex545643 -Node: Regex class-instance creation546721 -Node: Regex-basic546980 -Node: Regex-conversion547402 -Node: Regex-printing547708 -Node: RegexResults548368 -Node: RegexResults-accessing548986 -Node: RegexResults-testing550499 -Node: RootNamespace551531 -Node: RootNamespace class-instance creation552091 -Node: RootNamespace-namespace hierarchy552440 -Node: RootNamespace-overrides for superspaces552887 -Node: RootNamespace-printing553518 -Node: RunArray554042 -Node: RunArray class-instance creation555015 -Node: RunArray-accessing555303 -Node: RunArray-adding555653 -Node: RunArray-basic556743 -Node: RunArray-copying557064 -Node: RunArray-enumerating557436 -Node: RunArray-removing557912 -Node: RunArray-searching558393 -Node: RunArray-testing558823 -Node: ScaledDecimal559082 -Node: ScaledDecimal class-constants559903 -Node: ScaledDecimal class-instance creation560169 -Node: ScaledDecimal-arithmetic560622 -Node: ScaledDecimal-coercion561357 -Node: ScaledDecimal-comparing562278 -Node: ScaledDecimal-constants562930 -Node: ScaledDecimal-printing563248 -Node: ScaledDecimal-storing563724 -Node: SecurityPolicy564165 -Node: SecurityPolicy-modifying564753 -Node: SecurityPolicy-querying565105 -Node: Semaphore565364 -Node: Semaphore class-instance creation566040 -Node: Semaphore-accessing566429 -Node: Semaphore-builtins566929 -Node: Semaphore-mutual exclusion568290 -Node: Semaphore-printing568640 -Node: SequenceableCollection568886 -Node: SequenceableCollection class-instance creation569653 -Node: SequenceableCollection-basic570147 -Node: SequenceableCollection-concatenating574415 -Node: SequenceableCollection-copying SequenceableCollections575479 -Node: SequenceableCollection-enumerating577774 -Node: SequenceableCollection-replacing items581336 -Node: SequenceableCollection-testing582299 -Node: Set582858 -Node: Set-arithmetic583290 -Node: Set-awful ST-80 compatibility hacks583635 -Node: Set-comparing584012 -Node: SharedQueue584423 -Node: SharedQueue class-instance creation584957 -Node: SharedQueue-accessing585342 -Node: Signal585860 -Node: Signal-accessing586528 -Node: Signal-copying587383 -Node: Signal-exception handling587656 -Node: SingletonProxy590287 -Node: SingletonProxy class-accessing590903 -Node: SingletonProxy class-instance creation591284 -Node: SingletonProxy-saving and restoring591741 -Node: SmallInteger592184 -Node: SmallInteger class-getting limits592883 -Node: SmallInteger class-testing593385 -Node: SmallInteger-bit arithmetic593697 -Node: SmallInteger-built ins594064 -Node: SmallInteger-builtins596494 -Node: SmallInteger-coercion methods597261 -Node: SmallInteger-testing functionality597633 -Node: SortedCollection597882 -Node: SortedCollection class-hacking599026 -Node: SortedCollection class-instance creation599311 -Node: SortedCollection-basic599840 -Node: SortedCollection-copying600401 -Node: SortedCollection-disabled600724 -Node: SortedCollection-enumerating601594 -Node: SortedCollection-saving and loading601940 -Node: SortedCollection-searching602302 -Node: Stream602905 -Node: Stream-accessing-reading603907 -Node: Stream-accessing-writing605779 -Node: Stream-basic606492 -Node: Stream-built ins606683 -Node: Stream-character writing607613 -Node: Stream-enumerating608482 -Node: Stream-filing out608864 -Node: Stream-filtering609224 -Node: Stream-polymorphism611395 -Node: Stream-positioning611799 -Node: Stream-printing612981 -Node: Stream-storing613736 -Node: Stream-testing614104 -Node: String614618 -Node: String class-instance creation615690 -Node: String class-multibyte encodings616174 -Node: String-accessing616502 -Node: String-basic616899 -Node: String-built ins617304 -Node: String-converting619167 -Node: String-printing619646 -Node: String-regex620494 -Node: String-testing functionality626673 -Node: Symbol626875 -Node: Symbol class-built ins627713 -Node: Symbol class-instance creation627944 -Node: Symbol class-symbol table629099 -Node: Symbol-basic630524 -Node: Symbol-built ins631293 -Node: Symbol-converting631618 -Node: Symbol-misc631974 -Node: Symbol-storing632154 -Node: Symbol-testing633060 -Node: Symbol-testing functionality633344 -Node: SymLink633581 -Node: SymLink class-instance creation634142 -Node: SymLink-accessing634478 -Node: SymLink-iteration634829 -Node: SymLink-printing635060 -Node: SystemDictionary635276 -Node: SystemDictionary class-initialization636233 -Node: SystemDictionary-basic636508 -Node: SystemDictionary-builtins636851 -Node: SystemDictionary-c call-outs638197 -Node: SystemDictionary-command-line638606 -Node: SystemDictionary-miscellaneous641297 -Node: SystemDictionary-printing641763 -Node: SystemDictionary-special accessing642198 -Node: SystemDictionary-testing642811 -Node: SystemExceptions.AlreadyDefined643161 -Node: SystemExceptions.AlreadyDefined-accessing643687 -Node: SystemExceptions.ArgumentOutOfRange643955 -Node: SystemExceptions.ArgumentOutOfRange class-signaling644555 -Node: SystemExceptions.ArgumentOutOfRange-accessing644977 -Node: SystemExceptions.BadReturn645571 -Node: SystemExceptions.BadReturn-accessing646061 -Node: SystemExceptions.CInterfaceError646321 -Node: SystemExceptions.CInterfaceError-accessing646832 -Node: SystemExceptions.EmptyCollection647116 -Node: SystemExceptions.EmptyCollection-accessing647613 -Node: SystemExceptions.EndOfStream647897 -Node: SystemExceptions.EndOfStream class-signaling648398 -Node: SystemExceptions.EndOfStream-accessing648754 -Node: SystemExceptions.FileError649190 -Node: SystemExceptions.FileError-accessing649679 -Node: SystemExceptions.IndexOutOfRange649939 -Node: SystemExceptions.IndexOutOfRange class-signaling650535 -Node: SystemExceptions.IndexOutOfRange-accessing650917 -Node: SystemExceptions.InvalidArgument651447 -Node: SystemExceptions.InvalidArgument-accessing651954 -Node: SystemExceptions.InvalidProcessState652227 -Node: SystemExceptions.InvalidProcessState-accessing652768 -Node: SystemExceptions.InvalidSize653068 -Node: SystemExceptions.InvalidSize-accessing653545 -Node: SystemExceptions.InvalidValue653813 -Node: SystemExceptions.InvalidValue class-signaling654350 -Node: SystemExceptions.InvalidValue-accessing654815 -Node: SystemExceptions.MustBeBoolean655322 -Node: SystemExceptions.MustBeBoolean class-signaling655813 -Node: SystemExceptions.MutationError656143 -Node: SystemExceptions.MutationError class-instance creation656682 -Node: SystemExceptions.MutationError-accessing657075 -Node: SystemExceptions.NoRunnableProcess657414 -Node: SystemExceptions.NoRunnableProcess-accessing657920 -Node: SystemExceptions.NotEnoughElements658212 -Node: SystemExceptions.NotEnoughElements class-signaling658778 -Node: SystemExceptions.NotEnoughElements-accessing659163 -Node: SystemExceptions.NotFound659715 -Node: SystemExceptions.NotFound class-accessing660241 -Node: SystemExceptions.NotFound-accessing660632 -Node: SystemExceptions.NotImplemented660938 -Node: SystemExceptions.NotImplemented-accessing661406 -Node: SystemExceptions.NotIndexable661686 -Node: SystemExceptions.NotIndexable-accessing662159 -Node: SystemExceptions.NotYetImplemented662431 -Node: SystemExceptions.NotYetImplemented-accessing662957 -Node: SystemExceptions.PackageNotAvailable663249 -Node: SystemExceptions.PackageNotAvailable class-still unclassified663773 -Node: SystemExceptions.PackageNotAvailable-description664211 -Node: SystemExceptions.PrimitiveFailed664648 -Node: SystemExceptions.PrimitiveFailed-accessing665145 -Node: SystemExceptions.ProcessBeingTerminated665429 -Node: SystemExceptions.ProcessBeingTerminated-accessing665923 -Node: SystemExceptions.ProcessTerminated666387 -Node: SystemExceptions.ProcessTerminated-accessing666922 -Node: SystemExceptions.ReadOnlyObject667214 -Node: SystemExceptions.ReadOnlyObject-accessing667700 -Node: SystemExceptions.SecurityError667980 -Node: SystemExceptions.SecurityError class-accessing668554 -Node: SystemExceptions.SecurityError-accessing668950 -Node: SystemExceptions.ShouldNotImplement669436 -Node: SystemExceptions.ShouldNotImplement-accessing669975 -Node: SystemExceptions.SubclassResponsibility670271 -Node: SystemExceptions.SubclassResponsibility-accessing670851 -Node: SystemExceptions.UserInterrupt671163 -Node: SystemExceptions.UserInterrupt-accessing671635 -Node: SystemExceptions.VerificationError671911 -Node: SystemExceptions.VerificationError-accessing672396 -Node: SystemExceptions.VMError672688 -Node: SystemExceptions.VMError-accessing673128 -Node: SystemExceptions.WrongArgumentCount673380 -Node: SystemExceptions.WrongArgumentCount-accessing673946 -Node: SystemExceptions.WrongClass674242 -Node: SystemExceptions.WrongClass class-signaling674870 -Node: SystemExceptions.WrongClass-accessing675542 -Node: SystemExceptions.WrongMessageSent676211 -Node: SystemExceptions.WrongMessageSent class-signaling676868 -Node: SystemExceptions.WrongMessageSent-accessing677301 -Node: TextCollector677906 -Node: TextCollector class-accessing678616 -Node: TextCollector-accessing679129 -Node: TextCollector-printing679964 -Node: TextCollector-set up680312 -Node: TextCollector-storing680891 -Node: Time681235 -Node: Time class-basic (UTC)682019 -Node: Time class-builtins682481 -Node: Time class-clocks683522 -Node: Time class-initialization684093 -Node: Time class-instance creation684453 -Node: Time-accessing (ANSI for DateAndTimes)685346 -Node: Time-accessing (non ANSI & for Durations)685878 -Node: Time-arithmetic686344 -Node: Time-comparing686786 -Node: True687087 -Node: True-basic687467 -Node: True-C hacks688433 -Node: True-printing688609 -Node: UndefinedObject688807 -Node: UndefinedObject-basic689543 -Node: UndefinedObject-class creation - alternative689842 -Node: UndefinedObject-class polymorphism692131 -Node: UndefinedObject-CObject interoperability695223 -Node: UndefinedObject-dependents access695651 -Node: UndefinedObject-printing696040 -Node: UndefinedObject-storing696534 -Node: UndefinedObject-testing697013 -Node: UnicodeCharacter697865 -Node: UnicodeCharacter class-built ins698457 -Node: UnicodeString698992 -Node: UnicodeString class-converting699571 -Node: UnicodeString class-multibyte encodings699949 -Node: UnicodeString-built-ins700448 -Node: UnicodeString-converting700721 -Node: UnicodeString-multibyte encodings701461 -Node: ValueAdaptor701969 -Node: ValueAdaptor class-creating instances702463 -Node: ValueAdaptor-accessing702767 -Node: ValueAdaptor-printing703190 -Node: ValueHolder703419 -Node: ValueHolder class-creating instances704046 -Node: ValueHolder-accessing704445 -Node: ValueHolder-initializing704754 -Node: VariableBinding704993 -Node: VariableBinding-printing705637 -Node: VariableBinding-saving and loading705968 -Node: VariableBinding-storing706441 -Node: VariableBinding-testing706932 -Node: VersionableObjectProxy707206 -Node: VersionableObjectProxy class-saving and restoring708114 -Node: VersionableObjectProxy-saving and restoring709154 -Node: VFS.ArchiveFileHandler709504 -Node: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol710451 -Node: VFS.ArchiveFileHandler-directory operations711653 -Node: VFS.ArchiveFileHandler-querying712316 -Node: VFS.ArchiveFileHandler-TmpFileArchiveMemberHandler protocol712819 -Node: VFS.ArchiveMemberHandler713456 -Node: VFS.ArchiveMemberHandler-accessing714178 -Node: VFS.ArchiveMemberHandler-directory operations715591 -Node: VFS.ArchiveMemberHandler-file operations716228 -Node: VFS.ArchiveMemberHandler-initializing716910 -Node: VFS.ArchiveMemberHandler-testing717614 -Node: VFS.CStatStruct718640 -Node: VFS.CStatStruct class-accessing719034 -Node: VFS.CStatStruct-accessing719294 -Node: VFS.CStatStruct-debugging719719 -Node: VFS.DecodedFileHandler719945 -Node: VFS.DecodedFileHandler class-registering720336 -Node: VFS.DecodedFileHandler-files721474 -Node: VFS.FileHandlerWrapper722284 -Node: VFS.FileHandlerWrapper class-instance creation722879 -Node: VFS.FileHandlerWrapper-accessing723295 -Node: VFS.FileHandlerWrapper-delegation723705 -Node: VFS.RealFileHandler725273 -Node: VFS.RealFileHandler class-C call-outs726037 -Node: VFS.RealFileHandler class-initialization726321 -Node: VFS.RealFileHandler-accessing726664 -Node: VFS.RealFileHandler-directory operations728320 -Node: VFS.RealFileHandler-file operations728832 -Node: VFS.RealFileHandler-testing729601 -Node: VFS.TmpFileArchiveMemberHandler730237 -Node: VFS.TmpFileArchiveMemberHandler-directory operations730684 -Node: VFS.TmpFileArchiveMemberHandler-finalization731233 -Node: VFS.VFSHandler731626 -Node: VFS.VFSHandler class-initializing732421 -Node: VFS.VFSHandler class-instance creation733504 -Node: VFS.VFSHandler-accessing733863 -Node: VFS.VFSHandler-directory operations735248 -Node: VFS.VFSHandler-file operations735851 -Node: VFS.VFSHandler-releasing736996 -Node: VFS.VFSHandler-testing737318 -Node: Warning738234 -Node: Warning-exception description738565 -Node: WeakArray738785 -Node: WeakArray class-instance creation739290 -Node: WeakArray-accessing739630 -Node: WeakArray-conversion741294 -Node: WeakArray-loading741945 -Node: WeakIdentitySet742226 -Node: WeakIdentitySet-accessing742743 -Node: WeakKeyDictionary743033 -Node: WeakKeyDictionary class-hacks743637 -Node: WeakKeyDictionary-accessing743969 -Node: WeakKeyIdentityDictionary744304 -Node: WeakSet744844 -Node: WeakSet-accessing745376 -Node: WeakSet-copying745757 -Node: WeakSet-loading746151 -Node: WeakValueIdentityDictionary746419 -Node: WeakValueLookupTable746977 -Node: WeakValueLookupTable class-hacks747643 -Node: WeakValueLookupTable-hacks747957 -Node: WeakValueLookupTable-rehashing748571 -Node: WordArray748810 -Node: WriteStream749128 -Node: WriteStream class-instance creation749628 -Node: WriteStream-accessing-writing750322 -Node: WriteStream-positioning751164 -Node: ZeroDivide751390 -Node: ZeroDivide class-instance creation751895 -Node: ZeroDivide-accessing752291 -Node: ZeroDivide-description752560 -Node: Class index752791 -Node: Method index772178 -Node: Cross-reference1220797 +Node: Top691 +Node: Base classes1627 +Node: AbstractNamespace11665 +Node: AbstractNamespace class-instance creation12420 +Node: AbstractNamespace-accessing12859 +Node: AbstractNamespace-basic & copying14097 +Node: AbstractNamespace-copying14651 +Node: AbstractNamespace-namespace hierarchy15107 +Node: AbstractNamespace-overrides for superspaces17904 +Node: AbstractNamespace-printing19634 +Node: AbstractNamespace-testing20219 +Node: AlternativeObjectProxy20470 +Node: AlternativeObjectProxy class-instance creation21212 +Node: AlternativeObjectProxy-accessing22157 +Node: ArithmeticError22721 +Node: ArithmeticError-description23180 +Node: Array23398 +Node: Array class-instance creation24080 +Node: Array-mutating objects24402 +Node: Array-printing24752 +Node: Array-testing25246 +Node: ArrayedCollection25399 +Node: ArrayedCollection class-instance creation26284 +Node: ArrayedCollection-basic27981 +Node: ArrayedCollection-built ins29119 +Node: ArrayedCollection-copying Collections29395 +Node: ArrayedCollection-enumerating the elements of a collection31160 +Node: ArrayedCollection-enumeration32323 +Node: ArrayedCollection-storing32864 +Node: ArrayedCollection-streams33166 +Node: Association33414 +Node: Association class-basic34099 +Node: Association-accessing34350 +Node: Association-finalization34970 +Node: Association-printing35203 +Node: Association-storing35463 +Node: Association-testing35729 +Node: Autoload36227 +Node: Autoload class-instance creation36895 +Node: Autoload-accessing37411 +Node: Bag37751 +Node: Bag class-basic38459 +Node: Bag-adding38728 +Node: Bag-enumerating the elements of a collection39221 +Node: Bag-extracting items39591 +Node: Bag-printing39883 +Node: Bag-removing40100 +Node: Bag-storing40422 +Node: Bag-testing collections40652 +Node: Behavior41150 +Node: Behavior-accessing class hierarchy42876 +Node: Behavior-accessing instances and variables43615 +Node: Behavior-accessing the methodDictionary44914 +Node: Behavior-built ins46327 +Node: Behavior-builtin48036 +Node: Behavior-compilation (alternative)48806 +Node: Behavior-compiling methods49637 +Node: Behavior-creating a class hierarchy50110 +Node: Behavior-enumerating50559 +Node: Behavior-evaluating51625 +Node: Behavior-instance creation52924 +Node: Behavior-instance variables53718 +Node: Behavior-method dictionary54283 +Node: Behavior-parsing class declarations57858 +Node: Behavior-pluggable behavior (not yet implemented)58536 +Node: Behavior-printing hierarchy59683 +Node: Behavior-still unclassified60278 +Node: Behavior-support for lightweight classes60872 +Node: Behavior-testing functionality62062 +Node: Behavior-testing the class hierarchy62345 +Node: Behavior-testing the form of the instances63415 +Node: Behavior-testing the method dictionary64352 +Node: BindingDictionary65753 +Node: BindingDictionary-accessing66610 +Node: BindingDictionary-copying68506 +Node: BindingDictionary-forward declarations69181 +Node: BindingDictionary-printing69619 +Node: BindingDictionary-testing70027 +Node: BlockClosure70256 +Node: BlockClosure class-instance creation71489 +Node: BlockClosure class-testing72371 +Node: BlockClosure-accessing72679 +Node: BlockClosure-built ins74281 +Node: BlockClosure-control structures74931 +Node: BlockClosure-exception handling75612 +Node: BlockClosure-multiple process77628 +Node: BlockClosure-overriding79085 +Node: BlockClosure-testing79362 +Node: BlockClosure-unwind protection79636 +Node: BlockContext81121 +Node: BlockContext-accessing81950 +Node: BlockContext-debugging83477 +Node: BlockContext-printing83896 +Node: Boolean84135 +Node: Boolean class-testing84896 +Node: Boolean-basic85213 +Node: Boolean-C hacks86509 +Node: Boolean-overriding86771 +Node: Boolean-storing87014 +Node: ByteArray87430 +Node: ByteArray class-instance creation88062 +Node: ByteArray-built ins88398 +Node: ByteArray-converting89737 +Node: ByteArray-more advanced accessing90196 +Node: ByteArray-storing97116 +Node: ByteStream97540 +Node: ByteStream-basic97929 +Node: CAggregate99718 +Node: CAggregate class-accessing100023 +Node: CAggregate-accessing100313 +Node: CallinProcess100551 +Node: CArray101079 +Node: CArray-accessing101332 +Node: CArrayCType101539 +Node: CArrayCType class-instance creation101886 +Node: CArrayCType-accessing102581 +Node: CArrayCType-storing102987 +Node: CBoolean103182 +Node: CBoolean-accessing103489 +Node: CByte103820 +Node: CByte class-conversion104133 +Node: CByte-accessing104426 +Node: CChar104838 +Node: CChar class-accessing105142 +Node: CChar-accessing105509 +Node: CChar-conversion105854 +Node: CCompound106255 +Node: CCompound class-instance creation106607 +Node: CCompound class-subclass creation106937 +Node: CCompound-instance creation108564 +Node: CDouble108917 +Node: CDouble class-accessing109199 +Node: CDouble-accessing109576 +Node: CFloat109906 +Node: CFloat class-accessing110194 +Node: CFloat-accessing110566 +Node: CFunctionDescriptor110891 +Node: CFunctionDescriptor class-instance creation111676 +Node: CFunctionDescriptor class-testing112038 +Node: CFunctionDescriptor-accessing112549 +Node: CFunctionDescriptor-calling113181 +Node: CFunctionDescriptor-printing115079 +Node: Character115352 +Node: Character class-built ins116655 +Node: Character class-constants117309 +Node: Character class-initializing lookup tables118117 +Node: Character class-instance creation118767 +Node: Character class-testing119139 +Node: Character-built ins119429 +Node: Character-coercion methods120218 +Node: Character-comparing120922 +Node: Character-converting121569 +Node: Character-printing121958 +Node: Character-storing122446 +Node: Character-testing122790 +Node: Character-testing functionality123678 +Node: CharacterArray123926 +Node: CharacterArray class-basic124663 +Node: CharacterArray class-multibyte encodings125150 +Node: CharacterArray-built ins125533 +Node: CharacterArray-comparing125982 +Node: CharacterArray-converting128401 +Node: CharacterArray-multibyte encodings129943 +Node: CharacterArray-string processing130518 +Node: CharacterArray-testing functionality133659 +Node: CInt133919 +Node: CInt class-accessing134190 +Node: CInt-accessing134532 +Node: Class134867 +Node: Class class-initialize135820 +Node: Class-accessing instances and variables136067 +Node: Class-filing138021 +Node: Class-instance creation138453 +Node: Class-instance creation - alternative141414 +Node: Class-pragmas143592 +Node: Class-printing144106 +Node: Class-saving and loading144503 +Node: Class-security145885 +Node: Class-testing146169 +Node: Class-testing functionality146414 +Node: ClassDescription146647 +Node: ClassDescription-compiling147431 +Node: ClassDescription-conversion148273 +Node: ClassDescription-copying148740 +Node: ClassDescription-filing149951 +Node: ClassDescription-organization of messages and classes150748 +Node: ClassDescription-parsing class declarations152177 +Node: ClassDescription-printing152686 +Node: ClassDescription-still unclassified153483 +Node: CLong154036 +Node: CLong class-accessing154320 +Node: CLong-accessing154687 +Node: CLongDouble155007 +Node: CLongDouble class-accessing155306 +Node: CLongDouble-accessing155703 +Node: CObject156053 +Node: CObject class-conversion156958 +Node: CObject class-instance creation157222 +Node: CObject class-subclassing157842 +Node: CObject-accessing158112 +Node: CObject-C data access158555 +Node: CObject-conversion159173 +Node: CObject-finalization159836 +Node: CObject-pointer-like behavior160314 +Node: Collection162588 +Node: Collection class-instance creation163575 +Node: Collection class-multibyte encodings165023 +Node: Collection-adding165363 +Node: Collection-converting165726 +Node: Collection-copying Collections166997 +Node: Collection-enumeration167549 +Node: Collection-finalization171192 +Node: Collection-printing171511 +Node: Collection-removing171868 +Node: Collection-storing172822 +Node: Collection-testing collections173095 +Node: CompiledBlock173859 +Node: CompiledBlock class-instance creation174367 +Node: CompiledBlock-accessing175136 +Node: CompiledBlock-basic176209 +Node: CompiledBlock-printing176932 +Node: CompiledBlock-saving and loading177213 +Node: CompiledCode177648 +Node: CompiledCode class-cache flushing178511 +Node: CompiledCode class-instance creation178881 +Node: CompiledCode class-tables179480 +Node: CompiledCode-accessing180715 +Node: CompiledCode-basic182235 +Node: CompiledCode-copying183000 +Node: CompiledCode-debugging183239 +Node: CompiledCode-decoding bytecodes183512 +Node: CompiledCode-literals - iteration183937 +Node: CompiledCode-security184499 +Node: CompiledCode-testing accesses184831 +Node: CompiledCode-translation185998 +Node: CompiledMethod186272 +Node: CompiledMethod class-instance creation187269 +Node: CompiledMethod class-lean images188145 +Node: CompiledMethod-accessing188480 +Node: CompiledMethod-attributes190182 +Node: CompiledMethod-basic191138 +Node: CompiledMethod-c call-outs191455 +Node: CompiledMethod-compiling192005 +Node: CompiledMethod-invoking192855 +Node: CompiledMethod-printing193902 +Node: CompiledMethod-saving and loading194260 +Node: CompiledMethod-source code194730 +Node: CompiledMethod-testing195436 +Node: ContextPart196029 +Node: ContextPart class-built ins196897 +Node: ContextPart class-exception handling197212 +Node: ContextPart-accessing198208 +Node: ContextPart-built ins201551 +Node: ContextPart-copying202251 +Node: ContextPart-debugging202611 +Node: ContextPart-enumerating203469 +Node: ContextPart-exception handling204087 +Node: ContextPart-printing204363 +Node: ContextPart-security checks204776 +Node: Continuation205344 +Node: Continuation class-instance creation206014 +Node: Continuation-invocation206688 +Node: CPtr208055 +Node: CPtr-accessing208297 +Node: CPtrCType208846 +Node: CPtrCType class-instance creation209174 +Node: CPtrCType-accessing209545 +Node: CPtrCType-storing210046 +Node: CScalar210231 +Node: CScalar class-instance creation210527 +Node: CScalar-accessing210999 +Node: CScalarCType211528 +Node: CScalarCType-accessing211826 +Node: CScalarCType-storing212168 +Node: CShort212404 +Node: CShort class-accessing212688 +Node: CShort-accessing213060 +Node: CSmalltalk213385 +Node: CSmalltalk class-accessing213680 +Node: CSmalltalk-accessing214072 +Node: CString214417 +Node: CString class-accessing215465 +Node: CString class-instance creation215759 +Node: CString-accessing216263 +Node: CStringCType216792 +Node: CStringCType-accessing217061 +Node: CStruct217276 +Node: CStruct class-subclass creation217536 +Node: CType217777 +Node: CType class-C instance creation218941 +Node: CType class-initialization219635 +Node: CType-accessing219892 +Node: CType-C instance creation220744 +Node: CType-storing221269 +Node: CUChar221480 +Node: CUChar class-getting info221755 +Node: CUChar-accessing222136 +Node: CUInt222464 +Node: CUInt class-accessing222733 +Node: CUInt-accessing223100 +Node: CULong223420 +Node: CULong class-accessing223693 +Node: CULong-accessing224065 +Node: CUnion224390 +Node: CUnion class-subclass creation224642 +Node: CUShort224879 +Node: CUShort class-accessing225156 +Node: CUShort-accessing225533 +Node: Date225863 +Node: Date class-basic227335 +Node: Date class-instance creation (ANSI)228463 +Node: Date class-instance creation (Blue Book)228953 +Node: Date-basic230273 +Node: Date-compatibility (non-ANSI)230817 +Node: Date-date computations231230 +Node: Date-printing232941 +Node: Date-storing233169 +Node: Date-testing233392 +Node: DateTime233711 +Node: DateTime class-information234373 +Node: DateTime class-instance creation234664 +Node: DateTime class-instance creation (non-ANSI)235965 +Node: DateTime-basic236706 +Node: DateTime-computations237053 +Node: DateTime-printing237745 +Node: DateTime-splitting in dates & times238011 +Node: DateTime-storing238610 +Node: DateTime-testing238875 +Node: DateTime-time zones239250 +Node: DeferredVariableBinding240380 +Node: DeferredVariableBinding class-basic240981 +Node: DeferredVariableBinding-basic241620 +Node: DeferredVariableBinding-storing242108 +Node: Delay242489 +Node: Delay class-instance creation243303 +Node: Delay class-timer process243780 +Node: Delay-accessing244604 +Node: Delay-comparing244891 +Node: Delay-delaying245172 +Node: Delay-initialization245488 +Node: Delay-instance creation245761 +Node: DelayedAdaptor246038 +Node: DelayedAdaptor-accessing246574 +Node: Dictionary246953 +Node: Dictionary class-instance creation248161 +Node: Dictionary-accessing248605 +Node: Dictionary-awful ST-80 compatibility hacks250583 +Node: Dictionary-dictionary enumerating251046 +Node: Dictionary-dictionary removing252134 +Node: Dictionary-dictionary testing253003 +Node: Dictionary-polymorphism hacks253677 +Node: Dictionary-printing253962 +Node: Dictionary-rehashing254326 +Node: Dictionary-storing254543 +Node: Dictionary-testing254805 +Node: DirectedMessage255081 +Node: DirectedMessage class-creating instances255657 +Node: DirectedMessage-accessing256383 +Node: DirectedMessage-basic256691 +Node: DirectedMessage-multiple process257115 +Node: DirectedMessage-saving and loading257713 +Node: Directory258151 +Node: Directory class-file name management258891 +Node: Directory class-file operations259430 +Node: Directory class-reading system defaults260115 +Node: Directory-accessing261330 +Node: Directory-enumerating262431 +Node: DLD263406 +Node: DLD class-C call-outs264086 +Node: DLD class-dynamic linking264338 +Node: DumperProxy265684 +Node: DumperProxy class-accessing266220 +Node: DumperProxy class-instance creation266685 +Node: DumperProxy-saving and restoring267190 +Node: Duration267605 +Node: Duration class-instance creation268016 +Node: Duration class-instance creation (non ANSI)268516 +Node: Duration-arithmetics268995 +Node: Error270183 +Node: Error-exception description270508 +Node: Exception270849 +Node: Exception class-comparison271987 +Node: Exception class-creating ExceptionCollections272451 +Node: Exception class-initialization272875 +Node: Exception class-instance creation273257 +Node: Exception class-interoperability with TrappableEvents273841 +Node: Exception-comparison274315 +Node: Exception-exception description274763 +Node: Exception-exception signaling275206 +Node: ExceptionSet275599 +Node: ExceptionSet class-instance creation276181 +Node: ExceptionSet-enumerating276446 +Node: False277010 +Node: False-basic277409 +Node: False-C hacks278403 +Node: False-printing278583 +Node: File278784 +Node: File class-C functions279647 +Node: File class-file name management279928 +Node: File class-file operations281467 +Node: File class-instance creation282398 +Node: File class-reading system defaults282900 +Node: File class-testing283254 +Node: File-accessing283906 +Node: File-file name management285632 +Node: File-file operations286486 +Node: File-printing288316 +Node: File-testing288620 +Node: FileDescriptor289680 +Node: FileDescriptor class-initialization290841 +Node: FileDescriptor class-instance creation291179 +Node: FileDescriptor-accessing297060 +Node: FileDescriptor-basic298220 +Node: FileDescriptor-built ins299671 +Node: FileDescriptor-class type methods301187 +Node: FileDescriptor-initialize-release301617 +Node: FileDescriptor-low-level access302209 +Node: FileDescriptor-overriding inherited methods303437 +Node: FileDescriptor-printing304281 +Node: FileDescriptor-testing304581 +Node: FileSegment304805 +Node: FileSegment class-basic305424 +Node: FileSegment class-installing305781 +Node: FileSegment-basic306167 +Node: FileSegment-equality307166 +Node: FileStream307449 +Node: FileStream class-file-in308165 +Node: FileStream class-standard streams311702 +Node: FileStream-basic312442 +Node: FileStream-buffering313391 +Node: FileStream-compiling314604 +Node: FileStream-overriding inherited methods314979 +Node: FileStream-testing315760 +Node: Float315982 +Node: Float class-byte-order dependancies316865 +Node: Float class-characterization317145 +Node: Float-arithmetic318167 +Node: Float-basic318577 +Node: Float-built ins318772 +Node: Float-coercing319713 +Node: Float-comparing320218 +Node: Float-printing320868 +Node: Float-storing321093 +Node: Float-testing321501 +Node: Float-testing functionality322270 +Node: Float-transcendental operations322508 +Node: FloatD322993 +Node: FloatD class-byte-order dependencies323498 +Node: FloatD class-characterization323893 +Node: FloatD class-converting325167 +Node: FloatD-built ins325423 +Node: FloatD-coercing326660 +Node: FloatE327063 +Node: FloatE class-byte-order dependancies327618 +Node: FloatE class-byte-order dependencies327910 +Node: FloatE class-characterization328276 +Node: FloatE class-converting329838 +Node: FloatE-built ins330094 +Node: FloatE-coercing331331 +Node: FloatQ331734 +Node: FloatQ class-byte-order dependancies332280 +Node: FloatQ class-characterization332565 +Node: FloatQ class-converting334127 +Node: FloatQ-built ins334383 +Node: FloatQ-coercing335620 +Node: FloatQ-misc math336048 +Node: Fraction336245 +Node: Fraction class-converting337002 +Node: Fraction class-instance creation337246 +Node: Fraction-accessing337631 +Node: Fraction-arithmetic337921 +Node: Fraction-coercing338645 +Node: Fraction-comparing339284 +Node: Fraction-converting339786 +Node: Fraction-optimized cases340287 +Node: Fraction-printing340721 +Node: Fraction-testing341051 +Node: Generator341258 +Node: Generator class-instance creation343564 +Node: Generator-stream protocol344311 +Node: Getopt345374 +Node: Getopt class-instance creation345740 +Node: Halt348379 +Node: Halt-description348673 +Node: HashedCollection348924 +Node: HashedCollection class-instance creation349785 +Node: HashedCollection-accessing350257 +Node: HashedCollection-builtins350837 +Node: HashedCollection-copying351614 +Node: HashedCollection-enumerating the elements of a collection352092 +Node: HashedCollection-rehashing352468 +Node: HashedCollection-removing352754 +Node: HashedCollection-saving and loading353163 +Node: HashedCollection-storing353677 +Node: HashedCollection-testing collections354004 +Node: HomedAssociation354951 +Node: HomedAssociation class-basic355521 +Node: HomedAssociation-accessing355823 +Node: HomedAssociation-finalization356189 +Node: HomedAssociation-storing356809 +Node: IdentityDictionary357078 +Node: IdentitySet357471 +Node: IdentitySet-testing357870 +Node: Integer358131 +Node: Integer class-converting358960 +Node: Integer-accessing359321 +Node: Integer-basic359560 +Node: Integer-bit operators359770 +Node: Integer-converting361138 +Node: Integer-extension361864 +Node: Integer-iterators362177 +Node: Integer-math methods362543 +Node: Integer-printing363444 +Node: Integer-storing364690 +Node: Integer-testing functionality365017 +Node: Interval365291 +Node: Interval class-instance creation365887 +Node: Interval-basic366489 +Node: Interval-printing367175 +Node: Interval-storing367508 +Node: Interval-testing367755 +Node: LargeArray368026 +Node: LargeArray-overridden368429 +Node: LargeArrayedCollection368621 +Node: LargeArrayedCollection class-instance creation369161 +Node: LargeArrayedCollection-accessing369520 +Node: LargeArrayedCollection-basic370024 +Node: LargeByteArray370425 +Node: LargeByteArray-overridden370853 +Node: LargeInteger371294 +Node: LargeInteger-accessing372129 +Node: LargeInteger-arithmetic372368 +Node: LargeInteger-bit operations373495 +Node: LargeInteger-built-ins374170 +Node: LargeInteger-coercion375249 +Node: LargeInteger-disabled375685 +Node: LargeInteger-primitive operations376060 +Node: LargeInteger-testing376540 +Node: LargeNegativeInteger377184 +Node: LargeNegativeInteger-converting377886 +Node: LargeNegativeInteger-numeric testing378274 +Node: LargeNegativeInteger-reverting to LargePositiveInteger378809 +Node: LargePositiveInteger379381 +Node: LargePositiveInteger-arithmetic380258 +Node: LargePositiveInteger-converting380734 +Node: LargePositiveInteger-helper byte-level methods381288 +Node: LargePositiveInteger-numeric testing383025 +Node: LargePositiveInteger-primitive operations383561 +Node: LargeWordArray384255 +Node: LargeWordArray-overridden384685 +Node: LargeZeroInteger384984 +Node: LargeZeroInteger-accessing385812 +Node: LargeZeroInteger-arithmetic386077 +Node: LargeZeroInteger-numeric testing387007 +Node: LargeZeroInteger-printing387344 +Node: Link387642 +Node: Link class-instance creation388187 +Node: Link-basic388419 +Node: Link-iteration388672 +Node: LinkedList389133 +Node: LinkedList-accessing389741 +Node: LinkedList-adding390057 +Node: LinkedList-enumerating390790 +Node: LinkedList-testing391270 +Node: LookupKey391626 +Node: LookupKey class-basic392180 +Node: LookupKey-accessing392422 +Node: LookupKey-printing392687 +Node: LookupKey-storing392934 +Node: LookupKey-testing393190 +Node: LookupTable393624 +Node: LookupTable class-instance creation394499 +Node: LookupTable-accessing394761 +Node: LookupTable-enumerating395570 +Node: LookupTable-hashing396095 +Node: LookupTable-rehashing396336 +Node: LookupTable-removing396561 +Node: LookupTable-storing397063 +Node: Magnitude397302 +Node: Magnitude-basic397758 +Node: Magnitude-misc methods398290 +Node: MappedCollection398706 +Node: MappedCollection class-instance creation400081 +Node: MappedCollection-basic400534 +Node: Memory402289 +Node: Memory class-accessing402849 +Node: Message406981 +Node: Message class-creating instances407657 +Node: Message-accessing408050 +Node: Message-basic408492 +Node: Message-printing408791 +Node: MessageNotUnderstood409123 +Node: MessageNotUnderstood-accessing409617 +Node: MessageNotUnderstood-description409956 +Node: Metaclass410237 +Node: Metaclass class-instance creation411236 +Node: Metaclass-accessing411521 +Node: Metaclass-basic411967 +Node: Metaclass-delegation413311 +Node: Metaclass-filing414840 +Node: Metaclass-printing415131 +Node: Metaclass-testing functionality415686 +Node: MethodContext415947 +Node: MethodContext-accessing416489 +Node: MethodContext-debugging417799 +Node: MethodContext-printing418581 +Node: MethodDictionary418827 +Node: MethodDictionary-adding419358 +Node: MethodDictionary-rehashing419607 +Node: MethodDictionary-removing419861 +Node: MethodInfo420273 +Node: MethodInfo-accessing420759 +Node: MethodInfo-equality421704 +Node: Namespace421997 +Node: Namespace class-accessing422605 +Node: Namespace class-disabling instance creation423008 +Node: Namespace class-initialization423404 +Node: Namespace-accessing423841 +Node: Namespace-namespace hierarchy424130 +Node: Namespace-overrides for superspaces424628 +Node: Namespace-printing426425 +Node: NetClients.URIResolver426929 +Node: NetClients.URIResolver class-api427384 +Node: NetClients.URIResolver class-instance creation428534 +Node: NetClients.URL428911 +Node: NetClients.URL class-encoding URLs429632 +Node: NetClients.URL class-instance creation430137 +Node: NetClients.URL-accessing430962 +Node: NetClients.URL-comparing433687 +Node: NetClients.URL-copying434213 +Node: NetClients.URL-initialize-release434750 +Node: NetClients.URL-printing435049 +Node: NetClients.URL-testing435343 +Node: NetClients.URL-utilities436119 +Node: Notification436429 +Node: Notification-exception description436882 +Node: NullProxy437344 +Node: NullProxy class-instance creation437956 +Node: NullProxy-accessing438227 +Node: NullValueHolder438479 +Node: NullValueHolder class-creating instances439068 +Node: NullValueHolder-accessing439415 +Node: Number439763 +Node: Number class-converting440659 +Node: Number class-testing441119 +Node: Number-arithmetic441387 +Node: Number-comparing442720 +Node: Number-converting443273 +Node: Number-copying444628 +Node: Number-error raising444943 +Node: Number-misc math445314 +Node: Number-point creation447479 +Node: Number-retrying447774 +Node: Number-shortcuts and iterators449579 +Node: Number-testing450828 +Node: Number-truncation and round off452264 +Node: Object453079 +Node: Object class-initialization454035 +Node: Object-built ins454634 +Node: Object-change and update463353 +Node: Object-class type methods464560 +Node: Object-conversion465379 +Node: Object-copying465626 +Node: Object-debugging466290 +Node: Object-dependents access466619 +Node: Object-error raising467323 +Node: Object-finalization468010 +Node: Object-printing469003 +Node: Object-relational operators470748 +Node: Object-saving and loading471112 +Node: Object-storing472115 +Node: Object-syntax shortcuts472813 +Node: Object-testing functionality473140 +Node: Object-VM callbacks474708 +Node: ObjectDumper475193 +Node: ObjectDumper class-establishing proxy classes476398 +Node: ObjectDumper class-instance creation477247 +Node: ObjectDumper class-shortcuts477660 +Node: ObjectDumper class-testing478054 +Node: ObjectDumper-accessing478498 +Node: ObjectDumper-loading/dumping objects479006 +Node: ObjectDumper-stream interface479446 +Node: ObjectMemory479828 +Node: ObjectMemory class-accessing480913 +Node: ObjectMemory class-builtins481180 +Node: ObjectMemory class-initialization484527 +Node: ObjectMemory class-saving the image484894 +Node: ObjectMemory-accessing485222 +Node: ObjectMemory-builtins490176 +Node: ObjectMemory-derived information490461 +Node: OrderedCollection491448 +Node: OrderedCollection class-instance creation492170 +Node: OrderedCollection-accessing492528 +Node: OrderedCollection-adding492995 +Node: OrderedCollection-removing495059 +Node: Package495714 +Node: Package class-instance creation496188 +Node: Package-accessing496444 +Node: PackageLoader499504 +Node: PackageLoader class-accessing500068 +Node: PackageLoader class-loading502689 +Node: PackageLoader class-testing503089 +Node: Permission503380 +Node: Permission class-testing503849 +Node: Permission-accessing504599 +Node: Permission-testing505177 +Node: PluggableAdaptor505427 +Node: PluggableAdaptor class-creating instances506064 +Node: PluggableAdaptor-accessing507160 +Node: PluggableProxy507461 +Node: PluggableProxy class-accessing508099 +Node: PluggableProxy-saving and restoring508549 +Node: Point508984 +Node: Point class-instance creation509723 +Node: Point-accessing510036 +Node: Point-arithmetic510470 +Node: Point-comparing511189 +Node: Point-converting512002 +Node: Point-point functions512521 +Node: Point-printing513469 +Node: Point-storing513703 +Node: Point-truncation and round off513951 +Node: PositionableStream514363 +Node: PositionableStream class-instance creation515327 +Node: PositionableStream-accessing-reading515852 +Node: PositionableStream-class type methods517227 +Node: PositionableStream-compiling517762 +Node: PositionableStream-positioning518256 +Node: PositionableStream-testing519487 +Node: PositionableStream-truncating519969 +Node: Process520269 +Node: Process-accessing520849 +Node: Process-basic521974 +Node: Process-builtins523686 +Node: Process-printing524806 +Node: ProcessorScheduler525020 +Node: ProcessorScheduler class-instance creation525699 +Node: ProcessorScheduler-basic526013 +Node: ProcessorScheduler-built ins527487 +Node: ProcessorScheduler-idle tasks528189 +Node: ProcessorScheduler-printing528693 +Node: ProcessorScheduler-priorities529012 +Node: ProcessorScheduler-storing530678 +Node: ProcessorScheduler-timed invocation531019 +Node: Promise531590 +Node: Promise class-creating instances532217 +Node: Promise-accessing532628 +Node: Promise-initializing533083 +Node: Promise-printing533327 +Node: Promise-still unclassified533569 +Node: Random533825 +Node: Random class-instance creation534286 +Node: Random class-shortcuts534668 +Node: Random-basic535058 +Node: Random-testing535488 +Node: ReadStream535814 +Node: ReadStream class-instance creation536221 +Node: ReadWriteStream536641 +Node: ReadWriteStream class-instance creation537139 +Node: ReadWriteStream-positioning537777 +Node: Rectangle538096 +Node: Rectangle class-instance creation538897 +Node: Rectangle-accessing539455 +Node: Rectangle-copying541869 +Node: Rectangle-printing542103 +Node: Rectangle-rectangle functions542445 +Node: Rectangle-testing544348 +Node: Rectangle-transforming545178 +Node: Rectangle-truncation and round off545818 +Node: RecursionLock546123 +Node: RecursionLock class-instance creation546527 +Node: RecursionLock-accessing546777 +Node: RecursionLock-mutual exclusion547390 +Node: RecursionLock-printing547765 +Node: Regex548031 +Node: Regex class-instance creation549046 +Node: Regex-basic549305 +Node: Regex-conversion549727 +Node: Regex-printing550033 +Node: RegexResults550693 +Node: RegexResults-accessing551311 +Node: RegexResults-testing552824 +Node: RootNamespace553856 +Node: RootNamespace class-instance creation554416 +Node: RootNamespace-namespace hierarchy554765 +Node: RootNamespace-overrides for superspaces555212 +Node: RootNamespace-printing555843 +Node: RunArray556367 +Node: RunArray class-instance creation557340 +Node: RunArray-accessing557628 +Node: RunArray-adding557978 +Node: RunArray-basic559068 +Node: RunArray-copying559389 +Node: RunArray-enumerating559761 +Node: RunArray-removing560237 +Node: RunArray-searching560718 +Node: RunArray-testing561148 +Node: ScaledDecimal561407 +Node: ScaledDecimal class-instance creation562185 +Node: ScaledDecimal-arithmetic562600 +Node: ScaledDecimal-coercion563335 +Node: ScaledDecimal-comparing564256 +Node: ScaledDecimal-constants564908 +Node: ScaledDecimal-printing565226 +Node: ScaledDecimal-storing565702 +Node: SecurityPolicy566143 +Node: SecurityPolicy-modifying566731 +Node: SecurityPolicy-querying567083 +Node: Semaphore567342 +Node: Semaphore class-instance creation568018 +Node: Semaphore-accessing568407 +Node: Semaphore-builtins568907 +Node: Semaphore-mutual exclusion570268 +Node: Semaphore-printing570618 +Node: SequenceableCollection570864 +Node: SequenceableCollection class-instance creation571678 +Node: SequenceableCollection-basic572172 +Node: SequenceableCollection-concatenating576820 +Node: SequenceableCollection-copying SequenceableCollections578608 +Node: SequenceableCollection-enumerating581373 +Node: SequenceableCollection-replacing items584935 +Node: SequenceableCollection-sorting585898 +Node: SequenceableCollection-testing586472 +Node: Set587023 +Node: Set-arithmetic587455 +Node: Set-awful ST-80 compatibility hacks587800 +Node: Set-comparing588177 +Node: SharedQueue588588 +Node: SharedQueue class-instance creation589122 +Node: SharedQueue-accessing589507 +Node: Signal590025 +Node: Signal-accessing590693 +Node: Signal-copying591548 +Node: Signal-exception handling591821 +Node: SingletonProxy594452 +Node: SingletonProxy class-accessing595068 +Node: SingletonProxy class-instance creation595449 +Node: SingletonProxy-saving and restoring595906 +Node: SmallInteger596349 +Node: SmallInteger class-getting limits597048 +Node: SmallInteger class-testing597550 +Node: SmallInteger-bit arithmetic597862 +Node: SmallInteger-built ins598229 +Node: SmallInteger-builtins600659 +Node: SmallInteger-coercion methods601426 +Node: SmallInteger-testing functionality601798 +Node: SortedCollection602047 +Node: SortedCollection class-hacking603191 +Node: SortedCollection class-instance creation603476 +Node: SortedCollection-basic604005 +Node: SortedCollection-copying604566 +Node: SortedCollection-disabled604889 +Node: SortedCollection-enumerating605759 +Node: SortedCollection-saving and loading606105 +Node: SortedCollection-searching606467 +Node: Stream607070 +Node: Stream-accessing-reading608109 +Node: Stream-accessing-writing609981 +Node: Stream-basic610694 +Node: Stream-built ins610885 +Node: Stream-character writing611815 +Node: Stream-concatenating612686 +Node: Stream-enumerating613359 +Node: Stream-filing out613737 +Node: Stream-filtering614097 +Node: Stream-polymorphism616268 +Node: Stream-positioning616674 +Node: Stream-printing617856 +Node: Stream-storing618611 +Node: Stream-testing618979 +Node: String619493 +Node: String class-instance creation620565 +Node: String class-multibyte encodings621049 +Node: String-accessing621377 +Node: String-basic621774 +Node: String-built ins622179 +Node: String-converting624042 +Node: String-printing624521 +Node: String-regex625369 +Node: String-testing functionality631548 +Node: Symbol631750 +Node: Symbol class-built ins632588 +Node: Symbol class-instance creation632819 +Node: Symbol class-symbol table633974 +Node: Symbol-basic635399 +Node: Symbol-built ins636168 +Node: Symbol-converting636493 +Node: Symbol-misc636849 +Node: Symbol-storing637029 +Node: Symbol-testing637935 +Node: Symbol-testing functionality638219 +Node: SymLink638456 +Node: SymLink class-instance creation639017 +Node: SymLink-accessing639353 +Node: SymLink-iteration639704 +Node: SymLink-printing639935 +Node: SystemDictionary640151 +Node: SystemDictionary class-initialization641108 +Node: SystemDictionary-basic641383 +Node: SystemDictionary-builtins641726 +Node: SystemDictionary-c call-outs643072 +Node: SystemDictionary-command-line643481 +Node: SystemDictionary-miscellaneous646172 +Node: SystemDictionary-printing646638 +Node: SystemDictionary-special accessing647073 +Node: SystemDictionary-testing647686 +Node: SystemExceptions.AlreadyDefined648036 +Node: SystemExceptions.AlreadyDefined-accessing648562 +Node: SystemExceptions.ArgumentOutOfRange648830 +Node: SystemExceptions.ArgumentOutOfRange class-signaling649430 +Node: SystemExceptions.ArgumentOutOfRange-accessing649852 +Node: SystemExceptions.BadReturn650446 +Node: SystemExceptions.BadReturn-accessing650936 +Node: SystemExceptions.CInterfaceError651196 +Node: SystemExceptions.CInterfaceError-accessing651707 +Node: SystemExceptions.EmptyCollection651991 +Node: SystemExceptions.EmptyCollection-accessing652488 +Node: SystemExceptions.EndOfStream652772 +Node: SystemExceptions.EndOfStream class-signaling653273 +Node: SystemExceptions.EndOfStream-accessing653629 +Node: SystemExceptions.FileError654065 +Node: SystemExceptions.FileError-accessing654554 +Node: SystemExceptions.IndexOutOfRange654814 +Node: SystemExceptions.IndexOutOfRange class-signaling655410 +Node: SystemExceptions.IndexOutOfRange-accessing655792 +Node: SystemExceptions.InvalidArgument656322 +Node: SystemExceptions.InvalidArgument-accessing656829 +Node: SystemExceptions.InvalidProcessState657102 +Node: SystemExceptions.InvalidProcessState-accessing657643 +Node: SystemExceptions.InvalidSize657943 +Node: SystemExceptions.InvalidSize-accessing658420 +Node: SystemExceptions.InvalidValue658688 +Node: SystemExceptions.InvalidValue class-signaling659225 +Node: SystemExceptions.InvalidValue-accessing659690 +Node: SystemExceptions.MustBeBoolean660197 +Node: SystemExceptions.MustBeBoolean class-signaling660688 +Node: SystemExceptions.MutationError661018 +Node: SystemExceptions.MutationError class-instance creation661557 +Node: SystemExceptions.MutationError-accessing661950 +Node: SystemExceptions.NoRunnableProcess662289 +Node: SystemExceptions.NoRunnableProcess-accessing662795 +Node: SystemExceptions.NotEnoughElements663087 +Node: SystemExceptions.NotEnoughElements class-signaling663653 +Node: SystemExceptions.NotEnoughElements-accessing664038 +Node: SystemExceptions.NotFound664590 +Node: SystemExceptions.NotFound class-accessing665116 +Node: SystemExceptions.NotFound-accessing665507 +Node: SystemExceptions.NotImplemented665813 +Node: SystemExceptions.NotImplemented-accessing666281 +Node: SystemExceptions.NotIndexable666561 +Node: SystemExceptions.NotIndexable-accessing667034 +Node: SystemExceptions.NotYetImplemented667306 +Node: SystemExceptions.NotYetImplemented-accessing667832 +Node: SystemExceptions.PackageNotAvailable668124 +Node: SystemExceptions.PackageNotAvailable class-still unclassified668648 +Node: SystemExceptions.PackageNotAvailable-description669086 +Node: SystemExceptions.PrimitiveFailed669523 +Node: SystemExceptions.PrimitiveFailed-accessing670020 +Node: SystemExceptions.ProcessBeingTerminated670304 +Node: SystemExceptions.ProcessBeingTerminated-accessing670798 +Node: SystemExceptions.ProcessTerminated671262 +Node: SystemExceptions.ProcessTerminated-accessing671797 +Node: SystemExceptions.ReadOnlyObject672089 +Node: SystemExceptions.ReadOnlyObject-accessing672575 +Node: SystemExceptions.SecurityError672855 +Node: SystemExceptions.SecurityError class-accessing673429 +Node: SystemExceptions.SecurityError-accessing673825 +Node: SystemExceptions.ShouldNotImplement674311 +Node: SystemExceptions.ShouldNotImplement-accessing674850 +Node: SystemExceptions.SubclassResponsibility675146 +Node: SystemExceptions.SubclassResponsibility-accessing675726 +Node: SystemExceptions.UserInterrupt676038 +Node: SystemExceptions.UserInterrupt-accessing676510 +Node: SystemExceptions.VerificationError676786 +Node: SystemExceptions.VerificationError-accessing677271 +Node: SystemExceptions.VMError677563 +Node: SystemExceptions.VMError-accessing678003 +Node: SystemExceptions.WrongArgumentCount678255 +Node: SystemExceptions.WrongArgumentCount-accessing678821 +Node: SystemExceptions.WrongClass679117 +Node: SystemExceptions.WrongClass class-signaling679745 +Node: SystemExceptions.WrongClass-accessing680417 +Node: SystemExceptions.WrongMessageSent681086 +Node: SystemExceptions.WrongMessageSent class-signaling681743 +Node: SystemExceptions.WrongMessageSent-accessing682176 +Node: TextCollector682781 +Node: TextCollector class-accessing683491 +Node: TextCollector-accessing684004 +Node: TextCollector-printing684839 +Node: TextCollector-set up685187 +Node: TextCollector-storing685766 +Node: Time686110 +Node: Time class-basic (UTC)686894 +Node: Time class-builtins687448 +Node: Time class-clocks688489 +Node: Time class-initialization689060 +Node: Time class-instance creation689420 +Node: Time-accessing (ANSI for DateAndTimes)690313 +Node: Time-accessing (non ANSI & for Durations)690845 +Node: Time-arithmetic691311 +Node: Time-comparing691902 +Node: True692203 +Node: True-basic692583 +Node: True-C hacks693549 +Node: True-printing693725 +Node: UndefinedObject693923 +Node: UndefinedObject-basic694659 +Node: UndefinedObject-class creation - alternative694958 +Node: UndefinedObject-class polymorphism697247 +Node: UndefinedObject-CObject interoperability700339 +Node: UndefinedObject-dependents access700767 +Node: UndefinedObject-printing701156 +Node: UndefinedObject-storing701650 +Node: UndefinedObject-testing702129 +Node: UnicodeCharacter702981 +Node: UnicodeCharacter class-built ins703573 +Node: UnicodeString704108 +Node: UnicodeString class-converting704687 +Node: UnicodeString class-multibyte encodings705065 +Node: UnicodeString-built-ins705564 +Node: UnicodeString-converting705837 +Node: UnicodeString-multibyte encodings706577 +Node: ValueAdaptor707085 +Node: ValueAdaptor class-creating instances707579 +Node: ValueAdaptor-accessing707883 +Node: ValueAdaptor-printing708306 +Node: ValueHolder708535 +Node: ValueHolder class-creating instances709162 +Node: ValueHolder-accessing709561 +Node: ValueHolder-initializing709870 +Node: VariableBinding710109 +Node: VariableBinding-printing710753 +Node: VariableBinding-saving and loading711084 +Node: VariableBinding-storing711557 +Node: VariableBinding-testing712048 +Node: VersionableObjectProxy712322 +Node: VersionableObjectProxy class-saving and restoring713230 +Node: VersionableObjectProxy-saving and restoring714270 +Node: VFS.ArchiveFileHandler714620 +Node: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol715567 +Node: VFS.ArchiveFileHandler-directory operations716769 +Node: VFS.ArchiveFileHandler-querying717432 +Node: VFS.ArchiveFileHandler-TmpFileArchiveMemberHandler protocol717935 +Node: VFS.ArchiveMemberHandler718572 +Node: VFS.ArchiveMemberHandler-accessing719294 +Node: VFS.ArchiveMemberHandler-directory operations720707 +Node: VFS.ArchiveMemberHandler-file operations721344 +Node: VFS.ArchiveMemberHandler-initializing722026 +Node: VFS.ArchiveMemberHandler-testing722730 +Node: VFS.CStatStruct723756 +Node: VFS.CStatStruct class-accessing724150 +Node: VFS.CStatStruct-accessing724410 +Node: VFS.CStatStruct-debugging724835 +Node: VFS.DecodedFileHandler725061 +Node: VFS.DecodedFileHandler class-registering725452 +Node: VFS.DecodedFileHandler-files726590 +Node: VFS.FileHandlerWrapper727400 +Node: VFS.FileHandlerWrapper class-instance creation727995 +Node: VFS.FileHandlerWrapper-accessing728411 +Node: VFS.FileHandlerWrapper-delegation728821 +Node: VFS.RealFileHandler730389 +Node: VFS.RealFileHandler class-C call-outs731153 +Node: VFS.RealFileHandler class-initialization731437 +Node: VFS.RealFileHandler-accessing731780 +Node: VFS.RealFileHandler-directory operations733436 +Node: VFS.RealFileHandler-file operations733948 +Node: VFS.RealFileHandler-testing734717 +Node: VFS.TmpFileArchiveMemberHandler735353 +Node: VFS.TmpFileArchiveMemberHandler-directory operations735800 +Node: VFS.TmpFileArchiveMemberHandler-finalization736349 +Node: VFS.VFSHandler736742 +Node: VFS.VFSHandler class-initializing737537 +Node: VFS.VFSHandler class-instance creation738620 +Node: VFS.VFSHandler-accessing738979 +Node: VFS.VFSHandler-directory operations740364 +Node: VFS.VFSHandler-file operations740967 +Node: VFS.VFSHandler-releasing742112 +Node: VFS.VFSHandler-testing742434 +Node: Warning743350 +Node: Warning-exception description743681 +Node: WeakArray743901 +Node: WeakArray class-instance creation744406 +Node: WeakArray-accessing744746 +Node: WeakArray-conversion746410 +Node: WeakArray-loading747061 +Node: WeakIdentitySet747342 +Node: WeakIdentitySet-accessing747859 +Node: WeakKeyDictionary748149 +Node: WeakKeyDictionary class-hacks748753 +Node: WeakKeyDictionary-accessing749085 +Node: WeakKeyIdentityDictionary749420 +Node: WeakSet749960 +Node: WeakSet-accessing750492 +Node: WeakSet-copying750873 +Node: WeakSet-loading751267 +Node: WeakValueIdentityDictionary751535 +Node: WeakValueLookupTable752093 +Node: WeakValueLookupTable class-hacks752759 +Node: WeakValueLookupTable-hacks753073 +Node: WeakValueLookupTable-rehashing753687 +Node: WordArray753926 +Node: WriteStream754244 +Node: WriteStream class-instance creation754744 +Node: WriteStream-accessing-writing755438 +Node: WriteStream-positioning756280 +Node: ZeroDivide756506 +Node: ZeroDivide class-instance creation757011 +Node: ZeroDivide-accessing757407 +Node: ZeroDivide-description757676 +Node: Class index757907 +Node: Method index777294 +Node: Cross-reference1230129  End Tag Table diff -ru smalltalk-3.0.1/doc/gst-base.info-1 smalltalk-3.0.2/doc/gst-base.info-1 --- smalltalk-3.0.1/doc/gst-base.info-1 2008-01-31 15:53:45.000000000 +0100 +++ smalltalk-3.0.2/doc/gst-base.info-1 2008-03-07 12:12:21.000000000 +0100 @@ -1,5 +1,5 @@ -This is gst-base.info, produced by makeinfo version 4.11 from -/home/bonzinip/smalltalk-3.0.1/doc/gst-base-fixed.texi. +This is gst-base.info, produced by makeinfo version 4.8 from +/Users/bonzinip/devel/gst/+build/doc/../../doc/gst-base-fixed.texi. INFO-DIR-SECTION Software development START-INFO-DIR-ENTRY @@ -332,7 +332,6 @@ * ByteArray:: * CharacterArray:: * String:: -* Regex:: * Symbol:: * UnicodeString:: * CompiledCode:: @@ -416,6 +415,7 @@ * ProcessorScheduler:: * Rectangle:: * RecursionLock:: +* Regex:: * RegexResults:: * SecurityPolicy:: * SharedQueue:: @@ -940,6 +940,7 @@ * ArrayedCollection-built ins:: (instance) * ArrayedCollection-copying Collections:: (instance) * ArrayedCollection-enumerating the elements of a collection:: (instance) +* ArrayedCollection-enumeration:: (instance) * ArrayedCollection-storing:: (instance) * ArrayedCollection-streams:: (instance) @@ -1071,7 +1072,7 @@  -File: gst-base.info, Node: ArrayedCollection-enumerating the elements of a collection, Next: ArrayedCollection-storing, Prev: ArrayedCollection-copying Collections, Up: ArrayedCollection +File: gst-base.info, Node: ArrayedCollection-enumerating the elements of a collection, Next: ArrayedCollection-enumeration, Prev: ArrayedCollection-copying Collections, Up: ArrayedCollection 1.5.5 ArrayedCollection: enumerating the elements of a collection ----------------------------------------------------------------- @@ -1098,9 +1099,22 @@  -File: gst-base.info, Node: ArrayedCollection-storing, Next: ArrayedCollection-streams, Prev: ArrayedCollection-enumerating the elements of a collection, Up: ArrayedCollection +File: gst-base.info, Node: ArrayedCollection-enumeration, Next: ArrayedCollection-storing, Prev: ArrayedCollection-enumerating the elements of a collection, Up: ArrayedCollection -1.5.6 ArrayedCollection: storing +1.5.6 ArrayedCollection: enumeration +------------------------------------ + +gather: aBlock + Answer a new instance of a Collection containing all the results + of evaluating aBlock, joined together. aBlock should return + collections. The result is the same kind of the receiver, + independent of the type of collection returned by aBlock. + + + +File: gst-base.info, Node: ArrayedCollection-storing, Next: ArrayedCollection-streams, Prev: ArrayedCollection-enumeration, Up: ArrayedCollection + +1.5.7 ArrayedCollection: storing -------------------------------- storeOn: aStream @@ -1110,7 +1124,7 @@  File: gst-base.info, Node: ArrayedCollection-streams, Prev: ArrayedCollection-storing, Up: ArrayedCollection -1.5.7 ArrayedCollection: streams +1.5.8 ArrayedCollection: streams -------------------------------- writeStream @@ -4126,6 +4140,10 @@ is an initial substring of the receiver, it is considered to be less than the receiver. +endsWith: aCharacterArray + Returns true if the receiver ends with the same characters as + aCharacterArray. + indexOf: aCharacterArray matchCase: aBoolean startingAt: anIndex Answer an Interval of indices in the receiver which match the aCharacterArray pattern. # in aCharacterArray means 'match any @@ -5388,6 +5406,10 @@ Search the receiver for an element for which aBlock returns true. Answer true if some does, false otherwise. +count: aBlock + Count the elements of the receiver for which aBlock returns true, + and return their number. + detect: aBlock Search the receiver for an element for which aBlock returns true. If some does, answer it. If none does, fail @@ -5411,12 +5433,22 @@ invocation, or the first element if the collection has size 1. Fail if the collection is empty. +gather: aBlock + Answer a new instance of a Collection containing all the results + of evaluating aBlock, joined together. aBlock should return + collections. The result is the same kind of the receiver, + independent of the type of collection returned by aBlock. + inject: thisValue into: binaryBlock First, pass to binaryBlock thisValue and the first element of the receiver; for each subsequent element, pass the result of the previous evaluation and an element. Answer the result of the last invocation. +noneSatisfy: aBlock + Search the receiver for an element for which aBlock returns true. + Answer true if none does, false otherwise. + readStream Answer a stream that gives elements of the receiver @@ -7506,6 +7538,9 @@ 1.56.4 Date: basic ------------------ +- aDate + Answer a new Date pointing dayCount before the receiver + addDays: dayCount Answer a new Date pointing dayCount past the receiver @@ -7714,10 +7749,18 @@ 1.57.3 DateTime class: instance creation (non-ANSI) --------------------------------------------------- +date: aDate time: aTime + Answer a DateTime denoting the given date and time. Set the offset + field to ofs (a Duration). + +date: aDate time: aTime offset: ofs + Answer a DateTime denoting the given date and time. Set the offset + field to ofs (a Duration). + fromDays: days seconds: secs offset: ofs - Answer a DateTime denoting the d-th day of the given (as a number) - month and year. Set the offset field to ofs (a Duration), and the - the time part to the given hour, minute, and second + Answer a DateTime denoting the given date (as days since January + 1, 1901) and time (as seconds since midnight). Set the offset + field to ofs (a Duration).  @@ -8151,6 +8194,9 @@ Answer the key/value Association for the given key. Evaluate aBlock (answering the result) if the key is not found +associations + Returns the content of a Dictionary as a Set of Associations. + at: key Answer the value associated to the given key. Fail if the key is not found @@ -8369,6 +8415,15 @@ 1.62.1 DirectedMessage class: creating instances ------------------------------------------------ +receiver: anObject selector: aSymbol + Create a new instance of the receiver + +receiver: receiverObject selector: aSymbol argument: argumentObject + Create a new instance of the receiver + +receiver: anObject selector: aSymbol arguments: anArray + Create a new instance of the receiver + selector: aSymbol arguments: anArray This method should not be called for instances of this class. @@ -9770,88 +9825,3 @@ Truncate the file at the current position - -File: gst-base.info, Node: FileDescriptor-built ins, Next: FileDescriptor-class type methods, Prev: FileDescriptor-basic, Up: FileDescriptor - -1.72.5 FileDescriptor: built ins --------------------------------- - -fileOp: ioFuncIndex - Private - Used to limit the number of primitives used by - FileStreams - -fileOp: ioFuncIndex ifFail: aBlock - Private - Used to limit the number of primitives used by - FileStreams. - -fileOp: ioFuncIndex with: arg1 - Private - Used to limit the number of primitives used by - FileStreams - -fileOp: ioFuncIndex with: arg1 ifFail: aBlock - Private - Used to limit the number of primitives used by - FileStreams. - -fileOp: ioFuncIndex with: arg1 with: arg2 - Private - Used to limit the number of primitives used by - FileStreams - -fileOp: ioFuncIndex with: arg1 with: arg2 ifFail: aBlock - Private - Used to limit the number of primitives used by - FileStreams. - -fileOp: ioFuncIndex with: arg1 with: arg2 with: arg3 - Private - Used to limit the number of primitives used by - FileStreams - -fileOp: ioFuncIndex with: arg1 with: arg2 with: arg3 ifFail: aBlock - Private - Used to limit the number of primitives used by - FileStreams. - -fileOp: ioFuncIndex with: arg1 with: arg2 with: arg3 with: arg4 - Private - Used to limit the number of primitives used by - FileStreams - -fileOp: ioFuncIndex with: arg1 with: arg2 with: arg3 with: arg4 ifFail: aBlock - Private - Used to limit the number of primitives used by - FileStreams. - - - -File: gst-base.info, Node: FileDescriptor-class type methods, Next: FileDescriptor-initialize-release, Prev: FileDescriptor-built ins, Up: FileDescriptor - -1.72.6 FileDescriptor: class type methods ------------------------------------------ - -isBinary - We answer characters, so answer false - -isExternalStream - We stream on an external entity (a file), so answer true - -isText - We answer characters, so answer true - - - -File: gst-base.info, Node: FileDescriptor-initialize-release, Next: FileDescriptor-low-level access, Prev: FileDescriptor-class type methods, Up: FileDescriptor - -1.72.7 FileDescriptor: initialize-release ------------------------------------------ - -addToBeFinalized - Add me to the list of open files. - -initialize - Initialize the receiver's instance variables - -newBuffer - Private - Answer a String to be used as the receiver's buffer - -readStream - Answer myself, or an alternate stream coerced for reading. - -removeToBeFinalized - Remove me from the list of open files. - - diff -ru smalltalk-3.0.1/doc/gst-base.info-2 smalltalk-3.0.2/doc/gst-base.info-2 --- smalltalk-3.0.1/doc/gst-base.info-2 2008-01-31 15:53:45.000000000 +0100 +++ smalltalk-3.0.2/doc/gst-base.info-2 2008-03-07 12:12:21.000000000 +0100 @@ -1,5 +1,5 @@ -This is gst-base.info, produced by makeinfo version 4.11 from -/home/bonzinip/smalltalk-3.0.1/doc/gst-base-fixed.texi. +This is gst-base.info, produced by makeinfo version 4.8 from +/Users/bonzinip/devel/gst/+build/doc/../../doc/gst-base-fixed.texi. INFO-DIR-SECTION Software development START-INFO-DIR-ENTRY @@ -14,6 +14,91 @@ in the section entitled "GNU Free Documentation License".  +File: gst-base.info, Node: FileDescriptor-built ins, Next: FileDescriptor-class type methods, Prev: FileDescriptor-basic, Up: FileDescriptor + +1.72.5 FileDescriptor: built ins +-------------------------------- + +fileOp: ioFuncIndex + Private - Used to limit the number of primitives used by + FileStreams + +fileOp: ioFuncIndex ifFail: aBlock + Private - Used to limit the number of primitives used by + FileStreams. + +fileOp: ioFuncIndex with: arg1 + Private - Used to limit the number of primitives used by + FileStreams + +fileOp: ioFuncIndex with: arg1 ifFail: aBlock + Private - Used to limit the number of primitives used by + FileStreams. + +fileOp: ioFuncIndex with: arg1 with: arg2 + Private - Used to limit the number of primitives used by + FileStreams + +fileOp: ioFuncIndex with: arg1 with: arg2 ifFail: aBlock + Private - Used to limit the number of primitives used by + FileStreams. + +fileOp: ioFuncIndex with: arg1 with: arg2 with: arg3 + Private - Used to limit the number of primitives used by + FileStreams + +fileOp: ioFuncIndex with: arg1 with: arg2 with: arg3 ifFail: aBlock + Private - Used to limit the number of primitives used by + FileStreams. + +fileOp: ioFuncIndex with: arg1 with: arg2 with: arg3 with: arg4 + Private - Used to limit the number of primitives used by + FileStreams + +fileOp: ioFuncIndex with: arg1 with: arg2 with: arg3 with: arg4 ifFail: aBlock + Private - Used to limit the number of primitives used by + FileStreams. + + + +File: gst-base.info, Node: FileDescriptor-class type methods, Next: FileDescriptor-initialize-release, Prev: FileDescriptor-built ins, Up: FileDescriptor + +1.72.6 FileDescriptor: class type methods +----------------------------------------- + +isBinary + We answer characters, so answer false + +isExternalStream + We stream on an external entity (a file), so answer true + +isText + We answer characters, so answer true + + + +File: gst-base.info, Node: FileDescriptor-initialize-release, Next: FileDescriptor-low-level access, Prev: FileDescriptor-class type methods, Up: FileDescriptor + +1.72.7 FileDescriptor: initialize-release +----------------------------------------- + +addToBeFinalized + Add me to the list of open files. + +initialize + Initialize the receiver's instance variables + +newBuffer + Private - Answer a String to be used as the receiver's buffer + +readStream + Answer myself, or an alternate stream coerced for reading. + +removeToBeFinalized + Remove me from the list of open files. + + + File: gst-base.info, Node: FileDescriptor-low-level access, Next: FileDescriptor-overriding inherited methods, Prev: FileDescriptor-initialize-release, Up: FileDescriptor 1.72.8 FileDescriptor: low-level access @@ -3730,6 +3815,9 @@ 1.104.1 Message class: creating instances ----------------------------------------- +selector: aSymbol argument: anObject + Create a new Message with the given selector and argument + selector: aSymbol arguments: anArray Create a new Message with the given selector and arguments @@ -4954,7 +5042,7 @@ ScaledDecimal object. coerce: aNumber - Answer aNumber - whatever class it belongs to, it is good + Answer aNumber, converted to an integer or floating-point number. degreesToRadians Convert the receiver to radians @@ -5169,12 +5257,22 @@ Return an interval going from the receiver to stop with the given step +to: stop by: step collect: aBlock + Evaluate aBlock for each value in the interval going from the + receiver to stop with the given step. The results are collected + in an Array and returned. + to: stop by: step do: aBlock Evaluate aBlock for each value in the interval going from the receiver to stop with the given step. Compiled in-line for integer literal steps, and for one-argument aBlocks without temporaries, and therefore not overridable. +to: stop collect: aBlock + Evaluate aBlock for each value in the interval going from the + receiver to stop by 1. The results are collected in an Array and + returned. + to: stop do: aBlock Evaluate aBlock for each value in the interval going from the receiver to stop by 1. Compiled in-line for one-argument aBlocks @@ -8388,14 +8486,13 @@ =========== Defined in namespace Smalltalk -Superclass: String +Superclass: Object Category: Collections-Text - A Regex is equivalent to a String, except that it is read-only and - that the regular expression matcher caches a compiled - representation of the most recently used Regexes, thus speeding up + A Regex is a read-only string for which the regular expression + matcher can cache a compiled representation, thus speeding up matching. Regex objects are constructed automatically by methods that expect to match many times the same regular expression, but - can be constructed explicitly sending #asRegex to a String or + can also be constructed explicitly sending #asRegex to a String or Symbol. Creation of Regex objects inside a loop is of course slower than @@ -8844,7 +8941,6 @@ * Menu: -* ScaledDecimal class-constants:: (class) * ScaledDecimal class-instance creation:: (class) * ScaledDecimal-arithmetic:: (instance) * ScaledDecimal-coercion:: (instance) @@ -8854,19 +8950,9 @@ * ScaledDecimal-storing:: (instance)  -File: gst-base.info, Node: ScaledDecimal class-constants, Next: ScaledDecimal class-instance creation, Up: ScaledDecimal - -1.140.1 ScaledDecimal class: constants --------------------------------------- +File: gst-base.info, Node: ScaledDecimal class-instance creation, Next: ScaledDecimal-arithmetic, Up: ScaledDecimal -initialize - Initialize the receiver's class variables - - - -File: gst-base.info, Node: ScaledDecimal class-instance creation, Next: ScaledDecimal-arithmetic, Prev: ScaledDecimal class-constants, Up: ScaledDecimal - -1.140.2 ScaledDecimal class: instance creation +1.140.1 ScaledDecimal class: instance creation ---------------------------------------------- newFromNumber: aNumber scale: scale @@ -8878,7 +8964,7 @@  File: gst-base.info, Node: ScaledDecimal-arithmetic, Next: ScaledDecimal-coercion, Prev: ScaledDecimal class-instance creation, Up: ScaledDecimal -1.140.3 ScaledDecimal: arithmetic +1.140.2 ScaledDecimal: arithmetic --------------------------------- * aNumber @@ -8905,7 +8991,7 @@  File: gst-base.info, Node: ScaledDecimal-coercion, Next: ScaledDecimal-comparing, Prev: ScaledDecimal-arithmetic, Up: ScaledDecimal -1.140.4 ScaledDecimal: coercion +1.140.3 ScaledDecimal: coercion ------------------------------- asFloatD @@ -8945,7 +9031,7 @@  File: gst-base.info, Node: ScaledDecimal-comparing, Next: ScaledDecimal-constants, Prev: ScaledDecimal-coercion, Up: ScaledDecimal -1.140.5 ScaledDecimal: comparing +1.140.4 ScaledDecimal: comparing -------------------------------- < aNumber @@ -8973,7 +9059,7 @@  File: gst-base.info, Node: ScaledDecimal-constants, Next: ScaledDecimal-printing, Prev: ScaledDecimal-comparing, Up: ScaledDecimal -1.140.6 ScaledDecimal: constants +1.140.5 ScaledDecimal: constants -------------------------------- one @@ -8986,7 +9072,7 @@  File: gst-base.info, Node: ScaledDecimal-printing, Next: ScaledDecimal-storing, Prev: ScaledDecimal-constants, Up: ScaledDecimal -1.140.7 ScaledDecimal: printing +1.140.6 ScaledDecimal: printing ------------------------------- displayOn: aStream @@ -9001,7 +9087,7 @@  File: gst-base.info, Node: ScaledDecimal-storing, Prev: ScaledDecimal-printing, Up: ScaledDecimal -1.140.8 ScaledDecimal: storing +1.140.7 ScaledDecimal: storing ------------------------------ isLiteralObject @@ -9202,6 +9288,7 @@ * SequenceableCollection-copying SequenceableCollections:: (instance) * SequenceableCollection-enumerating:: (instance) * SequenceableCollection-replacing items:: (instance) +* SequenceableCollection-sorting:: (instance) * SequenceableCollection-testing:: (instance)  @@ -9290,6 +9377,11 @@ identical to anObject. Invoke exceptionBlock and answer its result if no item is found +identityIndexOfLast: anElement ifAbsent: exceptionBlock + Answer the last index which contains an object identical to + anElement. Invoke exceptionBlock and answer its result if no item + is found + includes: anObject Answer whether we include anObject @@ -9310,6 +9402,10 @@ Answer the first index > anIndex which contains anElement. Invoke exceptionBlock and answer its result if no item is found +indexOfLast: anElement ifAbsent: exceptionBlock + Answer the last index which contains anElement. Invoke + exceptionBlock and answer its result if no item is found + indexOfSubCollection: aSubCollection Answer the first index > anIndex at which starts a sequence of items matching aSubCollection. Answer 0 if no such sequence is @@ -9371,6 +9467,22 @@ #('hello,' 'world') join: ' ' => 'hello, world' +with: aSequenceableCollection + Return an Array with the same size as the receiver and + aSequenceableCollection, each element of which is a 2-element + Arrays including one element from the receiver and one from + aSequenceableCollection. + +with: seqColl1 with: seqColl2 + Return an Array with the same size as the receiver and the + arguments, each element of which is a 3-element Arrays including + one element from the receiver and one from each argument. + +with: seqColl1 with: seqColl2 with: seqColl3 + Return an Array with the same size as the receiver and the + arguments, each element of which is a 4-element Arrays including + one element from the receiver and one from each argument. +  File: gst-base.info, Node: SequenceableCollection-copying SequenceableCollections, Next: SequenceableCollection-enumerating, Prev: SequenceableCollection-concatenating, Up: SequenceableCollection @@ -9382,6 +9494,14 @@ Append aSequenceableCollection at the end of the receiver (using #add:), and answer a new collection +copyAfter: anObject + Answer a new collection holding all the elements of the receiver + after the first occurrence of anObject, up to the last. + +copyAfterLast: anObject + Answer a new collection holding all the elements of the receiver + after the last occurrence of anObject, up to the last. + copyFrom: start Answer a new collection containing all the items in the receiver from the start-th. @@ -9421,6 +9541,10 @@ Answer a new collection holding all the elements of the receiver from the first up to the first occurrence of anObject, excluded. +copyUpToLast: anObject + Answer a new collection holding all the elements of the receiver + from the first up to the last occurrence of anObject, excluded. +  File: gst-base.info, Node: SequenceableCollection-enumerating, Next: SequenceableCollection-replacing items, Prev: SequenceableCollection-copying SequenceableCollections, Up: SequenceableCollection @@ -9513,7 +9637,7 @@  -File: gst-base.info, Node: SequenceableCollection-replacing items, Next: SequenceableCollection-testing, Prev: SequenceableCollection-enumerating, Up: SequenceableCollection +File: gst-base.info, Node: SequenceableCollection-replacing items, Next: SequenceableCollection-sorting, Prev: SequenceableCollection-enumerating, Up: SequenceableCollection 1.143.6 SequenceableCollection: replacing items ----------------------------------------------- @@ -9536,9 +9660,25 @@  -File: gst-base.info, Node: SequenceableCollection-testing, Prev: SequenceableCollection-replacing items, Up: SequenceableCollection +File: gst-base.info, Node: SequenceableCollection-sorting, Next: SequenceableCollection-testing, Prev: SequenceableCollection-replacing items, Up: SequenceableCollection + +1.143.7 SequenceableCollection: sorting +--------------------------------------- + +sort + Sort the contents of the receiver according to the default sort + block, which uses #<= to compare items. + +sortBy: sortBlock + Sort the contents of the receiver according to the given sort + block, which accepts pair of items and returns true if the first + item is less than the second one. + + + +File: gst-base.info, Node: SequenceableCollection-testing, Prev: SequenceableCollection-sorting, Up: SequenceableCollection -1.143.7 SequenceableCollection: testing +1.143.8 SequenceableCollection: testing --------------------------------------- = aCollection @@ -9935,206 +10075,3 @@ Return the index of the lowest order 1 bit of the receiver. - -File: gst-base.info, Node: SmallInteger-built ins, Next: SmallInteger-builtins, Prev: SmallInteger-bit arithmetic, Up: SmallInteger - -1.148.4 SmallInteger: built ins -------------------------------- - -* arg - Multiply the receiver and arg and answer another Number - -+ arg - Sum the receiver and arg and answer another Number - -- arg - Subtract arg from the receiver and answer another Number - -/ arg - Divide the receiver by arg and answer another Integer or Fraction - -// arg - Dividing receiver by arg (with truncation towards -infinity) and - answer the result - -< arg - Answer whether the receiver is less than arg - -<= arg - Answer whether the receiver is less than or equal to arg - -= arg - Answer whether the receiver is equal to arg - -== arg - Answer whether the receiver is the same object as arg - -> arg - Answer whether the receiver is greater than arg - ->= arg - Answer whether the receiver is greater than or equal to arg - -\\ arg - Calculate the remainder of dividing receiver by arg (with - truncation towards -infinity) and answer it - -asFloatD - Convert the receiver to a FloatD, answer the result - -asFloatE - Convert the receiver to a FloatE, answer the result - -asFloatQ - Convert the receiver to a FloatQ, answer the result - -asObject - Answer the object whose index is in the receiver, nil if there is - a free object, fail if index is out of bounds - -asObjectNoFail - Answer the object whose index is in the receiver, or nil if no - object is found at that index - -bitAnd: arg - Do a bitwise AND between the receiver and arg, answer the result - -bitOr: arg - Do a bitwise OR between the receiver and arg, answer the result - -bitShift: arg - Shift the receiver by arg places to the left if arg > 0, by arg - places to the right if arg < 0, answer another Number - -bitXor: arg - Do a bitwise XOR between the receiver and arg, answer the result - -divExact: arg - Dividing receiver by arg assuming that the remainder is zero, and - answer the result - -nextValidOop - Answer the index of the first non-free OOP after the receiver. - This is used internally; it is placed here to avoid polluting - Object. - -quo: arg - Dividing receiver by arg (with truncation towards zero) and answer - the result - -~= arg - Answer whether the receiver is not equal to arg - -~~ arg - Answer whether the receiver is not the same object as arg - - - -File: gst-base.info, Node: SmallInteger-builtins, Next: SmallInteger-coercion methods, Prev: SmallInteger-built ins, Up: SmallInteger - -1.148.5 SmallInteger: builtins ------------------------------- - -at: anIndex - Answer the index-th indexed instance variable of the receiver. - This method always fails. - -at: anIndex put: value - Store value in the index-th indexed instance variable of the - receiver This method always fails. - -basicAt: anIndex - Answer the index-th indexed instance variable of the receiver. - This method always fails. - -basicAt: anIndex put: value - Store value in the index-th indexed instance variable of the - receiver This method always fails. - -scramble - Answer the receiver with its bits mixed and matched. - - - -File: gst-base.info, Node: SmallInteger-coercion methods, Next: SmallInteger-testing functionality, Prev: SmallInteger-builtins, Up: SmallInteger - -1.148.6 SmallInteger: coercion methods --------------------------------------- - -generality - Return the receiver's generality - -unity - Coerce 1 to the receiver's class - -zero - Coerce 0 to the receiver's class - - - -File: gst-base.info, Node: SmallInteger-testing functionality, Prev: SmallInteger-coercion methods, Up: SmallInteger - -1.148.7 SmallInteger: testing functionality -------------------------------------------- - -isSmallInteger - Answer `true'. - - - -File: gst-base.info, Node: SortedCollection, Next: Stream, Prev: SmallInteger, Up: Base classes - -1.149 SortedCollection -====================== - -Defined in namespace Smalltalk -Superclass: OrderedCollection -Category: Collections-Sequenceable - I am a collection of objects, stored and accessed according to some - sorting criteria. I store things using heap sort and quick sort. - My instances have a comparison block associated with them; this - block takes two arguments and is a predicate which returns true if - the first argument should be sorted earlier than the second. The - default block is [ :a :b | a <= b ], but I will accept any block - that conforms to the above criteria - actually any object which - responds to #value:value:. - -* Menu: - -* SortedCollection class-hacking:: (class) -* SortedCollection class-instance creation:: (class) -* SortedCollection-basic:: (instance) -* SortedCollection-copying:: (instance) -* SortedCollection-disabled:: (instance) -* SortedCollection-enumerating:: (instance) -* SortedCollection-saving and loading:: (instance) -* SortedCollection-searching:: (instance) - - -File: gst-base.info, Node: SortedCollection class-hacking, Next: SortedCollection class-instance creation, Up: SortedCollection - -1.149.1 SortedCollection class: hacking ---------------------------------------- - -defaultSortBlock - Answer a default sort block for the receiver. - - - -File: gst-base.info, Node: SortedCollection class-instance creation, Next: SortedCollection-basic, Prev: SortedCollection class-hacking, Up: SortedCollection - -1.149.2 SortedCollection class: instance creation -------------------------------------------------- - -new - Answer a new collection with a default size and sort block - -new: aSize - Answer a new collection with a default sort block and the given - size - -sortBlock: aSortBlock - Answer a new collection with a default size and the given sort - block - - diff -ru smalltalk-3.0.1/doc/gst-base.info-3 smalltalk-3.0.2/doc/gst-base.info-3 --- smalltalk-3.0.1/doc/gst-base.info-3 2008-01-31 15:53:45.000000000 +0100 +++ smalltalk-3.0.2/doc/gst-base.info-3 2008-03-07 12:12:21.000000000 +0100 @@ -1,5 +1,5 @@ -This is gst-base.info, produced by makeinfo version 4.11 from -/home/bonzinip/smalltalk-3.0.1/doc/gst-base-fixed.texi. +This is gst-base.info, produced by makeinfo version 4.8 from +/Users/bonzinip/devel/gst/+build/doc/../../doc/gst-base-fixed.texi. INFO-DIR-SECTION Software development START-INFO-DIR-ENTRY @@ -14,6 +14,209 @@ in the section entitled "GNU Free Documentation License".  +File: gst-base.info, Node: SmallInteger-built ins, Next: SmallInteger-builtins, Prev: SmallInteger-bit arithmetic, Up: SmallInteger + +1.148.4 SmallInteger: built ins +------------------------------- + +* arg + Multiply the receiver and arg and answer another Number + ++ arg + Sum the receiver and arg and answer another Number + +- arg + Subtract arg from the receiver and answer another Number + +/ arg + Divide the receiver by arg and answer another Integer or Fraction + +// arg + Dividing receiver by arg (with truncation towards -infinity) and + answer the result + +< arg + Answer whether the receiver is less than arg + +<= arg + Answer whether the receiver is less than or equal to arg + += arg + Answer whether the receiver is equal to arg + +== arg + Answer whether the receiver is the same object as arg + +> arg + Answer whether the receiver is greater than arg + +>= arg + Answer whether the receiver is greater than or equal to arg + +\\ arg + Calculate the remainder of dividing receiver by arg (with + truncation towards -infinity) and answer it + +asFloatD + Convert the receiver to a FloatD, answer the result + +asFloatE + Convert the receiver to a FloatE, answer the result + +asFloatQ + Convert the receiver to a FloatQ, answer the result + +asObject + Answer the object whose index is in the receiver, nil if there is + a free object, fail if index is out of bounds + +asObjectNoFail + Answer the object whose index is in the receiver, or nil if no + object is found at that index + +bitAnd: arg + Do a bitwise AND between the receiver and arg, answer the result + +bitOr: arg + Do a bitwise OR between the receiver and arg, answer the result + +bitShift: arg + Shift the receiver by arg places to the left if arg > 0, by arg + places to the right if arg < 0, answer another Number + +bitXor: arg + Do a bitwise XOR between the receiver and arg, answer the result + +divExact: arg + Dividing receiver by arg assuming that the remainder is zero, and + answer the result + +nextValidOop + Answer the index of the first non-free OOP after the receiver. + This is used internally; it is placed here to avoid polluting + Object. + +quo: arg + Dividing receiver by arg (with truncation towards zero) and answer + the result + +~= arg + Answer whether the receiver is not equal to arg + +~~ arg + Answer whether the receiver is not the same object as arg + + + +File: gst-base.info, Node: SmallInteger-builtins, Next: SmallInteger-coercion methods, Prev: SmallInteger-built ins, Up: SmallInteger + +1.148.5 SmallInteger: builtins +------------------------------ + +at: anIndex + Answer the index-th indexed instance variable of the receiver. + This method always fails. + +at: anIndex put: value + Store value in the index-th indexed instance variable of the + receiver This method always fails. + +basicAt: anIndex + Answer the index-th indexed instance variable of the receiver. + This method always fails. + +basicAt: anIndex put: value + Store value in the index-th indexed instance variable of the + receiver This method always fails. + +scramble + Answer the receiver with its bits mixed and matched. + + + +File: gst-base.info, Node: SmallInteger-coercion methods, Next: SmallInteger-testing functionality, Prev: SmallInteger-builtins, Up: SmallInteger + +1.148.6 SmallInteger: coercion methods +-------------------------------------- + +generality + Return the receiver's generality + +unity + Coerce 1 to the receiver's class + +zero + Coerce 0 to the receiver's class + + + +File: gst-base.info, Node: SmallInteger-testing functionality, Prev: SmallInteger-coercion methods, Up: SmallInteger + +1.148.7 SmallInteger: testing functionality +------------------------------------------- + +isSmallInteger + Answer `true'. + + + +File: gst-base.info, Node: SortedCollection, Next: Stream, Prev: SmallInteger, Up: Base classes + +1.149 SortedCollection +====================== + +Defined in namespace Smalltalk +Superclass: OrderedCollection +Category: Collections-Sequenceable + I am a collection of objects, stored and accessed according to some + sorting criteria. I store things using heap sort and quick sort. + My instances have a comparison block associated with them; this + block takes two arguments and is a predicate which returns true if + the first argument should be sorted earlier than the second. The + default block is [ :a :b | a <= b ], but I will accept any block + that conforms to the above criteria - actually any object which + responds to #value:value:. + +* Menu: + +* SortedCollection class-hacking:: (class) +* SortedCollection class-instance creation:: (class) +* SortedCollection-basic:: (instance) +* SortedCollection-copying:: (instance) +* SortedCollection-disabled:: (instance) +* SortedCollection-enumerating:: (instance) +* SortedCollection-saving and loading:: (instance) +* SortedCollection-searching:: (instance) + + +File: gst-base.info, Node: SortedCollection class-hacking, Next: SortedCollection class-instance creation, Up: SortedCollection + +1.149.1 SortedCollection class: hacking +--------------------------------------- + +defaultSortBlock + Answer a default sort block for the receiver. + + + +File: gst-base.info, Node: SortedCollection class-instance creation, Next: SortedCollection-basic, Prev: SortedCollection class-hacking, Up: SortedCollection + +1.149.2 SortedCollection class: instance creation +------------------------------------------------- + +new + Answer a new collection with a default size and sort block + +new: aSize + Answer a new collection with a default sort block and the given + size + +sortBlock: aSortBlock + Answer a new collection with a default size and the given sort + block + + + File: gst-base.info, Node: SortedCollection-basic, Next: SortedCollection-copying, Prev: SortedCollection class-instance creation, Up: SortedCollection 1.149.3 SortedCollection: basic @@ -138,6 +341,7 @@ * Stream-basic:: (instance) * Stream-built ins:: (instance) * Stream-character writing:: (instance) +* Stream-concatenating:: (instance) * Stream-enumerating:: (instance) * Stream-filing out:: (instance) * Stream-filtering:: (instance) @@ -259,7 +463,7 @@  -File: gst-base.info, Node: Stream-character writing, Next: Stream-enumerating, Prev: Stream-built ins, Up: Stream +File: gst-base.info, Node: Stream-character writing, Next: Stream-concatenating, Prev: Stream-built ins, Up: Stream 1.150.5 Stream: character writing --------------------------------- @@ -299,9 +503,28 @@  -File: gst-base.info, Node: Stream-enumerating, Next: Stream-filing out, Prev: Stream-character writing, Up: Stream +File: gst-base.info, Node: Stream-concatenating, Next: Stream-enumerating, Prev: Stream-character writing, Up: Stream + +1.150.6 Stream: concatenating +----------------------------- + +with: aStream + Return a new Stream whose elements are 2-element Arrays, including + one element from the receiver and one from aStream. + +with: stream1 with: stream2 + Return a new Stream whose elements are 3-element Arrays, including + one element from the receiver and one from each argument. + +with: stream1 with: stream2 with: stream3 + Return a new Stream whose elements are 3-element Arrays, including + one element from the receiver and one from each argument. + + + +File: gst-base.info, Node: Stream-enumerating, Next: Stream-filing out, Prev: Stream-concatenating, Up: Stream -1.150.6 Stream: enumerating +1.150.7 Stream: enumerating --------------------------- do: aBlock @@ -315,7 +538,7 @@  File: gst-base.info, Node: Stream-filing out, Next: Stream-filtering, Prev: Stream-enumerating, Up: Stream -1.150.7 Stream: filing out +1.150.8 Stream: filing out -------------------------- fileOut: aClass @@ -327,7 +550,7 @@  File: gst-base.info, Node: Stream-filtering, Next: Stream-polymorphism, Prev: Stream-filing out, Up: Stream -1.150.8 Stream: filtering +1.150.9 Stream: filtering ------------------------- , aStream @@ -384,8 +607,8 @@  File: gst-base.info, Node: Stream-polymorphism, Next: Stream-positioning, Prev: Stream-filtering, Up: Stream -1.150.9 Stream: polymorphism ----------------------------- +1.150.10 Stream: polymorphism +----------------------------- close Do nothing. This is provided for consistency with file streams @@ -400,7 +623,7 @@  File: gst-base.info, Node: Stream-positioning, Next: Stream-printing, Prev: Stream-polymorphism, Up: Stream -1.150.10 Stream: positioning +1.150.11 Stream: positioning ---------------------------- isPositionable @@ -432,7 +655,7 @@  File: gst-base.info, Node: Stream-printing, Next: Stream-storing, Prev: Stream-positioning, Up: Stream -1.150.11 Stream: printing +1.150.12 Stream: printing ------------------------- << anObject @@ -454,7 +677,7 @@  File: gst-base.info, Node: Stream-storing, Next: Stream-testing, Prev: Stream-printing, Up: Stream -1.150.12 Stream: storing +1.150.13 Stream: storing ------------------------ store: anObject @@ -466,7 +689,7 @@  File: gst-base.info, Node: Stream-testing, Prev: Stream-storing, Up: Stream -1.150.13 Stream: testing +1.150.14 Stream: testing ------------------------ atEnd @@ -2584,6 +2807,10 @@ 1.190.1 Time class: basic (UTC) ------------------------------- +midnight + Answer a time representing midnight in Coordinated Universal Time + (UTC) + utcNow Answer a time representing the current time of day in Coordinated Universal Time (UTC) @@ -2737,14 +2964,19 @@ 1.190.8 Time: arithmetic ------------------------ -addTime: timeAmount +addSeconds: timeAmount Answer a new Time that is timeAmount seconds after the receiver +addTime: timeAmount + Answer a new Time that is timeAmount seconds after the receiver; + timeAmount is a Time. + printOn: aStream Print a representation of the receiver on aStream subtractTime: timeAmount - Answer a new Time that is timeAmount seconds before the receiver + Answer a new Time that is timeAmount seconds before the receiver; + timeAmount is a Time.  Binary files smalltalk-3.0.1/doc/gst-base.info-4 and smalltalk-3.0.2/doc/gst-base.info-4 differ Binary files smalltalk-3.0.1/doc/gst-base.info-5 and smalltalk-3.0.2/doc/gst-base.info-5 differ diff -ru smalltalk-3.0.1/doc/gst-convert.1 smalltalk-3.0.2/doc/gst-convert.1 --- smalltalk-3.0.1/doc/gst-convert.1 2008-01-31 15:44:06.000000000 +0100 +++ smalltalk-3.0.2/doc/gst-convert.1 2008-03-07 12:04:26.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.28. -.TH GST-CONVERT "1" "January 2008" "gst-convert version 3.0" "User Commands" +.TH GST-CONVERT "1" "March 2008" "gst-convert version 3.0.2" "User Commands" .SH NAME gst-convert \- Smalltalk syntax converter and beautifier .SH DESCRIPTION diff -ru smalltalk-3.0.1/doc/gst-doc.1 smalltalk-3.0.2/doc/gst-doc.1 --- smalltalk-3.0.1/doc/gst-doc.1 2008-01-31 15:44:09.000000000 +0100 +++ smalltalk-3.0.2/doc/gst-doc.1 2008-03-07 12:04:30.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.28. -.TH GST-DOC "1" "January 2008" "gst-doc version 3.0" "User Commands" +.TH GST-DOC "1" "March 2008" "gst-doc version 3.0.2" "User Commands" .SH NAME gst-doc \- GNU Smalltalk documentation generator .SH DESCRIPTION diff -ru smalltalk-3.0.1/doc/gst-libs.info smalltalk-3.0.2/doc/gst-libs.info --- smalltalk-3.0.1/doc/gst-libs.info 2008-01-31 15:53:47.000000000 +0100 +++ smalltalk-3.0.2/doc/gst-libs.info 2008-03-07 12:04:22.000000000 +0100 @@ -1,5 +1,5 @@ -This is gst-libs.info, produced by makeinfo version 4.11 from -/home/bonzinip/smalltalk-3.0.1/doc/gst-libs-fixed.texi. +This is gst-libs.info, produced by makeinfo version 4.8 from +/Users/bonzinip/devel/gst/+build/doc/../../doc/gst-libs-fixed.texi. INFO-DIR-SECTION Software development START-INFO-DIR-ENTRY @@ -15,432 +15,432 @@  Indirect: -gst-libs.info-1: 683 -gst-libs.info-2: 299818 -gst-libs.info-3: 590189 +gst-libs.info-1: 694 +gst-libs.info-2: 300040 +gst-libs.info-3: 590729  Tag Table: (Indirect) -Node: Top683 -Node: BLOX package2051 -Node: BLOX.BArc4681 -Node: BLOX.BArc-accessing5002 -Node: BLOX.BBalloon6548 -Node: BLOX.BBalloon class-accessing7028 -Node: BLOX.BBalloon-accessing7456 -Node: BLOX.BBalloon-initializing7852 -Node: BLOX.BBoundingBox8102 -Node: BLOX.BBoundingBox-accessing8581 -Node: BLOX.BButton11322 -Node: BLOX.BButton class-instance creation11805 -Node: BLOX.BButton-accessing12153 -Node: BLOX.BButtonLike16354 -Node: BLOX.BButtonLike-accessing16709 -Node: BLOX.BCanvas17510 -Node: BLOX.BCanvas-accessing18284 -Node: BLOX.BCanvas-geometry management19144 -Node: BLOX.BCanvas-widget protocol20863 -Node: BLOX.BCanvasObject22088 -Node: BLOX.BCanvasObject class-instance creation22638 -Node: BLOX.BCanvasObject-accessing23055 -Node: BLOX.BCanvasObject-widget protocol25005 -Node: BLOX.BCheckMenuItem26290 -Node: BLOX.BCheckMenuItem class-instance creation26745 -Node: BLOX.BCheckMenuItem-accessing27068 -Node: BLOX.BColorButton27530 -Node: BLOX.BColorButton-accessing27967 -Node: BLOX.BContainer28434 -Node: BLOX.BContainer-accessing28889 -Node: BLOX.BDialog29561 -Node: BLOX.BDialog class-instance creation30192 -Node: BLOX.BDialog class-prompters31109 -Node: BLOX.BDialog-accessing34666 -Node: BLOX.BDialog-widget protocol35874 -Node: BLOX.BDropDown36776 -Node: BLOX.BDropDown-accessing37716 -Node: BLOX.BDropDown-callbacks43014 -Node: BLOX.BDropDown-flexibility43640 -Node: BLOX.BDropDown-list box accessing45135 -Node: BLOX.BDropDown-widget protocol48198 -Node: BLOX.BDropDownEdit49141 -Node: BLOX.BDropDownEdit-accessing49685 -Node: BLOX.BDropDownEdit-accessing-overrides51859 -Node: BLOX.BDropDownEdit-text accessing52176 -Node: BLOX.BDropDownList53586 -Node: BLOX.BDropDownList-accessing54143 -Node: BLOX.BDropDownList-callbacks56848 -Node: BLOX.BDropDownList-list box accessing57548 -Node: BLOX.BEdit57988 -Node: BLOX.BEdit class-instance creation58413 -Node: BLOX.BEdit-accessing58751 -Node: BLOX.BEdit-widget protocol63134 -Node: BLOX.BEmbeddedImage65112 -Node: BLOX.BEmbeddedImage-accessing65471 -Node: BLOX.BEmbeddedText66420 -Node: BLOX.BEmbeddedText-accessing66790 -Node: BLOX.BEventSet69746 -Node: BLOX.BEventSet class-initializing70452 -Node: BLOX.BEventSet-accessing70920 -Node: BLOX.BEventSet-initializing71209 -Node: BLOX.BEventTarget71592 -Node: BLOX.BEventTarget-intercepting events71971 -Node: BLOX.BExtended78067 -Node: BLOX.BExtended-accessing78893 -Node: BLOX.BExtended-customization79157 -Node: BLOX.BForm80171 -Node: BLOX.BForm-accessing80552 -Node: BLOX.BImage82005 -Node: BLOX.BImage class-arrows82598 -Node: BLOX.BImage class-GNU83100 -Node: BLOX.BImage class-icons83354 -Node: BLOX.BImage class-instance creation83867 -Node: BLOX.BImage class-small icons84625 -Node: BLOX.BImage-accessing85007 -Node: BLOX.BImage-image management88143 -Node: BLOX.BImage-widget protocol90669 -Node: BLOX.BLabel90978 -Node: BLOX.BLabel class-initialization91378 -Node: BLOX.BLabel class-instance creation91658 -Node: BLOX.BLabel-accessing92043 -Node: BLOX.BLine96758 -Node: BLOX.BLine-accessing97112 -Node: BLOX.BList97682 -Node: BLOX.BList-accessing98065 -Node: BLOX.BList-widget protocol110127 -Node: BLOX.Blox111510 -Node: BLOX.Blox class-C call-outs112647 -Node: BLOX.Blox class-event dispatching112976 -Node: BLOX.Blox class-instance creation113979 -Node: BLOX.Blox class-utility114429 -Node: BLOX.Blox-accessing117622 -Node: BLOX.Blox-basic118977 -Node: BLOX.Blox-creating children119574 -Node: BLOX.Blox-customization120595 -Node: BLOX.Blox-widget protocol121392 -Node: BLOX.BMenu123653 -Node: BLOX.BMenu class-instance creation124059 -Node: BLOX.BMenu-accessing124476 -Node: BLOX.BMenu-callback registration125325 -Node: BLOX.BMenuBar126423 -Node: BLOX.BMenuBar-accessing126766 -Node: BLOX.BMenuItem127001 -Node: BLOX.BMenuItem class-instance creation127499 -Node: BLOX.BMenuItem-accessing127903 -Node: BLOX.BMenuObject128731 -Node: BLOX.BMenuObject-accessing129138 -Node: BLOX.BMenuObject-callback131485 -Node: BLOX.BOval132441 -Node: BLOX.BPolyline132773 -Node: BLOX.BPolyline-accessing133120 -Node: BLOX.BPopupMenu135459 -Node: BLOX.BPopupMenu-widget protocol135884 -Node: BLOX.BPopupWindow136101 -Node: BLOX.BPopupWindow-geometry management136712 -Node: BLOX.BPrimitive138780 -Node: BLOX.BPrimitive-accessing139179 -Node: BLOX.BProgress139410 -Node: BLOX.BProgress-accessing139750 -Node: BLOX.BRadioButton140996 -Node: BLOX.BRadioButton-accessing141353 -Node: BLOX.BRadioGroup142241 -Node: BLOX.BRadioGroup-accessing142882 -Node: BLOX.BRadioGroup-widget protocol143357 -Node: BLOX.BRectangle143687 -Node: BLOX.BRectangle-accessing144043 -Node: BLOX.BScrolledCanvas144531 -Node: BLOX.BSpline144968 -Node: BLOX.BSpline-accessing145313 -Node: BLOX.BText145744 -Node: BLOX.BText class-accessing146377 -Node: BLOX.BText class-instance creation146720 -Node: BLOX.BText-accessing147088 -Node: BLOX.BText-attributes152955 -Node: BLOX.BText-geometry management154226 -Node: BLOX.BText-images155805 -Node: BLOX.BText-inserting text157497 -Node: BLOX.BText-position & lines159513 -Node: BLOX.BTextAttributes161320 -Node: BLOX.BTextAttributes class-instance-creation shortcuts161794 -Node: BLOX.BTextAttributes-colors164658 -Node: BLOX.BTextAttributes-setting attributes165747 -Node: BLOX.BTextBindings169905 -Node: BLOX.BTextBindings class-instance creation170457 -Node: BLOX.BTextTags170709 -Node: BLOX.BToggle171086 -Node: BLOX.BToggle-accessing171483 -Node: BLOX.BTransientWindow172381 -Node: BLOX.BTransientWindow class-instance creation172908 -Node: BLOX.BTransientWindow-widget protocol173527 -Node: BLOX.BViewport174119 -Node: BLOX.BViewport-accessing174568 -Node: BLOX.BViewport-scrollbars174828 -Node: BLOX.BWidget175788 -Node: BLOX.BWidget class-popups176365 -Node: BLOX.BWidget-accessing177620 -Node: BLOX.BWidget-customization182246 -Node: BLOX.BWidget-geometry management183875 -Node: BLOX.BWidget-widget protocol200381 -Node: BLOX.BWindow202422 -Node: BLOX.BWindow class-instance creation202883 -Node: BLOX.BWindow-accessing203320 -Node: BLOX.BWindow-widget protocol206057 -Node: BLOX.Gui210767 -Node: BLOX.Gui-accessing211175 -Node: Complex package211436 -Node: Complex211709 -Node: Complex class-instance creation212443 -Node: Complex-comparing213136 -Node: Complex-converting213533 -Node: Complex-creation/coercion214015 -Node: Complex-math214518 -Node: Complex-printing215181 -Node: Complex-transcendental functions215431 -Node: DBI package216324 -Node: DBI.ColumnInfo216793 -Node: DBI.ColumnInfo-accessing217079 -Node: DBI.ColumnInfo-printing217519 -Node: DBI.Connection217766 -Node: DBI.Connection class-connecting218219 -Node: DBI.Connection class-initialization219152 -Node: DBI.Connection-connecting219474 -Node: DBI.Connection-querying219770 -Node: DBI.ConnectionInfo220397 -Node: DBI.ConnectionInfo class-instance creation220786 -Node: DBI.ConnectionInfo-accessing221287 -Node: DBI.ResultSet221873 -Node: DBI.ResultSet-accessing222488 -Node: DBI.ResultSet-cursor access223463 -Node: DBI.ResultSet-printing223940 -Node: DBI.ResultSet-stream protocol224224 -Node: DBI.Row224652 -Node: DBI.Row-accessing224964 -Node: DBI.Row-printing225785 -Node: DBI.Statement225997 -Node: DBI.Statement class-instance creation226321 -Node: DBI.Statement-querying226599 -Node: DebugTools package227145 -Node: Debugger227427 -Node: Debugger class-disabling debugging228089 -Node: Debugger class-instance creation228331 -Node: Debugger class-source code228713 -Node: Debugger-inferior process properties228987 -Node: Debugger-stepping commands229487 -Node: Iconv/I18N packages230584 -Node: I18N.BigEndianFileStream232965 -Node: I18N.EncodedStream233336 -Node: I18N.EncodedStream class-initializing233882 -Node: I18N.EncodedStream class-instance creation234774 -Node: I18N.EncodedString236664 -Node: I18N.EncodedString class-accessing237480 -Node: I18N.EncodedString class-instance creation237809 -Node: I18N.EncodedString-accessing238341 -Node: I18N.EncodedString-copying239038 -Node: I18N.EncodedString-initializing239362 -Node: I18N.EncodedString-printing239680 -Node: I18N.EncodedStringFactory240118 -Node: I18N.EncodedStringFactory class-instance creation240723 -Node: I18N.EncodedStringFactory-accessing241102 -Node: I18N.EncodedStringFactory-instance creation241500 -Node: I18N.Encoder242224 -Node: I18N.Encoder class-instance creation242788 -Node: I18N.Encoder-stream operations243224 -Node: I18N.FileStreamSegment244343 -Node: I18N.FileStreamSegment-basic244784 -Node: I18N.IncompleteSequenceError245102 -Node: I18N.IncompleteSequenceError-accessing245678 -Node: I18N.InvalidCharsetError245942 -Node: I18N.InvalidCharsetError-accessing246415 -Node: I18N.InvalidSequenceError246663 -Node: I18N.InvalidSequenceError-accessing247107 -Node: I18N.LcMessages247359 -Node: I18N.LcMessages class-accessing247830 -Node: I18N.LcMessages-accessing248217 -Node: I18N.LcMessages-opening MO files248956 -Node: I18N.LcMessagesCatalog249754 -Node: I18N.LcMessagesDomain250144 -Node: I18N.LcMessagesDomain class-opening MO files251269 -Node: I18N.LcMessagesDomain-handling the cache251660 -Node: I18N.LcMessagesDomain-querying252199 -Node: I18N.LcMessagesDummyDomain253322 -Node: I18N.LcMessagesMoFileVersion0253756 -Node: I18N.LcMessagesMoFileVersion0 class-documentation254464 -Node: I18N.LcMessagesMoFileVersion0 class-plurals262528 -Node: I18N.LcMessagesMoFileVersion0-flushing the cache263178 -Node: I18N.LcMessagesTerritoryDomain263619 -Node: I18N.LcMessagesTerritoryDomain class-instance creation264108 -Node: I18N.LcMonetary264488 -Node: I18N.LcMonetary class-accessing265037 -Node: I18N.LcMonetary-printing265423 -Node: I18N.LcMonetaryISO266222 -Node: I18N.LcMonetaryISO class-accessing266531 -Node: I18N.LcNumeric266807 -Node: I18N.LcNumeric class-accessing267297 -Node: I18N.LcNumeric-printing267678 -Node: I18N.LcPrintFormats268182 -Node: I18N.LcPrintFormats-printing268760 -Node: I18N.LcTime269270 -Node: I18N.LcTime class-accessing269783 -Node: I18N.LcTime-printing270149 -Node: I18N.LcTime-tests272445 -Node: I18N.Locale272679 -Node: I18N.Locale class-initialization273399 -Node: I18N.Locale class-instance creation273787 -Node: I18N.Locale-C call-outs274441 -Node: I18N.Locale-subobjects274726 -Node: I18N.LocaleConventions275355 -Node: I18N.LocaleConventions class-accessing275816 -Node: I18N.LocaleConventions-accessing276540 -Node: I18N.LocaleData276871 -Node: I18N.LocaleData class-accessing277398 -Node: I18N.LocaleData class-database278469 -Node: I18N.LocaleData-accessing279106 -Node: I18N.LocaleData-initialization280279 -Node: I18N.RTEAlternativeNode280679 -Node: I18N.RTEAlternativeNode class-compiling281069 -Node: I18N.RTEAlternativeNode-computing281489 -Node: I18N.RTEBinaryNode282065 -Node: I18N.RTEBinaryNode class-compiling282484 -Node: I18N.RTEBinaryNode-compiling282852 -Node: I18N.RTEBinaryNode-computing283163 -Node: I18N.RTELiteralNode283705 -Node: I18N.RTELiteralNode class-initializing284083 -Node: I18N.RTELiteralNode-computing284396 -Node: I18N.RTENegationNode284826 -Node: I18N.RTENegationNode class-initializing285211 -Node: I18N.RTENegationNode-computing285526 -Node: I18N.RTEParameterNode285983 -Node: I18N.RTEParameterNode-computing286321 -Node: I18N.RunTimeExpression286638 -Node: I18N.RunTimeExpression class-compiling287101 -Node: I18N.RunTimeExpression class-initializing287725 -Node: I18N.RunTimeExpression class-instance creation288100 -Node: I18N.RunTimeExpression-computing288475 -Node: TCP package288900 -Node: TCP.AbstractSocket290331 -Node: TCP.AbstractSocket class-defaults290953 -Node: TCP.AbstractSocket class-instance creation291839 -Node: TCP.AbstractSocket class-timed-out operations292434 -Node: TCP.AbstractSocket-accessing293425 -Node: TCP.AbstractSocket-printing294570 -Node: TCP.AbstractSocket-socket options294878 -Node: TCP.AbstractSocket-stream protocol295811 -Node: TCP.AbstractSocket-testing296384 -Node: TCP.AbstractSocketImpl296660 -Node: TCP.AbstractSocketImpl class-abstract297417 -Node: TCP.AbstractSocketImpl class-C call-outs297871 -Node: TCP.AbstractSocketImpl class-C constants298928 -Node: TCP.AbstractSocketImpl class-socket creation299473 -Node: TCP.AbstractSocketImpl-accessing299818 -Node: TCP.AbstractSocketImpl-asynchronous operations300979 -Node: TCP.AbstractSocketImpl-C call-outs301715 -Node: TCP.AbstractSocketImpl-socket operations302763 -Node: TCP.AbstractSocketImpl-socket options304717 -Node: TCP.Datagram306837 -Node: TCP.Datagram class-instance creation307164 -Node: TCP.Datagram-accessing308475 -Node: TCP.DatagramSocket309508 -Node: TCP.DatagramSocket class-accessing310023 -Node: TCP.DatagramSocket class-initialization310672 -Node: TCP.DatagramSocket class-instance creation311034 -Node: TCP.DatagramSocket-accessing312049 -Node: TCP.DatagramSocket-direct operations312952 -Node: TCP.DatagramSocketImpl313267 -Node: TCP.DatagramSocketImpl class-parameters313757 -Node: TCP.DatagramSocketImpl-accessing314058 -Node: TCP.DatagramSocketImpl-C constants314483 -Node: TCP.DatagramSocketImpl-socket operations314929 -Node: TCP.ICMPSocketImpl316083 -Node: TCP.ICMPSocketImpl class-C constants316448 -Node: TCP.ICMPSocketImpl class-implementation316709 -Node: TCP.IPAddress317050 -Node: TCP.IPAddress class-C call-outs317610 -Node: TCP.IPAddress class-C constants317878 -Node: TCP.IPAddress class-constants318190 -Node: TCP.IPAddress class-initialization318553 -Node: TCP.IPAddress class-instance creation319266 -Node: TCP.IPAddress-accessing323146 -Node: TCP.IPAddress-printing324284 -Node: TCP.MulticastSocket324511 -Node: TCP.MulticastSocket-instance creation324830 -Node: TCP.MulticastSocketImpl325661 -Node: TCP.MulticastSocketImpl-multicasting325997 -Node: TCP.OOBSocketImpl326784 -Node: TCP.OOBSocketImpl class-implementation327202 -Node: TCP.OOBSocketImpl-C constants327533 -Node: TCP.OOBSocketImpl-implementation327812 -Node: TCP.RawSocketImpl328212 -Node: TCP.RawSocketImpl class-parameters328522 -Node: TCP.ReadBuffer328764 -Node: TCP.ReadBuffer class-instance creation329244 -Node: TCP.ReadBuffer-buffer handling329715 -Node: TCP.ServerSocket330684 -Node: TCP.ServerSocket class-instance creation331073 -Node: TCP.ServerSocket-accessing332549 -Node: TCP.ServerSocket-initializing333474 -Node: TCP.Socket333869 -Node: TCP.Socket class-accessing334437 -Node: TCP.Socket class-instance creation335242 -Node: TCP.Socket class-tests336086 -Node: TCP.Socket class-well known ports337647 -Node: TCP.Socket-accessing339737 -Node: TCP.Socket-out-of-band data340050 -Node: TCP.Socket-printing340362 -Node: TCP.Socket-stream protocol340632 -Node: TCP.SocketAddress342727 -Node: TCP.SocketAddress class-abstract343258 -Node: TCP.SocketAddress class-accessing343702 -Node: TCP.SocketAddress class-C call-outs345705 -Node: TCP.SocketAddress class-host name lookup346146 -Node: TCP.SocketAddress class-initialization346954 -Node: TCP.SocketAddress-accessing348164 -Node: TCP.SocketImpl349171 -Node: TCP.SocketImpl class-parameters349561 -Node: TCP.SocketImpl-abstract349823 -Node: TCP.SocketImpl-socket operations350156 -Node: TCP.TCPSocketImpl350598 -Node: TCP.TCPSocketImpl class-C constants351051 -Node: TCP.TCPSocketImpl class-implementation351373 -Node: TCP.TCPSocketImpl-implementation351751 -Node: TCP.TCPSocketImpl-socket options352121 -Node: TCP.UDPSocketImpl352480 -Node: TCP.UDPSocketImpl class-C constants352892 -Node: TCP.UDPSocketImpl class-implementation353181 -Node: TCP.UDPSocketImpl-multicasting353557 -Node: TCP.WriteBuffer354465 -Node: TCP.WriteBuffer-buffer handling354887 -Node: ZLib package355341 -Node: ZLib.DeflateStream356424 -Node: ZLib.DeflateStream class-instance creation356809 -Node: ZLib.DeflateWriteStream357286 -Node: ZLib.GZipDeflateStream357660 -Node: ZLib.GZipDeflateStream class-instance creation358080 -Node: ZLib.GZipDeflateWriteStream358573 -Node: ZLib.GZipInflateStream358946 -Node: ZLib.InflateStream359302 -Node: ZLib.RawDeflateStream359661 -Node: ZLib.RawDeflateStream class-instance creation360068 -Node: ZLib.RawDeflateWriteStream360801 -Node: ZLib.RawDeflateWriteStream class-instance creation361227 -Node: ZLib.RawInflateStream361714 -Node: ZLib.RawInflateStream-positioning362110 -Node: ZLib.ZlibError363201 -Node: ZLib.ZlibError-accessing363573 -Node: ZLib.ZlibReadStream363841 -Node: ZLib.ZlibReadStream-streaming364249 -Node: ZLib.ZlibStream365186 -Node: ZLib.ZlibStream class-accessing365707 -Node: ZLib.ZlibStream class-instance creation366432 -Node: ZLib.ZlibStream-streaming366846 -Node: ZLib.ZlibWriteStream367289 -Node: ZLib.ZlibWriteStream-streaming367705 -Node: XML/XPath/XSL packages369540 -Node: Building a DOM from XML369889 -Node: Building XML375297 -Node: Using DTDs378484 -Node: XSL Processing381757 -Node: Attributions383196 -Node: Class index383559 -Node: Method index393873 -Node: Cross-reference590189 +Node: Top694 +Node: BLOX package2062 +Node: BLOX.BArc4692 +Node: BLOX.BArc-accessing5013 +Node: BLOX.BBalloon6559 +Node: BLOX.BBalloon class-accessing7039 +Node: BLOX.BBalloon-accessing7467 +Node: BLOX.BBalloon-initializing7863 +Node: BLOX.BBoundingBox8113 +Node: BLOX.BBoundingBox-accessing8592 +Node: BLOX.BButton11333 +Node: BLOX.BButton class-instance creation11816 +Node: BLOX.BButton-accessing12164 +Node: BLOX.BButtonLike16365 +Node: BLOX.BButtonLike-accessing16720 +Node: BLOX.BCanvas17521 +Node: BLOX.BCanvas-accessing18295 +Node: BLOX.BCanvas-geometry management19155 +Node: BLOX.BCanvas-widget protocol20874 +Node: BLOX.BCanvasObject22099 +Node: BLOX.BCanvasObject class-instance creation22649 +Node: BLOX.BCanvasObject-accessing23066 +Node: BLOX.BCanvasObject-widget protocol25016 +Node: BLOX.BCheckMenuItem26301 +Node: BLOX.BCheckMenuItem class-instance creation26756 +Node: BLOX.BCheckMenuItem-accessing27079 +Node: BLOX.BColorButton27541 +Node: BLOX.BColorButton-accessing27978 +Node: BLOX.BContainer28445 +Node: BLOX.BContainer-accessing28900 +Node: BLOX.BDialog29572 +Node: BLOX.BDialog class-instance creation30203 +Node: BLOX.BDialog class-prompters31120 +Node: BLOX.BDialog-accessing34677 +Node: BLOX.BDialog-widget protocol35885 +Node: BLOX.BDropDown36787 +Node: BLOX.BDropDown-accessing37727 +Node: BLOX.BDropDown-callbacks43025 +Node: BLOX.BDropDown-flexibility43651 +Node: BLOX.BDropDown-list box accessing45146 +Node: BLOX.BDropDown-widget protocol48209 +Node: BLOX.BDropDownEdit49152 +Node: BLOX.BDropDownEdit-accessing49696 +Node: BLOX.BDropDownEdit-accessing-overrides51870 +Node: BLOX.BDropDownEdit-text accessing52187 +Node: BLOX.BDropDownList53597 +Node: BLOX.BDropDownList-accessing54154 +Node: BLOX.BDropDownList-callbacks56859 +Node: BLOX.BDropDownList-list box accessing57559 +Node: BLOX.BEdit57999 +Node: BLOX.BEdit class-instance creation58424 +Node: BLOX.BEdit-accessing58762 +Node: BLOX.BEdit-widget protocol63145 +Node: BLOX.BEmbeddedImage65123 +Node: BLOX.BEmbeddedImage-accessing65482 +Node: BLOX.BEmbeddedText66431 +Node: BLOX.BEmbeddedText-accessing66801 +Node: BLOX.BEventSet69757 +Node: BLOX.BEventSet class-initializing70463 +Node: BLOX.BEventSet-accessing70931 +Node: BLOX.BEventSet-initializing71220 +Node: BLOX.BEventTarget71603 +Node: BLOX.BEventTarget-intercepting events71982 +Node: BLOX.BExtended78078 +Node: BLOX.BExtended-accessing78904 +Node: BLOX.BExtended-customization79168 +Node: BLOX.BForm80182 +Node: BLOX.BForm-accessing80563 +Node: BLOX.BImage82016 +Node: BLOX.BImage class-arrows82609 +Node: BLOX.BImage class-GNU83111 +Node: BLOX.BImage class-icons83365 +Node: BLOX.BImage class-instance creation83878 +Node: BLOX.BImage class-small icons84636 +Node: BLOX.BImage-accessing85018 +Node: BLOX.BImage-image management88154 +Node: BLOX.BImage-widget protocol90680 +Node: BLOX.BLabel90989 +Node: BLOX.BLabel class-initialization91389 +Node: BLOX.BLabel class-instance creation91669 +Node: BLOX.BLabel-accessing92054 +Node: BLOX.BLine96769 +Node: BLOX.BLine-accessing97123 +Node: BLOX.BList97693 +Node: BLOX.BList-accessing98076 +Node: BLOX.BList-widget protocol110138 +Node: BLOX.Blox111521 +Node: BLOX.Blox class-C call-outs112658 +Node: BLOX.Blox class-event dispatching112987 +Node: BLOX.Blox class-instance creation113990 +Node: BLOX.Blox class-utility114440 +Node: BLOX.Blox-accessing117633 +Node: BLOX.Blox-basic118988 +Node: BLOX.Blox-creating children119585 +Node: BLOX.Blox-customization120606 +Node: BLOX.Blox-widget protocol121403 +Node: BLOX.BMenu123664 +Node: BLOX.BMenu class-instance creation124070 +Node: BLOX.BMenu-accessing124487 +Node: BLOX.BMenu-callback registration125336 +Node: BLOX.BMenuBar126434 +Node: BLOX.BMenuBar-accessing126777 +Node: BLOX.BMenuItem127012 +Node: BLOX.BMenuItem class-instance creation127510 +Node: BLOX.BMenuItem-accessing127914 +Node: BLOX.BMenuObject128742 +Node: BLOX.BMenuObject-accessing129149 +Node: BLOX.BMenuObject-callback131496 +Node: BLOX.BOval132452 +Node: BLOX.BPolyline132784 +Node: BLOX.BPolyline-accessing133131 +Node: BLOX.BPopupMenu135470 +Node: BLOX.BPopupMenu-widget protocol135895 +Node: BLOX.BPopupWindow136112 +Node: BLOX.BPopupWindow-geometry management136723 +Node: BLOX.BPrimitive138791 +Node: BLOX.BPrimitive-accessing139190 +Node: BLOX.BProgress139421 +Node: BLOX.BProgress-accessing139761 +Node: BLOX.BRadioButton141007 +Node: BLOX.BRadioButton-accessing141364 +Node: BLOX.BRadioGroup142252 +Node: BLOX.BRadioGroup-accessing142893 +Node: BLOX.BRadioGroup-widget protocol143368 +Node: BLOX.BRectangle143698 +Node: BLOX.BRectangle-accessing144054 +Node: BLOX.BScrolledCanvas144542 +Node: BLOX.BSpline144979 +Node: BLOX.BSpline-accessing145324 +Node: BLOX.BText145755 +Node: BLOX.BText class-accessing146388 +Node: BLOX.BText class-instance creation146731 +Node: BLOX.BText-accessing147099 +Node: BLOX.BText-attributes152966 +Node: BLOX.BText-geometry management154237 +Node: BLOX.BText-images155816 +Node: BLOX.BText-inserting text157508 +Node: BLOX.BText-position & lines159524 +Node: BLOX.BTextAttributes161331 +Node: BLOX.BTextAttributes class-instance-creation shortcuts161805 +Node: BLOX.BTextAttributes-colors164669 +Node: BLOX.BTextAttributes-setting attributes165758 +Node: BLOX.BTextBindings169916 +Node: BLOX.BTextBindings class-instance creation170468 +Node: BLOX.BTextTags170720 +Node: BLOX.BToggle171097 +Node: BLOX.BToggle-accessing171494 +Node: BLOX.BTransientWindow172392 +Node: BLOX.BTransientWindow class-instance creation172919 +Node: BLOX.BTransientWindow-widget protocol173538 +Node: BLOX.BViewport174130 +Node: BLOX.BViewport-accessing174579 +Node: BLOX.BViewport-scrollbars174839 +Node: BLOX.BWidget175799 +Node: BLOX.BWidget class-popups176376 +Node: BLOX.BWidget-accessing177631 +Node: BLOX.BWidget-customization182257 +Node: BLOX.BWidget-geometry management183886 +Node: BLOX.BWidget-widget protocol200392 +Node: BLOX.BWindow202433 +Node: BLOX.BWindow class-instance creation202894 +Node: BLOX.BWindow-accessing203331 +Node: BLOX.BWindow-widget protocol206068 +Node: BLOX.Gui210778 +Node: BLOX.Gui-accessing211186 +Node: Complex package211447 +Node: Complex211720 +Node: Complex class-instance creation212454 +Node: Complex-comparing213147 +Node: Complex-converting213544 +Node: Complex-creation/coercion214026 +Node: Complex-math214529 +Node: Complex-printing215192 +Node: Complex-transcendental functions215442 +Node: DBI package216335 +Node: DBI.ColumnInfo216804 +Node: DBI.ColumnInfo-accessing217090 +Node: DBI.ColumnInfo-printing217530 +Node: DBI.Connection217777 +Node: DBI.Connection class-connecting218230 +Node: DBI.Connection class-initialization219163 +Node: DBI.Connection-connecting219485 +Node: DBI.Connection-querying219781 +Node: DBI.ConnectionInfo220408 +Node: DBI.ConnectionInfo class-instance creation220797 +Node: DBI.ConnectionInfo-accessing221298 +Node: DBI.ResultSet221884 +Node: DBI.ResultSet-accessing222499 +Node: DBI.ResultSet-cursor access223474 +Node: DBI.ResultSet-printing223951 +Node: DBI.ResultSet-stream protocol224235 +Node: DBI.Row224663 +Node: DBI.Row-accessing224975 +Node: DBI.Row-printing225796 +Node: DBI.Statement226008 +Node: DBI.Statement class-instance creation226332 +Node: DBI.Statement-querying226610 +Node: DebugTools package227156 +Node: Debugger227438 +Node: Debugger class-disabling debugging228100 +Node: Debugger class-instance creation228342 +Node: Debugger class-source code228724 +Node: Debugger-inferior process properties228998 +Node: Debugger-stepping commands229498 +Node: Iconv/I18N packages230595 +Node: I18N.BigEndianFileStream232976 +Node: I18N.EncodedStream233347 +Node: I18N.EncodedStream class-initializing233893 +Node: I18N.EncodedStream class-instance creation234785 +Node: I18N.EncodedString236675 +Node: I18N.EncodedString class-accessing237491 +Node: I18N.EncodedString class-instance creation237820 +Node: I18N.EncodedString-accessing238352 +Node: I18N.EncodedString-copying239049 +Node: I18N.EncodedString-initializing239373 +Node: I18N.EncodedString-printing239691 +Node: I18N.EncodedStringFactory240129 +Node: I18N.EncodedStringFactory class-instance creation240734 +Node: I18N.EncodedStringFactory-accessing241113 +Node: I18N.EncodedStringFactory-instance creation241511 +Node: I18N.Encoder242235 +Node: I18N.Encoder class-instance creation242799 +Node: I18N.Encoder-stream operations243235 +Node: I18N.FileStreamSegment244354 +Node: I18N.FileStreamSegment-basic244795 +Node: I18N.IncompleteSequenceError245113 +Node: I18N.IncompleteSequenceError-accessing245689 +Node: I18N.InvalidCharsetError245953 +Node: I18N.InvalidCharsetError-accessing246426 +Node: I18N.InvalidSequenceError246674 +Node: I18N.InvalidSequenceError-accessing247118 +Node: I18N.LcMessages247370 +Node: I18N.LcMessages class-accessing247841 +Node: I18N.LcMessages-accessing248228 +Node: I18N.LcMessages-opening MO files248967 +Node: I18N.LcMessagesCatalog249765 +Node: I18N.LcMessagesDomain250155 +Node: I18N.LcMessagesDomain class-opening MO files251280 +Node: I18N.LcMessagesDomain-handling the cache251671 +Node: I18N.LcMessagesDomain-querying252210 +Node: I18N.LcMessagesDummyDomain253333 +Node: I18N.LcMessagesMoFileVersion0253767 +Node: I18N.LcMessagesMoFileVersion0 class-documentation254475 +Node: I18N.LcMessagesMoFileVersion0 class-plurals262454 +Node: I18N.LcMessagesMoFileVersion0-flushing the cache263104 +Node: I18N.LcMessagesTerritoryDomain263545 +Node: I18N.LcMessagesTerritoryDomain class-instance creation264034 +Node: I18N.LcMonetary264414 +Node: I18N.LcMonetary class-accessing264963 +Node: I18N.LcMonetary-printing265349 +Node: I18N.LcMonetaryISO266148 +Node: I18N.LcMonetaryISO class-accessing266457 +Node: I18N.LcNumeric266733 +Node: I18N.LcNumeric class-accessing267223 +Node: I18N.LcNumeric-printing267604 +Node: I18N.LcPrintFormats268108 +Node: I18N.LcPrintFormats-printing268686 +Node: I18N.LcTime269196 +Node: I18N.LcTime class-accessing269709 +Node: I18N.LcTime-printing270075 +Node: I18N.LcTime-tests272380 +Node: I18N.Locale272614 +Node: I18N.Locale class-initialization273334 +Node: I18N.Locale class-instance creation273722 +Node: I18N.Locale-C call-outs274376 +Node: I18N.Locale-subobjects274661 +Node: I18N.LocaleConventions275290 +Node: I18N.LocaleConventions class-accessing275751 +Node: I18N.LocaleConventions-accessing276475 +Node: I18N.LocaleData276806 +Node: I18N.LocaleData class-accessing277333 +Node: I18N.LocaleData class-database278404 +Node: I18N.LocaleData-accessing279041 +Node: I18N.LocaleData-initialization280214 +Node: I18N.RTEAlternativeNode280614 +Node: I18N.RTEAlternativeNode class-compiling281004 +Node: I18N.RTEAlternativeNode-computing281424 +Node: I18N.RTEBinaryNode282000 +Node: I18N.RTEBinaryNode class-compiling282419 +Node: I18N.RTEBinaryNode-compiling282787 +Node: I18N.RTEBinaryNode-computing283098 +Node: I18N.RTELiteralNode283640 +Node: I18N.RTELiteralNode class-initializing284018 +Node: I18N.RTELiteralNode-computing284331 +Node: I18N.RTENegationNode284761 +Node: I18N.RTENegationNode class-initializing285146 +Node: I18N.RTENegationNode-computing285461 +Node: I18N.RTEParameterNode285918 +Node: I18N.RTEParameterNode-computing286256 +Node: I18N.RunTimeExpression286573 +Node: I18N.RunTimeExpression class-compiling287036 +Node: I18N.RunTimeExpression class-initializing287660 +Node: I18N.RunTimeExpression class-instance creation288035 +Node: I18N.RunTimeExpression-computing288410 +Node: TCP package288835 +Node: TCP.AbstractSocket290266 +Node: TCP.AbstractSocket class-defaults290888 +Node: TCP.AbstractSocket class-instance creation291774 +Node: TCP.AbstractSocket class-timed-out operations292369 +Node: TCP.AbstractSocket-accessing293360 +Node: TCP.AbstractSocket-printing294603 +Node: TCP.AbstractSocket-socket options294911 +Node: TCP.AbstractSocket-stream protocol295844 +Node: TCP.AbstractSocket-testing296606 +Node: TCP.AbstractSocketImpl296882 +Node: TCP.AbstractSocketImpl class-abstract297639 +Node: TCP.AbstractSocketImpl class-C call-outs298093 +Node: TCP.AbstractSocketImpl class-C constants299150 +Node: TCP.AbstractSocketImpl class-socket creation299695 +Node: TCP.AbstractSocketImpl-accessing300040 +Node: TCP.AbstractSocketImpl-asynchronous operations301201 +Node: TCP.AbstractSocketImpl-C call-outs301937 +Node: TCP.AbstractSocketImpl-socket operations302985 +Node: TCP.AbstractSocketImpl-socket options304939 +Node: TCP.Datagram307059 +Node: TCP.Datagram class-instance creation307386 +Node: TCP.Datagram-accessing308697 +Node: TCP.DatagramSocket309730 +Node: TCP.DatagramSocket class-accessing310245 +Node: TCP.DatagramSocket class-initialization310894 +Node: TCP.DatagramSocket class-instance creation311256 +Node: TCP.DatagramSocket-accessing312271 +Node: TCP.DatagramSocket-direct operations313174 +Node: TCP.DatagramSocketImpl313489 +Node: TCP.DatagramSocketImpl class-parameters313979 +Node: TCP.DatagramSocketImpl-accessing314280 +Node: TCP.DatagramSocketImpl-C constants314705 +Node: TCP.DatagramSocketImpl-socket operations315151 +Node: TCP.ICMPSocketImpl316305 +Node: TCP.ICMPSocketImpl class-C constants316670 +Node: TCP.ICMPSocketImpl class-implementation316931 +Node: TCP.IPAddress317272 +Node: TCP.IPAddress class-C call-outs317832 +Node: TCP.IPAddress class-C constants318100 +Node: TCP.IPAddress class-constants318412 +Node: TCP.IPAddress class-initialization318775 +Node: TCP.IPAddress class-instance creation319488 +Node: TCP.IPAddress-accessing323368 +Node: TCP.IPAddress-printing324506 +Node: TCP.MulticastSocket324733 +Node: TCP.MulticastSocket-instance creation325052 +Node: TCP.MulticastSocketImpl325883 +Node: TCP.MulticastSocketImpl-multicasting326219 +Node: TCP.OOBSocketImpl327006 +Node: TCP.OOBSocketImpl class-implementation327424 +Node: TCP.OOBSocketImpl-C constants327755 +Node: TCP.OOBSocketImpl-implementation328034 +Node: TCP.RawSocketImpl328434 +Node: TCP.RawSocketImpl class-parameters328744 +Node: TCP.ReadBuffer328986 +Node: TCP.ReadBuffer class-instance creation329466 +Node: TCP.ReadBuffer-buffer handling329937 +Node: TCP.ServerSocket330906 +Node: TCP.ServerSocket class-instance creation331295 +Node: TCP.ServerSocket-accessing332771 +Node: TCP.ServerSocket-initializing333696 +Node: TCP.Socket334091 +Node: TCP.Socket class-accessing334659 +Node: TCP.Socket class-instance creation335464 +Node: TCP.Socket class-tests336308 +Node: TCP.Socket class-well known ports337869 +Node: TCP.Socket-accessing339959 +Node: TCP.Socket-out-of-band data340272 +Node: TCP.Socket-printing340584 +Node: TCP.Socket-stream protocol340854 +Node: TCP.SocketAddress342973 +Node: TCP.SocketAddress class-abstract343504 +Node: TCP.SocketAddress class-accessing343948 +Node: TCP.SocketAddress class-C call-outs345951 +Node: TCP.SocketAddress class-host name lookup346392 +Node: TCP.SocketAddress class-initialization347200 +Node: TCP.SocketAddress-accessing348410 +Node: TCP.SocketImpl349417 +Node: TCP.SocketImpl class-parameters349807 +Node: TCP.SocketImpl-abstract350069 +Node: TCP.SocketImpl-socket operations350402 +Node: TCP.TCPSocketImpl350844 +Node: TCP.TCPSocketImpl class-C constants351297 +Node: TCP.TCPSocketImpl class-implementation351619 +Node: TCP.TCPSocketImpl-implementation351997 +Node: TCP.TCPSocketImpl-socket options352367 +Node: TCP.UDPSocketImpl352726 +Node: TCP.UDPSocketImpl class-C constants353138 +Node: TCP.UDPSocketImpl class-implementation353427 +Node: TCP.UDPSocketImpl-multicasting353803 +Node: TCP.WriteBuffer354711 +Node: TCP.WriteBuffer-buffer handling355133 +Node: ZLib package355587 +Node: ZLib.DeflateStream356670 +Node: ZLib.DeflateStream class-instance creation357055 +Node: ZLib.DeflateWriteStream357532 +Node: ZLib.GZipDeflateStream357906 +Node: ZLib.GZipDeflateStream class-instance creation358326 +Node: ZLib.GZipDeflateWriteStream358819 +Node: ZLib.GZipInflateStream359192 +Node: ZLib.InflateStream359548 +Node: ZLib.RawDeflateStream359907 +Node: ZLib.RawDeflateStream class-instance creation360314 +Node: ZLib.RawDeflateWriteStream361047 +Node: ZLib.RawDeflateWriteStream class-instance creation361473 +Node: ZLib.RawInflateStream361960 +Node: ZLib.RawInflateStream-positioning362356 +Node: ZLib.ZlibError363447 +Node: ZLib.ZlibError-accessing363819 +Node: ZLib.ZlibReadStream364087 +Node: ZLib.ZlibReadStream-streaming364495 +Node: ZLib.ZlibStream365432 +Node: ZLib.ZlibStream class-accessing365953 +Node: ZLib.ZlibStream class-instance creation366678 +Node: ZLib.ZlibStream-streaming367092 +Node: ZLib.ZlibWriteStream367535 +Node: ZLib.ZlibWriteStream-streaming367951 +Node: XML/XPath/XSL packages369786 +Node: Building a DOM from XML370135 +Node: Building XML375543 +Node: Using DTDs378730 +Node: XSL Processing382003 +Node: Attributions383442 +Node: Class index383805 +Node: Method index394119 +Node: Cross-reference590729  End Tag Table diff -ru smalltalk-3.0.1/doc/gst-libs.info-1 smalltalk-3.0.2/doc/gst-libs.info-1 --- smalltalk-3.0.1/doc/gst-libs.info-1 2008-01-31 15:53:47.000000000 +0100 +++ smalltalk-3.0.2/doc/gst-libs.info-1 2008-03-07 12:04:22.000000000 +0100 @@ -1,5 +1,5 @@ -This is gst-libs.info, produced by makeinfo version 4.11 from -/home/bonzinip/smalltalk-3.0.1/doc/gst-libs-fixed.texi. +This is gst-libs.info, produced by makeinfo version 4.8 from +/Users/bonzinip/devel/gst/+build/doc/../../doc/gst-libs-fixed.texi. INFO-DIR-SECTION Software development START-INFO-DIR-ENTRY @@ -7645,39 +7645,39 @@ byte +-----------------------------------------+ 0 | magic number = 0x950412de | | | 4 | file format revision = 0 | | - | 8 | number of strings - | == N | | - 12 | offset of table with original strings | == O | - | 16 | offset of table with translation - strings | == T | | 20 | - size of hashing table | == S | - | 24 | offset of hashing table - | == H | | . - . . (possibly more entries later) - . . . | - | O | length & offset 0th - string ---------------. O + 8 | length & offset 1st string - -----------------. ... ... | | - O + ((N-1)*8)| length & offset (N-1)th string | | | | - | | | T | length & offset - 0th translation --------------. T + 8 | length & offset 1st - translation ----------------. ... - ... | | | | T + ((N-1)*8)| length & offset (N-1)th - translation | | | | | | - | | | | | H | start hash table - | | | | | ... ... | | | | - H + S * 4 | end hash table | | | | | | - | | | | | | NUL - terminated 0th string <---------------' | | | | - | | | | | NUL terminated 1st string + | 8 | number of strings + | == N | + | 12 | offset of table with original strings | == O | + | 16 | offset of table with + translation strings | == T | + | 20 | size of hashing table | == S | + | 24 | offset of hashing table + | == H | | . + . . (possibly more + entries later) . . + . | | O | + length & offset 0th string ---------------. O + 8 | length & + offset 1st string -----------------. ... + ... | | O + ((N-1)*8)| length & offset (N-1)th string + | | | | | | | + T | length & offset 0th translation --------------. T + 8 | + length & offset 1st translation ----------------. ... + ... | | | | T + ((N-1)*8)| length & + offset (N-1)th translation | | | | | | + | | | | | H | start hash table + | | | | | ... + ... | | | | H + S * 4 | end hash table + | | | | | | | | | | | + | NUL terminated 0th string <---------------' | | | | + | | | | | NUL terminated 1st string <-----------------' | | | | | | ... ... | | | - | | | | NUL terminated - 0th translation <--------------' | | - | | | NUL terminated 1st translation + | | | | NUL + terminated 0th translation <--------------' | | + | | | NUL terminated 1st translation <----------------' | | ... ... | - | +-----------------------------------------+ + | +-----------------------------------------+ Locating Message Catalog Files ----------------------------- @@ -7976,16 +7976,16 @@ valid abbreviations are the same used by the C function strftime: abbreviated weekday (%a) weekday (%A) abbreviated month (%b) month - (%B) date & time (%c) century - (%C) day of the month (%d) date (US) - (%D) day of the month (%e) year for the ISO week - (%g) year for the ISO week (%G) + (%B) date & time (%c) century + (%C) day of the month (%d) date (US) + (%D) day of the month (%e) year for the ISO + week (%g) year for the ISO week (%G) abbreviated month (%h) hours (%H) hours (AM/PM) (%I) day of the year (%j) hours (%k) hours (AM/PM) (%l) month (%m) minutes (%M) AM/PM - (%p) lowercase AM/PM (%P) AM/PM + (%p) lowercase AM/PM (%P) AM/PM time (%r) time (US) (%R) time_t (%s) seconds (%S) time (US) (%T) day of the week @@ -8749,6 +8749,10 @@ Answer whether the connection between the receiver and the remote endpoint is still alive. +isPeerAlive + Answer whether the connection with the peer remote machine is still + valid. + localAddress Answer the local IP address of the socket. @@ -8816,6 +8820,10 @@ Read another character from the socket, failing if the connection is dead. +next: n putAll: aCollection startingAt: pos + Write `char' to the socket, failing if the connection is dead. The + SIGPIPE signal is automatically caught and ignored by the system. + nextPut: char Write `char' to the socket, failing if the connection is dead. The SIGPIPE signal is automatically caught and ignored by the system. diff -ru smalltalk-3.0.1/doc/gst-libs.info-2 smalltalk-3.0.2/doc/gst-libs.info-2 --- smalltalk-3.0.1/doc/gst-libs.info-2 2008-01-31 15:53:47.000000000 +0100 +++ smalltalk-3.0.2/doc/gst-libs.info-2 2008-03-07 12:04:22.000000000 +0100 @@ -1,5 +1,5 @@ -This is gst-libs.info, produced by makeinfo version 4.11 from -/home/bonzinip/smalltalk-3.0.1/doc/gst-libs-fixed.texi. +This is gst-libs.info, produced by makeinfo version 4.8 from +/Users/bonzinip/devel/gst/+build/doc/../../doc/gst-libs-fixed.texi. INFO-DIR-SECTION Software development START-INFO-DIR-ENTRY @@ -1331,6 +1331,11 @@ Read `count' bytes from the socket. This might yield control to other Smalltalk Processes. +next: n putAll: aCollection startingAt: pos + Write aString to the socket; this acts as a bit-bucket when the + socket is closed. This might yield control to other Smalltalk + Processes. + nextHunk Answer the next buffers worth of stuff in the Stream represented by the receiver. Do at most one actual input operation. @@ -1340,11 +1345,6 @@ the socket is closed. This might yield control to other Smalltalk Processes. -nextPutAll: aString - Write aString to the socket; this acts as a bit-bucket when the - socket is closed. This might yield control to other Smalltalk - Processes. - peek Read a byte from the socket, without advancing the buffer; answer nil if no more data is available. This might yield control to @@ -2778,13 +2778,13 @@ * >=: Complex-comparing. (line 18) * ? <1>: I18N.LocaleConventions-accessing. (line 6) -* ? <2>: I18N.LocaleConventions class-accessing. +* ? <2>: I18N.LcPrintFormats-printing. (line 6) -* ? <3>: I18N.LcPrintFormats-printing. +* ? <3>: I18N.LcMessages-opening MO files. (line 6) * ? <4>: I18N.LcMessagesDomain-querying. (line 6) -* ?: I18N.LcMessages-opening MO files. +* ?: I18N.LocaleConventions class-accessing. (line 6) * abs: Complex-math. (line 18) * absSquared: Complex-math. (line 21) @@ -2820,9 +2820,9 @@ (line 6) * add_afterIndex_: BLOX.BDropDown-list box accessing. (line 6) -* add_element_afterIndex_ <1>: BLOX.BList-accessing. +* add_element_afterIndex_ <1>: BLOX.BDropDown-list box accessing. (line 11) -* add_element_afterIndex_: BLOX.BDropDown-list box accessing. +* add_element_afterIndex_: BLOX.BList-accessing. (line 11) * addButton_receiver_index_: BLOX.BDialog-accessing. (line 6) @@ -2830,52 +2830,52 @@ (line 12) * addButton_receiver_message_argument_: BLOX.BDialog-accessing. (line 17) -* addChild_ <1>: BLOX.BWidget-customization. +* addChild_ <1>: BLOX.BCanvas-geometry management. (line 6) -* addChild_ <2>: BLOX.BPopupWindow-geometry management. +* addChild_ <2>: BLOX.Blox-customization. (line 6) -* addChild_ <3>: BLOX.Blox-customization. +* addChild_ <3>: BLOX.BPopupWindow-geometry management. (line 6) -* addChild_: BLOX.BCanvas-geometry management. +* addChild_: BLOX.BWidget-customization. (line 6) * addEventSet_: BLOX.BEventTarget-intercepting events. (line 6) -* addLast_ <1>: BLOX.BList-accessing. +* addLast_ <1>: BLOX.BDropDown-list box accessing. (line 23) -* addLast_: BLOX.BDropDown-list box accessing. +* addLast_: BLOX.BList-accessing. (line 23) -* addLast_element_ <1>: BLOX.BList-accessing. +* addLast_element_ <1>: BLOX.BDropDown-list box accessing. (line 28) -* addLast_element_: BLOX.BDropDown-list box accessing. +* addLast_element_: BLOX.BList-accessing. (line 28) * addLine: BLOX.BMenu-callback registration. (line 6) * addMenuItemFor_notifying_: BLOX.BMenu-callback registration. (line 9) -* address <1>: TCP.Socket-accessing. - (line 6) -* address <2>: TCP.ServerSocket-accessing. +* address <1>: TCP.ServerSocket-accessing. (line 15) -* address <3>: TCP.DatagramSocket-accessing. +* address <2>: TCP.Datagram-accessing. (line 6) -* address <4>: TCP.Datagram-accessing. +* address <3>: TCP.AbstractSocket-accessing. (line 6) -* address: TCP.AbstractSocket-accessing. +* address <4>: TCP.DatagramSocket-accessing. + (line 6) +* address: TCP.Socket-accessing. (line 6) * address_: TCP.Datagram-accessing. (line 9) -* addressClass <1>: TCP.UDPSocketImpl class-implementation. - (line 6) -* addressClass <2>: TCP.TCPSocketImpl class-implementation. +* addressClass <1>: TCP.AbstractSocketImpl-socket operations. + (line 11) +* addressClass <2>: TCP.OOBSocketImpl class-implementation. (line 6) -* addressClass <3>: TCP.OOBSocketImpl class-implementation. +* addressClass <3>: TCP.UDPSocketImpl class-implementation. (line 6) * addressClass <4>: TCP.IPAddress-accessing. (line 6) -* addressClass <5>: TCP.ICMPSocketImpl class-implementation. +* addressClass <5>: TCP.TCPSocketImpl class-implementation. + (line 6) +* addressClass <6>: TCP.ICMPSocketImpl class-implementation. (line 6) -* addressClass <6>: TCP.AbstractSocketImpl-socket operations. - (line 11) * addressClass: TCP.AbstractSocketImpl class-abstract. (line 6) * addressFamily <1>: TCP.SocketAddress class-accessing. @@ -2899,127 +2899,127 @@ (line 9) * arg: Complex-transcendental functions. (line 12) -* asByteArray <1>: TCP.SocketAddress-accessing. - (line 13) -* asByteArray: TCP.IPAddress-accessing. +* asByteArray <1>: TCP.IPAddress-accessing. (line 10) +* asByteArray: TCP.SocketAddress-accessing. + (line 13) * asExactFraction: Complex-converting. (line 6) * asFloat: Complex-converting. (line 9) * asFloatD: Complex-converting. (line 12) * asFloatE: Complex-converting. (line 15) * asFloatQ: Complex-converting. (line 18) * asFraction: Complex-converting. (line 21) -* asPrimitiveWidget <1>: BLOX.BPrimitive-accessing. +* asPrimitiveWidget <1>: BLOX.BExtended-accessing. (line 6) * asPrimitiveWidget <2>: BLOX.BMenuObject-accessing. (line 38) -* asPrimitiveWidget <3>: BLOX.Blox-widget protocol. +* asPrimitiveWidget <3>: BLOX.BPrimitive-accessing. (line 6) -* asPrimitiveWidget: BLOX.BExtended-accessing. +* asPrimitiveWidget: BLOX.Blox-widget protocol. (line 6) -* associationAt_ <1>: BLOX.BList-accessing. +* associationAt_ <1>: BLOX.BDropDown-list box accessing. (line 39) -* associationAt_: BLOX.BDropDown-list box accessing. +* associationAt_: BLOX.BList-accessing. (line 39) * asString: I18N.EncodedString-accessing. (line 6) * asUnicodeString: I18N.EncodedString-accessing. (line 9) -* at_ <1>: I18N.LcMessagesDomain-querying. - (line 10) +* at_ <1>: BLOX.BList-accessing. + (line 44) * at_ <2>: I18N.EncodedString-accessing. (line 12) -* at_ <3>: DBI.Row-accessing. (line 6) -* at_ <4>: BLOX.Blox class-utility. +* at_ <3>: I18N.LcMessagesDomain-querying. (line 10) -* at_ <5>: BLOX.BList-accessing. - (line 44) -* at_ <6>: BLOX.BDropDown-list box accessing. +* at_ <4>: BLOX.BDropDown-list box accessing. (line 44) +* at_ <5>: BLOX.Blox class-utility. + (line 10) +* at_ <6>: DBI.Row-accessing. (line 6) * at_: BLOX.BCanvas-widget protocol. (line 6) * at_cache_: TCP.SocketAddress class-accessing. (line 13) * at_plural_with_: I18N.LcMessagesDomain-querying. (line 14) -* at_put_ <1>: I18N.LcMessagesDomain-querying. - (line 18) -* at_put_: I18N.EncodedString-accessing. +* at_put_ <1>: I18N.EncodedString-accessing. (line 15) -* atEnd <1>: ZLib.ZlibReadStream-streaming. +* at_put_: I18N.LcMessagesDomain-querying. + (line 18) +* atEnd <1>: TCP.Socket-stream protocol. (line 6) -* atEnd <2>: TCP.Socket-stream protocol. +* atEnd <2>: TCP.AbstractSocket-stream protocol. (line 6) -* atEnd <3>: TCP.ReadBuffer-buffer handling. +* atEnd <3>: DBI.ResultSet-cursor access. (line 6) -* atEnd <4>: TCP.AbstractSocket-stream protocol. +* atEnd <4>: ZLib.ZlibReadStream-streaming. (line 6) * atEnd <5>: I18N.Encoder-stream operations. (line 6) -* atEnd: DBI.ResultSet-cursor access. +* atEnd: TCP.ReadBuffer-buffer handling. (line 6) * atEndOfInput: I18N.Encoder-stream operations. (line 11) * atIndex_: DBI.Row-accessing. (line 9) * atMouse: BLOX.Blox class-utility. (line 15) -* available <1>: TCP.Socket-stream protocol. - (line 9) -* available: TCP.AbstractSocket-accessing. +* available <1>: TCP.AbstractSocket-accessing. (line 11) -* backgroundColor <1>: BLOX.BTextAttributes-setting attributes. +* available: TCP.Socket-stream protocol. + (line 9) +* backgroundColor <1>: BLOX.BImage-accessing. (line 6) -* backgroundColor <2>: BLOX.BText-accessing. +* backgroundColor <2>: BLOX.BMenuObject-accessing. + (line 41) +* backgroundColor <3>: BLOX.BText-accessing. (line 6) -* backgroundColor <3>: BLOX.BProgress-accessing. +* backgroundColor <4>: BLOX.BForm-accessing. (line 6) -* backgroundColor <4>: BLOX.BMenuObject-accessing. - (line 41) * backgroundColor <5>: BLOX.BList-accessing. (line 47) -* backgroundColor <6>: BLOX.BLabel-accessing. - (line 26) -* backgroundColor <7>: BLOX.BImage-accessing. +* backgroundColor <6>: BLOX.BCanvas-accessing. (line 6) -* backgroundColor <8>: BLOX.BForm-accessing. +* backgroundColor <7>: BLOX.BTextAttributes-setting attributes. (line 6) -* backgroundColor <9>: BLOX.BEdit-accessing. +* backgroundColor <8>: BLOX.BEdit-accessing. (line 6) -* backgroundColor <10>: BLOX.BDropDown-accessing. - (line 6) -* backgroundColor <11>: BLOX.BCanvas-accessing. +* backgroundColor <9>: BLOX.BLabel-accessing. + (line 26) +* backgroundColor <10>: BLOX.BButton-accessing. (line 6) -* backgroundColor: BLOX.BButton-accessing. +* backgroundColor <11>: BLOX.BProgress-accessing. (line 6) -* backgroundColor_ <1>: BLOX.BTextAttributes-setting attributes. - (line 13) -* backgroundColor_ <2>: BLOX.BTextAttributes class-instance-creation shortcuts. +* backgroundColor: BLOX.BDropDown-accessing. (line 6) -* backgroundColor_ <3>: BLOX.BText-accessing. - (line 12) -* backgroundColor_ <4>: BLOX.BProgress-accessing. +* backgroundColor_ <1>: BLOX.BProgress-accessing. (line 11) -* backgroundColor_ <5>: BLOX.BMenuObject-accessing. - (line 47) -* backgroundColor_ <6>: BLOX.BList-accessing. - (line 53) -* backgroundColor_ <7>: BLOX.BLabel-accessing. - (line 32) -* backgroundColor_ <8>: BLOX.BImage-accessing. +* backgroundColor_ <2>: BLOX.BButton-accessing. (line 12) -* backgroundColor_ <9>: BLOX.BForm-accessing. +* backgroundColor_ <3>: BLOX.BCanvas-accessing. + (line 12) +* backgroundColor_ <4>: BLOX.BDropDown-accessing. + (line 15) +* backgroundColor_ <5>: BLOX.BDropDownList-accessing. + (line 6) +* backgroundColor_ <6>: BLOX.BMenuObject-accessing. + (line 47) +* backgroundColor_ <7>: BLOX.BText-accessing. (line 12) -* backgroundColor_ <10>: BLOX.BEdit-accessing. +* backgroundColor_ <8>: BLOX.BEdit-accessing. (line 12) -* backgroundColor_ <11>: BLOX.BDropDownList-accessing. +* backgroundColor_ <9>: BLOX.BTextAttributes class-instance-creation shortcuts. (line 6) +* backgroundColor_ <10>: BLOX.BLabel-accessing. + (line 32) +* backgroundColor_ <11>: BLOX.BTextAttributes-setting attributes. + (line 13) * backgroundColor_ <12>: BLOX.BDropDownEdit-accessing. (line 6) -* backgroundColor_ <13>: BLOX.BDropDown-accessing. - (line 15) -* backgroundColor_ <14>: BLOX.BCanvas-accessing. +* backgroundColor_ <13>: BLOX.BForm-accessing. (line 12) -* backgroundColor_: BLOX.BButton-accessing. +* backgroundColor_ <14>: BLOX.BList-accessing. + (line 53) +* backgroundColor_: BLOX.BImage-accessing. (line 12) * balloonDelayTime: BLOX.BBalloon class-accessing. (line 6) @@ -3033,9 +3033,9 @@ (line 20) * between_and_do_: BLOX.BCanvas-widget protocol. (line 10) -* bind_to_addrLen_ <1>: TCP.AbstractSocketImpl-C call-outs. +* bind_to_addrLen_ <1>: TCP.AbstractSocketImpl class-C call-outs. (line 9) -* bind_to_addrLen_: TCP.AbstractSocketImpl class-C call-outs. +* bind_to_addrLen_: TCP.AbstractSocketImpl-C call-outs. (line 9) * bindTo_port_: TCP.AbstractSocketImpl-socket operations. (line 15) @@ -3057,116 +3057,116 @@ (line 6) * borderWidth_: BLOX.BWidget-accessing. (line 15) -* boundingBox <1>: BLOX.BWidget-geometry management. +* boundingBox <1>: BLOX.BBoundingBox-accessing. (line 6) -* boundingBox <2>: BLOX.BPolyline-accessing. +* boundingBox <2>: BLOX.BCanvas-widget protocol. + (line 15) +* boundingBox <3>: BLOX.BPolyline-accessing. (line 6) -* boundingBox <3>: BLOX.BCanvasObject-accessing. +* boundingBox <4>: BLOX.BCanvasObject-accessing. (line 9) -* boundingBox <4>: BLOX.BCanvas-widget protocol. - (line 15) -* boundingBox: BLOX.BBoundingBox-accessing. +* boundingBox: BLOX.BWidget-geometry management. (line 6) * boundingBox_: BLOX.BWidget-geometry management. (line 9) * bringToTop: BLOX.BWidget-widget protocol. (line 32) -* bufferContents <1>: TCP.Socket-stream protocol. - (line 13) -* bufferContents: TCP.ReadBuffer-buffer handling. +* bufferContents <1>: TCP.ReadBuffer-buffer handling. (line 9) +* bufferContents: TCP.Socket-stream protocol. + (line 13) * bufferSize <1>: ZLib.ZlibStream class-accessing. (line 6) -* bufferSize <2>: TCP.DatagramSocketImpl-accessing. +* bufferSize <2>: TCP.DatagramSocket-accessing. + (line 9) +* bufferSize: TCP.DatagramSocketImpl-accessing. (line 6) -* bufferSize: TCP.DatagramSocket-accessing. +* bufferSize_ <1>: TCP.DatagramSocketImpl-accessing. (line 9) -* bufferSize_ <1>: ZLib.ZlibStream class-accessing. +* bufferSize_ <2>: ZLib.ZlibStream class-accessing. (line 10) -* bufferSize_ <2>: TCP.DatagramSocketImpl-accessing. - (line 9) * bufferSize_: TCP.DatagramSocket-accessing. (line 12) * byName_: TCP.SocketAddress class-host name lookup. (line 12) -* callback <1>: BLOX.BWindow-accessing. - (line 6) -* callback <2>: BLOX.BText-accessing. +* callback <1>: BLOX.BEdit-accessing. (line 18) -* callback <3>: BLOX.BMenuObject-callback. +* callback <2>: BLOX.BList-widget protocol. (line 6) -* callback <4>: BLOX.BList-widget protocol. +* callback <3>: BLOX.BMenuObject-callback. (line 6) -* callback <5>: BLOX.BEdit-accessing. +* callback <4>: BLOX.BText-accessing. (line 18) -* callback <6>: BLOX.BDropDown-callbacks. +* callback <5>: BLOX.BButtonLike-accessing. (line 6) -* callback <7>: BLOX.BButtonLike-accessing. +* callback <6>: BLOX.BWindow-accessing. (line 6) -* callback: BLOX.BButton-accessing. +* callback <7>: BLOX.BButton-accessing. (line 18) -* callback_message_ <1>: BLOX.BWindow-accessing. - (line 10) -* callback_message_ <2>: BLOX.BToggle-accessing. +* callback: BLOX.BDropDown-callbacks. + (line 6) +* callback_message_ <1>: BLOX.BToggle-accessing. (line 6) +* callback_message_ <2>: BLOX.BEdit-accessing. + (line 22) * callback_message_ <3>: BLOX.BText-accessing. (line 22) -* callback_message_ <4>: BLOX.BRadioButton-accessing. - (line 6) -* callback_message_ <5>: BLOX.BMenuObject-callback. +* callback_message_ <4>: BLOX.BList-widget protocol. (line 10) -* callback_message_ <6>: BLOX.BList-widget protocol. +* callback_message_ <5>: BLOX.BWindow-accessing. (line 10) -* callback_message_ <7>: BLOX.BEdit-accessing. - (line 22) -* callback_message_ <8>: BLOX.BDropDownList-callbacks. +* callback_message_ <6>: BLOX.BDropDownList-callbacks. (line 6) -* callback_message_ <9>: BLOX.BDropDown-callbacks. +* callback_message_ <7>: BLOX.BDropDown-callbacks. (line 10) -* callback_message_ <10>: BLOX.BButtonLike-accessing. +* callback_message_ <8>: BLOX.BButtonLike-accessing. (line 10) -* callback_message_: BLOX.BButton-accessing. +* callback_message_ <9>: BLOX.BRadioButton-accessing. + (line 6) +* callback_message_ <10>: BLOX.BButton-accessing. (line 22) +* callback_message_: BLOX.BMenuObject-callback. + (line 10) * callback_message_argument_: BLOX.BMenuObject-callback. (line 15) * callback_using_: BLOX.BMenu-callback registration. (line 17) * canRead: TCP.OOBSocketImpl-implementation. (line 6) -* cap <1>: BLOX.BPolyline-accessing. - (line 9) -* cap: BLOX.BLine-accessing. +* cap <1>: BLOX.BLine-accessing. (line 6) -* cap_ <1>: BLOX.BPolyline-accessing. - (line 16) -* cap_: BLOX.BLine-accessing. +* cap: BLOX.BPolyline-accessing. + (line 9) +* cap_ <1>: BLOX.BLine-accessing. (line 11) -* category <1>: I18N.LocaleData class-accessing. +* cap_: BLOX.BPolyline-accessing. + (line 16) +* category <1>: I18N.LcNumeric class-accessing. (line 6) * category <2>: I18N.LcTime class-accessing. (line 6) -* category <3>: I18N.LcNumeric class-accessing. +* category <3>: I18N.LcMonetary class-accessing. (line 6) -* category <4>: I18N.LcMonetary class-accessing. +* category <4>: I18N.LcMessages class-accessing. (line 6) -* category: I18N.LcMessages class-accessing. +* category: I18N.LocaleData class-accessing. (line 6) * ceiling: Complex-converting. (line 24) -* center <1>: BLOX.BWindow-widget protocol. - (line 6) -* center <2>: BLOX.BTextAttributes-setting attributes. - (line 20) -* center <3>: BLOX.BTextAttributes class-instance-creation shortcuts. +* center <1>: BLOX.BTextAttributes class-instance-creation shortcuts. (line 16) -* center <4>: BLOX.BDialog-widget protocol. +* center <2>: BLOX.BWindow-widget protocol. (line 6) +* center <3>: BLOX.BDialog-widget protocol. + (line 6) +* center <4>: BLOX.BTextAttributes-setting attributes. + (line 20) * center: BLOX.BBoundingBox-accessing. (line 9) * center_extent_: BLOX.BBoundingBox-accessing. (line 12) -* centerIn_ <1>: BLOX.BWindow-widget protocol. +* centerIn_ <1>: BLOX.BDialog-widget protocol. (line 9) -* centerIn_: BLOX.BDialog-widget protocol. +* centerIn_: BLOX.BWindow-widget protocol. (line 9) * charset: I18N.LocaleData-accessing. (line 6) @@ -3188,64 +3188,64 @@ (line 14) * child_height_: BLOX.BCanvas-geometry management. (line 13) -* child_heightOffset_ <1>: BLOX.BWidget-geometry management. +* child_heightOffset_ <1>: BLOX.BCanvas-geometry management. + (line 16) +* child_heightOffset_ <2>: BLOX.BWidget-geometry management. (line 23) -* child_heightOffset_ <2>: BLOX.BText-geometry management. - (line 9) * child_heightOffset_ <3>: BLOX.BPopupWindow-geometry management. (line 18) -* child_heightOffset_: BLOX.BCanvas-geometry management. - (line 16) +* child_heightOffset_: BLOX.BText-geometry management. + (line 9) * child_stretch_: BLOX.BWidget-geometry management. (line 33) -* child_width_ <1>: BLOX.BWidget-geometry management. +* child_width_ <1>: BLOX.BCanvas-geometry management. + (line 19) +* child_width_ <2>: BLOX.BWidget-geometry management. (line 40) -* child_width_ <2>: BLOX.BText-geometry management. +* child_width_ <3>: BLOX.BText-geometry management. (line 13) -* child_width_ <3>: BLOX.BPopupWindow-geometry management. +* child_width_: BLOX.BPopupWindow-geometry management. (line 21) -* child_width_: BLOX.BCanvas-geometry management. - (line 19) -* child_widthOffset_ <1>: BLOX.BWidget-geometry management. - (line 51) -* child_widthOffset_ <2>: BLOX.BText-geometry management. +* child_widthOffset_ <1>: BLOX.BText-geometry management. (line 16) -* child_widthOffset_ <3>: BLOX.BPopupWindow-geometry management. +* child_widthOffset_ <2>: BLOX.BPopupWindow-geometry management. (line 25) +* child_widthOffset_ <3>: BLOX.BWidget-geometry management. + (line 51) * child_widthOffset_: BLOX.BCanvas-geometry management. (line 22) -* child_x_ <1>: BLOX.BWidget-geometry management. - (line 61) +* child_x_ <1>: BLOX.BPopupWindow-geometry management. + (line 28) * child_x_ <2>: BLOX.BText-geometry management. (line 20) -* child_x_ <3>: BLOX.BPopupWindow-geometry management. - (line 28) -* child_x_: BLOX.BCanvas-geometry management. +* child_x_ <3>: BLOX.BCanvas-geometry management. (line 25) +* child_x_: BLOX.BWidget-geometry management. + (line 61) * child_xOffset_ <1>: BLOX.BWidget-geometry management. (line 71) -* child_xOffset_ <2>: BLOX.BText-geometry management. - (line 24) -* child_xOffset_ <3>: BLOX.BPopupWindow-geometry management. +* child_xOffset_ <2>: BLOX.BPopupWindow-geometry management. (line 32) -* child_xOffset_: BLOX.BCanvas-geometry management. +* child_xOffset_ <3>: BLOX.BCanvas-geometry management. (line 29) -* child_y_ <1>: BLOX.BWidget-geometry management. - (line 81) -* child_y_ <2>: BLOX.BText-geometry management. - (line 27) -* child_y_ <3>: BLOX.BPopupWindow-geometry management. +* child_xOffset_: BLOX.BText-geometry management. + (line 24) +* child_y_ <1>: BLOX.BPopupWindow-geometry management. (line 35) -* child_y_: BLOX.BCanvas-geometry management. +* child_y_ <2>: BLOX.BCanvas-geometry management. (line 32) -* child_yOffset_ <1>: BLOX.BWidget-geometry management. - (line 91) -* child_yOffset_ <2>: BLOX.BText-geometry management. +* child_y_ <3>: BLOX.BWidget-geometry management. + (line 81) +* child_y_: BLOX.BText-geometry management. + (line 27) +* child_yOffset_ <1>: BLOX.BText-geometry management. (line 31) -* child_yOffset_ <3>: BLOX.BPopupWindow-geometry management. - (line 39) -* child_yOffset_: BLOX.BCanvas-geometry management. +* child_yOffset_ <2>: BLOX.BCanvas-geometry management. (line 36) +* child_yOffset_ <3>: BLOX.BWidget-geometry management. + (line 91) +* child_yOffset_: BLOX.BPopupWindow-geometry management. + (line 39) * childrenCount: BLOX.Blox-widget protocol. (line 9) * childrenDo_: BLOX.Blox-widget protocol. @@ -3264,29 +3264,29 @@ (line 29) * close <1>: ZLib.ZlibWriteStream-streaming. (line 6) -* close <2>: TCP.Socket-stream protocol. - (line 16) -* close <3>: TCP.AbstractSocket-accessing. +* close <2>: TCP.AbstractSocket-accessing. (line 14) -* close: DBI.Connection-connecting. +* close <3>: DBI.Connection-connecting. (line 6) +* close: TCP.Socket-stream protocol. + (line 16) * closed: BLOX.BPolyline-accessing. (line 23) * closed_: BLOX.BPolyline-accessing. (line 26) * coerce_: Complex-creation/coercion. (line 6) -* color <1>: BLOX.BColorButton-accessing. - (line 6) -* color: BLOX.BCanvasObject-accessing. +* color <1>: BLOX.BCanvasObject-accessing. (line 12) +* color: BLOX.BColorButton-accessing. + (line 6) * color_ <1>: BLOX.BColorButton-accessing. (line 9) * color_: BLOX.BCanvasObject-accessing. (line 15) -* columnAt_ <1>: DBI.Row-accessing. (line 13) -* columnAt_: DBI.ResultSet-accessing. +* columnAt_ <1>: DBI.ResultSet-accessing. (line 6) +* columnAt_: DBI.Row-accessing. (line 13) * columnCount: DBI.Row-accessing. (line 16) * columnNames <1>: DBI.Row-accessing. (line 19) * columnNames: DBI.ResultSet-accessing. @@ -3294,17 +3294,17 @@ * columns <1>: DBI.Row-accessing. (line 22) * columns: DBI.ResultSet-accessing. (line 12) -* compressingTo_ <1>: ZLib.RawDeflateStream class-instance creation. +* compressingTo_ <1>: ZLib.DeflateStream class-instance creation. (line 6) -* compressingTo_ <2>: ZLib.GZipDeflateStream class-instance creation. +* compressingTo_ <2>: ZLib.RawDeflateStream class-instance creation. (line 6) -* compressingTo_: ZLib.DeflateStream class-instance creation. +* compressingTo_: ZLib.GZipDeflateStream class-instance creation. (line 6) * compressingTo_level_ <1>: ZLib.RawDeflateStream class-instance creation. (line 10) -* compressingTo_level_ <2>: ZLib.GZipDeflateStream class-instance creation. +* compressingTo_level_ <2>: ZLib.DeflateStream class-instance creation. (line 10) -* compressingTo_level_: ZLib.DeflateStream class-instance creation. +* compressingTo_level_: ZLib.GZipDeflateStream class-instance creation. (line 10) * condition_ifTrue_ifFalse_ <1>: I18N.RTEAlternativeNode-computing. (line 6) @@ -3319,28 +3319,28 @@ (line 6) * connected: BLOX.BViewport-accessing. (line 6) -* connectTo_port_ <1>: TCP.SocketImpl-socket operations. +* connectTo_port_ <1>: TCP.AbstractSocketImpl-accessing. (line 6) -* connectTo_port_: TCP.AbstractSocketImpl-accessing. +* connectTo_port_: TCP.SocketImpl-socket operations. (line 6) -* contents <1>: ZLib.ZlibWriteStream-streaming. - (line 11) -* contents <2>: BLOX.BText-accessing. - (line 27) -* contents <3>: BLOX.BEdit-accessing. +* contents <1>: BLOX.BEdit-accessing. (line 27) -* contents: BLOX.BDialog-accessing. +* contents <2>: ZLib.ZlibWriteStream-streaming. + (line 11) +* contents <3>: BLOX.BDialog-accessing. (line 23) +* contents: BLOX.BText-accessing. + (line 27) * contents_ <1>: BLOX.BText-accessing. (line 30) -* contents_ <2>: BLOX.BList-accessing. - (line 59) -* contents_ <3>: BLOX.BEdit-accessing. +* contents_ <2>: BLOX.BEdit-accessing. (line 30) -* contents_ <4>: BLOX.BDropDown-list box accessing. +* contents_ <3>: BLOX.BDropDown-list box accessing. (line 47) -* contents_: BLOX.BDialog-accessing. +* contents_ <4>: BLOX.BDialog-accessing. (line 27) +* contents_: BLOX.BList-accessing. + (line 59) * contents_elements_ <1>: BLOX.BList-accessing. (line 63) * contents_elements_: BLOX.BDropDown-list box accessing. @@ -3355,10 +3355,10 @@ (line 12) * copyFrom_to_: ZLib.RawInflateStream-positioning. (line 6) -* copyInto_ <1>: BLOX.BEmbeddedImage-accessing. - (line 6) -* copyInto_: BLOX.BCanvasObject-accessing. +* copyInto_ <1>: BLOX.BCanvasObject-accessing. (line 18) +* copyInto_: BLOX.BEmbeddedImage-accessing. + (line 6) * copyObject: BLOX.BCanvasObject-accessing. (line 23) * corner: BLOX.BBoundingBox-accessing. @@ -3369,15 +3369,15 @@ (line 15) * cosh: Complex-transcendental functions. (line 18) -* create <1>: BLOX.BWidget-customization. - (line 13) -* create <2>: BLOX.BExtended-customization. +* create <1>: BLOX.BExtended-customization. (line 6) +* create <2>: BLOX.BWidget-customization. + (line 13) * create: BLOX.BCanvasObject-widget protocol. (line 6) -* create_type_protocol_ <1>: TCP.AbstractSocketImpl-C call-outs. +* create_type_protocol_ <1>: TCP.AbstractSocketImpl class-C call-outs. (line 15) -* create_type_protocol_: TCP.AbstractSocketImpl class-C call-outs. +* create_type_protocol_: TCP.AbstractSocketImpl-C call-outs. (line 15) * createColor_green_blue_: BLOX.Blox class-utility. (line 33) @@ -3395,20 +3395,20 @@ (line 10) * createList: BLOX.BDropDown-flexibility. (line 6) -* createLocalAddress <1>: TCP.SocketAddress class-initialization. +* createLocalAddress <1>: TCP.IPAddress class-initialization. (line 6) -* createLocalAddress: TCP.IPAddress class-initialization. +* createLocalAddress: TCP.SocketAddress class-initialization. (line 6) -* createLoopbackHost <1>: TCP.SocketAddress class-initialization. +* createLoopbackHost <1>: TCP.IPAddress class-initialization. (line 10) -* createLoopbackHost: TCP.IPAddress class-initialization. +* createLoopbackHost: TCP.SocketAddress class-initialization. (line 10) * createTextWidget: BLOX.BDropDown-flexibility. (line 11) -* createUnknownAddress <1>: TCP.SocketAddress class-initialization. - (line 16) -* createUnknownAddress: TCP.IPAddress class-initialization. +* createUnknownAddress <1>: TCP.IPAddress class-initialization. (line 14) +* createUnknownAddress: TCP.SocketAddress class-initialization. + (line 16) * currentColumn: BLOX.BText-position & lines. (line 9) * currentLine <1>: Debugger-inferior process properties. @@ -3425,14 +3425,14 @@ (line 24) * cursor_: BLOX.BWidget-accessing. (line 31) -* cyan <1>: BLOX.BTextAttributes-colors. - (line 12) -* cyan: BLOX.BTextAttributes class-instance-creation shortcuts. +* cyan <1>: BLOX.BTextAttributes class-instance-creation shortcuts. (line 20) -* darkCyan <1>: BLOX.BTextAttributes-colors. - (line 15) -* darkCyan: BLOX.BTextAttributes class-instance-creation shortcuts. +* cyan: BLOX.BTextAttributes-colors. + (line 12) +* darkCyan <1>: BLOX.BTextAttributes class-instance-creation shortcuts. (line 23) +* darkCyan: BLOX.BTextAttributes-colors. + (line 15) * darkGreen <1>: BLOX.BTextAttributes-colors. (line 18) * darkGreen: BLOX.BTextAttributes class-instance-creation shortcuts. @@ -3445,14 +3445,14 @@ (line 12) * data: BLOX.BEmbeddedImage-accessing. (line 11) -* data_ <1>: TCP.Datagram-accessing. - (line 15) -* data_ <2>: TCP.Datagram class-instance creation. - (line 6) -* data_ <3>: BLOX.BImage-image management. +* data_ <1>: BLOX.BImage-image management. (line 9) -* data_: BLOX.BEmbeddedImage-accessing. +* data_ <2>: BLOX.BEmbeddedImage-accessing. (line 16) +* data_ <3>: TCP.Datagram-accessing. + (line 15) +* data_: TCP.Datagram class-instance creation. + (line 6) * data_address_port_: TCP.Datagram class-instance creation. (line 9) * debuggerClass: Debugger class-disabling debugging. @@ -3460,12 +3460,12 @@ * deepCopy <1>: BLOX.Blox-basic. (line 6) * deepCopy: BLOX.BCanvasObject-accessing. (line 42) -* default <1>: I18N.LocaleData class-accessing. - (line 9) +* default <1>: I18N.Locale class-instance creation. + (line 6) * default <2>: I18N.LocaleConventions class-accessing. (line 9) -* default: I18N.Locale class-instance creation. - (line 6) +* default: I18N.LocaleData class-accessing. + (line 9) * defaultAddressClass: TCP.AbstractSocket class-defaults. (line 6) * defaultAddressClass_: TCP.AbstractSocket class-defaults. @@ -3492,12 +3492,12 @@ (line 18) * defaultHeight_: BLOX.BForm-accessing. (line 25) -* defaultImplementationClass <1>: TCP.Socket class-accessing. - (line 6) +* defaultImplementationClass <1>: TCP.AbstractSocket class-defaults. + (line 16) * defaultImplementationClass <2>: TCP.DatagramSocket class-accessing. (line 12) -* defaultImplementationClass: TCP.AbstractSocket class-defaults. - (line 16) +* defaultImplementationClass: TCP.Socket class-accessing. + (line 6) * defaultPortAt_: TCP.Socket class-well known ports. (line 6) * defaultPortAt_ifAbsent_: TCP.Socket class-well known ports. @@ -3522,24 +3522,24 @@ (line 39) * description <1>: I18N.InvalidSequenceError-accessing. (line 6) -* description <2>: I18N.InvalidCharsetError-accessing. +* description <2>: I18N.IncompleteSequenceError-accessing. (line 6) -* description: I18N.IncompleteSequenceError-accessing. +* description: I18N.InvalidCharsetError-accessing. (line 6) -* destroy <1>: BLOX.BMenu-callback registration. - (line 23) -* destroy: BLOX.Blox-widget protocol. +* destroy <1>: BLOX.Blox-widget protocol. (line 16) -* destroyed <1>: BLOX.BRadioGroup-widget protocol. - (line 6) -* destroyed <2>: BLOX.BImage-widget protocol. +* destroy: BLOX.BMenu-callback registration. + (line 23) +* destroyed <1>: BLOX.BCanvas-widget protocol. + (line 18) +* destroyed <2>: BLOX.BRadioGroup-widget protocol. (line 6) -* destroyed <3>: BLOX.BEdit-widget protocol. +* destroyed <3>: BLOX.BImage-widget protocol. (line 6) * destroyed <4>: BLOX.BDialog-widget protocol. (line 12) -* destroyed: BLOX.BCanvas-widget protocol. - (line 18) +* destroyed: BLOX.BEdit-widget protocol. + (line 6) * directory: BLOX.BImage class-small icons. (line 6) * dispatchEvents: BLOX.Blox class-event dispatching. @@ -3560,12 +3560,12 @@ (line 13) * do_ <1>: I18N.EncodedString-accessing. (line 18) -* do_ <2>: DBI.Connection-querying. +* do_ <2>: BLOX.BDropDown-list box accessing. + (line 56) +* do_ <3>: DBI.Connection-querying. (line 6) -* do_ <3>: BLOX.BList-accessing. +* do_ <4>: BLOX.BList-accessing. (line 68) -* do_ <4>: BLOX.BDropDown-list box accessing. - (line 56) * do_: BLOX.BCanvas-widget protocol. (line 22) * domain_: I18N.LcMessages-opening MO files. @@ -3602,44 +3602,44 @@ (line 6) * emacsLike_: BLOX.BText class-accessing. (line 9) -* empty <1>: BLOX.BMenu-callback registration. - (line 27) -* empty: BLOX.BCanvas-widget protocol. +* empty <1>: BLOX.BCanvas-widget protocol. (line 25) +* empty: BLOX.BMenu-callback registration. + (line 27) * enabled: BLOX.Blox-widget protocol. (line 26) * enabled_: BLOX.Blox-widget protocol. (line 31) -* encoding <1>: I18N.EncodedStringFactory-instance creation. - (line 6) -* encoding: I18N.EncodedString-accessing. +* encoding <1>: I18N.EncodedString-accessing. (line 21) -* encoding_ <1>: I18N.EncodedStringFactory-instance creation. - (line 9) -* encoding_ <2>: I18N.EncodedStringFactory class-instance creation. +* encoding: I18N.EncodedStringFactory-instance creation. (line 6) -* encoding_ <3>: I18N.EncodedString-initializing. +* encoding_ <1>: I18N.EncodedStream class-instance creation. (line 6) -* encoding_: I18N.EncodedStream class-instance creation. +* encoding_ <2>: I18N.EncodedString-initializing. (line 6) +* encoding_ <3>: I18N.EncodedStringFactory class-instance creation. + (line 6) +* encoding_: I18N.EncodedStringFactory-instance creation. + (line 9) * encoding_as_: I18N.EncodedStream class-instance creation. (line 11) * endAngle: BLOX.BArc-accessing. (line 6) * endAngle_: BLOX.BArc-accessing. (line 10) -* ensureReadable <1>: TCP.OOBSocketImpl-implementation. - (line 9) -* ensureReadable: TCP.AbstractSocketImpl-asynchronous operations. +* ensureReadable <1>: TCP.AbstractSocketImpl-asynchronous operations. (line 6) +* ensureReadable: TCP.OOBSocketImpl-implementation. + (line 9) * ensureWriteable: TCP.AbstractSocketImpl-asynchronous operations. (line 10) * evalIn_tcl_: BLOX.Blox class-C call-outs. (line 6) * events: BLOX.BTextAttributes-setting attributes. (line 23) -* events_ <1>: BLOX.BTextAttributes-setting attributes. - (line 27) -* events_: BLOX.BTextAttributes class-instance-creation shortcuts. +* events_ <1>: BLOX.BTextAttributes class-instance-creation shortcuts. (line 32) +* events_: BLOX.BTextAttributes-setting attributes. + (line 27) * exclaim: BLOX.BImage class-icons. (line 6) * execute: DBI.Statement-querying. @@ -3656,14 +3656,14 @@ (line 36) * exp: Complex-transcendental functions. (line 21) -* extent <1>: BLOX.BWidget-geometry management. - (line 101) -* extent: BLOX.BBoundingBox-accessing. +* extent <1>: BLOX.BBoundingBox-accessing. (line 27) -* extent_ <1>: BLOX.BWidget-geometry management. - (line 104) -* extent_: BLOX.BBoundingBox-accessing. +* extent: BLOX.BWidget-geometry management. + (line 101) +* extent_ <1>: BLOX.BBoundingBox-accessing. (line 30) +* extent_: BLOX.BWidget-geometry management. + (line 104) * extraSpace: BLOX.BCanvas-widget protocol. (line 28) * extraSpace_: BLOX.BCanvas-widget protocol. @@ -3692,10 +3692,10 @@ (line 43) * fileOp_with_with_with_ifFail_: TCP.AbstractSocketImpl-socket operations. (line 47) -* fill <1>: TCP.Socket-stream protocol. - (line 19) -* fill: TCP.ReadBuffer-buffer handling. +* fill <1>: TCP.ReadBuffer-buffer handling. (line 12) +* fill: TCP.Socket-stream protocol. + (line 19) * fillBlock_: TCP.ReadBuffer-buffer handling. (line 16) * fillChord: BLOX.BArc-accessing. (line 14) @@ -3717,124 +3717,124 @@ * finish_: Debugger-stepping commands. (line 13) * floor: Complex-converting. (line 27) -* flush <1>: ZLib.ZlibWriteStream-streaming. - (line 20) -* flush <2>: TCP.WriteBuffer-buffer handling. +* flush <1>: I18N.LcMessagesMoFileVersion0-flushing the cache. (line 6) -* flush <3>: TCP.SocketAddress class-initialization. +* flush <2>: ZLib.ZlibWriteStream-streaming. (line 20) -* flush <4>: TCP.Socket-stream protocol. +* flush <3>: TCP.WriteBuffer-buffer handling. + (line 6) +* flush <4>: I18N.Locale class-instance creation. + (line 10) +* flush <5>: TCP.Socket-stream protocol. (line 22) -* flush <5>: TCP.AbstractSocket-accessing. - (line 17) * flush <6>: I18N.LocaleData class-accessing. (line 13) -* flush <7>: I18N.Locale class-instance creation. - (line 10) -* flush <8>: I18N.LcMessagesMoFileVersion0-flushing the cache. - (line 6) -* flush: I18N.LcMessagesDomain-handling the cache. +* flush <7>: TCP.SocketAddress class-initialization. + (line 20) +* flush <8>: I18N.LcMessagesDomain-handling the cache. (line 6) +* flush: TCP.AbstractSocket-accessing. + (line 17) * flushBlock_: TCP.WriteBuffer-buffer handling. (line 9) * flushBuffer: ZLib.ZlibWriteStream-streaming. (line 24) * flushDictionary: ZLib.ZlibWriteStream-streaming. (line 27) -* font <1>: BLOX.BTextAttributes-setting attributes. +* font <1>: BLOX.BText-accessing. + (line 33) +* font <2>: BLOX.BTextAttributes-setting attributes. (line 31) -* font <2>: BLOX.BText-accessing. +* font <3>: BLOX.BEdit-accessing. (line 33) -* font <3>: BLOX.BList-accessing. +* font <4>: BLOX.BButton-accessing. + (line 27) +* font <5>: BLOX.BList-accessing. (line 79) -* font <4>: BLOX.BLabel-accessing. +* font <6>: BLOX.BDropDown-accessing. + (line 32) +* font <7>: BLOX.BLabel-accessing. (line 38) -* font <5>: BLOX.BEmbeddedText-accessing. +* font: BLOX.BEmbeddedText-accessing. (line 6) -* font <6>: BLOX.BEdit-accessing. - (line 33) -* font <7>: BLOX.BDropDown-accessing. - (line 32) -* font: BLOX.BButton-accessing. - (line 27) -* font_ <1>: BLOX.BTextAttributes-setting attributes. +* font_ <1>: BLOX.BEmbeddedText-accessing. + (line 29) +* font_ <2>: BLOX.BDropDownEdit-accessing. + (line 12) +* font_ <3>: BLOX.BDropDownList-accessing. + (line 14) +* font_ <4>: BLOX.BDropDown-accessing. + (line 58) +* font_ <5>: BLOX.BTextAttributes-setting attributes. (line 52) -* font_ <2>: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 36) -* font_ <3>: BLOX.BText-accessing. +* font_ <6>: BLOX.BText-accessing. (line 56) -* font_ <4>: BLOX.BList-accessing. +* font_ <7>: BLOX.BList-accessing. (line 102) -* font_ <5>: BLOX.BLabel-accessing. +* font_ <8>: BLOX.BTextAttributes class-instance-creation shortcuts. + (line 36) +* font_ <9>: BLOX.BLabel-accessing. (line 61) -* font_ <6>: BLOX.BEmbeddedText-accessing. - (line 29) -* font_ <7>: BLOX.BEdit-accessing. - (line 56) -* font_ <8>: BLOX.BDropDownList-accessing. - (line 14) -* font_ <9>: BLOX.BDropDownEdit-accessing. - (line 12) -* font_ <10>: BLOX.BDropDown-accessing. - (line 58) -* font_: BLOX.BButton-accessing. +* font_ <10>: BLOX.BButton-accessing. (line 50) +* font_: BLOX.BEdit-accessing. + (line 56) * fontHeight_: BLOX.Blox-widget protocol. (line 40) * fonts: BLOX.Blox class-utility. (line 56) * fontWidth_: BLOX.Blox-widget protocol. (line 45) -* foregroundColor <1>: BLOX.BTextAttributes-setting attributes. - (line 73) -* foregroundColor <2>: BLOX.BText-accessing. - (line 79) -* foregroundColor <3>: BLOX.BProgress-accessing. - (line 22) -* foregroundColor <4>: BLOX.BMenuObject-accessing. - (line 53) -* foregroundColor <5>: BLOX.BList-accessing. +* foregroundColor <1>: BLOX.BImage-accessing. + (line 46) +* foregroundColor <2>: BLOX.BList-accessing. (line 125) -* foregroundColor <6>: BLOX.BLabel-accessing. +* foregroundColor <3>: BLOX.BDropDown-accessing. (line 84) -* foregroundColor <7>: BLOX.BImage-accessing. - (line 46) -* foregroundColor <8>: BLOX.BEdit-accessing. +* foregroundColor <4>: BLOX.BEdit-accessing. (line 79) -* foregroundColor <9>: BLOX.BDropDown-accessing. - (line 84) -* foregroundColor <10>: BLOX.BCanvas-accessing. +* foregroundColor <5>: BLOX.BCanvas-accessing. (line 18) -* foregroundColor: BLOX.BButton-accessing. +* foregroundColor <6>: BLOX.BLabel-accessing. + (line 84) +* foregroundColor <7>: BLOX.BText-accessing. + (line 79) +* foregroundColor <8>: BLOX.BButton-accessing. (line 73) -* foregroundColor_ <1>: BLOX.BTextAttributes-setting attributes. - (line 80) -* foregroundColor_ <2>: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 57) -* foregroundColor_ <3>: BLOX.BText-accessing. - (line 85) -* foregroundColor_ <4>: BLOX.BProgress-accessing. - (line 27) -* foregroundColor_ <5>: BLOX.BMenuObject-accessing. - (line 59) -* foregroundColor_ <6>: BLOX.BList-accessing. - (line 131) -* foregroundColor_ <7>: BLOX.BLabel-accessing. - (line 90) -* foregroundColor_ <8>: BLOX.BImage-accessing. - (line 52) -* foregroundColor_ <9>: BLOX.BEdit-accessing. +* foregroundColor <9>: BLOX.BMenuObject-accessing. + (line 53) +* foregroundColor <10>: BLOX.BProgress-accessing. + (line 22) +* foregroundColor: BLOX.BTextAttributes-setting attributes. + (line 73) +* foregroundColor_ <1>: BLOX.BText-accessing. (line 85) -* foregroundColor_ <10>: BLOX.BDropDownList-accessing. +* foregroundColor_ <2>: BLOX.BDropDownList-accessing. (line 37) -* foregroundColor_ <11>: BLOX.BDropDownEdit-accessing. - (line 35) -* foregroundColor_ <12>: BLOX.BDropDown-accessing. +* foregroundColor_ <3>: BLOX.BLabel-accessing. + (line 90) +* foregroundColor_ <4>: BLOX.BDropDown-accessing. (line 93) -* foregroundColor_ <13>: BLOX.BCanvas-accessing. +* foregroundColor_ <5>: BLOX.BDropDownEdit-accessing. + (line 35) +* foregroundColor_ <6>: BLOX.BCanvas-accessing. (line 24) -* foregroundColor_: BLOX.BButton-accessing. +* foregroundColor_ <7>: BLOX.BMenuObject-accessing. + (line 59) +* foregroundColor_ <8>: BLOX.BProgress-accessing. + (line 27) +* foregroundColor_ <9>: BLOX.BEdit-accessing. + (line 85) +* foregroundColor_ <10>: BLOX.BTextAttributes-setting attributes. + (line 80) +* foregroundColor_ <11>: BLOX.BImage-accessing. + (line 52) +* foregroundColor_ <12>: BLOX.BButton-accessing. (line 79) +* foregroundColor_ <13>: BLOX.BList-accessing. + (line 131) +* foregroundColor_: BLOX.BTextAttributes class-instance-creation shortcuts. + (line 57) * from: BLOX.BArc-accessing. (line 23) * from_: BLOX.BArc-accessing. (line 26) * from_to_: BLOX.BArc-accessing. (line 29) @@ -3844,18 +3844,18 @@ (line 11) * fromDSN_: DBI.ConnectionInfo class-instance creation. (line 6) -* fromSockAddr_port_ <1>: TCP.SocketAddress class-abstract. - (line 6) -* fromSockAddr_port_: TCP.IPAddress class-instance creation. +* fromSockAddr_port_ <1>: TCP.IPAddress class-instance creation. (line 16) -* fromString_ <1>: TCP.IPAddress class-instance creation. +* fromSockAddr_port_: TCP.SocketAddress class-abstract. + (line 6) +* fromString_ <1>: I18N.Locale class-instance creation. + (line 14) +* fromString_ <2>: TCP.IPAddress class-instance creation. (line 21) -* fromString_ <2>: I18N.LocaleData class-accessing. - (line 16) * fromString_ <3>: I18N.LocaleConventions class-accessing. (line 13) -* fromString_ <4>: I18N.Locale class-instance creation. - (line 14) +* fromString_ <4>: I18N.LocaleData class-accessing. + (line 16) * fromString_ <5>: I18N.EncodedStringFactory-instance creation. (line 12) * fromString_: I18N.EncodedString class-instance creation. @@ -3892,37 +3892,37 @@ (line 29) * grayOut: BLOX.BCanvasObject-accessing. (line 46) -* green <1>: BLOX.BTextAttributes-colors. - (line 24) -* green: BLOX.BTextAttributes class-instance-creation shortcuts. +* green <1>: BLOX.BTextAttributes class-instance-creation shortcuts. (line 61) -* hash <1>: TCP.SocketAddress-accessing. - (line 17) +* green: BLOX.BTextAttributes-colors. + (line 24) +* hash <1>: Complex-comparing. (line 21) * hash <2>: I18N.EncodedString-accessing. (line 24) -* hash: Complex-comparing. (line 21) +* hash: TCP.SocketAddress-accessing. + (line 17) * hasSelection: BLOX.BEdit-widget protocol. (line 10) * height <1>: BLOX.BWindow-widget protocol. (line 12) * height: BLOX.BWidget-geometry management. (line 108) -* height_ <1>: BLOX.BWindow-widget protocol. - (line 16) -* height_: BLOX.BWidget-geometry management. +* height_ <1>: BLOX.BWidget-geometry management. (line 120) +* height_: BLOX.BWindow-widget protocol. + (line 16) * heightAbsolute <1>: BLOX.BWindow-widget protocol. (line 19) * heightAbsolute: BLOX.BWidget-geometry management. (line 127) -* heightChild_ <1>: BLOX.BWidget-geometry management. - (line 131) -* heightChild_ <2>: BLOX.BText-geometry management. - (line 34) -* heightChild_ <3>: BLOX.BPopupWindow-geometry management. +* heightChild_ <1>: BLOX.BPopupWindow-geometry management. (line 42) -* heightChild_: BLOX.BCanvas-geometry management. +* heightChild_ <2>: BLOX.BCanvas-geometry management. (line 39) +* heightChild_ <3>: BLOX.BWidget-geometry management. + (line 131) +* heightChild_: BLOX.BText-geometry management. + (line 34) * heightOffset: BLOX.BWidget-geometry management. (line 141) * heightOffset_ <1>: BLOX.BWindow-widget protocol. @@ -3933,22 +3933,22 @@ (line 154) * highlight_: BLOX.BList-widget protocol. (line 18) -* highlightBackground <1>: BLOX.BList-accessing. - (line 137) -* highlightBackground: BLOX.BDropDown-accessing. +* highlightBackground <1>: BLOX.BDropDown-accessing. (line 102) -* highlightBackground_ <1>: BLOX.BList-accessing. - (line 143) -* highlightBackground_ <2>: BLOX.BDropDownList-accessing. - (line 45) -* highlightBackground_ <3>: BLOX.BDropDownEdit-accessing. +* highlightBackground: BLOX.BList-accessing. + (line 137) +* highlightBackground_ <1>: BLOX.BDropDownEdit-accessing. (line 41) -* highlightBackground_: BLOX.BDropDown-accessing. +* highlightBackground_ <2>: BLOX.BDropDown-accessing. (line 108) -* highlightForeground <1>: BLOX.BList-accessing. - (line 149) -* highlightForeground: BLOX.BDropDown-accessing. +* highlightBackground_ <3>: BLOX.BDropDownList-accessing. + (line 45) +* highlightBackground_: BLOX.BList-accessing. + (line 143) +* highlightForeground <1>: BLOX.BDropDown-accessing. (line 114) +* highlightForeground: BLOX.BList-accessing. + (line 149) * highlightForeground_ <1>: BLOX.BList-accessing. (line 155) * highlightForeground_ <2>: BLOX.BDropDownList-accessing. @@ -3967,10 +3967,10 @@ (line 18) * host: TCP.IPAddress-accessing. (line 14) -* i <1>: Complex-creation/coercion. - (line 12) -* i: Complex class-instance creation. +* i <1>: Complex class-instance creation. (line 6) +* i: Complex-creation/coercion. + (line 12) * iconify: BLOX.BWindow-widget protocol. (line 26) * id: I18N.LocaleData-accessing. @@ -3989,44 +3989,44 @@ (line 44) * imaginary: Complex-creation/coercion. (line 15) -* index <1>: DBI.ColumnInfo-accessing. - (line 6) -* index <2>: BLOX.BList-accessing. +* index <1>: BLOX.BList-accessing. (line 161) -* index: BLOX.BDropDownList-list box accessing. +* index <2>: BLOX.BDropDownList-list box accessing. + (line 6) +* index: DBI.ColumnInfo-accessing. (line 6) * index_: BLOX.BDropDown-list box accessing. (line 63) -* indexAt_ <1>: BLOX.BText-position & lines. - (line 35) -* indexAt_: BLOX.BList-accessing. +* indexAt_ <1>: BLOX.BList-accessing. (line 168) +* indexAt_: BLOX.BText-position & lines. + (line 35) * info: BLOX.BImage class-icons. (line 9) -* initialize <1>: TCP.Socket class-well known ports. - (line 17) -* initialize <2>: TCP.IPAddress class-initialization. +* initialize <1>: TCP.IPAddress class-initialization. (line 18) -* initialize <3>: TCP.DatagramSocket class-initialization. +* initialize <2>: TCP.Socket class-well known ports. + (line 17) +* initialize <3>: Complex class-instance creation. + (line 9) +* initialize <4>: TCP.DatagramSocket class-initialization. (line 6) -* initialize <4>: I18N.RunTimeExpression class-initializing. +* initialize <5>: BLOX.BLabel class-initialization. (line 6) -* initialize <5>: I18N.LocaleData class-database. - (line 16) -* initialize <6>: I18N.LcMessagesMoFileVersion0 class-plurals. +* initialize <6>: I18N.EncodedStream class-initializing. (line 6) -* initialize <7>: I18N.EncodedStream class-initializing. +* initialize <7>: I18N.RunTimeExpression class-initializing. (line 6) -* initialize <8>: Complex class-instance creation. - (line 9) -* initialize: BLOX.BLabel class-initialization. +* initialize <8>: I18N.LocaleData class-database. + (line 16) +* initialize: I18N.LcMessagesMoFileVersion0 class-plurals. + (line 6) +* initialize_ <1>: BLOX.BEventSet-initializing. (line 6) -* initialize_ <1>: I18N.LocaleData-initialization. - (line 9) * initialize_ <2>: BLOX.BWidget-customization. (line 20) -* initialize_ <3>: BLOX.BEventSet-initializing. - (line 6) +* initialize_ <3>: I18N.LocaleData-initialization. + (line 9) * initialize_: BLOX.BBalloon-initializing. (line 6) * insertAtEnd_ <1>: BLOX.BText-inserting text. @@ -4058,28 +4058,28 @@ (line 6) * interface_: TCP.MulticastSocket-instance creation. (line 10) -* invokeCallback <1>: BLOX.BWindow-accessing. - (line 20) -* invokeCallback <2>: BLOX.BToggle-accessing. - (line 14) -* invokeCallback <3>: BLOX.BText-inserting text. +* invokeCallback <1>: BLOX.BText-inserting text. (line 28) -* invokeCallback <4>: BLOX.BMenuObject-callback. - (line 22) -* invokeCallback <5>: BLOX.BList-widget protocol. +* invokeCallback <2>: BLOX.BList-widget protocol. (line 21) -* invokeCallback <6>: BLOX.BEdit-widget protocol. - (line 20) -* invokeCallback <7>: BLOX.BDropDownList-callbacks. +* invokeCallback <3>: BLOX.BToggle-accessing. (line 14) -* invokeCallback <8>: BLOX.BDropDown-callbacks. - (line 15) -* invokeCallback <9>: BLOX.BCheckMenuItem-accessing. - (line 6) -* invokeCallback <10>: BLOX.BButtonLike-accessing. +* invokeCallback <4>: BLOX.BEdit-widget protocol. + (line 20) +* invokeCallback <5>: BLOX.BButtonLike-accessing. (line 15) -* invokeCallback: BLOX.BButton-accessing. +* invokeCallback <6>: BLOX.BButton-accessing. (line 85) +* invokeCallback <7>: BLOX.BWindow-accessing. + (line 20) +* invokeCallback <8>: BLOX.BMenuObject-callback. + (line 22) +* invokeCallback <9>: BLOX.BDropDown-callbacks. + (line 15) +* invokeCallback <10>: BLOX.BDropDownList-callbacks. + (line 14) +* invokeCallback: BLOX.BCheckMenuItem-accessing. + (line 6) * invokeCallback_: BLOX.BDialog-widget protocol. (line 16) * ipAddMembership: TCP.DatagramSocketImpl-C constants. @@ -4092,9 +4092,9 @@ (line 6) * ipMulticastIf: TCP.DatagramSocketImpl-C constants. (line 12) -* ipMulticastIf_ <1>: TCP.UDPSocketImpl-multicasting. +* ipMulticastIf_ <1>: TCP.MulticastSocketImpl-multicasting. (line 10) -* ipMulticastIf_: TCP.MulticastSocketImpl-multicasting. +* ipMulticastIf_: TCP.UDPSocketImpl-multicasting. (line 10) * ipMulticastTtl: TCP.DatagramSocketImpl-C constants. (line 15) @@ -4102,10 +4102,10 @@ (line 6) * ipprotoTcp: TCP.TCPSocketImpl class-C constants. (line 6) -* isActive <1>: Debugger-inferior process properties. - (line 9) -* isActive: BLOX.BWidget-widget protocol. +* isActive <1>: BLOX.BWidget-widget protocol. (line 37) +* isActive: Debugger-inferior process properties. + (line 9) * isCentered: BLOX.BTextAttributes-setting attributes. (line 87) * isComplex: Complex-creation/coercion. @@ -4130,6 +4130,8 @@ (line 19) * isOpen: TCP.AbstractSocket-accessing. (line 20) +* isPeerAlive <1>: TCP.AbstractSocket-accessing. + (line 24) * isPeerAlive: TCP.Socket-stream protocol. (line 25) * isPositionable: ZLib.RawInflateStream-positioning. @@ -4144,9 +4146,9 @@ (line 91) * isUnderlined: BLOX.BTextAttributes-setting attributes. (line 95) -* isUnicode <1>: I18N.EncodedStringFactory-accessing. +* isUnicode <1>: I18N.EncodedString class-accessing. (line 6) -* isUnicode: I18N.EncodedString class-accessing. +* isUnicode: I18N.EncodedStringFactory-accessing. (line 6) * isWindow <1>: BLOX.BWindow-widget protocol. (line 34) @@ -4158,53 +4160,53 @@ (line 36) * join: BLOX.BPolyline-accessing. (line 30) -* join_ <1>: TCP.UDPSocketImpl-multicasting. - (line 14) +* join_ <1>: BLOX.BPolyline-accessing. + (line 37) * join_ <2>: TCP.MulticastSocketImpl-multicasting. (line 14) * join_ <3>: TCP.MulticastSocket-instance creation. (line 14) -* join_: BLOX.BPolyline-accessing. - (line 37) +* join_: TCP.UDPSocketImpl-multicasting. + (line 14) * justify: BLOX.BEmbeddedText-accessing. (line 52) * justify_: BLOX.BEmbeddedText-accessing. (line 55) * keysAndValuesDo_: DBI.Row-accessing. (line 26) -* label <1>: BLOX.BWindow-accessing. - (line 24) -* label <2>: BLOX.BMenuItem-accessing. - (line 6) -* label <3>: BLOX.BMenu-accessing. +* label <1>: BLOX.BMenuItem-accessing. (line 6) -* label <4>: BLOX.BList-accessing. - (line 178) -* label <5>: BLOX.BLabel-accessing. +* label <2>: BLOX.BLabel-accessing. (line 96) -* label: BLOX.BButton-accessing. +* label <3>: BLOX.BList-accessing. + (line 178) +* label <4>: BLOX.BButton-accessing. (line 88) -* label_ <1>: BLOX.BWindow-accessing. +* label <5>: BLOX.BMenu-accessing. + (line 6) +* label: BLOX.BWindow-accessing. + (line 24) +* label_ <1>: BLOX.BLabel-accessing. + (line 104) +* label_ <2>: BLOX.BWindow-accessing. (line 32) -* label_ <2>: BLOX.BMenuItem-accessing. - (line 14) -* label_ <3>: BLOX.BMenu-accessing. - (line 14) -* label_ <4>: BLOX.BList-accessing. +* label_ <3>: BLOX.BList-accessing. (line 181) -* label_ <5>: BLOX.BLabel-accessing. - (line 104) -* label_: BLOX.BButton-accessing. +* label_ <4>: BLOX.BMenuItem-accessing. + (line 14) +* label_ <5>: BLOX.BButton-accessing. (line 96) -* labelAt_ <1>: BLOX.BList-accessing. - (line 184) -* labelAt_: BLOX.BDropDown-list box accessing. +* label_: BLOX.BMenu-accessing. + (line 14) +* labelAt_ <1>: BLOX.BDropDown-list box accessing. (line 67) +* labelAt_: BLOX.BList-accessing. + (line 184) * labels: BLOX.BList-accessing. (line 187) -* labelsDo_ <1>: BLOX.BList-accessing. - (line 190) -* labelsDo_: BLOX.BDropDown-list box accessing. +* labelsDo_ <1>: BLOX.BDropDown-list box accessing. (line 70) +* labelsDo_: BLOX.BList-accessing. + (line 190) * language: I18N.LocaleData-accessing. (line 16) * language_: I18N.LocaleData class-accessing. @@ -4213,10 +4215,10 @@ (line 23) * language_territory_charset_: I18N.LocaleData class-accessing. (line 26) -* languageDirectory <1>: I18N.LocaleData-accessing. - (line 19) -* languageDirectory: I18N.LcMessages-accessing. +* languageDirectory <1>: I18N.LcMessages-accessing. (line 6) +* languageDirectory: I18N.LocaleData-accessing. + (line 19) * languageDirectory_ <1>: I18N.LocaleData-accessing. (line 23) * languageDirectory_: I18N.LcMessages-accessing. @@ -4269,16 +4271,16 @@ (line 6) * local_port_: TCP.DatagramSocket class-instance creation. (line 6) -* localAddress <1>: TCP.AbstractSocketImpl-accessing. +* localAddress <1>: TCP.AbstractSocket-accessing. + (line 28) +* localAddress: TCP.AbstractSocketImpl-accessing. (line 10) -* localAddress: TCP.AbstractSocket-accessing. - (line 24) * localHostName: TCP.SocketAddress class-accessing. (line 46) -* localPort <1>: TCP.AbstractSocketImpl-accessing. +* localPort <1>: TCP.AbstractSocket-accessing. + (line 31) +* localPort: TCP.AbstractSocketImpl-accessing. (line 15) -* localPort: TCP.AbstractSocket-accessing. - (line 27) * log: Complex-transcendental functions. (line 27) * lookupAllHostAddr_withHostEnt_: TCP.SocketAddress class-C call-outs. @@ -4293,20 +4295,20 @@ (line 10) * lower: BLOX.BCanvasObject-widget protocol. (line 14) -* magenta <1>: BLOX.BTextAttributes-colors. - (line 27) -* magenta: BLOX.BTextAttributes class-instance-creation shortcuts. +* magenta <1>: BLOX.BTextAttributes class-instance-creation shortcuts. (line 64) +* magenta: BLOX.BTextAttributes-colors. + (line 27) * make_: BLOX.Blox-creating children. (line 6) * make_on_: BLOX.Blox-creating children. (line 15) * makeChild_on_: BLOX.Blox-creating children. (line 20) -* map <1>: BLOX.BWindow-widget protocol. - (line 37) -* map: BLOX.BTransientWindow-widget protocol. +* map <1>: BLOX.BTransientWindow-widget protocol. (line 6) +* map: BLOX.BWindow-widget protocol. + (line 37) * mapPoint_: BLOX.BCanvas-widget protocol. (line 39) * menu_: BLOX.BWindow-accessing. @@ -4335,68 +4337,68 @@ (line 18) * n_: I18N.RTELiteralNode-computing. (line 6) -* name <1>: ZLib.ZlibStream-streaming. +* name <1>: DBI.ColumnInfo-accessing. + (line 10) +* name <2>: ZLib.ZlibStream-streaming. (line 9) -* name <2>: TCP.SocketAddress-accessing. +* name: TCP.SocketAddress-accessing. (line 20) -* name: DBI.ColumnInfo-accessing. - (line 10) * network: TCP.IPAddress-accessing. (line 23) -* new <1>: ZLib.ZlibStream class-instance creation. +* new <1>: BLOX.BTextBindings class-instance creation. (line 6) -* new <2>: TCP.IPAddress class-instance creation. - (line 71) -* new <3>: TCP.DatagramSocket class-instance creation. +* new <2>: TCP.DatagramSocket class-instance creation. (line 10) -* new <4>: TCP.AbstractSocketImpl class-socket creation. +* new <3>: BLOX.BTransientWindow class-instance creation. (line 6) -* new <5>: TCP.AbstractSocket class-instance creation. +* new <4>: BLOX.BEventSet class-initializing. (line 6) -* new <6>: I18N.LocaleData class-accessing. - (line 30) -* new <7>: I18N.EncodedStringFactory-instance creation. - (line 16) -* new <8>: I18N.EncodedString class-instance creation. - (line 12) -* new <9>: Complex class-instance creation. - (line 12) -* new <10>: BLOX.BWindow class-instance creation. +* new <5>: BLOX.Blox class-instance creation. (line 6) -* new <11>: BLOX.BWidget class-popups. +* new <6>: BLOX.BWidget class-popups. (line 6) -* new <12>: BLOX.BTransientWindow class-instance creation. +* new <7>: TCP.AbstractSocket class-instance creation. (line 6) -* new <13>: BLOX.BTextBindings class-instance creation. +* new <8>: BLOX.BCanvasObject class-instance creation. (line 6) -* new <14>: BLOX.Blox class-instance creation. +* new <9>: I18N.EncodedStringFactory-instance creation. + (line 16) +* new <10>: TCP.AbstractSocketImpl class-socket creation. (line 6) -* new <15>: BLOX.BEventSet class-initializing. +* new <11>: I18N.EncodedString class-instance creation. + (line 12) +* new <12>: Complex class-instance creation. + (line 12) +* new <13>: I18N.LocaleData class-accessing. + (line 30) +* new <14>: ZLib.ZlibStream class-instance creation. (line 6) -* new: BLOX.BCanvasObject class-instance creation. +* new <15>: BLOX.BWindow class-instance creation. (line 6) -* new_ <1>: TCP.AbstractSocket class-instance creation. +* new: TCP.IPAddress class-instance creation. + (line 71) +* new_ <1>: BLOX.BTransientWindow class-instance creation. + (line 9) +* new_ <2>: BLOX.Blox class-instance creation. (line 9) -* new_ <2>: I18N.EncodedStringFactory-instance creation. - (line 20) * new_ <3>: I18N.EncodedString class-instance creation. (line 15) -* new_ <4>: BLOX.BWindow class-instance creation. +* new_ <4>: BLOX.BDialog class-instance creation. + (line 6) +* new_ <5>: BLOX.BCheckMenuItem class-instance creation. + (line 6) +* new_ <6>: BLOX.BWindow class-instance creation. (line 9) -* new_ <5>: BLOX.BTransientWindow class-instance creation. +* new_ <7>: BLOX.BEventSet class-initializing. (line 9) -* new_ <6>: BLOX.BMenuItem class-instance creation. - (line 6) -* new_ <7>: BLOX.Blox class-instance creation. +* new_ <8>: I18N.EncodedStringFactory-instance creation. + (line 20) +* new_ <9>: BLOX.BCanvasObject class-instance creation. (line 9) -* new_ <8>: BLOX.BEventSet class-initializing. +* new_ <10>: TCP.AbstractSocket class-instance creation. (line 9) -* new_ <9>: BLOX.BDialog class-instance creation. - (line 6) -* new_ <10>: BLOX.BCheckMenuItem class-instance creation. +* new_: BLOX.BMenuItem class-instance creation. (line 6) -* new_: BLOX.BCanvasObject class-instance creation. - (line 9) * new_contents_: BLOX.BEdit class-instance creation. (line 6) * new_data_: BLOX.BImage class-instance creation. @@ -4405,16 +4407,16 @@ (line 11) * new_in_: BLOX.BTransientWindow class-instance creation. (line 13) -* new_label_ <1>: BLOX.BMenuItem class-instance creation. - (line 9) -* new_label_ <2>: BLOX.BMenu class-instance creation. +* new_label_ <1>: BLOX.BButton class-instance creation. (line 6) +* new_label_ <2>: BLOX.BMenuItem class-instance creation. + (line 9) * new_label_ <3>: BLOX.BLabel class-instance creation. (line 6) -* new_label_ <4>: BLOX.BDialog class-instance creation. - (line 11) -* new_label_: BLOX.BButton class-instance creation. +* new_label_ <4>: BLOX.BMenu class-instance creation. (line 6) +* new_label_: BLOX.BDialog class-instance creation. + (line 11) * new_label_prompt_: BLOX.BDialog class-instance creation. (line 16) * new_size_: BLOX.BImage class-instance creation. @@ -4425,53 +4427,55 @@ (line 23) * newReadOnly_: BLOX.BText class-instance creation. (line 6) -* next <1>: ZLib.ZlibReadStream-streaming. - (line 9) -* next <2>: TCP.Socket-stream protocol. - (line 29) -* next <3>: TCP.DatagramSocketImpl-socket operations. - (line 6) -* next <4>: TCP.DatagramSocket-accessing. - (line 15) -* next <5>: TCP.AbstractSocket-stream protocol. +* next <1>: TCP.AbstractSocket-stream protocol. (line 9) -* next <6>: I18N.Encoder-stream operations. +* next <2>: I18N.Encoder-stream operations. (line 17) -* next <7>: Debugger-stepping commands. +* next <3>: TCP.DatagramSocket-accessing. + (line 15) +* next <4>: Debugger-stepping commands. (line 16) +* next <5>: TCP.DatagramSocketImpl-socket operations. + (line 6) +* next <6>: ZLib.ZlibReadStream-streaming. + (line 9) +* next <7>: TCP.Socket-stream protocol. + (line 29) * next: DBI.ResultSet-cursor access. (line 13) * next_: TCP.Socket-stream protocol. (line 33) -* next_putAll_startingAt_: ZLib.ZlibWriteStream-streaming. +* next_putAll_startingAt_ <1>: ZLib.ZlibWriteStream-streaming. (line 31) +* next_putAll_startingAt_ <2>: TCP.Socket-stream protocol. + (line 37) +* next_putAll_startingAt_: TCP.AbstractSocket-stream protocol. + (line 13) * nextFrom_port_: TCP.DatagramSocket-direct operations. (line 6) * nextHunk <1>: ZLib.ZlibReadStream-streaming. (line 12) * nextHunk: TCP.Socket-stream protocol. - (line 37) + (line 42) * nextInput: I18N.Encoder-stream operations. (line 21) -* nextPut_ <1>: ZLib.ZlibWriteStream-streaming. - (line 35) -* nextPut_ <2>: TCP.Socket-stream protocol. - (line 41) -* nextPut_ <3>: TCP.DatagramSocketImpl-socket operations. +* nextPut_ <1>: TCP.Socket-stream protocol. + (line 46) +* nextPut_ <2>: TCP.AbstractSocket-stream protocol. + (line 17) +* nextPut_ <3>: BLOX.BEdit-widget protocol. + (line 23) +* nextPut_ <4>: BLOX.BText-inserting text. + (line 31) +* nextPut_ <5>: TCP.DatagramSocketImpl-socket operations. (line 9) -* nextPut_ <4>: TCP.DatagramSocket-accessing. +* nextPut_ <6>: ZLib.ZlibWriteStream-streaming. + (line 35) +* nextPut_: TCP.DatagramSocket-accessing. (line 18) -* nextPut_ <5>: TCP.AbstractSocket-stream protocol. - (line 13) -* nextPut_ <6>: BLOX.BText-inserting text. - (line 31) -* nextPut_: BLOX.BEdit-widget protocol. - (line 23) * nextPut_timeToLive_: TCP.MulticastSocket-instance creation. (line 20) -* nextPutAll_ <1>: TCP.Socket-stream protocol. - (line 46) -* nextPutAll_ <2>: BLOX.BText-inserting text. +* nextPutAll_ <1>: BLOX.BText-inserting text. (line 34) * nextPutAll_: BLOX.BEdit-widget protocol. (line 26) @@ -4495,17 +4499,17 @@ (line 21) * on_ <1>: ZLib.ZlibStream class-instance creation. (line 9) -* on_ <2>: ZLib.RawDeflateWriteStream class-instance creation. - (line 6) -* on_ <3>: ZLib.RawDeflateStream class-instance creation. +* on_ <2>: ZLib.RawDeflateStream class-instance creation. (line 14) -* on_ <4>: TCP.ReadBuffer class-instance creation. +* on_ <3>: TCP.ReadBuffer class-instance creation. + (line 6) +* on_ <4>: ZLib.RawDeflateWriteStream class-instance creation. (line 6) -* on_ <5>: I18N.RunTimeExpression class-instance creation. +* on_ <5>: Debugger class-instance creation. (line 6) -* on_ <6>: Debugger class-instance creation. +* on_ <6>: DBI.Statement class-instance creation. (line 6) -* on_: DBI.Statement class-instance creation. +* on_: I18N.RunTimeExpression class-instance creation. (line 6) * on_from_: I18N.EncodedStream class-instance creation. (line 16) @@ -4567,9 +4571,9 @@ (line 27) * option_level_at_get_size_: TCP.AbstractSocketImpl class-C call-outs. (line 27) -* option_level_at_put_size_ <1>: TCP.AbstractSocketImpl-C call-outs. +* option_level_at_put_size_ <1>: TCP.AbstractSocketImpl class-C call-outs. (line 30) -* option_level_at_put_size_: TCP.AbstractSocketImpl class-C call-outs. +* option_level_at_put_size_: TCP.AbstractSocketImpl-C call-outs. (line 30) * optionAt_level_put_: TCP.AbstractSocketImpl-socket options. (line 6) @@ -4583,14 +4587,14 @@ (line 51) * origin_extent_: BLOX.BBoundingBox-accessing. (line 59) -* outlineColor <1>: BLOX.BRectangle-accessing. - (line 6) -* outlineColor: BLOX.BPolyline-accessing. +* outlineColor <1>: BLOX.BPolyline-accessing. (line 44) -* outlineColor_ <1>: BLOX.BRectangle-accessing. - (line 9) -* outlineColor_: BLOX.BPolyline-accessing. +* outlineColor: BLOX.BRectangle-accessing. + (line 6) +* outlineColor_ <1>: BLOX.BPolyline-accessing. (line 48) +* outlineColor_: BLOX.BRectangle-accessing. + (line 9) * outOfBand: TCP.Socket-out-of-band data. (line 6) * outOfBandImplClass <1>: TCP.TCPSocketImpl-implementation. @@ -4617,22 +4621,22 @@ (line 39) * pastEnd: TCP.ReadBuffer-buffer handling. (line 31) -* peek <1>: ZLib.ZlibReadStream-streaming. - (line 17) -* peek <2>: TCP.Socket-stream protocol. +* peek <1>: TCP.Socket-stream protocol. (line 51) -* peek <3>: TCP.DatagramSocketImpl-socket operations. - (line 12) -* peek: TCP.DatagramSocket-accessing. +* peek <2>: ZLib.ZlibReadStream-streaming. + (line 17) +* peek <3>: TCP.DatagramSocket-accessing. (line 21) -* peek_ <1>: TCP.DatagramSocketImpl-socket operations. - (line 15) -* peek_: TCP.DatagramSocket-accessing. +* peek: TCP.DatagramSocketImpl-socket operations. + (line 12) +* peek_ <1>: TCP.DatagramSocket-accessing. (line 24) -* peekFor_ <1>: ZLib.ZlibReadStream-streaming. - (line 21) -* peekFor_: TCP.Socket-stream protocol. +* peek_: TCP.DatagramSocketImpl-socket operations. + (line 15) +* peekFor_ <1>: TCP.Socket-stream protocol. (line 56) +* peekFor_: ZLib.ZlibReadStream-streaming. + (line 21) * peekInput: I18N.Encoder-stream operations. (line 26) * platform: BLOX.Blox class-utility. @@ -4649,22 +4653,22 @@ (line 13) * popup_: BLOX.BWidget class-popups. (line 15) -* port <1>: TCP.Socket-accessing. +* port <1>: TCP.Datagram-accessing. + (line 30) +* port <2>: TCP.Socket-accessing. (line 9) -* port <2>: TCP.ServerSocket-accessing. - (line 18) -* port <3>: TCP.DatagramSocket-accessing. +* port <3>: TCP.AbstractSocket-accessing. + (line 34) +* port <4>: TCP.DatagramSocket-accessing. (line 28) -* port <4>: TCP.Datagram-accessing. - (line 30) -* port: TCP.AbstractSocket-accessing. - (line 30) -* port_ <1>: TCP.ServerSocket class-instance creation. - (line 11) -* port_ <2>: TCP.DatagramSocket class-instance creation. +* port: TCP.ServerSocket-accessing. + (line 18) +* port_ <1>: TCP.DatagramSocket class-instance creation. (line 14) -* port_: TCP.Datagram-accessing. +* port_ <2>: TCP.Datagram-accessing. (line 33) +* port_: TCP.ServerSocket class-instance creation. + (line 11) * port_bindTo_: TCP.ServerSocket class-instance creation. (line 15) * port_queueSize_: TCP.ServerSocket class-instance creation. @@ -4725,16 +4729,16 @@ (line 26) * position: DBI.ResultSet-stream protocol. (line 6) -* position_ <1>: ZLib.RawInflateStream-positioning. - (line 17) -* position_: DBI.ResultSet-stream protocol. +* position_ <1>: DBI.ResultSet-stream protocol. (line 10) -* posix <1>: I18N.LocaleData class-accessing. - (line 33) -* posix <2>: I18N.LocaleConventions class-accessing. +* position_: ZLib.RawInflateStream-positioning. (line 17) -* posix: I18N.Locale class-instance creation. +* posix <1>: I18N.Locale class-instance creation. (line 18) +* posix <2>: I18N.LocaleData class-accessing. + (line 33) +* posix: I18N.LocaleConventions class-accessing. + (line 17) * posVert_: BLOX.BWidget-geometry management. (line 173) * prepare_: DBI.Connection-querying. @@ -4771,43 +4775,43 @@ (line 11) * print_time_format_on_: I18N.LcTime-printing. (line 18) -* printOn_ <1>: TCP.Socket-printing. (line 6) -* printOn_ <2>: TCP.IPAddress-printing. - (line 6) -* printOn_ <3>: TCP.AbstractSocket-printing. - (line 6) -* printOn_ <4>: I18N.RTEParameterNode-computing. - (line 6) -* printOn_ <5>: I18N.RTENegationNode-computing. - (line 9) -* printOn_ <6>: I18N.RTELiteralNode-computing. - (line 9) -* printOn_ <7>: I18N.RTEBinaryNode-computing. +* printOn_ <1>: I18N.RTEBinaryNode-computing. (line 10) -* printOn_ <8>: I18N.RTEAlternativeNode-computing. +* printOn_ <2>: I18N.RTELiteralNode-computing. + (line 9) +* printOn_ <3>: Complex-printing. (line 6) +* printOn_ <4>: DBI.ResultSet-printing. + (line 6) +* printOn_ <5>: I18N.RTEAlternativeNode-computing. (line 10) -* printOn_ <9>: I18N.EncodedString-printing. +* printOn_ <6>: I18N.EncodedString-printing. (line 11) -* printOn_ <10>: DBI.Row-printing. (line 6) -* printOn_ <11>: DBI.ResultSet-printing. +* printOn_ <7>: DBI.Row-printing. (line 6) +* printOn_ <8>: TCP.Socket-printing. (line 6) +* printOn_ <9>: DBI.ColumnInfo-printing. (line 6) -* printOn_ <12>: DBI.ColumnInfo-printing. +* printOn_ <10>: I18N.RTENegationNode-computing. + (line 9) +* printOn_ <11>: I18N.RTEParameterNode-computing. + (line 6) +* printOn_ <12>: TCP.IPAddress-printing. + (line 6) +* printOn_: TCP.AbstractSocket-printing. (line 6) -* printOn_: Complex-printing. (line 6) * printString_: I18N.LcPrintFormats-printing. (line 14) * process: Debugger-inferior process properties. (line 12) * producerConsumerTest: TCP.Socket class-tests. (line 18) -* protocol <1>: TCP.UDPSocketImpl class-C constants. - (line 9) -* protocol <2>: TCP.TCPSocketImpl class-C constants. - (line 9) -* protocol <3>: TCP.ICMPSocketImpl class-C constants. +* protocol <1>: TCP.ICMPSocketImpl class-C constants. (line 6) -* protocol: TCP.AbstractSocketImpl class-abstract. +* protocol <2>: TCP.UDPSocketImpl class-C constants. + (line 9) +* protocol <3>: TCP.AbstractSocketImpl class-abstract. (line 10) +* protocol: TCP.TCPSocketImpl class-C constants. + (line 9) * protocolFamily: TCP.IPAddress class-C constants. (line 9) * question: BLOX.BImage class-icons. @@ -4836,23 +4840,23 @@ (line 19) * receive_: TCP.DatagramSocket-accessing. (line 31) -* receive_buffer_size_flags_from_size_ <1>: TCP.AbstractSocketImpl-C call-outs. +* receive_buffer_size_flags_from_size_ <1>: TCP.AbstractSocketImpl class-C call-outs. (line 33) -* receive_buffer_size_flags_from_size_: TCP.AbstractSocketImpl class-C call-outs. +* receive_buffer_size_flags_from_size_: TCP.AbstractSocketImpl-C call-outs. (line 33) * receive_datagram_: TCP.DatagramSocketImpl-socket operations. (line 23) * reciprocal: Complex-math. (line 27) -* red <1>: BLOX.BTextAttributes-colors. - (line 30) -* red: BLOX.BTextAttributes class-instance-creation shortcuts. +* red <1>: BLOX.BTextAttributes class-instance-creation shortcuts. (line 67) -* redraw <1>: BLOX.BEmbeddedText-accessing. +* red: BLOX.BTextAttributes-colors. + (line 30) +* redraw <1>: BLOX.BCanvasObject-widget protocol. + (line 26) +* redraw <2>: BLOX.BEmbeddedText-accessing. (line 59) -* redraw <2>: BLOX.BEmbeddedImage-accessing. +* redraw: BLOX.BEmbeddedImage-accessing. (line 21) -* redraw: BLOX.BCanvasObject-widget protocol. - (line 26) * refuseTabs: BLOX.BText-inserting text. (line 41) * registerEncoderFor_toUTF32_fromUTF32_: I18N.EncodedStream class-initializing. @@ -4861,34 +4865,34 @@ * release: BLOX.Blox-basic. (line 10) * remote_port_: TCP.Socket class-instance creation. (line 6) -* remote_port_local_port_ <1>: TCP.Socket class-instance creation. - (line 11) -* remote_port_local_port_: TCP.DatagramSocket class-instance creation. +* remote_port_local_port_ <1>: TCP.DatagramSocket class-instance creation. (line 18) -* remoteAddress <1>: TCP.AbstractSocketImpl-accessing. +* remote_port_local_port_: TCP.Socket class-instance creation. + (line 11) +* remoteAddress <1>: TCP.AbstractSocket-accessing. + (line 39) +* remoteAddress: TCP.AbstractSocketImpl-accessing. (line 20) -* remoteAddress: TCP.AbstractSocket-accessing. - (line 35) * remotePort <1>: TCP.AbstractSocketImpl-accessing. (line 25) * remotePort: TCP.AbstractSocket-accessing. - (line 38) + (line 42) * remove: BLOX.BCanvasObject-widget protocol. (line 31) * remove_: BLOX.BMenuBar-accessing. (line 9) -* removeAtIndex_ <1>: BLOX.BList-accessing. - (line 282) -* removeAtIndex_: BLOX.BDropDown-list box accessing. +* removeAtIndex_ <1>: BLOX.BDropDown-list box accessing. (line 77) +* removeAtIndex_: BLOX.BList-accessing. + (line 282) * removeAttributes: BLOX.BText-attributes. (line 15) * removeAttributesFrom_to_: BLOX.BText-attributes. (line 18) -* replaceSelection_ <1>: BLOX.BText-inserting text. - (line 45) -* replaceSelection_ <2>: BLOX.BEdit-widget protocol. +* replaceSelection_ <1>: BLOX.BEdit-widget protocol. (line 33) +* replaceSelection_ <2>: BLOX.BText-inserting text. + (line 45) * replaceSelection_: BLOX.BDropDownEdit-text accessing. (line 10) * reset: ZLib.RawInflateStream-positioning. @@ -4929,10 +4933,10 @@ (line 83) * searchString_: BLOX.BText-inserting text. (line 50) -* select_ <1>: DBI.Connection-querying. - (line 15) -* select_: BLOX.BList-widget protocol. +* select_ <1>: BLOX.BList-widget protocol. (line 24) +* select_: DBI.Connection-querying. + (line 15) * selectAll <1>: BLOX.BEdit-widget protocol. (line 38) * selectAll: BLOX.BDropDownEdit-text accessing. @@ -4941,10 +4945,10 @@ (line 95) * selectBackground: BLOX.BEdit-accessing. (line 91) -* selectBackground_ <1>: BLOX.BText-accessing. - (line 101) -* selectBackground_: BLOX.BEdit-accessing. +* selectBackground_ <1>: BLOX.BEdit-accessing. (line 97) +* selectBackground_: BLOX.BText-accessing. + (line 101) * selectForeground <1>: BLOX.BText-accessing. (line 107) * selectForeground: BLOX.BEdit-accessing. @@ -4959,30 +4963,30 @@ (line 41) * selectFrom_to_: BLOX.BDropDownEdit-text accessing. (line 18) -* selection <1>: BLOX.BEdit-widget protocol. - (line 48) -* selection: BLOX.BDropDownEdit-text accessing. +* selection <1>: BLOX.BDropDownEdit-text accessing. (line 25) -* selectionRange <1>: BLOX.BEdit-widget protocol. - (line 52) -* selectionRange: BLOX.BDropDownEdit-text accessing. +* selection: BLOX.BEdit-widget protocol. + (line 48) +* selectionRange <1>: BLOX.BDropDownEdit-text accessing. (line 29) -* selector <1>: I18N.LocaleConventions class-accessing. +* selectionRange: BLOX.BEdit-widget protocol. + (line 52) +* selector <1>: I18N.LcMonetaryISO class-accessing. + (line 6) +* selector <2>: I18N.LocaleConventions class-accessing. (line 20) -* selector <2>: I18N.LcTime class-accessing. +* selector <3>: I18N.LcMessages class-accessing. (line 10) -* selector <3>: I18N.LcNumeric class-accessing. +* selector <4>: I18N.LcMonetary class-accessing. (line 10) -* selector <4>: I18N.LcMonetaryISO class-accessing. - (line 6) -* selector <5>: I18N.LcMonetary class-accessing. +* selector <5>: I18N.LcTime class-accessing. (line 10) -* selector: I18N.LcMessages class-accessing. +* selector: I18N.LcNumeric class-accessing. (line 10) -* send_ <1>: I18N.RunTimeExpression-computing. - (line 6) -* send_ <2>: I18N.RTEParameterNode-computing. +* send_ <1>: I18N.RTEParameterNode-computing. (line 9) +* send_ <2>: I18N.RunTimeExpression-computing. + (line 6) * send_ <3>: I18N.RTENegationNode-computing. (line 12) * send_ <4>: I18N.RTELiteralNode-computing. @@ -5026,24 +5030,24 @@ (line 34) * show_: BLOX.BList-widget protocol. (line 30) -* shown <1>: BLOX.BBalloon-accessing. - (line 6) -* shown: BLOX.BBalloon class-accessing. +* shown <1>: BLOX.BBalloon class-accessing. (line 13) +* shown: BLOX.BBalloon-accessing. + (line 6) * sin: Complex-transcendental functions. (line 30) * sinh: Complex-transcendental functions. (line 33) * size <1>: I18N.EncodedString-accessing. (line 27) -* size <2>: DBI.ResultSet-stream protocol. +* size <2>: BLOX.BDropDown-list box accessing. + (line 84) +* size <3>: DBI.ResultSet-stream protocol. (line 13) -* size <3>: DBI.ColumnInfo-accessing. +* size <4>: DBI.ColumnInfo-accessing. (line 13) -* size <4>: BLOX.BList-accessing. +* size: BLOX.BList-accessing. (line 289) -* size: BLOX.BDropDown-list box accessing. - (line 84) * skip_: ZLib.RawInflateStream-positioning. (line 26) * slowFinish: Debugger-stepping commands. @@ -5058,9 +5062,9 @@ (line 15) * socketType <1>: TCP.SocketImpl class-parameters. (line 6) -* socketType <2>: TCP.RawSocketImpl class-parameters. +* socketType <2>: TCP.DatagramSocketImpl class-parameters. (line 6) -* socketType <3>: TCP.DatagramSocketImpl class-parameters. +* socketType <3>: TCP.RawSocketImpl class-parameters. (line 6) * socketType: TCP.AbstractSocketImpl class-abstract. (line 13) @@ -5070,20 +5074,20 @@ (line 18) * sockStream: TCP.AbstractSocketImpl class-C constants. (line 24) -* soError <1>: TCP.AbstractSocketImpl-socket options. - (line 19) -* soError: TCP.AbstractSocketImpl class-C constants. +* soError <1>: TCP.AbstractSocketImpl class-C constants. (line 6) +* soError: TCP.AbstractSocketImpl-socket options. + (line 19) * soLinger <1>: TCP.AbstractSocketImpl-socket options. (line 22) -* soLinger <2>: TCP.AbstractSocketImpl class-C constants. - (line 9) -* soLinger: TCP.AbstractSocket-socket options. +* soLinger <2>: TCP.AbstractSocket-socket options. (line 6) -* soLinger_ <1>: TCP.AbstractSocketImpl-socket options. - (line 27) -* soLinger_: TCP.AbstractSocket-socket options. +* soLinger: TCP.AbstractSocketImpl class-C constants. + (line 9) +* soLinger_ <1>: TCP.AbstractSocket-socket options. (line 12) +* soLinger_: TCP.AbstractSocketImpl-socket options. + (line 27) * soLingerOff: TCP.AbstractSocket-socket options. (line 17) * solSocket: TCP.AbstractSocketImpl class-C constants. @@ -5094,28 +5098,28 @@ (line 12) * soReuseAddr_: TCP.AbstractSocketImpl-socket options. (line 42) -* space <1>: BLOX.BText-inserting text. - (line 55) -* space: BLOX.BEdit-widget protocol. +* space <1>: BLOX.BEdit-widget protocol. (line 58) -* species <1>: ZLib.ZlibStream-streaming. - (line 12) -* species <2>: TCP.AbstractSocket-socket options. - (line 22) -* species <3>: I18N.Encoder-stream operations. - (line 29) -* species: I18N.EncodedString-accessing. +* space: BLOX.BText-inserting text. + (line 55) +* species <1>: I18N.EncodedString-accessing. (line 30) +* species <2>: I18N.Encoder-stream operations. + (line 29) +* species <3>: TCP.AbstractSocket-socket options. + (line 22) +* species: ZLib.ZlibStream-streaming. + (line 12) * sqrt: Complex-transcendental functions. (line 36) * startAngle: BLOX.BArc-accessing. (line 32) * startAngle_: BLOX.BArc-accessing. (line 36) -* state <1>: BLOX.BWindow-widget protocol. +* state <1>: BLOX.Blox-accessing. (line 6) +* state: BLOX.BWindow-widget protocol. (line 64) -* state: BLOX.Blox-accessing. (line 6) -* state_ <1>: BLOX.BWindow-widget protocol. +* state_ <1>: BLOX.Blox-accessing. (line 18) +* state_: BLOX.BWindow-widget protocol. (line 70) -* state_: BLOX.Blox-accessing. (line 18) * statement: DBI.ResultSet-accessing. (line 34) * step: Debugger-stepping commands. @@ -5167,30 +5171,30 @@ (line 22) * territory: I18N.LocaleData-accessing. (line 27) -* territoryDirectory <1>: I18N.LocaleData-accessing. - (line 30) -* territoryDirectory: I18N.LcMessages-accessing. +* territoryDirectory <1>: I18N.LcMessages-accessing. (line 13) -* territoryDirectory_ <1>: I18N.LocaleData-accessing. - (line 34) -* territoryDirectory_: I18N.LcMessages-accessing. +* territoryDirectory: I18N.LocaleData-accessing. + (line 30) +* territoryDirectory_ <1>: I18N.LcMessages-accessing. (line 17) -* text <1>: BLOX.BEmbeddedText-accessing. - (line 64) -* text <2>: BLOX.BDropDownList-accessing. - (line 59) -* text <3>: BLOX.BDropDownEdit-accessing-overrides. - (line 6) -* text <4>: BLOX.BDropDown-flexibility. +* territoryDirectory_: I18N.LocaleData-accessing. (line 34) -* text: BLOX.BBalloon-accessing. +* text <1>: BLOX.BDropDownEdit-accessing-overrides. + (line 6) +* text <2>: BLOX.BBalloon-accessing. (line 9) -* text_ <1>: BLOX.BEmbeddedText-accessing. - (line 67) +* text <3>: BLOX.BDropDownList-accessing. + (line 59) +* text <4>: BLOX.BEmbeddedText-accessing. + (line 64) +* text: BLOX.BDropDown-flexibility. + (line 34) +* text_ <1>: BLOX.BDropDown-flexibility. + (line 39) * text_ <2>: BLOX.BDropDownEdit-text accessing. (line 35) -* text_ <3>: BLOX.BDropDown-flexibility. - (line 39) +* text_ <3>: BLOX.BEmbeddedText-accessing. + (line 67) * text_: BLOX.BBalloon-accessing. (line 12) * time: I18N.Locale-subobjects. @@ -5199,11 +5203,11 @@ (line 15) * timeout_: TCP.AbstractSocket class-timed-out operations. (line 20) -* timeToLive <1>: TCP.UDPSocketImpl-multicasting. +* timeToLive <1>: TCP.MulticastSocket-instance creation. (line 23) * timeToLive <2>: TCP.MulticastSocketImpl-multicasting. (line 20) -* timeToLive: TCP.MulticastSocket-instance creation. +* timeToLive: TCP.UDPSocketImpl-multicasting. (line 23) * timeToLive_ <1>: TCP.UDPSocketImpl-multicasting. (line 27) @@ -5230,10 +5234,10 @@ (line 16) * udpLoopbackTest: TCP.Socket class-tests. (line 37) -* underline <1>: BLOX.BTextAttributes-setting attributes. - (line 102) -* underline: BLOX.BTextAttributes class-instance-creation shortcuts. +* underline <1>: BLOX.BTextAttributes class-instance-creation shortcuts. (line 73) +* underline: BLOX.BTextAttributes-setting attributes. + (line 102) * unhighlight: BLOX.BList-widget protocol. (line 34) * unicodeOn_: I18N.EncodedStream class-instance creation. @@ -5250,48 +5254,48 @@ (line 37) * upArrow: BLOX.BImage class-arrows. (line 15) -* update_ <1>: TCP.SocketAddress class-initialization. +* update_ <1>: BLOX.Blox class-event dispatching. + (line 25) +* update_ <2>: TCP.SocketAddress class-initialization. (line 30) -* update_ <2>: I18N.LocaleData class-accessing. +* update_: I18N.LocaleData class-accessing. (line 37) -* update_: BLOX.Blox class-event dispatching. - (line 25) * updateDriverList: DBI.Connection class-initialization. (line 6) * utf16Encoding: I18N.EncodedString-accessing. (line 33) * utf32Encoding: I18N.EncodedString-accessing. (line 36) -* value <1>: BLOX.BToggle-accessing. - (line 17) -* value <2>: BLOX.BRadioGroup-accessing. +* value <1>: BLOX.BRadioGroup-accessing. (line 6) +* value <2>: BLOX.BProgress-accessing. + (line 32) * value <3>: BLOX.BRadioButton-accessing. (line 14) -* value <4>: BLOX.BProgress-accessing. - (line 32) +* value <4>: BLOX.BToggle-accessing. + (line 17) * value: BLOX.BCheckMenuItem-accessing. (line 9) -* value_ <1>: I18N.RunTimeExpression-computing. - (line 10) -* value_ <2>: BLOX.BToggle-accessing. - (line 20) -* value_ <3>: BLOX.BRadioGroup-accessing. +* value_ <1>: BLOX.BRadioGroup-accessing. (line 11) -* value_ <4>: BLOX.BRadioButton-accessing. - (line 18) -* value_ <5>: BLOX.BProgress-accessing. +* value_ <2>: I18N.RunTimeExpression-computing. + (line 10) +* value_ <3>: BLOX.BProgress-accessing. (line 35) -* value_: BLOX.BCheckMenuItem-accessing. +* value_ <4>: BLOX.BCheckMenuItem-accessing. (line 12) +* value_ <5>: BLOX.BRadioButton-accessing. + (line 18) +* value_: BLOX.BToggle-accessing. + (line 20) * valueAt_: I18N.EncodedString-accessing. (line 39) * valueAt_put_: I18N.EncodedString-accessing. (line 42) -* valueWithoutBuffering_ <1>: TCP.TCPSocketImpl-socket options. - (line 6) -* valueWithoutBuffering_: TCP.AbstractSocketImpl-socket options. +* valueWithoutBuffering_ <1>: TCP.AbstractSocketImpl-socket options. (line 46) +* valueWithoutBuffering_: TCP.TCPSocketImpl-socket options. + (line 6) * variable_: BLOX.BToggle-accessing. (line 24) * version: TCP.IPAddress class-constants. @@ -5314,24 +5318,24 @@ (line 76) * widget: BLOX.BEventSet-accessing. (line 6) -* width <1>: BLOX.BWindow-widget protocol. - (line 77) -* width <2>: BLOX.BWidget-geometry management. +* width <1>: BLOX.BWidget-geometry management. (line 182) -* width <3>: BLOX.BRectangle-accessing. - (line 12) -* width <4>: BLOX.BPolyline-accessing. - (line 64) -* width: BLOX.BLine-accessing. +* width <2>: BLOX.BLine-accessing. (line 15) +* width <3>: BLOX.BPolyline-accessing. + (line 64) +* width <4>: BLOX.BRectangle-accessing. + (line 12) +* width: BLOX.BWindow-widget protocol. + (line 77) * width_ <1>: BLOX.BWindow-widget protocol. (line 81) -* width_ <2>: BLOX.BWidget-geometry management. +* width_ <2>: BLOX.BPolyline-accessing. + (line 68) +* width_ <3>: BLOX.BWidget-geometry management. (line 194) -* width_ <3>: BLOX.BRectangle-accessing. +* width_ <4>: BLOX.BRectangle-accessing. (line 15) -* width_ <4>: BLOX.BPolyline-accessing. - (line 68) * width_: BLOX.BLine-accessing. (line 18) * width_height_ <1>: BLOX.BWindow-widget protocol. @@ -5344,18 +5348,18 @@ (line 205) * widthChild_ <1>: BLOX.BWidget-geometry management. (line 209) -* widthChild_ <2>: BLOX.BText-geometry management. - (line 37) +* widthChild_ <2>: BLOX.BCanvas-geometry management. + (line 42) * widthChild_ <3>: BLOX.BPopupWindow-geometry management. (line 46) -* widthChild_: BLOX.BCanvas-geometry management. - (line 42) +* widthChild_: BLOX.BText-geometry management. + (line 37) * widthOffset: BLOX.BWidget-geometry management. (line 219) -* widthOffset_ <1>: BLOX.BWindow-widget protocol. - (line 92) -* widthOffset_: BLOX.BWidget-geometry management. +* widthOffset_ <1>: BLOX.BWidget-geometry management. (line 224) +* widthOffset_: BLOX.BWindow-widget protocol. + (line 92) * widthPixels_: BLOX.BWidget-geometry management. (line 232) * window <1>: BLOX.BWindow-widget protocol. @@ -5374,38 +5378,38 @@ (line 132) * writeBufferSize: TCP.Socket class-accessing. (line 18) -* writeBufferSize_ <1>: TCP.Socket-stream protocol. - (line 65) -* writeBufferSize_: TCP.Socket class-accessing. +* writeBufferSize_ <1>: TCP.Socket class-accessing. (line 21) +* writeBufferSize_: TCP.Socket-stream protocol. + (line 65) * x <1>: BLOX.BWindow-widget protocol. (line 98) * x: BLOX.BWidget-geometry management. (line 238) -* x_ <1>: BLOX.BWindow-widget protocol. - (line 103) -* x_: BLOX.BWidget-geometry management. +* x_ <1>: BLOX.BWidget-geometry management. (line 249) +* x_: BLOX.BWindow-widget protocol. + (line 103) * x_y_ <1>: BLOX.BWindow-widget protocol. (line 107) * x_y_: BLOX.BWidget-geometry management. (line 256) -* x_y_width_height_ <1>: BLOX.BWindow-widget protocol. - (line 111) -* x_y_width_height_: BLOX.BWidget-geometry management. +* x_y_width_height_ <1>: BLOX.BWidget-geometry management. (line 260) +* x_y_width_height_: BLOX.BWindow-widget protocol. + (line 111) * xAbsolute <1>: BLOX.BWindow-widget protocol. (line 115) * xAbsolute: BLOX.BWidget-geometry management. (line 263) -* xChild_ <1>: BLOX.BWidget-geometry management. - (line 267) -* xChild_ <2>: BLOX.BText-geometry management. - (line 40) -* xChild_ <3>: BLOX.BPopupWindow-geometry management. +* xChild_ <1>: BLOX.BPopupWindow-geometry management. (line 50) -* xChild_: BLOX.BCanvas-geometry management. +* xChild_ <2>: BLOX.BCanvas-geometry management. (line 45) +* xChild_ <3>: BLOX.BWidget-geometry management. + (line 267) +* xChild_: BLOX.BText-geometry management. + (line 40) * xOffset: BLOX.BWidget-geometry management. (line 277) * xOffset_ <1>: BLOX.BWindow-widget protocol. @@ -5424,28 +5428,28 @@ (line 128) * y_: BLOX.BWidget-geometry management. (line 312) -* yAbsolute <1>: BLOX.BWindow-widget protocol. - (line 132) -* yAbsolute: BLOX.BWidget-geometry management. +* yAbsolute <1>: BLOX.BWidget-geometry management. (line 319) -* yChild_ <1>: BLOX.BWidget-geometry management. - (line 323) -* yChild_ <2>: BLOX.BText-geometry management. - (line 45) -* yChild_ <3>: BLOX.BPopupWindow-geometry management. +* yAbsolute: BLOX.BWindow-widget protocol. + (line 132) +* yChild_ <1>: BLOX.BPopupWindow-geometry management. (line 54) -* yChild_: BLOX.BCanvas-geometry management. +* yChild_ <2>: BLOX.BCanvas-geometry management. (line 49) +* yChild_ <3>: BLOX.BWidget-geometry management. + (line 323) +* yChild_: BLOX.BText-geometry management. + (line 45) * yellow <1>: BLOX.BTextAttributes-colors. (line 36) * yellow: BLOX.BTextAttributes class-instance-creation shortcuts. (line 79) * yOffset: BLOX.BWidget-geometry management. (line 333) -* yOffset_ <1>: BLOX.BWindow-widget protocol. - (line 137) -* yOffset_: BLOX.BWidget-geometry management. +* yOffset_ <1>: BLOX.BWidget-geometry management. (line 338) +* yOffset_: BLOX.BWindow-widget protocol. + (line 137) * yPixels_: BLOX.BWidget-geometry management. (line 346) * yRoot: BLOX.BWidget-geometry management. Binary files smalltalk-3.0.1/doc/gst-libs.info-3 and smalltalk-3.0.2/doc/gst-libs.info-3 differ diff -ru smalltalk-3.0.1/doc/gst-load.1 smalltalk-3.0.2/doc/gst-load.1 --- smalltalk-3.0.1/doc/gst-load.1 2008-01-31 15:44:02.000000000 +0100 +++ smalltalk-3.0.2/doc/gst-load.1 2008-03-07 12:04:23.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.28. -.TH GST-LOAD "1" "January 2008" "gst-load version 3.0" "User Commands" +.TH GST-LOAD "1" "March 2008" "gst-load version 3.0.2" "User Commands" .SH NAME gst-load \- test and load packages into a GNU Smalltalk image .SH DESCRIPTION diff -ru smalltalk-3.0.1/doc/gst-package.1 smalltalk-3.0.2/doc/gst-package.1 --- smalltalk-3.0.1/doc/gst-package.1 2008-01-31 15:44:02.000000000 +0100 +++ smalltalk-3.0.2/doc/gst-package.1 2008-03-07 12:04:24.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.28. -.TH GST-PACKAGE "1" "January 2008" "gst-package version 3.0" "User Commands" +.TH GST-PACKAGE "1" "March 2008" "gst-package version 3.0.2" "User Commands" .SH NAME gst-package \- create and install GNU Smalltalk .star package files .SH DESCRIPTION diff -ru smalltalk-3.0.1/doc/gst-sunit.1 smalltalk-3.0.2/doc/gst-sunit.1 --- smalltalk-3.0.1/doc/gst-sunit.1 2008-01-31 15:44:03.000000000 +0100 +++ smalltalk-3.0.2/doc/gst-sunit.1 2008-03-07 12:04:24.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.28. -.TH GST-SUNIT "1" "January 2008" "gst-sunit version 3.0" "User Commands" +.TH GST-SUNIT "1" "March 2008" "gst-sunit version 3.0.2" "User Commands" .SH NAME gst-sunit \- unit testing tool for GNU Smalltalk .SH DESCRIPTION diff -ru smalltalk-3.0.1/doc/gst.1 smalltalk-3.0.2/doc/gst.1 --- smalltalk-3.0.1/doc/gst.1 2008-01-31 15:44:01.000000000 +0100 +++ smalltalk-3.0.2/doc/gst.1 2008-03-07 12:04:23.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.28. -.TH SMALLTALK "1" "January 2008" "Smalltalk version 3.0" "User Commands" +.TH SMALLTALK "1" "March 2008" "Smalltalk version 3.0.2" "User Commands" .SH NAME Smalltalk \- the GNU Smalltalk virtual machine .SH DESCRIPTION diff -ru smalltalk-3.0.1/doc/stamp-1 smalltalk-3.0.2/doc/stamp-1 --- smalltalk-3.0.1/doc/stamp-1 2008-01-31 15:53:52.000000000 +0100 +++ smalltalk-3.0.2/doc/stamp-1 2008-03-07 12:12:15.000000000 +0100 @@ -1,4 +1,4 @@ -@set UPDATED 31 January 2008 -@set UPDATED-MONTH January 2008 -@set EDITION 3.0.1 -@set VERSION 3.0.1 +@set UPDATED 7 March 2008 +@set UPDATED-MONTH March 2008 +@set EDITION 3.0.2 +@set VERSION 3.0.2 diff -ru smalltalk-3.0.1/doc/stamp-2 smalltalk-3.0.2/doc/stamp-2 --- smalltalk-3.0.1/doc/stamp-2 2008-01-31 15:53:52.000000000 +0100 +++ smalltalk-3.0.2/doc/stamp-2 2008-03-07 12:12:16.000000000 +0100 @@ -1,4 +1,4 @@ -@set UPDATED 31 January 2008 -@set UPDATED-MONTH January 2008 -@set EDITION 3.0.1 -@set VERSION 3.0.1 +@set UPDATED 7 March 2008 +@set UPDATED-MONTH March 2008 +@set EDITION 3.0.2 +@set VERSION 3.0.2 diff -ru smalltalk-3.0.1/doc/stamp-vti smalltalk-3.0.2/doc/stamp-vti --- smalltalk-3.0.1/doc/stamp-vti 2008-01-31 15:44:10.000000000 +0100 +++ smalltalk-3.0.2/doc/stamp-vti 2008-03-07 12:03:50.000000000 +0100 @@ -1,4 +1,4 @@ -@set UPDATED 27 January 2008 -@set UPDATED-MONTH January 2008 -@set EDITION 3.0.1 -@set VERSION 3.0.1 +@set UPDATED 7 March 2008 +@set UPDATED-MONTH March 2008 +@set EDITION 3.0.2 +@set VERSION 3.0.2 diff -ru smalltalk-3.0.1/doc/tcp.texi smalltalk-3.0.2/doc/tcp.texi --- smalltalk-3.0.1/doc/tcp.texi 2008-01-23 18:55:45.000000000 +0100 +++ smalltalk-3.0.2/doc/tcp.texi 2008-03-07 12:04:14.000000000 +0100 @@ -273,6 +273,12 @@ endpoint is still alive. +@meindex isPeerAlive +@item isPeerAlive +Answer whether the connection with the peer remote machine is still +valid. + + @meindex localAddress @item localAddress Answer the local IP address of the socket. @@ -366,6 +372,12 @@ dead. +@meindex next:@-putAll:@-startingAt:@- +@item next:@- n putAll:@- aCollection startingAt:@- pos +Write `char' to the socket, failing if the connection is dead. The +SIGPIPE signal is automatically caught and ignored by the system. + + @meindex nextPut:@- @item nextPut:@- char Write `char' to the socket, failing if the connection is dead. The @@ -2289,6 +2301,13 @@ Smalltalk Processes. +@meindex next:@-putAll:@-startingAt:@- +@item next:@- n putAll:@- aCollection startingAt:@- pos +Write aString to the socket; this acts as a bit-bucket when +the socket is closed. This might yield control to other +Smalltalk Processes. + + @meindex nextHunk @item nextHunk Answer the next buffers worth of stuff in the Stream represented @@ -2302,13 +2321,6 @@ Smalltalk Processes. -@meindex nextPutAll:@- -@item nextPutAll:@- aString -Write aString to the socket; this acts as a bit-bucket when -the socket is closed. This might yield control to other -Smalltalk Processes. - - @meindex peek @item peek Read a byte from the socket, without advancing the buffer; answer diff -ru smalltalk-3.0.1/doc/vers-base.texi smalltalk-3.0.2/doc/vers-base.texi --- smalltalk-3.0.1/doc/vers-base.texi 2008-01-31 15:44:10.000000000 +0100 +++ smalltalk-3.0.2/doc/vers-base.texi 2008-03-07 12:12:15.000000000 +0100 @@ -1,4 +1,4 @@ -@set UPDATED 31 January 2008 -@set UPDATED-MONTH January 2008 -@set EDITION 3.0.1 -@set VERSION 3.0.1 +@set UPDATED 7 March 2008 +@set UPDATED-MONTH March 2008 +@set EDITION 3.0.2 +@set VERSION 3.0.2 diff -ru smalltalk-3.0.1/doc/vers-gst.texi smalltalk-3.0.2/doc/vers-gst.texi --- smalltalk-3.0.1/doc/vers-gst.texi 2008-01-31 15:44:10.000000000 +0100 +++ smalltalk-3.0.2/doc/vers-gst.texi 2008-03-07 12:03:50.000000000 +0100 @@ -1,4 +1,4 @@ -@set UPDATED 27 January 2008 -@set UPDATED-MONTH January 2008 -@set EDITION 3.0.1 -@set VERSION 3.0.1 +@set UPDATED 7 March 2008 +@set UPDATED-MONTH March 2008 +@set EDITION 3.0.2 +@set VERSION 3.0.2 diff -ru smalltalk-3.0.1/doc/vers-libs.texi smalltalk-3.0.2/doc/vers-libs.texi --- smalltalk-3.0.1/doc/vers-libs.texi 2008-01-31 15:44:11.000000000 +0100 +++ smalltalk-3.0.2/doc/vers-libs.texi 2008-03-07 12:04:10.000000000 +0100 @@ -1,4 +1,4 @@ -@set UPDATED 31 January 2008 -@set UPDATED-MONTH January 2008 -@set EDITION 3.0.1 -@set VERSION 3.0.1 +@set UPDATED 7 March 2008 +@set UPDATED-MONTH March 2008 +@set EDITION 3.0.2 +@set VERSION 3.0.2 diff -ru smalltalk-3.0.1/gst-mode.el.in smalltalk-3.0.2/gst-mode.el.in --- smalltalk-3.0.1/gst-mode.el.in 2008-01-22 11:14:31.000000000 +0100 +++ smalltalk-3.0.2/gst-mode.el.in 2008-03-05 14:38:30.000000000 +0100 @@ -364,9 +364,9 @@ (progn (end-of-line) (insert "\n")))) - (if mode (setq mode-status mode))) + (if mode (setq mode-status mode)) - (if fileinfo + (if fileinfo (let (temp-file buf switch-back old-buf) (setq temp-file (concat "/tmp/" (make-temp-name "gst"))) (save-excursion @@ -382,8 +382,8 @@ (format "FileStream fileIn: '%s' line: %d from: '%s' at: %d\n" temp-file (nth 0 fileinfo) (nth 1 fileinfo) (nth 2 fileinfo)))) - (comint-send-string *smalltalk-process* str)) - (switch-to-buffer-other-window (process-buffer *smalltalk-process*))) + (comint-send-string *smalltalk-process* str)) + (switch-to-buffer-other-window (process-buffer *smalltalk-process*)))) (provide 'gst-mode) diff -ru smalltalk-3.0.1/kernel/AnsiDates.st smalltalk-3.0.2/kernel/AnsiDates.st --- smalltalk-3.0.1/kernel/AnsiDates.st 2008-01-22 11:14:31.000000000 +0100 +++ smalltalk-3.0.2/kernel/AnsiDates.st 2008-03-07 11:53:44.000000000 +0100 @@ -52,9 +52,9 @@ ] DateTime class >> fromDays: days seconds: secs offset: ofs [ - "Answer a DateTime denoting the d-th day of the given (as a number) - month and year. Set the offset field to ofs (a Duration), and - the the time part to the given hour, minute, and second" + "Answer a DateTime denoting the given date (as days since + January 1, 1901) and time (as seconds since midnight). Set the + offset field to ofs (a Duration)." ^(self fromDays: days) @@ -62,6 +62,26 @@ setOffset: ofs ] + DateTime class >> date: aDate time: aTime offset: ofs [ + "Answer a DateTime denoting the given date and time. Set the + offset field to ofs (a Duration)." + + + ^(self fromDays: aDate days) + setSeconds: aTime asSeconds; + setOffset: ofs + ] + + DateTime class >> date: aDate time: aTime [ + "Answer a DateTime denoting the given date and time. Set the + offset field to ofs (a Duration)." + + + ^(self fromDays: aDate days) + setSeconds: aTime asSeconds; + setOffset: Duration zero + ] + DateTime class >> readFrom: aStream [ "Parse an instance of the receiver from aStream" diff -ru smalltalk-3.0.1/kernel/ArrayColl.st smalltalk-3.0.2/kernel/ArrayColl.st --- smalltalk-3.0.1/kernel/ArrayColl.st 2008-01-22 11:14:31.000000000 +0100 +++ smalltalk-3.0.2/kernel/ArrayColl.st 2008-02-22 11:06:20.000000000 +0100 @@ -272,6 +272,18 @@ yourself ] + gather: aBlock [ + "Answer a new instance of a Collection containing all the results + of evaluating aBlock, joined together. aBlock should return + collections. The result is the same kind of the receiver, + independent of the type of collection returned by aBlock." + + + | newCollection | + newCollection := self copyEmptyForCollect: 0. + ^newCollection class join: (self collect: aBlock) + ] + select: aBlock [ "Answer a new instance of an ArrayedCollection containing all the elements in the receiver which, when passed to aBlock, answer true" diff -ru smalltalk-3.0.1/kernel/CharArray.st smalltalk-3.0.2/kernel/CharArray.st --- smalltalk-3.0.1/kernel/CharArray.st 2008-01-22 11:14:31.000000000 +0100 +++ smalltalk-3.0.2/kernel/CharArray.st 2008-02-05 16:34:28.000000000 +0100 @@ -127,14 +127,28 @@ ^(self caseInsensitiveCompareTo: aCharacterArray) = 0 ] + endsWith: aCharacterArray [ + "Returns true if the receiver ends with the same characters as aCharacterArray." + + + | delta | + delta := self size - aCharacterArray size. + delta >= 0 ifFalse: [ ^false ]. + aCharacterArray + keysAndValuesDo: [:i :each | + (self at: i + delta) = each ifFalse: [^false]]. + ^true + ] + startsWith: aCharacterArray [ "Returns true if the receiver starts with the same characters as aCharacterArray." - ^self size >= aCharacterArray size and: - [aCharacterArray - keysAndValuesDo: [:i :each | (self at: i) = each ifFalse: [^false]]. - true] + self size >= aCharacterArray size ifFalse: [ ^false ]. + aCharacterArray + keysAndValuesDo: [:i :each | + (self at: i) = each ifFalse: [^false]]. + ^true ] match: aCharacterArray [ diff -ru smalltalk-3.0.1/kernel/Collection.st smalltalk-3.0.2/kernel/Collection.st --- smalltalk-3.0.1/kernel/Collection.st 2008-01-22 11:14:31.000000000 +0100 +++ smalltalk-3.0.2/kernel/Collection.st 2008-02-22 11:06:20.000000000 +0100 @@ -366,6 +366,30 @@ ^exceptionBlock value ] + count: aBlock [ + "Count the elements of the receiver for which aBlock returns true, + and return their number." + + + | count | + count := 0. + self do: [:element | (aBlock value: element) ifTrue: [count := count + 1]]. + ^count + ] + + gather: aBlock [ + "Answer a new instance of a Collection containing all the results + of evaluating aBlock, joined together. aBlock should return + collections. The result is the same kind of the receiver, + independent of the type of collection returned by aBlock." + + + | newCollection | + newCollection := self copyEmptyForCollect. + self do: [:element | newCollection addAll: (aBlock value: element)]. + ^newCollection + ] + allSatisfy: aBlock [ "Search the receiver for an element for which aBlock returns false. Answer true if none does, false otherwise." @@ -375,6 +399,15 @@ ^true ] + noneSatisfy: aBlock [ + "Search the receiver for an element for which aBlock returns true. + Answer true if none does, false otherwise." + + + self do: [:element | (aBlock value: element) ifTrue: [^false]]. + ^true + ] + anySatisfy: aBlock [ "Search the receiver for an element for which aBlock returns true. Answer true if some does, false otherwise." diff -ru smalltalk-3.0.1/kernel/Date.st smalltalk-3.0.2/kernel/Date.st --- smalltalk-3.0.1/kernel/Date.st 2008-01-22 11:14:31.000000000 +0100 +++ smalltalk-3.0.2/kernel/Date.st 2008-02-22 22:11:29.000000000 +0100 @@ -385,6 +385,13 @@ ^self days ] + - aDate [ + "Answer a new Date pointing dayCount before the receiver" + + + ^Duration days: self days - aDate days + ] + addDays: dayCount [ "Answer a new Date pointing dayCount past the receiver" diff -ru smalltalk-3.0.1/kernel/Dictionary.st smalltalk-3.0.2/kernel/Dictionary.st --- smalltalk-3.0.1/kernel/Dictionary.st 2008-01-31 15:40:28.000000000 +0100 +++ smalltalk-3.0.2/kernel/Dictionary.st 2008-03-07 11:53:44.000000000 +0100 @@ -93,6 +93,18 @@ ^aCollection ] + associations [ + "Returns the content of a Dictionary as a Set of Associations." + + + | array i | + array := Array new: self size. + i := 0. + self associationsDo: [ :each | + array at: (i := i + 1) put: each ]. + ^array + ] + at: key put: value [ "Store value as associated to the given key" diff -ru smalltalk-3.0.1/kernel/DirMessage.st smalltalk-3.0.2/kernel/DirMessage.st --- smalltalk-3.0.1/kernel/DirMessage.st 2008-01-22 11:14:31.000000000 +0100 +++ smalltalk-3.0.2/kernel/DirMessage.st 2008-02-25 10:56:43.000000000 +0100 @@ -43,6 +43,27 @@ self shouldNotImplement ] + DirectedMessage class >> receiver: anObject selector: aSymbol [ + "Create a new instance of the receiver" + + + ^(super selector: aSymbol arguments: #()) receiver: anObject + ] + + DirectedMessage class >> receiver: receiverObject selector: aSymbol argument: argumentObject [ + "Create a new instance of the receiver" + + + ^(super selector: aSymbol argument: argumentObject) receiver: receiverObject + ] + + DirectedMessage class >> receiver: anObject selector: aSymbol arguments: anArray [ + "Create a new instance of the receiver" + + + ^(super selector: aSymbol arguments: anArray) receiver: anObject + ] + DirectedMessage class >> selector: aSymbol arguments: anArray receiver: anObject [ "Create a new instance of the receiver" diff -ru smalltalk-3.0.1/kernel/File.st smalltalk-3.0.2/kernel/File.st --- smalltalk-3.0.1/kernel/File.st 2008-01-28 07:45:16.000000000 +0100 +++ smalltalk-3.0.2/kernel/File.st 2008-02-14 14:26:15.000000000 +0100 @@ -192,9 +192,18 @@ File class >> computePathFrom: srcName to: destName [ - | src dest srcComponent destComponent path | - src := srcName subStrings: Directory pathSeparator. - dest := destName subStrings: Directory pathSeparator. + | src dest srcCanon destCanon path | + "A Windows path may contain both / and \ separators. Clean it up + to allow easy parsing" + srcCanon := Directory pathSeparator = $/ + ifTrue: [srcName] + ifFalse: [srcName copyReplacing: $/ withObject: Directory pathSeparator]. + destCanon := Directory pathSeparator = $/ + ifTrue: [destName] + ifFalse: [destName copyReplacing: $/ withObject: Directory pathSeparator]. + + src := srcCanon subStrings: Directory pathSeparator. + dest := destCanon subStrings: Directory pathSeparator. src := src asOrderedCollection. src removeLast. dest := dest asOrderedCollection. @@ -208,7 +217,7 @@ dest removeFirst]. src collect: [:each | '..']]. path addAllLast: dest. - ^path fold: [:a :b | a , '/' , b] + ^path fold: [:a :b | a , Directory pathSeparatorString , b] ] File class >> checkError [ diff -ru smalltalk-3.0.1/kernel/Float.st smalltalk-3.0.2/kernel/Float.st --- smalltalk-3.0.1/kernel/Float.st 2008-01-28 07:45:16.000000000 +0100 +++ smalltalk-3.0.2/kernel/Float.st 2008-02-25 15:18:41.000000000 +0100 @@ -489,14 +489,17 @@ num := num - (digit * weight). prevWeight := weight. weight := weight / 10]. - num = 0 - ifFalse: - ["Smallest number such that me + eps ~= eps" - eps := 2 raisedToInteger: me exponent - me class precision + 1. - "For large numbers, don't let round-to-even bite us." - eps isInteger ifTrue: [eps := eps / 2]. - (num - prevWeight quo: eps) = 0 ifTrue: [digits := digits + 1]]. + "Smallest number such that me + eps ~= eps" + eps := 2 raisedToInteger: me exponent - me class precision + 1. + "For large numbers, don't let round-to-even bite us." + eps isInteger ifTrue: [eps := eps / 2]. + + "Round the last digit if it is a better approximation, or if it + allows to save trailing nines while not changing the meaning." + ((num - prevWeight) abs < num or: [ + digit = 9 and: [ num - prevWeight > (eps / -2) ]]) + ifTrue: [digits := digits + 1]. digits := digits printString. "Print the non-significant zeros." diff -ru smalltalk-3.0.1/kernel/Message.st smalltalk-3.0.2/kernel/Message.st --- smalltalk-3.0.1/kernel/Message.st 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/kernel/Message.st 2008-02-25 10:56:43.000000000 +0100 @@ -42,6 +42,15 @@ since their syntax is isomorphic to that of a message send.'> + Message class >> selector: aSymbol argument: anObject [ + "Create a new Message with the given selector and argument" + + + ^(self new) + selector: aSymbol; + arguments: { anObject } + ] + Message class >> selector: aSymbol arguments: anArray [ "Create a new Message with the given selector and arguments" diff -ru smalltalk-3.0.1/kernel/Number.st smalltalk-3.0.2/kernel/Number.st --- smalltalk-3.0.1/kernel/Number.st 2008-01-28 07:45:16.000000000 +0100 +++ smalltalk-3.0.2/kernel/Number.st 2008-02-14 14:26:15.000000000 +0100 @@ -43,6 +43,7 @@ "Answer aNumber - whatever class it belongs to, it is good" + aNumber class == Fraction ifTrue: [ ^aNumber asFloatD ]. ^aNumber ] @@ -62,7 +63,7 @@ ch = $. ifFalse: [aStream skip: -1. - ^value]. + ^self coerce: value]. [aStream atEnd ifTrue: [^self coerce: value]. (ch := aStream next) isDigit] @@ -116,9 +117,10 @@ ] coerce: aNumber [ - "Answer aNumber - whatever class it belongs to, it is good" + "Answer aNumber, converted to an integer or floating-point number." + aNumber class == Fraction ifTrue: [ ^aNumber asFloatD ]. ^aNumber ] @@ -919,6 +921,42 @@ i := i + self unity] ] + to: stop collect: aBlock [ + "Evaluate aBlock for each value in the interval going from the receiver + to stop by 1. The results are collected in an Array and returned." + + + | size result i j | + size := (stop - self) truncated + 1 max: 0. + result := Array new: size. + i := self. + j := 1. + [j <= size] whileTrue: + [result at: j put: (aBlock value: i). + i := i + self unity. j := j + 1]. + ^result + ] + + to: stop by: step collect: aBlock [ + "Evaluate aBlock for each value in the interval going from the receiver + to stop with the given step. The results are collected in an Array + and returned." + + + | size result i j | + size := step > 0 + ifTrue: [stop >= self ifTrue: [(stop - self) // step + 1] ifFalse: [0]] + ifFalse: [self >= stop ifTrue: [(stop - self) // step + 1] ifFalse: [0]]. + + result := Array new: size. + i := self. + j := 1. + [j <= size] whileTrue: + [result at: j put: (aBlock value: i). + i := i + step. j := j + 1]. + ^result + ] + arithmeticError: message [ self error: message diff -ru smalltalk-3.0.1/kernel/Regex.st smalltalk-3.0.2/kernel/Regex.st --- smalltalk-3.0.1/kernel/Regex.st 2008-01-28 07:45:16.000000000 +0100 +++ smalltalk-3.0.2/kernel/Regex.st 2008-02-14 14:26:15.000000000 +0100 @@ -31,16 +31,15 @@ -String subclass: Regex [ +Object subclass: Regex [ aStream nextPut: $/. - self do: + self asString do: [:each | - each = $/ ifTrue: [aStream nextPut: $\]. + each = $/ ifTrue: [ aStream nextPut: $\ ]. aStream nextPut: each]. aStream nextPut: $/ ] diff -ru smalltalk-3.0.1/kernel/ScaledDec.st smalltalk-3.0.2/kernel/ScaledDec.st --- smalltalk-3.0.1/kernel/ScaledDec.st 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/kernel/ScaledDec.st 2008-02-25 14:31:28.000000000 +0100 @@ -40,9 +40,6 @@ unbounded precision, with no limit to the number of digits before and after the decimal point.'> - Zero := nil. - One := nil. - ScaledDecimal class >> newFromNumber: aNumber scale: scale [ "Answer a new instance of ScaledDecimal, representing a decimal fraction with a decimal representation considered valid up to the @@ -54,30 +51,18 @@ yourself ] - ScaledDecimal class >> initialize [ - "Initialize the receiver's class variables" - - "We cannot create ScaledDecimal with 1.0s0 during the very - first phases of bootstrapping, because the lexer calls in to - #asScaledDecimal: -- but it is not a problem." - - - One := self newFromNumber: 1 scale: 0. - Zero := self newFromNumber: 0 scale: 0 - ] - one [ "Answer the receiver's representation of one." - ^One + ^self class newFromNumber: 1 scale: scale ] zero [ "Answer the receiver's representation of zero." - ^Zero + ^self class newFromNumber: 0 scale: scale ] fractionPart [ @@ -370,10 +355,3 @@ scale := theScale ] ] - - - -Eval [ - ScaledDecimal initialize -] - diff -ru smalltalk-3.0.1/kernel/SeqCollect.st smalltalk-3.0.2/kernel/SeqCollect.st --- smalltalk-3.0.1/kernel/SeqCollect.st 2008-01-27 16:09:25.000000000 +0100 +++ smalltalk-3.0.2/kernel/SeqCollect.st 2008-02-14 14:29:17.000000000 +0100 @@ -411,6 +411,26 @@ ifAbsent: [^0] ] + identityIndexOfLast: anElement ifAbsent: exceptionBlock [ + "Answer the last index which contains an object identical to anElement. + Invoke exceptionBlock and answer its result if no item is found" + + + self size to: 1 by: -1 + do: [:index | (self at: index) == anElement ifTrue: [^index]]. + ^exceptionBlock value + ] + + indexOfLast: anElement ifAbsent: exceptionBlock [ + "Answer the last index which contains anElement. + Invoke exceptionBlock and answer its result if no item is found" + + + self size to: 1 by: -1 + do: [:index | (self at: index) = anElement ifTrue: [^index]]. + ^exceptionBlock value + ] + indexOf: anElement ifAbsent: exceptionBlock [ "Answer the index of the first occurrence of anElement in the receiver. Invoke exceptionBlock and answer its result if no item is found" @@ -525,6 +545,22 @@ anIndex to: stopIndex do: [:index | self at: index put: replacementObject] ] + copyAfter: anObject [ + "Answer a new collection holding all the elements of the receiver + after the first occurrence of anObject, up to the last." + + + ^self copyFrom: (self indexOf: anObject ifAbsent: [self size]) + 1 + ] + + copyAfterLast: anObject [ + "Answer a new collection holding all the elements of the receiver + after the last occurrence of anObject, up to the last." + + + ^self copyFrom: (self indexOfLast: anObject ifAbsent: [self size]) + 1 + ] + copyUpTo: anObject [ "Answer a new collection holding all the elements of the receiver from the first up to the first occurrence of anObject, excluded." @@ -532,8 +568,17 @@ ^self copyFrom: 1 to: (self indexOf: anObject - ifAbsent: [^SystemExceptions.NotFound signalOn: anObject what: 'object']) - - 1 + ifAbsent: [self size + 1]) - 1 + ] + + copyUpToLast: anObject [ + "Answer a new collection holding all the elements of the receiver + from the first up to the last occurrence of anObject, excluded." + + + ^self copyFrom: 1 + to: (self indexOfLast: anObject + ifAbsent: [self size + 1]) - 1 ] copyReplaceFrom: start to: stop withObject: anObject [ @@ -914,6 +959,72 @@ ^newCollection ] + with: aSequenceableCollection [ + "Return an Array with the same size as the receiver and + aSequenceableCollection, each element of which is a 2-element + Arrays including one element from the receiver and one from + aSequenceableCollection." + + self size = aSequenceableCollection size + ifFalse: [^SystemExceptions.InvalidSize signalOn: aSequenceableCollection]. + ^1 to: self size collect: [ :each | + { self at: each. aSequenceableCollection at: each } ] + ] + + with: seqColl1 with: seqColl2 [ + "Return an Array with the same size as the receiver and + the arguments, each element of which is a 3-element + Arrays including one element from the receiver and one from + each argument." + + self size = seqColl1 size + ifFalse: [^SystemExceptions.InvalidSize signalOn: seqColl1]. + self size = seqColl2 size + ifFalse: [^SystemExceptions.InvalidSize signalOn: seqColl2]. + ^1 to: self size collect: [ :each | + { self at: each. seqColl1 at: each. seqColl2 at: each } ] + ] + + with: seqColl1 with: seqColl2 with: seqColl3 [ + "Return an Array with the same size as the receiver and + the arguments, each element of which is a 4-element + Arrays including one element from the receiver and one from + each argument." + + self size = seqColl1 size + ifFalse: [^SystemExceptions.InvalidSize signalOn: seqColl1]. + self size = seqColl2 size + ifFalse: [^SystemExceptions.InvalidSize signalOn: seqColl2]. + self size = seqColl3 size + ifFalse: [^SystemExceptions.InvalidSize signalOn: seqColl3]. + ^1 to: self size collect: [ :each | + { self at: each. seqColl1 at: each. seqColl2 at: each. + seqColl3 at: each } ] + ] + + sort [ + "Sort the contents of the receiver according to the default + sort block, which uses #<= to compare items." + + self + replaceFrom: 1 + to: self size + with: self asSortedCollection + startingAt: 1 + ] + + sortBy: sortBlock [ + "Sort the contents of the receiver according to the given + sort block, which accepts pair of items and returns true if + the first item is less than the second one." + + self + replaceFrom: 1 + to: self size + with: (self asSortedCollection: sortBlock) + startingAt: 1 + ] + matchSubCollection: aSubCollection startingAt: anIndex [ "Private - Answer whether the items from index anIndex match those in aSubCollection. The first item is ignored" diff -ru smalltalk-3.0.1/kernel/StreamOps.st smalltalk-3.0.2/kernel/StreamOps.st --- smalltalk-3.0.1/kernel/StreamOps.st 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/kernel/StreamOps.st 2008-02-04 07:50:13.000000000 +0100 @@ -507,6 +507,129 @@ +Namespace current: Kernel [ + +Stream subclass: OneOfEachStream [ + | streams delta | + + + + + OneOfEachStream class >> new [ + + ^#() readStream + ] + + OneOfEachStream class >> with: stream1 [ + + ^(self basicNew) + streams: {stream1} + ] + + OneOfEachStream class >> with: stream1 with: stream2 [ + + ^(self basicNew) + streams: + {stream1. + stream2} + ] + + OneOfEachStream class >> with: stream1 with: stream2 with: stream3 [ + + ^(self basicNew) + streams: + {stream1. + stream2. + stream3} + ] + + OneOfEachStream class >> with: stream1 with: stream2 with: stream3 with: stream4 [ + + ^(self basicNew) + streams: + {stream1. + stream2. + stream3. + stream4} + ] + + OneOfEachStream class >> withAll: array [ + + ^(self basicNew) + streams: array + ] + + atEnd [ + + ^streams anySatisfy: [ :each | each atEnd] + ] + + do: aBlock [ + + [ + aBlock value: + (streams collect: [:each | + each atEnd ifTrue: [ ^self ]. + each next ]) + ] repeat + ] + + next [ + + ^streams collect: [:each | + each atEnd ifTrue: [ ^self pastEnd ] ifFalse: [ each next ]] + ] + + pastEnd [ + + ^streams first pastEnd + ] + + peekFor: anObject [ + + ^self peek = anObject + ifTrue: [ streams do: [ :each | streams next ] ]; + yourself + ] + + peek [ + + ^streams collect: [:each | + each atEnd ifTrue: [ ^self pastEnd ] ifFalse: [ each peek ]] + ] + + position [ + + ^streams first position - delta + ] + + position: anInteger [ + + ^self skip: anInteger - self position + ] + + reset [ + + self position: 0 + ] + + skip: anInteger [ + + streams do: [ :each | each skip: anInteger ] + ] + + streams: arrayOfStreams [ + + streams := arrayOfStreams. + delta := arrayOfStreams first position. + ] +] + +] + + + + Stream extend [ , aStream [ @@ -612,5 +735,29 @@ ^Kernel.CollectingStream on: self collect: aBlock ] + with: aStream [ + "Return a new Stream whose elements are 2-element + Arrays, including one element from the receiver and one from + aStream." + + ^Kernel.OneOfEachStream with: self with: aStream + ] + + with: stream1 with: stream2 [ + "Return a new Stream whose elements are 3-element + Arrays, including one element from the receiver and one from + each argument." + + ^Kernel.OneOfEachStream with: self with: stream1 with: stream2 + ] + + with: stream1 with: stream2 with: stream3 [ + "Return a new Stream whose elements are 3-element + Arrays, including one element from the receiver and one from + each argument." + + ^Kernel.OneOfEachStream + with: self with: stream1 with: stream2 with: stream3 + ] ] diff -ru smalltalk-3.0.1/kernel/Time.st smalltalk-3.0.2/kernel/Time.st --- smalltalk-3.0.1/kernel/Time.st 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/kernel/Time.st 2008-02-22 22:11:29.000000000 +0100 @@ -56,12 +56,18 @@ "Answer a time representing the current time of day in Coordinated Universal Time (UTC)" - "\\ rounds towards -infinity, so it is good for negative numbers too" - ^self new setSeconds: self utcSecondClock ] + Time class >> midnight [ + "Answer a time representing midnight in Coordinated + Universal Time (UTC)" + + + ^self new setSeconds: 0 + ] + Time class >> timezoneBias [ "Specifies the current bias, in minutes, for local time translation for the current time. The bias is the difference, in seconds, between @@ -333,15 +339,24 @@ ^seconds ] - addTime: timeAmount [ + addSeconds: timeAmount [ "Answer a new Time that is timeAmount seconds after the receiver" + ^Time new setSeconds: seconds + timeAmount + ] + + addTime: timeAmount [ + "Answer a new Time that is timeAmount seconds after the receiver; + timeAmount is a Time." + + ^Time new setSeconds: seconds + timeAmount asSeconds ] subtractTime: timeAmount [ - "Answer a new Time that is timeAmount seconds before the receiver" + "Answer a new Time that is timeAmount seconds before the receiver; + timeAmount is a Time." ^Time new setSeconds: seconds - timeAmount asSeconds diff -ru smalltalk-3.0.1/libgst/ChangeLog smalltalk-3.0.2/libgst/ChangeLog --- smalltalk-3.0.1/libgst/ChangeLog 2008-01-31 15:40:28.000000000 +0100 +++ smalltalk-3.0.2/libgst/ChangeLog 2008-03-07 11:53:44.000000000 +0100 @@ -1,3 +1,36 @@ +2008-03-04 Paolo Bonzini + + * libgst/prims.def: Avoid mixed declarations and code. + +2008-02-26 Paolo Bonzini + + * libgst/events.c: Add _gst_remove_fd_polling_handlers. + * libgst/events.h: Declare it. + * libgst/prims.def: Use it. + +2008-02-19 Paolo Bonzini + + * libgst/cint.c: Don't specify the path to ffi.h. + +2008-02-13 Paolo Bonzini + + * libgst/re.c: Don't convert read-only strings to Regexes, + convert mutable strings instead. + +2008-02-12 Paolo Bonzini + + * libgst/lex.c: Improve the precision of reading 0.1. + +2008-02-11 Paolo Bonzini + + * libgst/oop.c: Move inclusion of sigsegv.h... + * libgst/gstpriv.h: ... here. + +2008-02-11 Paolo Bonzini + + * libgst/vm.def: Microoptimization of + and - (avoid shifts). + * libgst/gstpriv.h: Microoptimization of integer overflow detection. + 2008-01-25 Paolo Bonzini * libgst/mpz.c: Fix #divExact: for huge numerator and small diff -ru smalltalk-3.0.1/libgst/cint.c smalltalk-3.0.2/libgst/cint.c --- smalltalk-3.0.1/libgst/cint.c 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/libgst/cint.c 2008-02-19 18:49:43.000000000 +0100 @@ -55,7 +55,7 @@ #include "gstpriv.h" #include "re.h" -#include "../libffi/include/ffi.h" +#include "ffi.h" #include typedef struct symbol_type_map diff -ru smalltalk-3.0.1/libgst/events.c smalltalk-3.0.2/libgst/events.c --- smalltalk-3.0.1/libgst/events.c 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/libgst/events.c 2008-02-27 09:24:31.000000000 +0100 @@ -192,6 +192,46 @@ return 0; } +void +_gst_remove_fd_polling_handlers (int fd) +{ + polling_queue *node, **pprev; + + if (num_used_pollfds == 0) + return; + + /* Disable interrupts while playing with global variables */ + _gst_disable_interrupts (); + + num_used_pollfds = 0; + for (node = head, pprev = &head; node; node = *pprev) + { + struct pollfd *poll = &pollfds[node->poll]; + + if (poll->fd == fd) + { + _gst_async_signal_and_unregister (node->semaphoreOOP); + + /* Pass over the current node */ + *pprev = node->next; + if (p_tail_next == &node->next) + p_tail_next = pprev; + + xfree (node); + } + else + { + node->poll = num_used_pollfds; + pollfds[num_used_pollfds++] = *poll; + + /* Prepare to get the next node */ + pprev = &(node->next); + } + } + + _gst_enable_interrupts (); +} + RETSIGTYPE file_polling_handler (int sig) { diff -ru smalltalk-3.0.1/libgst/events.h smalltalk-3.0.2/libgst/events.h --- smalltalk-3.0.1/libgst/events.h 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/libgst/events.h 2008-02-27 09:24:31.000000000 +0100 @@ -78,6 +78,10 @@ ATTRIBUTE_PURE ATTRIBUTE_HIDDEN; +/* Fire and remove all I/O handlers for file descriptor FD. */ +extern void _gst_remove_fd_polling_handlers (int fd) + ATTRIBUTE_HIDDEN; + /* Check whether I/O is possible on the FD file descriptor; COND is 0 to check for pending input, 1 to check for the possibility of doing non-blocking output, 2 to check for pending exceptional situations diff -ru smalltalk-3.0.1/libgst/gstpriv.h smalltalk-3.0.2/libgst/gstpriv.h --- smalltalk-3.0.1/libgst/gstpriv.h 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/libgst/gstpriv.h 2008-02-14 14:26:15.000000000 +0100 @@ -106,6 +106,10 @@ #include #endif +#ifdef HAVE_SIGSEGV_H +#include "sigsegv.h" +#endif + #include "gst.h" /* Convenience macros to test the versions of GCC. Note - they won't @@ -580,7 +584,7 @@ #define ST_INT_SIZE ((sizeof (PTR) * 8) - 2) #define MAX_ST_INT ((1L << ST_INT_SIZE) - 1) #define MIN_ST_INT ( ~MAX_ST_INT) -#define INT_OVERFLOW(i) ( (i) > MAX_ST_INT || (i) < MIN_ST_INT ) +#define INT_OVERFLOW(i) (((i) ^ ((i) << 1)) < 0) #define OVERFLOWING_INT (MAX_ST_INT + 1) #define INCR_INT(i) ((OOP) (((intptr_t)i) + 2)) /* 1 << 1 */ diff -ru smalltalk-3.0.1/libgst/lex.c smalltalk-3.0.2/libgst/lex.c --- smalltalk-3.0.1/libgst/lex.c 2008-01-24 13:21:21.000000000 +0100 +++ smalltalk-3.0.2/libgst/lex.c 2008-02-14 14:26:15.000000000 +0100 @@ -777,8 +777,10 @@ k <<= 1; } - mant = (n < 0) ? mant / result : mant * result; - return ldexpl (mant, exp * n); + if (n < 0) + return ldexpl (mant, exp * n) / result; + else + return ldexpl (mant * result, exp * n); } int diff -ru smalltalk-3.0.1/libgst/oop.c smalltalk-3.0.2/libgst/oop.c --- smalltalk-3.0.1/libgst/oop.c 2008-01-24 13:21:21.000000000 +0100 +++ smalltalk-3.0.2/libgst/oop.c 2008-02-14 14:26:15.000000000 +0100 @@ -54,10 +54,6 @@ #include "gstpriv.h" -#ifdef HAVE_SIGSEGV_H -#include "sigsegv.h" -#endif - #define K 1024 #define INIT_NUM_INCUBATOR_OOPS 50 #define INCUBATOR_CHUNK_SIZE 20 diff -ru smalltalk-3.0.1/libgst/prims.def smalltalk-3.0.2/libgst/prims.def --- smalltalk-3.0.1/libgst/prims.def 2008-01-31 15:40:28.000000000 +0100 +++ smalltalk-3.0.2/libgst/prims.def 2008-03-07 11:53:44.000000000 +0100 @@ -5254,8 +5254,8 @@ fd = TO_INT (fileStream->file); switch (arg1) { - case PRIM_CLOSE_FILE: /* FileDescriptor close */ + _gst_remove_fd_polling_handlers (fd); SET_STACKTOP_INT (close (fd)); PRIM_SUCCEEDED; @@ -5556,7 +5556,9 @@ case PRIM_CLOSE_FILE: /* FileDescriptor close */ { - int result = closesocket (fd); + int result; + _gst_remove_fd_polling_handlers (fd); + result = closesocket (fd); SET_STACKTOP_INT (result); PRIM_SUCCEEDED; } diff -ru smalltalk-3.0.1/libgst/prims.inl smalltalk-3.0.2/libgst/prims.inl --- smalltalk-3.0.1/libgst/prims.inl 2008-01-31 15:43:49.000000000 +0100 +++ smalltalk-3.0.2/libgst/prims.inl 2008-03-07 11:57:51.000000000 +0100 @@ -6534,8 +6534,8 @@ fd = TO_INT (fileStream->file); switch (arg1) { - case PRIM_CLOSE_FILE: /* FileDescriptor close */ + _gst_remove_fd_polling_handlers (fd); SET_STACKTOP_INT (close (fd)); PRIM_SUCCEEDED; @@ -6839,7 +6839,9 @@ case PRIM_CLOSE_FILE: /* FileDescriptor close */ { - int result = closesocket (fd); + int result; + _gst_remove_fd_polling_handlers (fd); + result = closesocket (fd); SET_STACKTOP_INT (result); PRIM_SUCCEEDED; } @@ -6945,7 +6947,7 @@ intptr_t VMpr_CFuncDescriptor_asyncCall (int id, volatile int numArgs) -#line 5663 "prims.def" +#line 5665 "prims.def" { volatile OOP result = NULL; volatile gst_method_context context; @@ -6986,7 +6988,7 @@ intptr_t VMpr_CFuncDescriptor_call (int id, volatile int numArgs) -#line 5701 "prims.def" +#line 5703 "prims.def" { volatile OOP result = NULL; /* initialize to please GCC */ volatile gst_method_context context; @@ -7044,7 +7046,7 @@ intptr_t VMpr_Object_makeEphemeron (int id, volatile int numArgs) -#line 5756 "prims.def" +#line 5758 "prims.def" { _gst_primitives_executed++; if (NUM_OOPS (OOP_TO_OBJ (STACKTOP ())) == 0) @@ -7058,7 +7060,7 @@ intptr_t VMpr_Namespace_setCurrent (int id, volatile int numArgs) -#line 5767 "prims.def" +#line 5769 "prims.def" { OOP oop1; @@ -7076,7 +7078,7 @@ intptr_t VMpr_ObjectMemory_gcPrimitives (int id, volatile int numArgs) -#line 5787 "prims.def" +#line 5789 "prims.def" { _gst_primitives_executed++; switch (id) diff -ru smalltalk-3.0.1/libgst/re.c smalltalk-3.0.2/libgst/re.c --- smalltalk-3.0.1/libgst/re.c 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/libgst/re.c 2008-02-14 14:26:15.000000000 +0100 @@ -210,7 +210,7 @@ if (!regexClassOOP) init_re (); - if (!IS_OOP_READONLY (patternOOP)) + if (IS_OOP_READONLY (patternOOP)) return patternOOP; /* Search in the cache */ diff -ru smalltalk-3.0.1/libgst/vm.def smalltalk-3.0.2/libgst/vm.def --- smalltalk-3.0.1/libgst/vm.def 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/libgst/vm.def 2008-02-14 14:26:15.000000000 +0100 @@ -226,7 +226,32 @@ } operation PLUS_SPECIAL ( op1 op2 -- op ) { - INTERP_BASIC_OP (op, op1, op2, iarg1 += iarg2, farg1 + farg2); + if COMMON (ARE_INTS(op1, op2)) + { + intptr_t iop1 = (intptr_t) op1; + intptr_t iop2 = ((intptr_t) op2) - 1; + intptr_t iresult = iop1 + iop2; + if (iresult < iop1) + { + if (iop2 < 0) + { + op = (OOP) iresult; + break; + } + } + else + { + if (iop2 >= 0) + { + op = (OOP) iresult; + break; + } + } + } + else if COMMON ((IS_INT (op1) || OOP_CLASS(op1) == _gst_floatd_class) + && (IS_INT (op2) || OOP_CLASS(op2) == _gst_floatd_class)) + RAW_FLOATD_OP(op, op1, op2, farg1 + farg2); + PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (_gst_builtin_selectors[PLUS_SPECIAL].symbol, 1); @@ -235,7 +260,32 @@ } operation MINUS_SPECIAL ( op1 op2 -- op ) { - INTERP_BASIC_OP (op, op1, op2, iarg1 -= iarg2, farg1 - farg2); + if COMMON (ARE_INTS(op1, op2)) + { + intptr_t iop1 = (intptr_t) op1; + intptr_t iop2 = ((intptr_t) op2) - 1; + intptr_t iresult = iop1 - iop2; + if (iresult < iop1) + { + if (iop2 >= 0) + { + op = (OOP) iresult; + break; + } + } + else + { + if (iop2 < 0) + { + op = (OOP) iresult; + break; + } + } + } + else if COMMON ((IS_INT (op1) || OOP_CLASS(op1) == _gst_floatd_class) + && (IS_INT (op2) || OOP_CLASS(op2) == _gst_floatd_class)) + RAW_FLOATD_OP(op, op1, op2, farg1 - farg2); + PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (_gst_builtin_selectors[MINUS_SPECIAL].symbol, 1); diff -ru smalltalk-3.0.1/libgst/vm.inl smalltalk-3.0.2/libgst/vm.inl --- smalltalk-3.0.1/libgst/vm.inl 2008-01-09 20:41:49.000000000 +0100 +++ smalltalk-3.0.2/libgst/vm.inl 2008-02-14 16:43:08.000000000 +0100 @@ -411,14 +411,39 @@ #define op2 _stack0 #define op _stack1 #line 229 "vm.def" - INTERP_BASIC_OP (op, op1, op2, iarg1 += iarg2, farg1 + farg2); + if COMMON (ARE_INTS(op1, op2)) + { + intptr_t iop1 = (intptr_t) op1; + intptr_t iop2 = ((intptr_t) op2) - 1; + intptr_t iresult = iop1 + iop2; + if (iresult < iop1) + { + if (iop2 < 0) + { + op = (OOP) iresult; + break; + } + } + else + { + if (iop2 >= 0) + { + op = (OOP) iresult; + break; + } + } + } + else if COMMON ((IS_INT (op1) || OOP_CLASS(op1) == _gst_floatd_class) + && (IS_INT (op2) || OOP_CLASS(op2) == _gst_floatd_class)) + RAW_FLOATD_OP(op, op1, op2, farg1 + farg2); + PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (_gst_builtin_selectors[PLUS_SPECIAL].symbol, 1); IMPORT_REGS (); FETCH (dispatch_vec); -#line 422 "vm.inl" +#line 447 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -441,7 +466,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 445 "vm.inl" +#line 470 "vm.inl" } while (0); /* MINUS_SPECIAL ( op1 op2 -- op ) */ @@ -452,15 +477,40 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 238 "vm.def" - INTERP_BASIC_OP (op, op1, op2, iarg1 -= iarg2, farg1 - farg2); +#line 263 "vm.def" + if COMMON (ARE_INTS(op1, op2)) + { + intptr_t iop1 = (intptr_t) op1; + intptr_t iop2 = ((intptr_t) op2) - 1; + intptr_t iresult = iop1 - iop2; + if (iresult < iop1) + { + if (iop2 >= 0) + { + op = (OOP) iresult; + break; + } + } + else + { + if (iop2 < 0) + { + op = (OOP) iresult; + break; + } + } + } + else if COMMON ((IS_INT (op1) || OOP_CLASS(op1) == _gst_floatd_class) + && (IS_INT (op2) || OOP_CLASS(op2) == _gst_floatd_class)) + RAW_FLOATD_OP(op, op1, op2, farg1 - farg2); + PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (_gst_builtin_selectors[MINUS_SPECIAL].symbol, 1); IMPORT_REGS (); FETCH (dispatch_vec); -#line 464 "vm.inl" +#line 514 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -483,7 +533,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 487 "vm.inl" +#line 537 "vm.inl" } while (0); /* LESS_THAN_SPECIAL ( op1 op2 -- op ) */ @@ -494,7 +544,7 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 247 "vm.def" +#line 297 "vm.def" PREPARE_STACK (); INTERP_BASIC_BOOL (op, op1, op2, <); EXPORT_REGS (); @@ -502,7 +552,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 506 "vm.inl" +#line 556 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -525,7 +575,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 529 "vm.inl" +#line 579 "vm.inl" } while (0); /* GREATER_THAN_SPECIAL ( op1 op2 -- op ) */ @@ -536,7 +586,7 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 256 "vm.def" +#line 306 "vm.def" PREPARE_STACK (); INTERP_BASIC_BOOL (op, op1, op2, >); EXPORT_REGS (); @@ -544,7 +594,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 548 "vm.inl" +#line 598 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -567,7 +617,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 571 "vm.inl" +#line 621 "vm.inl" } while (0); /* LESS_EQUAL_SPECIAL ( op1 op2 -- op ) */ @@ -578,7 +628,7 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 265 "vm.def" +#line 315 "vm.def" PREPARE_STACK (); INTERP_BASIC_BOOL (op, op1, op2, <=); EXPORT_REGS (); @@ -586,7 +636,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 590 "vm.inl" +#line 640 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -609,7 +659,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 613 "vm.inl" +#line 663 "vm.inl" } while (0); /* GREATER_EQUAL_SPECIAL ( op1 op2 -- op ) */ @@ -620,7 +670,7 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 274 "vm.def" +#line 324 "vm.def" PREPARE_STACK (); INTERP_BASIC_BOOL (op, op1, op2, >=); EXPORT_REGS (); @@ -628,7 +678,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 632 "vm.inl" +#line 682 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -651,7 +701,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 655 "vm.inl" +#line 705 "vm.inl" } while (0); /* EQUAL_SPECIAL ( op1 op2 -- op ) */ @@ -662,7 +712,7 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 283 "vm.def" +#line 333 "vm.def" PREPARE_STACK (); INTERP_BASIC_BOOL (op, op1, op2, ==); EXPORT_REGS (); @@ -670,7 +720,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 674 "vm.inl" +#line 724 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -693,7 +743,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 697 "vm.inl" +#line 747 "vm.inl" } while (0); /* NOT_EQUAL_SPECIAL ( op1 op2 -- op ) */ @@ -704,7 +754,7 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 292 "vm.def" +#line 342 "vm.def" PREPARE_STACK (); INTERP_BASIC_BOOL (op, op1, op2, !=); EXPORT_REGS (); @@ -712,7 +762,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 716 "vm.inl" +#line 766 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -735,7 +785,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 739 "vm.inl" +#line 789 "vm.inl" } while (0); /* TIMES_SPECIAL ( op1 op2 -- op ) */ @@ -746,7 +796,7 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 301 "vm.def" +#line 351 "vm.def" INTERP_BASIC_OP (op, op1, op2, iarg1 = mul_with_check (iarg1, iarg2), farg1 * farg2); PREPARE_STACK (); EXPORT_REGS (); @@ -754,7 +804,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 758 "vm.inl" +#line 808 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -777,7 +827,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 781 "vm.inl" +#line 831 "vm.inl" } while (0); /* DIVIDE_SPECIAL ( op1 op2 -- op ) */ @@ -788,7 +838,7 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 310 "vm.def" +#line 360 "vm.def" if COMMON (!ARE_INTS (op1, op2) && (IS_INT (op1) || OOP_CLASS(op1) == _gst_floatd_class) && (IS_INT (op2) || OOP_CLASS(op2) == _gst_floatd_class)) @@ -811,7 +861,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 815 "vm.inl" +#line 865 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -834,7 +884,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 838 "vm.inl" +#line 888 "vm.inl" } while (0); /* REMAINDER_SPECIAL ( op1 op2 -- op ) */ @@ -845,7 +895,7 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 334 "vm.def" +#line 384 "vm.def" PREPARE_STACK (); EXPORT_REGS(); if (IS_INT (op1) && IS_INT (op2) @@ -859,7 +909,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 863 "vm.inl" +#line 913 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -882,7 +932,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 886 "vm.inl" +#line 936 "vm.inl" } while (0); /* BIT_XOR_SPECIAL ( op1 op2 -- op ) */ @@ -893,7 +943,7 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 349 "vm.def" +#line 399 "vm.def" if COMMON (ARE_INTS (op1, op2)) { op = FROM_INT (TO_INT (op1) ^ TO_INT (op2)); @@ -906,7 +956,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 910 "vm.inl" +#line 960 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -929,7 +979,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 933 "vm.inl" +#line 983 "vm.inl" } while (0); /* BIT_SHIFT_SPECIAL ( op1 op2 -- op ) */ @@ -940,7 +990,7 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 363 "vm.def" +#line 413 "vm.def" if COMMON (IS_INT (op2) && IS_INT (op1)) { intptr_t iarg1, iarg2; @@ -972,7 +1022,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 976 "vm.inl" +#line 1026 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -995,7 +1045,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 999 "vm.inl" +#line 1049 "vm.inl" } while (0); /* INTEGER_DIVIDE_SPECIAL ( op1 op2 | -- op1 op2 | ) */ @@ -1005,7 +1055,7 @@ } while (0) #define op1 _stack1 #define op2 _stack0 -#line 396 "vm.def" +#line 446 "vm.def" PREPARE_STACK (); EXPORT_REGS(); if (IS_INT (op1) && IS_INT (op2) @@ -1019,7 +1069,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 1023 "vm.inl" +#line 1073 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -1039,7 +1089,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1043 "vm.inl" +#line 1093 "vm.inl" } while (0); /* BIT_AND_SPECIAL ( op1 op2 -- op ) */ @@ -1050,7 +1100,7 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 411 "vm.def" +#line 461 "vm.def" if COMMON (ARE_INTS (op1, op2)) { op = FROM_INT (TO_INT (op1) & TO_INT (op2)); @@ -1063,7 +1113,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 1067 "vm.inl" +#line 1117 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -1086,7 +1136,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1090 "vm.inl" +#line 1140 "vm.inl" } while (0); /* BIT_OR_SPECIAL ( op1 op2 -- op ) */ @@ -1097,7 +1147,7 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 425 "vm.def" +#line 475 "vm.def" if COMMON (ARE_INTS (op1, op2)) { op = FROM_INT (TO_INT (op1) | TO_INT (op2)); @@ -1110,7 +1160,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 1114 "vm.inl" +#line 1164 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -1133,7 +1183,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1137 "vm.inl" +#line 1187 "vm.inl" } while (0); /* AT_SPECIAL ( rec idx -- val ) */ @@ -1144,7 +1194,7 @@ #define rec _stack1 #define idx _stack0 #define val _stack1 -#line 439 "vm.def" +#line 489 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -1176,7 +1226,7 @@ } FETCH (dispatch_vec); -#line 1180 "vm.inl" +#line 1230 "vm.inl" #undef PREPARE_STACK #undef rec #undef idx @@ -1200,7 +1250,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1204 "vm.inl" +#line 1254 "vm.inl" } while (0); /* AT_PUT_SPECIAL ( rec idx val -- res ) */ @@ -1212,7 +1262,7 @@ #define idx _stack1 #define val _stack0 #define res _stack2 -#line 472 "vm.def" +#line 522 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -1244,7 +1294,7 @@ } FETCH (dispatch_vec); -#line 1248 "vm.inl" +#line 1298 "vm.inl" #undef PREPARE_STACK #undef rec #undef idx @@ -1267,7 +1317,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1271 "vm.inl" +#line 1321 "vm.inl" } while (0); /* SIZE_SPECIAL ( rec -- val ) */ @@ -1277,7 +1327,7 @@ } while (0) #define rec _stack0 #define val _stack0 -#line 505 "vm.def" +#line 555 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -1309,7 +1359,7 @@ } FETCH (dispatch_vec); -#line 1313 "vm.inl" +#line 1363 "vm.inl" #undef PREPARE_STACK #undef rec #undef val @@ -1329,7 +1379,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1333 "vm.inl" +#line 1383 "vm.inl" } while (0); /* CLASS_SPECIAL ( rec -- val ) */ @@ -1339,7 +1389,7 @@ } while (0) #define rec _stack0 #define val _stack0 -#line 538 "vm.def" +#line 588 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -1371,7 +1421,7 @@ } FETCH (dispatch_vec); -#line 1375 "vm.inl" +#line 1425 "vm.inl" #undef PREPARE_STACK #undef rec #undef val @@ -1391,7 +1441,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1395 "vm.inl" +#line 1445 "vm.inl" } while (0); /* IS_NIL_SPECIAL ( rec -- val ) */ @@ -1399,11 +1449,11 @@ { #define rec _stack0 #define val _stack0 -#line 571 "vm.def" +#line 621 "vm.def" /* DO_JUMP_LOOKAHEAD (rec == _gst_nil_oop); */ val = rec == _gst_nil_oop ? _gst_true_oop : _gst_false_oop; -#line 1407 "vm.inl" +#line 1457 "vm.inl" #undef rec #undef val } @@ -1422,7 +1472,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1426 "vm.inl" +#line 1476 "vm.inl" } while (0); /* NOT_NIL_SPECIAL ( rec -- val ) */ @@ -1430,11 +1480,11 @@ { #define rec _stack0 #define val _stack0 -#line 576 "vm.def" +#line 626 "vm.def" /* DO_JUMP_LOOKAHEAD (rec != _gst_nil_oop); */ val = rec != _gst_nil_oop ? _gst_true_oop : _gst_false_oop; -#line 1438 "vm.inl" +#line 1488 "vm.inl" #undef rec #undef val } @@ -1453,7 +1503,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1457 "vm.inl" +#line 1507 "vm.inl" } while (0); /* VALUE_SPECIAL ( rec | -- rec | ) */ @@ -1462,7 +1512,7 @@ #define PREPARE_STACK() do { \ } while (0) #define rec _stack0 -#line 581 "vm.def" +#line 631 "vm.def" PREPARE_STACK (); EXPORT_REGS (); if (UNCOMMON (IS_INT (rec)) @@ -1473,7 +1523,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 1477 "vm.inl" +#line 1527 "vm.inl" #undef PREPARE_STACK #undef rec } @@ -1492,7 +1542,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1496 "vm.inl" +#line 1546 "vm.inl" } while (0); /* VALUE_COLON_SPECIAL ( rec blk_arg | -- rec blk_arg | ) */ @@ -1502,7 +1552,7 @@ } while (0) #define rec _stack1 #define blk_arg _stack0 -#line 593 "vm.def" +#line 643 "vm.def" PREPARE_STACK (); EXPORT_REGS (); if (UNCOMMON (IS_INT (rec)) @@ -1513,7 +1563,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 1517 "vm.inl" +#line 1567 "vm.inl" #undef PREPARE_STACK #undef rec #undef blk_arg @@ -1533,7 +1583,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1537 "vm.inl" +#line 1587 "vm.inl" } while (0); /* SAME_OBJECT_SPECIAL ( op1 op2 -- op ) */ @@ -1542,11 +1592,11 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 605 "vm.def" +#line 655 "vm.def" /* DO_JUMP_LOOKAHEAD (op1 == op2); */ op = (op1 == op2) ? _gst_true_oop : _gst_false_oop; -#line 1550 "vm.inl" +#line 1600 "vm.inl" #undef op1 #undef op2 #undef op @@ -1567,7 +1617,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1571 "vm.inl" +#line 1621 "vm.inl" } while (0); /* JAVA_AS_INT_SPECIAL ( rec -- val ) */ @@ -1577,7 +1627,7 @@ } while (0) #define rec _stack0 #define val _stack0 -#line 610 "vm.def" +#line 660 "vm.def" if COMMON (IS_INT (rec) || is_c_int_32 (rec)) { val = rec; @@ -1590,7 +1640,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 1594 "vm.inl" +#line 1644 "vm.inl" #undef PREPARE_STACK #undef rec #undef val @@ -1610,7 +1660,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1614 "vm.inl" +#line 1664 "vm.inl" } while (0); /* JAVA_AS_LONG_SPECIAL ( rec -- val ) */ @@ -1620,7 +1670,7 @@ } while (0) #define rec _stack0 #define val _stack0 -#line 624 "vm.def" +#line 674 "vm.def" if COMMON (IS_INT (rec) || is_c_int_64 (rec)) { val = rec; @@ -1633,7 +1683,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 1637 "vm.inl" +#line 1687 "vm.inl" #undef PREPARE_STACK #undef rec #undef val @@ -1651,7 +1701,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1655 "vm.inl" +#line 1705 "vm.inl" } while (0); /* INVALID ( -- ) */ @@ -1661,7 +1711,7 @@ #line 225 "vm.def" _gst_errorf ("Invalid bytecode %d(%d) found!", ip[-1], arg); -#line 1665 "vm.inl" +#line 1715 "vm.inl" } while (0); } @@ -1675,7 +1725,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1679 "vm.inl" +#line 1729 "vm.inl" } while (0); /* SEND ( -- ) */ @@ -1685,14 +1735,14 @@ int n = arg & 255; #define PREPARE_STACK() do { \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 1696 "vm.inl" +#line 1746 "vm.inl" #undef PREPARE_STACK } while (0); @@ -1707,7 +1757,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1711 "vm.inl" +#line 1761 "vm.inl" } while (0); /* SEND_SUPER ( -- ) */ @@ -1717,7 +1767,7 @@ int n = arg & 255; #define PREPARE_STACK() do { \ } while (0) -#line 646 "vm.def" +#line 696 "vm.def" OOP classOOP; PREPARE_STACK (); classOOP = POP_OOP (); @@ -1727,7 +1777,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 1731 "vm.inl" +#line 1781 "vm.inl" #undef PREPARE_STACK } while (0); @@ -1742,7 +1792,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1746 "vm.inl" +#line 1796 "vm.inl" } while (0); /* SEND_IMMEDIATE ( -- ) */ @@ -1751,7 +1801,7 @@ int n = arg; #define PREPARE_STACK() do { \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -1759,7 +1809,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 1763 "vm.inl" +#line 1813 "vm.inl" #undef PREPARE_STACK } while (0); @@ -1774,7 +1824,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1778 "vm.inl" +#line 1828 "vm.inl" } while (0); /* SEND_SUPER_IMMEDIATE ( -- ) */ @@ -1783,7 +1833,7 @@ int n = arg; #define PREPARE_STACK() do { \ } while (0) -#line 666 "vm.def" +#line 716 "vm.def" OOP classOOP; const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); @@ -1794,7 +1844,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 1798 "vm.inl" +#line 1848 "vm.inl" #undef PREPARE_STACK } while (0); @@ -1810,7 +1860,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1814 "vm.inl" +#line 1864 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -1818,10 +1868,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 1825 "vm.inl" +#line 1875 "vm.inl" #undef tos } while (0); @@ -1838,7 +1888,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1842 "vm.inl" +#line 1892 "vm.inl" } while (0); /* PUSH_OUTER_TEMP ( -- tos ) */ @@ -1847,7 +1897,7 @@ int n = arg >> 8; int scopes = arg & 255; #define tos _extra1 -#line 682 "vm.def" +#line 732 "vm.def" OOP contextOOP; gst_block_context context; @@ -1861,7 +1911,7 @@ tos = context->contextStack[n]; -#line 1865 "vm.inl" +#line 1915 "vm.inl" #undef tos } while (0); @@ -1878,7 +1928,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1882 "vm.inl" +#line 1932 "vm.inl" } while (0); /* PUSH_LIT_VARIABLE ( -- tos ) */ @@ -1888,7 +1938,7 @@ #define PREPARE_STACK() do { \ } while (0) #define tos _extra1 -#line 697 "vm.def" +#line 747 "vm.def" tos = METHOD_LITERAL (n); if (UNCOMMON (IS_INT (tos)) || UNCOMMON (!is_a_kind_of (OOP_CLASS (tos), _gst_association_class))) @@ -1903,7 +1953,7 @@ else tos = ASSOCIATION_VALUE (tos); -#line 1907 "vm.inl" +#line 1957 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -1921,7 +1971,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1925 "vm.inl" +#line 1975 "vm.inl" } while (0); /* PUSH_RECEIVER_VARIABLE ( -- tos ) */ @@ -1929,10 +1979,10 @@ { int n = arg; #define tos _extra1 -#line 713 "vm.def" +#line 763 "vm.def" tos = RECEIVER_VARIABLE (n); -#line 1936 "vm.inl" +#line 1986 "vm.inl" #undef tos } while (0); @@ -1950,7 +2000,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1954 "vm.inl" +#line 2004 "vm.inl" } while (0); /* STORE_TEMPORARY_VARIABLE ( tos | -- tos | ) */ @@ -1958,10 +2008,10 @@ { int n = arg; #define tos _stack0 -#line 717 "vm.def" +#line 767 "vm.def" STORE_METHOD_TEMPORARY (n, tos); -#line 1965 "vm.inl" +#line 2015 "vm.inl" #undef tos } while (0); @@ -1978,7 +2028,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 1982 "vm.inl" +#line 2032 "vm.inl" } while (0); /* STORE_OUTER_TEMP ( tos | -- tos | ) */ @@ -1987,7 +2037,7 @@ int n = arg >> 8; int scopes = arg & 255; #define tos _stack0 -#line 721 "vm.def" +#line 771 "vm.def" OOP contextOOP; gst_block_context context; @@ -2001,7 +2051,7 @@ context->contextStack[n] = tos; -#line 2005 "vm.inl" +#line 2055 "vm.inl" #undef tos } while (0); @@ -2018,7 +2068,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2022 "vm.inl" +#line 2072 "vm.inl" } while (0); /* STORE_LIT_VARIABLE ( tos | -- tos | ) */ @@ -2028,7 +2078,7 @@ #define PREPARE_STACK() do { \ } while (0) #define tos _stack0 -#line 736 "vm.def" +#line 786 "vm.def" OOP var = METHOD_LITERAL (n), value = tos; if (UNCOMMON (IS_INT (var)) || UNCOMMON (!is_a_kind_of (OOP_CLASS (var), _gst_association_class))) @@ -2044,7 +2094,7 @@ else SET_ASSOCIATION_VALUE (var, value); -#line 2048 "vm.inl" +#line 2098 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -2062,7 +2112,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2066 "vm.inl" +#line 2116 "vm.inl" } while (0); /* STORE_RECEIVER_VARIABLE ( tos | -- tos | ) */ @@ -2070,10 +2120,10 @@ { int n = arg; #define tos _stack0 -#line 753 "vm.def" +#line 803 "vm.def" STORE_RECEIVER_VARIABLE (n, tos); -#line 2077 "vm.inl" +#line 2127 "vm.inl" #undef tos } while (0); @@ -2087,19 +2137,19 @@ #line 212 "vm.def" LOCAL_COUNTER++; -#line 2091 "vm.inl" +#line 2141 "vm.inl" } while (0); /* JUMP_BACK ( -- ) */ do { int n = arg; -#line 757 "vm.def" +#line 807 "vm.def" ip += 2; ip -= n; FETCH (dispatch_vec); -#line 2103 "vm.inl" +#line 2153 "vm.inl" } while (0); } @@ -2112,19 +2162,19 @@ #line 212 "vm.def" LOCAL_COUNTER++; -#line 2116 "vm.inl" +#line 2166 "vm.inl" } while (0); /* JUMP ( -- ) */ do { int n = arg; -#line 763 "vm.def" +#line 813 "vm.def" ip += 2; ip += n; FETCH (dispatch_vec); -#line 2128 "vm.inl" +#line 2178 "vm.inl" } while (0); } @@ -2140,7 +2190,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2144 "vm.inl" +#line 2194 "vm.inl" } while (0); /* POP_JUMP_TRUE ( tos -- ) */ @@ -2150,7 +2200,7 @@ #define PREPARE_STACK() do { \ } while (0) #define tos _stack0 -#line 788 "vm.def" +#line 838 "vm.def" if UNCOMMON (tos == _gst_true_oop) { PREPARE_STACK (); @@ -2168,7 +2218,7 @@ FETCH (dispatch_vec); } -#line 2172 "vm.inl" +#line 2222 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -2187,7 +2237,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2191 "vm.inl" +#line 2241 "vm.inl" } while (0); /* POP_JUMP_FALSE ( tos -- ) */ @@ -2197,7 +2247,7 @@ #define PREPARE_STACK() do { \ } while (0) #define tos _stack0 -#line 769 "vm.def" +#line 819 "vm.def" if UNCOMMON (tos == _gst_false_oop) { PREPARE_STACK (); @@ -2215,7 +2265,7 @@ FETCH (dispatch_vec); } -#line 2219 "vm.inl" +#line 2269 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -2233,7 +2283,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2237 "vm.inl" +#line 2287 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -2241,10 +2291,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 2248 "vm.inl" +#line 2298 "vm.inl" #undef tos } while (0); @@ -2261,7 +2311,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2265 "vm.inl" +#line 2315 "vm.inl" } while (0); /* PUSH_SPECIAL ( -- tos ) */ @@ -2269,10 +2319,10 @@ { int n = arg; #define tos _extra1 -#line 811 "vm.def" +#line 861 "vm.def" tos = _gst_nil_oop + (n - NIL_INDEX); -#line 2276 "vm.inl" +#line 2326 "vm.inl" #undef tos } while (0); @@ -2289,7 +2339,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2293 "vm.inl" +#line 2343 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -2297,10 +2347,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 2304 "vm.inl" +#line 2354 "vm.inl" #undef tos } while (0); @@ -2319,7 +2369,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2323 "vm.inl" +#line 2373 "vm.inl" } while (0); /* POP_INTO_NEW_STACKTOP ( obj | val -- obj | ) */ @@ -2328,10 +2378,10 @@ int n = arg; #define obj _stack1 #define val _stack0 -#line 819 "vm.def" +#line 869 "vm.def" STORE_INSTANCE_VARIABLE (obj, n, val); -#line 2335 "vm.inl" +#line 2385 "vm.inl" #undef obj #undef val } @@ -2350,16 +2400,16 @@ PREFETCH; LOCAL_COUNTER++; -#line 2354 "vm.inl" +#line 2404 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 2363 "vm.inl" +#line 2413 "vm.inl" #undef tos } while (0); @@ -2377,7 +2427,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2381 "vm.inl" +#line 2431 "vm.inl" } while (0); /* MAKE_DIRTY_BLOCK ( block -- closure ) */ @@ -2385,12 +2435,12 @@ { #define block _stack0 #define closure _stack0 -#line 826 "vm.def" +#line 876 "vm.def" EXPORT_REGS (); closure = _gst_make_block_closure (block); IMPORT_REGS(); -#line 2394 "vm.inl" +#line 2444 "vm.inl" #undef block #undef closure } @@ -2409,14 +2459,14 @@ PREFETCH; LOCAL_COUNTER++; -#line 2413 "vm.inl" +#line 2463 "vm.inl" } while (0); /* RETURN_METHOD_STACK_TOP ( val | -- val | ) */ do { #define val _stack0 -#line 832 "vm.def" +#line 882 "vm.def" EXPORT_REGS (); if UNCOMMON (!unwind_method ()) { @@ -2428,7 +2478,7 @@ SET_STACKTOP (val); FETCH (dispatch_vec); -#line 2432 "vm.inl" +#line 2482 "vm.inl" #undef val } while (0); @@ -2445,21 +2495,21 @@ PREFETCH; LOCAL_COUNTER++; -#line 2449 "vm.inl" +#line 2499 "vm.inl" } while (0); /* RETURN_CONTEXT_STACK_TOP ( val | -- val | ) */ do { #define val _stack0 -#line 845 "vm.def" +#line 895 "vm.def" EXPORT_REGS (); unwind_context (); IMPORT_REGS (); SET_STACKTOP (val); FETCH (dispatch_vec); -#line 2463 "vm.inl" +#line 2513 "vm.inl" #undef val } while (0); @@ -2477,7 +2527,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2481 "vm.inl" +#line 2531 "vm.inl" } while (0); /* DUP_STACK_TOP ( tos | -- tos | tos2 ) */ @@ -2485,10 +2535,10 @@ { #define tos _stack0 #define tos2 _extra1 -#line 853 "vm.def" +#line 903 "vm.def" tos2 = tos; -#line 2492 "vm.inl" +#line 2542 "vm.inl" #undef tos #undef tos2 } @@ -2507,14 +2557,14 @@ PREFETCH; LOCAL_COUNTER++; -#line 2511 "vm.inl" +#line 2561 "vm.inl" } while (0); /* EXIT_INTERPRETER ( val | -- val | ) */ do { #define val _stack0 -#line 857 "vm.def" +#line 907 "vm.def" /* This fixes a very rare condition, but it can happen: GC can happen because send_message_internal allocates a context while the interpreter is checking last_primitive to fill @@ -2538,7 +2588,7 @@ } FETCH (dispatch_vec); -#line 2542 "vm.inl" +#line 2592 "vm.inl" #undef val } while (0); @@ -2553,15 +2603,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 2557 "vm.inl" +#line 2607 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 2565 "vm.inl" +#line 2615 "vm.inl" } while (0); } @@ -2576,7 +2626,7 @@ arg = (arg << 8) | GET_ARG; NEXT_BC_NO_ARG (normal_byte_codes); -#line 2580 "vm.inl" +#line 2630 "vm.inl" } while (0); } @@ -2591,17 +2641,17 @@ PREFETCH; LOCAL_COUNTER++; -#line 2595 "vm.inl" +#line 2645 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 2605 "vm.inl" +#line 2655 "vm.inl" #undef tos } while (0); @@ -2617,7 +2667,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2621 "vm.inl" +#line 2671 "vm.inl" } while (0); /* INVALID ( -- ) */ @@ -2627,7 +2677,7 @@ #line 225 "vm.def" _gst_errorf ("Invalid bytecode %d(%d) found!", ip[-1], arg); -#line 2631 "vm.inl" +#line 2681 "vm.inl" } while (0); } @@ -2641,7 +2691,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2645 "vm.inl" +#line 2695 "vm.inl" } while (0); /* INVALID ( -- ) */ @@ -2651,7 +2701,7 @@ #line 225 "vm.def" _gst_errorf ("Invalid bytecode %d(%d) found!", ip[-1], arg); -#line 2655 "vm.inl" +#line 2705 "vm.inl" } while (0); } @@ -2665,7 +2715,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2669 "vm.inl" +#line 2719 "vm.inl" } while (0); /* INVALID ( -- ) */ @@ -2675,7 +2725,7 @@ #line 225 "vm.def" _gst_errorf ("Invalid bytecode %d(%d) found!", ip[-1], arg); -#line 2679 "vm.inl" +#line 2729 "vm.inl" } while (0); } @@ -2689,7 +2739,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2693 "vm.inl" +#line 2743 "vm.inl" } while (0); /* INVALID ( -- ) */ @@ -2699,7 +2749,7 @@ #line 225 "vm.def" _gst_errorf ("Invalid bytecode %d(%d) found!", ip[-1], arg); -#line 2703 "vm.inl" +#line 2753 "vm.inl" } while (0); } @@ -2713,7 +2763,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2717 "vm.inl" +#line 2767 "vm.inl" } while (0); /* INVALID ( -- ) */ @@ -2723,7 +2773,7 @@ #line 225 "vm.def" _gst_errorf ("Invalid bytecode %d(%d) found!", ip[-1], arg); -#line 2727 "vm.inl" +#line 2777 "vm.inl" } while (0); } @@ -2737,7 +2787,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2741 "vm.inl" +#line 2791 "vm.inl" } while (0); /* INVALID ( -- ) */ @@ -2747,7 +2797,7 @@ #line 225 "vm.def" _gst_errorf ("Invalid bytecode %d(%d) found!", ip[-1], arg); -#line 2751 "vm.inl" +#line 2801 "vm.inl" } while (0); } @@ -2761,7 +2811,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2765 "vm.inl" +#line 2815 "vm.inl" } while (0); /* INVALID ( -- ) */ @@ -2771,7 +2821,7 @@ #line 225 "vm.def" _gst_errorf ("Invalid bytecode %d(%d) found!", ip[-1], arg); -#line 2775 "vm.inl" +#line 2825 "vm.inl" } while (0); } @@ -2785,7 +2835,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2789 "vm.inl" +#line 2839 "vm.inl" } while (0); /* SEND ( -- ) */ @@ -2795,14 +2845,14 @@ int n = 1; #define PREPARE_STACK() do { \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 2806 "vm.inl" +#line 2856 "vm.inl" #undef PREPARE_STACK } while (0); @@ -2817,7 +2867,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 2821 "vm.inl" +#line 2871 "vm.inl" } while (0); /* SEND ( -- ) */ @@ -2827,14 +2877,14 @@ int n = 0; #define PREPARE_STACK() do { \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 2838 "vm.inl" +#line 2888 "vm.inl" #undef PREPARE_STACK } while (0); @@ -2850,17 +2900,17 @@ PREFETCH; LOCAL_COUNTER++; -#line 2854 "vm.inl" +#line 2904 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 2864 "vm.inl" +#line 2914 "vm.inl" #undef tos } while (0); @@ -2868,14 +2918,14 @@ do { #define val _extra1 -#line 845 "vm.def" +#line 895 "vm.def" EXPORT_REGS (); unwind_context (); IMPORT_REGS (); SET_STACKTOP (val); FETCH (dispatch_vec); -#line 2879 "vm.inl" +#line 2929 "vm.inl" #undef val } while (0); @@ -2892,25 +2942,25 @@ PREFETCH; LOCAL_COUNTER++; -#line 2896 "vm.inl" +#line 2946 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 2904 "vm.inl" +#line 2954 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 2914 "vm.inl" +#line 2964 "vm.inl" #undef tos } while (0); @@ -2928,24 +2978,24 @@ PREFETCH; LOCAL_COUNTER++; -#line 2932 "vm.inl" +#line 2982 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 2940 "vm.inl" +#line 2990 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 2949 "vm.inl" +#line 2999 "vm.inl" #undef tos } while (0); @@ -2962,15 +3012,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 2966 "vm.inl" +#line 3016 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 2974 "vm.inl" +#line 3024 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -2978,10 +3028,10 @@ { int n = 0; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 2985 "vm.inl" +#line 3035 "vm.inl" #undef tos } while (0); @@ -2998,7 +3048,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3002 "vm.inl" +#line 3052 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -3006,10 +3056,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 3013 "vm.inl" +#line 3063 "vm.inl" #undef tos } while (0); @@ -3018,12 +3068,12 @@ { #define block _extra1 #define closure _extra1 -#line 826 "vm.def" +#line 876 "vm.def" EXPORT_REGS (); closure = _gst_make_block_closure (block); IMPORT_REGS(); -#line 3027 "vm.inl" +#line 3077 "vm.inl" #undef block #undef closure } @@ -3040,7 +3090,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3044 "vm.inl" +#line 3094 "vm.inl" } while (0); /* SEND ( -- ) */ @@ -3050,14 +3100,14 @@ int n = 2; #define PREPARE_STACK() do { \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 3061 "vm.inl" +#line 3111 "vm.inl" #undef PREPARE_STACK } while (0); @@ -3075,16 +3125,16 @@ PREFETCH; LOCAL_COUNTER++; -#line 3079 "vm.inl" +#line 3129 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 3088 "vm.inl" +#line 3138 "vm.inl" #undef tos } while (0); @@ -3093,10 +3143,10 @@ { #define tos _stack1 #define tos2 _stack0 -#line 853 "vm.def" +#line 903 "vm.def" tos2 = tos; -#line 3100 "vm.inl" +#line 3150 "vm.inl" #undef tos #undef tos2 } @@ -3114,7 +3164,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3118 "vm.inl" +#line 3168 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -3122,10 +3172,10 @@ { int n = 0; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 3129 "vm.inl" +#line 3179 "vm.inl" #undef tos } while (0); @@ -3136,7 +3186,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -3144,7 +3194,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 3148 "vm.inl" +#line 3198 "vm.inl" #undef PREPARE_STACK } while (0); @@ -3161,17 +3211,17 @@ PREFETCH; LOCAL_COUNTER++; -#line 3165 "vm.inl" +#line 3215 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 3175 "vm.inl" +#line 3225 "vm.inl" #undef tos } while (0); @@ -3183,14 +3233,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 3194 "vm.inl" +#line 3244 "vm.inl" #undef PREPARE_STACK } while (0); @@ -3207,7 +3257,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3211 "vm.inl" +#line 3261 "vm.inl" } while (0); /* PUSH_SPECIAL ( -- tos ) */ @@ -3215,10 +3265,10 @@ { int n = arg; #define tos _extra1 -#line 811 "vm.def" +#line 861 "vm.def" tos = _gst_nil_oop + (n - NIL_INDEX); -#line 3222 "vm.inl" +#line 3272 "vm.inl" #undef tos } while (0); @@ -3226,14 +3276,14 @@ do { #define val _extra1 -#line 845 "vm.def" +#line 895 "vm.def" EXPORT_REGS (); unwind_context (); IMPORT_REGS (); SET_STACKTOP (val); FETCH (dispatch_vec); -#line 3237 "vm.inl" +#line 3287 "vm.inl" #undef val } while (0); @@ -3250,17 +3300,17 @@ PREFETCH; LOCAL_COUNTER++; -#line 3254 "vm.inl" +#line 3304 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 3264 "vm.inl" +#line 3314 "vm.inl" #undef tos } while (0); @@ -3271,7 +3321,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -3279,7 +3329,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 3283 "vm.inl" +#line 3333 "vm.inl" #undef PREPARE_STACK } while (0); @@ -3296,7 +3346,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3300 "vm.inl" +#line 3350 "vm.inl" } while (0); /* PUSH_OUTER_TEMP ( -- tos ) */ @@ -3305,7 +3355,7 @@ int n = arg; int scopes = 1; #define tos _extra1 -#line 682 "vm.def" +#line 732 "vm.def" OOP contextOOP; gst_block_context context; @@ -3319,7 +3369,7 @@ tos = context->contextStack[n]; -#line 3323 "vm.inl" +#line 3373 "vm.inl" #undef tos } while (0); @@ -3337,7 +3387,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3341 "vm.inl" +#line 3391 "vm.inl" } while (0); /* STORE_TEMPORARY_VARIABLE ( tos | -- tos | ) */ @@ -3345,10 +3395,10 @@ { int n = arg; #define tos _stack0 -#line 717 "vm.def" +#line 767 "vm.def" STORE_METHOD_TEMPORARY (n, tos); -#line 3352 "vm.inl" +#line 3402 "vm.inl" #undef tos } while (0); @@ -3356,9 +3406,9 @@ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 3362 "vm.inl" +#line 3412 "vm.inl" #undef tos } while (0); @@ -3375,17 +3425,17 @@ PREFETCH; LOCAL_COUNTER++; -#line 3379 "vm.inl" +#line 3429 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 3389 "vm.inl" +#line 3439 "vm.inl" #undef tos } while (0); @@ -3394,10 +3444,10 @@ { int n = arg; #define tos _extra2 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 3401 "vm.inl" +#line 3451 "vm.inl" #undef tos } while (0); @@ -3417,7 +3467,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3421 "vm.inl" +#line 3471 "vm.inl" } while (0); /* STORE_RECEIVER_VARIABLE ( tos | -- tos | ) */ @@ -3425,10 +3475,10 @@ { int n = arg; #define tos _stack0 -#line 753 "vm.def" +#line 803 "vm.def" STORE_RECEIVER_VARIABLE (n, tos); -#line 3432 "vm.inl" +#line 3482 "vm.inl" #undef tos } while (0); @@ -3436,10 +3486,10 @@ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 3443 "vm.inl" +#line 3493 "vm.inl" #undef tos } while (0); @@ -3447,14 +3497,14 @@ do { #define val _extra1 -#line 845 "vm.def" +#line 895 "vm.def" EXPORT_REGS (); unwind_context (); IMPORT_REGS (); SET_STACKTOP (val); FETCH (dispatch_vec); -#line 3458 "vm.inl" +#line 3508 "vm.inl" #undef val } while (0); @@ -3473,7 +3523,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3477 "vm.inl" +#line 3527 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -3481,10 +3531,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 3488 "vm.inl" +#line 3538 "vm.inl" #undef tos } while (0); @@ -3498,14 +3548,39 @@ #define op2 _extra1 #define op _stack0 #line 229 "vm.def" - INTERP_BASIC_OP (op, op1, op2, iarg1 += iarg2, farg1 + farg2); + if COMMON (ARE_INTS(op1, op2)) + { + intptr_t iop1 = (intptr_t) op1; + intptr_t iop2 = ((intptr_t) op2) - 1; + intptr_t iresult = iop1 + iop2; + if (iresult < iop1) + { + if (iop2 < 0) + { + op = (OOP) iresult; + break; + } + } + else + { + if (iop2 >= 0) + { + op = (OOP) iresult; + break; + } + } + } + else if COMMON ((IS_INT (op1) || OOP_CLASS(op1) == _gst_floatd_class) + && (IS_INT (op2) || OOP_CLASS(op2) == _gst_floatd_class)) + RAW_FLOATD_OP(op, op1, op2, farg1 + farg2); + PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (_gst_builtin_selectors[PLUS_SPECIAL].symbol, 1); IMPORT_REGS (); FETCH (dispatch_vec); -#line 3509 "vm.inl" +#line 3584 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -3525,15 +3600,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 3529 "vm.inl" +#line 3604 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 3537 "vm.inl" +#line 3612 "vm.inl" } while (0); /* PUSH_LIT_VARIABLE ( -- tos ) */ @@ -3543,7 +3618,7 @@ #define PREPARE_STACK() do { \ } while (0) #define tos _extra1 -#line 697 "vm.def" +#line 747 "vm.def" tos = METHOD_LITERAL (n); if (UNCOMMON (IS_INT (tos)) || UNCOMMON (!is_a_kind_of (OOP_CLASS (tos), _gst_association_class))) @@ -3558,7 +3633,7 @@ else tos = ASSOCIATION_VALUE (tos); -#line 3562 "vm.inl" +#line 3637 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -3576,7 +3651,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3580 "vm.inl" +#line 3655 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -3584,10 +3659,10 @@ { int n = 0; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 3591 "vm.inl" +#line 3666 "vm.inl" #undef tos } while (0); @@ -3596,10 +3671,10 @@ { int n = arg; #define tos _extra2 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 3603 "vm.inl" +#line 3678 "vm.inl" #undef tos } while (0); @@ -3617,7 +3692,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3621 "vm.inl" +#line 3696 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -3625,10 +3700,10 @@ { int n = 0; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 3632 "vm.inl" +#line 3707 "vm.inl" #undef tos } while (0); @@ -3640,14 +3715,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 3651 "vm.inl" +#line 3726 "vm.inl" #undef PREPARE_STACK } while (0); @@ -3664,15 +3739,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 3668 "vm.inl" +#line 3743 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 3676 "vm.inl" +#line 3751 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -3680,10 +3755,10 @@ { int n = 1; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 3687 "vm.inl" +#line 3762 "vm.inl" #undef tos } while (0); @@ -3701,7 +3776,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3705 "vm.inl" +#line 3780 "vm.inl" } while (0); /* IS_NIL_SPECIAL ( rec -- val ) */ @@ -3709,11 +3784,11 @@ { #define rec _stack0 #define val _stack0 -#line 571 "vm.def" +#line 621 "vm.def" /* DO_JUMP_LOOKAHEAD (rec == _gst_nil_oop); */ val = rec == _gst_nil_oop ? _gst_true_oop : _gst_false_oop; -#line 3717 "vm.inl" +#line 3792 "vm.inl" #undef rec #undef val } @@ -3726,7 +3801,7 @@ STACK_AT (0) = _stack0; \ } while (0) #define tos _stack0 -#line 769 "vm.def" +#line 819 "vm.def" if UNCOMMON (tos == _gst_false_oop) { PREPARE_STACK (); @@ -3744,7 +3819,7 @@ FETCH (dispatch_vec); } -#line 3748 "vm.inl" +#line 3823 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -3764,7 +3839,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3768 "vm.inl" +#line 3843 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -3772,10 +3847,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 3779 "vm.inl" +#line 3854 "vm.inl" #undef tos } while (0); @@ -3788,7 +3863,7 @@ #define op1 _stack0 #define op2 _extra1 #define op _stack0 -#line 283 "vm.def" +#line 333 "vm.def" PREPARE_STACK (); INTERP_BASIC_BOOL (op, op1, op2, ==); EXPORT_REGS (); @@ -3796,7 +3871,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 3800 "vm.inl" +#line 3875 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -3815,7 +3890,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3819 "vm.inl" +#line 3894 "vm.inl" } while (0); /* SEND ( -- ) */ @@ -3825,14 +3900,14 @@ int n = 3; #define PREPARE_STACK() do { \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 3836 "vm.inl" +#line 3911 "vm.inl" #undef PREPARE_STACK } while (0); @@ -3848,7 +3923,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3852 "vm.inl" +#line 3927 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -3856,10 +3931,10 @@ { int n = 0; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 3863 "vm.inl" +#line 3938 "vm.inl" #undef tos } while (0); @@ -3871,14 +3946,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 3882 "vm.inl" +#line 3957 "vm.inl" #undef PREPARE_STACK } while (0); @@ -3895,25 +3970,25 @@ PREFETCH; LOCAL_COUNTER++; -#line 3899 "vm.inl" +#line 3974 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 3907 "vm.inl" +#line 3982 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 3917 "vm.inl" +#line 3992 "vm.inl" #undef tos } while (0); @@ -3925,14 +4000,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 3936 "vm.inl" +#line 4011 "vm.inl" #undef PREPARE_STACK } while (0); @@ -3949,7 +4024,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3953 "vm.inl" +#line 4028 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -3957,10 +4032,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 3964 "vm.inl" +#line 4039 "vm.inl" #undef tos } while (0); @@ -3968,14 +4043,14 @@ do { #define val _extra1 -#line 845 "vm.def" +#line 895 "vm.def" EXPORT_REGS (); unwind_context (); IMPORT_REGS (); SET_STACKTOP (val); FETCH (dispatch_vec); -#line 3979 "vm.inl" +#line 4054 "vm.inl" #undef val } while (0); @@ -3992,7 +4067,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 3996 "vm.inl" +#line 4071 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -4000,10 +4075,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 4007 "vm.inl" +#line 4082 "vm.inl" #undef tos } while (0); @@ -4014,7 +4089,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -4022,7 +4097,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 4026 "vm.inl" +#line 4101 "vm.inl" #undef PREPARE_STACK } while (0); @@ -4041,7 +4116,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 4045 "vm.inl" +#line 4120 "vm.inl" } while (0); /* SAME_OBJECT_SPECIAL ( op1 op2 -- op ) */ @@ -4050,11 +4125,11 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 605 "vm.def" +#line 655 "vm.def" /* DO_JUMP_LOOKAHEAD (op1 == op2); */ op = (op1 == op2) ? _gst_true_oop : _gst_false_oop; -#line 4058 "vm.inl" +#line 4133 "vm.inl" #undef op1 #undef op2 #undef op @@ -4069,7 +4144,7 @@ POP_N_OOPS (1); \ } while (0) #define tos _stack1 -#line 769 "vm.def" +#line 819 "vm.def" if UNCOMMON (tos == _gst_false_oop) { PREPARE_STACK (); @@ -4087,7 +4162,7 @@ FETCH (dispatch_vec); } -#line 4091 "vm.inl" +#line 4166 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -4105,7 +4180,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 4109 "vm.inl" +#line 4184 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -4113,10 +4188,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 4120 "vm.inl" +#line 4195 "vm.inl" #undef tos } while (0); @@ -4128,14 +4203,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 4139 "vm.inl" +#line 4214 "vm.inl" #undef PREPARE_STACK } while (0); @@ -4153,24 +4228,24 @@ PREFETCH; LOCAL_COUNTER++; -#line 4157 "vm.inl" +#line 4232 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 4165 "vm.inl" +#line 4240 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 4174 "vm.inl" +#line 4249 "vm.inl" #undef tos } while (0); @@ -4178,10 +4253,10 @@ do { #define tos _stack0 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 4185 "vm.inl" +#line 4260 "vm.inl" #undef tos } while (0); @@ -4200,16 +4275,16 @@ PREFETCH; LOCAL_COUNTER++; -#line 4204 "vm.inl" +#line 4279 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 4213 "vm.inl" +#line 4288 "vm.inl" #undef tos } while (0); @@ -4218,10 +4293,10 @@ { #define tos _stack1 #define tos2 _stack0 -#line 853 "vm.def" +#line 903 "vm.def" tos2 = tos; -#line 4225 "vm.inl" +#line 4300 "vm.inl" #undef tos #undef tos2 } @@ -4229,9 +4304,9 @@ /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 4235 "vm.inl" +#line 4310 "vm.inl" } while (0); STACK_AT (0) = _stack0; @@ -4247,7 +4322,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 4251 "vm.inl" +#line 4326 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -4255,10 +4330,10 @@ { int n = 0; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 4262 "vm.inl" +#line 4337 "vm.inl" #undef tos } while (0); @@ -4270,14 +4345,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 4281 "vm.inl" +#line 4356 "vm.inl" #undef PREPARE_STACK } while (0); @@ -4294,7 +4369,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 4298 "vm.inl" +#line 4373 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -4302,10 +4377,10 @@ { int n = 1; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 4309 "vm.inl" +#line 4384 "vm.inl" #undef tos } while (0); @@ -4316,7 +4391,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -4324,7 +4399,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 4328 "vm.inl" +#line 4403 "vm.inl" #undef PREPARE_STACK } while (0); @@ -4343,7 +4418,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 4347 "vm.inl" +#line 4422 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -4351,10 +4426,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 4358 "vm.inl" +#line 4433 "vm.inl" #undef tos } while (0); @@ -4367,7 +4442,7 @@ #define op1 _stack0 #define op2 _extra1 #define op _stack0 -#line 283 "vm.def" +#line 333 "vm.def" PREPARE_STACK (); INTERP_BASIC_BOOL (op, op1, op2, ==); EXPORT_REGS (); @@ -4375,7 +4450,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 4379 "vm.inl" +#line 4454 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -4397,7 +4472,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 4401 "vm.inl" +#line 4476 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -4405,10 +4480,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 4412 "vm.inl" +#line 4487 "vm.inl" #undef tos } while (0); @@ -4421,15 +4496,40 @@ #define op1 _stack0 #define op2 _extra1 #define op _stack0 -#line 238 "vm.def" - INTERP_BASIC_OP (op, op1, op2, iarg1 -= iarg2, farg1 - farg2); +#line 263 "vm.def" + if COMMON (ARE_INTS(op1, op2)) + { + intptr_t iop1 = (intptr_t) op1; + intptr_t iop2 = ((intptr_t) op2) - 1; + intptr_t iresult = iop1 - iop2; + if (iresult < iop1) + { + if (iop2 >= 0) + { + op = (OOP) iresult; + break; + } + } + else + { + if (iop2 < 0) + { + op = (OOP) iresult; + break; + } + } + } + else if COMMON ((IS_INT (op1) || OOP_CLASS(op1) == _gst_floatd_class) + && (IS_INT (op2) || OOP_CLASS(op2) == _gst_floatd_class)) + RAW_FLOATD_OP(op, op1, op2, farg1 - farg2); + PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (_gst_builtin_selectors[MINUS_SPECIAL].symbol, 1); IMPORT_REGS (); FETCH (dispatch_vec); -#line 4433 "vm.inl" +#line 4533 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -4451,7 +4551,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 4455 "vm.inl" +#line 4555 "vm.inl" } while (0); /* DUP_STACK_TOP ( tos | -- tos | tos2 ) */ @@ -4459,10 +4559,10 @@ { #define tos _stack0 #define tos2 _extra1 -#line 853 "vm.def" +#line 903 "vm.def" tos2 = tos; -#line 4466 "vm.inl" +#line 4566 "vm.inl" #undef tos #undef tos2 } @@ -4475,7 +4575,7 @@ PUSH_OOP (_extra1); \ } while (0) #define tos _extra1 -#line 769 "vm.def" +#line 819 "vm.def" if UNCOMMON (tos == _gst_false_oop) { PREPARE_STACK (); @@ -4493,7 +4593,7 @@ FETCH (dispatch_vec); } -#line 4497 "vm.inl" +#line 4597 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -4511,25 +4611,25 @@ PREFETCH; LOCAL_COUNTER++; -#line 4515 "vm.inl" +#line 4615 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 4524 "vm.inl" +#line 4624 "vm.inl" #undef tos } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 4533 "vm.inl" +#line 4633 "vm.inl" } while (0); POP_N_OOPS (1); @@ -4545,7 +4645,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 4549 "vm.inl" +#line 4649 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -4553,10 +4653,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 4560 "vm.inl" +#line 4660 "vm.inl" #undef tos } while (0); @@ -4567,7 +4667,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -4575,7 +4675,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 4579 "vm.inl" +#line 4679 "vm.inl" #undef PREPARE_STACK } while (0); @@ -4592,7 +4692,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 4596 "vm.inl" +#line 4696 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -4600,10 +4700,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 4607 "vm.inl" +#line 4707 "vm.inl" #undef tos } while (0); @@ -4615,7 +4715,7 @@ } while (0) #define rec _extra1 #define val _extra1 -#line 505 "vm.def" +#line 555 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -4647,7 +4747,7 @@ } FETCH (dispatch_vec); -#line 4651 "vm.inl" +#line 4751 "vm.inl" #undef PREPARE_STACK #undef rec #undef val @@ -4666,17 +4766,17 @@ PREFETCH; LOCAL_COUNTER++; -#line 4670 "vm.inl" +#line 4770 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 4680 "vm.inl" +#line 4780 "vm.inl" #undef tos } while (0); @@ -4688,14 +4788,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 4699 "vm.inl" +#line 4799 "vm.inl" #undef PREPARE_STACK } while (0); @@ -4712,15 +4812,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 4716 "vm.inl" +#line 4816 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 4724 "vm.inl" +#line 4824 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -4728,10 +4828,10 @@ { int n = 2; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 4735 "vm.inl" +#line 4835 "vm.inl" #undef tos } while (0); @@ -4749,16 +4849,16 @@ PREFETCH; LOCAL_COUNTER++; -#line 4753 "vm.inl" +#line 4853 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 4762 "vm.inl" +#line 4862 "vm.inl" #undef tos } while (0); @@ -4769,7 +4869,7 @@ #define PREPARE_STACK() do { \ POP_N_OOPS (1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -4777,7 +4877,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 4781 "vm.inl" +#line 4881 "vm.inl" #undef PREPARE_STACK } while (0); @@ -4794,7 +4894,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 4798 "vm.inl" +#line 4898 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -4802,10 +4902,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 4809 "vm.inl" +#line 4909 "vm.inl" #undef tos } while (0); @@ -4814,10 +4914,10 @@ { int n = 1; #define tos _extra2 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 4821 "vm.inl" +#line 4921 "vm.inl" #undef tos } while (0); @@ -4832,14 +4932,39 @@ #define op2 _extra2 #define op _extra1 #line 229 "vm.def" - INTERP_BASIC_OP (op, op1, op2, iarg1 += iarg2, farg1 + farg2); + if COMMON (ARE_INTS(op1, op2)) + { + intptr_t iop1 = (intptr_t) op1; + intptr_t iop2 = ((intptr_t) op2) - 1; + intptr_t iresult = iop1 + iop2; + if (iresult < iop1) + { + if (iop2 < 0) + { + op = (OOP) iresult; + break; + } + } + else + { + if (iop2 >= 0) + { + op = (OOP) iresult; + break; + } + } + } + else if COMMON ((IS_INT (op1) || OOP_CLASS(op1) == _gst_floatd_class) + && (IS_INT (op2) || OOP_CLASS(op2) == _gst_floatd_class)) + RAW_FLOATD_OP(op, op1, op2, farg1 + farg2); + PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (_gst_builtin_selectors[PLUS_SPECIAL].symbol, 1); IMPORT_REGS (); FETCH (dispatch_vec); -#line 4843 "vm.inl" +#line 4968 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -4859,15 +4984,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 4863 "vm.inl" +#line 4988 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 4871 "vm.inl" +#line 4996 "vm.inl" } while (0); /* PUSH_RECEIVER_VARIABLE ( -- tos ) */ @@ -4875,10 +5000,10 @@ { int n = 0; #define tos _extra1 -#line 713 "vm.def" +#line 763 "vm.def" tos = RECEIVER_VARIABLE (n); -#line 4882 "vm.inl" +#line 5007 "vm.inl" #undef tos } while (0); @@ -4895,7 +5020,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 4899 "vm.inl" +#line 5024 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -4903,10 +5028,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 4910 "vm.inl" +#line 5035 "vm.inl" #undef tos } while (0); @@ -4917,7 +5042,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -4925,7 +5050,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 4929 "vm.inl" +#line 5054 "vm.inl" #undef PREPARE_STACK } while (0); @@ -4944,7 +5069,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 4948 "vm.inl" +#line 5073 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -4952,10 +5077,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 4959 "vm.inl" +#line 5084 "vm.inl" #undef tos } while (0); @@ -4968,7 +5093,7 @@ #define rec _stack0 #define idx _extra1 #define val _stack0 -#line 439 "vm.def" +#line 489 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -5000,7 +5125,7 @@ } FETCH (dispatch_vec); -#line 5004 "vm.inl" +#line 5129 "vm.inl" #undef PREPARE_STACK #undef rec #undef idx @@ -5020,15 +5145,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 5024 "vm.inl" +#line 5149 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 5032 "vm.inl" +#line 5157 "vm.inl" } while (0); /* PUSH_RECEIVER_VARIABLE ( -- tos ) */ @@ -5036,10 +5161,10 @@ { int n = 1; #define tos _extra1 -#line 713 "vm.def" +#line 763 "vm.def" tos = RECEIVER_VARIABLE (n); -#line 5043 "vm.inl" +#line 5168 "vm.inl" #undef tos } while (0); @@ -5056,7 +5181,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 5060 "vm.inl" +#line 5185 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -5064,10 +5189,10 @@ { int n = 0; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 5071 "vm.inl" +#line 5196 "vm.inl" #undef tos } while (0); @@ -5076,10 +5201,10 @@ { int n = arg; #define tos _extra2 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 5083 "vm.inl" +#line 5208 "vm.inl" #undef tos } while (0); @@ -5099,7 +5224,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 5103 "vm.inl" +#line 5228 "vm.inl" } while (0); /* DUP_STACK_TOP ( tos | -- tos | tos2 ) */ @@ -5107,10 +5232,10 @@ { #define tos _stack0 #define tos2 _extra1 -#line 853 "vm.def" +#line 903 "vm.def" tos2 = tos; -#line 5114 "vm.inl" +#line 5239 "vm.inl" #undef tos #undef tos2 } @@ -5123,7 +5248,7 @@ PUSH_OOP (_extra1); \ } while (0) #define tos _extra1 -#line 788 "vm.def" +#line 838 "vm.def" if UNCOMMON (tos == _gst_true_oop) { PREPARE_STACK (); @@ -5141,7 +5266,7 @@ FETCH (dispatch_vec); } -#line 5145 "vm.inl" +#line 5270 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -5160,7 +5285,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 5164 "vm.inl" +#line 5289 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -5168,10 +5293,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 5175 "vm.inl" +#line 5300 "vm.inl" #undef tos } while (0); @@ -5184,7 +5309,7 @@ #define rec _stack0 #define idx _extra1 #define val _stack0 -#line 439 "vm.def" +#line 489 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -5216,7 +5341,7 @@ } FETCH (dispatch_vec); -#line 5220 "vm.inl" +#line 5345 "vm.inl" #undef PREPARE_STACK #undef rec #undef idx @@ -5236,7 +5361,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 5240 "vm.inl" +#line 5365 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -5244,10 +5369,10 @@ { int n = 2; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 5251 "vm.inl" +#line 5376 "vm.inl" #undef tos } while (0); @@ -5258,7 +5383,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -5266,7 +5391,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 5270 "vm.inl" +#line 5395 "vm.inl" #undef PREPARE_STACK } while (0); @@ -5283,7 +5408,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 5287 "vm.inl" +#line 5412 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -5291,10 +5416,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 5298 "vm.inl" +#line 5423 "vm.inl" #undef tos } while (0); @@ -5305,7 +5430,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -5313,7 +5438,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 5317 "vm.inl" +#line 5442 "vm.inl" #undef PREPARE_STACK } while (0); @@ -5331,7 +5456,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 5335 "vm.inl" +#line 5460 "vm.inl" } while (0); /* STORE_TEMPORARY_VARIABLE ( tos | -- tos | ) */ @@ -5339,28 +5464,28 @@ { int n = 1; #define tos _stack0 -#line 717 "vm.def" +#line 767 "vm.def" STORE_METHOD_TEMPORARY (n, tos); -#line 5346 "vm.inl" +#line 5471 "vm.inl" #undef tos } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 5355 "vm.inl" +#line 5480 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 5364 "vm.inl" +#line 5489 "vm.inl" #undef tos } while (0); @@ -5377,7 +5502,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 5381 "vm.inl" +#line 5506 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -5385,10 +5510,10 @@ { int n = 1; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 5392 "vm.inl" +#line 5517 "vm.inl" #undef tos } while (0); @@ -5400,14 +5525,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 5411 "vm.inl" +#line 5536 "vm.inl" #undef PREPARE_STACK } while (0); @@ -5425,7 +5550,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 5429 "vm.inl" +#line 5554 "vm.inl" } while (0); /* STORE_RECEIVER_VARIABLE ( tos | -- tos | ) */ @@ -5433,10 +5558,10 @@ { int n = arg; #define tos _stack0 -#line 753 "vm.def" +#line 803 "vm.def" STORE_RECEIVER_VARIABLE (n, tos); -#line 5440 "vm.inl" +#line 5565 "vm.inl" #undef tos } while (0); @@ -5444,9 +5569,9 @@ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 5450 "vm.inl" +#line 5575 "vm.inl" #undef tos } while (0); @@ -5464,7 +5589,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 5468 "vm.inl" +#line 5593 "vm.inl" } while (0); /* STORE_OUTER_TEMP ( tos | -- tos | ) */ @@ -5473,7 +5598,7 @@ int n = arg; int scopes = 1; #define tos _stack0 -#line 721 "vm.def" +#line 771 "vm.def" OOP contextOOP; gst_block_context context; @@ -5487,7 +5612,7 @@ context->contextStack[n] = tos; -#line 5491 "vm.inl" +#line 5616 "vm.inl" #undef tos } while (0); @@ -5503,7 +5628,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 5507 "vm.inl" +#line 5632 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -5511,10 +5636,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 5518 "vm.inl" +#line 5643 "vm.inl" #undef tos } while (0); @@ -5525,7 +5650,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -5533,7 +5658,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 5537 "vm.inl" +#line 5662 "vm.inl" #undef PREPARE_STACK } while (0); @@ -5551,16 +5676,16 @@ PREFETCH; LOCAL_COUNTER++; -#line 5555 "vm.inl" +#line 5680 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 5564 "vm.inl" +#line 5689 "vm.inl" #undef tos } while (0); @@ -5569,10 +5694,10 @@ { int n = arg; #define tos _stack0 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 5576 "vm.inl" +#line 5701 "vm.inl" #undef tos } while (0); @@ -5589,7 +5714,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 5593 "vm.inl" +#line 5718 "vm.inl" } while (0); /* PUSH_RECEIVER_VARIABLE ( -- tos ) */ @@ -5597,10 +5722,10 @@ { int n = arg; #define tos _extra1 -#line 713 "vm.def" +#line 763 "vm.def" tos = RECEIVER_VARIABLE (n); -#line 5604 "vm.inl" +#line 5729 "vm.inl" #undef tos } while (0); @@ -5608,14 +5733,14 @@ do { #define val _extra1 -#line 845 "vm.def" +#line 895 "vm.def" EXPORT_REGS (); unwind_context (); IMPORT_REGS (); SET_STACKTOP (val); FETCH (dispatch_vec); -#line 5619 "vm.inl" +#line 5744 "vm.inl" #undef val } while (0); @@ -5633,24 +5758,24 @@ PREFETCH; LOCAL_COUNTER++; -#line 5637 "vm.inl" +#line 5762 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 5645 "vm.inl" +#line 5770 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 5654 "vm.inl" +#line 5779 "vm.inl" #undef tos } while (0); @@ -5659,10 +5784,10 @@ { int n = 1; #define tos _stack0 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 5666 "vm.inl" +#line 5791 "vm.inl" #undef tos } while (0); @@ -5680,24 +5805,24 @@ PREFETCH; LOCAL_COUNTER++; -#line 5684 "vm.inl" +#line 5809 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 5692 "vm.inl" +#line 5817 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 5701 "vm.inl" +#line 5826 "vm.inl" #undef tos } while (0); @@ -5706,10 +5831,10 @@ { int n = 0; #define tos _stack0 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 5713 "vm.inl" +#line 5838 "vm.inl" #undef tos } while (0); @@ -5726,25 +5851,25 @@ PREFETCH; LOCAL_COUNTER++; -#line 5730 "vm.inl" +#line 5855 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 5738 "vm.inl" +#line 5863 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 5748 "vm.inl" +#line 5873 "vm.inl" #undef tos } while (0); @@ -5753,10 +5878,10 @@ { int n = 0; #define tos _extra2 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 5760 "vm.inl" +#line 5885 "vm.inl" #undef tos } while (0); @@ -5774,7 +5899,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 5778 "vm.inl" +#line 5903 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -5782,10 +5907,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 5789 "vm.inl" +#line 5914 "vm.inl" #undef tos } while (0); @@ -5793,14 +5918,14 @@ do { #define val _extra1 -#line 845 "vm.def" +#line 895 "vm.def" EXPORT_REGS (); unwind_context (); IMPORT_REGS (); SET_STACKTOP (val); FETCH (dispatch_vec); -#line 5804 "vm.inl" +#line 5929 "vm.inl" #undef val } while (0); @@ -5817,17 +5942,17 @@ PREFETCH; LOCAL_COUNTER++; -#line 5821 "vm.inl" +#line 5946 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 5831 "vm.inl" +#line 5956 "vm.inl" #undef tos } while (0); @@ -5839,7 +5964,7 @@ } while (0) #define rec _extra1 #define val _extra1 -#line 505 "vm.def" +#line 555 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -5871,7 +5996,7 @@ } FETCH (dispatch_vec); -#line 5875 "vm.inl" +#line 6000 "vm.inl" #undef PREPARE_STACK #undef rec #undef val @@ -5891,7 +6016,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 5895 "vm.inl" +#line 6020 "vm.inl" } while (0); /* IS_NIL_SPECIAL ( rec -- val ) */ @@ -5899,11 +6024,11 @@ { #define rec _stack0 #define val _stack0 -#line 571 "vm.def" +#line 621 "vm.def" /* DO_JUMP_LOOKAHEAD (rec == _gst_nil_oop); */ val = rec == _gst_nil_oop ? _gst_true_oop : _gst_false_oop; -#line 5907 "vm.inl" +#line 6032 "vm.inl" #undef rec #undef val } @@ -5916,7 +6041,7 @@ STACK_AT (0) = _stack0; \ } while (0) #define tos _stack0 -#line 788 "vm.def" +#line 838 "vm.def" if UNCOMMON (tos == _gst_true_oop) { PREPARE_STACK (); @@ -5934,7 +6059,7 @@ FETCH (dispatch_vec); } -#line 5938 "vm.inl" +#line 6063 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -5955,7 +6080,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 5959 "vm.inl" +#line 6084 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -5963,10 +6088,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 5970 "vm.inl" +#line 6095 "vm.inl" #undef tos } while (0); @@ -5980,7 +6105,7 @@ #define idx _stack0 #define val _extra1 #define res _stack1 -#line 472 "vm.def" +#line 522 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -6012,7 +6137,7 @@ } FETCH (dispatch_vec); -#line 6016 "vm.inl" +#line 6141 "vm.inl" #undef PREPARE_STACK #undef rec #undef idx @@ -6034,15 +6159,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 6038 "vm.inl" +#line 6163 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 6046 "vm.inl" +#line 6171 "vm.inl" } while (0); /* PUSH_LIT_VARIABLE ( -- tos ) */ @@ -6052,7 +6177,7 @@ #define PREPARE_STACK() do { \ } while (0) #define tos _extra1 -#line 697 "vm.def" +#line 747 "vm.def" tos = METHOD_LITERAL (n); if (UNCOMMON (IS_INT (tos)) || UNCOMMON (!is_a_kind_of (OOP_CLASS (tos), _gst_association_class))) @@ -6067,7 +6192,7 @@ else tos = ASSOCIATION_VALUE (tos); -#line 6071 "vm.inl" +#line 6196 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -6087,7 +6212,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 6091 "vm.inl" +#line 6216 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -6095,10 +6220,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 6102 "vm.inl" +#line 6227 "vm.inl" #undef tos } while (0); @@ -6112,14 +6237,39 @@ #define op2 _extra1 #define op _stack0 #line 229 "vm.def" - INTERP_BASIC_OP (op, op1, op2, iarg1 += iarg2, farg1 + farg2); + if COMMON (ARE_INTS(op1, op2)) + { + intptr_t iop1 = (intptr_t) op1; + intptr_t iop2 = ((intptr_t) op2) - 1; + intptr_t iresult = iop1 + iop2; + if (iresult < iop1) + { + if (iop2 < 0) + { + op = (OOP) iresult; + break; + } + } + else + { + if (iop2 >= 0) + { + op = (OOP) iresult; + break; + } + } + } + else if COMMON ((IS_INT (op1) || OOP_CLASS(op1) == _gst_floatd_class) + && (IS_INT (op2) || OOP_CLASS(op2) == _gst_floatd_class)) + RAW_FLOATD_OP(op, op1, op2, farg1 + farg2); + PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (_gst_builtin_selectors[PLUS_SPECIAL].symbol, 1); IMPORT_REGS (); FETCH (dispatch_vec); -#line 6123 "vm.inl" +#line 6273 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -6140,16 +6290,16 @@ PREFETCH; LOCAL_COUNTER++; -#line 6144 "vm.inl" +#line 6294 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 6153 "vm.inl" +#line 6303 "vm.inl" #undef tos } while (0); @@ -6157,12 +6307,12 @@ do { int n = arg; -#line 757 "vm.def" +#line 807 "vm.def" ip += 2; ip -= n; FETCH (dispatch_vec); -#line 6166 "vm.inl" +#line 6316 "vm.inl" } while (0); POP_N_OOPS (1); @@ -6179,16 +6329,16 @@ PREFETCH; LOCAL_COUNTER++; -#line 6183 "vm.inl" +#line 6333 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 6192 "vm.inl" +#line 6342 "vm.inl" #undef tos } while (0); @@ -6200,7 +6350,7 @@ POP_N_OOPS (1); \ } while (0) #define tos _stack0 -#line 697 "vm.def" +#line 747 "vm.def" tos = METHOD_LITERAL (n); if (UNCOMMON (IS_INT (tos)) || UNCOMMON (!is_a_kind_of (OOP_CLASS (tos), _gst_association_class))) @@ -6215,7 +6365,7 @@ else tos = ASSOCIATION_VALUE (tos); -#line 6219 "vm.inl" +#line 6369 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -6233,7 +6383,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 6237 "vm.inl" +#line 6387 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -6241,10 +6391,10 @@ { int n = 1; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 6248 "vm.inl" +#line 6398 "vm.inl" #undef tos } while (0); @@ -6253,10 +6403,10 @@ { int n = arg; #define tos _extra1 -#line 717 "vm.def" +#line 767 "vm.def" STORE_METHOD_TEMPORARY (n, tos); -#line 6260 "vm.inl" +#line 6410 "vm.inl" #undef tos } while (0); @@ -6273,7 +6423,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 6277 "vm.inl" +#line 6427 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -6281,10 +6431,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 6288 "vm.inl" +#line 6438 "vm.inl" #undef tos } while (0); @@ -6296,14 +6446,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 6307 "vm.inl" +#line 6457 "vm.inl" #undef PREPARE_STACK } while (0); @@ -6320,15 +6470,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 6324 "vm.inl" +#line 6474 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 6332 "vm.inl" +#line 6482 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -6336,10 +6486,10 @@ { int n = 3; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 6343 "vm.inl" +#line 6493 "vm.inl" #undef tos } while (0); @@ -6356,15 +6506,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 6360 "vm.inl" +#line 6510 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 6368 "vm.inl" +#line 6518 "vm.inl" } while (0); /* PUSH_OUTER_TEMP ( -- tos ) */ @@ -6373,7 +6523,7 @@ int n = 0; int scopes = 1; #define tos _extra1 -#line 682 "vm.def" +#line 732 "vm.def" OOP contextOOP; gst_block_context context; @@ -6387,7 +6537,7 @@ tos = context->contextStack[n]; -#line 6391 "vm.inl" +#line 6541 "vm.inl" #undef tos } while (0); @@ -6404,7 +6554,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 6408 "vm.inl" +#line 6558 "vm.inl" } while (0); /* PUSH_RECEIVER_VARIABLE ( -- tos ) */ @@ -6412,10 +6562,10 @@ { int n = arg; #define tos _extra1 -#line 713 "vm.def" +#line 763 "vm.def" tos = RECEIVER_VARIABLE (n); -#line 6419 "vm.inl" +#line 6569 "vm.inl" #undef tos } while (0); @@ -6427,14 +6577,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 6438 "vm.inl" +#line 6588 "vm.inl" #undef PREPARE_STACK } while (0); @@ -6453,7 +6603,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 6457 "vm.inl" +#line 6607 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -6461,10 +6611,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 6468 "vm.inl" +#line 6618 "vm.inl" #undef tos } while (0); @@ -6477,7 +6627,7 @@ #define op1 _stack0 #define op2 _extra1 #define op _stack0 -#line 256 "vm.def" +#line 306 "vm.def" PREPARE_STACK (); INTERP_BASIC_BOOL (op, op1, op2, >); EXPORT_REGS (); @@ -6485,7 +6635,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 6489 "vm.inl" +#line 6639 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -6505,7 +6655,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 6509 "vm.inl" +#line 6659 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -6513,10 +6663,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 6520 "vm.inl" +#line 6670 "vm.inl" #undef tos } while (0); @@ -6527,7 +6677,7 @@ PUSH_OOP (_extra1); \ } while (0) #define rec _extra1 -#line 581 "vm.def" +#line 631 "vm.def" PREPARE_STACK (); EXPORT_REGS (); if (UNCOMMON (IS_INT (rec)) @@ -6538,7 +6688,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 6542 "vm.inl" +#line 6692 "vm.inl" #undef PREPARE_STACK #undef rec } @@ -6558,7 +6708,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 6562 "vm.inl" +#line 6712 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -6566,10 +6716,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 6573 "vm.inl" +#line 6723 "vm.inl" #undef tos } while (0); @@ -6582,15 +6732,40 @@ #define op1 _stack0 #define op2 _extra1 #define op _stack0 -#line 238 "vm.def" - INTERP_BASIC_OP (op, op1, op2, iarg1 -= iarg2, farg1 - farg2); +#line 263 "vm.def" + if COMMON (ARE_INTS(op1, op2)) + { + intptr_t iop1 = (intptr_t) op1; + intptr_t iop2 = ((intptr_t) op2) - 1; + intptr_t iresult = iop1 - iop2; + if (iresult < iop1) + { + if (iop2 >= 0) + { + op = (OOP) iresult; + break; + } + } + else + { + if (iop2 < 0) + { + op = (OOP) iresult; + break; + } + } + } + else if COMMON ((IS_INT (op1) || OOP_CLASS(op1) == _gst_floatd_class) + && (IS_INT (op2) || OOP_CLASS(op2) == _gst_floatd_class)) + RAW_FLOATD_OP(op, op1, op2, farg1 - farg2); + PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (_gst_builtin_selectors[MINUS_SPECIAL].symbol, 1); IMPORT_REGS (); FETCH (dispatch_vec); -#line 6594 "vm.inl" +#line 6769 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -6610,7 +6785,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 6614 "vm.inl" +#line 6789 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -6618,10 +6793,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 6625 "vm.inl" +#line 6800 "vm.inl" #undef tos } while (0); @@ -6633,14 +6808,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 6644 "vm.inl" +#line 6819 "vm.inl" #undef PREPARE_STACK } while (0); @@ -6659,7 +6834,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 6663 "vm.inl" +#line 6838 "vm.inl" } while (0); /* PUSH_SPECIAL ( -- tos ) */ @@ -6667,10 +6842,10 @@ { int n = 0; #define tos _extra1 -#line 811 "vm.def" +#line 861 "vm.def" tos = _gst_nil_oop + (n - NIL_INDEX); -#line 6674 "vm.inl" +#line 6849 "vm.inl" #undef tos } while (0); @@ -6680,11 +6855,11 @@ #define op1 _stack0 #define op2 _extra1 #define op _stack0 -#line 605 "vm.def" +#line 655 "vm.def" /* DO_JUMP_LOOKAHEAD (op1 == op2); */ op = (op1 == op2) ? _gst_true_oop : _gst_false_oop; -#line 6688 "vm.inl" +#line 6863 "vm.inl" #undef op1 #undef op2 #undef op @@ -6698,7 +6873,7 @@ STACK_AT (0) = _stack0; \ } while (0) #define tos _stack0 -#line 769 "vm.def" +#line 819 "vm.def" if UNCOMMON (tos == _gst_false_oop) { PREPARE_STACK (); @@ -6716,7 +6891,7 @@ FETCH (dispatch_vec); } -#line 6720 "vm.inl" +#line 6895 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -6735,7 +6910,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 6739 "vm.inl" +#line 6914 "vm.inl" } while (0); /* STORE_TEMPORARY_VARIABLE ( tos | -- tos | ) */ @@ -6743,28 +6918,28 @@ { int n = 2; #define tos _stack0 -#line 717 "vm.def" +#line 767 "vm.def" STORE_METHOD_TEMPORARY (n, tos); -#line 6750 "vm.inl" +#line 6925 "vm.inl" #undef tos } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 6759 "vm.inl" +#line 6934 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 6768 "vm.inl" +#line 6943 "vm.inl" #undef tos } while (0); @@ -6783,7 +6958,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 6787 "vm.inl" +#line 6962 "vm.inl" } while (0); /* SAME_OBJECT_SPECIAL ( op1 op2 -- op ) */ @@ -6792,11 +6967,11 @@ #define op1 _stack1 #define op2 _stack0 #define op _stack1 -#line 605 "vm.def" +#line 655 "vm.def" /* DO_JUMP_LOOKAHEAD (op1 == op2); */ op = (op1 == op2) ? _gst_true_oop : _gst_false_oop; -#line 6800 "vm.inl" +#line 6975 "vm.inl" #undef op1 #undef op2 #undef op @@ -6811,7 +6986,7 @@ POP_N_OOPS (1); \ } while (0) #define tos _stack1 -#line 788 "vm.def" +#line 838 "vm.def" if UNCOMMON (tos == _gst_true_oop) { PREPARE_STACK (); @@ -6829,7 +7004,7 @@ FETCH (dispatch_vec); } -#line 6833 "vm.inl" +#line 7008 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -6849,7 +7024,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 6853 "vm.inl" +#line 7028 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -6857,10 +7032,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 6864 "vm.inl" +#line 7039 "vm.inl" #undef tos } while (0); @@ -6873,7 +7048,7 @@ #define op1 _stack0 #define op2 _extra1 #define op _stack0 -#line 301 "vm.def" +#line 351 "vm.def" INTERP_BASIC_OP (op, op1, op2, iarg1 = mul_with_check (iarg1, iarg2), farg1 * farg2); PREPARE_STACK (); EXPORT_REGS (); @@ -6881,7 +7056,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 6885 "vm.inl" +#line 7060 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -6901,15 +7076,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 6905 "vm.inl" +#line 7080 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 6913 "vm.inl" +#line 7088 "vm.inl" } while (0); /* PUSH_RECEIVER_VARIABLE ( -- tos ) */ @@ -6917,10 +7092,10 @@ { int n = 2; #define tos _extra1 -#line 713 "vm.def" +#line 763 "vm.def" tos = RECEIVER_VARIABLE (n); -#line 6924 "vm.inl" +#line 7099 "vm.inl" #undef tos } while (0); @@ -6939,7 +7114,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 6943 "vm.inl" +#line 7118 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -6947,10 +7122,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 6954 "vm.inl" +#line 7129 "vm.inl" #undef tos } while (0); @@ -6963,7 +7138,7 @@ #define op1 _stack0 #define op2 _extra1 #define op _stack0 -#line 247 "vm.def" +#line 297 "vm.def" PREPARE_STACK (); INTERP_BASIC_BOOL (op, op1, op2, <); EXPORT_REGS (); @@ -6971,7 +7146,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 6975 "vm.inl" +#line 7150 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -6994,7 +7169,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 6998 "vm.inl" +#line 7173 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -7002,10 +7177,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 7009 "vm.inl" +#line 7184 "vm.inl" #undef tos } while (0); @@ -7019,7 +7194,7 @@ #define idx _stack0 #define val _extra1 #define res _stack1 -#line 472 "vm.def" +#line 522 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -7051,7 +7226,7 @@ } FETCH (dispatch_vec); -#line 7055 "vm.inl" +#line 7230 "vm.inl" #undef PREPARE_STACK #undef rec #undef idx @@ -7073,7 +7248,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 7077 "vm.inl" +#line 7252 "vm.inl" } while (0); /* PUSH_OUTER_TEMP ( -- tos ) */ @@ -7082,7 +7257,7 @@ int n = arg; int scopes = 2; #define tos _extra1 -#line 682 "vm.def" +#line 732 "vm.def" OOP contextOOP; gst_block_context context; @@ -7096,7 +7271,7 @@ tos = context->contextStack[n]; -#line 7100 "vm.inl" +#line 7275 "vm.inl" #undef tos } while (0); @@ -7113,25 +7288,25 @@ PREFETCH; LOCAL_COUNTER++; -#line 7117 "vm.inl" +#line 7292 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 7125 "vm.inl" +#line 7300 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 7135 "vm.inl" +#line 7310 "vm.inl" #undef tos } while (0); @@ -7140,10 +7315,10 @@ { int n = 0; #define tos _extra2 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 7147 "vm.inl" +#line 7322 "vm.inl" #undef tos } while (0); @@ -7156,14 +7331,14 @@ PUSH_OOP (_extra1); \ PUSH_OOP (_extra2); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 7167 "vm.inl" +#line 7342 "vm.inl" #undef PREPARE_STACK } while (0); @@ -7181,17 +7356,17 @@ PREFETCH; LOCAL_COUNTER++; -#line 7185 "vm.inl" +#line 7360 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 7195 "vm.inl" +#line 7370 "vm.inl" #undef tos } while (0); @@ -7200,10 +7375,10 @@ { int n = 0; #define tos _extra2 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 7207 "vm.inl" +#line 7382 "vm.inl" #undef tos } while (0); @@ -7216,14 +7391,14 @@ PUSH_OOP (_extra1); \ PUSH_OOP (_extra2); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 7227 "vm.inl" +#line 7402 "vm.inl" #undef PREPARE_STACK } while (0); @@ -7241,25 +7416,25 @@ PREFETCH; LOCAL_COUNTER++; -#line 7245 "vm.inl" +#line 7420 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 7253 "vm.inl" +#line 7428 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 7263 "vm.inl" +#line 7438 "vm.inl" #undef tos } while (0); @@ -7270,7 +7445,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -7278,7 +7453,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 7282 "vm.inl" +#line 7457 "vm.inl" #undef PREPARE_STACK } while (0); @@ -7295,7 +7470,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 7299 "vm.inl" +#line 7474 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -7303,10 +7478,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 7310 "vm.inl" +#line 7485 "vm.inl" #undef tos } while (0); @@ -7315,10 +7490,10 @@ { int n = 3; #define tos _extra2 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 7322 "vm.inl" +#line 7497 "vm.inl" #undef tos } while (0); @@ -7337,7 +7512,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 7341 "vm.inl" +#line 7516 "vm.inl" } while (0); /* STORE_TEMPORARY_VARIABLE ( tos | -- tos | ) */ @@ -7345,19 +7520,19 @@ { int n = 1; #define tos _stack0 -#line 717 "vm.def" +#line 767 "vm.def" STORE_METHOD_TEMPORARY (n, tos); -#line 7352 "vm.inl" +#line 7527 "vm.inl" #undef tos } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 7361 "vm.inl" +#line 7536 "vm.inl" } while (0); } @@ -7372,15 +7547,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 7376 "vm.inl" +#line 7551 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 7384 "vm.inl" +#line 7559 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -7388,10 +7563,10 @@ { int n = 0; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 7395 "vm.inl" +#line 7570 "vm.inl" #undef tos } while (0); @@ -7403,14 +7578,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 7414 "vm.inl" +#line 7589 "vm.inl" #undef PREPARE_STACK } while (0); @@ -7429,7 +7604,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 7433 "vm.inl" +#line 7608 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -7437,10 +7612,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 7444 "vm.inl" +#line 7619 "vm.inl" #undef tos } while (0); @@ -7453,7 +7628,7 @@ #define op1 _stack0 #define op2 _extra1 #define op _stack0 -#line 411 "vm.def" +#line 461 "vm.def" if COMMON (ARE_INTS (op1, op2)) { op = FROM_INT (TO_INT (op1) & TO_INT (op2)); @@ -7466,7 +7641,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 7470 "vm.inl" +#line 7645 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -7486,7 +7661,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 7490 "vm.inl" +#line 7665 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -7494,10 +7669,10 @@ { int n = 2; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 7501 "vm.inl" +#line 7676 "vm.inl" #undef tos } while (0); @@ -7509,14 +7684,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 7520 "vm.inl" +#line 7695 "vm.inl" #undef PREPARE_STACK } while (0); @@ -7533,7 +7708,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 7537 "vm.inl" +#line 7712 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -7541,10 +7716,10 @@ { int n = 0; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 7548 "vm.inl" +#line 7723 "vm.inl" #undef tos } while (0); @@ -7553,10 +7728,10 @@ { int n = 1; #define tos _extra2 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 7560 "vm.inl" +#line 7735 "vm.inl" #undef tos } while (0); @@ -7569,14 +7744,14 @@ PUSH_OOP (_extra1); \ PUSH_OOP (_extra2); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 7580 "vm.inl" +#line 7755 "vm.inl" #undef PREPARE_STACK } while (0); @@ -7594,25 +7769,25 @@ PREFETCH; LOCAL_COUNTER++; -#line 7598 "vm.inl" +#line 7773 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 7606 "vm.inl" +#line 7781 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 7616 "vm.inl" +#line 7791 "vm.inl" #undef tos } while (0); @@ -7621,10 +7796,10 @@ { int n = 0; #define tos _extra2 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 7628 "vm.inl" +#line 7803 "vm.inl" #undef tos } while (0); @@ -7642,15 +7817,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 7646 "vm.inl" +#line 7821 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 7654 "vm.inl" +#line 7829 "vm.inl" } while (0); /* PUSH_RECEIVER_VARIABLE ( -- tos ) */ @@ -7658,10 +7833,10 @@ { int n = 3; #define tos _extra1 -#line 713 "vm.def" +#line 763 "vm.def" tos = RECEIVER_VARIABLE (n); -#line 7665 "vm.inl" +#line 7840 "vm.inl" #undef tos } while (0); @@ -7678,7 +7853,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 7682 "vm.inl" +#line 7857 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -7686,10 +7861,10 @@ { int n = 2; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 7693 "vm.inl" +#line 7868 "vm.inl" #undef tos } while (0); @@ -7701,14 +7876,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 7712 "vm.inl" +#line 7887 "vm.inl" #undef PREPARE_STACK } while (0); @@ -7726,7 +7901,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 7730 "vm.inl" +#line 7905 "vm.inl" } while (0); /* NOT_NIL_SPECIAL ( rec -- val ) */ @@ -7734,11 +7909,11 @@ { #define rec _stack0 #define val _stack0 -#line 576 "vm.def" +#line 626 "vm.def" /* DO_JUMP_LOOKAHEAD (rec != _gst_nil_oop); */ val = rec != _gst_nil_oop ? _gst_true_oop : _gst_false_oop; -#line 7742 "vm.inl" +#line 7917 "vm.inl" #undef rec #undef val } @@ -7751,7 +7926,7 @@ STACK_AT (0) = _stack0; \ } while (0) #define tos _stack0 -#line 769 "vm.def" +#line 819 "vm.def" if UNCOMMON (tos == _gst_false_oop) { PREPARE_STACK (); @@ -7769,7 +7944,7 @@ FETCH (dispatch_vec); } -#line 7773 "vm.inl" +#line 7948 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -7788,7 +7963,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 7792 "vm.inl" +#line 7967 "vm.inl" } while (0); /* STORE_TEMPORARY_VARIABLE ( tos | -- tos | ) */ @@ -7796,19 +7971,19 @@ { int n = 2; #define tos _stack0 -#line 717 "vm.def" +#line 767 "vm.def" STORE_METHOD_TEMPORARY (n, tos); -#line 7803 "vm.inl" +#line 7978 "vm.inl" #undef tos } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 7812 "vm.inl" +#line 7987 "vm.inl" } while (0); } @@ -7824,7 +7999,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 7828 "vm.inl" +#line 8003 "vm.inl" } while (0); /* STORE_TEMPORARY_VARIABLE ( tos | -- tos | ) */ @@ -7832,28 +8007,28 @@ { int n = 3; #define tos _stack0 -#line 717 "vm.def" +#line 767 "vm.def" STORE_METHOD_TEMPORARY (n, tos); -#line 7839 "vm.inl" +#line 8014 "vm.inl" #undef tos } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 7848 "vm.inl" +#line 8023 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 7857 "vm.inl" +#line 8032 "vm.inl" #undef tos } while (0); @@ -7870,7 +8045,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 7874 "vm.inl" +#line 8049 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -7878,10 +8053,10 @@ { int n = 1; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 7885 "vm.inl" +#line 8060 "vm.inl" #undef tos } while (0); @@ -7892,7 +8067,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -7900,7 +8075,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 7904 "vm.inl" +#line 8079 "vm.inl" #undef PREPARE_STACK } while (0); @@ -7919,7 +8094,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 7923 "vm.inl" +#line 8098 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -7927,10 +8102,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 7934 "vm.inl" +#line 8109 "vm.inl" #undef tos } while (0); @@ -7943,7 +8118,7 @@ #define op1 _stack0 #define op2 _extra1 #define op _stack0 -#line 283 "vm.def" +#line 333 "vm.def" PREPARE_STACK (); INTERP_BASIC_BOOL (op, op1, op2, ==); EXPORT_REGS (); @@ -7951,7 +8126,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 7955 "vm.inl" +#line 8130 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -7974,16 +8149,16 @@ PREFETCH; LOCAL_COUNTER++; -#line 7978 "vm.inl" +#line 8153 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 7987 "vm.inl" +#line 8162 "vm.inl" #undef tos } while (0); @@ -7992,10 +8167,10 @@ { #define tos _stack1 #define tos2 _stack0 -#line 853 "vm.def" +#line 903 "vm.def" tos2 = tos; -#line 7999 "vm.inl" +#line 8174 "vm.inl" #undef tos #undef tos2 } @@ -8005,10 +8180,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 8012 "vm.inl" +#line 8187 "vm.inl" #undef tos } while (0); @@ -8017,10 +8192,10 @@ { int n = 1; #define tos _extra2 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 8024 "vm.inl" +#line 8199 "vm.inl" #undef tos } while (0); @@ -8036,14 +8211,39 @@ #define op2 _extra2 #define op _extra1 #line 229 "vm.def" - INTERP_BASIC_OP (op, op1, op2, iarg1 += iarg2, farg1 + farg2); + if COMMON (ARE_INTS(op1, op2)) + { + intptr_t iop1 = (intptr_t) op1; + intptr_t iop2 = ((intptr_t) op2) - 1; + intptr_t iresult = iop1 + iop2; + if (iresult < iop1) + { + if (iop2 < 0) + { + op = (OOP) iresult; + break; + } + } + else + { + if (iop2 >= 0) + { + op = (OOP) iresult; + break; + } + } + } + else if COMMON ((IS_INT (op1) || OOP_CLASS(op1) == _gst_floatd_class) + && (IS_INT (op2) || OOP_CLASS(op2) == _gst_floatd_class)) + RAW_FLOATD_OP(op, op1, op2, farg1 + farg2); + PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (_gst_builtin_selectors[PLUS_SPECIAL].symbol, 1); IMPORT_REGS (); FETCH (dispatch_vec); -#line 8047 "vm.inl" +#line 8247 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -8064,17 +8264,17 @@ PREFETCH; LOCAL_COUNTER++; -#line 8068 "vm.inl" +#line 8268 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 8078 "vm.inl" +#line 8278 "vm.inl" #undef tos } while (0); @@ -8086,14 +8286,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 8097 "vm.inl" +#line 8297 "vm.inl" #undef PREPARE_STACK } while (0); @@ -8111,7 +8311,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 8115 "vm.inl" +#line 8315 "vm.inl" } while (0); /* STORE_TEMPORARY_VARIABLE ( tos | -- tos | ) */ @@ -8119,28 +8319,28 @@ { int n = 0; #define tos _stack0 -#line 717 "vm.def" +#line 767 "vm.def" STORE_METHOD_TEMPORARY (n, tos); -#line 8126 "vm.inl" +#line 8326 "vm.inl" #undef tos } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 8135 "vm.inl" +#line 8335 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 8144 "vm.inl" +#line 8344 "vm.inl" #undef tos } while (0); @@ -8159,7 +8359,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 8163 "vm.inl" +#line 8363 "vm.inl" } while (0); /* DUP_STACK_TOP ( tos | -- tos | tos2 ) */ @@ -8167,10 +8367,10 @@ { #define tos _stack0 #define tos2 _extra1 -#line 853 "vm.def" +#line 903 "vm.def" tos2 = tos; -#line 8174 "vm.inl" +#line 8374 "vm.inl" #undef tos #undef tos2 } @@ -8178,9 +8378,9 @@ /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 8184 "vm.inl" +#line 8384 "vm.inl" } while (0); PUSH_OOP (_extra1); @@ -8196,17 +8396,17 @@ PREFETCH; LOCAL_COUNTER++; -#line 8200 "vm.inl" +#line 8400 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 8210 "vm.inl" +#line 8410 "vm.inl" #undef tos } while (0); @@ -8215,10 +8415,10 @@ { int n = arg; #define tos _extra2 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 8222 "vm.inl" +#line 8422 "vm.inl" #undef tos } while (0); @@ -8230,7 +8430,7 @@ PUSH_OOP (_extra1); \ PUSH_OOP (_extra2); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -8238,7 +8438,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 8242 "vm.inl" +#line 8442 "vm.inl" #undef PREPARE_STACK } while (0); @@ -8257,16 +8457,16 @@ PREFETCH; LOCAL_COUNTER++; -#line 8261 "vm.inl" +#line 8461 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 8270 "vm.inl" +#line 8470 "vm.inl" #undef tos } while (0); @@ -8275,10 +8475,10 @@ { int n = arg; #define tos _stack0 -#line 713 "vm.def" +#line 763 "vm.def" tos = RECEIVER_VARIABLE (n); -#line 8282 "vm.inl" +#line 8482 "vm.inl" #undef tos } while (0); @@ -8295,25 +8495,25 @@ PREFETCH; LOCAL_COUNTER++; -#line 8299 "vm.inl" +#line 8499 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 8307 "vm.inl" +#line 8507 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 8317 "vm.inl" +#line 8517 "vm.inl" #undef tos } while (0); @@ -8324,7 +8524,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -8332,7 +8532,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 8336 "vm.inl" +#line 8536 "vm.inl" #undef PREPARE_STACK } while (0); @@ -8349,15 +8549,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 8353 "vm.inl" +#line 8553 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 8361 "vm.inl" +#line 8561 "vm.inl" } while (0); /* PUSH_LIT_VARIABLE ( -- tos ) */ @@ -8367,7 +8567,7 @@ #define PREPARE_STACK() do { \ } while (0) #define tos _extra1 -#line 697 "vm.def" +#line 747 "vm.def" tos = METHOD_LITERAL (n); if (UNCOMMON (IS_INT (tos)) || UNCOMMON (!is_a_kind_of (OOP_CLASS (tos), _gst_association_class))) @@ -8382,7 +8582,7 @@ else tos = ASSOCIATION_VALUE (tos); -#line 8386 "vm.inl" +#line 8586 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -8400,7 +8600,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 8404 "vm.inl" +#line 8604 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -8408,10 +8608,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 8415 "vm.inl" +#line 8615 "vm.inl" #undef tos } while (0); @@ -8420,12 +8620,12 @@ { #define block _extra1 #define closure _extra1 -#line 826 "vm.def" +#line 876 "vm.def" EXPORT_REGS (); closure = _gst_make_block_closure (block); IMPORT_REGS(); -#line 8429 "vm.inl" +#line 8629 "vm.inl" #undef block #undef closure } @@ -8438,14 +8638,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 8449 "vm.inl" +#line 8649 "vm.inl" #undef PREPARE_STACK } while (0); @@ -8462,15 +8662,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 8466 "vm.inl" +#line 8666 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 8474 "vm.inl" +#line 8674 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -8478,10 +8678,10 @@ { int n = 0; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 8485 "vm.inl" +#line 8685 "vm.inl" #undef tos } while (0); @@ -8500,7 +8700,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 8504 "vm.inl" +#line 8704 "vm.inl" } while (0); /* DUP_STACK_TOP ( tos | -- tos | tos2 ) */ @@ -8508,10 +8708,10 @@ { #define tos _stack0 #define tos2 _extra1 -#line 853 "vm.def" +#line 903 "vm.def" tos2 = tos; -#line 8515 "vm.inl" +#line 8715 "vm.inl" #undef tos #undef tos2 } @@ -8521,10 +8721,10 @@ { int n = arg; #define tos _extra2 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 8528 "vm.inl" +#line 8728 "vm.inl" #undef tos } while (0); @@ -8536,7 +8736,7 @@ PUSH_OOP (_extra1); \ PUSH_OOP (_extra2); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -8544,7 +8744,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 8548 "vm.inl" +#line 8748 "vm.inl" #undef PREPARE_STACK } while (0); @@ -8562,15 +8762,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 8566 "vm.inl" +#line 8766 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 8574 "vm.inl" +#line 8774 "vm.inl" } while (0); /* PUSH_OUTER_TEMP ( -- tos ) */ @@ -8579,7 +8779,7 @@ int n = 1; int scopes = 1; #define tos _extra1 -#line 682 "vm.def" +#line 732 "vm.def" OOP contextOOP; gst_block_context context; @@ -8593,7 +8793,7 @@ tos = context->contextStack[n]; -#line 8597 "vm.inl" +#line 8797 "vm.inl" #undef tos } while (0); @@ -8612,7 +8812,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 8616 "vm.inl" +#line 8816 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -8620,10 +8820,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 8627 "vm.inl" +#line 8827 "vm.inl" #undef tos } while (0); @@ -8635,7 +8835,7 @@ } while (0) #define op1 _stack0 #define op2 _extra1 -#line 396 "vm.def" +#line 446 "vm.def" PREPARE_STACK (); EXPORT_REGS(); if (IS_INT (op1) && IS_INT (op2) @@ -8649,7 +8849,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 8653 "vm.inl" +#line 8853 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -8668,7 +8868,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 8672 "vm.inl" +#line 8872 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -8676,10 +8876,10 @@ { int n = 1; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 8683 "vm.inl" +#line 8883 "vm.inl" #undef tos } while (0); @@ -8688,12 +8888,12 @@ { #define block _extra1 #define closure _extra1 -#line 826 "vm.def" +#line 876 "vm.def" EXPORT_REGS (); closure = _gst_make_block_closure (block); IMPORT_REGS(); -#line 8697 "vm.inl" +#line 8897 "vm.inl" #undef block #undef closure } @@ -8705,7 +8905,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -8713,7 +8913,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 8717 "vm.inl" +#line 8917 "vm.inl" #undef PREPARE_STACK } while (0); @@ -8730,7 +8930,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 8734 "vm.inl" +#line 8934 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -8738,10 +8938,10 @@ { int n = 3; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 8745 "vm.inl" +#line 8945 "vm.inl" #undef tos } while (0); @@ -8752,7 +8952,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -8760,7 +8960,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 8764 "vm.inl" +#line 8964 "vm.inl" #undef PREPARE_STACK } while (0); @@ -8777,15 +8977,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 8781 "vm.inl" +#line 8981 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 8789 "vm.inl" +#line 8989 "vm.inl" } while (0); /* PUSH_SPECIAL ( -- tos ) */ @@ -8793,10 +8993,10 @@ { int n = 0; #define tos _extra1 -#line 811 "vm.def" +#line 861 "vm.def" tos = _gst_nil_oop + (n - NIL_INDEX); -#line 8800 "vm.inl" +#line 9000 "vm.inl" #undef tos } while (0); @@ -8804,14 +9004,14 @@ do { #define val _extra1 -#line 845 "vm.def" +#line 895 "vm.def" EXPORT_REGS (); unwind_context (); IMPORT_REGS (); SET_STACKTOP (val); FETCH (dispatch_vec); -#line 8815 "vm.inl" +#line 9015 "vm.inl" #undef val } while (0); @@ -8828,15 +9028,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 8832 "vm.inl" +#line 9032 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 8840 "vm.inl" +#line 9040 "vm.inl" } while (0); /* PUSH_RECEIVER_VARIABLE ( -- tos ) */ @@ -8844,10 +9044,10 @@ { int n = 5; #define tos _extra1 -#line 713 "vm.def" +#line 763 "vm.def" tos = RECEIVER_VARIABLE (n); -#line 8851 "vm.inl" +#line 9051 "vm.inl" #undef tos } while (0); @@ -8864,7 +9064,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 8868 "vm.inl" +#line 9068 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -8872,10 +9072,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 8879 "vm.inl" +#line 9079 "vm.inl" #undef tos } while (0); @@ -8884,12 +9084,12 @@ { #define block _extra1 #define closure _extra1 -#line 826 "vm.def" +#line 876 "vm.def" EXPORT_REGS (); closure = _gst_make_block_closure (block); IMPORT_REGS(); -#line 8893 "vm.inl" +#line 9093 "vm.inl" #undef block #undef closure } @@ -8902,14 +9102,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 8913 "vm.inl" +#line 9113 "vm.inl" #undef PREPARE_STACK } while (0); @@ -8928,7 +9128,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 8932 "vm.inl" +#line 9132 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -8936,10 +9136,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 8943 "vm.inl" +#line 9143 "vm.inl" #undef tos } while (0); @@ -8951,7 +9151,7 @@ } while (0) #define rec _stack0 #define blk_arg _extra1 -#line 593 "vm.def" +#line 643 "vm.def" PREPARE_STACK (); EXPORT_REGS (); if (UNCOMMON (IS_INT (rec)) @@ -8962,7 +9162,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 8966 "vm.inl" +#line 9166 "vm.inl" #undef PREPARE_STACK #undef rec #undef blk_arg @@ -8981,7 +9181,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 8985 "vm.inl" +#line 9185 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -8989,10 +9189,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 8996 "vm.inl" +#line 9196 "vm.inl" #undef tos } while (0); @@ -9000,14 +9200,14 @@ do { #define val _extra1 -#line 845 "vm.def" +#line 895 "vm.def" EXPORT_REGS (); unwind_context (); IMPORT_REGS (); SET_STACKTOP (val); FETCH (dispatch_vec); -#line 9011 "vm.inl" +#line 9211 "vm.inl" #undef val } while (0); @@ -9024,7 +9224,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 9028 "vm.inl" +#line 9228 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -9032,10 +9232,10 @@ { int n = 0; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 9039 "vm.inl" +#line 9239 "vm.inl" #undef tos } while (0); @@ -9047,14 +9247,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 9058 "vm.inl" +#line 9258 "vm.inl" #undef PREPARE_STACK } while (0); @@ -9071,7 +9271,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 9075 "vm.inl" +#line 9275 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -9079,10 +9279,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 9086 "vm.inl" +#line 9286 "vm.inl" #undef tos } while (0); @@ -9091,10 +9291,10 @@ { int n = 1; #define tos _extra2 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 9098 "vm.inl" +#line 9298 "vm.inl" #undef tos } while (0); @@ -9108,15 +9308,40 @@ #define op1 _extra1 #define op2 _extra2 #define op _extra1 -#line 238 "vm.def" - INTERP_BASIC_OP (op, op1, op2, iarg1 -= iarg2, farg1 - farg2); +#line 263 "vm.def" + if COMMON (ARE_INTS(op1, op2)) + { + intptr_t iop1 = (intptr_t) op1; + intptr_t iop2 = ((intptr_t) op2) - 1; + intptr_t iresult = iop1 - iop2; + if (iresult < iop1) + { + if (iop2 >= 0) + { + op = (OOP) iresult; + break; + } + } + else + { + if (iop2 < 0) + { + op = (OOP) iresult; + break; + } + } + } + else if COMMON ((IS_INT (op1) || OOP_CLASS(op1) == _gst_floatd_class) + && (IS_INT (op2) || OOP_CLASS(op2) == _gst_floatd_class)) + RAW_FLOATD_OP(op, op1, op2, farg1 - farg2); + PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (_gst_builtin_selectors[MINUS_SPECIAL].symbol, 1); IMPORT_REGS (); FETCH (dispatch_vec); -#line 9120 "vm.inl" +#line 9345 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -9136,17 +9361,17 @@ PREFETCH; LOCAL_COUNTER++; -#line 9140 "vm.inl" +#line 9365 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 9150 "vm.inl" +#line 9375 "vm.inl" #undef tos } while (0); @@ -9155,10 +9380,10 @@ { int n = arg; #define tos _extra2 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 9162 "vm.inl" +#line 9387 "vm.inl" #undef tos } while (0); @@ -9176,15 +9401,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 9180 "vm.inl" +#line 9405 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 9188 "vm.inl" +#line 9413 "vm.inl" } while (0); /* PUSH_RECEIVER_VARIABLE ( -- tos ) */ @@ -9192,10 +9417,10 @@ { int n = 4; #define tos _extra1 -#line 713 "vm.def" +#line 763 "vm.def" tos = RECEIVER_VARIABLE (n); -#line 9199 "vm.inl" +#line 9424 "vm.inl" #undef tos } while (0); @@ -9212,7 +9437,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 9216 "vm.inl" +#line 9441 "vm.inl" } while (0); /* PUSH_OUTER_TEMP ( -- tos ) */ @@ -9221,7 +9446,7 @@ int n = 0; int scopes = 1; #define tos _extra1 -#line 682 "vm.def" +#line 732 "vm.def" OOP contextOOP; gst_block_context context; @@ -9235,7 +9460,7 @@ tos = context->contextStack[n]; -#line 9239 "vm.inl" +#line 9464 "vm.inl" #undef tos } while (0); @@ -9246,7 +9471,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -9254,7 +9479,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 9258 "vm.inl" +#line 9483 "vm.inl" #undef PREPARE_STACK } while (0); @@ -9271,25 +9496,25 @@ PREFETCH; LOCAL_COUNTER++; -#line 9275 "vm.inl" +#line 9500 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 9283 "vm.inl" +#line 9508 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 9293 "vm.inl" +#line 9518 "vm.inl" #undef tos } while (0); @@ -9301,14 +9526,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 9312 "vm.inl" +#line 9537 "vm.inl" #undef PREPARE_STACK } while (0); @@ -9325,7 +9550,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 9329 "vm.inl" +#line 9554 "vm.inl" } while (0); /* PUSH_OUTER_TEMP ( -- tos ) */ @@ -9334,7 +9559,7 @@ int n = 0; int scopes = 1; #define tos _extra1 -#line 682 "vm.def" +#line 732 "vm.def" OOP contextOOP; gst_block_context context; @@ -9348,7 +9573,7 @@ tos = context->contextStack[n]; -#line 9352 "vm.inl" +#line 9577 "vm.inl" #undef tos } while (0); @@ -9360,14 +9585,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 9371 "vm.inl" +#line 9596 "vm.inl" #undef PREPARE_STACK } while (0); @@ -9384,7 +9609,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 9388 "vm.inl" +#line 9613 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -9392,10 +9617,10 @@ { int n = 4; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 9399 "vm.inl" +#line 9624 "vm.inl" #undef tos } while (0); @@ -9406,7 +9631,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -9414,7 +9639,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 9418 "vm.inl" +#line 9643 "vm.inl" #undef PREPARE_STACK } while (0); @@ -9431,7 +9656,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 9435 "vm.inl" +#line 9660 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -9439,10 +9664,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 9446 "vm.inl" +#line 9671 "vm.inl" #undef tos } while (0); @@ -9453,7 +9678,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -9461,7 +9686,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 9465 "vm.inl" +#line 9690 "vm.inl" #undef PREPARE_STACK } while (0); @@ -9477,7 +9702,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 9481 "vm.inl" +#line 9706 "vm.inl" } while (0); /* SEND ( -- ) */ @@ -9487,14 +9712,14 @@ int n = 4; #define PREPARE_STACK() do { \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 9498 "vm.inl" +#line 9723 "vm.inl" #undef PREPARE_STACK } while (0); @@ -9510,7 +9735,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 9514 "vm.inl" +#line 9739 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -9518,10 +9743,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 9525 "vm.inl" +#line 9750 "vm.inl" #undef tos } while (0); @@ -9530,10 +9755,10 @@ { int n = 2; #define tos _extra2 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 9537 "vm.inl" +#line 9762 "vm.inl" #undef tos } while (0); @@ -9551,17 +9776,17 @@ PREFETCH; LOCAL_COUNTER++; -#line 9555 "vm.inl" +#line 9780 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 9565 "vm.inl" +#line 9790 "vm.inl" #undef tos } while (0); @@ -9573,7 +9798,7 @@ } while (0) #define rec _extra1 #define val _extra1 -#line 538 "vm.def" +#line 588 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -9605,7 +9830,7 @@ } FETCH (dispatch_vec); -#line 9609 "vm.inl" +#line 9834 "vm.inl" #undef PREPARE_STACK #undef rec #undef val @@ -9624,7 +9849,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 9628 "vm.inl" +#line 9853 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -9632,10 +9857,10 @@ { int n = 1; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 9639 "vm.inl" +#line 9864 "vm.inl" #undef tos } while (0); @@ -9647,14 +9872,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 9658 "vm.inl" +#line 9883 "vm.inl" #undef PREPARE_STACK } while (0); @@ -9671,17 +9896,17 @@ PREFETCH; LOCAL_COUNTER++; -#line 9675 "vm.inl" +#line 9900 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 9685 "vm.inl" +#line 9910 "vm.inl" #undef tos } while (0); @@ -9690,10 +9915,10 @@ { int n = 1; #define tos _extra2 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 9697 "vm.inl" +#line 9922 "vm.inl" #undef tos } while (0); @@ -9706,14 +9931,14 @@ PUSH_OOP (_extra1); \ PUSH_OOP (_extra2); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 9717 "vm.inl" +#line 9942 "vm.inl" #undef PREPARE_STACK } while (0); @@ -9731,7 +9956,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 9735 "vm.inl" +#line 9960 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -9739,10 +9964,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 9746 "vm.inl" +#line 9971 "vm.inl" #undef tos } while (0); @@ -9754,14 +9979,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 9765 "vm.inl" +#line 9990 "vm.inl" #undef PREPARE_STACK } while (0); @@ -9778,7 +10003,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 9782 "vm.inl" +#line 10007 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -9786,10 +10011,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 9793 "vm.inl" +#line 10018 "vm.inl" #undef tos } while (0); @@ -9801,14 +10026,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 9812 "vm.inl" +#line 10037 "vm.inl" #undef PREPARE_STACK } while (0); @@ -9825,7 +10050,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 9829 "vm.inl" +#line 10054 "vm.inl" } while (0); /* PUSH_RECEIVER_VARIABLE ( -- tos ) */ @@ -9833,10 +10058,10 @@ { int n = arg; #define tos _extra1 -#line 713 "vm.def" +#line 763 "vm.def" tos = RECEIVER_VARIABLE (n); -#line 9840 "vm.inl" +#line 10065 "vm.inl" #undef tos } while (0); @@ -9848,7 +10073,7 @@ } while (0) #define rec _extra1 #define val _extra1 -#line 505 "vm.def" +#line 555 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -9880,7 +10105,7 @@ } FETCH (dispatch_vec); -#line 9884 "vm.inl" +#line 10109 "vm.inl" #undef PREPARE_STACK #undef rec #undef val @@ -9899,7 +10124,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 9903 "vm.inl" +#line 10128 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -9907,10 +10132,10 @@ { int n = 1; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 9914 "vm.inl" +#line 10139 "vm.inl" #undef tos } while (0); @@ -9922,14 +10147,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 9933 "vm.inl" +#line 10158 "vm.inl" #undef PREPARE_STACK } while (0); @@ -9946,7 +10171,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 9950 "vm.inl" +#line 10175 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -9954,10 +10179,10 @@ { int n = 0; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 9961 "vm.inl" +#line 10186 "vm.inl" #undef tos } while (0); @@ -9966,10 +10191,10 @@ { int n = 1; #define tos _extra2 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 9973 "vm.inl" +#line 10198 "vm.inl" #undef tos } while (0); @@ -9982,14 +10207,14 @@ PUSH_OOP (_extra1); \ PUSH_OOP (_extra2); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 9993 "vm.inl" +#line 10218 "vm.inl" #undef PREPARE_STACK } while (0); @@ -10009,7 +10234,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 10013 "vm.inl" +#line 10238 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -10017,10 +10242,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 10024 "vm.inl" +#line 10249 "vm.inl" #undef tos } while (0); @@ -10030,10 +10255,10 @@ int n = 0; #define obj _stack0 #define val _extra1 -#line 819 "vm.def" +#line 869 "vm.def" STORE_INSTANCE_VARIABLE (obj, n, val); -#line 10037 "vm.inl" +#line 10262 "vm.inl" #undef obj #undef val } @@ -10050,7 +10275,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 10054 "vm.inl" +#line 10279 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -10058,10 +10283,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 10065 "vm.inl" +#line 10290 "vm.inl" #undef tos } while (0); @@ -10070,12 +10295,12 @@ { #define block _extra1 #define closure _extra1 -#line 826 "vm.def" +#line 876 "vm.def" EXPORT_REGS (); closure = _gst_make_block_closure (block); IMPORT_REGS(); -#line 10079 "vm.inl" +#line 10304 "vm.inl" #undef block #undef closure } @@ -10088,14 +10313,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 10099 "vm.inl" +#line 10324 "vm.inl" #undef PREPARE_STACK } while (0); @@ -10111,7 +10336,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 10115 "vm.inl" +#line 10340 "vm.inl" } while (0); /* SEND_SUPER ( -- ) */ @@ -10121,7 +10346,7 @@ int n = 1; #define PREPARE_STACK() do { \ } while (0) -#line 646 "vm.def" +#line 696 "vm.def" OOP classOOP; PREPARE_STACK (); classOOP = POP_OOP (); @@ -10131,7 +10356,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 10135 "vm.inl" +#line 10360 "vm.inl" #undef PREPARE_STACK } while (0); @@ -10147,7 +10372,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 10151 "vm.inl" +#line 10376 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -10155,10 +10380,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 10162 "vm.inl" +#line 10387 "vm.inl" #undef tos } while (0); @@ -10167,12 +10392,12 @@ { #define block _extra1 #define closure _extra1 -#line 826 "vm.def" +#line 876 "vm.def" EXPORT_REGS (); closure = _gst_make_block_closure (block); IMPORT_REGS(); -#line 10176 "vm.inl" +#line 10401 "vm.inl" #undef block #undef closure } @@ -10185,14 +10410,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 10196 "vm.inl" +#line 10421 "vm.inl" #undef PREPARE_STACK } while (0); @@ -10209,7 +10434,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 10213 "vm.inl" +#line 10438 "vm.inl" } while (0); /* PUSH_RECEIVER_VARIABLE ( -- tos ) */ @@ -10217,10 +10442,10 @@ { int n = 1; #define tos _extra1 -#line 713 "vm.def" +#line 763 "vm.def" tos = RECEIVER_VARIABLE (n); -#line 10224 "vm.inl" +#line 10449 "vm.inl" #undef tos } while (0); @@ -10231,7 +10456,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -10239,7 +10464,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 10243 "vm.inl" +#line 10468 "vm.inl" #undef PREPARE_STACK } while (0); @@ -10257,7 +10482,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 10261 "vm.inl" +#line 10486 "vm.inl" } while (0); /* STORE_OUTER_TEMP ( tos | -- tos | ) */ @@ -10266,7 +10491,7 @@ int n = arg; int scopes = 1; #define tos _stack0 -#line 721 "vm.def" +#line 771 "vm.def" OOP contextOOP; gst_block_context context; @@ -10280,7 +10505,7 @@ context->contextStack[n] = tos; -#line 10284 "vm.inl" +#line 10509 "vm.inl" #undef tos } while (0); @@ -10288,14 +10513,14 @@ do { #define val _stack0 -#line 845 "vm.def" +#line 895 "vm.def" EXPORT_REGS (); unwind_context (); IMPORT_REGS (); SET_STACKTOP (val); FETCH (dispatch_vec); -#line 10299 "vm.inl" +#line 10524 "vm.inl" #undef val } while (0); @@ -10312,25 +10537,25 @@ PREFETCH; LOCAL_COUNTER++; -#line 10316 "vm.inl" +#line 10541 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 10325 "vm.inl" +#line 10550 "vm.inl" #undef tos } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 10334 "vm.inl" +#line 10559 "vm.inl" } while (0); /* SEND_IMMEDIATE ( -- ) */ @@ -10340,7 +10565,7 @@ #define PREPARE_STACK() do { \ POP_N_OOPS (1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -10348,7 +10573,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 10352 "vm.inl" +#line 10577 "vm.inl" #undef PREPARE_STACK } while (0); @@ -10365,25 +10590,25 @@ PREFETCH; LOCAL_COUNTER++; -#line 10369 "vm.inl" +#line 10594 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 10377 "vm.inl" +#line 10602 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 10387 "vm.inl" +#line 10612 "vm.inl" #undef tos } while (0); @@ -10395,7 +10620,7 @@ } while (0) #define rec _extra1 #define val _extra1 -#line 538 "vm.def" +#line 588 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -10427,7 +10652,7 @@ } FETCH (dispatch_vec); -#line 10431 "vm.inl" +#line 10656 "vm.inl" #undef PREPARE_STACK #undef rec #undef val @@ -10446,7 +10671,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 10450 "vm.inl" +#line 10675 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -10454,10 +10679,10 @@ { int n = 1; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 10461 "vm.inl" +#line 10686 "vm.inl" #undef tos } while (0); @@ -10469,14 +10694,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 10480 "vm.inl" +#line 10705 "vm.inl" #undef PREPARE_STACK } while (0); @@ -10493,25 +10718,25 @@ PREFETCH; LOCAL_COUNTER++; -#line 10497 "vm.inl" +#line 10722 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 10505 "vm.inl" +#line 10730 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 10515 "vm.inl" +#line 10740 "vm.inl" #undef tos } while (0); @@ -10522,7 +10747,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -10530,7 +10755,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 10534 "vm.inl" +#line 10759 "vm.inl" #undef PREPARE_STACK } while (0); @@ -10547,7 +10772,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 10551 "vm.inl" +#line 10776 "vm.inl" } while (0); /* PUSH_RECEIVER_VARIABLE ( -- tos ) */ @@ -10555,10 +10780,10 @@ { int n = 0; #define tos _extra1 -#line 713 "vm.def" +#line 763 "vm.def" tos = RECEIVER_VARIABLE (n); -#line 10562 "vm.inl" +#line 10787 "vm.inl" #undef tos } while (0); @@ -10569,7 +10794,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -10577,7 +10802,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 10581 "vm.inl" +#line 10806 "vm.inl" #undef PREPARE_STACK } while (0); @@ -10594,7 +10819,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 10598 "vm.inl" +#line 10823 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -10602,10 +10827,10 @@ { int n = 0; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 10609 "vm.inl" +#line 10834 "vm.inl" #undef tos } while (0); @@ -10617,7 +10842,7 @@ PUSH_OOP (_extra1); \ } while (0) #define tos _extra2 -#line 697 "vm.def" +#line 747 "vm.def" tos = METHOD_LITERAL (n); if (UNCOMMON (IS_INT (tos)) || UNCOMMON (!is_a_kind_of (OOP_CLASS (tos), _gst_association_class))) @@ -10632,7 +10857,7 @@ else tos = ASSOCIATION_VALUE (tos); -#line 10636 "vm.inl" +#line 10861 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -10652,7 +10877,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 10656 "vm.inl" +#line 10881 "vm.inl" } while (0); /* STORE_TEMPORARY_VARIABLE ( tos | -- tos | ) */ @@ -10660,19 +10885,19 @@ { int n = 0; #define tos _stack0 -#line 717 "vm.def" +#line 767 "vm.def" STORE_METHOD_TEMPORARY (n, tos); -#line 10667 "vm.inl" +#line 10892 "vm.inl" #undef tos } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 10676 "vm.inl" +#line 10901 "vm.inl" } while (0); } @@ -10687,7 +10912,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 10691 "vm.inl" +#line 10916 "vm.inl" } while (0); /* PUSH_RECEIVER_VARIABLE ( -- tos ) */ @@ -10695,10 +10920,10 @@ { int n = 2; #define tos _extra1 -#line 713 "vm.def" +#line 763 "vm.def" tos = RECEIVER_VARIABLE (n); -#line 10702 "vm.inl" +#line 10927 "vm.inl" #undef tos } while (0); @@ -10709,7 +10934,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -10717,7 +10942,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 10721 "vm.inl" +#line 10946 "vm.inl" #undef PREPARE_STACK } while (0); @@ -10734,25 +10959,25 @@ PREFETCH; LOCAL_COUNTER++; -#line 10738 "vm.inl" +#line 10963 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 10746 "vm.inl" +#line 10971 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 10756 "vm.inl" +#line 10981 "vm.inl" #undef tos } while (0); @@ -10764,14 +10989,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 10775 "vm.inl" +#line 11000 "vm.inl" #undef PREPARE_STACK } while (0); @@ -10789,24 +11014,24 @@ PREFETCH; LOCAL_COUNTER++; -#line 10793 "vm.inl" +#line 11018 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 10801 "vm.inl" +#line 11026 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 10810 "vm.inl" +#line 11035 "vm.inl" #undef tos } while (0); @@ -10815,10 +11040,10 @@ { int n = 2; #define tos _stack0 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 10822 "vm.inl" +#line 11047 "vm.inl" #undef tos } while (0); @@ -10835,7 +11060,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 10839 "vm.inl" +#line 11064 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -10843,10 +11068,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 10850 "vm.inl" +#line 11075 "vm.inl" #undef tos } while (0); @@ -10855,12 +11080,12 @@ { #define block _extra1 #define closure _extra1 -#line 826 "vm.def" +#line 876 "vm.def" EXPORT_REGS (); closure = _gst_make_block_closure (block); IMPORT_REGS(); -#line 10864 "vm.inl" +#line 11089 "vm.inl" #undef block #undef closure } @@ -10873,14 +11098,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 10884 "vm.inl" +#line 11109 "vm.inl" #undef PREPARE_STACK } while (0); @@ -10897,7 +11122,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 10901 "vm.inl" +#line 11126 "vm.inl" } while (0); /* PUSH_SPECIAL ( -- tos ) */ @@ -10905,10 +11130,10 @@ { int n = arg; #define tos _extra1 -#line 811 "vm.def" +#line 861 "vm.def" tos = _gst_nil_oop + (n - NIL_INDEX); -#line 10912 "vm.inl" +#line 11137 "vm.inl" #undef tos } while (0); @@ -10916,7 +11141,7 @@ do { #define val _extra1 -#line 832 "vm.def" +#line 882 "vm.def" EXPORT_REGS (); if UNCOMMON (!unwind_method ()) { @@ -10928,7 +11153,7 @@ SET_STACKTOP (val); FETCH (dispatch_vec); -#line 10932 "vm.inl" +#line 11157 "vm.inl" #undef val } while (0); @@ -10947,7 +11172,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 10951 "vm.inl" +#line 11176 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -10955,10 +11180,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 10962 "vm.inl" +#line 11187 "vm.inl" #undef tos } while (0); @@ -10971,7 +11196,7 @@ #define op1 _stack0 #define op2 _extra1 #define op _stack0 -#line 274 "vm.def" +#line 324 "vm.def" PREPARE_STACK (); INTERP_BASIC_BOOL (op, op1, op2, >=); EXPORT_REGS (); @@ -10979,7 +11204,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 10983 "vm.inl" +#line 11208 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -11000,24 +11225,24 @@ PREFETCH; LOCAL_COUNTER++; -#line 11004 "vm.inl" +#line 11229 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 11012 "vm.inl" +#line 11237 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 11021 "vm.inl" +#line 11246 "vm.inl" #undef tos } while (0); @@ -11026,10 +11251,10 @@ { int n = 1; #define tos _stack0 -#line 713 "vm.def" +#line 763 "vm.def" tos = RECEIVER_VARIABLE (n); -#line 11033 "vm.inl" +#line 11258 "vm.inl" #undef tos } while (0); @@ -11046,15 +11271,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 11050 "vm.inl" +#line 11275 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 11058 "vm.inl" +#line 11283 "vm.inl" } while (0); /* PUSH_LIT_VARIABLE ( -- tos ) */ @@ -11064,7 +11289,7 @@ #define PREPARE_STACK() do { \ } while (0) #define tos _extra1 -#line 697 "vm.def" +#line 747 "vm.def" tos = METHOD_LITERAL (n); if (UNCOMMON (IS_INT (tos)) || UNCOMMON (!is_a_kind_of (OOP_CLASS (tos), _gst_association_class))) @@ -11079,7 +11304,7 @@ else tos = ASSOCIATION_VALUE (tos); -#line 11083 "vm.inl" +#line 11308 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -11097,7 +11322,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 11101 "vm.inl" +#line 11326 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -11105,10 +11330,10 @@ { int n = 2; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 11112 "vm.inl" +#line 11337 "vm.inl" #undef tos } while (0); @@ -11119,7 +11344,7 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -11127,7 +11352,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 11131 "vm.inl" +#line 11356 "vm.inl" #undef PREPARE_STACK } while (0); @@ -11143,7 +11368,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 11147 "vm.inl" +#line 11372 "vm.inl" } while (0); /* SEND_SUPER ( -- ) */ @@ -11153,7 +11378,7 @@ int n = 0; #define PREPARE_STACK() do { \ } while (0) -#line 646 "vm.def" +#line 696 "vm.def" OOP classOOP; PREPARE_STACK (); classOOP = POP_OOP (); @@ -11163,7 +11388,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 11167 "vm.inl" +#line 11392 "vm.inl" #undef PREPARE_STACK } while (0); @@ -11179,7 +11404,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 11183 "vm.inl" +#line 11408 "vm.inl" } while (0); /* PUSH_SPECIAL ( -- tos ) */ @@ -11187,10 +11412,10 @@ { int n = 0; #define tos _extra1 -#line 811 "vm.def" +#line 861 "vm.def" tos = _gst_nil_oop + (n - NIL_INDEX); -#line 11194 "vm.inl" +#line 11419 "vm.inl" #undef tos } while (0); @@ -11199,10 +11424,10 @@ { int n = arg; #define tos _extra1 -#line 753 "vm.def" +#line 803 "vm.def" STORE_RECEIVER_VARIABLE (n, tos); -#line 11206 "vm.inl" +#line 11431 "vm.inl" #undef tos } while (0); @@ -11219,17 +11444,17 @@ PREFETCH; LOCAL_COUNTER++; -#line 11223 "vm.inl" +#line 11448 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 11233 "vm.inl" +#line 11458 "vm.inl" #undef tos } while (0); @@ -11238,10 +11463,10 @@ { int n = arg; #define tos _extra2 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 11245 "vm.inl" +#line 11470 "vm.inl" #undef tos } while (0); @@ -11254,14 +11479,14 @@ PUSH_OOP (_extra1); \ PUSH_OOP (_extra2); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 11265 "vm.inl" +#line 11490 "vm.inl" #undef PREPARE_STACK } while (0); @@ -11280,24 +11505,24 @@ PREFETCH; LOCAL_COUNTER++; -#line 11284 "vm.inl" +#line 11509 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 11292 "vm.inl" +#line 11517 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 11301 "vm.inl" +#line 11526 "vm.inl" #undef tos } while (0); @@ -11306,10 +11531,10 @@ { int n = 0; #define tos _stack0 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 11313 "vm.inl" +#line 11538 "vm.inl" #undef tos } while (0); @@ -11317,14 +11542,14 @@ do { #define val _stack0 -#line 845 "vm.def" +#line 895 "vm.def" EXPORT_REGS (); unwind_context (); IMPORT_REGS (); SET_STACKTOP (val); FETCH (dispatch_vec); -#line 11328 "vm.inl" +#line 11553 "vm.inl" #undef val } while (0); @@ -11343,7 +11568,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 11347 "vm.inl" +#line 11572 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -11351,10 +11576,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 11358 "vm.inl" +#line 11583 "vm.inl" #undef tos } while (0); @@ -11364,11 +11589,11 @@ #define op1 _stack0 #define op2 _extra1 #define op _stack0 -#line 605 "vm.def" +#line 655 "vm.def" /* DO_JUMP_LOOKAHEAD (op1 == op2); */ op = (op1 == op2) ? _gst_true_oop : _gst_false_oop; -#line 11372 "vm.inl" +#line 11597 "vm.inl" #undef op1 #undef op2 #undef op @@ -11387,7 +11612,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 11391 "vm.inl" +#line 11616 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -11395,10 +11620,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 11402 "vm.inl" +#line 11627 "vm.inl" #undef tos } while (0); @@ -11407,12 +11632,12 @@ { #define block _extra1 #define closure _extra1 -#line 826 "vm.def" +#line 876 "vm.def" EXPORT_REGS (); closure = _gst_make_block_closure (block); IMPORT_REGS(); -#line 11416 "vm.inl" +#line 11641 "vm.inl" #undef block #undef closure } @@ -11425,14 +11650,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 11436 "vm.inl" +#line 11661 "vm.inl" #undef PREPARE_STACK } while (0); @@ -11450,24 +11675,24 @@ PREFETCH; LOCAL_COUNTER++; -#line 11454 "vm.inl" +#line 11679 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 11462 "vm.inl" +#line 11687 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 11471 "vm.inl" +#line 11696 "vm.inl" #undef tos } while (0); @@ -11476,10 +11701,10 @@ { int n = 3; #define tos _stack0 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 11483 "vm.inl" +#line 11708 "vm.inl" #undef tos } while (0); @@ -11498,16 +11723,16 @@ PREFETCH; LOCAL_COUNTER++; -#line 11502 "vm.inl" +#line 11727 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 11511 "vm.inl" +#line 11736 "vm.inl" #undef tos } while (0); @@ -11516,10 +11741,10 @@ { #define tos _stack1 #define tos2 _stack0 -#line 853 "vm.def" +#line 903 "vm.def" tos2 = tos; -#line 11523 "vm.inl" +#line 11748 "vm.inl" #undef tos #undef tos2 } @@ -11531,7 +11756,7 @@ #define PREPARE_STACK() do { \ STACK_AT (0) = _stack0; \ } while (0) -#line 657 "vm.def" +#line 707 "vm.def" const struct builtin_selector *bs = &_gst_builtin_selectors[n]; PREPARE_STACK (); EXPORT_REGS (); @@ -11539,7 +11764,7 @@ IMPORT_REGS (); FETCH (dispatch_vec); -#line 11543 "vm.inl" +#line 11768 "vm.inl" #undef PREPARE_STACK } while (0); @@ -11558,7 +11783,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 11562 "vm.inl" +#line 11787 "vm.inl" } while (0); /* PUSH_LIT_CONSTANT ( -- tos ) */ @@ -11566,10 +11791,10 @@ { int n = arg; #define tos _extra1 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 11573 "vm.inl" +#line 11798 "vm.inl" #undef tos } while (0); @@ -11578,10 +11803,10 @@ { int n = 0; #define tos _extra2 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 11585 "vm.inl" +#line 11810 "vm.inl" #undef tos } while (0); @@ -11596,7 +11821,7 @@ #define idx _extra1 #define val _extra2 #define res _stack0 -#line 472 "vm.def" +#line 522 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -11628,7 +11853,7 @@ } FETCH (dispatch_vec); -#line 11632 "vm.inl" +#line 11857 "vm.inl" #undef PREPARE_STACK #undef rec #undef idx @@ -11651,7 +11876,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 11655 "vm.inl" +#line 11880 "vm.inl" } while (0); /* DUP_STACK_TOP ( tos | -- tos | tos2 ) */ @@ -11659,10 +11884,10 @@ { #define tos _stack0 #define tos2 _extra1 -#line 853 "vm.def" +#line 903 "vm.def" tos2 = tos; -#line 11666 "vm.inl" +#line 11891 "vm.inl" #undef tos #undef tos2 } @@ -11672,10 +11897,10 @@ { int n = arg; #define tos _extra2 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 11679 "vm.inl" +#line 11904 "vm.inl" #undef tos } while (0); @@ -11684,10 +11909,10 @@ { int n = 1; #define tos _extra3 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 11691 "vm.inl" +#line 11916 "vm.inl" #undef tos } while (0); @@ -11703,14 +11928,39 @@ #define op2 _extra3 #define op _extra2 #line 229 "vm.def" - INTERP_BASIC_OP (op, op1, op2, iarg1 += iarg2, farg1 + farg2); + if COMMON (ARE_INTS(op1, op2)) + { + intptr_t iop1 = (intptr_t) op1; + intptr_t iop2 = ((intptr_t) op2) - 1; + intptr_t iresult = iop1 + iop2; + if (iresult < iop1) + { + if (iop2 < 0) + { + op = (OOP) iresult; + break; + } + } + else + { + if (iop2 >= 0) + { + op = (OOP) iresult; + break; + } + } + } + else if COMMON ((IS_INT (op1) || OOP_CLASS(op1) == _gst_floatd_class) + && (IS_INT (op2) || OOP_CLASS(op2) == _gst_floatd_class)) + RAW_FLOATD_OP(op, op1, op2, farg1 + farg2); + PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (_gst_builtin_selectors[PLUS_SPECIAL].symbol, 1); IMPORT_REGS (); FETCH (dispatch_vec); -#line 11714 "vm.inl" +#line 11964 "vm.inl" #undef PREPARE_STACK #undef op1 #undef op2 @@ -11731,15 +11981,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 11735 "vm.inl" +#line 11985 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 11743 "vm.inl" +#line 11993 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -11747,10 +11997,10 @@ { int n = 4; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 11754 "vm.inl" +#line 12004 "vm.inl" #undef tos } while (0); @@ -11768,25 +12018,25 @@ PREFETCH; LOCAL_COUNTER++; -#line 11772 "vm.inl" +#line 12022 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 11781 "vm.inl" +#line 12031 "vm.inl" #undef tos } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 11790 "vm.inl" +#line 12040 "vm.inl" } while (0); /* PUSH_LIT_VARIABLE ( -- tos ) */ @@ -11797,7 +12047,7 @@ POP_N_OOPS (1); \ } while (0) #define tos _stack0 -#line 697 "vm.def" +#line 747 "vm.def" tos = METHOD_LITERAL (n); if (UNCOMMON (IS_INT (tos)) || UNCOMMON (!is_a_kind_of (OOP_CLASS (tos), _gst_association_class))) @@ -11812,7 +12062,7 @@ else tos = ASSOCIATION_VALUE (tos); -#line 11816 "vm.inl" +#line 12066 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -11832,7 +12082,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 11836 "vm.inl" +#line 12086 "vm.inl" } while (0); /* DUP_STACK_TOP ( tos | -- tos | tos2 ) */ @@ -11840,10 +12090,10 @@ { #define tos _stack0 #define tos2 _extra1 -#line 853 "vm.def" +#line 903 "vm.def" tos2 = tos; -#line 11847 "vm.inl" +#line 12097 "vm.inl" #undef tos #undef tos2 } @@ -11853,10 +12103,10 @@ { int n = arg; #define tos _extra2 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 11860 "vm.inl" +#line 12110 "vm.inl" #undef tos } while (0); @@ -11869,14 +12119,14 @@ PUSH_OOP (_extra1); \ PUSH_OOP (_extra2); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 11880 "vm.inl" +#line 12130 "vm.inl" #undef PREPARE_STACK } while (0); @@ -11896,7 +12146,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 11900 "vm.inl" +#line 12150 "vm.inl" } while (0); /* POP_INTO_NEW_STACKTOP ( obj | val -- obj | ) */ @@ -11905,10 +12155,10 @@ int n = 1; #define obj _stack1 #define val _stack0 -#line 819 "vm.def" +#line 869 "vm.def" STORE_INSTANCE_VARIABLE (obj, n, val); -#line 11912 "vm.inl" +#line 12162 "vm.inl" #undef obj #undef val } @@ -11921,14 +12171,14 @@ #define PREPARE_STACK() do { \ POP_N_OOPS (1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 11932 "vm.inl" +#line 12182 "vm.inl" #undef PREPARE_STACK } while (0); @@ -11946,24 +12196,24 @@ PREFETCH; LOCAL_COUNTER++; -#line 11950 "vm.inl" +#line 12200 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 11958 "vm.inl" +#line 12208 "vm.inl" } while (0); /* POP_STACK_TOP ( tos -- ) */ do { #define tos _stack0 -#line 823 "vm.def" +#line 873 "vm.def" -#line 11967 "vm.inl" +#line 12217 "vm.inl" #undef tos } while (0); @@ -11972,10 +12222,10 @@ { int n = 1; #define tos _stack0 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 11979 "vm.inl" +#line 12229 "vm.inl" #undef tos } while (0); @@ -11983,14 +12233,14 @@ do { #define val _stack0 -#line 845 "vm.def" +#line 895 "vm.def" EXPORT_REGS (); unwind_context (); IMPORT_REGS (); SET_STACKTOP (val); FETCH (dispatch_vec); -#line 11994 "vm.inl" +#line 12244 "vm.inl" #undef val } while (0); @@ -12008,7 +12258,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 12012 "vm.inl" +#line 12262 "vm.inl" } while (0); /* STORE_TEMPORARY_VARIABLE ( tos | -- tos | ) */ @@ -12016,19 +12266,19 @@ { int n = 3; #define tos _stack0 -#line 717 "vm.def" +#line 767 "vm.def" STORE_METHOD_TEMPORARY (n, tos); -#line 12023 "vm.inl" +#line 12273 "vm.inl" #undef tos } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 12032 "vm.inl" +#line 12282 "vm.inl" } while (0); } @@ -12045,7 +12295,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 12049 "vm.inl" +#line 12299 "vm.inl" } while (0); /* DUP_STACK_TOP ( tos | -- tos | tos2 ) */ @@ -12053,10 +12303,10 @@ { #define tos _stack0 #define tos2 _extra1 -#line 853 "vm.def" +#line 903 "vm.def" tos2 = tos; -#line 12060 "vm.inl" +#line 12310 "vm.inl" #undef tos #undef tos2 } @@ -12069,14 +12319,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 12080 "vm.inl" +#line 12330 "vm.inl" #undef PREPARE_STACK } while (0); @@ -12094,7 +12344,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 12098 "vm.inl" +#line 12348 "vm.inl" } while (0); /* STORE_RECEIVER_VARIABLE ( tos | -- tos | ) */ @@ -12102,10 +12352,10 @@ { int n = arg; #define tos _stack0 -#line 753 "vm.def" +#line 803 "vm.def" STORE_RECEIVER_VARIABLE (n, tos); -#line 12109 "vm.inl" +#line 12359 "vm.inl" #undef tos } while (0); @@ -12113,14 +12363,14 @@ do { #define val _stack0 -#line 845 "vm.def" +#line 895 "vm.def" EXPORT_REGS (); unwind_context (); IMPORT_REGS (); SET_STACKTOP (val); FETCH (dispatch_vec); -#line 12124 "vm.inl" +#line 12374 "vm.inl" #undef val } while (0); @@ -12136,25 +12386,25 @@ PREFETCH; LOCAL_COUNTER++; -#line 12140 "vm.inl" +#line 12390 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 12148 "vm.inl" +#line 12398 "vm.inl" } while (0); /* PUSH_SELF ( -- tos ) */ do { #define tos _extra1 -#line 885 "vm.def" +#line 935 "vm.def" tos = _gst_self; -#line 12158 "vm.inl" +#line 12408 "vm.inl" #undef tos } while (0); @@ -12166,14 +12416,14 @@ #define PREPARE_STACK() do { \ PUSH_OOP (_extra1); \ } while (0) -#line 638 "vm.def" +#line 688 "vm.def" PREPARE_STACK (); EXPORT_REGS (); SEND_MESSAGE (METHOD_LITERAL (sel), n); IMPORT_REGS (); FETCH (dispatch_vec); -#line 12177 "vm.inl" +#line 12427 "vm.inl" #undef PREPARE_STACK } while (0); @@ -12192,7 +12442,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 12196 "vm.inl" +#line 12446 "vm.inl" } while (0); /* NOT_NIL_SPECIAL ( rec -- val ) */ @@ -12200,11 +12450,11 @@ { #define rec _stack0 #define val _stack0 -#line 576 "vm.def" +#line 626 "vm.def" /* DO_JUMP_LOOKAHEAD (rec != _gst_nil_oop); */ val = rec != _gst_nil_oop ? _gst_true_oop : _gst_false_oop; -#line 12208 "vm.inl" +#line 12458 "vm.inl" #undef rec #undef val } @@ -12214,10 +12464,10 @@ { #define tos _stack0 #define tos2 _extra1 -#line 853 "vm.def" +#line 903 "vm.def" tos2 = tos; -#line 12221 "vm.inl" +#line 12471 "vm.inl" #undef tos #undef tos2 } @@ -12231,7 +12481,7 @@ PUSH_OOP (_extra1); \ } while (0) #define tos _extra1 -#line 769 "vm.def" +#line 819 "vm.def" if UNCOMMON (tos == _gst_false_oop) { PREPARE_STACK (); @@ -12249,7 +12499,7 @@ FETCH (dispatch_vec); } -#line 12253 "vm.inl" +#line 12503 "vm.inl" #undef PREPARE_STACK #undef tos } @@ -12269,7 +12519,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 12273 "vm.inl" +#line 12523 "vm.inl" } while (0); /* DUP_STACK_TOP ( tos | -- tos | tos2 ) */ @@ -12277,10 +12527,10 @@ { #define tos _stack0 #define tos2 _extra1 -#line 853 "vm.def" +#line 903 "vm.def" tos2 = tos; -#line 12284 "vm.inl" +#line 12534 "vm.inl" #undef tos #undef tos2 } @@ -12290,10 +12540,10 @@ { int n = arg; #define tos _extra2 -#line 815 "vm.def" +#line 865 "vm.def" tos = METHOD_LITERAL (n); -#line 12297 "vm.inl" +#line 12547 "vm.inl" #undef tos } while (0); @@ -12311,15 +12561,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 12315 "vm.inl" +#line 12565 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 12323 "vm.inl" +#line 12573 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -12327,10 +12577,10 @@ { int n = 0; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 12334 "vm.inl" +#line 12584 "vm.inl" #undef tos } while (0); @@ -12338,14 +12588,14 @@ do { #define val _extra1 -#line 845 "vm.def" +#line 895 "vm.def" EXPORT_REGS (); unwind_context (); IMPORT_REGS (); SET_STACKTOP (val); FETCH (dispatch_vec); -#line 12349 "vm.inl" +#line 12599 "vm.inl" #undef val } while (0); @@ -12365,7 +12615,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 12369 "vm.inl" +#line 12619 "vm.inl" } while (0); /* PUSH_INTEGER ( -- tos ) */ @@ -12373,10 +12623,10 @@ { int n = arg; #define tos _extra1 -#line 807 "vm.def" +#line 857 "vm.def" tos = FROM_INT (n); -#line 12380 "vm.inl" +#line 12630 "vm.inl" #undef tos } while (0); @@ -12390,7 +12640,7 @@ #define idx _stack0 #define val _extra1 #define res _stack1 -#line 472 "vm.def" +#line 522 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -12422,7 +12672,7 @@ } FETCH (dispatch_vec); -#line 12426 "vm.inl" +#line 12676 "vm.inl" #undef PREPARE_STACK #undef rec #undef idx @@ -12444,7 +12694,7 @@ PREFETCH; LOCAL_COUNTER++; -#line 12448 "vm.inl" +#line 12698 "vm.inl" } while (0); /* PUSH_TEMPORARY_VARIABLE ( -- tos ) */ @@ -12452,10 +12702,10 @@ { int n = arg; #define tos _extra1 -#line 678 "vm.def" +#line 728 "vm.def" tos = METHOD_TEMPORARY (n); -#line 12459 "vm.inl" +#line 12709 "vm.inl" #undef tos } while (0); @@ -12467,7 +12717,7 @@ } while (0) #define rec _extra1 #define val _extra1 -#line 538 "vm.def" +#line 588 "vm.def" OOP classOOP; PREPARE_STACK (); EXPORT_REGS (); @@ -12499,7 +12749,7 @@ } FETCH (dispatch_vec); -#line 12503 "vm.inl" +#line 12753 "vm.inl" #undef PREPARE_STACK #undef rec #undef val @@ -12518,15 +12768,15 @@ PREFETCH; LOCAL_COUNTER++; -#line 12522 "vm.inl" +#line 12772 "vm.inl" } while (0); /* LINE_NUMBER_BYTECODE ( -- ) */ do { -#line 882 "vm.def" +#line 932 "vm.def" -#line 12530 "vm.inl" +#line 12780 "vm.inl" } while (0); /* PUSH_OUTER_TEMP ( -- tos ) */ @@ -12535,7 +12785,7 @@ int n = 2; int scopes = 1; #define tos _extra1 -#line 682 "vm.def" +#line 732 "vm.def" OOP contextOOP; gst_block_context context; @@ -12549,7 +12799,7 @@ tos = context->contextStack[n]; -#line 12553 "vm.inl" +#line 12803 "vm.inl" #undef tos } while (0); diff -ru smalltalk-3.0.1/main.c smalltalk-3.0.2/main.c --- smalltalk-3.0.1/main.c 2008-01-27 22:50:53.000000000 +0100 +++ smalltalk-3.0.2/main.c 2008-03-05 14:38:31.000000000 +0100 @@ -229,6 +229,7 @@ case OPT_EMACS_MODE: stdin_prompt = EMACS_PROCESS_MARKER "st> "; gst_set_var (GST_VERBOSITY, 1); + flags |= GST_NO_TTY; break; case 'q': case 'Q': diff -ru smalltalk-3.0.1/packages/dbd-mysql/Column.st smalltalk-3.0.2/packages/dbd-mysql/Column.st --- smalltalk-3.0.1/packages/dbd-mysql/Column.st 2008-01-31 15:40:28.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-mysql/Column.st 2008-03-07 11:53:44.000000000 +0100 @@ -11,7 +11,9 @@ | Written by Josh Miller, ported by Markus Fritsche, | refactored/rewritten by Paolo Bonzini | -| This file is part of GNU Smalltalk. +| Copyright 2003, 2007, 2008 Free Software Foundation, Inc. +| +| This file is part of the GNU Smalltalk class library. | | The GNU Smalltalk class library is free software; you can redistribute it | and/or modify it under the terms of the GNU Lesser General Public License diff -ru smalltalk-3.0.1/packages/dbd-mysql/Connection.st smalltalk-3.0.2/packages/dbd-mysql/Connection.st --- smalltalk-3.0.1/packages/dbd-mysql/Connection.st 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-mysql/Connection.st 2008-03-07 11:53:44.000000000 +0100 @@ -11,7 +11,9 @@ | Written by Josh Miller, ported by Markus Fritsche, | refactored/rewritten by Paolo Bonzini | -| This file is part of GNU Smalltalk. +| Copyright 2003, 2007, 2008 Free Software Foundation, Inc. +| +| This file is part of the GNU Smalltalk class library. | | The GNU Smalltalk class library is free software; you can redistribute it | and/or modify it under the terms of the GNU Lesser General Public License diff -ru smalltalk-3.0.1/packages/dbd-mysql/Extensions.st smalltalk-3.0.2/packages/dbd-mysql/Extensions.st --- smalltalk-3.0.1/packages/dbd-mysql/Extensions.st 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-mysql/Extensions.st 2008-02-27 19:03:12.000000000 +0100 @@ -1,3 +1,40 @@ +"===================================================================== +| +| MySQL DBI driver - Base class extensions +| +| + ======================================================================" + +"====================================================================== +| +| Copyright 2002 Josh Miller +| Written by Josh Miller, ported by Markus Fritsche, +| refactored/rewritten by Paolo Bonzini +| +| Copyright 2003, 2007, 2008 Free Software Foundation, Inc. +| +| This file is part of the GNU Smalltalk class library. +| +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. +| +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. +| + ======================================================================" + + + + ByteArray extend [ asInteger [ diff -ru smalltalk-3.0.1/packages/dbd-mysql/MySQLTests.st smalltalk-3.0.2/packages/dbd-mysql/MySQLTests.st --- smalltalk-3.0.1/packages/dbd-mysql/MySQLTests.st 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-mysql/MySQLTests.st 2008-03-07 11:53:44.000000000 +0100 @@ -10,7 +10,9 @@ | Copyright 2002 Josh Miller | Written by Josh Miller, ported by Paolo Bonzini | -| This file is part of GNU Smalltalk. +| Copyright 2003, 2007, 2008 Free Software Foundation, Inc. +| +| This file is part of the GNU Smalltalk class library. | | The GNU Smalltalk class library is free software; you can redistribute it | and/or modify it under the terms of the GNU Lesser General Public License diff -ru smalltalk-3.0.1/packages/dbd-mysql/ResultSet.st smalltalk-3.0.2/packages/dbd-mysql/ResultSet.st --- smalltalk-3.0.1/packages/dbd-mysql/ResultSet.st 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-mysql/ResultSet.st 2008-02-27 19:03:12.000000000 +0100 @@ -11,7 +11,9 @@ | Written by Josh Miller, ported by Markus Fritsche, | refactored/rewritten by Paolo Bonzini | -| This file is part of GNU Smalltalk. +| Copyright 2003, 2007, 2008 Free Software Foundation, Inc. +| +| This file is part of the GNU Smalltalk class library. | | The GNU Smalltalk class library is free software; you can redistribute it | and/or modify it under the terms of the GNU Lesser General Public License diff -ru smalltalk-3.0.1/packages/dbd-mysql/Row.st smalltalk-3.0.2/packages/dbd-mysql/Row.st --- smalltalk-3.0.1/packages/dbd-mysql/Row.st 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-mysql/Row.st 2008-02-27 19:03:12.000000000 +0100 @@ -11,7 +11,9 @@ | Written by Josh Miller, ported by Markus Fritsche, | refactored/rewritten by Paolo Bonzini | -| This file is part of GNU Smalltalk. +| Copyright 2003, 2007, 2008 Free Software Foundation, Inc. +| +| This file is part of the GNU Smalltalk class library. | | The GNU Smalltalk class library is free software; you can redistribute it | and/or modify it under the terms of the GNU Lesser General Public License diff -ru smalltalk-3.0.1/packages/dbd-mysql/Statement.st smalltalk-3.0.2/packages/dbd-mysql/Statement.st --- smalltalk-3.0.1/packages/dbd-mysql/Statement.st 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-mysql/Statement.st 2008-02-27 19:03:12.000000000 +0100 @@ -11,7 +11,9 @@ | Written by Josh Miller, ported by Markus Fritsche, | refactored/rewritten by Paolo Bonzini | -| This file is part of GNU Smalltalk. +| Copyright 2003, 2007, 2008 Free Software Foundation, Inc. +| +| This file is part of the GNU Smalltalk class library. | | The GNU Smalltalk class library is free software; you can redistribute it | and/or modify it under the terms of the GNU Lesser General Public License diff -ru smalltalk-3.0.1/packages/dbd-postgresql/ColumnInfo.st smalltalk-3.0.2/packages/dbd-postgresql/ColumnInfo.st --- smalltalk-3.0.1/packages/dbd-postgresql/ColumnInfo.st 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-postgresql/ColumnInfo.st 2008-02-27 19:03:12.000000000 +0100 @@ -1,20 +1,31 @@ +"===================================================================== +| +| PosgreSQL DBI driver - PGColumnInfo class +| +| + ======================================================================" + "====================================================================== | | Copyright 2006 Mike Anderson | Written by Mike Anderson | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. -| -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. -| -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| This file is part of the GNU Smalltalk class library. +| +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. +| +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " diff -ru smalltalk-3.0.1/packages/dbd-postgresql/Connection.st smalltalk-3.0.2/packages/dbd-postgresql/Connection.st --- smalltalk-3.0.1/packages/dbd-postgresql/Connection.st 2008-01-22 11:14:32.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-postgresql/Connection.st 2008-03-07 11:53:44.000000000 +0100 @@ -1,20 +1,31 @@ +"===================================================================== +| +| PosgreSQL DBI driver - Connection class and related classes +| +| + ======================================================================" + "====================================================================== | | Written by Mike Anderson gnu-smalltalk@gingerbread.plus.com 2006 | Based on PostgreSQL interface by Thomas Braun shin@shin.homelinux.net | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. -| -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. -| -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| This file is part of the GNU Smalltalk class library. +| +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. +| +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " diff -ru smalltalk-3.0.1/packages/dbd-postgresql/ResultSet.st smalltalk-3.0.2/packages/dbd-postgresql/ResultSet.st --- smalltalk-3.0.1/packages/dbd-postgresql/ResultSet.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-postgresql/ResultSet.st 2008-02-27 19:03:12.000000000 +0100 @@ -1,20 +1,31 @@ +"===================================================================== +| +| PosgreSQL DBI driver - ResultSet class +| +| + ======================================================================" + "====================================================================== | | Written by Mike Anderson gnu-smalltalk@gingerbread.plus.com 2006 | Based on PostgreSQL interface by Thomas Braun shin@shin.homelinux.net | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. -| -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. -| -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| This file is part of the GNU Smalltalk class library. +| +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. +| +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " diff -ru smalltalk-3.0.1/packages/dbd-postgresql/Row.st smalltalk-3.0.2/packages/dbd-postgresql/Row.st --- smalltalk-3.0.1/packages/dbd-postgresql/Row.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-postgresql/Row.st 2008-02-27 19:03:12.000000000 +0100 @@ -1,20 +1,31 @@ +"===================================================================== +| +| PosgreSQL DBI driver - Row class +| +| + ======================================================================" + "====================================================================== | | Copyright 2006 Mike Anderson | Written by Mike Anderson | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. -| -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. -| -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| This file is part of the GNU Smalltalk class library. +| +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. +| +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " Only in smalltalk-3.0.2/packages/dbd-sqlite: ChangeLog diff -ru smalltalk-3.0.1/packages/dbd-sqlite/ColumnInfo.st smalltalk-3.0.2/packages/dbd-sqlite/ColumnInfo.st --- smalltalk-3.0.1/packages/dbd-sqlite/ColumnInfo.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-sqlite/ColumnInfo.st 2008-03-07 11:53:44.000000000 +0100 @@ -11,18 +11,22 @@ | Copyright 2007 Free Software Foundation, Inc. | Written by Daniele Sciascia | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. +| This file is part of the GNU Smalltalk class library. | -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. | -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " diff -ru smalltalk-3.0.1/packages/dbd-sqlite/Connection.st smalltalk-3.0.2/packages/dbd-sqlite/Connection.st --- smalltalk-3.0.1/packages/dbd-sqlite/Connection.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-sqlite/Connection.st 2008-03-07 11:53:44.000000000 +0100 @@ -11,18 +11,22 @@ | Copyright 2007 Free Software Foundation, Inc. | Written by Daniele Sciascia | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. +| This file is part of the GNU Smalltalk class library. | -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. | -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " diff -ru smalltalk-3.0.1/packages/dbd-sqlite/Makefile.in smalltalk-3.0.2/packages/dbd-sqlite/Makefile.in --- smalltalk-3.0.1/packages/dbd-sqlite/Makefile.in 2008-01-31 15:40:57.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-sqlite/Makefile.in 2008-03-07 11:54:40.000000000 +0100 @@ -37,7 +37,7 @@ build_triplet = @build@ host_triplet = @host@ subdir = packages/dbd-sqlite -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/build-aux/bold.m4 \ $(top_srcdir)/build-aux/codeset.m4 \ diff -ru smalltalk-3.0.1/packages/dbd-sqlite/ResultSet.st smalltalk-3.0.2/packages/dbd-sqlite/ResultSet.st --- smalltalk-3.0.1/packages/dbd-sqlite/ResultSet.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-sqlite/ResultSet.st 2008-02-27 19:03:12.000000000 +0100 @@ -11,18 +11,22 @@ | Copyright 2007 Free Software Foundation, Inc. | Written by Daniele Sciascia | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. +| This file is part of the GNU Smalltalk class library. | -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. | -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " @@ -62,7 +66,7 @@ [ resCode := self handle exec. resCode = 100 ] whileTrue: [rows addLast: - (SQLiteRow forValues: (self handle returnedRow) in: self)]. + (SQLiteRow forValues: self handle returnedRow copy in: self)]. self handle checkError: resCode = 101. ] diff -ru smalltalk-3.0.1/packages/dbd-sqlite/Row.st smalltalk-3.0.2/packages/dbd-sqlite/Row.st --- smalltalk-3.0.1/packages/dbd-sqlite/Row.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-sqlite/Row.st 2008-02-27 19:03:12.000000000 +0100 @@ -11,18 +11,22 @@ | Copyright 2007 Free Software Foundation, Inc. | Written by Daniele Sciascia | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. +| This file is part of the GNU Smalltalk class library. | -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. | -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " diff -ru smalltalk-3.0.1/packages/dbd-sqlite/SQLite.st smalltalk-3.0.2/packages/dbd-sqlite/SQLite.st --- smalltalk-3.0.1/packages/dbd-sqlite/SQLite.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-sqlite/SQLite.st 2008-02-27 19:03:12.000000000 +0100 @@ -11,18 +11,22 @@ | Copyright 2007 Free Software Foundation, Inc. | Written by Daniele Sciascia | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. +| This file is part of the GNU Smalltalk class library. | -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. | -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " diff -ru smalltalk-3.0.1/packages/dbd-sqlite/SQLiteTests.st smalltalk-3.0.2/packages/dbd-sqlite/SQLiteTests.st --- smalltalk-3.0.1/packages/dbd-sqlite/SQLiteTests.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-sqlite/SQLiteTests.st 2008-02-27 19:03:12.000000000 +0100 @@ -11,18 +11,22 @@ | Copyright 2007 Free Software Foundation, Inc. | Written by Daniele Sciascia | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. +| This file is part of the GNU Smalltalk class library. | -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. | -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " diff -ru smalltalk-3.0.1/packages/dbd-sqlite/Statement.st smalltalk-3.0.2/packages/dbd-sqlite/Statement.st --- smalltalk-3.0.1/packages/dbd-sqlite/Statement.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-sqlite/Statement.st 2008-02-27 19:03:12.000000000 +0100 @@ -11,18 +11,22 @@ | Copyright 2007 Free Software Foundation, Inc. | Written by Daniele Sciascia | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. +| This file is part of the GNU Smalltalk class library. | -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. | -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " diff -ru smalltalk-3.0.1/packages/dbd-sqlite/package.xml smalltalk-3.0.2/packages/dbd-sqlite/package.xml --- smalltalk-3.0.1/packages/dbd-sqlite/package.xml 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbd-sqlite/package.xml 2008-03-07 11:53:44.000000000 +0100 @@ -24,4 +24,6 @@ ColumnInfo.st SQLiteTests.st + + ChangeLog diff -ru smalltalk-3.0.1/packages/dbi/ColumnInfo.st smalltalk-3.0.2/packages/dbi/ColumnInfo.st --- smalltalk-3.0.1/packages/dbi/ColumnInfo.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbi/ColumnInfo.st 2008-03-07 11:53:44.000000000 +0100 @@ -1,20 +1,31 @@ +"===================================================================== +| +| Generic database interface - ColumnInfo class +| +| + ======================================================================" + "====================================================================== | | Copyright 2006 Mike Anderson | Written by Mike Anderson | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. -| -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. -| -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| This file is part of the GNU Smalltalk class library. +| +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. +| +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " diff -ru smalltalk-3.0.1/packages/dbi/Connection.st smalltalk-3.0.2/packages/dbi/Connection.st --- smalltalk-3.0.1/packages/dbi/Connection.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbi/Connection.st 2008-03-07 11:53:44.000000000 +0100 @@ -1,20 +1,31 @@ +"===================================================================== +| +| Generic database interface - Connection class +| +| + ======================================================================" + "====================================================================== | | Copyright 2006 Mike Anderson | Written by Mike Anderson | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. -| -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. -| -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| This file is part of the GNU Smalltalk class library. +| +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. +| +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " diff -ru smalltalk-3.0.1/packages/dbi/ConnectionInfo.st smalltalk-3.0.2/packages/dbi/ConnectionInfo.st --- smalltalk-3.0.1/packages/dbi/ConnectionInfo.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbi/ConnectionInfo.st 2008-02-27 19:03:12.000000000 +0100 @@ -1,20 +1,31 @@ +"===================================================================== +| +| Generic database interface - ConnectionInfo class +| +| + ======================================================================" + "====================================================================== | | Copyright 2006 Mike Anderson | Written by Mike Anderson | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. -| -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. -| -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| This file is part of the GNU Smalltalk class library. +| +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. +| +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " diff -ru smalltalk-3.0.1/packages/dbi/ResultSet.st smalltalk-3.0.2/packages/dbi/ResultSet.st --- smalltalk-3.0.1/packages/dbi/ResultSet.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbi/ResultSet.st 2008-03-07 11:53:44.000000000 +0100 @@ -1,20 +1,31 @@ +"===================================================================== +| +| Generic database interface - ResultSet class +| +| + ======================================================================" + "====================================================================== | | Copyright 2006 Mike Anderson | Written by Mike Anderson | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. -| -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. -| -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| This file is part of the GNU Smalltalk class library. +| +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. +| +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " diff -ru smalltalk-3.0.1/packages/dbi/Row.st smalltalk-3.0.2/packages/dbi/Row.st --- smalltalk-3.0.1/packages/dbi/Row.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbi/Row.st 2008-03-07 11:53:44.000000000 +0100 @@ -1,20 +1,31 @@ +"===================================================================== +| +| Generic database interface - Row class +| +| + ======================================================================" + "====================================================================== | | Copyright 2006 Mike Anderson | Written by Mike Anderson | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. -| -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. -| -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| This file is part of the GNU Smalltalk class library. +| +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. +| +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " diff -ru smalltalk-3.0.1/packages/dbi/Statement.st smalltalk-3.0.2/packages/dbi/Statement.st --- smalltalk-3.0.1/packages/dbi/Statement.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/dbi/Statement.st 2008-02-27 19:03:12.000000000 +0100 @@ -1,20 +1,31 @@ +"===================================================================== +| +| Generic database interface - Statement class +| +| + ======================================================================" + "====================================================================== | | Copyright 2006 Mike Anderson | Written by Mike Anderson | -| This is free software; you can redistribute it and/or modify it -| under the terms of the GNU General Public License as published by the Free -| Software Foundation; either version 2, or (at your option) any later version. -| -| This code is distributed in the hope that it will be useful, but WITHOUT -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -| FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -| details. -| -| You should have received a copy of the GNU General Public License along with -| Mumble; see the file COPYING. If not, write to the Free Software -| Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +| This file is part of the GNU Smalltalk class library. +| +| The GNU Smalltalk class library is free software; you can redistribute it +| and/or modify it under the terms of the GNU Lesser General Public License +| as published by the Free Software Foundation; either version 2.1, or (at +| your option) any later version. +| +| The GNU Smalltalk class library is distributed in the hope that it will be +| useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +| General Public License for more details. +| +| You should have received a copy of the GNU Lesser General Public License +| along with the GNU Smalltalk class library; see the file COPYING.LIB. +| If not, write to the Free Software Foundation, 59 Temple Place - Suite +| 330, Boston, MA 02110-1301, USA. | ====================================================================== " diff -ru smalltalk-3.0.1/packages/gnuplot/2D.st smalltalk-3.0.2/packages/gnuplot/2D.st --- smalltalk-3.0.1/packages/gnuplot/2D.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/gnuplot/2D.st 2008-03-05 14:38:31.000000000 +0100 @@ -33,7 +33,7 @@ - | xAxis x2Axis yAxis y2Axis | + | xAxis x2Axis yAxis y2Axis barWidth barGap | GPPlot class >> defaultStyleClass [ ^GPPlotStyle @@ -88,6 +88,38 @@ y2Axis := aGPAxis ] + barGap [ + + ^barGap + ] + + barGap: anInteger [ + + barGap := anInteger + ] + + barWidth [ + + barWidth isNil ifTrue: [ barWidth := 1 ]. + ^barWidth + ] + + barWidth: aNumber [ + + barWidth := aNumber + ] + + newGroup: anInteger of: maxGroup [ + + | gap | + gap := (self barGap ifNil: [ #(##(1/2) 1) at: maxGroup ifAbsent: [2] ]) + - (1 - self barWidth). + ^(super newGroup: anInteger of: maxGroup) + barOffset: (2 * anInteger - 1 - maxGroup) / 2 / (maxGroup + gap); + barWidth: self barWidth / (maxGroup + gap); + yourself + ] + function: exprBlock [ | expr | @@ -98,7 +130,7 @@ lrSteps: aDataSourceOrArray [ ^self add: ((GPXYSeries on: aDataSourceOrArray) - style: 'steps'; + graphType: 'steps'; yourself) ] @@ -113,7 +145,7 @@ ulSteps: aDataSourceOrArray [ ^self add: ((GPXYSeries on: aDataSourceOrArray) - style: 'fsteps'; + graphType: 'fsteps'; yourself) ] @@ -128,7 +160,7 @@ centerSteps: aDataSourceOrArray [ ^self add: ((GPXYSeries on: aDataSourceOrArray) - style: 'histeps'; + graphType: 'histeps'; yourself) ] @@ -143,7 +175,7 @@ dots: aDataSourceOrArray [ ^self add: ((GPXYSeries on: aDataSourceOrArray) - style: 'dots'; + graphType: 'dots'; yourself) ] @@ -158,7 +190,7 @@ points: aDataSourceOrArray [ ^self add: ((GPXYSeries on: aDataSourceOrArray) - style: 'points'; + graphType: 'points'; yourself) ] @@ -175,7 +207,7 @@ "For now, center is passed from here. Later, GPTextSeries will have its own params class." ^self add: ((GPTextSeries on: aDataSourceOrArray) - style: 'labels center'; + graphType: 'labels center'; yourself) ] @@ -190,7 +222,7 @@ bubbles: aDataSourceOrArray [ ^self add: ((GPBubbleSeries on: aDataSourceOrArray) - style: 'points'; + graphType: 'points'; yourself) ] @@ -205,7 +237,7 @@ impulses: aDataSourceOrArray [ ^self add: ((GPXYSeries on: aDataSourceOrArray) - style: 'impulses'; + graphType: 'impulses'; yourself) ] @@ -220,7 +252,7 @@ vectors: aDataSourceOrArray [ ^self add: ((GPVectorSeries on: aDataSourceOrArray) - style: 'vectors'; + graphType: 'vectors'; yourself) ] @@ -232,47 +264,45 @@ ^series ] - boxes: aDataSourceOrArray [ + bars: aDataSourceOrArray [ - ^self add: ((GPBoxSeries on: aDataSourceOrArray) - style: 'boxes'; - yourself) + ^self add: (GPBarSeries on: aDataSourceOrArray) ] - boxes: aDataSourceOrArray with: aBlock [ + bars: aDataSourceOrArray with: aBlock [ | series | - series := self boxes: aDataSourceOrArray. + series := self bars: aDataSourceOrArray. aBlock value: series. ^series ] - xyErrorBoxes: aDataSourceOrArray [ + boxes: aDataSourceOrArray [ - ^self add: ((GPXYErrorSeries on: aDataSourceOrArray) - style: 'xyerrorboxes'; + ^self add: ((GPBoxSeries on: aDataSourceOrArray) + graphType: 'boxes'; yourself) ] - xyErrorBoxes: aDataSourceOrArray with: aBlock [ + boxes: aDataSourceOrArray with: aBlock [ | series | - series := self xyErrorBoxes: aDataSourceOrArray. + series := self boxes: aDataSourceOrArray. aBlock value: series. ^series ] - xErrorBoxes: aDataSourceOrArray [ + xyErrorBoxes: aDataSourceOrArray [ - ^self add: ((GPXErrorBoxSeries on: aDataSourceOrArray) - style: 'xerrorboxes'; + ^self add: ((GPXYErrorSeries on: aDataSourceOrArray) + graphType: 'boxxyerrorbars'; yourself) ] - xErrorBoxes: aDataSourceOrArray with: aBlock [ + xyErrorBoxes: aDataSourceOrArray with: aBlock [ | series | - series := self xErrorBoxes: aDataSourceOrArray. + series := self xyErrorBoxes: aDataSourceOrArray. aBlock value: series. ^series ] @@ -280,7 +310,7 @@ errorBoxes: aDataSourceOrArray [ ^self add: ((GPErrorBoxSeries on: aDataSourceOrArray) - style: 'yerrorboxes'; + graphType: 'boxerrorbars'; yourself) ] @@ -295,7 +325,7 @@ candleSticks: aDataSourceOrArray [ ^self add: ((GPFinancialDataSeries on: aDataSourceOrArray) - style: 'candlesticks'; + graphType: 'candlesticks'; yourself) ] @@ -310,7 +340,7 @@ financeBars: aDataSourceOrArray [ ^self add: ((GPFinancialDataSeries on: aDataSourceOrArray) - style: 'financebars'; + graphType: 'financebars'; yourself) ] @@ -325,7 +355,7 @@ lines: aDataSourceOrArray [ ^self add: ((GPXYSeries on: aDataSourceOrArray) - style: 'lines'; + graphType: 'lines'; yourself) ] @@ -340,7 +370,7 @@ xyErrorBars: aDataSourceOrArray [ ^self add: ((GPXYErrorSeries on: aDataSourceOrArray) - style: 'xyerrorbars'; + graphType: 'xyerrorbars'; yourself) ] @@ -355,7 +385,7 @@ xErrorBars: aDataSourceOrArray [ ^self add: ((GPXErrorSeries on: aDataSourceOrArray) - style: 'xerrorbars'; + graphType: 'xerrorbars'; yourself) ] @@ -370,7 +400,7 @@ errorBars: aDataSourceOrArray [ ^self add: ((GPErrorSeries on: aDataSourceOrArray) - style: 'errorbars'; + graphType: 'errorbars'; yourself) ] @@ -395,13 +425,89 @@ ] +GPGroupSeries subclass: GPBarSeries [ + + + + defaultColumns [ + ^{ GPColumnRef column: 1 } + ] + + data [ + ^self columns first + ] + + data: expr [ + self columns: { expr asGPExpression } + ] + + displayOn: aStream group: aGroup [ + self dataSource displayOn: aStream. + aStream nextPutAll: ' using '. + self displayColumnsOn: aStream group: aGroup. + self displayStyleOn: aStream group: aGroup. + aGroup stackData: self data. + self displayTicLabelsOn: aStream group: aGroup. + ] + + displayColumnsOn: aStream group: aGroup [ + aStream nextPutAll: '($0'. + aGroup barOffset < 0 ifFalse: [ aStream nextPut: $+ ]. + aStream print: aGroup barOffset asFloat. + aStream nextPutAll: '):'. + aGroup dataOffset isNil + ifTrue: [ + aStream display: self data. + aStream nextPutAll: ':('. + aStream display: aGroup barWidth asFloat. + aStream nextPut: $) ] + ifFalse: [ + aStream display: aGroup dataOffset + (self data / 2). + aStream nextPutAll: ':('. + aStream display: (aGroup barWidth / 2) asFloat. + aStream nextPutAll: '):'. + aStream display: self data / 2 ]. + ] + + displayStyleOn: aStream group: aGroup [ + aGroup dataOffset isNil + ifTrue: [ aStream nextPutAll: ' with boxes' ] + ifFalse: [ aStream nextPutAll: ' with boxxyerrorbars' ]. + super displayStyleOn: aStream group: aGroup + ] + + displayTicLabelsOn: aStream group: aGroup [ + ticColumns isNil ifFalse: [ + aStream nextPutAll: ', '. + self dataSource displayOn: aStream. + aStream nextPutAll: ' using 0:'. + aStream display: aGroup dataOffset. + aStream nextPutAll: ':""'. + super displayTicLabelsOn: aStream group: aGroup. + aStream nextPutAll: ' notitle with labels'. + ] + ] + + printDataOn: aStream [ + super printDataOn: aStream. + ticColumns isNil ifFalse: [ super printDataOn: aStream ]. + ] +] + GPDataSeries subclass: GPXYSeries [ - initialize [ - super initialize. - self columns: { GPColumnRef column: 1 } + defaultColumns [ + | c0 c1 c2 | + c0 := GPColumnRef column: 0. + c1 := GPColumnRef column: 1. + (self ticColumns notNil and: [ self ticColumns includes: 2 ]) + ifTrue: [ ^{ c0. c1 } ]. + + c2 := GPColumnRef column: 2. + ^{ c2 ifValid: [ c1 ] ifNotValid: [ c0 ]. + c2 ifValid: [ c2 ] ifNotValid: [ c1 ] } ] data: expr [ @@ -423,10 +529,9 @@ ^defaultStyle ifNil: [ super defaultStyle pointType: 6; yourself ] ] - initialize [ - super initialize. - self columns: { GPColumnRef column: 1. GPColumnRef column: 2. - GPColumnRef column: 3 } + defaultColumns [ + ^{ GPColumnRef column: 1. GPColumnRef column: 2. + GPColumnRef column: 3 } ] x: xExpr y: yExpr size: sizeExpr [ @@ -444,10 +549,9 @@ - initialize [ - super initialize. - self columns: { GPColumnRef column: 1. GPColumnRef column: 2. - GPColumnRef column: 3 } + defaultColumns [ + ^{ GPColumnRef column: 1. GPColumnRef column: 2. + GPColumnRef column: 3 } ] x: xExpr y: yExpr text: textExpr [ @@ -472,10 +576,9 @@ - initialize [ - super initialize. - self columns: { GPColumnRef column: 1. GPColumnRef column: 2. - GPColumnRef column: 3 } + defaultColumns [ + ^{ GPColumnRef column: 1. GPColumnRef column: 2. + GPColumnRef column: 3 } ] x: xExpr y: yExpr error: errExpr [ @@ -506,10 +609,9 @@ - initialize [ - super initialize. - self columns: { GPColumnRef column: 1. GPColumnRef column: 2. - GPColumnRef column: 3 } + defaultColumns [ + ^{ GPColumnRef column: 1. GPColumnRef column: 2. + GPColumnRef column: 3 } ] x: xExpr y: yExpr error: errExpr width: widthExpr [ @@ -543,10 +645,9 @@ - initialize [ - super initialize. - self columns: { GPColumnRef column: 1. GPColumnRef column: 2. - GPColumnRef column: 3 } + defaultColumns [ + ^{ GPColumnRef column: 1. GPColumnRef column: 2. + GPColumnRef column: 3 } ] x: xExpr error: errExpr y: yExpr [ @@ -572,52 +673,14 @@ ] ] -GPXErrorSeries subclass: GPXErrorBoxSeries [ - - - - initialize [ - super initialize. - self columns: { GPColumnRef column: 1. GPColumnRef column: 2. - GPColumnRef column: 3 } - ] - - x: xExpr error: errExpr y: yExpr width: widthExpr [ - self columns: { xExpr asGPExpression. - yExpr asGPExpression. - errExpr asGPExpression. - widthExpr asGPExpression } - ] - - min: minExpr max: maxExpr y: yExpr width: widthExpr [ - | x err min max | - min := minExpr asGPExpression. - max := maxExpr asGPExpression. - x := (min + max) / 2. - err := (max - min) / 2. - self columns: { x. yExpr asGPExpression. err. - widthExpr asGPExpression } - ] - - x: xExpr min: minExpr max: maxExpr y: yExpr width: widthExpr [ - self columns: { xExpr asGPExpression. - yExpr asGPExpression. - minExpr asGPExpression. - maxExpr asGPExpression. - widthExpr asGPExpression } - ] -] - GPDataSeries subclass: GPXYErrorSeries [ - initialize [ - super initialize. - self columns: { GPColumnRef column: 1. GPColumnRef column: 2. - GPColumnRef column: 3. GPColumnRef column: 4 } + defaultColumns [ + ^{ GPColumnRef column: 1. GPColumnRef column: 2. + GPColumnRef column: 3. GPColumnRef column: 4 } ] x: xExpr error: xErrExpr y: yExpr error: yErrExpr [ @@ -654,10 +717,9 @@ - initialize [ - super initialize. - self columns: { GPColumnRef column: 1. GPColumnRef column: 2. - GPColumnRef column: 3. GPColumnRef column: 4 } + defaultColumns [ + ^{ GPColumnRef column: 1. GPColumnRef column: 2. + GPColumnRef column: 3. GPColumnRef column: 4 } ] x: xExpr dx: dxExpr y: yExpr [ @@ -719,11 +781,10 @@ - initialize [ - super initialize. - self columns: { GPColumnRef column: 1. GPColumnRef column: 2. - GPColumnRef column: 3. GPColumnRef column: 4. - GPColumnRef column: 5 } + defaultColumns [ + ^{ GPColumnRef column: 1. GPColumnRef column: 2. + GPColumnRef column: 3. GPColumnRef column: 4. + GPColumnRef column: 5 } ] x: xExpr open: openExpr low: lowExpr high: highExpr close: closeExpr [ diff -ru smalltalk-3.0.1/packages/gnuplot/Base.st smalltalk-3.0.2/packages/gnuplot/Base.st --- smalltalk-3.0.1/packages/gnuplot/Base.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/gnuplot/Base.st 2008-03-06 15:55:50.000000000 +0100 @@ -222,6 +222,11 @@ + at: anObject [ + + self subclassResponsibility + ] + defaultTitle [ self subclassResponsibility ] @@ -240,16 +245,27 @@ - | fileName | + | fileName index | GPFileDataSource class >> on: aString [ ^self new fileName: aString ] + at: anInteger [ + + index isNil ifFalse: [ self error: 'data set already chosen' ]. + ^self copy index: anInteger - 1; yourself + ] + defaultTitle [ ^fileName ] + index: anInteger [ + + index := anInteger + ] + fileName [ ^fileName @@ -262,6 +278,8 @@ displayOn: aStream [ fileName printOn: aStream + index isNil + ifFalse: [ aStream nextPutAll: ' index '; display: index ] ] ] @@ -289,6 +307,11 @@ data := OrderedCollection new ] + at: anInteger [ + + ^self class on: (data at: anInteger) + ] + add: aCollection [ data add: aCollection @@ -464,12 +487,49 @@ series do: [:d | d displayPrologOn: aStream into: defs ]. ] + groupedSeries [ + "Assign groups to series that do not have one, and return a + Dictionary of OrderedCollections, holding the series according + to their #group." + + + | groupedSeries maxGroup | + maxGroup := series inject: 0 into: [ :old :each | + each group = 0 ifTrue: [ each group: old + 1 ]. + each group ]. + + groupedSeries := LookupTable new. + series do: [:d | + (groupedSeries + at: (self newGroup: d group of: maxGroup) + ifAbsentPut: [ OrderedCollection new ]) + add: d ]. + + ^groupedSeries + ] + + newGroup: anInteger of: maxGroup [ + + ^GPSeriesGroup new + id: anInteger; + yourself + ] + displaySeriesOn: aStream [ - series do: [:d | d displayOn: aStream] - separatedBy: [aStream nextPutAll: ', ']. + | groupedSeries first | + groupedSeries := self groupedSeries. + first := true. + groupedSeries + keysAndValuesDo: [:group :list | + list do: [:d | + first ifFalse: [aStream nextPutAll: ', ']. + first := false. + d displayOn: aStream group: group]]. + aStream nl. - series do: [:d | d printDataOn: aStream] + groupedSeries do: [:list | + list do: [:d | d printDataOn: aStream]] ] displayOn: aStream [ diff -ru smalltalk-3.0.1/packages/gnuplot/ChangeLog smalltalk-3.0.2/packages/gnuplot/ChangeLog --- smalltalk-3.0.1/packages/gnuplot/ChangeLog 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/gnuplot/ChangeLog 2008-03-06 15:55:50.000000000 +0100 @@ -1,3 +1,48 @@ +2008-03-04 Paolo Bonzini + + * Base.st: Oops. + +2008-03-04 Paolo Bonzini + + * Series.st: Unlike rectangles, series are by default empty. + +2008-03-04 Paolo Bonzini + + * Base.st: Add GPDataSource>>#at:. + +2008-03-04 Paolo Bonzini + + * 2D.st: Add #barGap, #barWidth, #bars:, GPBarSeries. + * Base.st: Fix some things in the design of grouped series. + * Examples.st: Add bar graph example. + * Series.st: Implement GPSeriesGroup. Use template method + pattern for GPSeries>>#displayOn:group: and + GPDataSeries>>#displayOn:group:. + +2008-03-04 Paolo Bonzini + + * Series.st: Add special ticSpacing value of 0 to suppress tics. + Add GPAxis>>#from: and GPAxis>>#to: + +2008-03-04 Paolo Bonzini + + * Series.st: Subclass GPSeriesStyle from GPRectangleStyle. + +2008-03-04 Paolo Bonzini + + * Series.st: Rename GPDataSeries' style instance variable to graphType. + * 2D.st: Likewise. Remove non-existent style xerrorboxes. + +2008-03-04 Paolo Bonzini + + * 2D.st: Detect 1- and 2-column GPXYSeries datasets. Use #defaultColumns. + * Expression.st: Add GPCondExpression, GPColumnRefValidExpression. + * Series.st: Use #defaultColumns. + +2008-03-03 Paolo Bonzini + + * Series.st: Add "set format" support. + 2007-12-10 Paolo Bonzini * Series.st: Allow autoscaling one end of the axes. diff -ru smalltalk-3.0.1/packages/gnuplot/Examples.st smalltalk-3.0.2/packages/gnuplot/Examples.st --- smalltalk-3.0.1/packages/gnuplot/Examples.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/gnuplot/Examples.st 2008-03-05 14:38:31.000000000 +0100 @@ -182,4 +182,57 @@ Transcript display: p; nl. p execute ] + + GNUPlotExamples class >> bars [ + ^self barsOn: nil + ] + + GNUPlotExamples class >> barsOn: file [ + | p plot data | + p := GNUPlot new. + file isNil ifFalse: [ + p terminal: self newPngTerminal. + p output: file ]. + + data := #((1 2 'a') (2 3 'b') (3 4 'c') (4 5 'd') (5 6 'e')). + + (plot := GPPlot new) + bars: data + with: [:series | + series style fillStyle: #solid. + series data: (GPColumnRef column: 1) ]; + + bars: data + with: [:series | + series style fillStyle: #solid. + series data: (GPColumnRef column: 2); xTicColumn: 3 ]. + + plot xAxis ticSpacing: 0. + plot xAxis from: -0.5 to: 4.5. + plot yAxis from: 0. + p add: plot. + + data := #((1 1 'a') (2 1 'b') (3 1 'c') (4 1 'd') (5 1 'e')). + + (plot := GPPlot new) + bars: data + with: [:series | + series style fillStyle: #solid. + series group: 1. + series data: (GPColumnRef column: 1) ]; + + bars: data + with: [:series | + series style fillStyle: #solid. + series group: 1. + series data: (GPColumnRef column: 2); xTicColumn: 3 ]. + + plot xAxis ticSpacing: 0. + plot xAxis from: -0.5 to: 4.5. + plot yAxis from: 0. + + p add: plot. + Transcript display: p; nl. + p execute + ] ] diff -ru smalltalk-3.0.1/packages/gnuplot/Expressions.st smalltalk-3.0.2/packages/gnuplot/Expressions.st --- smalltalk-3.0.1/packages/gnuplot/Expressions.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/gnuplot/Expressions.st 2008-03-05 14:38:31.000000000 +0100 @@ -390,6 +390,43 @@ ] ] +GPExpression subclass: GPCondExpression [ + + + + | cond trueBranch falseBranch | + + GPCondExpression class >> condition: condExpr ifTrue: trueExpr ifFalse: falseExpr [ + ^self new + condition: condExpr ifTrue: trueExpr ifFalse: falseExpr; + yourself + ] + + precedence [ + ^-10 + ] + + displayAsOperandOn: aStream [ + self printOperand: cond on: aStream. + aStream nextPut: $?. + self printOperand: trueBranch on: aStream. + aStream nextPut: $:. + self printOperand: falseBranch on: aStream. + ] + + displayPrologOn: aStream into: defs [ + cond displayPrologOn: aStream into: defs. + trueBranch displayPrologOn: aStream into: defs. + falseBranch displayPrologOn: aStream into: defs + ] + + condition: condExpr ifTrue: trueExpr ifFalse: falseExpr [ + cond := condExpr. + trueBranch := trueExpr value. + falseBranch := falseExpr value + ] +] + GPExpression subclass: GPPrimaryExpression [ @@ -430,6 +467,53 @@ column printOn: aStream ] + + valid [ + + ^GPColumnRefValidExpression column: self column + ] + + ifValid: validBlock ifNotValid: invalidBlock [ + + ^GPCondExpression + condition: self valid + ifTrue: validBlock + ifFalse: invalidBlock + ] +] + +GPPrimaryExpression subclass: GPColumnRefValidExpression [ + + + + | column | + GPColumnRefValidExpression class >> column: anInteger [ + + ^self new column: anInteger + ] + + column [ + + ^column + ] + + column: aString [ + + column := aString + ] + + displayAsOperandOn: aStream [ + + aStream nextPutAll: 'valid('. + column printOn: aStream. + aStream nextPut: $). + ] + + displayOn: aStream [ + + column printOn: aStream + ] ] GPPrimaryExpression subclass: GPLiteralExpression [ diff -ru smalltalk-3.0.1/packages/gnuplot/Series.st smalltalk-3.0.2/packages/gnuplot/Series.st --- smalltalk-3.0.1/packages/gnuplot/Series.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/gnuplot/Series.st 2008-03-05 15:03:57.000000000 +0100 @@ -53,7 +53,7 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE." -GPLineStyle subclass: GPSeriesStyle [ +GPRectangleStyle subclass: GPSeriesStyle [ @@ -86,6 +86,11 @@ x2 := aBoolean ] + fillStyle [ + + ^params at: #fillstyle ifAbsent: [ #empty ] + ] + notitle [ "The line title and sample can be omitted from the key by using the keyword notitle" @@ -163,6 +168,68 @@ ] ] +Object subclass: GPSeriesGroup [ + + + + | id barWidth barOffset dataOffset | + = anObject [ + + ^self class == anObject class and: [ self id = anObject id ] + ] + + hash [ + + ^id hash + ] + + id [ + + id isNil ifTrue: [ id := 0 ]. + ^id + ] + + id: anInteger [ + + id := anInteger + ] + + barWidth [ + + barWidth isNil ifTrue: [ barWidth := 0.5 ]. + ^barWidth + ] + + barWidth: aNumber [ + + barWidth := aNumber + ] + + barOffset [ + + barOffset isNil ifTrue: [ barOffset := 0 ]. + ^barOffset + ] + + barOffset: aNumber [ + + barOffset := aNumber + ] + + dataOffset [ + + ^dataOffset + ] + + stackData: aColumn [ + + dataOffset := dataOffset isNil + ifTrue: [ aColumn ] + ifFalse: [ dataOffset + aColumn ] + ] +] + GPContainer subclass: GPSeries [ @@ -171,14 +238,25 @@ ^GPSeriesStyle ] + addTo: aGPPlot [ + + aGPPlot addSeries: self + ] + defaultTitle [ self subclassResponsibility ] - addTo: aGPPlot [ - - aGPPlot addSeries: self + group [ + + ^0 + ] + + group: anInteger [ + + "Do nothing. Grouping would not affect the way most data + series are drawn." ] printDataOn: aStream [ @@ -187,6 +265,17 @@ displayOn: aStream [ + | group | + group := GPSeriesGroup new id: self group; yourself. + self displayOn: aStream group: group. + ] + + displayOn: aStream group: aGroup [ + + self displayStyleOn: aStream group: aGroup + ] + + displayStyleOn: aStream group: aGroup [ | theParameters | theParameters := style ifNil: [ self class defaultStyle ]. theParameters displayOn: aStream for: self @@ -248,7 +337,7 @@ ^range ifNotNil: [ :r | r second ] ] - displayOn: aStream [ + displayOn: aStream group: aGroup [ range isNil ifFalse: [ aStream @@ -259,7 +348,7 @@ nextPut: $]; space ]. expression displayOn: aStream. - super displayOn: aStream + super displayOn: aStream group: aGroup ] displayPrologOn: aStream into: defs [ @@ -286,7 +375,7 @@ - | columns dataSource style ticColumns | + | columns dataSource graphType ticColumns | GPDataSeries class >> defaultStyleClass [ ^GPDataSeriesStyle ] @@ -298,6 +387,7 @@ columns [ + columns ifNil: [ ^self defaultColumns ]. ^columns ] @@ -316,22 +406,40 @@ dataSource := aDataSource ] + defaultColumns [ + self subclassResponsibility + ] + defaultTitle [ ^dataSource defaultTitle ] - style: aString [ + graphType: aString [ - style := aString + graphType := aString ] - displayOn: aStream [ - dataSource displayOn: aStream. + displayOn: aStream group: aGroup [ + self dataSource displayOn: aStream. aStream nextPutAll: ' using '. - columns + self displayColumnsOn: aStream group: aGroup. + self displayTicLabelsOn: aStream group: aGroup. + super displayOn: aStream group: aGroup. + ] + + displayStyleOn: aStream group: aGroup [ + graphType isNil ifFalse: [ + aStream nextPutAll: ' with '; nextPutAll: graphType; space ]. + super displayStyleOn: aStream group: aGroup + ] + + displayColumnsOn: aStream group: aGroup [ + self columns do: [ :each | each displayOn: aStream ] separatedBy: [ aStream nextPut: $: ]. + ] + displayTicLabelsOn: aStream group: aGroup [ "Add xticlabels etc. fake columns." ticColumns isNil ifFalse: [ ticColumns keysAndValuesDo: [ :k :v | @@ -341,9 +449,6 @@ nextPut: $(; display: v; nextPut: $) ] ]. - - aStream nextPutAll: ' with '; nextPutAll: style; space. - super displayOn: aStream. ] printDataOn: aStream [ @@ -352,6 +457,7 @@ displayPrologOn: aStream into: defs [ super displayPrologOn: aStream into: defs. + columns isNil ifTrue: [ ^self ]. columns do: [ :each | each displayPrologOn: aStream into: defs ] ] @@ -410,14 +516,32 @@ ]" ] +GPDataSeries subclass: GPGroupSeries [ + + + + | group | + group [ + + group isNil ifTrue: [ group := 0 ]. + ^group + ] + + group: anInteger [ + + group := anInteger. + ] +] + GPObject subclass: GPAxis [ - | name range logScale mirrorTics outwardTics ticRange ticSpacing - ticSubdivision majorGrid minorGrid tics style label labelStyle | + | name range logScale mirrorTics outwardTics ticRange ticSpacing ticFormat + ticSubdivision majorGrid minorGrid tics style label labelStyle | name: aString [ @@ -432,18 +556,28 @@ ] from: a to: b [ - - range := { a. b } + + range := { a. b } ] from [ - ^range ifNotNil: [ :r | r first ] + ^range ifNotNil: [ :r | r first ] + ] + + from: a [ + + range := { a. self to } ] to [ - ^range ifNotNil: [ :r | r second ] + ^range ifNotNil: [ :r | r second ] + ] + + to: b [ + + range := { self from. b } ] ticAt: value put: string [ @@ -497,6 +631,16 @@ labelStyle := aString ] + ticFormat [ + + ^ticFormat + ] + + ticFormat: aBoolean [ + + ticFormat := aBoolean + ] + ticSubdivision [ ^ticSubdivision @@ -628,20 +772,28 @@ nextPutAll: 'set '; nextPutAll: name; nextPutAll: 'tics'. + self mirrorTics ifFalse: [ aStream nextPutAll: ' nomirror' ]. self outwardTics ifTrue: [ aStream nextPutAll: ' out' ]. + self displayTicRangeOn: aStream. + aStream nl + ] + + displayTicRangeOn: aStream [ + + | spacing | ticRange isNil ifTrue: [ - ticSpacing isNil ifFalse: [ aStream space; display: ticSpacing ] ] + (ticSpacing isNil and: [ ticSpacing > 0 ]) + ifFalse: [ aStream space; display: ticSpacing ] ] ifFalse: [ - spacing := - ticSpacing ifNil: [ (self ticTo - self ticFrom) / 4.0 ]. + spacing := ticSpacing. + spacing = 0 ifTrue: [ spacing := self ticTo - self ticFrom ]. + spacing isNil ifTrue: [ spacing := (self ticTo - self ticFrom) / 4.0 ]. aStream space; display: self ticFrom; nextPut: $,; display: spacing; nextPut: $,; display: self ticTo ]. - - aStream nl ] displayUserTicsOn: aStream [ @@ -688,6 +840,14 @@ label notNil ifTrue: [ self displayLabelOn: aStream ]. + self ticFormat isNil ifFalse: [ + aStream + nextPutAll: 'set format '; + nextPutAll: name; + space; + print: self ticFormat; + nl ]. + self logScale ifTrue: [ aStream nextPutAll: 'set logscale '; diff -ru smalltalk-3.0.1/packages/sport/sport.st smalltalk-3.0.2/packages/sport/sport.st --- smalltalk-3.0.1/packages/sport/sport.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/sport/sport.st 2008-03-07 11:53:44.000000000 +0100 @@ -382,7 +382,7 @@ ^Behavior - evaluate: aString for: anObject + evaluate: aString to: anObject ] SpEnvironment class >> hexStringFromByteArray: aByteArray [ @@ -562,7 +562,7 @@ broken." - ^FileError + ^SystemExceptions.FileError ] SpExceptionContext class >> for: aBlock on: anException do: exceptionBlock [ @@ -950,6 +950,14 @@ ^SpTimestamp fromSeconds: entry lastModifyTime ] + name [ + "a String + return the filename identified by self." + + + ^filename + ] + named: aString [ "^self I initialize myself to represent the filename identified by aString." @@ -1027,7 +1035,8 @@ bindSocketAddress: (SpIPAddress hostName: 'localhost' port: 3523); listenBackloggingUpTo: 50. s2 := SpSocket connectToServerOnHost: 'localhost' port: 3523. - [ (s3 := s1 accept) isNil ] whileTrue: [ Processor yield ] ] + [ + (s3 := s1 accept) isNil ] whileTrue: [ Processor yield ] ] ifCurtailed: [s1 close. s2 close]. @@ -1063,8 +1072,8 @@ ^SpExceptionContext for: [| clientSpecificSocket | - - [(clientSpecificSocket := self underlyingSocket accept) isNil] + [self underlyingSocket waitForConnection. + (clientSpecificSocket := self underlyingSocket accept) isNil] whileTrue: [ Processor yield ]. self class onNativeclientSocket: clientSpecificSocket for: self] on: Error @@ -1225,7 +1234,7 @@ I return true if a read operation will return some number of bytes." - ^self underlyingSocket canRead + ^self underlyingSocket available ] setAddressReuse: aBoolean [ @@ -1252,7 +1261,7 @@ | bad sem timeout socketWait | - self underlyingSocket canRead ifTrue: [ ^true ]. + self underlyingSocket available ifTrue: [ ^true ]. sem := Semaphore new. timeout := [ (Delay forMilliseconds: aNumberOfMilliseconds) wait. sem signal ] @@ -1263,7 +1272,7 @@ [ sem wait ] ensure: [ timeout terminate. socketWait terminate ]. - ^self underlyingSocket canRead + ^self underlyingSocket available ] write: sourceByteArray [ @@ -1273,7 +1282,8 @@ ^SpExceptionContext - for: [self underlyingSocket nextPutAllFlush: sourceByteArray] + for: [self underlyingSocket nextPutAllFlush: sourceByteArray. + sourceByteArray size] on: Error do: [:ex | SpSocketError raiseSignal: ex] ] @@ -1288,7 +1298,8 @@ [self underlyingSocket next: length putAll: aByteArray - startingAt: startIndex; flush] + startingAt: startIndex; flush. + length] on: Error do: [:ex | SpSocketError raiseSignal: ex] ] diff -ru smalltalk-3.0.1/packages/stinst/compiler/ChangeLog smalltalk-3.0.2/packages/stinst/compiler/ChangeLog --- smalltalk-3.0.1/packages/stinst/compiler/ChangeLog 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/stinst/compiler/ChangeLog 2008-02-25 17:19:34.000000000 +0100 @@ -1,3 +1,11 @@ +2008-02-25 Paolo Bonzini + + * StartCompiler.st: Remove references to #parserClass. + +2008-02-08 Paolo Bonzini + + * StartCompiler.st: Fix typo in message #parseSmalltalk:with:onError:. + 2007-11-05 Stephen Compall * StartCompiler.st: Answer the method node from the driver's diff -ru smalltalk-3.0.1/packages/stinst/compiler/StartCompiler.st smalltalk-3.0.2/packages/stinst/compiler/StartCompiler.st --- smalltalk-3.0.1/packages/stinst/compiler/StartCompiler.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/stinst/compiler/StartCompiler.st 2008-02-26 22:13:59.000000000 +0100 @@ -7,7 +7,7 @@ "====================================================================== | -| Copyright 1999, 2000, 2001, 2002, 2006 Free Software Foundation, Inc. +| Copyright 1999,2000,2001,2002,2006,2007,2008 Free Software Foundation, Inc. | Written by Paolo Bonzini. | | This file is part of GNU Smalltalk. @@ -318,7 +318,7 @@ ^STInST.STEvaluationDriver new parseSmalltalk: aString with: self evaluatorClass - errorBlock: + onError: [:l :m | ^aBlock value: 'a Smalltalk String' @@ -347,7 +347,7 @@ (self compilerClass canCompile: code) ifTrue: [| dummyParser | - dummyParser := self parserClass new. + dummyParser := STInST.RBParser new. dummyParser errorBlock: [:m :l | ^block @@ -376,7 +376,7 @@ source := aString isString ifTrue: [aString] ifFalse: [source := aString contents]. - parser := self parserClass new. + parser := STInST.RBParser new. parser initializeParserWith: source type: #on:errorBlock:. ^self compilerClass compile: (parser parseMethod: source) @@ -391,7 +391,7 @@ source := aString isString ifTrue: [aString] ifFalse: [source := aString contents]. - parser := self parserClass new. + parser := STInST.RBParser new. parser errorBlock: [:m :l | ^aBlock diff -ru smalltalk-3.0.1/packages/stinst/parser/ChangeLog smalltalk-3.0.2/packages/stinst/parser/ChangeLog --- smalltalk-3.0.1/packages/stinst/parser/ChangeLog 2008-01-31 15:40:28.000000000 +0100 +++ smalltalk-3.0.2/packages/stinst/parser/ChangeLog 2008-03-07 11:53:44.000000000 +0100 @@ -1,3 +1,17 @@ +2008-02-08 Stephen Compall + + * GSTParser.st: Always reverse a #methodsFor: with an + #endMethodList when compiling new-syntax methods. + +2008-02-05 Paolo Bonzini + + * SqueakParser.st: Fix parsing of binary message at end of chunk. + +2008-02-05 Paolo Bonzini + + * STLoaderObjs.st: Add missing method #methodFormattedSourceString + for polymorphism with CompiledMethod. + 2008-01-27 Stephen Compall * Exporter.st: Comment or private-ize uncommented methods. diff -ru smalltalk-3.0.1/packages/stinst/parser/GSTParser.st smalltalk-3.0.2/packages/stinst/parser/GSTParser.st --- smalltalk-3.0.1/packages/stinst/parser/GSTParser.st 2008-01-23 18:50:38.000000000 +0100 +++ smalltalk-3.0.2/packages/stinst/parser/GSTParser.st 2008-02-14 14:26:15.000000000 +0100 @@ -304,7 +304,8 @@ selector: #methodsFor: argument: nil. - self compile: methodNode + self compile: methodNode. + self endMethodList. ] parseInstanceVariables: node add: addThem [ diff -ru smalltalk-3.0.1/packages/stinst/parser/STLoaderObjs.st smalltalk-3.0.2/packages/stinst/parser/STLoaderObjs.st --- smalltalk-3.0.1/packages/stinst/parser/STLoaderObjs.st 2008-01-23 18:50:38.000000000 +0100 +++ smalltalk-3.0.2/packages/stinst/parser/STLoaderObjs.st 2008-02-05 15:05:14.000000000 +0100 @@ -1140,6 +1140,16 @@ category := argument. ! +methodFormattedSourceString + "Answer the method source code as a string, formatted using + the RBFormatter." + + + ^STInST.RBFormatter new + initialIndent: 1; + format: self methodParseNode +! + methodParseNode ^self node ! diff -ru smalltalk-3.0.1/packages/stinst/parser/SqueakParser.st smalltalk-3.0.2/packages/stinst/parser/SqueakParser.st --- smalltalk-3.0.1/packages/stinst/parser/SqueakParser.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/stinst/parser/SqueakParser.st 2008-02-05 15:05:57.000000000 +0100 @@ -107,15 +107,36 @@ ] scanBinary: aClass [ - "Treat ! specially, it is a binary operator in Squeak (if properly escaped). - This actually fails on tokens like +!! which is the binary operator +!, - but this are never used in practice. It works for #!! however." + "Treat ! specially, it is a binary operator in Squeak (if properly + escaped)." - - currentCharacter == $! ifFalse: [^super scanBinary: aClass]. - self step == $! - ifFalse: [^RBSpecialCharacterToken value: $! start: tokenStart]. - ^super scanBinary: aClass + + | val | + currentCharacter == $! ifTrue: [ + self step == $! + ifFalse: [^RBSpecialCharacterToken value: $! start: tokenStart]]. + + buffer nextPut: currentCharacter. + self step. + (characterType == #binary and: [currentCharacter ~~ $-]) + ifTrue: + [currentCharacter == $! + ifTrue: + [self step == $! + ifTrue: [ + buffer nextPut: $!. + self step] + ifFalse: [ + stream skip: -1. + currentCharacter := $!. + characterType := #binary]] + ifFalse: + [buffer nextPut: currentCharacter. + self step]]. + + val := buffer contents. + val := val asSymbol. + ^aClass value: val start: tokenStart ] nextRawChunk [ diff -ru smalltalk-3.0.1/packages/tcp/AbstractSocketImpl.st smalltalk-3.0.2/packages/tcp/AbstractSocketImpl.st --- smalltalk-3.0.1/packages/tcp/AbstractSocketImpl.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/tcp/AbstractSocketImpl.st 2008-02-27 22:27:55.000000000 +0100 @@ -78,12 +78,13 @@ active server socket." - | peer sizePtr newFD | + | peer sizePtr newFD fd | peer := ByteArray new: CSockAddrStruct sizeof. sizePtr := ByteArray new: CInt sizeof. sizePtr intAt: 1 put: CSockAddrStruct sizeof. + (fd := self fd) isNil ifTrue: [ ^SystemExceptions.EndOfStream signal ]. newFD := self - accept: self fd + accept: fd peer: peer addrLen: sizePtr. ^(implementationClass on: newFD) @@ -105,11 +106,12 @@ attaching the local endpoint of the socket." - | addr | + | addr fd | addr := ipAddress port: port. + (fd := self fd) isNil ifTrue: [ ^self ]. [self - bind: self fd + bind: fd to: addr addrLen: addr size. File checkError] @@ -194,12 +196,13 @@ local endpoint of the socket." - | sock sizePtr | + | sock sizePtr fd | sock := ByteArray new: CSockAddrStruct sizeof. sizePtr := ByteArray new: CInt sizeof. sizePtr intAt: 1 put: CSockAddrStruct sizeof. + (fd := self fd) isNil ifTrue: [ ^nil ]. self - getSockName: self fd + getSockName: fd addr: sock addrLen: sizePtr. ^sock @@ -210,7 +213,9 @@ queue of the given size." - self listen: self fd log: backlog + | fd | + (fd := self fd) isNil ifTrue: [ ^self ]. + self listen: fd log: backlog ] connectTo: ipAddress port: port [ @@ -272,12 +277,13 @@ so this will be rarely used." - | result sizeArray | + | result sizeArray fd | result := ByteArray new: size. sizeArray := ByteArray new: CInt sizeof. sizeArray intAt: 1 put: size. + (fd := self fd) isNil ifTrue: [ ^nil ]. self - option: self fd + option: fd level: level at: opt get: result @@ -293,10 +299,11 @@ used." - | ba | + | ba fd | ba := self makeByteArray: anObject. + (fd := self fd) isNil ifTrue: [ ^self ]. self - option: self fd + option: fd level: level at: opt put: ba @@ -514,11 +521,12 @@ machine." - | addr | + | addr fd | addr := ipAddress port: port. - [self - connect: self fd + [(fd := self fd) isNil ifTrue: [ ^self ]. + self + connect: fd to: addr addrLen: addr size. File checkError] @@ -534,10 +542,11 @@ remote endpoint of the socket." - | peer sizePtr | + | peer sizePtr fd | peer := ByteArray new: CSockAddrStruct sizeof. sizePtr := ByteArray new: CInt sizeof. sizePtr intAt: 1 put: CSockAddrStruct sizeof. + (fd := self fd) isNil ifTrue: [ ^nil ]. self getPeerName: self fd addr: peer @@ -632,13 +641,14 @@ to only peek for it without removing it from the queue." - | address port data from addrLen | + | address port data from addrLen fd | addrLen := ByteArray new: CInt sizeof. data := ByteArray new: self bufferSize. from := ByteArray new: CSockAddrStruct sizeof. addrLen intAt: 1 put: from size. + (fd := self fd) isNil ifTrue: [ ^SystemExceptions.EndOfStream signal ]. self - receive: self fd + receive: fd buffer: data size: data size flags: (self flags bitOr: flags) @@ -656,14 +666,15 @@ "Send aDatagram on the socket to the given receiver and port" - | size receiver | + | size receiver fd | theReceiver isNil ifTrue: [receiver := size := 0] ifFalse: [receiver := theReceiver port: port. size := receiver size]. + (fd := self fd) isNil ifTrue: [ ^SystemExceptions.EndOfStream signal ]. self - send: self fd + send: fd buffer: aDatagram data size: aDatagram data size flags: self flags diff -ru smalltalk-3.0.1/packages/tcp/ChangeLog smalltalk-3.0.2/packages/tcp/ChangeLog --- smalltalk-3.0.1/packages/tcp/ChangeLog 2008-01-23 18:28:32.000000000 +0100 +++ smalltalk-3.0.2/packages/tcp/ChangeLog 2008-03-07 11:53:44.000000000 +0100 @@ -1,3 +1,20 @@ +2008-02-27 Paolo Bonzini + + * AbstractSocketImpl.st: Make sure fd is not nil when calling + out to C. + +2008-02-08 Paolo Bonzini + + * Sockets.st: Add #isPeerAlive to AbstractSocket. + +2008-02-07 Paolo Bonzini + + * Sockets.st: Replace #nextPutAll: with #next:putAll:startingAt:. + +2008-02-06 Paolo Bonzini + + * Sockets.st: Add methods needed by Sport. + 2008-01-18 Paolo Bonzini * tcp.c: Cope with gethostbyname returning NULL. diff -ru smalltalk-3.0.1/packages/tcp/Sockets.st smalltalk-3.0.2/packages/tcp/Sockets.st --- smalltalk-3.0.1/packages/tcp/Sockets.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/packages/tcp/Sockets.st 2008-03-07 11:53:44.000000000 +0100 @@ -159,6 +159,21 @@ self subclassResponsibility ] + ensureReadable [ + "Suspend the current process until more data is available on the + socket." + + self implementation ensureReadable + ] + + isPeerAlive [ + "Answer whether the connection with the peer remote machine is still + valid." + + + ^self implementation isOpen + ] + available [ "Answer whether there is data available on the socket." @@ -278,6 +293,14 @@ ^self implementation next ] + next: n putAll: aCollection startingAt: pos [ + "Write `char' to the socket, failing if the connection is dead. The + SIGPIPE signal is automatically caught and ignored by the system." + + + ^self implementation next: n putAll: aCollection startingAt: pos + ] + nextPut: char [ "Write `char' to the socket, failing if the connection is dead. The SIGPIPE signal is automatically caught and ignored by the system." @@ -1052,6 +1075,13 @@ ^self peek isNil ] + ensureReadable [ + "Suspend the current process until more data is available in the + socket's read buffer or from the operating system." + + self available ifFalse: [ super ensureReadable ] + ] + available [ "Answer whether more data is available in the socket's read buffer or from the operating system." @@ -1094,7 +1124,7 @@ "Flush the write buffer to the operating system" - self writeBuffer notNil ifTrue: [ + self isPeerAlive ifTrue: [ self implementation valueWithoutBuffering: [ self writeBuffer flush]] ] @@ -1104,7 +1134,7 @@ valid." - ^self readBuffer notNil + ^self readBuffer notNil and: [ super isPeerAlive ] ] next [ @@ -1152,14 +1182,14 @@ self writeBuffer nextPut: char ] - nextPutAll: aString [ + next: n putAll: aCollection startingAt: pos [ "Write aString to the socket; this acts as a bit-bucket when the socket is closed. This might yield control to other Smalltalk Processes." self writeBuffer isNil ifTrue: [^self]. - self writeBuffer nextPutAll: aString + self writeBuffer next: n putAll: aCollection startingAt: pos ] peek [ diff -ru smalltalk-3.0.1/scripts/Convert.st smalltalk-3.0.2/scripts/Convert.st --- smalltalk-3.0.1/scripts/Convert.st 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/scripts/Convert.st 2008-02-24 18:11:33.000000000 +0100 @@ -256,7 +256,8 @@ method := self defineMethod: rewritten. (classesToEmit includesKey: currentClass asClass) ifTrue: [ self addMethod: method toLoadedClass: currentClass ] - ifFalse: [ self addMethod: method toExtensionClass: currentClass ] + ifFalse: [ self addMethod: method toExtensionClass: currentClass ]. + ^method ] lastEval [ diff -ru smalltalk-3.0.1/smalltalk-mode.el.in smalltalk-3.0.2/smalltalk-mode.el.in --- smalltalk-3.0.1/smalltalk-mode.el.in 2008-01-22 11:14:33.000000000 +0100 +++ smalltalk-3.0.2/smalltalk-mode.el.in 2008-03-05 14:38:31.000000000 +0100 @@ -355,13 +355,13 @@ (defun smalltalk-bang () (interactive) (cond ((or (smalltalk-in-string) (smalltalk-in-comment)) (insert "!")) - (t (if (smalltalk-in-bang-syntax) - (progn (insert "!") - (save-excursion - (beginning-of-line) - (if (looking-at "^[ \t]+!") - (delete-horizontal-space))))) - (smalltalk-end-of-defun)))) + ((smalltalk-in-bang-syntax) + (progn (insert "!") + (save-excursion + (beginning-of-line) + (if (looking-at "^[ \t]+!") + (delete-horizontal-space))))) + (t (smalltalk-end-of-defun)))) (defun smalltalk-end-of-defun () (interactive) diff -ru smalltalk-3.0.1/tests/floatmath.ok smalltalk-3.0.2/tests/floatmath.ok --- smalltalk-3.0.1/tests/floatmath.ok 2008-01-22 11:14:34.000000000 +0100 +++ smalltalk-3.0.2/tests/floatmath.ok 2008-02-25 15:18:41.000000000 +0100 @@ -248,15 +248,15 @@ returned value is 0.832050 Execution begins... -true->0.832050294337844 +true->0.8320502943378439 returned value is 0.832050 Execution begins... -true->0.55470019622523 +true->0.5547001962252299 returned value is 0.554700 Execution begins... -true->0.554700196225229 +true->0.5547001962252289 returned value is 0.554700 Execution begins... diff -ru smalltalk-3.0.1/tests/package.m4 smalltalk-3.0.2/tests/package.m4 --- smalltalk-3.0.1/tests/package.m4 2008-01-31 15:40:28.000000000 +0100 +++ smalltalk-3.0.2/tests/package.m4 2008-03-07 11:53:44.000000000 +0100 @@ -1,6 +1,6 @@ # Signature of the current package. m4_define([AT_PACKAGE_NAME], [GNU Smalltalk]) m4_define([AT_PACKAGE_TARNAME], [smalltalk]) -m4_define([AT_PACKAGE_VERSION], [3.0.1]) -m4_define([AT_PACKAGE_STRING], [GNU Smalltalk 3.0.1]) +m4_define([AT_PACKAGE_VERSION], [3.0.2]) +m4_define([AT_PACKAGE_STRING], [GNU Smalltalk 3.0.2]) m4_define([AT_PACKAGE_BUGREPORT], [help-smalltalk@gnu.org]) diff -ru smalltalk-3.0.1/tests/processes.ok smalltalk-3.0.2/tests/processes.ok --- smalltalk-3.0.1/tests/processes.ok 2008-01-22 11:14:34.000000000 +0100 +++ smalltalk-3.0.2/tests/processes.ok 2008-02-14 14:26:15.000000000 +0100 @@ -58,3 +58,6 @@ Execution begins... returned value is true + +Execution begins... +returned value is nil diff -ru smalltalk-3.0.1/tests/processes.st smalltalk-3.0.2/tests/processes.st --- smalltalk-3.0.1/tests/processes.st 2008-01-24 13:21:21.000000000 +0100 +++ smalltalk-3.0.2/tests/processes.st 2008-02-14 14:26:15.000000000 +0100 @@ -220,3 +220,20 @@ ^s signals = 0 ] +"Test that processes with the same priority are executed fairly. See + http://permalink.gmane.org/gmane.comp.lang.smalltalk.squeak.general/122772 + for a proposed patch to Squeak that would break this testcase. + The two producer processes would ping-pong control to each other, + and the delay won't even be started." +Eval [ + | queue stop s | + queue := SharedQueue new. + stop := false. + s := Semaphore new. + [ s signal. + [ stop ] whileFalse: [ queue nextPut: true. Processor yield ] ] fork. + s wait. + [ (Delay forMilliseconds: 500) wait. stop := true ] fork. + [ stop ] whileFalse: [ queue nextPut: false. Processor yield ]. +] + diff -ru smalltalk-3.0.1/tests/testsuite smalltalk-3.0.2/tests/testsuite --- smalltalk-3.0.1/tests/testsuite 2008-01-31 15:40:28.000000000 +0100 +++ smalltalk-3.0.2/tests/testsuite 2008-03-07 11:53:44.000000000 +0100 @@ -967,7 +967,7 @@ # List of tests. if $at_list_p; then cat <<_ATEOF -GNU Smalltalk 3.0.1 test suite test groups: +GNU Smalltalk 3.0.2 test suite test groups: NUM: FILE-NAME:LINE TEST-GROUP-NAME KEYWORDS @@ -991,7 +991,7 @@ exit 0 fi if $at_version_p; then - echo "$as_me (GNU Smalltalk 3.0.1)" + echo "$as_me (GNU Smalltalk 3.0.2)" cat <<\_ACEOF Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software @@ -1075,13 +1075,13 @@ # Banners and logs. cat <<\_ASBOX ## ------------------------------- ## -## GNU Smalltalk 3.0.1 test suite. ## +## GNU Smalltalk 3.0.2 test suite. ## ## ------------------------------- ## _ASBOX { cat <<\_ASBOX ## ------------------------------- ## -## GNU Smalltalk 3.0.1 test suite. ## +## GNU Smalltalk 3.0.2 test suite. ## ## ------------------------------- ## _ASBOX echo @@ -9722,7 +9722,7 @@ echo "Please send \`${at_testdir+${at_testdir}/}$as_me.log' and all information you think might help:" echo echo " To: " - echo " Subject: [GNU Smalltalk 3.0.1] $as_me:$at_fail_list${at_fail_list:+ failed${at_xpass_list:+,}}$at_xpass_list${at_xpass_list:+ passed unexpectedly}" + echo " Subject: [GNU Smalltalk 3.0.2] $as_me:$at_fail_list${at_fail_list:+ failed${at_xpass_list:+,}}$at_xpass_list${at_xpass_list:+ passed unexpectedly}" echo if test $at_debug_p = false; then echo