diff -rNu smalltalk-2.1.9/ChangeLog smalltalk-2.1.10/ChangeLog --- smalltalk-2.1.9/ChangeLog 2004-09-06 18:28:52.000000000 +0200 +++ smalltalk-2.1.10/ChangeLog 2005-02-02 18:28:32.000000000 +0100 @@ -1,3 +1,17 @@ +2005-02-02 Paolo Bonzini + + * kernel/PkgLoader.st: Add comments to undocumented methods. + +2005-02-02 Paolo Bonzini + + * examples/gdbm.c: Do not include malloc.h. + +2004-11-13 Paolo Bonzini + + * kernel/Directory.st: support passing an absolute path as the + file name in Directory>>#append:to:. + * kernel/PkgLoader.st: support source files in multiple directories. + 2004-09-06 Paolo Bonzini * kernel/CObject.st: implement #narrow for UndefinedObject. diff -rNu smalltalk-2.1.9/Makefile.am smalltalk-2.1.10/Makefile.am --- smalltalk-2.1.9/Makefile.am 2003-12-13 10:38:03.000000000 +0100 +++ smalltalk-2.1.10/Makefile.am 2005-02-03 09:43:38.000000000 +0100 @@ -74,6 +74,7 @@ # The \( ... \) below protect against substitution in config.status dist-hook: gst-package sed -e "s/@\(I18N_DISABLED\)@/disabled-/" \ + -e "s/@\(GTK_DISABLED\)@/disabled-/" \ -e "s/@\(VERSION\)@/@VERSION@/" \ $(srcdir)/packages.xml.in > packages.tmp SMALLTALK_IMAGE=$(distdir) \ diff -rNu smalltalk-2.1.9/Makefile.in smalltalk-2.1.10/Makefile.in --- smalltalk-2.1.9/Makefile.in 2004-10-02 15:29:43.000000000 +0200 +++ smalltalk-2.1.10/Makefile.in 2005-02-03 09:43:53.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -57,6 +57,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = gst$(EXEEXT) subdir = . @@ -87,15 +88,18 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = gnu-smalltalk.spec gst-config gst-package libc.la -am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(lispdir)" "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(pkglibdir)" +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \ + "$(DESTDIR)$(lispdir)" "$(DESTDIR)$(pkgdatadir)" \ + "$(DESTDIR)$(pkglibdir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_gst_OBJECTS = main.$(OBJEXT) @@ -105,14 +109,13 @@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I. depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/main.Po COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ +LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(gst_SOURCES) DIST_SOURCES = $(gst_SOURCES) @@ -122,11 +125,17 @@ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; lispLISP_INSTALL = $(INSTALL_DATA) LISP = $(lisp_LISP) am__ELFILES = gst-mode.el smalltalk-mode.el am__ELCFILES = $(am__ELFILES:.el=.elc) -ELCFILES = $(am__ELCFILES) +ELCFILES = $(LISP:.el=.elc) elisp_comp = $(top_srcdir)/config/elisp-comp pkgdataDATA_INSTALL = $(INSTALL_DATA) pkglibDATA_INSTALL = $(INSTALL_DATA) @@ -271,6 +280,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -457,24 +468,21 @@ @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: @@ -487,12 +495,12 @@ -rm -f libtool uninstall-info-am: -elc-stamp: $(am__ELFILES) +elc-stamp: $(LISP) @echo 'WARNING: Warnings can be ignored. :-)' @rm -f elc-temp && touch elc-temp if test "$(EMACS)" != no; then \ set x; \ - list='$(am__ELFILES)'; for p in $$list; do \ + list='$(LISP)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ set x "$$@" "$$d$$p"; shift; \ done; \ @@ -511,7 +519,7 @@ test -z "$(lispdir)" || $(mkdir_p) "$(DESTDIR)$(lispdir)"; \ list='$(lisp_LISP)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(lispLISP_INSTALL) '$$d$$p' '$(DESTDIR)$(lispdir)/$$f'"; \ $(lispLISP_INSTALL) "$$d$$p" "$(DESTDIR)$(lispdir)/$$f"; \ if test -f $${p}c; then \ @@ -525,7 +533,7 @@ @$(NORMAL_UNINSTALL) @if test "$(EMACS)" != no; then \ list='$(lisp_LISP)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(lispdir)/$$f' '$(DESTDIR)$(lispdir)/$${f}c'"; \ rm -f "$(DESTDIR)$(lispdir)/$$f" "$(DESTDIR)$(lispdir)/$${f}c"; \ done; \ @@ -538,7 +546,7 @@ test -z "$(pkgdatadir)" || $(mkdir_p) "$(DESTDIR)$(pkgdatadir)" @list='$(pkgdata_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \ $(pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \ done @@ -546,7 +554,7 @@ uninstall-pkgdataDATA: @$(NORMAL_UNINSTALL) @list='$(pkgdata_DATA)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \ done @@ -555,7 +563,7 @@ test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)" @list='$(pkglib_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \ $(pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \ done @@ -563,7 +571,7 @@ uninstall-pkglibDATA: @$(NORMAL_UNINSTALL) @list='$(pkglib_DATA)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ done @@ -691,7 +699,7 @@ distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) - $(mkdir_p) $(distdir)/. $(distdir)/config + $(mkdir_p) $(distdir)/. $(distdir)/config $(distdir)/lib-src @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ @@ -721,12 +729,14 @@ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ - || mkdir "$(distdir)/$$subdir" \ + || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="../$(top_distdir)" \ - distdir="../$(distdir)/$$subdir" \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ @@ -740,15 +750,15 @@ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir - $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2 + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir - $(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir @@ -761,7 +771,7 @@ $(am__remove_distdir) dist dist-all: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then @@ -770,11 +780,11 @@ distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - ;;\ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ - bunzip2 -c $(distdir).tar.bz2 | $(AMTAR) xf - ;;\ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(AMTAR) xf - ;;\ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ @@ -858,7 +868,7 @@ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @@ -928,17 +938,17 @@ .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ check-am clean clean-binPROGRAMS clean-generic clean-libtool \ clean-lisp clean-recursive ctags ctags-recursive dist dist-all \ - dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip distcheck \ - distclean distclean-compile distclean-generic distclean-hdr \ - distclean-libtool distclean-local distclean-recursive \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-binPROGRAMS install-binSCRIPTS install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-lispLISP install-man \ - install-pkgdataDATA install-pkglibDATA install-strip \ - installcheck installcheck-am installdirs installdirs-am \ - maintainer-clean maintainer-clean-generic \ + dist-bzip2 dist-gzip dist-hook dist-shar dist-tarZ dist-zip \ + distcheck distclean distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-local \ + distclean-recursive distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-binPROGRAMS install-binSCRIPTS \ + install-data install-data-am install-data-hook install-exec \ + install-exec-am install-info install-info-am install-lispLISP \ + install-man install-pkgdataDATA install-pkglibDATA \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ @@ -967,6 +977,7 @@ # The \( ... \) below protect against substitution in config.status dist-hook: gst-package sed -e "s/@\(I18N_DISABLED\)@/disabled-/" \ + -e "s/@\(GTK_DISABLED\)@/disabled-/" \ -e "s/@\(VERSION\)@/@VERSION@/" \ $(srcdir)/packages.xml.in > packages.tmp SMALLTALK_IMAGE=$(distdir) \ diff -rNu smalltalk-2.1.9/NEWS smalltalk-2.1.10/NEWS --- smalltalk-2.1.9/NEWS 2004-10-02 15:36:43.000000000 +0200 +++ smalltalk-2.1.10/NEWS 2004-11-25 15:19:16.000000000 +0100 @@ -1,5 +1,25 @@ List of user-visible changes in GNU Smalltalk +NEWS IN 2.1.10 + +This is a bugfix release, but with these visible change: + +o PackageLoader supports loading package source code from multiple + directories. + + Directory packages.xml is in Directories looked in + /usr/share/smalltalk /usr/share/smalltalk + parent of local kernel directory, if any + image directory + parent of local kernel directory parent of local kernel directory + image directory + image directory image directory + +o Directory>>#append:to: supports passing an absolute path as the file + name (first argument). In this case, the file name itself is returned. + +This release works under MacOS X (Darwin) 10.3 as well. + NEWS FROM 2.1.5 TO 2.1.9 These are bugfix releases. The only visible changes are: diff -rNu smalltalk-2.1.9/aclocal.m4 smalltalk-2.1.10/aclocal.m4 --- smalltalk-2.1.9/aclocal.m4 2004-10-02 15:29:25.000000000 +0200 +++ smalltalk-2.1.10/aclocal.m4 2005-02-03 09:30:33.000000000 +0100 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.8.5 -*- Autoconf -*- +# generated automatically by aclocal 1.9.2 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 # Free Software Foundation, Inc. @@ -33,14 +33,14 @@ # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. -AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.8"]) +AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.8.5])]) + [AM_AUTOMAKE_VERSION([1.9.2])]) # AM_AUX_DIR_EXPAND @@ -108,7 +108,7 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003 Free Software Foundation, Inc. +# Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -145,8 +145,8 @@ fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]) + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) fi])]) # serial 7 -*- Autoconf -*- @@ -319,7 +319,8 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 +# Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -355,27 +356,21 @@ else continue fi - grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue @@ -430,7 +425,7 @@ # This macro actually does too much some checks are only needed if # your package does certain things. But this isn't really a big deal. -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -506,7 +501,6 @@ AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) -AM_MISSING_PROG(AMTAR, tar) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl @@ -515,7 +509,9 @@ AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl - +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], @@ -820,13 +816,21 @@ # this.) AC_DEFUN([AM_PROG_MKDIR_P], [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # Keeping the `.' argument allows $(mkdir_p) to be used without - # argument. Indeed, we sometimes output rules like + # We used to keeping the `.' as first argument, in order to + # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. - # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more - # expensive solution, as it forces Make to start a sub-shell.) - mkdir_p='mkdir -p -- .' + # where $(somedir) is conditionally defined. However this is wrong + # for two reasons: + # 1. if the package is installed by a user who cannot write `.' + # make install will fail, + # 2. the above comment should most certainly read + # $(mkdir_p) $(DESTDIR)$(somedir) + # so it does not work when $(somedir) is undefined and + # $(DESTDIR) is not. + # To support the latter case, we have to write + # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), + # so the `.' trick is pointless. + mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as @@ -992,6 +996,114 @@ INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004 Free Software Foundation, Inc. + +# This program 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 program 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 this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 1 + + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + m4_include([config/align.m4]) m4_include([config/bold.m4]) m4_include([config/codeset.m4]) @@ -1020,3 +1132,4 @@ m4_include([config/symbolset.m4]) m4_include([config/tcltk.m4]) m4_include([config/version.m4]) +m4_include([config/wlong-double.m4]) diff -rNu smalltalk-2.1.9/blox-tk/Makefile.am smalltalk-2.1.10/blox-tk/Makefile.am --- smalltalk-2.1.9/blox-tk/Makefile.am 2003-05-27 19:41:21.000000000 +0200 +++ smalltalk-2.1.10/blox-tk/Makefile.am 2004-11-25 15:19:16.000000000 +0100 @@ -1,7 +1,7 @@ dist_noinst_DATA = stamp-classes -stamp-classes: Blox.st BloxBasic.st BloxCanvas.st BloxExtend.st \ +$(srcdir)/stamp-classes: Blox.st BloxBasic.st BloxCanvas.st BloxExtend.st \ BloxText.st BloxWidgets.st @echo Updating $@ @sed -n "s/.*'\([^']*\.st\)'.*/\1/p" $(srcdir)/Blox.st>$@ diff -rNu smalltalk-2.1.9/blox-tk/Makefile.in smalltalk-2.1.10/blox-tk/Makefile.in --- smalltalk-2.1.9/blox-tk/Makefile.in 2004-10-02 15:29:44.000000000 +0200 +++ smalltalk-2.1.10/blox-tk/Makefile.in 2005-02-03 09:30:43.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -38,6 +38,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ subdir = blox-tk DIST_COMMON = $(dist_noinst_DATA) $(noinst_HEADERS) \ @@ -63,12 +64,19 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(pkglibdir)" pkglibLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(pkglib_LTLIBRARIES) @@ -78,14 +86,13 @@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/BloxTK.Plo COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ +LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(blox_tk_la_SOURCES) DIST_SOURCES = $(blox_tk_la_SOURCES) @@ -219,6 +226,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -298,7 +307,7 @@ test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)" @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \ $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \ else :; fi; \ @@ -306,8 +315,8 @@ uninstall-pkglibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ - p="`echo $$p | sed -e 's|^.*/||'`"; \ + @set -x; list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \ done @@ -335,24 +344,21 @@ @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: @@ -466,7 +472,7 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -536,7 +542,7 @@ uninstall-pkglibLTLIBRARIES -stamp-classes: Blox.st BloxBasic.st BloxCanvas.st BloxExtend.st \ +$(srcdir)/stamp-classes: Blox.st BloxBasic.st BloxCanvas.st BloxExtend.st \ BloxText.st BloxWidgets.st @echo Updating $@ @sed -n "s/.*'\([^']*\.st\)'.*/\1/p" $(srcdir)/Blox.st>$@ diff -rNu smalltalk-2.1.9/config/Makefile.in smalltalk-2.1.10/config/Makefile.in --- smalltalk-2.1.9/config/Makefile.in 2004-10-02 15:29:44.000000000 +0200 +++ smalltalk-2.1.10/config/Makefile.in 2005-02-03 09:30:48.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -35,6 +35,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ subdir = config DIST_COMMON = $(dist_aclocal_DATA) $(dist_noinst_DATA) \ @@ -63,15 +64,22 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SCRIPTS = $(dist_noinst_SCRIPTS) SOURCES = DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(aclocaldir)" dist_aclocalDATA_INSTALL = $(INSTALL_DATA) DATA = $(dist_aclocal_DATA) $(dist_noinst_DATA) @@ -201,6 +209,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -290,7 +300,7 @@ test -z "$(aclocaldir)" || $(mkdir_p) "$(DESTDIR)$(aclocaldir)" @list='$(dist_aclocal_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(dist_aclocalDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(aclocaldir)/$$f'"; \ $(dist_aclocalDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(aclocaldir)/$$f"; \ done @@ -298,7 +308,7 @@ uninstall-dist_aclocalDATA: @$(NORMAL_UNINSTALL) @list='$(dist_aclocal_DATA)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(aclocaldir)/$$f'"; \ rm -f "$(DESTDIR)$(aclocaldir)/$$f"; \ done @@ -362,7 +372,7 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" diff -rNu smalltalk-2.1.9/config/compile smalltalk-2.1.10/config/compile --- smalltalk-2.1.9/config/compile 2003-06-09 09:36:06.000000000 +0200 +++ smalltalk-2.1.10/config/compile 2005-02-02 14:52:09.000000000 +0100 @@ -1,8 +1,9 @@ #! /bin/sh - # Wrapper for compilers which do not understand `-c -o'. -# Copyright 1999, 2000 Free Software Foundation, Inc. +scriptversion=2004-09-10.20 + +# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -24,76 +25,116 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -# Usage: -# compile PROGRAM [ARGS]... -# `-o FOO.o' is removed from the args passed to the actual compile. - -prog=$1 -shift +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand `-c -o'. +Remove `-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file `INSTALL'. + +Report bugs to . +EOF + exit 0 + ;; + -v | --v*) + echo "compile $scriptversion" + exit 0 + ;; +esac ofile= cfile= -args= -while test $# -gt 0; do - case "$1" in - -o) - # configure might choose to run compile as `compile cc -o foo foo.c'. - # So we do something ugly here. - ofile=$2 - shift - case "$ofile" in - *.o | *.obj) - ;; - *) - args="$args -o $ofile" - ofile= - ;; - esac - ;; - *.c) - cfile=$1 - args="$args $1" - ;; - *) - args="$args $1" - ;; - esac - shift +eat= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as `compile cc -o foo foo.c'. + # So we strip `-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift done if test -z "$ofile" || test -z "$cfile"; then - # If no `-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # `.c' file was seen then we are probably linking. That is also - # ok. - exec "$prog" $args + # If no `-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # `.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" fi # Name of file we expect compiler to create. -cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'` +cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'` # Create the lock directory. # Note: use `[/.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. -lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d +lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d while true; do - if mkdir $lockdir > /dev/null 2>&1; then - break - fi - sleep 1 + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir $lockdir; exit 1" 1 2 15 +trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. -"$prog" $args -status=$? +"$@" +ret=$? if test -f "$cofile"; then - mv "$cofile" "$ofile" + mv "$cofile" "$ofile" fi -rmdir $lockdir -exit $status +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff -rNu smalltalk-2.1.9/config/config.guess smalltalk-2.1.10/config/config.guess --- smalltalk-2.1.9/config/config.guess 2003-12-13 10:13:24.000000000 +0100 +++ smalltalk-2.1.10/config/config.guess 2005-02-02 15:55:33.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -timestamp='2003-10-20' +timestamp='2004-09-07' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -53,7 +53,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -197,15 +197,21 @@ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit 0 ;; + amd64:OpenBSD:*:*) + echo x86_64-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} + cats:OpenBSD:*:*) + echo arm-unknown-openbsd${UNAME_RELEASE} exit 0 ;; hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; + luna88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; mac68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; @@ -221,28 +227,33 @@ mvmeppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; - pegasos:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} + echo mips64-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sun3:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} exit 0 ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit 0 ;; + macppc:MirBSD:*:*) + echo powerppc-unknown-mirbsd${UNAME_RELEASE} + exit 0 ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit 0 ;; alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then + case $UNAME_RELEASE in + *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU @@ -280,14 +291,12 @@ "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac + # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha*:OpenVMS:*:*) - echo alpha-hp-vms + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? @@ -405,6 +414,9 @@ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; @@ -740,7 +752,7 @@ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; *:UNICOS/mp:*:*) - echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` @@ -763,21 +775,7 @@ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - # GNU/KFreeBSD systems have a "k" prefix to indicate we are using - # FreeBSD's kernel, but not the complete OS. - case ${LIBC} in gnu) kernel_only='k' ;; esac - echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin @@ -826,9 +824,18 @@ cris:Linux:*:*) echo cris-axis-linux-gnu exit 0 ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit 0 ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; @@ -1069,9 +1076,9 @@ M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit 0 ;; - M68*:*:R3V[567]*:*) + M68*:*:R3V[5678]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` @@ -1169,9 +1176,10 @@ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) - case `uname -p` in + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in *86) UNAME_PROCESSOR=i686 ;; - powerpc) UNAME_PROCESSOR=powerpc ;; + unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit 0 ;; @@ -1186,7 +1194,7 @@ *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; - NSR-[DGKLNPTVWY]:NONSTOP_KERNEL:*:*) + NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) @@ -1230,9 +1238,16 @@ SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit 0 ;; - *:DRAGONFLY:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly${UNAME_RELEASE} + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms && exit 0 ;; + I*) echo ia64-dec-vms && exit 0 ;; + V*) echo vax-dec-vms && exit 0 ;; + esac esac #echo '(No uname command or uname output not recognized.)' 1>&2 diff -rNu smalltalk-2.1.9/config/config.sub smalltalk-2.1.10/config/config.sub --- smalltalk-2.1.9/config/config.sub 2003-12-13 10:13:24.000000000 +0100 +++ smalltalk-2.1.10/config/config.sub 2005-02-02 15:55:33.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -timestamp='2003-11-20' +timestamp='2004-08-29' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -70,7 +70,7 @@ version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO @@ -145,7 +145,7 @@ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis) + -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; @@ -237,7 +237,7 @@ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ - | m32r | m68000 | m68k | m88k | mcore \ + | m32r | m32rle | m68000 | m68k | m88k | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -262,7 +262,7 @@ | pyramid \ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ + | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ @@ -300,7 +300,7 @@ | avr-* \ | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | cydra-* \ + | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ @@ -308,7 +308,7 @@ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ - | m32r-* \ + | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ @@ -326,8 +326,9 @@ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ + | mmix-* \ | msp430-* \ - | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ @@ -336,7 +337,7 @@ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ @@ -363,6 +364,9 @@ basic_machine=a29k-amd os=-udi ;; + abacus) + basic_machine=abacus-unknown + ;; adobe68k) basic_machine=m68010-adobe os=-scout @@ -380,6 +384,9 @@ amd64) basic_machine=x86_64-pc ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; amdahl) basic_machine=580-amdahl os=-sysv @@ -439,12 +446,27 @@ basic_machine=j90-cray os=-unicos ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16c) + basic_machine=cr16c-unknown + os=-elf + ;; crds | unos) basic_machine=m68k-crds ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; da30 | da30-*) basic_machine=m68k-da30 ;; @@ -645,10 +667,6 @@ mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; monitor) basic_machine=m68k-rom68k os=-coff @@ -729,10 +747,6 @@ np1) basic_machine=np1-gould ;; - nv1) - basic_machine=nv1-cray - os=-unicosmp - ;; nsr-tandem) basic_machine=nsr-tandem ;; @@ -1045,6 +1059,9 @@ romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; @@ -1067,7 +1084,7 @@ sh64) basic_machine=sh64-unknown ;; - sparc | sparcv9 | sparcv9b) + sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) @@ -1140,8 +1157,9 @@ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ @@ -1359,6 +1377,9 @@ *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; *-wec) os=-proelf ;; diff -rNu smalltalk-2.1.9/config/depcomp smalltalk-2.1.10/config/depcomp --- smalltalk-2.1.9/config/depcomp 2003-06-09 09:36:05.000000000 +0200 +++ smalltalk-2.1.10/config/depcomp 2005-02-02 14:52:09.000000000 +0100 @@ -1,7 +1,9 @@ #! /bin/sh - # depcomp - compile a program generating dependencies as side-effects -# Copyright 1999, 2000 Free Software Foundation, Inc. + +scriptversion=2004-05-31.23 + +# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,22 +27,45 @@ # Originally written by Alexandre Oliva . +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit 0 + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit 0 + ;; +esac + if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi -# `libtool' can also be set to `yes' or `no'. - -if test -z "$depfile"; then - base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` - dir=`echo "$object" | sed 's,/.*$,/,'` - if test "$dir" = "$object"; then - dir= - fi - # FIXME: should be _deps on DOS. - depfile="$dir.deps/$base" -fi +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" @@ -172,19 +197,25 @@ aix) # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. This file always lives in the current directory. - # Also, the AIX compiler puts `$object:' at the start of each line; - # $object doesn't have directory information. - stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts `$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" - outname="$stripped.o" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi - stat=$? + + if test -f "$tmpdepfile"; then : + else + stripped=`echo "$stripped" | sed 's,^.*/,,'` + tmpdepfile="$stripped.u" + fi + if test $stat -eq 0; then : else rm -f "$tmpdepfile" @@ -192,6 +223,7 @@ fi if test -f "$tmpdepfile"; then + outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. @@ -206,6 +238,44 @@ rm -f "$tmpdepfile" ;; +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. @@ -217,31 +287,40 @@ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then + # Dependencies are output in .lo.d with libtool 1.4. + # With libtool 1.5 they are output both in $dir.libs/$base.o.d + # and in $dir.libs/$base.o.d and $dir$base.o.d. We process the + # latter, because the former will be cleaned when $dir.libs is + # erased. tmpdepfile1="$dir.libs/$base.lo.d" - tmpdepfile2="$dir.libs/$base.d" + tmpdepfile2="$dir$base.o.d" + tmpdepfile3="$dir.libs/$base.d" "$@" -Wc,-MD else tmpdepfile1="$dir$base.o.d" tmpdepfile2="$dir$base.d" + tmpdepfile3="$dir$base.d" "$@" -MD fi stat=$? if test $stat -eq 0; then : else - rm -f "$tmpdepfile1" "$tmpdepfile2" + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" - else + elif test -f "$tmpdepfile2"; then tmpdepfile="$tmpdepfile2" + else + tmpdepfile="$tmpdepfile3" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a space and a tab in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi @@ -254,7 +333,7 @@ dashmstdout) # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o. + # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. @@ -265,9 +344,7 @@ shift fi - # Remove `-o $object'. We will use -o /dev/null later, - # however we can't do the remplacement now because - # `-o $object' might simply not be used + # Remove `-o $object'. IFS=" " for arg do @@ -287,7 +364,11 @@ done test -z "$dashmflag" && dashmflag=-M - "$@" -o /dev/null $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' @@ -306,6 +387,13 @@ makedepend) "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test $1 != '--mode=compile'; do + shift + done + shift + fi # X makedepend shift cleared=no @@ -318,7 +406,9 @@ case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; - -*) + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; @@ -339,7 +429,7 @@ cpp) # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout. + # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. @@ -381,7 +471,7 @@ msvisualcpp) # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o, + # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " @@ -421,3 +511,12 @@ esac exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff -rNu smalltalk-2.1.9/config/install-sh smalltalk-2.1.10/config/install-sh --- smalltalk-2.1.9/config/install-sh 2003-06-09 09:36:06.000000000 +0200 +++ smalltalk-2.1.10/config/install-sh 2005-02-02 14:52:09.000000000 +0100 @@ -1,19 +1,38 @@ #!/bin/sh -# # install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). + +scriptversion=2004-09-10.20 + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. # -# Copyright 1991 by the Massachusetts Institute of Technology +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it @@ -23,13 +42,11 @@ # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. - # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" - # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" @@ -41,211 +58,265 @@ rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" -transformbasename="" -transform_arg="" -instcmd="$mvprog" chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" +chowncmd= +chgrpcmd= +stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - : -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - chmodcmd="" - else - instcmd=$mkdirprog - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f "$src" ] || [ -d "$src" ] - then - : - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - : - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - : - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script +src= +dst= +dir_arg= +dstarg= +no_target_directory= + +usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: +-c (ignored) +-d create directories instead of installing files. +-g GROUP $chgrpprog installed files to GROUP. +-m MODE $chmodprog installed files to MODE. +-o USER $chownprog installed files to USER. +-s $stripprog installed files. +-t DIRECTORY install into DIRECTORY. +-T report an error if DSTFILE is a directory. +--help display this help and exit. +--version display version info and exit. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG +" + +while test -n "$1"; do + case $1 in + -c) shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + --help) echo "$usage"; exit 0;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -s) stripcmd=$stripprog + shift + continue;; -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' - ' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' + -t) dstarg=$2 + shift + shift + continue;; -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" + -T) no_target_directory=true shift + continue;; - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - : - fi + --version) echo "$0 $scriptversion"; exit 0;; - pathcomp="${pathcomp}/" + *) # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + test -n "$dir_arg$dstarg" && break + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dstarg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dstarg" + shift # fnord + fi + shift # arg + dstarg=$arg + done + break;; + esac done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - : - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile +if test -z "$1"; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi -fi && +for src +do + # Protect names starting with `-'. + case $src in + -*) src=./$src ;; + esac + + if test -n "$dir_arg"; then + dst=$src + src= + + if test -d "$dst"; then + mkdircmd=: + chmodcmd= + else + mkdircmd=$mkdirprog + fi + else + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dstarg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + dst=$dstarg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst ;; + esac + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dstarg: Is a directory" >&2 + exit 1 + fi + dst=$dst/`basename "$src"` + fi + fi + + # This sed command emulates the dirname command. + dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + + # Make sure that the destination directory exists. + + # Skip lots of stat calls in the usual case. + if test ! -d "$dstdir"; then + defaultIFS=' + ' + IFS="${IFS-$defaultIFS}" + + oIFS=$IFS + # Some sh's can't handle IFS=/ for some reason. + IFS='%' + set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` + IFS=$oIFS + + pathcomp= + + while test $# -ne 0 ; do + pathcomp=$pathcomp$1 + shift + if test ! -d "$pathcomp"; then + $mkdirprog "$pathcomp" + # mkdir can fail with a `File exist' error in case several + # install-sh are creating the directory concurrently. This + # is OK. + test -d "$pathcomp" || exit + fi + pathcomp=$pathcomp/ + done + fi + + if test -n "$dir_arg"; then + $doit $mkdircmd "$dst" \ + && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ + && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } + + else + dstfile=`basename "$dst"` + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + trap '(exit $?); exit' 1 2 13 15 + + # Copy the file name to the temp name. + $doit $cpprog "$src" "$dsttmp" && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ + && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && + + # Now rename the file to the real destination. + { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ + || { + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + if test -f "$dstdir/$dstfile"; then + $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ + || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ + || { + echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 + (exit 1); exit + } + else + : + fi + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" + } + } + fi || { (exit 1); exit; } +done -exit 0 +# The final little trick to "correctly" pass the exit status to the exit trap. +{ + (exit 0); exit +} + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff -rNu smalltalk-2.1.9/config/libtool.m4 smalltalk-2.1.10/config/libtool.m4 --- smalltalk-2.1.9/config/libtool.m4 2003-12-19 17:08:25.000000000 +0100 +++ smalltalk-2.1.10/config/libtool.m4 2005-02-03 09:29:07.000000000 +0100 @@ -1,5 +1,5 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- -## Copyright 1996, 1997, 1998, 1999, 2000, 2001 +## Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 ## Free Software Foundation, Inc. ## Originally by Gordon Matzigkeit , 1996 ## @@ -23,7 +23,6 @@ ## the same distribution terms that you use for the rest of that program. # serial 47 AC_PROG_LIBTOOL -# Debian $Rev: 74 $ # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) @@ -201,6 +200,8 @@ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi +cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` + # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) @@ -318,7 +319,7 @@ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. -if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then @@ -642,7 +643,7 @@ AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 - testring="ABCD" + teststring="ABCD" case $build_os in msdosdjgpp*) @@ -677,20 +678,34 @@ lt_cv_sys_max_cmd_len=8192; ;; + netbsd* | freebsd* | openbsd* | darwin* ) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for *BSD + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + ;; + *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \ - = "XX$testring") >/dev/null 2>&1 && - new_result=`expr "X$testring" : ".*" 2>&1` && + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` - testring=$testring$testring + teststring=$teststring$teststring done - testring= + teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. @@ -840,7 +855,7 @@ lt_cv_dlopen_self=yes ]) ;; - + *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], @@ -929,13 +944,6 @@ mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext - # According to Tom Tromey, Ian Lance Taylor reported there are C compilers - # that will create temporary files in the current directory regardless of - # the output directory. Thus, making CWD read-only will cause this test - # to fail, enabling locking or at least warning the user not to do parallel - # builds. - chmod -w . - lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. @@ -1022,8 +1030,8 @@ [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_AC_TAGVAR(hardcode_action, $1)= if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ - test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \ - test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then + test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ + test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existant directories. if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && @@ -1080,7 +1088,7 @@ *) AC_MSG_RESULT([no]) ;; - esac + esac fi ])# AC_LIBTOOL_SYS_LIB_STRIP @@ -1093,7 +1101,7 @@ library_names_spec= libname_spec='lib$name' soname_spec= -shrext=".so" +shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= @@ -1190,7 +1198,7 @@ shlibpath_var=LIBRARY_PATH ;; -bsdi4*) +bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -1206,7 +1214,7 @@ cygwin* | mingw* | pw32*) version_type=windows - shrext=".dll" + shrext_cmds=".dll" need_version=no need_lib_prefix=no @@ -1271,7 +1279,7 @@ soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH - shrext='$(test .$module = .yes && echo .so || echo .dylib)' + shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` @@ -1354,7 +1362,7 @@ need_version=no case "$host_cpu" in ia64*) - shrext='.so' + shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH @@ -1369,7 +1377,7 @@ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) - shrext='.sl' + shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH @@ -1380,7 +1388,7 @@ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) - shrext='.sl' + shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH @@ -1449,6 +1457,12 @@ # before this can be enabled. hardcode_into_libs=yes + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`$SED -e 's/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g' /etc/ld.so.conf | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, @@ -1458,6 +1472,18 @@ dynamic_linker='GNU/Linux ld.so' ;; +knetbsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -1467,7 +1493,7 @@ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi @@ -1516,7 +1542,7 @@ os2*) libname_spec='$name' - shrext=".dll" + shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' @@ -1662,7 +1688,9 @@ case $tagname in CXX) - if test -n "$CXX" && test "X$CXX" != "Xno"; then + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then AC_LIBTOOL_LANG_CXX_CONFIG else tagname="" @@ -2067,6 +2095,15 @@ *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac ])# AC_PROG_LD_RELOAD_FLAG @@ -2100,30 +2137,26 @@ lt_cv_deplibs_check_method=pass_all ;; -bsdi4*) +bsdi[[45]]*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; -cygwin* | mingw* | pw32*) - # win32_libid is a shell function defined in ltmain.sh +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='win32_libid' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump'. + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) - # this will be overwritten by pass_all, but leave it in just in case - lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' - lt_cv_file_magic_cmd='/usr/bin/file -L' - case "$host_os" in - rhapsody* | darwin1.[[012]]) - lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System` - ;; - *) # Darwin 1.3 on - lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' - ;; - esac lt_cv_deplibs_check_method=pass_all ;; @@ -2166,38 +2199,18 @@ ;; irix5* | irix6* | nonstopux*) - case $host_os in - irix5* | nonstopux*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" - ;; - *) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1" - ;; + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; esac - lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) - # linux always uses pass_all now, this code is the old way (tm) - case $host_cpu in - alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh*) - lt_cv_deplibs_check_method=pass_all ;; - *) - # glibc up to 2.1.1 does not perform some relocations on ARM - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; - esac lt_cv_deplibs_check_method=pass_all - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; netbsd*) @@ -2219,19 +2232,14 @@ ;; openbsd*) - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else - lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' - lt_cv_file_magic_test_file=/shlib/libc.so lt_cv_deplibs_check_method=pass_all ;; @@ -2241,7 +2249,6 @@ solaris*) lt_cv_deplibs_check_method=pass_all - lt_cv_file_magic_test_file=/lib/libc.so ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) @@ -2418,10 +2425,21 @@ # --------------- AC_DEFUN([_LT_AC_LANG_CXX], [AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([AC_PROG_CXXCPP]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) ])# _LT_AC_LANG_CXX +# _LT_AC_PROG_CXXCPP +# --------------- +AC_DEFUN([_LT_AC_PROG_CXXCPP], +[ +AC_REQUIRE([AC_PROG_CXX]) +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +fi +])# _LT_AC_PROG_CXXCPP # AC_LIBTOOL_F77 # -------------- @@ -2507,7 +2525,7 @@ fi if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries]) - if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ ]]" >/dev/null; then : + if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[ ]]" >/dev/null; then : else AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure]) _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no @@ -2557,48 +2575,11 @@ fi ;; -aix4*) +aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi - ;; - darwin* | rhapsody*) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - case "$host_os" in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' - ;; - esac - fi - ;; - esac - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring' - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; + ;; esac AC_MSG_RESULT([$enable_shared]) @@ -2623,7 +2604,7 @@ AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], [AC_LANG_PUSH(C++) AC_REQUIRE([AC_PROG_CXX]) -AC_REQUIRE([AC_PROG_CXXCPP]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(allow_undefined_flag, $1)= @@ -2875,6 +2856,7 @@ esac ;; + cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. @@ -2898,57 +2880,68 @@ _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; + darwin* | rhapsody*) + case "$host_os" in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - darwin* | rhapsody*) - if test "$GXX" = yes; then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - case "$host_os" in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' + if test "$GXX" = yes ; then + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' - ;; - esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case "$cc_basename" in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac fi - ;; - esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; + ;; dgux*) case $cc_basename in @@ -3005,7 +2998,7 @@ # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then @@ -3154,9 +3147,20 @@ icpc) # Intel C++ with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' @@ -3213,6 +3217,22 @@ # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; + openbsd2*) + # C++ shared libraries are fairly broken + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd='echo' + ;; osf3*) case $cc_basename in KCC) @@ -3712,7 +3732,7 @@ postinstall_cmds='$RANLIB $lib' fi ;; -aix4*) +aix4* | aix5*) test "$enable_shared" = yes && enable_static=no ;; esac @@ -3854,7 +3874,7 @@ # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST - fi + fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. @@ -3909,7 +3929,7 @@ _LT_AC_TAGVAR(archive_cmds, $1) | \ _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \ _LT_AC_TAGVAR(module_cmds, $1) | \ - _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ + _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \ _LT_AC_TAGVAR(export_symbols_cmds, $1) | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ @@ -3979,7 +3999,7 @@ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= @@ -4071,7 +4091,7 @@ libext="$libext" # Shared library suffix (normally ".so"). -shrext='$shrext' +shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" @@ -4384,6 +4404,13 @@ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; +linux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDGIRSTW]]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + fi + ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; @@ -4611,6 +4638,16 @@ ;; esac ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case "$cc_basename" in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; dgux*) case $cc_basename in ec++) @@ -4675,7 +4712,7 @@ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' - ;; + ;; cxx) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha @@ -4864,6 +4901,16 @@ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case "$cc_basename" in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being @@ -5035,7 +5082,7 @@ _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= - _LT_AC_TAGVAR(module_expsym_cmds, $1)= + _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* @@ -5179,7 +5226,7 @@ ;; linux*) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_cmds, $1)="$tmp_archive_cmds" supports_anon_versioning=no @@ -5365,7 +5412,7 @@ _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; - bsdi4*) + bsdi[[45]]*) _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; @@ -5379,7 +5426,7 @@ # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. - shrext=".dll" + shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. @@ -5391,53 +5438,53 @@ ;; darwin* | rhapsody*) - if test "$GXX" = yes ; then - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no case "$host_os" in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup' - ;; - esac - fi - ;; + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case "$cc_basename" in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi ;; dgux*) @@ -5581,6 +5628,7 @@ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else @@ -5787,7 +5835,7 @@ AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $rm conftest* printf "$lt_simple_compile_test_code" > conftest.$ac_ext - + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest @@ -5946,7 +5994,7 @@ fi done done -SED=$lt_cv_path_SED ]) +SED=$lt_cv_path_SED AC_MSG_RESULT([$SED]) ]) diff -rNu smalltalk-2.1.9/config/ltmain.sh smalltalk-2.1.10/config/ltmain.sh --- smalltalk-2.1.9/config/ltmain.sh 2003-12-19 17:04:41.000000000 +0100 +++ smalltalk-2.1.10/config/ltmain.sh 2005-02-03 09:29:07.000000000 +0100 @@ -1,7 +1,7 @@ # ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # @@ -24,6 +24,34 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. +basename="s,^.*/,,g" + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + +# The name of this program: +progname=`echo "$progpath" | $SED $basename` +modename="$progname" + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +PROGRAM=ltmain.sh +PACKAGE=libtool +VERSION=1.5.10 +TIMESTAMP=" (1.1220.2.130 2004/09/19 12:13:49)" + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes. +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. @@ -36,7 +64,7 @@ : else # Restart under the correct shell, and then maybe $echo will work. - exec $SHELL "$0" --no-reexec ${1+"$@"} + exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then @@ -45,19 +73,9 @@ cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Global variables. @@ -119,10 +137,13 @@ # Shell function definitions: # This seems to be the best place for them +# func_win32_libid arg +# return the library type of file 'arg' +# # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. -win32_libid () { +func_win32_libid () { win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in @@ -131,7 +152,7 @@ ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ - grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then + $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'` if test "X$win32_nmres" = "Ximport" ; then @@ -141,7 +162,7 @@ fi fi ;; - *DLL*) + *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... @@ -155,9 +176,192 @@ $echo $win32_libid_type } + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () { + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case "$@ " in + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 + exit $EXIT_FAILURE +# else +# $echo "$modename: using $tagname tagged configuration" + fi + ;; + esac + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () { + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + my_status="" + + $show "${rm}r $my_gentop" + $run ${rm}r "$my_gentop" + $show "$mkdir $my_gentop" + $run $mkdir "$my_gentop" + my_status=$? + if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then + exit $my_status + fi + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` + my_xdir="$my_gentop/$my_xlib" + + $show "${rm}r $my_xdir" + $run ${rm}r "$my_xdir" + $show "$mkdir $my_xdir" + $run $mkdir "$my_xdir" + status=$? + if test "$status" -ne 0 && test ! -d "$my_xdir"; then + exit $status + fi + case $host in + *-darwin*) + $show "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + if test -z "$run"; then + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`basename $darwin_archive` + darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` + if test -n "$darwin_arches"; then + darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + $show "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + # Remove the table of contents from the thin files. + $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF 2>/dev/null || true + $AR -d "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" __.SYMDEF\ SORTED 2>/dev/null || true + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + $AR -xo "${darwin_base_archive}" + rm "${darwin_base_archive}" + cd "$darwin_curdir" + done # $darwin_arches + ## Okay now we have a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f | xargs basename | sort -u | $NL2SP` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + lipo -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + rm -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + (cd $my_xdir && $AR x $my_xabs) || exit $? + fi # $darwin_arches + fi # $run + ;; + *) + # We will extract separately just the conflicting names and we will + # no longer touch any unique names. It is faster to leave these + # extract automatically by $AR in one run. + $show "(cd $my_xdir && $AR x $my_xabs)" + $run eval "(cd \$my_xdir && $AR x \$my_xabs)" || exit $? + if ($AR t "$my_xabs" | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 + $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 + $AR t "$my_xabs" | sort | uniq -cd | while read -r count name + do + i=1 + while test "$i" -le "$count" + do + # Put our $i before any first dot (extension) + # Never overwrite any file + name_to="$name" + while test "X$name_to" = "X$name" || test -f "$my_xdir/$name_to" + do + name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` + done + $show "(cd $my_xdir && $AR xN $i $my_xabs '$name' && $mv '$name' '$name_to')" + $run eval "(cd \$my_xdir && $AR xN $i \$my_xabs '$name' && $mv '$name' '$name_to')" || exit $? + i=`expr $i + 1` + done + done + fi + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +} # End of Shell function definitions ##################################### +# Darwin sucks +eval std_shrext=\"$shrext_cmds\" + # Parse our command line options once, thoroughly. while test "$#" -gt 0 do @@ -177,12 +381,13 @@ ;; tag) tagname="$arg" + preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac @@ -192,17 +397,16 @@ # not specially marked. ;; *) - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`" + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; - *) eval "$prev=\$arg" ;; @@ -225,21 +429,22 @@ $echo "Copyright (C) 2003 Free Software Foundation, Inc." $echo "This is free software; see the source for copying conditions. There is NO" $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - exit 0 + exit $EXIT_SUCCESS ;; --config) - ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 + ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do - ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0" + ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done - exit 0 + exit $EXIT_SUCCESS ;; --debug) $echo "$progname: enabling shell trace mode" set -x + preserve_args="$preserve_args $arg" ;; --dry-run | -n) @@ -258,7 +463,7 @@ else $echo "disable static libraries" fi - exit 0 + exit $EXIT_SUCCESS ;; --finish) mode="finish" ;; @@ -270,6 +475,7 @@ --quiet | --silent) show=: + preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag ;; @@ -277,6 +483,7 @@ set tag "$optarg" ${1+"$@"} shift prev=tag + preserve_args="$preserve_args --tag" ;; -dlopen) @@ -287,7 +494,7 @@ -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; *) @@ -300,7 +507,7 @@ if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # If this variable is set in any of the actions, the command in it @@ -356,7 +563,7 @@ if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. @@ -371,9 +578,11 @@ # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes suppress_output= arg_mode=normal libobj= + later= for arg do @@ -396,24 +605,19 @@ -o) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 - exit 1 + exit $EXIT_FAILURE fi arg_mode=target continue ;; - -static) - build_old_libs=yes - continue - ;; - - -prefer-pic) - pic_mode=yes + -static | -prefer-pic | -prefer-non-pic) + later="$later $arg" continue ;; - -prefer-non-pic) - pic_mode=no + -no-suppress) + suppress_opt=no continue ;; @@ -426,7 +630,7 @@ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' - for arg in $args; do + for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. @@ -476,11 +680,11 @@ case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" - exit 1 + exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; *) # Get the name of the library object. @@ -513,50 +717,30 @@ *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac - # Infer tagged configuration to use if any are available and - # if one wasn't chosen via the "--tag" command line option. - # Only attempt this if the compiler in the base compile - # command doesn't match the default compiler. - if test -n "$available_tags" && test -z "$tagname"; then - case $base_compile in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" - case "$base_compile " in - "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) - # The compiler in the base compile command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - $echo "$modename: unable to infer tagged configuration" - $echo "$modename: specify a tag with \`--tag'" 1>&2 - exit 1 -# else -# $echo "$modename: using $tagname tagged configuration" - fi + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -static) + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue ;; esac - fi + done objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` @@ -570,7 +754,7 @@ if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Delete any leftover library objects. @@ -581,7 +765,7 @@ fi $run $rm $removelist - trap "$run $rm $removelist; exit 1" 1 2 15 + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in @@ -600,7 +784,7 @@ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" - trap "$run $rm $removelist; exit 1" 1 2 15 + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no @@ -610,7 +794,7 @@ # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then - until $run ln "$0" "$lockfile" 2>/dev/null; do + until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done @@ -628,7 +812,7 @@ compiler." $run $rm $removelist - exit 1 + exit $EXIT_FAILURE fi $echo $srcfile > "$lockfile" fi @@ -683,7 +867,7 @@ if $run eval "$command"; then : else test -n "$output_obj" && $run $rm $removelist - exit 1 + exit $EXIT_FAILURE fi if test "$need_locks" = warn && @@ -703,7 +887,7 @@ compiler." $run $rm $removelist - exit 1 + exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one @@ -724,7 +908,9 @@ EOF # Allow error messages only from the first compilation. - suppress_output=' >/dev/null 2>&1' + if test "$suppress_opt" = yes; then + suppress_output=' >/dev/null 2>&1' + fi else # No PIC object so indicate it doesn't exist in the libtool # object file. @@ -753,7 +939,7 @@ if $run eval "$command"; then : else $run $rm $removelist - exit 1 + exit $EXIT_FAILURE fi if test "$need_locks" = warn && @@ -773,7 +959,7 @@ compiler." $run $rm $removelist - exit 1 + exit $EXIT_FAILURE fi # Just move the object if needed @@ -811,7 +997,7 @@ $run $rm "$lockfile" fi - exit 0 + exit $EXIT_SUCCESS ;; # libtool link mode @@ -837,7 +1023,7 @@ ;; esac libtool_args="$nonopt" - base_compile="$nonopt" + base_compile="$nonopt $@" compile_command="$nonopt" finalize_command="$nonopt" @@ -869,6 +1055,7 @@ no_install=no objs= non_pic_objects= + precious_files_regex= prefer_static_libs=no preload=no prev= @@ -882,6 +1069,8 @@ vinfo= vinfo_number=no + func_infer_tag $base_compile + # We need to know -static, to get the right output filenames. for arg do @@ -913,7 +1102,6 @@ # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" - base_compile="$base_compile $arg" shift case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") @@ -977,7 +1165,7 @@ export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" - exit 1 + exit $EXIT_FAILURE fi prev= continue @@ -992,6 +1180,11 @@ prev= continue ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; release) release="-$arg" prev= @@ -1024,7 +1217,7 @@ test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Extract subdirectory from the argument. @@ -1077,7 +1270,7 @@ # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit 1 + exit $EXIT_FAILURE else # Dry-run case. @@ -1098,7 +1291,7 @@ done else $echo "$modename: link input file \`$save_arg' does not exist" - exit 1 + exit $EXIT_FAILURE fi arg=$save_arg prev= @@ -1110,7 +1303,7 @@ [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then @@ -1150,6 +1343,11 @@ finalize_command="$finalize_command $qarg" continue ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; *) eval "$prev=\"\$arg\"" prev= @@ -1198,7 +1396,7 @@ -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" - exit 1 + exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms @@ -1234,7 +1432,7 @@ absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi dir="$absdir" ;; @@ -1289,6 +1487,11 @@ continue ;; + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) + deplibs="$deplibs $arg" + continue + ;; + -module) module=yes continue @@ -1353,6 +1556,11 @@ -o) prev=output ;; + -precious-files-regex) + prev=precious_regex + continue + ;; + -release) prev=release continue @@ -1375,7 +1583,7 @@ [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac case "$xrpath " in @@ -1498,7 +1706,7 @@ test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Extract subdirectory from the argument. @@ -1551,7 +1759,7 @@ # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit 1 + exit $EXIT_FAILURE else # Dry-run case. @@ -1618,48 +1826,7 @@ if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 - exit 1 - fi - - # Infer tagged configuration to use if any are available and - # if one wasn't chosen via the "--tag" command line option. - # Only attempt this if the compiler in the base link - # command doesn't match the default compiler. - if test -n "$available_tags" && test -z "$tagname"; then - case $base_compile in - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when configure was run. - "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;; - # Blanks at the start of $base_compile will cause this to fail - # if we don't check for them as well. - *) - for z in $available_tags; do - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then - # Evaluate the configuration. - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" - case $base_compile in - "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) - # The compiler in $compile_command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - $echo "$modename: unable to infer tagged configuration" - $echo "$modename: specify a tag with \`--tag'" 1>&2 - exit 1 -# else -# $echo "$modename: using $tagname tagged configuration" - fi - ;; - esac + exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then @@ -1703,7 +1870,7 @@ "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; @@ -1713,7 +1880,7 @@ case $host in *cygwin* | *mingw* | *pw32*) - # don't eliminate duplcations in $postdeps and $predeps + # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) @@ -1766,7 +1933,7 @@ *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac done @@ -1804,6 +1971,15 @@ lib= found=no case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + fi + continue + ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 @@ -1815,7 +1991,7 @@ fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do - for search_ext in .la $shrext .so .a; do + for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then @@ -1891,11 +2067,11 @@ fi if test "$pass" = scan; then deplibs="$deplib $deplibs" - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 @@ -1923,7 +2099,22 @@ fi case $linkmode in lib) - if test "$deplibs_check_method" != pass_all; then + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method + match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + if eval $echo \"$deplib\" 2>/dev/null \ + | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then $echo $echo "*** Warning: Trying to link with static lib archive $deplib." $echo "*** I have the capability to make that library automatically link in when" @@ -1974,14 +2165,14 @@ if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 + exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` @@ -2017,7 +2208,7 @@ if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" @@ -2034,12 +2225,12 @@ done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 - exit 1 + exit $EXIT_FAILURE fi continue fi # $pass = conv - + # Get the name of the library we link against. linklib= for l in $old_library $library_names; do @@ -2047,16 +2238,18 @@ done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi - if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't @@ -2094,10 +2287,17 @@ absdir="$libdir" fi else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - notinst_path="$notinst_path $abs_ladir" + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` @@ -2105,7 +2305,7 @@ if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). @@ -2132,7 +2332,7 @@ continue fi - + if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" @@ -2219,17 +2419,18 @@ need_relink=yes fi # This is a shared library - - # Warn about portability, can't link against -module's on some systems (darwin) - if test "$shouldnotlink" = yes && test "$pass" = link ; then + + # Warn about portability, can't link against -module's on + # some systems (darwin) + if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; then $echo "*** Warning: Linking the executable $output against the loadable module" else $echo "*** Warning: Linking the shared library $output against the loadable module" fi - $echo "*** $linklib is not portable!" - fi + $echo "*** $linklib is not portable!" + fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. @@ -2287,9 +2488,10 @@ else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' - eval cmds=\"$extract_expsyms_cmds\" + cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -2300,9 +2502,10 @@ if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' - eval cmds=\"$old_archive_from_expsyms_cmds\" + cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -2325,9 +2528,9 @@ case $host in *-*-sco3.2v5* ) add_dir="-L$dir" ;; *-*-darwin* ) - # if the lib is a module then we can not link against it, someone - # is ignoring the new warnings I added - if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; then + # if the lib is a module then we can not link against + # it, someone is ignoring the new warnings I added + if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then $echo "** Warning, lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $echo @@ -2335,7 +2538,7 @@ $echo "** The link will probably fail, sorry" else add="$dir/$old_library" - fi + fi fi esac elif test "$hardcode_minus_L" = no; then @@ -2377,7 +2580,7 @@ if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" - exit 1 + exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then @@ -2420,7 +2623,8 @@ esac add="-l$name" elif test "$hardcode_automatic" = yes; then - if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" @@ -2500,7 +2704,8 @@ if test "$linkmode" = lib; then if test -n "$dependency_libs" && - { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= @@ -2557,7 +2762,7 @@ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 @@ -2567,7 +2772,8 @@ depdepl= case $host in *-*-darwin*) - # we do not want to link against static libs, but need to link against shared + # we do not want to link against static libs, + # but need to link against shared eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do @@ -2575,43 +2781,42 @@ done if test -f "$path/$depdepl" ; then depdepl="$path/$depdepl" - fi + fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac - path="" fi + path="" ;; *) - path="-L$path" - ;; - esac - + path="-L$path" + ;; + esac ;; - -l*) + -l*) case $host in *-*-darwin*) - # Again, we only want to link against shared libraries - eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` - for tmp in $newlib_search_path ; do - if test -f "$tmp/lib$tmp_libs.dylib" ; then - eval depdepl="$tmp/lib$tmp_libs.dylib" - break - fi - done - path="" + # Again, we only want to link against shared libraries + eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` + for tmp in $newlib_search_path ; do + if test -f "$tmp/lib$tmp_libs.dylib" ; then + eval depdepl="$tmp/lib$tmp_libs.dylib" + break + fi + done + path="" ;; *) continue ;; - esac + esac ;; *) continue ;; esac case " $deplibs " in *" $depdepl "*) ;; - *) deplibs="$deplibs $depdepl" ;; - esac + *) deplibs="$depdepl $deplibs" ;; + esac case " $deplibs " in *" $path "*) ;; *) deplibs="$deplibs $path" ;; @@ -2701,7 +2906,8 @@ eval $var=\"$tmp_libs\" done # for var fi - # Last step: remove runtime libs from dependency_libs (they stay in deplibs) + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in @@ -2761,19 +2967,19 @@ case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - eval shared_ext=\"$shrext\" + eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - eval shared_ext=\"$shrext\" + eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` @@ -2784,7 +2990,7 @@ if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 - exit 1 + exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" @@ -2832,13 +3038,13 @@ if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible - + case $vinfo_number in yes) number_major="$2" @@ -2882,7 +3088,7 @@ *) $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac @@ -2891,7 +3097,7 @@ *) $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac @@ -2900,14 +3106,14 @@ *) $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Calculate the version variables. @@ -2924,7 +3130,7 @@ versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) @@ -2996,7 +3202,7 @@ *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac @@ -3050,6 +3256,12 @@ *.$objext) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi removelist="$removelist $p" ;; *) ;; @@ -3529,7 +3741,7 @@ fi # Get the real and link names of the library. - eval shared_ext=\"$shrext\" + eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" @@ -3559,10 +3771,11 @@ $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols - eval cmds=\"$export_symbols_cmds\" + cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" @@ -3592,12 +3805,12 @@ for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; - *) + *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done - deplibs="$tmp_deplibs" + deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then @@ -3605,67 +3818,13 @@ eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi generated="$generated $gentop" - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - # We will extract separately just the conflicting names and we will no - # longer touch any unique names. It is faster to leave these extract - # automatically by $AR in one run. - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 - $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 - $AR t "$xabs" | sort | uniq -cd | while read -r count name - do - i=1 - while test "$i" -le "$count" - do - # Put our $i before any first dot (extension) - # Never overwrite any file - name_to="$name" - while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" - do - name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` - done - $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" - $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? - i=`expr $i + 1` - done - done - fi - - libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` - done + func_extract_archives $gentop $convenience + libobjs="$libobjs $func_extract_archives_result" fi fi - + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" @@ -3679,19 +3838,23 @@ # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - eval cmds=\"$module_expsym_cmds\" + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds else - eval cmds=\"$module_cmds\" + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval cmds=\"$archive_expsym_cmds\" + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds else - eval cmds=\"$archive_cmds\" + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds fi fi - if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` && + if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else @@ -3792,19 +3955,28 @@ # value of $libobjs for piecewise linking. # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds else - eval cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi fi # Append the command to remove the reloadable object files # to the just-reset $cmds. - eval cmds=\"\$cmds~$rm $delfiles\" + eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -3813,7 +3985,7 @@ # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? - exit 0 + exit $EXIT_SUCCESS fi # Create links to the real library. @@ -3861,7 +4033,7 @@ *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 - exit 1 + exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` @@ -3890,64 +4062,10 @@ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi generated="$generated $gentop" - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - # We will extract separately just the conflicting names and we will no - # longer touch any unique names. It is faster to leave these extract - # automatically by $AR in one run. - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 - $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 - $AR t "$xabs" | sort | uniq -cd | while read -r count name - do - i=1 - while test "$i" -le "$count" - do - # Put our $i before any first dot (extension) - # Never overwrite any file - name_to="$name" - while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" - do - name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` - done - $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" - $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? - i=`expr $i + 1` - done - done - fi - - reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` - done + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi @@ -3955,10 +4073,11 @@ reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" - eval cmds=\"$reload_cmds\" + cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -3971,7 +4090,7 @@ $run ${rm}r $gentop fi - exit 0 + exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then @@ -3984,17 +4103,18 @@ # accidentally link it into a program. # $show "echo timestamp > $libobj" # $run eval "echo timestamp > $libobj" || exit $? - exit 0 + exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" - eval cmds=\"$reload_cmds\" + cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -4006,7 +4126,7 @@ $run ${rm}r $gentop fi - exit 0 + exit $EXIT_SUCCESS ;; prog) @@ -4324,7 +4444,7 @@ ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac else @@ -4412,7 +4532,7 @@ # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? - exit 0 + exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then @@ -4467,10 +4587,10 @@ fi # Quote $echo for shipping. - if test "X$echo" = "X$SHELL $0 --fallback-echo"; then - case $0 in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; - *) qecho="$SHELL `pwd`/$0 --fallback-echo";; + if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then + case $progpath in + [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; + *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else @@ -4496,7 +4616,7 @@ cwrappersource=`$echo ${objdir}/lt-${output}.c` cwrapper=`$echo ${output}.exe` $rm $cwrappersource $cwrapper - trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15 + trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 cat > $cwrappersource < $output "\ #! $SHELL @@ -4726,7 +4846,7 @@ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. -if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" @@ -4805,7 +4925,7 @@ else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" - exit 1 + exit $EXIT_FAILURE fi fi @@ -4867,20 +4987,20 @@ esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" - exit 1 + exit $EXIT_FAILURE fi else # The program doesn't exist. \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 $echo \"See the $PACKAGE documentation for more information.\" 1>&2 - exit 1 + exit $EXIT_FAILURE fi fi\ " chmod +x $output fi - exit 0 + exit $EXIT_SUCCESS ;; esac @@ -4903,76 +5023,21 @@ if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test "$status" -ne 0 && test ! -d "$gentop"; then - exit $status - fi generated="$generated $gentop" - # Add in members from convenience archives. - for xlib in $addlibs; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test "$status" -ne 0 && test ! -d "$xdir"; then - exit $status - fi - # We will extract separately just the conflicting names and we will no - # longer touch any unique names. It is faster to leave these extract - # automatically by $AR in one run. - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: warning: object name conflicts; renaming object files" 1>&2 - $echo "$modename: warning: to ensure that they will not overwrite" 1>&2 - $AR t "$xabs" | sort | uniq -cd | while read -r count name - do - i=1 - while test "$i" -le "$count" - do - # Put our $i before any first dot (extension) - # Never overwrite any file - name_to="$name" - while test "X$name_to" = "X$name" || test -f "$xdir/$name_to" - do - name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"` - done - $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')" - $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $? - i=`expr $i + 1` - done - done - fi - - oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` - done + func_extract_archives $gentop $addlibs + oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - eval cmds=\"$old_archive_from_new_cmds\" + cmds=$old_archive_from_new_cmds else eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then - : + cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." @@ -4999,7 +5064,7 @@ for obj in $save_oldobjs do last_oldobj=$obj - done + done for obj in $save_oldobjs do oldobjs="$objlist $obj" @@ -5013,7 +5078,7 @@ oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB - fi + fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= @@ -5024,12 +5089,13 @@ if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else - eval cmds=\"\$concat_cmds~$old_archive_cmds\" + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do + eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? @@ -5061,11 +5127,13 @@ fi done # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then - relink_command= - fi + relink_command= + fi + + # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do @@ -5083,7 +5151,7 @@ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit 1 + exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; @@ -5097,7 +5165,7 @@ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 + exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done @@ -5108,7 +5176,7 @@ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 + exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done @@ -5116,7 +5184,7 @@ else newdlfiles= for lib in $dlfiles; do - case $lib in + case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac @@ -5125,7 +5193,7 @@ dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do - case $lib in + case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac @@ -5188,7 +5256,7 @@ $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac - exit 0 + exit $EXIT_SUCCESS ;; # libtool install mode @@ -5277,13 +5345,13 @@ if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test -z "$files"; then @@ -5293,7 +5361,7 @@ $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. @@ -5314,7 +5382,7 @@ if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi fi case $destdir in @@ -5326,7 +5394,7 @@ *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac done @@ -5355,7 +5423,7 @@ else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi library_names= @@ -5397,7 +5465,7 @@ # but it's something to keep an eye on. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 - exit 1 + exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then @@ -5412,7 +5480,7 @@ if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - exit 1 + exit $EXIT_FAILURE fi fi @@ -5447,10 +5515,11 @@ # Do each command in the postinstall commands. lib="$destdir/$realname" - eval cmds=\"$postinstall_cmds\" + cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -5490,7 +5559,7 @@ *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac @@ -5508,7 +5577,7 @@ $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi - exit 0 + exit $EXIT_SUCCESS ;; *) @@ -5562,7 +5631,7 @@ # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi finalize=yes @@ -5603,8 +5672,12 @@ tmpdir="/tmp" test -n "$TMPDIR" && tmpdir="$TMPDIR" tmpdir="$tmpdir/libtool-$$" - if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : + save_umask=`umask` + umask 0077 + if $mkdir "$tmpdir"; then + umask $save_umask else + umask $save_umask $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 continue fi @@ -5663,16 +5736,17 @@ $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? - if test -n "$stripme" && test -n "$striplib"; then + if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. - eval cmds=\"$old_postinstall_cmds\" + cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done @@ -5686,9 +5760,9 @@ if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $0 --finish$current_libdirs' + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else - exit 0 + exit $EXIT_SUCCESS fi ;; @@ -5707,10 +5781,11 @@ for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. - eval cmds=\"$finish_cmds\" + cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" @@ -5727,7 +5802,7 @@ fi # Exit here if they wanted silent mode. - test "$show" = : && exit 0 + test "$show" = : && exit $EXIT_SUCCESS $echo "----------------------------------------------------------------------" $echo "Libraries have been installed in:" @@ -5763,7 +5838,7 @@ $echo "See any operating system documentation about shared libraries for" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "----------------------------------------------------------------------" - exit 0 + exit $EXIT_SUCCESS ;; # libtool execute mode @@ -5775,7 +5850,7 @@ if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" - exit 1 + exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. @@ -5783,7 +5858,7 @@ if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi dir= @@ -5794,7 +5869,7 @@ else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi # Read the libtool library. @@ -5821,7 +5896,7 @@ dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 - exit 1 + exit $EXIT_FAILURE fi ;; @@ -5901,7 +5976,7 @@ $echo "export $shlibpath_var" fi $echo "$cmd$args" - exit 0 + exit $EXIT_SUCCESS fi ;; @@ -5929,7 +6004,7 @@ if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi rmdirs= @@ -5984,10 +6059,11 @@ if test "$mode" = uninstall; then if test -n "$library_names"; then # Do each command in the postuninstall commands. - eval cmds=\"$postuninstall_cmds\" + cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then @@ -5999,10 +6075,11 @@ if test -n "$old_library"; then # Do each command in the old_postuninstall commands. - eval cmds=\"$old_postuninstall_cmds\" + cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then @@ -6041,7 +6118,7 @@ if test "$mode" = clean ; then noexename=$name case $file in - *.exe) + *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, @@ -6086,20 +6163,20 @@ "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 - exit 1 + exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd - exit 1 + exit $EXIT_FAILURE fi # We need to display help for each of the modes. @@ -6135,7 +6212,7 @@ a more detailed description of MODE. Report bugs to ." - exit 0 + exit $EXIT_SUCCESS ;; clean) @@ -6247,6 +6324,8 @@ -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries @@ -6288,14 +6367,14 @@ *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 - exit 1 + exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." -exit 0 +exit $EXIT_SUCCESS # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting diff -rNu smalltalk-2.1.9/config/mdate-sh smalltalk-2.1.10/config/mdate-sh --- smalltalk-2.1.9/config/mdate-sh 2003-06-09 09:36:06.000000000 +0200 +++ smalltalk-2.1.10/config/mdate-sh 2005-02-02 14:52:51.000000000 +0100 @@ -1,6 +1,9 @@ #!/bin/sh # Get modification time of a file or directory and pretty-print it. -# Copyright 1995, 1996, 1997 Free Software Foundation, Inc. + +scriptversion=2003-11-09.00 + +# Copyright (C) 1995, 1996, 1997, 2003 Free Software Foundation, Inc. # written by Ulrich Drepper , June 1995 # # This program is free software; you can redistribute it and/or modify @@ -22,6 +25,31 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +case $1 in + '') + echo "$0: No file. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: mdate-sh [--help] [--version] FILE + +Pretty-print the modification time of FILE. + +Report bugs to . +EOF + exit 0 + ;; + -v | --v*) + echo "mdate-sh $scriptversion" + exit 0 + ;; +esac + # Prevent date giving response in another language. LANG=C export LANG @@ -30,24 +58,38 @@ LC_TIME=C export LC_TIME -# Get the extended ls output of the file or directory. -# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. +save_arg1="$1" + +# Find out how to get the extended ls output of a file or directory. if ls -L /dev/null 1>/dev/null 2>&1; then - set - x`ls -L -l -d $1` + ls_command='ls -L -l -d' else - set - x`ls -l -d $1` + ls_command='ls -l -d' fi -# The month is at least the fourth argument -# (3 shifts here, the next inside the loop). -shift -shift -shift -# Find the month. Next argument is day, followed by the year or time. +# A `ls -l' line looks as follows on OS/2. +# drwxrwx--- 0 Aug 11 2001 foo +# This differs from Unix, which adds ownership information. +# drwxrwx--- 2 root root 4096 Aug 11 2001 foo +# +# To find the date, we split the line on spaces and iterate on words +# until we find a month. This cannot work with files whose owner is a +# user named `Jan', or `Feb', etc. However, it's unlikely that `/' +# will be owned by a user whose name is a month. So we first look at +# the extended ls output of the root directory to decide how many +# words should be skipped to get the date. + +# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. +set - x`$ls_command /` + +# Find which argument is the month. month= +command= until test $month do shift + # Add another shift to the command. + command="$command shift;" case $1 in Jan) month=January; nummonth=1;; Feb) month=February; nummonth=2;; @@ -64,6 +106,28 @@ esac done +# Get the extended ls output of the file or directory. +set - x`eval "$ls_command \"\$save_arg1\""` + +# Remove all preceding arguments +eval $command + +# Get the month. Next argument is day, followed by the year or time. +case $1 in + Jan) month=January; nummonth=1;; + Feb) month=February; nummonth=2;; + Mar) month=March; nummonth=3;; + Apr) month=April; nummonth=4;; + May) month=May; nummonth=5;; + Jun) month=June; nummonth=6;; + Jul) month=July; nummonth=7;; + Aug) month=August; nummonth=8;; + Sep) month=September; nummonth=9;; + Oct) month=October; nummonth=10;; + Nov) month=November; nummonth=11;; + Dec) month=December; nummonth=12;; +esac + day=$2 # Here we have to deal with the problem that the ls output gives either @@ -95,3 +159,12 @@ # The result. echo $day $month $year + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff -rNu smalltalk-2.1.9/config/missing smalltalk-2.1.10/config/missing --- smalltalk-2.1.9/config/missing 2003-06-09 09:36:06.000000000 +0200 +++ smalltalk-2.1.10/config/missing 2005-02-02 14:52:09.000000000 +0100 @@ -1,6 +1,10 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc. + +scriptversion=2004-09-07.08 + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004 +# Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -38,18 +42,24 @@ configure_ac=configure.in fi +msg="missing on your system" + case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case "$1" in -h|--h|--he|--hel|--help) echo "\ @@ -74,11 +84,15 @@ lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch]" + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Send bug reports to ." + exit 0 ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing 0.4 - GNU automake" + echo "missing $scriptversion (GNU Automake)" + exit 0 ;; -*) @@ -87,14 +101,44 @@ exit 1 ;; - aclocal*) +esac + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). +case "$1" in + lex|yacc) + # Not GNU programs, they don't have --version. + ;; + + tar) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 fi + ;; +esac +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case "$1" in + aclocal*) echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." @@ -102,13 +146,8 @@ ;; autoconf) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." @@ -116,13 +155,8 @@ ;; autoheader) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." @@ -140,13 +174,8 @@ ;; automake*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." @@ -156,16 +185,11 @@ ;; autom4te) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the proper tools for further handling them. - You can get \`$1Help2man' as part of \`Autoconf' from any GNU + You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` @@ -185,7 +209,7 @@ bison|yacc) echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." @@ -215,7 +239,7 @@ lex|flex) echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." @@ -237,13 +261,8 @@ ;; help2man) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." @@ -262,13 +281,8 @@ ;; makeinfo) - if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then - # We have makeinfo, but it failed. - exit 1 - fi - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if +WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, @@ -284,10 +298,6 @@ tar) shift - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - fi # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error @@ -323,10 +333,10 @@ *) echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequirements for installing + it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 @@ -334,3 +344,10 @@ esac exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff -rNu smalltalk-2.1.9/config/symbolset.m4 smalltalk-2.1.10/config/symbolset.m4 --- smalltalk-2.1.9/config/symbolset.m4 2003-12-13 10:16:38.000000000 +0100 +++ smalltalk-2.1.10/config/symbolset.m4 2004-11-25 15:19:17.000000000 +0100 @@ -87,7 +87,7 @@ echo " exit (0);" ;\ echo "}") >conftest.$ac_ext - dnl Stolen from AC_TRY_RUN's definition + dnl Stolen from AC_RUN_IFELSE's definition AC_TRY_EVAL(ac_link) && gst_cv_machine_defines=`./conftest 2>/dev/null` fi if test -z "$gst_cv_machine_defines"; then diff -rNu smalltalk-2.1.9/config/texinfo.tex smalltalk-2.1.10/config/texinfo.tex --- smalltalk-2.1.9/config/texinfo.tex 2003-06-09 09:36:06.000000000 +0200 +++ smalltalk-2.1.10/config/texinfo.tex 2005-02-02 14:52:51.000000000 +0100 @@ -3,10 +3,11 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2002-06-04.06} +\def\texinfoversion{2004-09-06.16} % -% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -% 2000, 01, 02 Free Software Foundation, Inc. +% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, +% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software +% Foundation, Inc. % % This texinfo.tex file is free software; you can redistribute it and/or % modify it under the terms of the GNU General Public License as @@ -23,24 +24,17 @@ % to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, % Boston, MA 02111-1307, USA. % -% In other words, you are welcome to use, share and improve this program. -% You are forbidden to forbid anyone else to use, share and improve -% what you give them. Help stamp out software-hoarding! +% As a special exception, when this file is read by TeX when processing +% a Texinfo source document, you may use the result without +% restriction. (This has been our intent since Texinfo was invented.) % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: -% ftp://ftp.gnu.org/gnu/texinfo.tex -% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html) -% ftp://texinfo.org/texinfo/texinfo.tex +% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or % ftp://tug.org/tex/texinfo.tex -% (and all CTAN mirrors, see http://www.ctan.org), -% and /home/gd/gnu/doc/texinfo.tex on the GNU machines. -% -% The texinfo.tex in any given Texinfo distribution could well be out +% (and all CTAN mirrors, see http://www.ctan.org). +% The texinfo.tex in any given distribution could well be out % of date, so if that's what you're using, please check. -% -% Texinfo has a small home page at http://texinfo.org/ and also -% http://www.gnu.org/software/texinfo. % % Send bug reports to bug-texinfo@gnu.org. Please include including a % complete document in each bug report with which we can reproduce the @@ -58,8 +52,12 @@ % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. % -% It is possible to adapt texinfo.tex for other languages. You can get -% the existing language-specific files from the full Texinfo distribution. +% It is possible to adapt texinfo.tex for other languages, to some +% extent. You can get the existing language-specific files from the +% full Texinfo distribution. +% +% The GNU Texinfo home page is http://www.gnu.org/software/texinfo. + \message{Loading texinfo [version \texinfoversion]:} @@ -69,7 +67,14 @@ \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} -% Save some parts of plain tex whose names we will redefine. +\message{Basics,} +\chardef\other=12 + +% We never want plain's \outer definition of \+ in Texinfo. +% For @tex, we can use \tabalign. +\let\+ = \relax + +% Save some plain tex macros whose names we will redefine. \let\ptexb=\b \let\ptexbullet=\bullet \let\ptexc=\c @@ -79,23 +84,34 @@ \let\ptexend=\end \let\ptexequiv=\equiv \let\ptexexclam=\! +\let\ptexfootnote=\footnote +\let\ptexgtr=> +\let\ptexhat=^ \let\ptexi=\i +\let\ptexindent=\indent +\let\ptexnoindent=\noindent +\let\ptexinsert=\insert \let\ptexlbrace=\{ +\let\ptexless=< +\let\ptexplus=+ \let\ptexrbrace=\} +\let\ptexslash=\/ \let\ptexstar=\* \let\ptext=\t -% We never want plain's outer \+ definition in Texinfo. -% For @tex, we can use \tabalign. -\let\+ = \relax - -\message{Basics,} -\chardef\other=12 - % If this character appears in an error message or help string, it % starts a new line in the output. \newlinechar = `^^J +% Use TeX 3.0's \inputlineno to get the line number, for better error +% messages, but if we're using an old version of TeX, don't do anything. +% +\ifx\inputlineno\thisisundefined + \let\linenumber = \empty % Pre-3.0. +\else + \def\linenumber{l.\the\inputlineno:\space} +\fi + % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi @@ -134,48 +150,111 @@ \ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi \ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi -\ifx\putwordDeftypevar\undefined\gdef\putwordDeftypevar{Variable}\fi \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi -\ifx\putwordDeftypefun\undefined\gdef\putwordDeftypefun{Function}\fi + +% In some macros, we cannot use the `\? notation---the left quote is +% in some cases the escape char. +\chardef\colonChar = `\: +\chardef\commaChar = `\, +\chardef\dotChar = `\. +\chardef\exclamChar= `\! +\chardef\questChar = `\? +\chardef\semiChar = `\; +\chardef\underChar = `\_ + +\chardef\spaceChar = `\ % +\chardef\spacecat = 10 +\def\spaceisspace{\catcode\spaceChar=\spacecat} % Ignore a token. % \def\gobble#1{} -\hyphenation{ap-pen-dix} -\hyphenation{mini-buf-fer mini-buf-fers} -\hyphenation{eshell} -\hyphenation{white-space} +% The following is used inside several \edef's. +\def\makecsname#1{\expandafter\noexpand\csname#1\endcsname} + +% Hyphenation fixes. +\hyphenation{ + Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script + ap-pen-dix bit-map bit-maps + data-base data-bases eshell fall-ing half-way long-est man-u-script + man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm + par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces + spell-ing spell-ings + stand-alone strong-est time-stamp time-stamps which-ever white-space + wide-spread wrap-around +} % Margin to add to right of even pages, to left of odd pages. -\newdimen \bindingoffset -\newdimen \normaloffset +\newdimen\bindingoffset +\newdimen\normaloffset \newdimen\pagewidth \newdimen\pageheight +% For a final copy, take out the rectangles +% that mark overfull boxes (in case you have decided +% that the text looks ok even though it passes the margin). +% +\def\finalout{\overfullrule=0pt} + +% @| inserts a changebar to the left of the current line. It should +% surround any changed text. This approach does *not* work if the +% change spans more than two lines of output. To handle that, we would +% have adopt a much more difficult approach (putting marks into the main +% vertical list for the beginning and end of each change). +% +\def\|{% + % \vadjust can only be used in horizontal mode. + \leavevmode + % + % Append this vertical mode material after the current line in the output. + \vadjust{% + % We want to insert a rule with the height and depth of the current + % leading; that is exactly what \strutbox is supposed to record. + \vskip-\baselineskip + % + % \vadjust-items are inserted at the left edge of the type. So + % the \llap here moves out into the left-hand margin. + \llap{% + % + % For a thicker or thinner bar, change the `1pt'. + \vrule height\baselineskip width1pt + % + % This is the space between the bar and the text. + \hskip 12pt + }% + }% +} + % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, -% since that produces some useless output on the terminal. +% since that produces some useless output on the terminal. We also make +% some effort to order the tracing commands to reduce output in the log +% file; cf. trace.sty in LaTeX. % \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% -\ifx\eTeXversion\undefined -\def\loggingall{\tracingcommands2 \tracingstats2 - \tracingpages1 \tracingoutput1 \tracinglostchars1 - \tracingmacros2 \tracingparagraphs1 \tracingrestores1 - \showboxbreadth\maxdimen\showboxdepth\maxdimen -}% -\else -\def\loggingall{\tracingcommands3 \tracingstats2 - \tracingpages1 \tracingoutput1 \tracinglostchars1 - \tracingmacros2 \tracingparagraphs1 \tracingrestores1 - \tracingscantokens1 \tracingassigns1 \tracingifs1 - \tracinggroups1 \tracingnesting2 - \showboxbreadth\maxdimen\showboxdepth\maxdimen +\def\loggingall{% + \tracingstats2 + \tracingpages1 + \tracinglostchars2 % 2 gives us more in etex + \tracingparagraphs1 + \tracingoutput1 + \tracingmacros2 + \tracingrestores1 + \showboxbreadth\maxdimen \showboxdepth\maxdimen + \ifx\eTeXversion\undefined\else % etex gives us more logging + \tracingscantokens1 + \tracingifs1 + \tracinggroups1 + \tracingnesting2 + \tracingassigns1 + \fi + \tracingcommands3 % 3 gives us more in etex + \errorcontextlines16 }% -\fi % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. -% +% \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount \removelastskip\penalty-50\smallskip\fi\fi} \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount @@ -228,7 +307,7 @@ % the page break happens to be in the middle of an example. \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. - \ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi + \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi % \ifcropmarks \vbox to \outervsize\bgroup \hsize = \outerhsize @@ -276,7 +355,7 @@ \egroup % \vbox from first cropmarks clause \fi }% end of \shipout\vbox - }% end of group with \turnoffactive + }% end of group with \normalturnoffactive \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } @@ -309,143 +388,162 @@ % the input line (except we remove a trailing comment). #1 should be a % macro which expects an ordinary undelimited TeX argument. % -\def\parsearg#1{% - \let\next = #1% +\def\parsearg{\parseargusing{}} +\def\parseargusing#1#2{% + \def\next{#2}% \begingroup \obeylines - \futurelet\temp\parseargx -} - -% If the next token is an obeyed space (from an @example environment or -% the like), remove it and recurse. Otherwise, we're done. -\def\parseargx{% - % \obeyedspace is defined far below, after the definition of \sepspaces. - \ifx\obeyedspace\temp - \expandafter\parseargdiscardspace - \else - \expandafter\parseargline - \fi + \spaceisspace + #1% + \parseargline\empty% Insert the \empty token, see \finishparsearg below. } -% Remove a single space (as the delimiter token to the macro call). -{\obeyspaces % - \gdef\parseargdiscardspace {\futurelet\temp\parseargx}} - {\obeylines % \gdef\parseargline#1^^M{% \endgroup % End of the group started in \parsearg. - % - % First remove any @c comment, then any @comment. - % Result of each macro is put in \toks0. - \argremovec #1\c\relax % - \expandafter\argremovecomment \the\toks0 \comment\relax % - % - % Call the caller's macro, saved as \next in \parsearg. - \expandafter\next\expandafter{\the\toks0}% + \argremovecomment #1\comment\ArgTerm% }% } -% Since all \c{,omment} does is throw away the argument, we can let TeX -% do that for us. The \relax here is matched by the \relax in the call -% in \parseargline; it could be more or less anything, its purpose is -% just to delimit the argument to the \c. -\def\argremovec#1\c#2\relax{\toks0 = {#1}} -\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}} +% First remove any @comment, then any @c comment. +\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} +\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} -% \argremovec{,omment} might leave us with trailing spaces, though; e.g., +% Each occurence of `\^^M' or `\^^M' is replaced by a single space. +% +% \argremovec might leave us with trailing space, e.g., % @end itemize @c foo -% will have two active spaces as part of the argument with the -% `itemize'. Here we remove all active spaces from #1, and assign the -% result to \toks0. -% -% This loses if there are any *other* active characters besides spaces -% in the argument -- _ ^ +, for example -- since they get expanded. -% Fortunately, Texinfo does not define any such commands. (If it ever -% does, the catcode of the characters in questionwill have to be changed -% here.) But this means we cannot call \removeactivespaces as part of -% \argremovec{,omment}, since @c uses \parsearg, and thus the argument -% that \parsearg gets might well have any character at all in it. +% This space token undergoes the same procedure and is eventually removed +% by \finishparsearg. % -\def\removeactivespaces#1{% - \begingroup - \ignoreactivespaces - \edef\temp{#1}% - \global\toks0 = \expandafter{\temp}% - \endgroup +\def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M} +\def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M} +\def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% + \def\temp{#3}% + \ifx\temp\empty + % We cannot use \next here, as it holds the macro to run; + % thus we reuse \temp. + \let\temp\finishparsearg + \else + \let\temp\argcheckspaces + \fi + % Put the space token in: + \temp#1 #3\ArgTerm } -% Change the active space to expand to nothing. +% If a _delimited_ argument is enclosed in braces, they get stripped; so +% to get _exactly_ the rest of the line, we had to prevent such situation. +% We prepended an \empty token at the very beginning and we expand it now, +% just before passing the control to \next. +% (Similarily, we have to think about #3 of \argcheckspacesY above: it is +% either the null string, or it ends with \^^M---thus there is no danger +% that a pair of braces would be stripped. % -\begingroup - \obeyspaces - \gdef\ignoreactivespaces{\obeyspaces\let =\empty} -\endgroup +% But first, we have to remove the trailing space token. +% +\def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}} +% \parseargdef\foo{...} +% is roughly equivalent to +% \def\foo{\parsearg\Xfoo} +% \def\Xfoo#1{...} +% +% Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my +% favourite TeX trick. --kasal, 16nov03 -\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} +\def\parseargdef#1{% + \expandafter \doparseargdef \csname\string#1\endcsname #1% +} +\def\doparseargdef#1#2{% + \def#2{\parsearg#1}% + \def#1##1% +} -%% These are used to keep @begin/@end levels from running away -%% Call \inENV within environments (after a \begingroup) -\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi} -\def\ENVcheck{% -\ifENV\errmessage{Still within an environment; press RETURN to continue} -\endgroup\fi} % This is not perfect, but it should reduce lossage +% Several utility definitions with active space: +{ + \obeyspaces + \gdef\obeyedspace{ } -% @begin foo is the same as @foo, for now. -\newhelp\EMsimple{Press RETURN to continue.} + % Make each space character in the input produce a normal interword + % space in the output. Don't allow a line break at this space, as this + % is used only in environments like @example, where each line of input + % should produce a line of output anyway. + % + \gdef\sepspaces{\obeyspaces\let =\tie} + + % If an index command is used in an @example environment, any spaces + % therein should become regular spaces in the raw index file, not the + % expansion of \tie (\leavevmode \penalty \@M \ ). + \gdef\unsepspaces{\let =\space} +} -\outer\def\begin{\parsearg\beginxxx} -\def\beginxxx #1{% -\expandafter\ifx\csname #1\endcsname\relax -{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else -\csname #1\endcsname\fi} +\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} -% @end foo executes the definition of \Efoo. +% Define the framework for environments in texinfo.tex. It's used like this: % -\def\end{\parsearg\endxxx} -\def\endxxx #1{% - \removeactivespaces{#1}% - \edef\endthing{\the\toks0}% - % - \expandafter\ifx\csname E\endthing\endcsname\relax - \expandafter\ifx\csname \endthing\endcsname\relax - % There's no \foo, i.e., no ``environment'' foo. - \errhelp = \EMsimple - \errmessage{Undefined command `@end \endthing'}% - \else - \unmatchedenderror\endthing - \fi +% \envdef\foo{...} +% \def\Efoo{...} +% +% It's the responsibility of \envdef to insert \begingroup before the +% actual body; @end closes the group after calling \Efoo. \envdef also +% defines \thisenv, so the current environment is known; @end checks +% whether the environment name matches. The \checkenv macro can also be +% used to check whether the current environment is the one expected. +% +% Non-false conditionals (@iftex, @ifset) don't fit into this, so they +% are not treated as enviroments; they don't open a group. (The +% implementation of @end takes care not to call \endgroup in this +% special case.) + + +% At runtime, environments start with this: +\def\startenvironment#1{\begingroup\def\thisenv{#1}} +% initialize +\let\thisenv\empty + +% ... but they get defined via ``\envdef\foo{...}'': +\long\def\envdef#1#2{\def#1{\startenvironment#1#2}} +\def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}} + +% Check whether we're in the right environment: +\def\checkenv#1{% + \def\temp{#1}% + \ifx\thisenv\temp \else - % Everything's ok; the right environment has been started. - \csname E\endthing\endcsname + \badenverr \fi } -% There is an environment #1, but it hasn't been started. Give an error. -% -\def\unmatchedenderror#1{% +% Evironment mismatch, #1 expected: +\def\badenverr{% \errhelp = \EMsimple - \errmessage{This `@end #1' doesn't have a matching `@#1'}% + \errmessage{This command can appear only \inenvironment\temp, + not \inenvironment\thisenv}% +} +\def\inenvironment#1{% + \ifx#1\empty + out of any environment% + \else + in environment \expandafter\string#1% + \fi } -% Define the control sequence \E#1 to give an unmatched @end error. +% @end foo executes the definition of \Efoo. +% But first, it executes a specialized version of \checkenv % -\def\defineunmatchedend#1{% - \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}% +\parseargdef\end{% + \if 1\csname iscond.#1\endcsname + \else + % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03 + \expandafter\checkenv\csname#1\endcsname + \csname E#1\endcsname + \endgroup + \fi } +\newhelp\EMsimple{Press RETURN to continue.} -% Single-spacing is done by various environments (specifically, in -% \nonfillstart and \quotations). -\newskip\singlespaceskip \singlespaceskip = 12.5pt -\def\singlespace{% - % Why was this kern here? It messes up equalizing space above and below - % environments. --karl, 6may93 - %{\advance \baselineskip by -\singlespaceskip - %\kern \baselineskip}% - \setleading\singlespaceskip -} %% Simple single-character @ commands @@ -466,16 +564,22 @@ \let\{=\mylbrace \let\}=\myrbrace \begingroup - % Definitions to produce actual \{ & \} command in an index. - \catcode`\{ = 12 \catcode`\} = 12 + % Definitions to produce \{ and \} commands for indices, + % and @{ and @} for the aux file. + \catcode`\{ = \other \catcode`\} = \other \catcode`\[ = 1 \catcode`\] = 2 - \catcode`\@ = 0 \catcode`\\ = 12 - @gdef@lbracecmd[\{]% - @gdef@rbracecmd[\}]% -@endgroup + \catcode`\! = 0 \catcode`\\ = \other + !gdef!lbracecmd[\{]% + !gdef!rbracecmd[\}]% + !gdef!lbraceatcmd[@{]% + !gdef!rbraceatcmd[@}]% +!endgroup + +% @comma{} to avoid , parsing problems. +\let\comma = , % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent -% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H. +% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. \let\, = \c \let\dotaccent = \. \def\ringaccent#1{{\accent23 #1}} @@ -483,10 +587,12 @@ \let\ubaraccent = \b \let\udotaccent = \d -% Other special characters: @questiondown @exclamdown -% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss. +% Other special characters: @questiondown @exclamdown @ordf @ordm +% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. \def\questiondown{?`} \def\exclamdown{!`} +\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}} +\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}} % Dotless i and dotless j, used for accents. \def\imacro{i} @@ -499,6 +605,25 @@ \fi\fi } +% The \TeX{} logo, as in plain, but resetting the spacing so that a +% period following counts as ending a sentence. (Idea found in latex.) +% +\edef\TeX{\TeX \spacefactor=1000 } + +% @LaTeX{} logo. Not quite the same results as the definition in +% latex.ltx, since we use a different font for the raised A; it's most +% convenient for us to use an explicitly smaller font, rather than using +% the \scriptstyle font (since we don't reset \scriptstyle and +% \scriptscriptstyle). +% +\def\LaTeX{% + L\kern-.36em + {\setbox0=\hbox{T}% + \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}% + \kern-.15em + \TeX +} + % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space % at the beginning of a line will start with \penalty -- and @@ -517,6 +642,9 @@ % @* forces a line break. \def\*{\hfil\break\hbox{}\ignorespaces} +% @/ allows a line break. +\let\/=\allowbreak + % @. is an end-of-sentence period. \def\.{.\spacefactor=3000 } @@ -539,47 +667,24 @@ % therefore, no glue is inserted, and the space between the headline and % the text is small, which looks bad. % -\def\group{\begingroup - \ifnum\catcode13=\active \else +% Another complication is that the group might be very large. This can +% cause the glue on the previous page to be unduly stretched, because it +% does not have much material. In this case, it's better to add an +% explicit \vfill so that the extra space is at the bottom. The +% threshold for doing this is if the group is more than \vfilllimit +% percent of a page (\vfilllimit can be changed inside of @tex). +% +\newbox\groupbox +\def\vfilllimit{0.7} +% +\envdef\group{% + \ifnum\catcode`\^^M=\active \else \errhelp = \groupinvalidhelp \errmessage{@group invalid in context where filling is enabled}% \fi + \startsavinginserts % - % The \vtop we start below produces a box with normal height and large - % depth; thus, TeX puts \baselineskip glue before it, and (when the - % next line of text is done) \lineskip glue after it. (See p.82 of - % the TeXbook.) Thus, space below is not quite equal to space - % above. But it's pretty close. - \def\Egroup{% - \egroup % End the \vtop. - \endgroup % End the \group. - }% - % - \vtop\bgroup - % We have to put a strut on the last line in case the @group is in - % the midst of an example, rather than completely enclosing it. - % Otherwise, the interline space between the last line of the group - % and the first line afterwards is too small. But we can't put the - % strut in \Egroup, since there it would be on a line by itself. - % Hence this just inserts a strut at the beginning of each line. - \everypar = {\strut}% - % - % Since we have a strut on every line, we don't need any of TeX's - % normal interline spacing. - \offinterlineskip - % - % OK, but now we have to do something about blank - % lines in the input in @example-like environments, which normally - % just turn into \lisppar, which will insert no space now that we've - % turned off the interline space. Simplest is to make them be an - % empty paragraph. - \ifx\par\lisppar - \edef\par{\leavevmode \par}% - % - % Reset ^^M's definition to new definition of \par. - \obeylines - \fi - % + \setbox\groupbox = \vtop\bgroup % Do @comment since we are called inside an environment such as % @example, where each end-of-line in the input causes an % end-of-line in the output. We don't want the end-of-line after @@ -589,6 +694,32 @@ \comment } % +% The \vtop produces a box with normal height and large depth; thus, TeX puts +% \baselineskip glue before it, and (when the next line of text is done) +% \lineskip glue after it. Thus, space below is not quite equal to space +% above. But it's pretty close. +\def\Egroup{% + % To get correct interline space between the last line of the group + % and the first line afterwards, we have to propagate \prevdepth. + \endgraf % Not \par, as it may have been set to \lisppar. + \global\dimen1 = \prevdepth + \egroup % End the \vtop. + % \dimen0 is the vertical size of the group's box. + \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox + % \dimen2 is how much space is left on the page (more or less). + \dimen2 = \pageheight \advance\dimen2 by -\pagetotal + % if the group doesn't fit on the current page, and it's a big big + % group, force a page break. + \ifdim \dimen0 > \dimen2 + \ifdim \pagetotal < \vfilllimit\pageheight + \page + \fi + \fi + \box\groupbox + \prevdepth = \dimen1 + \checkinserts +} +% % TeX puts in an \escapechar (i.e., `@') at the beginning of the help % message, so this ends up printing `@group can only ...'. % @@ -601,10 +732,8 @@ \newdimen\mil \mil=0.001in -\def\need{\parsearg\needx} - % Old definition--didn't work. -%\def\needx #1{\par % +%\parseargdef\need{\par % %% This method tries to make TeX break the page naturally %% if the depth of the box does not fit. %{\baselineskip=0pt% @@ -612,7 +741,7 @@ %\prevdepth=-1000pt %}} -\def\needx#1{% +\parseargdef\need{% % Ensure vertical mode, so we don't make a big box in the middle of a % paragraph. \par @@ -651,37 +780,11 @@ \fi } -% @br forces paragraph break +% @br forces paragraph break (and is undocumented). \let\br = \par -% @dots{} output an ellipsis using the current font. -% We do .5em per period so that it has the same spacing in a typewriter -% font as three actual period characters. -% -\def\dots{% - \leavevmode - \hbox to 1.5em{% - \hskip 0pt plus 0.25fil minus 0.25fil - .\hss.\hss.% - \hskip 0pt plus 0.5fil minus 0.5fil - }% -} - -% @enddots{} is an end-of-sentence ellipsis. -% -\def\enddots{% - \leavevmode - \hbox to 2em{% - \hskip 0pt plus 0.25fil minus 0.25fil - .\hss.\hss.\hss.% - \hskip 0pt plus 0.5fil minus 0.5fil - }% - \spacefactor=3000 -} - - -% @page forces the start of a new page +% @page forces the start of a new page. % \def\page{\par\vfill\supereject} @@ -693,13 +796,11 @@ \newskip\exdentamount % This defn is used inside fill environments such as @defun. -\def\exdent{\parsearg\exdentyyy} -\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}} +\parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break} % This defn is used inside nofill environments such as @example. -\def\nofillexdent{\parsearg\nofillexdentyyy} -\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount -\leftline{\hskip\leftskip{\rm#1}}}} +\parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount + \leftline{\hskip\leftskip{\rm#1}}}} % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current % paragraph. For more general purposes, use the \margin insertion @@ -730,10 +831,10 @@ % @inmargin{TEXT [, RIGHT-TEXT]} % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right; % else use TEXT for both). -% +% \def\inmargin#1{\parseinmargin #1,,\finish} \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing. - \setbox0 = \hbox{\ignorespaces #2}% + \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \def\lefttext{#1}% have both texts \def\righttext{#2}% @@ -751,37 +852,71 @@ } % @include file insert text of that file as input. -% Allow normal characters that we make active in the argument (a file name). -\def\include{\begingroup - \catcode`\\=12 - \catcode`~=12 - \catcode`^=12 - \catcode`_=12 - \catcode`|=12 - \catcode`<=12 - \catcode`>=12 - \catcode`+=12 - \parsearg\includezzz} -% Restore active chars for included file. -\def\includezzz#1{\endgroup\begingroup - % Read the included file in a group so nested @include's work. +% +\def\include{\parseargusing\filenamecatcodes\includezzz} +\def\includezzz#1{% + \pushthisfilestack \def\thisfile{#1}% - \input\thisfile -\endgroup} + {% + \makevalueexpandable + \def\temp{\input #1 }% + \expandafter + }\temp + \popthisfilestack +} +\def\filenamecatcodes{% + \catcode`\\=\other + \catcode`~=\other + \catcode`^=\other + \catcode`_=\other + \catcode`|=\other + \catcode`<=\other + \catcode`>=\other + \catcode`+=\other + \catcode`-=\other +} -\def\thisfile{} +\def\pushthisfilestack{% + \expandafter\pushthisfilestackX\popthisfilestack\StackTerm +} +\def\pushthisfilestackX{% + \expandafter\pushthisfilestackY\thisfile\StackTerm +} +\def\pushthisfilestackY #1\StackTerm #2\StackTerm {% + \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}% +} -% @center line outputs that line, centered +\def\popthisfilestack{\errthisfilestackempty} +\def\errthisfilestackempty{\errmessage{Internal error: + the stack of filenames is empty.}} -\def\center{\parsearg\centerzzz} -\def\centerzzz #1{{\advance\hsize by -\leftskip -\advance\hsize by -\rightskip -\centerline{#1}}} +\def\thisfile{} + +% @center line +% outputs that line, centered. +% +\parseargdef\center{% + \ifhmode + \let\next\centerH + \else + \let\next\centerV + \fi + \next{\hfil \ignorespaces#1\unskip \hfil}% +} +\def\centerH#1{% + {% + \hfil\break + \advance\hsize by -\leftskip + \advance\hsize by -\rightskip + \line{#1}% + \break + }% +} +\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}} % @sp n outputs n lines of vertical space -\def\sp{\parsearg\spxxx} -\def\spxxx #1{\vskip #1\baselineskip} +\parseargdef\sp{\vskip #1\baselineskip} % @comment ...line which is ignored... % @c is the same as @comment @@ -796,13 +931,13 @@ % @paragraphindent NCHARS % We'll use ems for NCHARS, close enough. -% We cannot implement @paragraphindent asis, though. -% +% NCHARS can also be the word `asis' or `none'. +% We cannot feasibly implement @paragraphindent asis, though. +% \def\asisword{asis} % no translation, these are keywords \def\noneword{none} % -\def\paragraphindent{\parsearg\doparagraphindent} -\def\doparagraphindent#1{% +\parseargdef\paragraphindent{% \def\temp{#1}% \ifx\temp\asisword \else @@ -819,8 +954,7 @@ % We'll use ems for NCHARS like @paragraphindent. % It seems @exampleindent asis isn't necessary, but % I preserve it to make it similar to @paragraphindent. -\def\exampleindent{\parsearg\doexampleindent} -\def\doexampleindent#1{% +\parseargdef\exampleindent{% \def\temp{#1}% \ifx\temp\asisword \else @@ -832,51 +966,138 @@ \fi } +% @firstparagraphindent WORD +% If WORD is `none', then suppress indentation of the first paragraph +% after a section heading. If WORD is `insert', then do indent at such +% paragraphs. +% +% The paragraph indentation is suppressed or not by calling +% \suppressfirstparagraphindent, which the sectioning commands do. +% We switch the definition of this back and forth according to WORD. +% By default, we suppress indentation. +% +\def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent} +\def\insertword{insert} +% +\parseargdef\firstparagraphindent{% + \def\temp{#1}% + \ifx\temp\noneword + \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent + \else\ifx\temp\insertword + \let\suppressfirstparagraphindent = \relax + \else + \errhelp = \EMsimple + \errmessage{Unknown @firstparagraphindent option `\temp'}% + \fi\fi +} + +% Here is how we actually suppress indentation. Redefine \everypar to +% \kern backwards by \parindent, and then reset itself to empty. +% +% We also make \indent itself not actually do anything until the next +% paragraph. +% +\gdef\dosuppressfirstparagraphindent{% + \gdef\indent{% + \restorefirstparagraphindent + \indent + }% + \gdef\noindent{% + \restorefirstparagraphindent + \noindent + }% + \global\everypar = {% + \kern -\parindent + \restorefirstparagraphindent + }% +} + +\gdef\restorefirstparagraphindent{% + \global \let \indent = \ptexindent + \global \let \noindent = \ptexnoindent + \global \everypar = {}% +} + + % @asis just yields its argument. Used with @table, for example. % \def\asis#1{#1} % @math outputs its argument in math mode. -% We don't use $'s directly in the definition of \math because we need -% to set catcodes according to plain TeX first, to allow for subscripts, -% superscripts, special math chars, etc. -% -% @math does not do math typesetting in section titles, index -% entries, and other such contexts where the catcodes are set before -% @math gets a chance to work. This could perhaps be fixed, but for now -% at least we can have real math in the main text, where it's needed most. -% -\let\implicitmath = $%$ font-lock fix % % One complication: _ usually means subscripts, but it could also mean % an actual _ character, as in @math{@var{some_variable} + 1}. So make -% _ within @math be active (mathcode "8000), and distinguish by seeing -% if the current family is \slfam, which is what @var uses. -% -{\catcode95 = \active % 95 = _ -\gdef\mathunderscore{% - \catcode95=\active - \def_{\ifnum\fam=\slfam \_\else\sb\fi}% -}} -% +% _ active, and distinguish by seeing if the current family is \slfam, +% which is what @var uses. +{ + \catcode\underChar = \active + \gdef\mathunderscore{% + \catcode\underChar=\active + \def_{\ifnum\fam=\slfam \_\else\sb\fi}% + } +} % Another complication: we want \\ (and @\) to output a \ character. % FYI, plain.tex uses \\ as a temporary control sequence (why?), but % this is not advertised and we don't care. Texinfo does not % otherwise define @\. -% +% % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} % \def\math{% \tex - \mathcode`\_="8000 \mathunderscore + \mathunderscore \let\\ = \mathbackslash - \implicitmath\finishmath} -\def\finishmath#1{#1\implicitmath\Etex} + \mathactive + $\finishmath +} +\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. + +% Some active characters (such as <) are spaced differently in math. +% We have to reset their definitions in case the @math was an argument +% to a command which sets the catcodes (such as @item or @section). +% +{ + \catcode`^ = \active + \catcode`< = \active + \catcode`> = \active + \catcode`+ = \active + \gdef\mathactive{% + \let^ = \ptexhat + \let< = \ptexless + \let> = \ptexgtr + \let+ = \ptexplus + } +} % @bullet and @minus need the same treatment as @math, just above. -\def\bullet{\implicitmath\ptexbullet\implicitmath} -\def\minus{\implicitmath-\implicitmath} +\def\bullet{$\ptexbullet$} +\def\minus{$-$} + +% @dots{} outputs an ellipsis using the current font. +% We do .5em per period so that it has the same spacing in a typewriter +% font as three actual period characters. +% +\def\dots{% + \leavevmode + \hbox to 1.5em{% + \hskip 0pt plus 0.25fil + .\hfil.\hfil.% + \hskip 0pt plus 0.5fil + }% +} + +% @enddots{} is an end-of-sentence ellipsis. +% +\def\enddots{% + \dots + \spacefactor=3000 +} + +% @comma{} is so commas can be inserted into text without messing up +% Texinfo's parsing. +% +\let\comma = , % @refill is a no-op. \let\refill=\relax @@ -892,20 +1113,20 @@ % So open here the files we need to have open while reading the input. % This makes it possible to make a .fmt file for texinfo. \def\setfilename{% + \fixbackslash % Turn off hack to swallow `\input texinfo'. \iflinks - \readauxfile + \tryauxfile + % Open the new aux file. TeX will close it automatically at exit. + \immediate\openout\auxfile=\jobname.aux \fi % \openindices needs to do some work in any case. \openindices - \fixbackslash % Turn off hack to swallow `\input texinfo'. - \global\let\setfilename=\comment % Ignore extra @setfilename cmds. + \let\setfilename=\comment % Ignore extra @setfilename cmds. % % If texinfo.cnf is present on the system, read it. % Useful for site-wide @afourpaper, etc. - % Just to be on the safe side, close the input stream before the \input. \openin 1 texinfo.cnf - \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi - \closein1 - \temp + \ifeof 1 \else \input texinfo.cnf \fi + \closein 1 % \comment % Ignore the actual filename. } @@ -941,17 +1162,23 @@ \newif\ifpdf \newif\ifpdfmakepagedest +% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1 +% can be set). So we test for \relax and 0 as well as \undefined, +% borrowed from ifpdf.sty. \ifx\pdfoutput\undefined - \pdffalse - \let\pdfmkdest = \gobble - \let\pdfurl = \gobble - \let\endlink = \relax - \let\linkcolor = \relax - \let\pdfmakeoutlines = \relax \else - \pdftrue - \pdfoutput = 1 + \ifx\pdfoutput\relax + \else + \ifcase\pdfoutput + \else + \pdftrue + \fi + \fi +\fi +% +\ifpdf \input pdfcolor + \pdfcatalog{/PageMode /UseOutlines}% \def\dopdfimage#1#2#3{% \def\imagewidth{#2}% \def\imageheight{#3}% @@ -965,14 +1192,20 @@ \ifx\empty\imagewidth\else width \imagewidth \fi \ifx\empty\imageheight\else height \imageheight \fi \ifnum\pdftexversion<13 - #1.pdf% + #1.pdf% \else {#1.pdf}% \fi \ifnum\pdftexversion < 14 \else \pdfrefximage \pdflastximage \fi} - \def\pdfmkdest#1{{\normalturnoffactive \pdfdest name{#1} xyz}} + \def\pdfmkdest#1{{% + % We have to set dummies so commands such as @code in a section title + % aren't expanded. + \atdummies + \normalturnoffactive + \pdfdest name{#1} xyz% + }} \def\pdfmkpgn#1{#1} \let\linkcolor = \Blue % was Cyan, but that seems light? \def\endlink{\Black\pdfendlink} @@ -981,49 +1214,94 @@ \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% \else \csname#1\endcsname \fi} \def\advancenumber#1{\tempnum=\expnumber{#1}\relax - \advance\tempnum by1 + \advance\tempnum by 1 \expandafter\xdef\csname#1\endcsname{\the\tempnum}} - \def\pdfmakeoutlines{{% - \openin 1 \jobname.toc - \ifeof 1\else\begingroup - \closein 1 - \indexnofonts - \def\tt{} - \let\_ = \normalunderscore - % Thanh's hack / proper braces in bookmarks + % + % #1 is the section text. #2 is the pdf expression for the number + % of subentries (or empty, for subsubsections). #3 is the node + % text, which might be empty if this toc entry had no + % corresponding node. #4 is the page number. + % + \def\dopdfoutline#1#2#3#4{% + % Generate a link to the node text if that exists; else, use the + % page number. We could generate a destination for the section + % text in the case where a section has no node, but it doesn't + % seem worthwhile, since most documents are normally structured. + \def\pdfoutlinedest{#3}% + \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}\fi + % + \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{#1}% + } + % + \def\pdfmakeoutlines{% + \begingroup + % Thanh's hack / proper braces in bookmarks \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace % - \def\chapentry ##1##2##3{} - \let\appendixentry = \chapentry - \def\unnumbchapentry ##1##2{} - \def\secentry ##1##2##3##4{\advancenumber{chap##2}} - \def\unnumbsecentry ##1##2##3{\advancenumber{chap##2}} - \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}} - \def\unnumbsubsecentry ##1##2##3##4{\advancenumber{sec##2.##3}} - \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}} - \def\unnumbsubsubsecentry ##1##2##3##4##5{\advancenumber{subsec##2.##3.##4}} + % Read toc silently, to get counts of subentries for \pdfoutline. + \def\numchapentry##1##2##3##4{% + \def\thischapnum{##2}% + \let\thissecnum\empty + \let\thissubsecnum\empty + }% + \def\numsecentry##1##2##3##4{% + \advancenumber{chap\thischapnum}% + \def\thissecnum{##2}% + \let\thissubsecnum\empty + }% + \def\numsubsecentry##1##2##3##4{% + \advancenumber{sec\thissecnum}% + \def\thissubsecnum{##2}% + }% + \def\numsubsubsecentry##1##2##3##4{% + \advancenumber{subsec\thissubsecnum}% + }% + \let\thischapnum\empty + \let\thissecnum\empty + \let\thissubsecnum\empty + % + % use \def rather than \let here because we redefine \chapentry et + % al. a second time, below. + \def\appentry{\numchapentry}% + \def\appsecentry{\numsecentry}% + \def\appsubsecentry{\numsubsecentry}% + \def\appsubsubsecentry{\numsubsubsecentry}% + \def\unnchapentry{\numchapentry}% + \def\unnsecentry{\numsecentry}% + \def\unnsubsecentry{\numsubsecentry}% + \def\unnsubsubsecentry{\numsubsubsecentry}% \input \jobname.toc - \def\chapentry ##1##2##3{% - \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}} - \let\appendixentry = \chapentry - \def\unnumbchapentry ##1##2{% - \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} - \def\secentry ##1##2##3##4{% - \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}} - \def\unnumbsecentry ##1##2##3{% - \pdfoutline goto name{\pdfmkpgn{##3}}{##1}} - \def\subsecentry ##1##2##3##4##5{% - \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}} - \def\unnumbsubsecentry ##1##2##3##4{% - \pdfoutline goto name{\pdfmkpgn{##4}}{##1}} - \def\subsubsecentry ##1##2##3##4##5##6{% - \pdfoutline goto name{\pdfmkpgn{##6}}{##1}} - \def\unnumbsubsubsecentry ##1##2##3##4##5{% - \pdfoutline goto name{\pdfmkpgn{##5}}{##1}} + % + % Read toc second time, this time actually producing the outlines. + % The `-' means take the \expnumber as the absolute number of + % subentries, which we calculated on our first read of the .toc above. + % + % We use the node names as the destinations. + \def\numchapentry##1##2##3##4{% + \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}% + \def\numsecentry##1##2##3##4{% + \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}% + \def\numsubsecentry##1##2##3##4{% + \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}% + \def\numsubsubsecentry##1##2##3##4{% count is always zero + \dopdfoutline{##1}{}{##3}{##4}}% + % + % PDF outlines are displayed using system fonts, instead of + % document fonts. Therefore we cannot use special characters, + % since the encoding is unknown. For example, the eogonek from + % Latin 2 (0xea) gets translated to a | character. Info from + % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100. + % + % xx to do this right, we have to translate 8-bit characters to + % their "best" equivalent, based on the @documentencoding. Right + % now, I guess we'll just let the pdf reader have its way. + \indexnofonts + \turnoffactive \input \jobname.toc - \endgroup\fi - }} + \endgroup + } + % \def\makelinks #1,{% \def\params{#1}\def\E{END}% \ifx\params\E @@ -1032,7 +1310,7 @@ \let\nextmakelinks=\makelinks \ifnum\lnkcount>0,\fi \picknum{#1}% - \startlink attr{/Border [0 0 0]} + \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{\the\pgn}}% \linkcolor #1% \advance\lnkcount by 1% @@ -1054,7 +1332,6 @@ \def\ppn#1{\pgn=#1\gobble} \def\ppnn{\pgn=\first} \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,} - \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces @@ -1072,22 +1349,21 @@ \def\pdfurl#1{% \begingroup \normalturnoffactive\def\@{@}% - \let\value=\expandablevalue + \makevalueexpandable \leavevmode\Red \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% - % #1 \endgroup} \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} \def\maketoks{% - \expandafter\poptoks\the\toksA|ENDTOKS| + \expandafter\poptoks\the\toksA|ENDTOKS|\relax \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 - \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 + \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else @@ -1103,20 +1379,44 @@ \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} \linkcolor #1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} -\fi % \ifx\pdfoutput +\else + \let\pdfmkdest = \gobble + \let\pdfurl = \gobble + \let\endlink = \relax + \let\linkcolor = \relax + \let\pdfmakeoutlines = \relax +\fi % \ifx\pdfoutput \message{fonts,} -% Font-change commands. + +% Change the current font style to #1, remembering it in \curfontstyle. +% For now, we do not accumulate font styles: @b{@i{foo}} prints foo in +% italics, not bold italics. +% +\def\setfontstyle#1{% + \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd. + \csname ten#1\endcsname % change the current font +} + +% Select #1 fonts with the current style. +% +\def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname} + +\def\rm{\fam=0 \setfontstyle{rm}} +\def\it{\fam=\itfam \setfontstyle{it}} +\def\sl{\fam=\slfam \setfontstyle{sl}} +\def\bf{\fam=\bffam \setfontstyle{bf}} +\def\tt{\fam=\ttfam \setfontstyle{tt}} % Texinfo sort of supports the sans serif font style, which plain TeX does not. -% So we set up a \sf analogous to plain's \rm, etc. +% So we set up a \sf. \newfam\sffam -\def\sf{\fam=\sffam \tensf} +\def\sf{\fam=\sffam \setfontstyle{sf}} \let\li = \sf % Sometimes we call it \li, not \sf. -% We don't need math for this one. -\def\ttsl{\tenttsl} +% We don't need math for this font style. +\def\ttsl{\setfontstyle{ttsl}} % Default leading. \newdimen\textleading \textleading = 13.2pt @@ -1167,10 +1467,11 @@ \def\scshape{csc} \def\scbshape{csc} +% Text fonts (11.2pt, magstep1). \newcount\mainmagstep \ifx\bigger\relax % not really supported. - \let\mainmagstep=\magstep1 + \mainmagstep=\magstep1 \setfont\textrm\rmshape{12}{1000} \setfont\texttt\ttshape{12}{1000} \else @@ -1178,9 +1479,6 @@ \setfont\textrm\rmshape{10}{\mainmagstep} \setfont\texttt\ttshape{10}{\mainmagstep} \fi -% Instead of cmb10, you many want to use cmbx10. -% cmbx10 is a prettier font on its own, but cmb10 -% looks better when embedded in a line with cmr10. \setfont\textbf\bfshape{10}{\mainmagstep} \setfont\textit\itshape{10}{\mainmagstep} \setfont\textsl\slshape{10}{\mainmagstep} @@ -1190,10 +1488,11 @@ \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep -% A few fonts for @defun, etc. -\setfont\defbf\bxshape{10}{\magstep1} %was 1314 +% A few fonts for @defun names and args. +\setfont\defbf\bfshape{10}{\magstep1} \setfont\deftt\ttshape{10}{\magstep1} -\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf} +\setfont\defttsl\ttslshape{10}{\magstep1} +\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). \setfont\smallrm\rmshape{9}{1000} @@ -1219,7 +1518,7 @@ \font\smalleri=cmmi8 \font\smallersy=cmsy8 -% Fonts for title page: +% Fonts for title page (20.4pt): \setfont\titlerm\rmbshape{12}{\magstep3} \setfont\titleit\itbshape{10}{\magstep4} \setfont\titlesl\slbshape{10}{\magstep4} @@ -1231,6 +1530,7 @@ \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\authorrm{\secrm} +\def\authortt{\sectt} % Chapter (and unnumbered) fonts (17.28pt). \setfont\chaprm\rmbshape{12}{\magstep2} @@ -1264,11 +1564,21 @@ \setfont\ssecttsl\ttslshape{10}{1315} \setfont\ssecsf\sfbshape{12}{\magstephalf} \let\ssecbf\ssecrm -\setfont\ssecsc\scbshape{10}{\magstep1} +\setfont\ssecsc\scbshape{10}{1315} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 -% The smallcaps and symbol fonts should actually be scaled \magstep1.5, -% but that is not a standard magnification. + +% Reduced fonts for @acro in text (10pt). +\setfont\reducedrm\rmshape{10}{1000} +\setfont\reducedtt\ttshape{10}{1000} +\setfont\reducedbf\bfshape{10}{1000} +\setfont\reducedit\itshape{10}{1000} +\setfont\reducedsl\slshape{10}{1000} +\setfont\reducedsf\sfshape{10}{1000} +\setfont\reducedsc\scshape{10}{1000} +\setfont\reducedttsl\ttslshape{10}{1000} +\font\reducedi=cmmi10 +\font\reducedsy=cmsy10 % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since @@ -1283,56 +1593,95 @@ } % The font-changing commands redefine the meanings of \tenSTYLE, instead -% of just \STYLE. We do this so that font changes will continue to work -% in math mode, where it is the current \fam that is relevant in most -% cases, not the current font. Plain TeX does \def\bf{\fam=\bffam -% \tenbf}, for example. By redefining \tenbf, we obviate the need to -% redefine \bf itself. +% of just \STYLE. We do this because \STYLE needs to also set the +% current \fam for math mode. Our \STYLE (e.g., \rm) commands hardwire +% \tenSTYLE to set the current font. +% +% Each font-changing command also sets the names \lsize (one size lower) +% and \lllsize (three sizes lower). These relative commands are used in +% the LaTeX logo and acronyms. +% +% This all needs generalizing, badly. +% \def\textfonts{% \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc - \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl + \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy + \let\tenttsl=\textttsl + \def\lsize{reduced}\def\lllsize{smaller}% \resetmathfonts \setleading{\textleading}} \def\titlefonts{% \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy \let\tenttsl=\titlettsl + \def\lsize{chap}\def\lllsize{subsec}% \resetmathfonts \setleading{25pt}} \def\titlefont#1{{\titlefonts\rm #1}} \def\chapfonts{% \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl + \def\lsize{sec}\def\lllsize{text}% \resetmathfonts \setleading{19pt}} \def\secfonts{% \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc - \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl + \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy + \let\tenttsl=\secttsl + \def\lsize{subsec}\def\lllsize{reduced}% \resetmathfonts \setleading{16pt}} \def\subsecfonts{% \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc - \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl + \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy + \let\tenttsl=\ssecttsl + \def\lsize{text}\def\lllsize{small}% \resetmathfonts \setleading{15pt}} -\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf? +\let\subsubsecfonts = \subsecfonts +\def\reducedfonts{% + \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl + \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc + \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy + \let\tenttsl=\reducedttsl + \def\lsize{small}\def\lllsize{smaller}% + \resetmathfonts \setleading{10.5pt}} \def\smallfonts{% \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy \let\tenttsl=\smallttsl + \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}} \def\smallerfonts{% \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy \let\tenttsl=\smallerttsl + \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{9.5pt}} -\let\smallexamplefonts = \smallerfonts + +% Set the fonts to use with the @small... environments. +\let\smallexamplefonts = \smallfonts + +% About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample +% can fit this many characters: +% 8.5x11=86 smallbook=72 a4=90 a5=69 +% If we use \scriptfonts (8pt), then we can fit this many characters: +% 8.5x11=90+ smallbook=80 a4=90+ a5=77 +% For me, subjectively, the few extra characters that fit aren't worth +% the additional smallness of 8pt. So I'm making the default 9pt. +% +% By the way, for comparison, here's what fits with @example (10pt): +% 8.5x11=71 smallbook=60 a4=75 a5=58 +% +% I wish the USA used A4 paper. +% --karl, 24jan03. + % Set up the default fonts, so we can use them for creating boxes. % -\textfonts +\textfonts \rm % Define these so they can be easily changed for other fonts. \def\angleleft{$\langle$} @@ -1343,23 +1692,33 @@ % Fonts for short table of contents. \setfont\shortcontrm\rmshape{12}{1000} -\setfont\shortcontbf\bxshape{12}{1000} +\setfont\shortcontbf\bfshape{10}{\magstep1} % no cmb12 \setfont\shortcontsl\slshape{12}{1000} +\setfont\shortconttt\ttshape{12}{1000} %% Add scribe-like font environments, plus @l for inline lisp (usually sans %% serif) and @ii for TeX italic % \smartitalic{ARG} outputs arg in italics, followed by an italic correction % unless the following character is such as not to need one. -\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi} -\def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx} -\def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx} +\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else + \ptexslash\fi\fi\fi} +\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx} +\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx} + +% like \smartslanted except unconditionally uses \ttsl. +% @var is set to this for defun arguments. +\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx} + +% like \smartslanted except unconditionally use \sl. We never want +% ttsl for book titles, do we? +\def\cite#1{{\sl #1}\futurelet\next\smartitalicx} \let\i=\smartitalic +\let\slanted=\smartslanted \let\var=\smartslanted \let\dfn=\smartslanted \let\emph=\smartitalic -\let\cite=\smartslanted \def\b#1{{\bf #1}} \let\strong=\b @@ -1371,11 +1730,21 @@ \def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} \def\restorehyphenation{\hyphenchar\font = `- } +% Set sfcode to normal for the chars that usually have another value. +% Can't use plain's \frenchspacing because it uses the `\x notation, and +% sometimes \x has an active definition that messes things up. +% +\catcode`@=11 + \def\frenchspacing{% + \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m + \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m + } +\catcode`@=\other + \def\t#1{% {\tt \rawbackslash \frenchspacing #1}% \null } -\let\ttfont=\t \def\samp#1{`\tclose{#1}'\null} \setfont\keyrm\rmshape{8}{1000} \font\keysy=cmsy9 @@ -1416,7 +1785,7 @@ \null } -% We *must* turn on hyphenation at `-' and `_' in \code. +% We *must* turn on hyphenation at `-' and `_' in @code. % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. @@ -1434,10 +1803,6 @@ \catcode`\_=\active \let_\codeunder \codex } - % - % If we end up with any active - characters when handling the index, - % just treat them as a normal -. - \global\def\indexbreaks{\catcode`\-=\active \let-\realdash} } \def\realdash{-} @@ -1461,8 +1826,7 @@ % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), % `example' (@kbd uses ttsl only inside of @example and friends), % or `code' (@kbd uses normal tty font always). -\def\kbdinputstyle{\parsearg\kbdinputstylexxx} -\def\kbdinputstylexxx#1{% +\parseargdef\kbdinputstyle{% \def\arg{#1}% \ifx\arg\worddistinct \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% @@ -1470,15 +1834,17 @@ \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% \else\ifx\arg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% + \else + \errhelp = \EMsimple + \errmessage{Unknown @kbdinputstyle option `\arg'}% \fi\fi\fi } \def\worddistinct{distinct} \def\wordexample{example} \def\wordcode{code} -% Default is kbdinputdistinct. (Too much of a hassle to call the macro, -% the catcodes are wrong for parsearg to work.) -\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl} +% Default is `distinct.' +\kbdinputstyle distinct \def\xkey{\key} \def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% @@ -1486,8 +1852,8 @@ \else{\tclose{\kbdfont\look}}\fi \else{\tclose{\kbdfont\look}}\fi} -% For @url, @env, @command quotes seem unnecessary, so use \code. -\let\url=\code +% For @indicateurl, @env, @command quotes seem unnecessary, so use \code. +\let\indicateurl=\code \let\env=\code \let\command=\code @@ -1519,9 +1885,13 @@ \endlink \endgroup} +% @url synonym for @uref, since that's how everyone uses it. +% +\let\url=\uref + % rms does not like angle brackets --karl, 17may97. % So now @email is just like @uref, unless we are pdf. -% +% %\def\email#1{\angleleft{\tt #1}\angleright} \ifpdf \def\email#1{\doemail#1,,\finish} @@ -1560,12 +1930,53 @@ \def\sc#1{{\smallcaps#1}} % smallcaps font \def\ii#1{{\it #1}} % italic font -% @acronym downcases the argument and prints in smallcaps. -\def\acronym#1{{\smallcaps \lowercase{#1}}} +% @acronym for "FBI", "NATO", and the like. +% We print this one point size smaller, since it's intended for +% all-uppercase. +% +\def\acronym#1{\doacronym #1,,\finish} +\def\doacronym#1,#2,#3\finish{% + {\selectfonts\lsize #1}% + \def\temp{#2}% + \ifx\temp\empty \else + \space ({\unsepspaces \ignorespaces \temp \unskip})% + \fi +} + +% @abbr for "Comput. J." and the like. +% No font change, but don't do end-of-sentence spacing. +% +\def\abbr#1{\doabbr #1,,\finish} +\def\doabbr#1,#2,#3\finish{% + {\frenchspacing #1}% + \def\temp{#2}% + \ifx\temp\empty \else + \space ({\unsepspaces \ignorespaces \temp \unskip})% + \fi +} -% @pounds{} is a sterling sign. +% @pounds{} is a sterling sign, which Knuth put in the CM italic font. +% \def\pounds{{\it\$}} +% @registeredsymbol - R in a circle. The font for the R should really +% be smaller yet, but lllsize is the best we can do for now. +% Adapted from the plain.tex definition of \copyright. +% +\def\registeredsymbol{% + $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}% + \hfil\crcr\Orb}}% + }$% +} + +% Laurent Siebenmann reports \Orb undefined with: +% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 +% so we'll define it if necessary. +% +\ifx\Orb\undefined +\def\Orb{\mathhexbox20D} +\fi + \message{page headings,} @@ -1584,86 +1995,103 @@ \newif\ifsetshortcontentsaftertitlepage \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue -\def\shorttitlepage{\parsearg\shorttitlepagezzz} -\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% +\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% \endgroup\page\hbox{}\page} -\def\titlepage{\begingroup \parindent=0pt \textfonts - \let\subtitlerm=\tenrm - \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}% - % - \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}% - % - % Leave some space at the very top of the page. - \vglue\titlepagetopglue - % - % Now you can print the title using @title. - \def\title{\parsearg\titlezzz}% - \def\titlezzz##1{\leftline{\titlefonts\rm ##1} - % print a rule at the page bottom also. - \finishedtitlepagefalse - \vskip4pt \hrule height 4pt width \hsize \vskip4pt}% - % No rule at page bottom unless we print one at the top with @title. - \finishedtitlepagetrue - % - % Now you can put text using @subtitle. - \def\subtitle{\parsearg\subtitlezzz}% - \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}% - % - % @author should come last, but may come many times. - \def\author{\parsearg\authorzzz}% - \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi - {\authorfont \leftline{##1}}}% - % - % Most title ``pages'' are actually two pages long, with space - % at the top of the second. We don't want the ragged left on the second. - \let\oldpage = \page - \def\page{% +\envdef\titlepage{% + % Open one extra group, as we want to close it in the middle of \Etitlepage. + \begingroup + \parindent=0pt \textfonts + % Leave some space at the very top of the page. + \vglue\titlepagetopglue + % No rule at page bottom unless we print one at the top with @title. + \finishedtitlepagetrue + % + % Most title ``pages'' are actually two pages long, with space + % at the top of the second. We don't want the ragged left on the second. + \let\oldpage = \page + \def\page{% \iffinishedtitlepage\else - \finishtitlepage + \finishtitlepage \fi - \oldpage \let\page = \oldpage - \hbox{}}% -% \def\page{\oldpage \hbox{}} + \page + \null + }% } \def\Etitlepage{% - \iffinishedtitlepage\else - \finishtitlepage - \fi - % It is important to do the page break before ending the group, - % because the headline and footline are only empty inside the group. - % If we use the new definition of \page, we always get a blank page - % after the title page, which we certainly don't want. - \oldpage - \endgroup - % - % Need this before the \...aftertitlepage checks so that if they are - % in effect the toc pages will come out with page numbers. - \HEADINGSon - % - % If they want short, they certainly want long too. - \ifsetshortcontentsaftertitlepage - \shortcontents - \contents - \global\let\shortcontents = \relax - \global\let\contents = \relax - \fi - % - \ifsetcontentsaftertitlepage - \contents - \global\let\contents = \relax - \global\let\shortcontents = \relax - \fi + \iffinishedtitlepage\else + \finishtitlepage + \fi + % It is important to do the page break before ending the group, + % because the headline and footline are only empty inside the group. + % If we use the new definition of \page, we always get a blank page + % after the title page, which we certainly don't want. + \oldpage + \endgroup + % + % Need this before the \...aftertitlepage checks so that if they are + % in effect the toc pages will come out with page numbers. + \HEADINGSon + % + % If they want short, they certainly want long too. + \ifsetshortcontentsaftertitlepage + \shortcontents + \contents + \global\let\shortcontents = \relax + \global\let\contents = \relax + \fi + % + \ifsetcontentsaftertitlepage + \contents + \global\let\contents = \relax + \global\let\shortcontents = \relax + \fi } \def\finishtitlepage{% - \vskip4pt \hrule height 2pt width \hsize - \vskip\titlepagebottomglue - \finishedtitlepagetrue + \vskip4pt \hrule height 2pt width \hsize + \vskip\titlepagebottomglue + \finishedtitlepagetrue +} + +%%% Macros to be used within @titlepage: + +\let\subtitlerm=\tenrm +\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} + +\def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines + \let\tt=\authortt} + +\parseargdef\title{% + \checkenv\titlepage + \leftline{\titlefonts\rm #1} + % print a rule at the page bottom also. + \finishedtitlepagefalse + \vskip4pt \hrule height 4pt width \hsize \vskip4pt } +\parseargdef\subtitle{% + \checkenv\titlepage + {\subtitlefont \rightline{#1}}% +} + +% @author should come last, but may come many times. +% It can also be used inside @quotation. +% +\parseargdef\author{% + \def\temp{\quotation}% + \ifx\thisenv\temp + \def\quotationauthor{#1}% printed in \Equotation. + \else + \checkenv\titlepage + \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi + {\authorfont \leftline{#1}}% + \fi +} + + %%% Set up page headings and footings. \let\thispage=\folio @@ -1673,7 +2101,7 @@ \newtoks\evenfootline % footline on even pages \newtoks\oddfootline % footline on odd pages -% Now make Tex use those variables +% Now make TeX use those variables \headline={{\textfonts\rm \ifodd\pageno \the\oddheadline \else \the\evenheadline \fi}} \footline={{\textfonts\rm \ifodd\pageno \the\oddfootline @@ -1687,32 +2115,27 @@ % @evenfooting @thisfile|| % @oddfooting ||@thisfile -\def\evenheading{\parsearg\evenheadingxxx} -\def\oddheading{\parsearg\oddheadingxxx} -\def\everyheading{\parsearg\everyheadingxxx} - -\def\evenfooting{\parsearg\evenfootingxxx} -\def\oddfooting{\parsearg\oddfootingxxx} -\def\everyfooting{\parsearg\everyfootingxxx} - -{\catcode`\@=0 % -\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish} -\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{% +\def\evenheading{\parsearg\evenheadingxxx} +\def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish} +\def\evenheadingyyy #1\|#2\|#3\|#4\finish{% \global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} -\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish} -\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{% +\def\oddheading{\parsearg\oddheadingxxx} +\def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish} +\def\oddheadingyyy #1\|#2\|#3\|#4\finish{% \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} -\gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}% +\parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}% -\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish} -\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{% +\def\evenfooting{\parsearg\evenfootingxxx} +\def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish} +\def\evenfootingyyy #1\|#2\|#3\|#4\finish{% \global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} -\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish} -\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{% +\def\oddfooting{\parsearg\oddfootingxxx} +\def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish} +\def\oddfootingyyy #1\|#2\|#3\|#4\finish{% \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}% % % Leave some space for the footline. Hopefully ok to assume @@ -1721,9 +2144,8 @@ \global\advance\vsize by -\baselineskip } -\gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}} -% -}% unbind the catcode of @. +\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} + % @headings double turns headings on for double-sided printing. % @headings single turns headings on for single-sided printing. @@ -1737,7 +2159,7 @@ \def\headings #1 {\csname HEADINGS#1\endcsname} -\def\HEADINGSoff{ +\def\HEADINGSoff{% \global\evenheadline={\hfil} \global\evenfootline={\hfil} \global\oddheadline={\hfil} \global\oddfootline={\hfil}} \HEADINGSoff @@ -1746,7 +2168,7 @@ % chapter name on inside top of right hand pages, document % title on inside top of left hand pages, and page numbers on outside top % edge of all pages. -\def\HEADINGSdouble{ +\def\HEADINGSdouble{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} @@ -1758,7 +2180,7 @@ % For single-sided printing, chapter title goes across top left of page, % page number on top right. -\def\HEADINGSsingle{ +\def\HEADINGSsingle{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} @@ -1805,12 +2227,11 @@ % @settitle line... specifies the title of the document, for headings. % It generates no output of its own. \def\thistitle{\putwordNoTitle} -\def\settitle{\parsearg\settitlezzz} -\def\settitlezzz #1{\gdef\thistitle{#1}} +\def\settitle{\parsearg{\gdef\thistitle}} \message{tables,} -% Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x). +% Tables -- @table, @ftable, @vtable, @item(x). % default indentation of table text \newdimen\tableindent \tableindent=.8in @@ -1822,7 +2243,7 @@ % used internally for \itemindent minus \itemmargin \newdimen\itemmax -% Note @table, @vtable, and @vtable define @item, @itemx, etc., with +% Note @table, @ftable, and @vtable define @item, @itemx, etc., with % these defs. % They also define \itemindex % to index the item name in whatever manner is desired (perhaps none). @@ -1834,22 +2255,10 @@ \def\internalBitem{\smallbreak \parsearg\itemzzz} \def\internalBitemx{\itemxpar \parsearg\itemzzz} -\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz} -\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz} - -\def\internalBkitem{\smallbreak \parsearg\kitemzzz} -\def\internalBkitemx{\itemxpar \parsearg\kitemzzz} - -\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}% - \itemzzz {#1}} - -\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}% - \itemzzz {#1}} - \def\itemzzz #1{\begingroup % \advance\hsize by -\rightskip \advance\hsize by -\tableindent - \setbox0=\hbox{\itemfont{#1}}% + \setbox0=\hbox{\itemindicate{#1}}% \itemindex{#1}% \nobreak % This prevents a break before @itemx. % @@ -1873,10 +2282,14 @@ % \parskip glue -- logically it's part of the @item we just started. \nobreak \vskip-\parskip % - % Stop a page break at the \parskip glue coming up. Unfortunately - % we can't prevent a possible page break at the following - % \baselineskip glue. - \nobreak + % Stop a page break at the \parskip glue coming up. However, if + % what follows is an environment such as @example, there will be no + % \parskip glue; then the negative vskip we just inserted would + % cause the example and the item to crash together. So we use this + % bizarre value of 10001 as a signal to \aboveenvbreak to insert + % \parskip glue after all. Section titles are handled this way also. + % + \penalty 10001 \endgroup \itemxneedsnegativevskipfalse \else @@ -1895,97 +2308,95 @@ \fi } -\def\item{\errmessage{@item while not in a table}} -\def\itemx{\errmessage{@itemx while not in a table}} -\def\kitem{\errmessage{@kitem while not in a table}} -\def\kitemx{\errmessage{@kitemx while not in a table}} -\def\xitem{\errmessage{@xitem while not in a table}} -\def\xitemx{\errmessage{@xitemx while not in a table}} - -% Contains a kludge to get @end[description] to work. -\def\description{\tablez{\dontindex}{1}{}{}{}{}} +\def\item{\errmessage{@item while not in a list environment}} +\def\itemx{\errmessage{@itemx while not in a list environment}} % @table, @ftable, @vtable. -\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex} -{\obeylines\obeyspaces% -\gdef\tablex #1^^M{% -\tabley\dontindex#1 \endtabley}} - -\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex} -{\obeylines\obeyspaces% -\gdef\ftablex #1^^M{% -\tabley\fnitemindex#1 \endtabley -\def\Eftable{\endgraf\afterenvbreak\endgroup}% -\let\Etable=\relax}} - -\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex} -{\obeylines\obeyspaces% -\gdef\vtablex #1^^M{% -\tabley\vritemindex#1 \endtabley -\def\Evtable{\endgraf\afterenvbreak\endgroup}% -\let\Etable=\relax}} - -\def\dontindex #1{} -\def\fnitemindex #1{\doind {fn}{\code{#1}}}% -\def\vritemindex #1{\doind {vr}{\code{#1}}}% - -{\obeyspaces % -\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup% -\tablez{#1}{#2}{#3}{#4}{#5}{#6}}} - -\def\tablez #1#2#3#4#5#6{% -\aboveenvbreak % -\begingroup % -\def\Edescription{\Etable}% Necessary kludge. -\let\itemindex=#1% -\ifnum 0#3>0 \advance \leftskip by #3\mil \fi % -\ifnum 0#4>0 \tableindent=#4\mil \fi % -\ifnum 0#5>0 \advance \rightskip by #5\mil \fi % -\def\itemfont{#2}% -\itemmax=\tableindent % -\advance \itemmax by -\itemmargin % -\advance \leftskip by \tableindent % -\exdentamount=\tableindent -\parindent = 0pt -\parskip = \smallskipamount -\ifdim \parskip=0pt \parskip=2pt \fi% -\def\Etable{\endgraf\afterenvbreak\endgroup}% -\let\item = \internalBitem % -\let\itemx = \internalBitemx % -\let\kitem = \internalBkitem % -\let\kitemx = \internalBkitemx % -\let\xitem = \internalBxitem % -\let\xitemx = \internalBxitemx % +\envdef\table{% + \let\itemindex\gobble + \tablex +} +\envdef\ftable{% + \def\itemindex ##1{\doind {fn}{\code{##1}}}% + \tablex +} +\envdef\vtable{% + \def\itemindex ##1{\doind {vr}{\code{##1}}}% + \tablex +} +\def\tablex#1{% + \def\itemindicate{#1}% + \parsearg\tabley +} +\def\tabley#1{% + {% + \makevalueexpandable + \edef\temp{\noexpand\tablez #1\space\space\space}% + \expandafter + }\temp \endtablez } +\def\tablez #1 #2 #3 #4\endtablez{% + \aboveenvbreak + \ifnum 0#1>0 \advance \leftskip by #1\mil \fi + \ifnum 0#2>0 \tableindent=#2\mil \fi + \ifnum 0#3>0 \advance \rightskip by #3\mil \fi + \itemmax=\tableindent + \advance \itemmax by -\itemmargin + \advance \leftskip by \tableindent + \exdentamount=\tableindent + \parindent = 0pt + \parskip = \smallskipamount + \ifdim \parskip=0pt \parskip=2pt \fi + \let\item = \internalBitem + \let\itemx = \internalBitemx +} +\def\Etable{\endgraf\afterenvbreak} +\let\Eftable\Etable +\let\Evtable\Etable +\let\Eitemize\Etable +\let\Eenumerate\Etable % This is the counter used by @enumerate, which is really @itemize \newcount \itemno -\def\itemize{\parsearg\itemizezzz} +\envdef\itemize{\parsearg\doitemize} -\def\itemizezzz #1{% - \begingroup % ended by the @end itemize - \itemizey {#1}{\Eitemize} -} - -\def\itemizey #1#2{% -\aboveenvbreak % -\itemmax=\itemindent % -\advance \itemmax by -\itemmargin % -\advance \leftskip by \itemindent % -\exdentamount=\itemindent -\parindent = 0pt % -\parskip = \smallskipamount % -\ifdim \parskip=0pt \parskip=2pt \fi% -\def#2{\endgraf\afterenvbreak\endgroup}% -\def\itemcontents{#1}% -\let\item=\itemizeitem} +\def\doitemize#1{% + \aboveenvbreak + \itemmax=\itemindent + \advance\itemmax by -\itemmargin + \advance\leftskip by \itemindent + \exdentamount=\itemindent + \parindent=0pt + \parskip=\smallskipamount + \ifdim\parskip=0pt \parskip=2pt \fi + \def\itemcontents{#1}% + % @itemize with no arg is equivalent to @itemize @bullet. + \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi + \let\item=\itemizeitem +} -% Set sfcode to normal for the chars that usually have another value. -% These are `.?!:;,' -\def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000 - \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 } +% Definition of @item while inside @itemize and @enumerate. +% +\def\itemizeitem{% + \advance\itemno by 1 % for enumerations + {\let\par=\endgraf \smallbreak}% reasonable place to break + {% + % If the document has an @itemize directly after a section title, a + % \nobreak will be last on the list, and \sectionheading will have + % done a \vskip-\parskip. In that case, we don't want to zero + % parskip, or the item text will crash with the heading. On the + % other hand, when there is normal text preceding the item (as there + % usually is), we do want to zero parskip, or there would be too much + % space. In that case, we won't have a \nobreak before. At least + % that's the theory. + \ifnum\lastpenalty<10000 \parskip=0in \fi + \noindent + \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% + \vadjust{\penalty 1200}}% not good to break after first line of item. + \flushcr +} % \splitoff TOKENS\endmark defines \first to be the first token in % TOKENS, and \rest to be the remainder. @@ -1996,11 +2407,8 @@ % or number, to specify the first label in the enumerated list. No % argument is the same as `1'. % -\def\enumerate{\parsearg\enumeratezzz} -\def\enumeratezzz #1{\enumeratey #1 \endenumeratey} +\envparseargdef\enumerate{\enumeratey #1 \endenumeratey} \def\enumeratey #1 #2\endenumeratey{% - \begingroup % ended by the @end enumerate - % % If we were given no argument, pretend we were given `1'. \def\thearg{#1}% \ifx\thearg\empty \def\thearg{1}\fi @@ -2071,13 +2479,13 @@ }% } -% Call itemizey, adding a period to the first argument and supplying the +% Call \doitemize, adding a period to the first argument and supplying the % common last two arguments. Also subtract one from the initial value in % \itemno, since @item increments \itemno. % \def\startenumeration#1{% \advance\itemno by -1 - \itemizey{#1.}\Eenumerate\flushcr + \doitemize{#1.}\flushcr } % @alphaenumerate and @capsenumerate are abbreviations for giving an arg @@ -2088,16 +2496,6 @@ \def\Ealphaenumerate{\Eenumerate} \def\Ecapsenumerate{\Eenumerate} -% Definition of @item while inside @itemize. - -\def\itemizeitem{% -\advance\itemno by 1 -{\let\par=\endgraf \smallbreak}% -\ifhmode \errmessage{In hmode at itemizeitem}\fi -{\parskip=0in \hskip 0pt -\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}% -\vadjust{\penalty 1200}}% -\flushcr} % @multitable macros % Amy Hendrickson, 8/18/94, 3/6/96 @@ -2124,24 +2522,14 @@ % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item ... % using the widest term desired in each column. -% -% For those who want to use more than one line's worth of words in -% the preamble, break the line within one argument and it -% will parse correctly, i.e., -% -% @multitable {Column 1 template} {Column 2 template} {Column 3 -% template} -% Not: -% @multitable {Column 1 template} {Column 2 template} -% {Column 3 template} % Each new table line starts with @item, each subsequent new column % starts with @tab. Empty columns may be produced by supplying @tab's % with nothing between them for as many times as empty columns are needed, % ie, @tab@tab@tab will produce two empty columns. -% @item, @tab, @multitable or @end multitable do not need to be on their -% own lines, but it will not hurt if they are. +% @item, @tab do not need to be on their own lines, but it will not hurt +% if they are. % Sample multitable: @@ -2185,13 +2573,12 @@ \def\xcolumnfractions{\columnfractions} \newif\ifsetpercent -% #1 is the part of the @columnfraction before the decimal point, which -% is presumably either 0 or the empty string (but we don't check, we -% just throw it away). #2 is the decimal part, which we use as the -% percent of \hsize for this column. -\def\pickupwholefraction#1.#2 {% +% #1 is the @columnfraction, usually a decimal number like .5, but might +% be just 1. We just use it, whatever it is. +% +\def\pickupwholefraction#1 {% \global\advance\colcount by 1 - \expandafter\xdef\csname col\the\colcount\endcsname{.#2\hsize}% + \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}% \setuptable } @@ -2208,8 +2595,8 @@ \let\go\pickupwholefraction \else \global\advance\colcount by 1 - \setbox0=\hbox{#1\unskip }% Add a normal word space as a separator; - % typically that is always in the input, anyway. + \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a + % separator; typically that is always in the input, anyway. \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% \fi \fi @@ -2224,18 +2611,33 @@ \go } -% This used to have \hskip1sp. But then the space in a template line is -% not enough. That is bad. So let's go back to just & until we -% encounter the problem it was intended to solve again. -% --karl, nathan@acm.org, 20apr99. -\def\tab{&} +% multitable-only commands. +% +% @headitem starts a heading row, which we typeset in bold. +% Assignments have to be global since we are inside the implicit group +% of an alignment entry. Note that \everycr resets \everytab. +\def\headitem{\checkenv\multitable \crcr \global\everytab={\bf}\the\everytab}% +% +% A \tab used to include \hskip1sp. But then the space in a template +% line is not enough. That is bad. So let's go back to just `&' until +% we encounter the problem it was intended to solve again. +% --karl, nathan@acm.org, 20apr99. +\def\tab{\checkenv\multitable &\the\everytab}% % @multitable ... @end multitable definitions: % -\def\multitable{\parsearg\dotable} -\def\dotable#1{\bgroup +\newtoks\everytab % insert after every tab. +% +\envdef\multitable{% \vskip\parskip - \let\item\crcr + \startsavinginserts + % + % @item within a multitable starts a normal row. + % We use \def instead of \let so that if one of the multitable entries + % contains an @itemize, we don't choke on the \item (seen as \crcr aka + % \endtemplate) expanding \doitemize. + \def\item{\crcr}% + % \tolerance=9500 \hbadness=9500 \setmultitablespacing @@ -2243,66 +2645,80 @@ \parindent=\multitableparindent \overfullrule=0pt \global\colcount=0 - \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}% % + \everycr = {% + \noalign{% + \global\everytab={}% + \global\colcount=0 % Reset the column counter. + % Check for saved footnotes, etc. + \checkinserts + % Keeps underfull box messages off when table breaks over pages. + %\filbreak + % Maybe so, but it also creates really weird page breaks when the + % table breaks over pages. Wouldn't \vfil be better? Wait until the + % problem manifests itself, so it can be fixed for real --karl. + }% + }% + % + \parsearg\domultitable +} +\def\domultitable#1{% % To parse everything between @multitable and @item: \setuptable#1 \endsetuptable % - % \everycr will reset column counter, \colcount, at the end of - % each line. Every column entry will cause \colcount to advance by one. - % The table preamble - % looks at the current \colcount to find the correct column width. - \everycr{\noalign{% - % - % \filbreak%% keeps underfull box messages off when table breaks over pages. - % Maybe so, but it also creates really weird page breaks when the table - % breaks over pages. Wouldn't \vfil be better? Wait until the problem - % manifests itself, so it can be fixed for real --karl. - \global\colcount=0\relax}}% - % % This preamble sets up a generic column definition, which will % be used as many times as user calls for columns. % \vtop will set a single line and will also let text wrap and % continue for many paragraphs if desired. - \halign\bgroup&\global\advance\colcount by 1\relax - \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname - % - % In order to keep entries from bumping into each other - % we will add a \leftskip of \multitablecolspace to all columns after - % the first one. - % - % If a template has been used, we will add \multitablecolspace - % to the width of each template entry. - % - % If the user has set preamble in terms of percent of \hsize we will - % use that dimension as the width of the column, and the \leftskip - % will keep entries from bumping into each other. Table will start at - % left margin and final column will justify at right margin. - % - % Make sure we don't inherit \rightskip from the outer environment. - \rightskip=0pt - \ifnum\colcount=1 - % The first column will be indented with the surrounding text. - \advance\hsize by\leftskip - \else - \ifsetpercent \else - % If user has not set preamble in terms of percent of \hsize - % we will advance \hsize by \multitablecolspace. - \advance\hsize by \multitablecolspace - \fi - % In either case we will make \leftskip=\multitablecolspace: - \leftskip=\multitablecolspace - \fi - % Ignoring space at the beginning and end avoids an occasional spurious - % blank line, when TeX decides to break the line at the space before the - % box from the multistrut, so the strut ends up on a line by itself. - % For example: - % @multitable @columnfractions .11 .89 - % @item @code{#} - % @tab Legal holiday which is valid in major parts of the whole country. - % Is automatically provided with highlighting sequences respectively marking - % characters. - \noindent\ignorespaces##\unskip\multistrut}\cr + \halign\bgroup &% + \global\advance\colcount by 1 + \multistrut + \vtop{% + % Use the current \colcount to find the correct column width: + \hsize=\expandafter\csname col\the\colcount\endcsname + % + % In order to keep entries from bumping into each other + % we will add a \leftskip of \multitablecolspace to all columns after + % the first one. + % + % If a template has been used, we will add \multitablecolspace + % to the width of each template entry. + % + % If the user has set preamble in terms of percent of \hsize we will + % use that dimension as the width of the column, and the \leftskip + % will keep entries from bumping into each other. Table will start at + % left margin and final column will justify at right margin. + % + % Make sure we don't inherit \rightskip from the outer environment. + \rightskip=0pt + \ifnum\colcount=1 + % The first column will be indented with the surrounding text. + \advance\hsize by\leftskip + \else + \ifsetpercent \else + % If user has not set preamble in terms of percent of \hsize + % we will advance \hsize by \multitablecolspace. + \advance\hsize by \multitablecolspace + \fi + % In either case we will make \leftskip=\multitablecolspace: + \leftskip=\multitablecolspace + \fi + % Ignoring space at the beginning and end avoids an occasional spurious + % blank line, when TeX decides to break the line at the space before the + % box from the multistrut, so the strut ends up on a line by itself. + % For example: + % @multitable @columnfractions .11 .89 + % @item @code{#} + % @tab Legal holiday which is valid in major parts of the whole country. + % Is automatically provided with highlighting sequences respectively + % marking characters. + \noindent\ignorespaces##\unskip\multistrut + }\cr +} +\def\Emultitable{% + \crcr + \egroup % end the \halign + \global\setpercentfalse } \def\setmultitablespacing{% test to see if user has set \multitablelinespace. @@ -2334,294 +2750,172 @@ \message{conditionals,} -% Prevent errors for section commands. -% Used in @ignore and in failing conditionals. -\def\ignoresections{% - \let\chapter=\relax - \let\unnumbered=\relax - \let\top=\relax - \let\unnumberedsec=\relax - \let\unnumberedsection=\relax - \let\unnumberedsubsec=\relax - \let\unnumberedsubsection=\relax - \let\unnumberedsubsubsec=\relax - \let\unnumberedsubsubsection=\relax - \let\section=\relax - \let\subsec=\relax - \let\subsubsec=\relax - \let\subsection=\relax - \let\subsubsection=\relax - \let\appendix=\relax - \let\appendixsec=\relax - \let\appendixsection=\relax - \let\appendixsubsec=\relax - \let\appendixsubsection=\relax - \let\appendixsubsubsec=\relax - \let\appendixsubsubsection=\relax - \let\contents=\relax - \let\smallbook=\relax - \let\titlepage=\relax -} - -% Used in nested conditionals, where we have to parse the Texinfo source -% and so want to turn off most commands, in case they are used -% incorrectly. -% -\def\ignoremorecommands{% - \let\defcodeindex = \relax - \let\defcv = \relax - \let\deffn = \relax - \let\deffnx = \relax - \let\defindex = \relax - \let\defivar = \relax - \let\defmac = \relax - \let\defmethod = \relax - \let\defop = \relax - \let\defopt = \relax - \let\defspec = \relax - \let\deftp = \relax - \let\deftypefn = \relax - \let\deftypefun = \relax - \let\deftypeivar = \relax - \let\deftypeop = \relax - \let\deftypevar = \relax - \let\deftypevr = \relax - \let\defun = \relax - \let\defvar = \relax - \let\defvr = \relax - \let\ref = \relax - \let\xref = \relax - \let\printindex = \relax - \let\pxref = \relax - \let\settitle = \relax - \let\setchapternewpage = \relax - \let\setchapterstyle = \relax - \let\everyheading = \relax - \let\evenheading = \relax - \let\oddheading = \relax - \let\everyfooting = \relax - \let\evenfooting = \relax - \let\oddfooting = \relax - \let\headings = \relax - \let\include = \relax - \let\lowersections = \relax - \let\down = \relax - \let\raisesections = \relax - \let\up = \relax - \let\set = \relax - \let\clear = \relax - \let\item = \relax -} -% Ignore @ignore, @ifhtml, @ifinfo, @ifplaintext, @ifnottex, @html, @menu, -% @direntry, and @documentdescription. +% @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext, +% @ifnotxml always succeed. They currently do nothing; we don't +% attempt to check whether the conditionals are properly nested. But we +% have to remember that they are conditionals, so that @end doesn't +% attempt to close an environment group. +% +\def\makecond#1{% + \expandafter\let\csname #1\endcsname = \relax + \expandafter\let\csname iscond.#1\endcsname = 1 +} +\makecond{iftex} +\makecond{ifnotdocbook} +\makecond{ifnothtml} +\makecond{ifnotinfo} +\makecond{ifnotplaintext} +\makecond{ifnotxml} + +% Ignore @ignore, @ifhtml, @ifinfo, and the like. % -\def\ignore{\doignore{ignore}} +\def\direntry{\doignore{direntry}} +\def\documentdescription{\doignore{documentdescription}} +\def\docbook{\doignore{docbook}} +\def\html{\doignore{html}} +\def\ifdocbook{\doignore{ifdocbook}} \def\ifhtml{\doignore{ifhtml}} \def\ifinfo{\doignore{ifinfo}} -\def\ifplaintext{\doignore{ifplaintext}} \def\ifnottex{\doignore{ifnottex}} -\def\html{\doignore{html}} +\def\ifplaintext{\doignore{ifplaintext}} +\def\ifxml{\doignore{ifxml}} +\def\ignore{\doignore{ignore}} \def\menu{\doignore{menu}} -\def\direntry{\doignore{direntry}} -\def\documentdescription{\doignore{documentdescription}} -\def\documentdescriptionword{documentdescription} - -% @dircategory CATEGORY -- specify a category of the dir file -% which this file should belong to. Ignore this in TeX. -\let\dircategory = \comment +\def\xml{\doignore{xml}} -% Ignore text until a line `@end #1'. +% Ignore text until a line `@end #1', keeping track of nested conditionals. % +% A count to remember the depth of nesting. +\newcount\doignorecount + \def\doignore#1{\begingroup - % Don't complain about control sequences we have declared \outer. - \ignoresections - % - % Define a command to swallow text until we reach `@end #1'. - % This @ is a catcode 12 token (that is the normal catcode of @ in - % this texinfo.tex file). We change the catcode of @ below to match. - \long\def\doignoretext##1@end #1{\enddoignore}% + % Scan in ``verbatim'' mode: + \catcode`\@ = \other + \catcode`\{ = \other + \catcode`\} = \other % % Make sure that spaces turn into tokens that match what \doignoretext wants. - \catcode32 = 10 + \spaceisspace % - % Ignore braces, too, so mismatched braces don't cause trouble. - \catcode`\{ = 9 - \catcode`\} = 9 - % - % We must not have @c interpreted as a control sequence. - \catcode`\@ = 12 - % - \def\ignoreword{#1}% - \ifx\ignoreword\documentdescriptionword - % The c kludge breaks documentdescription, since - % `documentdescription' contains a `c'. Means not everything will - % be ignored inside @documentdescription, but oh well... - \else - % Make the letter c a comment character so that the rest of the line - % will be ignored. This way, the document can have (for example) - % @c @end ifinfo - % and the @end ifinfo will be properly ignored. - % (We've just changed @ to catcode 12.) - \catcode`\c = 14 - \fi - % - % And now expand the command defined above. - \doignoretext -} - -% What we do to finish off ignored text. -% -\def\enddoignore{\endgroup\ignorespaces}% - -\newif\ifwarnedobs\warnedobsfalse -\def\obstexwarn{% - \ifwarnedobs\relax\else - % We need to warn folks that they may have trouble with TeX 3.0. - % This uses \immediate\write16 rather than \message to get newlines. - \immediate\write16{} - \immediate\write16{WARNING: for users of Unix TeX 3.0!} - \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).} - \immediate\write16{If you are running another version of TeX, relax.} - \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.} - \immediate\write16{ Then upgrade your TeX installation if you can.} - \immediate\write16{ (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)} - \immediate\write16{If you are stuck with version 3.0, run the} - \immediate\write16{ script ``tex3patch'' from the Texinfo distribution} - \immediate\write16{ to use a workaround.} - \immediate\write16{} - \global\warnedobstrue - \fi -} - -% **In TeX 3.0, setting text in \nullfont hangs tex. For a -% workaround (which requires the file ``dummy.tfm'' to be installed), -% uncomment the following line: -%%%%%\font\nullfont=dummy\let\obstexwarn=\relax - -% Ignore text, except that we keep track of conditional commands for -% purposes of nesting, up to an `@end #1' command. -% -\def\nestedignore#1{% - \obstexwarn - % We must actually expand the ignored text to look for the @end - % command, so that nested ignore constructs work. Thus, we put the - % text into a \vbox and then do nothing with the result. To minimize - % the change of memory overflow, we follow the approach outlined on - % page 401 of the TeXbook: make the current font be a dummy font. - % - \setbox0 = \vbox\bgroup - % Don't complain about control sequences we have declared \outer. - \ignoresections - % - % Define `@end #1' to end the box, which will in turn undefine the - % @end command again. - \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}% - % - % We are going to be parsing Texinfo commands. Most cause no - % trouble when they are used incorrectly, but some commands do - % complicated argument parsing or otherwise get confused, so we - % undefine them. - % - % We can't do anything about stray @-signs, unfortunately; - % they'll produce `undefined control sequence' errors. - \ignoremorecommands - % - % Set the current font to be \nullfont, a TeX primitive, and define - % all the font commands to also use \nullfont. We don't use - % dummy.tfm, as suggested in the TeXbook, because not all sites - % might have that installed. Therefore, math mode will still - % produce output, but that should be an extremely small amount of - % stuff compared to the main input. - % - \nullfont - \let\tenrm=\nullfont \let\tenit=\nullfont \let\tensl=\nullfont - \let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont - \let\tensf=\nullfont - % Similarly for index fonts. - \let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont - \let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont - \let\smallsf=\nullfont - % Similarly for smallexample fonts. - \let\smallerrm=\nullfont \let\smallerit=\nullfont \let\smallersl=\nullfont - \let\smallerbf=\nullfont \let\smallertt=\nullfont \let\smallersc=\nullfont - \let\smallersf=\nullfont - % - % Don't complain when characters are missing from the fonts. - \tracinglostchars = 0 - % - % Don't bother to do space factor calculations. - \frenchspacing - % - % Don't report underfull hboxes. - \hbadness = 10000 + % Count number of #1's that we've seen. + \doignorecount = 0 + % + % Swallow text until we reach the matching `@end #1'. + \dodoignore{#1}% +} + +{ \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source. + \obeylines % + % + \gdef\dodoignore#1{% + % #1 contains the command name as a string, e.g., `ifinfo'. % - % Do minimal line-breaking. - \pretolerance = 10000 + % Define a command to find the next `@end #1', which must be on a line + % by itself. + \long\def\doignoretext##1^^M@end #1{\doignoretextyyy##1^^M@#1\_STOP_}% + % And this command to find another #1 command, at the beginning of a + % line. (Otherwise, we would consider a line `@c @ifset', for + % example, to count as an @ifset for nesting.) + \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% % - % Do not execute instructions in @tex - \def\tex{\doignore{tex}}% - % Do not execute macro definitions. - % `c' is a comment character, so the word `macro' will get cut off. - \def\macro{\doignore{ma}}% + % And now expand that command. + \obeylines % + \doignoretext ^^M% + }% +} + +\def\doignoreyyy#1{% + \def\temp{#1}% + \ifx\temp\empty % Nothing found. + \let\next\doignoretextzzz + \else % Found a nested condition, ... + \advance\doignorecount by 1 + \let\next\doignoretextyyy % ..., look for another. + % If we're here, #1 ends with ^^M\ifinfo (for example). + \fi + \next #1% the token \_STOP_ is present just after this macro. +} + +% We have to swallow the remaining "\_STOP_". +% +\def\doignoretextzzz#1{% + \ifnum\doignorecount = 0 % We have just found the outermost @end. + \let\next\enddoignore + \else % Still inside a nested condition. + \advance\doignorecount by -1 + \let\next\doignoretext % Look for the next @end. + \fi + \next } +% Finish off ignored text. +\def\enddoignore{\endgroup\ignorespaces} + + % @set VAR sets the variable VAR to an empty value. % @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. % % Since we want to separate VAR from REST-OF-LINE (which might be % empty), we can't just use \parsearg; we have to insert a space of our % own to delimit the rest of the line, and then take it out again if we -% didn't need it. Make sure the catcode of space is correct to avoid -% losing inside @example, for instance. +% didn't need it. +% We rely on the fact that \parsearg sets \catcode`\ =10. % -\def\set{\begingroup\catcode` =10 - \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR. - \parsearg\setxxx} -\def\setxxx#1{\setyyy#1 \endsetyyy} +\parseargdef\set{\setyyy#1 \endsetyyy} \def\setyyy#1 #2\endsetyyy{% - \def\temp{#2}% - \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty - \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted. - \fi - \endgroup + {% + \makevalueexpandable + \def\temp{#2}% + \edef\next{\gdef\makecsname{SET#1}}% + \ifx\temp\empty + \next{}% + \else + \setzzz#2\endsetzzz + \fi + }% } -% Can't use \xdef to pre-expand #2 and save some time, since \temp or -% \next or other control sequences that we've defined might get us into -% an infinite loop. Consider `@set foo @cite{bar}'. -\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}} +% Remove the trailing space \setxxx inserted. +\def\setzzz#1 \endsetzzz{\next{#1}} % @clear VAR clears (i.e., unsets) the variable VAR. % -\def\clear{\parsearg\clearxxx} -\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax} +\parseargdef\clear{% + {% + \makevalueexpandable + \global\expandafter\let\csname SET#1\endcsname=\relax + }% +} % @value{foo} gets the text saved in variable foo. +\def\value{\begingroup\makevalueexpandable\valuexxx} +\def\valuexxx#1{\expandablevalue{#1}\endgroup} { - \catcode`\_ = \active + \catcode`\- = \active \catcode`\_ = \active % - % We might end up with active _ or - characters in the argument if - % we're called from @code, as @code{@value{foo-bar_}}. So \let any - % such active characters to their normal equivalents. - \gdef\value{\begingroup - \catcode`\-=12 \catcode`\_=12 - \indexbreaks \let_\normalunderscore - \valuexxx} + \gdef\makevalueexpandable{% + \let\value = \expandablevalue + % We don't want these characters active, ... + \catcode`\-=\other \catcode`\_=\other + % ..., but we might end up with active ones in the argument if + % we're called from @code, as @code{@value{foo-bar_}}, though. + % So \let them to their normal equivalents. + \let-\realdash \let_\normalunderscore + } } -\def\valuexxx#1{\expandablevalue{#1}\endgroup} % We have this subroutine so that we can handle at least some @value's -% properly in indexes (we \let\value to this in \indexdummies). Ones -% whose names contain - or _ still won't work, but we can't do anything -% about that. The command has to be fully expandable, since the result -% winds up in the index file. This means that if the variable's value -% contains other Texinfo commands, it's almost certain it will fail -% (although perhaps we could fix that with sufficient work to do a -% one-level expansion on the result, instead of complete). +% properly in indexes (we call \makevalueexpandable in \indexdummies). +% The command has to be fully expandable (if the variable is set), since +% the result winds up in the index file. This means that if the +% variable's value contains other Texinfo commands, it's almost certain +% it will fail (although perhaps we could fix that with sufficient work +% to do a one-level expansion on the result, instead of complete). % \def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax {[No value for ``#1'']}% + \message{Variable `#1', used in @value, is not set.}% \else \csname SET#1\endcsname \fi @@ -2630,68 +2924,36 @@ % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. % -\def\ifset{\parsearg\ifsetxxx} -\def\ifsetxxx #1{% - \expandafter\ifx\csname SET#1\endcsname\relax - \expandafter\ifsetfail - \else - \expandafter\ifsetsucceed - \fi +% To get special treatment of `@end ifset,' call \makeond and the redefine. +% +\makecond{ifset} +\def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}} +\def\doifset#1#2{% + {% + \makevalueexpandable + \let\next=\empty + \expandafter\ifx\csname SET#2\endcsname\relax + #1% If not set, redefine \next. + \fi + \expandafter + }\next } -\def\ifsetsucceed{\conditionalsucceed{ifset}} -\def\ifsetfail{\nestedignore{ifset}} -\defineunmatchedend{ifset} +\def\ifsetfail{\doignore{ifset}} % @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been % defined with @set, or has been undefined with @clear. % -\def\ifclear{\parsearg\ifclearxxx} -\def\ifclearxxx #1{% - \expandafter\ifx\csname SET#1\endcsname\relax - \expandafter\ifclearsucceed - \else - \expandafter\ifclearfail - \fi -} -\def\ifclearsucceed{\conditionalsucceed{ifclear}} -\def\ifclearfail{\nestedignore{ifclear}} -\defineunmatchedend{ifclear} - -% @iftex, @ifnothtml, @ifnotinfo, @ifnotplaintext always succeed; we -% read the text following, through the first @end iftex (etc.). Make -% `@end iftex' (etc.) valid only after an @iftex. -% -\def\iftex{\conditionalsucceed{iftex}} -\def\ifnothtml{\conditionalsucceed{ifnothtml}} -\def\ifnotinfo{\conditionalsucceed{ifnotinfo}} -\def\ifnotplaintext{\conditionalsucceed{ifnotplaintext}} -\defineunmatchedend{iftex} -\defineunmatchedend{ifnothtml} -\defineunmatchedend{ifnotinfo} -\defineunmatchedend{ifnotplaintext} - -% We can't just want to start a group at @iftex (etc.) and end it at -% @end iftex, since then @set commands inside the conditional have no -% effect (they'd get reverted at the end of the group). So we must -% define \Eiftex to redefine itself to be its previous value. (We can't -% just define it to fail again with an ``unmatched end'' error, since -% the @ifset might be nested.) -% -\def\conditionalsucceed#1{% - \edef\temp{% - % Remember the current value of \E#1. - \let\nece{prevE#1} = \nece{E#1}% - % - % At the `@end #1', redefine \E#1 to be its previous value. - \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}% - }% - \temp -} +% The `\else' inside the `\doifset' parameter is a trick to reuse the +% above code: if the variable is not set, do nothing, if it is set, +% then redefine \next to \ifclearfail. +% +\makecond{ifclear} +\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} +\def\ifclearfail{\doignore{ifclear}} -% We need to expand lots of \csname's, but we don't want to expand the -% control sequences after we've constructed them. -% -\def\nece#1{\expandafter\noexpand\csname#1\endcsname} +% @dircategory CATEGORY -- specify a category of the dir file +% which this file should belong to. Ignore this in TeX. +\let\dircategory=\comment % @defininfoenclose. \let\definfoenclose=\comment @@ -2742,10 +3004,10 @@ % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. -% +% % @syncodeindex foo bar similar, but put all entries made for index foo % inside @code. -% +% \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}} \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}} @@ -2784,284 +3046,402 @@ \def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} -% Take care of texinfo commands likely to appear in an index entry. -% (Must be a way to avoid doing expansion at all, and thus not have to -% laboriously list every single command here.) -% +% Take care of Texinfo commands that can appear in an index entry. +% Since there are some commands we want to expand, and others we don't, +% we have to laboriously prevent expansion for those that we don't. +% \def\indexdummies{% -\def\ { }% -\def\@{@}% change to @@ when we switch to @ as escape char in aux files. -% Need these in case \tex is in effect and \{ is a \delimiter again. -% But can't use \lbracecmd and \rbracecmd because texindex assumes -% braces and backslashes are used only as delimiters. -\let\{ = \mylbrace -\let\} = \myrbrace -\def\_{{\realbackslash _}}% -\normalturnoffactive -% -% Take care of the plain tex accent commands. -\def\,##1{\realbackslash ,{##1}}% -\def\"{\realbackslash "}% -\def\`{\realbackslash `}% -\def\'{\realbackslash '}% -\def\^{\realbackslash ^}% -\def\~{\realbackslash ~}% -\def\={\realbackslash =}% -\def\b{\realbackslash b}% -\def\c{\realbackslash c}% -\def\d{\realbackslash d}% -\def\u{\realbackslash u}% -\def\v{\realbackslash v}% -\def\H{\realbackslash H}% -\def\dotless##1{\realbackslash dotless {##1}}% -% Take care of the plain tex special European modified letters. -\def\AA{\realbackslash AA}% -\def\AE{\realbackslash AE}% -\def\L{\realbackslash L}% -\def\OE{\realbackslash OE}% -\def\O{\realbackslash O}% -\def\aa{\realbackslash aa}% -\def\ae{\realbackslash ae}% -\def\l{\realbackslash l}% -\def\oe{\realbackslash oe}% -\def\o{\realbackslash o}% -\def\ss{\realbackslash ss}% -% -% Although these internals commands shouldn't show up, sometimes they do. -\def\bf{\realbackslash bf }% -\def\gtr{\realbackslash gtr}% -\def\hat{\realbackslash hat}% -\def\less{\realbackslash less}% -%\def\rm{\realbackslash rm }% -\def\sf{\realbackslash sf}% -\def\sl{\realbackslash sl }% -\def\tclose##1{\realbackslash tclose {##1}}% -\def\tt{\realbackslash tt}% -% -\def\b##1{\realbackslash b {##1}}% -\def\i##1{\realbackslash i {##1}}% -\def\sc##1{\realbackslash sc {##1}}% -\def\t##1{\realbackslash t {##1}}% -\def\r##1{\realbackslash r {##1}}% -% -\def\TeX{\realbackslash TeX}% -\def\acronym##1{\realbackslash acronym {##1}}% -\def\cite##1{\realbackslash cite {##1}}% -\def\code##1{\realbackslash code {##1}}% -\def\command##1{\realbackslash command {##1}}% -\def\dfn##1{\realbackslash dfn {##1}}% -\def\dots{\realbackslash dots }% -\def\emph##1{\realbackslash emph {##1}}% -\def\env##1{\realbackslash env {##1}}% -\def\file##1{\realbackslash file {##1}}% -\def\kbd##1{\realbackslash kbd {##1}}% -\def\key##1{\realbackslash key {##1}}% -\def\math##1{\realbackslash math {##1}}% -\def\option##1{\realbackslash option {##1}}% -\def\samp##1{\realbackslash samp {##1}}% -\def\strong##1{\realbackslash strong {##1}}% -\def\uref##1{\realbackslash uref {##1}}% -\def\url##1{\realbackslash url {##1}}% -\def\var##1{\realbackslash var {##1}}% -\def\w{\realbackslash w }% -% -% These math commands don't seem likely to be used in index entries. -\def\copyright{\realbackslash copyright}% -\def\equiv{\realbackslash equiv}% -\def\error{\realbackslash error}% -\def\expansion{\realbackslash expansion}% -\def\point{\realbackslash point}% -\def\print{\realbackslash print}% -\def\result{\realbackslash result}% -% -% Handle some cases of @value -- where the variable name does not -% contain - or _, and the value does not contain any -% (non-fully-expandable) commands. -\let\value = \expandablevalue -% -\unsepspaces -% Turn off macro expansion -\turnoffmacros -} - -% If an index command is used in an @example environment, any spaces -% therein should become regular spaces in the raw index file, not the -% expansion of \tie (\leavevmode \penalty \@M \ ). -{\obeyspaces - \gdef\unsepspaces{\obeyspaces\let =\space}} - -% \indexnofonts no-ops all font-change commands. -% This is used when outputting the strings to sort the index by. -\def\indexdummyfont#1{#1} -\def\indexdummytex{TeX} -\def\indexdummydots{...} + \def\@{@}% change to @@ when we switch to @ as escape char in index files. + \def\ {\realbackslash\space }% + % Need these in case \tex is in effect and \{ is a \delimiter again. + % But can't use \lbracecmd and \rbracecmd because texindex assumes + % braces and backslashes are used only as delimiters. + \let\{ = \mylbrace + \let\} = \myrbrace + % + % \definedummyword defines \#1 as \realbackslash #1\space, thus + % effectively preventing its expansion. This is used only for control + % words, not control letters, because the \space would be incorrect + % for control characters, but is needed to separate the control word + % from whatever follows. + % + % For control letters, we have \definedummyletter, which omits the + % space. + % + % These can be used both for control words that take an argument and + % those that do not. If it is followed by {arg} in the input, then + % that will dutifully get written to the index (or wherever). + % + \def\definedummyword##1{% + \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space}% + }% + \def\definedummyletter##1{% + \expandafter\def\csname ##1\endcsname{\realbackslash ##1}% + }% + \let\definedummyaccent\definedummyletter + % + % Do the redefinitions. + \commondummies +} -\def\indexnofonts{% -\def\@{@}% -% how to handle braces? -\def\_{\normalunderscore}% -% -\let\,=\indexdummyfont -\let\"=\indexdummyfont -\let\`=\indexdummyfont -\let\'=\indexdummyfont -\let\^=\indexdummyfont -\let\~=\indexdummyfont -\let\==\indexdummyfont -\let\b=\indexdummyfont -\let\c=\indexdummyfont -\let\d=\indexdummyfont -\let\u=\indexdummyfont -\let\v=\indexdummyfont -\let\H=\indexdummyfont -\let\dotless=\indexdummyfont -% Take care of the plain tex special European modified letters. -\def\AA{AA}% -\def\AE{AE}% -\def\L{L}% -\def\OE{OE}% -\def\O{O}% -\def\aa{aa}% -\def\ae{ae}% -\def\l{l}% -\def\oe{oe}% -\def\o{o}% -\def\ss{ss}% -% -% Don't no-op \tt, since it isn't a user-level command -% and is used in the definitions of the active chars like <, >, |, etc. -% Likewise with the other plain tex font commands. -%\let\tt=\indexdummyfont -% -\let\b=\indexdummyfont -\let\i=\indexdummyfont -\let\r=\indexdummyfont -\let\sc=\indexdummyfont -\let\t=\indexdummyfont -% -\let\TeX=\indexdummytex -\let\acronym=\indexdummyfont -\let\cite=\indexdummyfont -\let\code=\indexdummyfont -\let\command=\indexdummyfont -\let\dfn=\indexdummyfont -\let\dots=\indexdummydots -\let\emph=\indexdummyfont -\let\env=\indexdummyfont -\let\file=\indexdummyfont -\let\kbd=\indexdummyfont -\let\key=\indexdummyfont -\let\math=\indexdummyfont -\let\option=\indexdummyfont -\let\samp=\indexdummyfont -\let\strong=\indexdummyfont -\let\uref=\indexdummyfont -\let\url=\indexdummyfont -\let\var=\indexdummyfont -\let\w=\indexdummyfont -} - -% To define \realbackslash, we must make \ not be an escape. -% We must first make another character (@) an escape -% so we do not become unable to do a definition. +% For the aux file, @ is the escape character. So we want to redefine +% everything using @ instead of \realbackslash. When everything uses +% @, this will be simpler. +% +\def\atdummies{% + \def\@{@@}% + \def\ {@ }% + \let\{ = \lbraceatcmd + \let\} = \rbraceatcmd + % + % (See comments in \indexdummies.) + \def\definedummyword##1{% + \expandafter\def\csname ##1\endcsname{@##1\space}% + }% + \def\definedummyletter##1{% + \expandafter\def\csname ##1\endcsname{@##1}% + }% + \let\definedummyaccent\definedummyletter + % + % Do the redefinitions. + \commondummies +} + +% Called from \indexdummies and \atdummies. \definedummyword and +% \definedummyletter must be defined first. +% +\def\commondummies{% + % + \normalturnoffactive + % + \commondummiesnofonts + % + \definedummyletter{_}% + % + % Non-English letters. + \definedummyword{AA}% + \definedummyword{AE}% + \definedummyword{L}% + \definedummyword{OE}% + \definedummyword{O}% + \definedummyword{aa}% + \definedummyword{ae}% + \definedummyword{l}% + \definedummyword{oe}% + \definedummyword{o}% + \definedummyword{ss}% + \definedummyword{exclamdown}% + \definedummyword{questiondown}% + \definedummyword{ordf}% + \definedummyword{ordm}% + % + % Although these internal commands shouldn't show up, sometimes they do. + \definedummyword{bf}% + \definedummyword{gtr}% + \definedummyword{hat}% + \definedummyword{less}% + \definedummyword{sf}% + \definedummyword{sl}% + \definedummyword{tclose}% + \definedummyword{tt}% + % + \definedummyword{LaTeX}% + \definedummyword{TeX}% + % + % Assorted special characters. + \definedummyword{bullet}% + \definedummyword{comma}% + \definedummyword{copyright}% + \definedummyword{registeredsymbol}% + \definedummyword{dots}% + \definedummyword{enddots}% + \definedummyword{equiv}% + \definedummyword{error}% + \definedummyword{expansion}% + \definedummyword{minus}% + \definedummyword{pounds}% + \definedummyword{point}% + \definedummyword{print}% + \definedummyword{result}% + % + % Handle some cases of @value -- where it does not contain any + % (non-fully-expandable) commands. + \makevalueexpandable + % + % Normal spaces, not active ones. + \unsepspaces + % + % No macro expansion. + \turnoffmacros +} + +% \commondummiesnofonts: common to \commondummies and \indexnofonts. +% +% Better have this without active chars. +{ + \catcode`\~=\other + \gdef\commondummiesnofonts{% + % Control letters and accents. + \definedummyletter{!}% + \definedummyaccent{"}% + \definedummyaccent{'}% + \definedummyletter{*}% + \definedummyaccent{,}% + \definedummyletter{.}% + \definedummyletter{/}% + \definedummyletter{:}% + \definedummyaccent{=}% + \definedummyletter{?}% + \definedummyaccent{^}% + \definedummyaccent{`}% + \definedummyaccent{~}% + \definedummyword{u}% + \definedummyword{v}% + \definedummyword{H}% + \definedummyword{dotaccent}% + \definedummyword{ringaccent}% + \definedummyword{tieaccent}% + \definedummyword{ubaraccent}% + \definedummyword{udotaccent}% + \definedummyword{dotless}% + % + % Texinfo font commands. + \definedummyword{b}% + \definedummyword{i}% + \definedummyword{r}% + \definedummyword{sc}% + \definedummyword{t}% + % + % Commands that take arguments. + \definedummyword{acronym}% + \definedummyword{cite}% + \definedummyword{code}% + \definedummyword{command}% + \definedummyword{dfn}% + \definedummyword{emph}% + \definedummyword{env}% + \definedummyword{file}% + \definedummyword{kbd}% + \definedummyword{key}% + \definedummyword{math}% + \definedummyword{option}% + \definedummyword{samp}% + \definedummyword{strong}% + \definedummyword{tie}% + \definedummyword{uref}% + \definedummyword{url}% + \definedummyword{var}% + \definedummyword{verb}% + \definedummyword{w}% + } +} -{\catcode`\@=0 \catcode`\\=\other - @gdef@realbackslash{\}} +% \indexnofonts is used when outputting the strings to sort the index +% by, and when constructing control sequence names. It eliminates all +% control sequences and just writes whatever the best ASCII sort string +% would be for a given command (usually its argument). +% +\def\indexnofonts{% + % Accent commands should become @asis. + \def\definedummyaccent##1{% + \expandafter\let\csname ##1\endcsname\asis + }% + % We can just ignore other control letters. + \def\definedummyletter##1{% + \expandafter\def\csname ##1\endcsname{}% + }% + % Hopefully, all control words can become @asis. + \let\definedummyword\definedummyaccent + % + \commondummiesnofonts + % + % Don't no-op \tt, since it isn't a user-level command + % and is used in the definitions of the active chars like <, >, |, etc. + % Likewise with the other plain tex font commands. + %\let\tt=\asis + % + \def\ { }% + \def\@{@}% + % how to handle braces? + \def\_{\normalunderscore}% + % + % Non-English letters. + \def\AA{AA}% + \def\AE{AE}% + \def\L{L}% + \def\OE{OE}% + \def\O{O}% + \def\aa{aa}% + \def\ae{ae}% + \def\l{l}% + \def\oe{oe}% + \def\o{o}% + \def\ss{ss}% + \def\exclamdown{!}% + \def\questiondown{?}% + \def\ordf{a}% + \def\ordm{o}% + % + \def\LaTeX{LaTeX}% + \def\TeX{TeX}% + % + % Assorted special characters. + % (The following {} will end up in the sort string, but that's ok.) + \def\bullet{bullet}% + \def\comma{,}% + \def\copyright{copyright}% + \def\registeredsymbol{R}% + \def\dots{...}% + \def\enddots{...}% + \def\equiv{==}% + \def\error{error}% + \def\expansion{==>}% + \def\minus{-}% + \def\pounds{pounds}% + \def\point{.}% + \def\print{-|}% + \def\result{=>}% + % + % Don't write macro names. + \emptyusermacros +} \let\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? -% For \ifx comparisons. -\def\emptymacro{\empty} - % Most index entries go through here, but \dosubind is the general case. -% -\def\doind#1#2{\dosubind{#1}{#2}\empty} +% #1 is the index name, #2 is the entry text. +\def\doind#1#2{\dosubind{#1}{#2}{}} % Workhorse for all \fooindexes. % #1 is name of index, #2 is stuff to put there, #3 is subentry -- -% \empty if called from \doind, as we usually are. The main exception -% is with defuns, which call us directly. +% empty if called from \doind, as we usually are (the main exception +% is with most defuns, which call us directly). % \def\dosubind#1#2#3{% + \iflinks + {% + % Store the main index entry text (including the third arg). + \toks0 = {#2}% + % If third arg is present, precede it with a space. + \def\thirdarg{#3}% + \ifx\thirdarg\empty \else + \toks0 = \expandafter{\the\toks0 \space #3}% + \fi + % + \edef\writeto{\csname#1indfile\endcsname}% + % + \ifvmode + \dosubindsanitize + \else + \dosubindwrite + \fi + }% + \fi +} + +% Write the entry in \toks0 to the index file: +% +\def\dosubindwrite{% % Put the index entry in the margin if desired. \ifx\SETmarginindex\relax\else - \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}% + \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}% \fi - {% - \count255=\lastpenalty - {% - \indexdummies % Must do this here, since \bf, etc expand at this stage - \escapechar=`\\ - {% - \let\folio = 0% We will expand all macros now EXCEPT \folio. - \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now - % so it will be output as is; and it will print as backslash. - % - \def\thirdarg{#3}% - % - % If third arg is present, precede it with space in sort key. - \ifx\thirdarg\emptymacro - \let\subentry = \empty - \else - \def\subentry{ #3}% - \fi - % - % First process the index entry with all font commands turned - % off to get the string to sort by. - {\indexnofonts \xdef\indexsorttmp{#2\subentry}}% - % - % Now the real index entry with the fonts. - \toks0 = {#2}% - % - % If the third (subentry) arg is present, add it to the index - % line to write. - \ifx\thirdarg\emptymacro \else - \toks0 = \expandafter{\the\toks0{#3}}% - \fi - % - % Set up the complete index entry, with both the sort key and - % the original text, including any font commands. We write - % three arguments to \entry to the .?? file (four in the - % subentry case), texindex reduces to two when writing the .??s - % sorted result. - \edef\temp{% - \write\csname#1indfile\endcsname{% - \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}% - }% - % - % If a skip is the last thing on the list now, preserve it - % by backing up by \lastskip, doing the \write, then inserting - % the skip again. Otherwise, the whatsit generated by the - % \write will make \lastskip zero. The result is that sequences - % like this: - % @end defun - % @tindex whatever - % @defun ... - % will have extra space inserted, because the \medbreak in the - % start of the @defun won't see the skip inserted by the @end of - % the previous defun. - % - % But don't do any of this if we're not in vertical mode. We - % don't want to do a \vskip and prematurely end a paragraph. - % - % Avoid page breaks due to these extra skips, too. - % - \iflinks - \ifvmode - \skip0 = \lastskip - \ifdim\lastskip = 0pt \else \nobreak\vskip-\lastskip \fi - \fi - % - \temp % do the write - % - % - \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi - \fi - }% - }% - \penalty\count255 + % + % Remember, we are within a group. + \indexdummies % Must do this here, since \bf, etc expand at this stage + \escapechar=`\\ + \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now + % so it will be output as is; and it will print as backslash. + % + % Process the index entry with all font commands turned off, to + % get the string to sort by. + {\indexnofonts + \edef\temp{\the\toks0}% need full expansion + \xdef\indexsorttmp{\temp}% + }% + % + % Set up the complete index entry, with both the sort key and + % the original text, including any font commands. We write + % three arguments to \entry to the .?? file (four in the + % subentry case), texindex reduces to two when writing the .??s + % sorted result. + \edef\temp{% + \write\writeto{% + \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}% }% + \temp +} + +% Take care of unwanted page breaks: +% +% If a skip is the last thing on the list now, preserve it +% by backing up by \lastskip, doing the \write, then inserting +% the skip again. Otherwise, the whatsit generated by the +% \write will make \lastskip zero. The result is that sequences +% like this: +% @end defun +% @tindex whatever +% @defun ... +% will have extra space inserted, because the \medbreak in the +% start of the @defun won't see the skip inserted by the @end of +% the previous defun. +% +% But don't do any of this if we're not in vertical mode. We +% don't want to do a \vskip and prematurely end a paragraph. +% +% Avoid page breaks due to these extra skips, too. +% +% But wait, there is a catch there: +% We'll have to check whether \lastskip is zero skip. \ifdim is not +% sufficient for this purpose, as it ignores stretch and shrink parts +% of the skip. The only way seems to be to check the textual +% representation of the skip. +% +% The following is almost like \def\zeroskipmacro{0.0pt} except that +% the ``p'' and ``t'' characters have catcode \other, not 11 (letter). +% +\edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} +% +% ..., ready, GO: +% +\def\dosubindsanitize{% + % \lastskip and \lastpenalty cannot both be nonzero simultaneously. + \skip0 = \lastskip + \edef\lastskipmacro{\the\lastskip}% + \count255 = \lastpenalty + % + % If \lastskip is nonzero, that means the last item was a + % skip. And since a skip is discardable, that means this + % -\skip0 glue we're inserting is preceded by a + % non-discardable item, therefore it is not a potential + % breakpoint, therefore no \nobreak needed. + \ifx\lastskipmacro\zeroskipmacro + \else + \vskip-\skip0 + \fi + % + \dosubindwrite + % + \ifx\lastskipmacro\zeroskipmacro + % If \lastskip was zero, perhaps the last item was a penalty, and + % perhaps it was >=10000, e.g., a \nobreak. In that case, we want + % to re-insert the same penalty (values >10000 are used for various + % signals); since we just inserted a non-discardable item, any + % following glue (such as a \parskip) would be a breakpoint. For example: + % + % @deffn deffn-whatever + % @vindex index-whatever + % Description. + % would allow a break between the index-whatever whatsit + % and the "Description." paragraph. + \ifnum\count255>9999 \penalty\count255 \fi + \else + % On the other hand, if we had a nonzero \lastskip, + % this make-up glue would be preceded by a non-discardable item + % (the whatsit from the \write), so we must insert a \nobreak. + \nobreak\vskip\skip0 + \fi } % The index entry written in the file actually looks like @@ -3099,13 +3479,12 @@ % @printindex causes a particular index (the ??s file) to get printed. % It does not print any chapter heading (usually an @unnumbered). % -\def\printindex{\parsearg\doprintindex} -\def\doprintindex#1{\begingroup +\parseargdef\printindex{\begingroup \dobreak \chapheadingskip{10000}% % \smallfonts \rm \tolerance = 9500 - \indexbreaks + \everypar = {}% don't want the \kern\-parindent from indentation suppression. % % See if the index file exists and is nonempty. % Change catcode of @ here so that if the index file contains @@ -3132,7 +3511,7 @@ % Index files are almost Texinfo source, but we use \ as the escape % character. It would be better to use @, but that's too big a change % to make right now. - \def\indexbackslash{\rawbackslashxx}% + \def\indexbackslash{\backslashcurfont}% \catcode`\\ = 0 \escapechar = `\\ \begindoublecolumns @@ -3154,7 +3533,10 @@ \removelastskip % % We like breaks before the index initials, so insert a bonus. - \penalty -300 + \nobreak + \vskip 0pt plus 3\baselineskip + \penalty 0 + \vskip 0pt plus -3\baselineskip % % Typeset the initial. Making this add up to a whole number of % baselineskips increases the chance of the dots lining up from column @@ -3164,80 +3546,100 @@ % No shrink because it confuses \balancecolumns. \vskip 1.67\baselineskip plus .5\baselineskip \leftline{\secbf #1}% - \vskip .33\baselineskip plus .1\baselineskip - % % Do our best not to break after the initial. \nobreak + \vskip .33\baselineskip plus .1\baselineskip }} -% This typesets a paragraph consisting of #1, dot leaders, and then #2 -% flush to the right margin. It is used for index and table of contents -% entries. The paragraph is indented by \leftskip. -% -\def\entry#1#2{\begingroup - % - % Start a new paragraph if necessary, so our assignments below can't - % affect previous text. - \par - % - % Do not fill out the last line with white space. - \parfillskip = 0in - % - % No extra space above this paragraph. - \parskip = 0in - % - % Do not prefer a separate line ending with a hyphen to fewer lines. - \finalhyphendemerits = 0 - % - % \hangindent is only relevant when the entry text and page number - % don't both fit on one line. In that case, bob suggests starting the - % dots pretty far over on the line. Unfortunately, a large - % indentation looks wrong when the entry text itself is broken across - % lines. So we use a small indentation and put up with long leaders. - % - % \hangafter is reset to 1 (which is the value we want) at the start - % of each paragraph, so we need not do anything with that. - \hangindent = 2em - % - % When the entry text needs to be broken, just fill out the first line - % with blank space. - \rightskip = 0pt plus1fil - % - % A bit of stretch before each entry for the benefit of balancing columns. - \vskip 0pt plus1pt - % - % Start a ``paragraph'' for the index entry so the line breaking - % parameters we've set above will have an effect. - \noindent - % - % Insert the text of the index entry. TeX will do line-breaking on it. - #1% - % The following is kludged to not output a line of dots in the index if - % there are no page numbers. The next person who breaks this will be - % cursed by a Unix daemon. - \def\tempa{{\rm }}% - \def\tempb{#2}% - \edef\tempc{\tempa}% - \edef\tempd{\tempb}% - \ifx\tempc\tempd\ \else% - % - % If we must, put the page number on a line of its own, and fill out - % this line with blank space. (The \hfil is overwhelmed with the - % fill leaders glue in \indexdotfill if the page number does fit.) - \hfil\penalty50 - \null\nobreak\indexdotfill % Have leaders before the page number. - % - % The `\ ' here is removed by the implicit \unskip that TeX does as - % part of (the primitive) \par. Without it, a spurious underfull - % \hbox ensues. - \ifpdf - \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph. +% \entry typesets a paragraph consisting of the text (#1), dot leaders, and +% then page number (#2) flushed to the right margin. It is used for index +% and table of contents entries. The paragraph is indented by \leftskip. +% +% A straightforward implementation would start like this: +% \def\entry#1#2{... +% But this frozes the catcodes in the argument, and can cause problems to +% @code, which sets - active. This problem was fixed by a kludge--- +% ``-'' was active throughout whole index, but this isn't really right. +% +% The right solution is to prevent \entry from swallowing the whole text. +% --kasal, 21nov03 +\def\entry{% + \begingroup + % + % Start a new paragraph if necessary, so our assignments below can't + % affect previous text. + \par + % + % Do not fill out the last line with white space. + \parfillskip = 0in + % + % No extra space above this paragraph. + \parskip = 0in + % + % Do not prefer a separate line ending with a hyphen to fewer lines. + \finalhyphendemerits = 0 + % + % \hangindent is only relevant when the entry text and page number + % don't both fit on one line. In that case, bob suggests starting the + % dots pretty far over on the line. Unfortunately, a large + % indentation looks wrong when the entry text itself is broken across + % lines. So we use a small indentation and put up with long leaders. + % + % \hangafter is reset to 1 (which is the value we want) at the start + % of each paragraph, so we need not do anything with that. + \hangindent = 2em + % + % When the entry text needs to be broken, just fill out the first line + % with blank space. + \rightskip = 0pt plus1fil + % + % A bit of stretch before each entry for the benefit of balancing + % columns. + \vskip 0pt plus1pt + % + % Swallow the left brace of the text (first parameter): + \afterassignment\doentry + \let\temp = +} +\def\doentry{% + \bgroup % Instead of the swallowed brace. + \noindent + \aftergroup\finishentry + % And now comes the text of the entry. +} +\def\finishentry#1{% + % #1 is the page number. + % + % The following is kludged to not output a line of dots in the index if + % there are no page numbers. The next person who breaks this will be + % cursed by a Unix daemon. + \def\tempa{{\rm }}% + \def\tempb{#1}% + \edef\tempc{\tempa}% + \edef\tempd{\tempb}% + \ifx\tempc\tempd + \ % \else - \ #2% The page number ends the paragraph. + % + % If we must, put the page number on a line of its own, and fill out + % this line with blank space. (The \hfil is overwhelmed with the + % fill leaders glue in \indexdotfill if the page number does fit.) + \hfil\penalty50 + \null\nobreak\indexdotfill % Have leaders before the page number. + % + % The `\ ' here is removed by the implicit \unskip that TeX does as + % part of (the primitive) \par. Without it, a spurious underfull + % \hbox ensues. + \ifpdf + \pdfgettoks#1.% + \ \the\toksA + \else + \ #1% + \fi \fi - \fi% - \par -\endgroup} + \par + \endgroup +} % Like \dotfill except takes at least 1 em. \def\indexdotfill{\cleaders @@ -3348,7 +3750,7 @@ \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}% } -% +% % All done with double columns. \def\enddoublecolumns{% \output = {% @@ -3406,6 +3808,12 @@ \message{sectioning,} % Chapters, sections, etc. +% \unnumberedno is an oxymoron, of course. But we count the unnumbered +% sections so that we can refer to them unambiguously in the pdf +% outlines by their "section number". We avoid collisions with chapter +% numbers by starting them at 10000. (If a document ever has 10000 +% chapters, we're in trouble anyway, I'm sure.) +\newcount\unnumberedno \unnumberedno = 10000 \newcount\chapno \newcount\secno \secno=0 \newcount\subsecno \subsecno=0 @@ -3413,9 +3821,12 @@ % This counter is funny since it counts through charcodes of letters A, B, ... \newcount\appendixno \appendixno = `\@ +% % \def\appendixletter{\char\the\appendixno} -% We do the following for the sake of pdftex, which needs the actual +% We do the following ugly conditional instead of the above simple +% construct for the sake of pdftex, which needs the actual % letter in the expansion, not just typeset. +% \def\appendixletter{% \ifnum\appendixno=`A A% \else\ifnum\appendixno=`B B% @@ -3453,11 +3864,12 @@ % Each @chapter defines this as the name of the chapter. % page headings and footings can use it. @section does likewise. +% However, they are not reliable, because we don't use marks. \def\thischapter{} \def\thissection{} \newcount\absseclevel % used to calculate proper heading level -\newcount\secbase\secbase=0 % @raise/lowersections modify this count +\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count % @raisesections: treat @section as chapter, @subsection as section, etc. \def\raisesections{\global\advance\secbase by -1} @@ -3467,288 +3879,246 @@ \def\lowersections{\global\advance\secbase by 1} \let\down=\lowersections % original BFox name -% Choose a numbered-heading macro -% #1 is heading level if unmodified by @raisesections or @lowersections -% #2 is text for heading -\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \chapterzzz{#2} -\or - \seczzz{#2} -\or - \numberedsubseczzz{#2} -\or - \numberedsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \chapterzzz{#2} +% we only have subsub. +\chardef\maxseclevel = 3 +% +% A numbered section within an unnumbered changes to unnumbered too. +% To achive this, remember the "biggest" unnum. sec. we are currently in: +\chardef\unmlevel = \maxseclevel +% +% Trace whether the current chapter is an appendix or not: +% \chapheadtype is "N" or "A", unnumbered chapters are ignored. +\def\chapheadtype{N} + +% Choose a heading macro +% #1 is heading type +% #2 is heading level +% #3 is text for heading +\def\genhead#1#2#3{% + % Compute the abs. sec. level: + \absseclevel=#2 + \advance\absseclevel by \secbase + % Make sure \absseclevel doesn't fall outside the range: + \ifnum \absseclevel < 0 + \absseclevel = 0 \else - \numberedsubsubseczzz{#2} + \ifnum \absseclevel > 3 + \absseclevel = 3 + \fi \fi -\fi -} - -% like \numhead, but chooses appendix heading levels -\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \appendixzzz{#2} -\or - \appendixsectionzzz{#2} -\or - \appendixsubseczzz{#2} -\or - \appendixsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \appendixzzz{#2} + % The heading type: + \def\headtype{#1}% + \if \headtype U% + \ifnum \absseclevel < \unmlevel + \chardef\unmlevel = \absseclevel + \fi \else - \appendixsubsubseczzz{#2} + % Check for appendix sections: + \ifnum \absseclevel = 0 + \edef\chapheadtype{\headtype}% + \else + \if \headtype A\if \chapheadtype N% + \errmessage{@appendix... within a non-appendix chapter}% + \fi\fi + \fi + % Check for numbered within unnumbered: + \ifnum \absseclevel > \unmlevel + \def\headtype{U}% + \else + \chardef\unmlevel = 3 + \fi \fi -\fi -} - -% like \numhead, but chooses numberless heading levels -\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \unnumberedzzz{#2} -\or - \unnumberedseczzz{#2} -\or - \unnumberedsubseczzz{#2} -\or - \unnumberedsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \unnumberedzzz{#2} + % Now print the heading: + \if \headtype U% + \ifcase\absseclevel + \unnumberedzzz{#3}% + \or \unnumberedseczzz{#3}% + \or \unnumberedsubseczzz{#3}% + \or \unnumberedsubsubseczzz{#3}% + \fi \else - \unnumberedsubsubseczzz{#2} + \if \headtype A% + \ifcase\absseclevel + \appendixzzz{#3}% + \or \appendixsectionzzz{#3}% + \or \appendixsubseczzz{#3}% + \or \appendixsubsubseczzz{#3}% + \fi + \else + \ifcase\absseclevel + \chapterzzz{#3}% + \or \seczzz{#3}% + \or \numberedsubseczzz{#3}% + \or \numberedsubsubseczzz{#3}% + \fi + \fi \fi -\fi + \suppressfirstparagraphindent } -% @chapter, @appendix, @unnumbered. -\def\thischaptername{No Chapter Title} -\outer\def\chapter{\parsearg\chapteryyy} -\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz -\def\chapterzzz #1{% -\secno=0 \subsecno=0 \subsubsecno=0 -\global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}% -\chapmacro {#1}{\the\chapno}% -\gdef\thissection{#1}% -\gdef\thischaptername{#1}% -% We don't substitute the actual chapter name into \thischapter -% because we don't want its macros evaluated now. -\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}% - {\the\chapno}}}% -\temp -\donoderef -\global\let\section = \numberedsec -\global\let\subsection = \numberedsubsec -\global\let\subsubsection = \numberedsubsubsec -} - -\outer\def\appendix{\parsearg\appendixyyy} -\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz -\def\appendixzzz #1{% -\secno=0 \subsecno=0 \subsubsecno=0 -\global\advance \appendixno by 1 -\message{\putwordAppendix\space \appendixletter}% -\chapmacro {#1}{\putwordAppendix{} \appendixletter}% -\gdef\thissection{#1}% -\gdef\thischaptername{#1}% -\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash appendixentry{\the\toks0}% - {\appendixletter}}}% -\temp -\appendixnoderef -\global\let\section = \appendixsec -\global\let\subsection = \appendixsubsec -\global\let\subsubsection = \appendixsubsubsec +% an interface: +\def\numhead{\genhead N} +\def\apphead{\genhead A} +\def\unnmhead{\genhead U} + +% @chapter, @appendix, @unnumbered. Increment top-level counter, reset +% all lower-level sectioning counters to zero. +% +% Also set \chaplevelprefix, which we prepend to @float sequence numbers +% (e.g., figures), q.v. By default (before any chapter), that is empty. +\let\chaplevelprefix = \empty +% +\outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz +\def\chapterzzz#1{% + % section resetting is \global in case the chapter is in a group, such + % as an @include file. + \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 + \global\advance\chapno by 1 + % + % Used for \float. + \gdef\chaplevelprefix{\the\chapno.}% + \resetallfloatnos + % + \message{\putwordChapter\space \the\chapno}% + % + % Write the actual heading. + \chapmacro{#1}{Ynumbered}{\the\chapno}% + % + % So @section and the like are numbered underneath this chapter. + \global\let\section = \numberedsec + \global\let\subsection = \numberedsubsec + \global\let\subsubsection = \numberedsubsubsec } -% @centerchap is like @unnumbered, but the heading is centered. -\outer\def\centerchap{\parsearg\centerchapyyy} -\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}} +\outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz +\def\appendixzzz#1{% + \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 + \global\advance\appendixno by 1 + \gdef\chaplevelprefix{\appendixletter.}% + \resetallfloatnos + % + \def\appendixnum{\putwordAppendix\space \appendixletter}% + \message{\appendixnum}% + % + \chapmacro{#1}{Yappendix}{\appendixletter}% + % + \global\let\section = \appendixsec + \global\let\subsection = \appendixsubsec + \global\let\subsubsection = \appendixsubsubsec +} -% @top is like @unnumbered. -\outer\def\top{\parsearg\unnumberedyyy} +\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz +\def\unnumberedzzz#1{% + \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 + \global\advance\unnumberedno by 1 + % + % Since an unnumbered has no number, no prefix for figures. + \global\let\chaplevelprefix = \empty + \resetallfloatnos + % + % This used to be simply \message{#1}, but TeX fully expands the + % argument to \message. Therefore, if #1 contained @-commands, TeX + % expanded them. For example, in `@unnumbered The @cite{Book}', TeX + % expanded @cite (which turns out to cause errors because \cite is meant + % to be executed, not expanded). + % + % Anyway, we don't want the fully-expanded definition of @cite to appear + % as a result of the \message, we just want `@cite' itself. We use + % \the to achieve this: TeX expands \the only once, + % simply yielding the contents of . (We also do this for + % the toc entries.) + \toks0 = {#1}% + \message{(\the\toks0)}% + % + \chapmacro{#1}{Ynothing}{\the\unnumberedno}% + % + \global\let\section = \unnumberedsec + \global\let\subsection = \unnumberedsubsec + \global\let\subsubsection = \unnumberedsubsubsec +} -\outer\def\unnumbered{\parsearg\unnumberedyyy} -\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz -\def\unnumberedzzz #1{% -\secno=0 \subsecno=0 \subsubsecno=0 -% -% This used to be simply \message{#1}, but TeX fully expands the -% argument to \message. Therefore, if #1 contained @-commands, TeX -% expanded them. For example, in `@unnumbered The @cite{Book}', TeX -% expanded @cite (which turns out to cause errors because \cite is meant -% to be executed, not expanded). -% -% Anyway, we don't want the fully-expanded definition of @cite to appear -% as a result of the \message, we just want `@cite' itself. We use -% \the to achieve this: TeX expands \the only once, -% simply yielding the contents of . (We also do this for -% the toc entries.) -\toks0 = {#1}\message{(\the\toks0)}% -% -\unnumbchapmacro {#1}% -\gdef\thischapter{#1}\gdef\thissection{#1}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash unnumbchapentry{\the\toks0}}}% -\temp -\unnumbnoderef -\global\let\section = \unnumberedsec -\global\let\subsection = \unnumberedsubsec -\global\let\subsubsection = \unnumberedsubsubsec +% @centerchap is like @unnumbered, but the heading is centered. +\outer\parseargdef\centerchap{% + % Well, we could do the following in a group, but that would break + % an assumption that \chapmacro is called at the outermost level. + % Thus we are safer this way: --kasal, 24feb04 + \let\centerparametersmaybe = \centerparameters + \unnmhead0{#1}% + \let\centerparametersmaybe = \relax } +% @top is like @unnumbered. +\let\top\unnumbered + % Sections. -\outer\def\numberedsec{\parsearg\secyyy} -\def\secyyy #1{\numhead1{#1}} % normally calls seczzz -\def\seczzz #1{% -\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % -\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}% - {\the\chapno}{\the\secno}}}% -\temp -\donoderef -\nobreak -} - -\outer\def\appendixsection{\parsearg\appendixsecyyy} -\outer\def\appendixsec{\parsearg\appendixsecyyy} -\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz -\def\appendixsectionzzz #1{% -\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % -\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}% - {\appendixletter}{\the\secno}}}% -\temp -\appendixnoderef -\nobreak -} - -\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy} -\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz -\def\unnumberedseczzz #1{% -\plainsecheading {#1}\gdef\thissection{#1}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry% - {\the\toks0}{\the\chapno}}}% -\temp -\unnumbnoderef -\nobreak +\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz +\def\seczzz#1{% + \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 + \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}% +} + +\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz +\def\appendixsectionzzz#1{% + \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 + \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}% +} +\let\appendixsec\appendixsection + +\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz +\def\unnumberedseczzz#1{% + \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 + \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}% } % Subsections. -\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy} -\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz -\def\numberedsubseczzz #1{% -\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % -\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}% - {\the\chapno}{\the\secno}{\the\subsecno}}}% -\temp -\donoderef -\nobreak -} - -\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy} -\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz -\def\appendixsubseczzz #1{% -\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % -\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}% - {\appendixletter}{\the\secno}{\the\subsecno}}}% -\temp -\appendixnoderef -\nobreak -} - -\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy} -\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz -\def\unnumberedsubseczzz #1{% -\plainsubsecheading {#1}\gdef\thissection{#1}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry% - {\the\toks0}{\the\chapno}{\the\secno}}}% -\temp -\unnumbnoderef -\nobreak +\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz +\def\numberedsubseczzz#1{% + \global\subsubsecno=0 \global\advance\subsecno by 1 + \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}% +} + +\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz +\def\appendixsubseczzz#1{% + \global\subsubsecno=0 \global\advance\subsecno by 1 + \sectionheading{#1}{subsec}{Yappendix}% + {\appendixletter.\the\secno.\the\subsecno}% +} + +\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz +\def\unnumberedsubseczzz#1{% + \global\subsubsecno=0 \global\advance\subsecno by 1 + \sectionheading{#1}{subsec}{Ynothing}% + {\the\unnumberedno.\the\secno.\the\subsecno}% } % Subsubsections. -\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy} -\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz -\def\numberedsubsubseczzz #1{% -\gdef\thissection{#1}\global\advance \subsubsecno by 1 % -\subsubsecheading {#1} - {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}% - {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}% -\temp -\donoderef -\nobreak -} - -\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy} -\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz -\def\appendixsubsubseczzz #1{% -\gdef\thissection{#1}\global\advance \subsubsecno by 1 % -\subsubsecheading {#1} - {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}% - {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}% -\temp -\appendixnoderef -\nobreak -} - -\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy} -\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz -\def\unnumberedsubsubseczzz #1{% -\plainsubsubsecheading {#1}\gdef\thissection{#1}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry% - {\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}}}% -\temp -\unnumbnoderef -\nobreak -} - -% These are variants which are not "outer", so they can appear in @ifinfo. -% Actually, they should now be obsolete; ordinary section commands should work. -\def\infotop{\parsearg\unnumberedzzz} -\def\infounnumbered{\parsearg\unnumberedzzz} -\def\infounnumberedsec{\parsearg\unnumberedseczzz} -\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz} -\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz} - -\def\infoappendix{\parsearg\appendixzzz} -\def\infoappendixsec{\parsearg\appendixseczzz} -\def\infoappendixsubsec{\parsearg\appendixsubseczzz} -\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz} - -\def\infochapter{\parsearg\chapterzzz} -\def\infosection{\parsearg\sectionzzz} -\def\infosubsection{\parsearg\subsectionzzz} -\def\infosubsubsection{\parsearg\subsubsectionzzz} +\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz +\def\numberedsubsubseczzz#1{% + \global\advance\subsubsecno by 1 + \sectionheading{#1}{subsubsec}{Ynumbered}% + {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}% +} + +\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz +\def\appendixsubsubseczzz#1{% + \global\advance\subsubsecno by 1 + \sectionheading{#1}{subsubsec}{Yappendix}% + {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}% +} + +\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz +\def\unnumberedsubsubseczzz#1{% + \global\advance\subsubsecno by 1 + \sectionheading{#1}{subsubsec}{Ynothing}% + {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}% +} % These macros control what the section commands do, according % to what kind of chapter we are in (ordinary, appendix, or unnumbered). % Define them by default for a numbered chapter. -\global\let\section = \numberedsec -\global\let\subsection = \numberedsubsec -\global\let\subsubsection = \numberedsubsubsec +\let\section = \numberedsec +\let\subsection = \numberedsubsec +\let\subsubsection = \numberedsubsubsec % Define @majorheading, @heading and @subheading @@ -3761,23 +4131,27 @@ % if justification is not attempted. Hence \raggedright. -\def\majorheading{\parsearg\majorheadingzzz} -\def\majorheadingzzz #1{% -{\advance\chapheadingskip by 10pt \chapbreak }% -{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 200} - -\def\chapheading{\parsearg\chapheadingzzz} -\def\chapheadingzzz #1{\chapbreak % -{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 200} +\def\majorheading{% + {\advance\chapheadingskip by 10pt \chapbreak }% + \parsearg\chapheadingzzz +} + +\def\chapheading{\chapbreak \parsearg\chapheadingzzz} +\def\chapheadingzzz#1{% + {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 + \parindent=0pt\raggedright + \rm #1\hfill}}% + \bigskip \par\penalty 200\relax + \suppressfirstparagraphindent +} % @heading, @subheading, @subsubheading. -\def\heading{\parsearg\plainsecheading} -\def\subheading{\parsearg\plainsubsecheading} -\def\subsubheading{\parsearg\plainsubsubsecheading} +\parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{} + \suppressfirstparagraphindent} +\parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{} + \suppressfirstparagraphindent} +\parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{} + \suppressfirstparagraphindent} % These macros generate a chapter, section, etc. heading only % (including whitespace, linebreaking, etc. around it), @@ -3786,8 +4160,6 @@ %%% Args are the skip and penalty (usually negative) \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} -\def\setchapterstyle #1 {\csname CHAPF#1\endcsname} - %%% Define plain chapter starts, and page on/off switching for it % Parameter controlling skip before chapter headings (if needed) @@ -3810,7 +4182,7 @@ \global\let\pagealignmacro=\chappager \global\def\HEADINGSon{\HEADINGSsingle}} -\def\CHAPPAGodd{ +\def\CHAPPAGodd{% \global\let\contentsalignmacro = \chapoddpage \global\let\pchapsepmacro=\chapoddpage \global\let\pagealignmacro=\chapoddpage @@ -3818,107 +4190,193 @@ \CHAPPAGon -\def\CHAPFplain{ -\global\let\chapmacro=\chfplain -\global\let\unnumbchapmacro=\unnchfplain -\global\let\centerchapmacro=\centerchfplain} - -% Plain chapter opening. -% #1 is the text, #2 the chapter number or empty if unnumbered. -\def\chfplain#1#2{% +% Chapter opening. +% +% #1 is the text, #2 is the section type (Ynumbered, Ynothing, +% Yappendix, Yomitfromtoc), #3 the chapter number. +% +% To test against our argument. +\def\Ynothingkeyword{Ynothing} +\def\Yomitfromtockeyword{Yomitfromtoc} +\def\Yappendixkeyword{Yappendix} +% +\def\chapmacro#1#2#3{% \pchapsepmacro {% \chapfonts \rm - \def\chapnum{#2}% - \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}% + % + % Have to define \thissection before calling \donoderef, because the + % xref code eventually uses it. On the other hand, it has to be called + % after \pchapsepmacro, or the headline will change too soon. + \gdef\thissection{#1}% + \gdef\thischaptername{#1}% + % + % Only insert the separating space if we have a chapter/appendix + % number, and don't print the unnumbered ``number''. + \def\temptype{#2}% + \ifx\temptype\Ynothingkeyword + \setbox0 = \hbox{}% + \def\toctype{unnchap}% + \def\thischapter{#1}% + \else\ifx\temptype\Yomitfromtockeyword + \setbox0 = \hbox{}% contents like unnumbered, but no toc entry + \def\toctype{omit}% + \xdef\thischapter{}% + \else\ifx\temptype\Yappendixkeyword + \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% + \def\toctype{app}% + % We don't substitute the actual chapter name into \thischapter + % because we don't want its macros evaluated now. And we don't + % use \thissection because that changes with each section. + % + \xdef\thischapter{\putwordAppendix{} \appendixletter: + \noexpand\thischaptername}% + \else + \setbox0 = \hbox{#3\enspace}% + \def\toctype{numchap}% + \xdef\thischapter{\putwordChapter{} \the\chapno: + \noexpand\thischaptername}% + \fi\fi\fi + % + % Write the toc entry for this chapter. Must come before the + % \donoderef, because we include the current node name in the toc + % entry, and \donoderef resets it to empty. + \writetocentry{\toctype}{#1}{#3}% + % + % For pdftex, we have to write out the node definition (aka, make + % the pdfdest) after any page break, but before the actual text has + % been typeset. If the destination for the pdf outline is after the + % text, then jumping from the outline may wind up with the text not + % being visible, for instance under high magnification. + \donoderef{#2}% + % + % Typeset the actual heading. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright - \hangindent = \wd0 \centerparametersmaybe + \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% }% \nobreak\bigskip % no page break after a chapter title \nobreak } -% Plain opening for unnumbered. -\def\unnchfplain#1{\chfplain{#1}{}} - % @centerchap -- centered and unnumbered. \let\centerparametersmaybe = \relax -\def\centerchfplain#1{{% - \def\centerparametersmaybe{% - \advance\rightskip by 3\rightskip - \leftskip = \rightskip - \parfillskip = 0pt - }% - \chfplain{#1}{}% -}} +\def\centerparameters{% + \advance\rightskip by 3\rightskip + \leftskip = \rightskip + \parfillskip = 0pt +} -\CHAPFplain % The default +% I don't think this chapter style is supported any more, so I'm not +% updating it with the new noderef stuff. We'll see. --karl, 11aug03. +% +\def\setchapterstyle #1 {\csname CHAPF#1\endcsname} +% \def\unnchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt\raggedright \rm #1\hfill}}\bigskip \par\nobreak } - \def\chfopen #1#2{\chapoddpage {\chapfonts \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% \par\penalty 5000 % } - \def\centerchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt \hfill {\rm #1}\hfill}}\bigskip \par\nobreak } +\def\CHAPFopen{% + \global\let\chapmacro=\chfopen + \global\let\centerchapmacro=\centerchfopen} -\def\CHAPFopen{ -\global\let\chapmacro=\chfopen -\global\let\unnumbchapmacro=\unnchfopen -\global\let\centerchapmacro=\centerchfopen} - -% Section titles. +% Section titles. These macros combine the section number parts and +% call the generic \sectionheading to do the printing. +% \newskip\secheadingskip -\def\secheadingbreak{\dobreak \secheadingskip {-1000}} -\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}} -\def\plainsecheading#1{\sectionheading{sec}{}{#1}} +\def\secheadingbreak{\dobreak \secheadingskip{-1000}} % Subsection titles. -\newskip \subsecheadingskip -\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}} -\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}} -\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}} +\newskip\subsecheadingskip +\def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}} % Subsubsection titles. -\let\subsubsecheadingskip = \subsecheadingskip -\let\subsubsecheadingbreak = \subsecheadingbreak -\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}} -\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}} +\def\subsubsecheadingskip{\subsecheadingskip} +\def\subsubsecheadingbreak{\subsecheadingbreak} -% Print any size section title. +% Print any size, any type, section title. % -% #1 is the section type (sec/subsec/subsubsec), #2 is the section -% number (maybe empty), #3 the text. -\def\sectionheading#1#2#3{% - {% - \expandafter\advance\csname #1headingskip\endcsname by \parskip - \csname #1headingbreak\endcsname - }% +% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is +% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the +% section number. +% +\def\sectionheading#1#2#3#4{% {% % Switch to the right set of fonts. - \csname #1fonts\endcsname \rm + \csname #2fonts\endcsname \rm + % + % Insert space above the heading. + \csname #2headingbreak\endcsname % - % Only insert the separating space if we have a section number. - \def\secnum{#2}% - \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}% + % Only insert the space after the number if we have a section number. + \def\sectionlevel{#2}% + \def\temptype{#3}% % + \ifx\temptype\Ynothingkeyword + \setbox0 = \hbox{}% + \def\toctype{unn}% + \gdef\thissection{#1}% + \else\ifx\temptype\Yomitfromtockeyword + % for @headings -- no section number, don't include in toc, + % and don't redefine \thissection. + \setbox0 = \hbox{}% + \def\toctype{omit}% + \let\sectionlevel=\empty + \else\ifx\temptype\Yappendixkeyword + \setbox0 = \hbox{#4\enspace}% + \def\toctype{app}% + \gdef\thissection{#1}% + \else + \setbox0 = \hbox{#4\enspace}% + \def\toctype{num}% + \gdef\thissection{#1}% + \fi\fi\fi + % + % Write the toc entry (before \donoderef). See comments in \chfplain. + \writetocentry{\toctype\sectionlevel}{#1}{#4}% + % + % Write the node reference (= pdf destination for pdftex). + % Again, see comments in \chfplain. + \donoderef{#3}% + % + % Output the actual section heading. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright - \hangindent = \wd0 % zero if no section number - \unhbox0 #3}% + \hangindent=\wd0 % zero if no section number + \unhbox0 #1}% }% - \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak + % Add extra space after the heading -- half of whatever came above it. + % Don't allow stretch, though. + \kern .5 \csname #2headingskip\endcsname + % + % Do not let the kern be a potential breakpoint, as it would be if it + % was followed by glue. + \nobreak + % + % We'll almost certainly start a paragraph next, so don't let that + % glue accumulate. (Not a breakpoint because it's preceded by a + % discardable item.) + \vskip-\parskip + % + % This is purely so the last item on the list is a known \penalty > + % 10000. This is so \startdefun can avoid allowing breakpoints after + % section headings. Otherwise, it would insert a valid breakpoint between: + % + % @section sec-whatever + % @deffn def-whatever + \penalty 10001 } @@ -3927,112 +4385,152 @@ \newwrite\tocfile % Write an entry to the toc file, opening it if necessary. -% Called from @chapter, etc. We supply {\folio} at the end of the -% argument, which will end up as the last argument to the \...entry macro. +% Called from @chapter, etc. % -% We open the .toc file here instead of at @setfilename or any other -% fixed time so that @contents can be put in the document anywhere. +% Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno} +% We append the current node name (if any) and page number as additional +% arguments for the \{chap,sec,...}entry macros which will eventually +% read this. The node name is used in the pdf outlines as the +% destination to jump to. +% +% We open the .toc file for writing here instead of at @setfilename (or +% any other fixed time) so that @contents can be anywhere in the document. +% But if #1 is `omit', then we don't do anything. This is used for the +% table of contents chapter openings themselves. % \newif\iftocfileopened -\def\writetocentry#1{% - \iftocfileopened\else - \immediate\openout\tocfile = \jobname.toc - \global\tocfileopenedtrue - \fi - \iflinks \write\tocfile{#1{\folio}}\fi - % - % Tell \shipout to create a page destination if we're doing pdf, which - % will be the target of the links in the table of contents. We can't - % just do it on every page because the title pages are numbered 1 and - % 2 (the page numbers aren't printed), and so are the first two pages - % of the document. Thus, we'd have two destinations named `1', and - % two named `2'. - \ifpdf \pdfmakepagedesttrue \fi +\def\omitkeyword{omit}% +% +\def\writetocentry#1#2#3{% + \edef\writetoctype{#1}% + \ifx\writetoctype\omitkeyword \else + \iftocfileopened\else + \immediate\openout\tocfile = \jobname.toc + \global\tocfileopenedtrue + \fi + % + \iflinks + \toks0 = {#2}% + \toks2 = \expandafter{\lastnode}% + \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}{#3}% + {\the\toks2}{\noexpand\folio}}}% + \temp + \fi + \fi + % + % Tell \shipout to create a pdf destination on each page, if we're + % writing pdf. These are used in the table of contents. We can't + % just write one on every page because the title pages are numbered + % 1 and 2 (the page numbers aren't printed), and so are the first + % two pages of the document. Thus, we'd have two destinations named + % `1', and two named `2'. + \ifpdf \global\pdfmakepagedesttrue \fi } \newskip\contentsrightmargin \contentsrightmargin=1in \newcount\savepageno \newcount\lastnegativepageno \lastnegativepageno = -1 -% Finish up the main text and prepare to read what we've written -% to \tocfile. +% Prepare to read what we've written to \tocfile. % \def\startcontents#1{% - % If @setchapternewpage on, and @headings double, the contents should - % start on an odd page, unlike chapters. Thus, we maintain - % \contentsalignmacro in parallel with \pagealignmacro. - % From: Torbjorn Granlund - \contentsalignmacro - \immediate\closeout\tocfile - % - % Don't need to put `Contents' or `Short Contents' in the headline. - % It is abundantly clear what they are. - \unnumbchapmacro{#1}\def\thischapter{}% - \savepageno = \pageno - \begingroup % Set up to handle contents files properly. - \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 - % We can't do this, because then an actual ^ in a section - % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97. - %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi - \raggedbottom % Worry more about breakpoints than the bottom. - \advance\hsize by -\contentsrightmargin % Don't use the full line length. - % - % Roman numerals for page numbers. - \ifnum \pageno>0 \pageno = \lastnegativepageno \fi + % If @setchapternewpage on, and @headings double, the contents should + % start on an odd page, unlike chapters. Thus, we maintain + % \contentsalignmacro in parallel with \pagealignmacro. + % From: Torbjorn Granlund + \contentsalignmacro + \immediate\closeout\tocfile + % + % Don't need to put `Contents' or `Short Contents' in the headline. + % It is abundantly clear what they are. + \def\thischapter{}% + \chapmacro{#1}{Yomitfromtoc}{}% + % + \savepageno = \pageno + \begingroup % Set up to handle contents files properly. + \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 + % We can't do this, because then an actual ^ in a section + % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97. + %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi + \raggedbottom % Worry more about breakpoints than the bottom. + \advance\hsize by -\contentsrightmargin % Don't use the full line length. + % + % Roman numerals for page numbers. + \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi } % Normal (long) toc. \def\contents{% - \startcontents{\putwordTOC}% - \openin 1 \jobname.toc - \ifeof 1 \else - \closein 1 - \input \jobname.toc - \fi - \vfill \eject - \contentsalignmacro % in case @setchapternewpage odd is in effect - \pdfmakeoutlines - \endgroup - \lastnegativepageno = \pageno - \pageno = \savepageno + \startcontents{\putwordTOC}% + \openin 1 \jobname.toc + \ifeof 1 \else + \input \jobname.toc + \fi + \vfill \eject + \contentsalignmacro % in case @setchapternewpage odd is in effect + \ifeof 1 \else + \pdfmakeoutlines + \fi + \closein 1 + \endgroup + \lastnegativepageno = \pageno + \global\pageno = \savepageno } % And just the chapters. \def\summarycontents{% - \startcontents{\putwordShortTOC}% - % - \let\chapentry = \shortchapentry - \let\appendixentry = \shortappendixentry - \let\unnumbchapentry = \shortunnumberedentry - % We want a true roman here for the page numbers. - \secfonts - \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl - \rm - \hyphenpenalty = 10000 - \advance\baselineskip by 1pt % Open it up a little. - \def\secentry ##1##2##3##4{} - \def\unnumbsecentry ##1##2##3{} - \def\subsecentry ##1##2##3##4##5{} - \def\unnumbsubsecentry ##1##2##3##4{} - \def\subsubsecentry ##1##2##3##4##5##6{} - \def\unnumbsubsubsecentry ##1##2##3##4##5{} - \openin 1 \jobname.toc - \ifeof 1 \else - \closein 1 - \input \jobname.toc - \fi - \vfill \eject - \contentsalignmacro % in case @setchapternewpage odd is in effect - \endgroup - \lastnegativepageno = \pageno - \pageno = \savepageno + \startcontents{\putwordShortTOC}% + % + \let\numchapentry = \shortchapentry + \let\appentry = \shortchapentry + \let\unnchapentry = \shortunnchapentry + % We want a true roman here for the page numbers. + \secfonts + \let\rm=\shortcontrm \let\bf=\shortcontbf + \let\sl=\shortcontsl \let\tt=\shortconttt + \rm + \hyphenpenalty = 10000 + \advance\baselineskip by 1pt % Open it up a little. + \def\numsecentry##1##2##3##4{} + \let\appsecentry = \numsecentry + \let\unnsecentry = \numsecentry + \let\numsubsecentry = \numsecentry + \let\appsubsecentry = \numsecentry + \let\unnsubsecentry = \numsecentry + \let\numsubsubsecentry = \numsecentry + \let\appsubsubsecentry = \numsecentry + \let\unnsubsubsecentry = \numsecentry + \openin 1 \jobname.toc + \ifeof 1 \else + \input \jobname.toc + \fi + \closein 1 + \vfill \eject + \contentsalignmacro % in case @setchapternewpage odd is in effect + \endgroup + \lastnegativepageno = \pageno + \global\pageno = \savepageno } \let\shortcontents = \summarycontents -\ifpdf - \pdfcatalog{/PageMode /UseOutlines}% -\fi +% Typeset the label for a chapter or appendix for the short contents. +% The arg is, e.g., `A' for an appendix, or `3' for a chapter. +% +\def\shortchaplabel#1{% + % This space should be enough, since a single number is .5em, and the + % widest letter (M) is 1em, at least in the Computer Modern fonts. + % But use \hss just in case. + % (This space doesn't include the extra space that gets added after + % the label; that gets put in by \shortchapentry above.) + % + % We'd like to right-justify chapter numbers, but that looks strange + % with appendix letters. And right-justifying numbers and + % left-justifying letters looks strange when there is less than 10 + % chapters. Have to read the whole toc once to know how many chapters + % there are before deciding ... + \hbox to 1em{#1\hss}% +} % These macros generate individual entries in the table of contents. % The first argument is the chapter or section name. @@ -4040,57 +4538,46 @@ % The arguments in between are the chapter number, section number, ... % Chapters, in the main contents. -\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}} +\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} % % Chapters, in the short toc. % See comments in \dochapentry re vbox and related settings. -\def\shortchapentry#1#2#3{% - \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}% +\def\shortchapentry#1#2#3#4{% + \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}% } % Appendices, in the main contents. -\def\appendixentry#1#2#3{\dochapentry{\putwordAppendix{} #2\labelspace#1}{#3}} -% -% Appendices, in the short toc. -\let\shortappendixentry = \shortchapentry - -% Typeset the label for a chapter or appendix for the short contents. -% The arg is, e.g., `Appendix A' for an appendix, or `3' for a chapter. -% We could simplify the code here by writing out an \appendixentry -% command in the toc file for appendices, instead of using \chapentry -% for both, but it doesn't seem worth it. +% Need the word Appendix, and a fixed-size box. % -\newdimen\shortappendixwidth +\def\appendixbox#1{% + % We use M since it's probably the widest letter. + \setbox0 = \hbox{\putwordAppendix{} M}% + \hbox to \wd0{\putwordAppendix{} #1\hss}} % -\def\shortchaplabel#1{% - % This space should be enough, since a single number is .5em, and the - % widest letter (M) is 1em, at least in the Computer Modern fonts. - % But use \hss just in case. - % (This space doesn't include the extra space that gets added after - % the label; that gets put in by \shortchapentry above.) - \dimen0 = 1em - \hbox to \dimen0{#1\hss}% -} +\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}} % Unnumbered chapters. -\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}} -\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}} +\def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}} +\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}} % Sections. -\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} -\def\unnumbsecentry#1#2#3{\dosecentry{#1}{#3}} +\def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}} +\let\appsecentry=\numsecentry +\def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}} % Subsections. -\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} -\def\unnumbsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} +\def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}} +\let\appsubsecentry=\numsubsecentry +\def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} % And subsubsections. -\def\subsubsecentry#1#2#3#4#5#6{% - \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} -\def\unnumbsubsubsecentry#1#2#3#4#5{\dosubsubsecentry{#1}{#5}} +\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}} +\let\appsubsubsecentry=\numsubsubsecentry +\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}} % This parameter controls the indentation of the various levels. -\newdimen\tocindent \tocindent = 3pc +% Same as \defaultparindent. +\newdimen\tocindent \tocindent = 15pt % Now for the actual typesetting. In all these, #1 is the text and #2 is the % page number. @@ -4121,17 +4608,8 @@ \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} -% Final typesetting of a toc entry; we use the same \entry macro as for -% the index entries, but we want to suppress hyphenation here. (We -% can't do that in the \entry macro, since index entries might consist -% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.) -\def\tocentry#1#2{\begingroup - \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks - % Do not use \turnoffactive in these arguments. Since the toc is - % typeset in cmr, characters such as _ would come out wrong; we - % have to do the usual translation tricks. - \entry{#1}{#2}% -\endgroup} +% We use the same \entry macro as for the index entries. +\let\tocentry = \entry % Space between chapter (or whatever) number and the title. \def\labelspace{\hskip1em \relax} @@ -4141,15 +4619,15 @@ \def\chapentryfonts{\secfonts \rm} \def\secentryfonts{\textfonts} -\let\subsecentryfonts = \textfonts -\let\subsubsecentryfonts = \textfonts +\def\subsecentryfonts{\textfonts} +\def\subsubsecentryfonts{\textfonts} \message{environments,} % @foo ... @end foo. % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. -% +% % Since these characters are used in examples, it should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. % @@ -4161,7 +4639,7 @@ % The @error{} command. % Adapted from the TeXbook's \boxit. -% +% \newbox\errorbox % {\tentt \global\dimen0 = 3em}% Width of the box. @@ -4169,10 +4647,10 @@ % The text. (`r' is open on the right, `e' somewhat less so on the left.) \setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} % -\global\setbox\errorbox=\hbox to \dimen0{\hfil +\setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. \advance\hsize by -2\dimen2 % Rules. - \vbox{ + \vbox{% \hrule height\dimen2 \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. @@ -4186,17 +4664,16 @@ % One exception: @ is still an escape character, so that @end tex works. % But \@ or @@ will get a plain tex @ character. -\def\tex{\begingroup +\envdef\tex{% \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 - \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie + \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie \catcode `\%=14 - \catcode 43=12 % plus - \catcode`\"=12 - \catcode`\==12 - \catcode`\|=12 - \catcode`\<=12 - \catcode`\>=12 + \catcode `\+=\other + \catcode `\"=\other + \catcode `\|=\other + \catcode `\<=\other + \catcode `\>=\other \escapechar=`\\ % \let\b=\ptexb @@ -4208,19 +4685,23 @@ \let\equiv=\ptexequiv \let\!=\ptexexclam \let\i=\ptexi + \let\indent=\ptexindent + \let\noindent=\ptexnoindent \let\{=\ptexlbrace \let\+=\tabalign \let\}=\ptexrbrace + \let\/=\ptexslash \let\*=\ptexstar \let\t=\ptext % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% \def\@{@}% -\let\Etex=\endgroup} +} +% There is no need to define \Etex. % Define @lisp ... @end lisp. -% @lisp does a \begingroup so it can rebind things, +% @lisp environment forms a group so it can rebind things, % including the definition of @end lisp (which normally is erroneous). % Amount to narrow the margins by for @lisp. @@ -4231,34 +4712,25 @@ % have any width. \def\lisppar{\null\endgraf} -% Make each space character in the input produce a normal interword -% space in the output. Don't allow a line break at this space, as this -% is used only in environments like @example, where each line of input -% should produce a line of output anyway. -% -{\obeyspaces % -\gdef\sepspaces{\obeyspaces\let =\tie}} - -% Define \obeyedspace to be our active space, whatever it is. This is -% for use in \parsearg. -{\sepspaces% -\global\let\obeyedspace= } - % This space is always present above and below environments. \newskip\envskipamount \envskipamount = 0pt % Make spacing and below environment symmetrical. We use \parskip here % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the -% start of the next paragraph will insert \parskip +% start of the next paragraph will insert \parskip. % \def\aboveenvbreak{{% - \ifnum\lastpenalty < 10000 + % =10000 instead of <10000 because of a special case in \itemzzz and + % \sectionheading, q.v. + \ifnum \lastpenalty=10000 \else \advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip - \penalty-50 + % it's not a good place to break if the last penalty was \nobreak + % or better ... + \ifnum\lastpenalty<10000 \penalty-50 \fi \vskip\envskipamount \fi \fi @@ -4290,54 +4762,54 @@ % \newskip\lskip\newskip\rskip -\long\def\cartouche{% -\begingroup - \lskip=\leftskip \rskip=\rightskip - \leftskip=0pt\rightskip=0pt %we want these *outside*. - \cartinner=\hsize \advance\cartinner by-\lskip - \advance\cartinner by-\rskip - \cartouter=\hsize - \advance\cartouter by 18.4pt % allow for 3pt kerns on either -% side, and for 6pt waste from -% each corner char, and rule thickness - \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip - % Flag to tell @lisp, etc., not to narrow margin. - \let\nonarrowing=\comment - \vbox\bgroup - \baselineskip=0pt\parskip=0pt\lineskip=0pt - \carttop - \hbox\bgroup - \hskip\lskip - \vrule\kern3pt - \vbox\bgroup - \hsize=\cartinner - \kern3pt - \begingroup - \baselineskip=\normbskip - \lineskip=\normlskip - \parskip=\normpskip - \vskip -\parskip +\envdef\cartouche{% + \ifhmode\par\fi % can't be in the midst of a paragraph. + \startsavinginserts + \lskip=\leftskip \rskip=\rightskip + \leftskip=0pt\rightskip=0pt % we want these *outside*. + \cartinner=\hsize \advance\cartinner by-\lskip + \advance\cartinner by-\rskip + \cartouter=\hsize + \advance\cartouter by 18.4pt % allow for 3pt kerns on either + % side, and for 6pt waste from + % each corner char, and rule thickness + \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip + % Flag to tell @lisp, etc., not to narrow margin. + \let\nonarrowing=\comment + \vbox\bgroup + \baselineskip=0pt\parskip=0pt\lineskip=0pt + \carttop + \hbox\bgroup + \hskip\lskip + \vrule\kern3pt + \vbox\bgroup + \kern3pt + \hsize=\cartinner + \baselineskip=\normbskip + \lineskip=\normlskip + \parskip=\normpskip + \vskip -\parskip + \comment % For explanation, see the end of \def\group. +} \def\Ecartouche{% - \endgroup - \kern3pt - \egroup - \kern3pt\vrule - \hskip\rskip - \egroup - \cartbot - \egroup -\endgroup -}} + \ifhmode\par\fi + \kern3pt + \egroup + \kern3pt\vrule + \hskip\rskip + \egroup + \cartbot + \egroup + \checkinserts +} % This macro is called at the beginning of all the @example variants, % inside a group. \def\nonfillstart{% \aboveenvbreak - \inENV % This group ends at the end of the body \hfuzz = 12pt % Don't be fussy \sepspaces % Make spaces be word-separators rather than space tokens. - \singlespace \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output \parskip = 0pt @@ -4348,115 +4820,99 @@ \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing \exdentamount=\lispnarrowing - \let\exdent=\nofillexdent - \let\nonarrowing=\relax \fi + \let\exdent=\nofillexdent } -% Define the \E... control sequence only if we are inside the particular -% environment, so the error checking in \end will work. +% If you want all examples etc. small: @set dispenvsize small. +% If you want even small examples the full size: @set dispenvsize nosmall. +% This affects the following displayed environments: +% @example, @display, @format, @lisp % -% To end an @example-like environment, we first end the paragraph (via -% \afterenvbreak's vertical glue), and then the group. That way we keep -% the zero \parskip that the environments set -- \parskip glue will be -% inserted at the beginning of the next paragraph in the document, after -% the environment. -% -\def\nonfillfinish{\afterenvbreak\endgroup} - -% @lisp: indented, narrowed, typewriter font. -\def\lisp{\begingroup - \nonfillstart - \let\Elisp = \nonfillfinish - \tt - \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. - \gobble % eat return +\def\smallword{small} +\def\nosmallword{nosmall} +\let\SETdispenvsize\relax +\def\setnormaldispenv{% + \ifx\SETdispenvsize\smallword + \smallexamplefonts \rm + \fi +} +\def\setsmalldispenv{% + \ifx\SETdispenvsize\nosmallword + \else + \smallexamplefonts \rm + \fi } -% @example: Same as @lisp. -\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp} +% We often define two environments, @foo and @smallfoo. +% Let's do it by one command: +\def\makedispenv #1#2{ + \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2} + \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2} + \expandafter\let\csname E#1\endcsname \afterenvbreak + \expandafter\let\csname Esmall#1\endcsname \afterenvbreak +} -% @small... is usually equivalent to the non-small (@smallbook -% redefines). We must call \example (or whatever) last in the -% definition, since it reads the return following the @example (or -% whatever) command. -% -% This actually allows (for example) @end display inside an -% @smalldisplay. Too bad, but makeinfo will catch the error anyway. -% -\def\smalldisplay{\begingroup\def\Esmalldisplay{\nonfillfinish\endgroup}\display} -\def\smallexample{\begingroup\def\Esmallexample{\nonfillfinish\endgroup}\lisp} -\def\smallformat{\begingroup\def\Esmallformat{\nonfillfinish\endgroup}\format} -\def\smalllisp{\begingroup\def\Esmalllisp{\nonfillfinish\endgroup}\lisp} +% Define two synonyms: +\def\maketwodispenvs #1#2#3{ + \makedispenv{#1}{#3} + \makedispenv{#2}{#3} +} -% Real @smallexample and @smalllisp (when @smallbook): use smaller fonts. +% @lisp: indented, narrowed, typewriter font; @example: same as @lisp. +% +% @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. -\def\smalllispx{\begingroup - \def\Esmalllisp{\nonfillfinish\endgroup}% - \def\Esmallexample{\nonfillfinish\endgroup}% - \smallexamplefonts - \lisp +% +\maketwodispenvs {lisp}{example}{% + \nonfillstart + \tt + \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. + \gobble % eat return } -% @display: same as @lisp except keep current font. +% @display/@smalldisplay: same as @lisp except keep current font. % -\def\display{\begingroup +\makedispenv {display}{% \nonfillstart - \let\Edisplay = \nonfillfinish \gobble } -% -% @smalldisplay (when @smallbook): @display plus smaller fonts. -% -\def\smalldisplayx{\begingroup - \def\Esmalldisplay{\nonfillfinish\endgroup}% - \smallexamplefonts \rm - \display -} -% @format: same as @display except don't narrow margins. +% @format/@smallformat: same as @display except don't narrow margins. % -\def\format{\begingroup - \let\nonarrowing = t +\makedispenv{format}{% + \let\nonarrowing = t% \nonfillstart - \let\Eformat = \nonfillfinish \gobble } -% -% @smallformat (when @smallbook): @format plus smaller fonts. -% -\def\smallformatx{\begingroup - \def\Esmallformat{\nonfillfinish\endgroup}% - \smallexamplefonts \rm - \format -} -% @flushleft (same as @format). -% -\def\flushleft{\begingroup \def\Eflushleft{\nonfillfinish\endgroup}\format} +% @flushleft: same as @format, but doesn't obey \SETdispenvsize. +\envdef\flushleft{% + \let\nonarrowing = t% + \nonfillstart + \gobble +} +\let\Eflushleft = \afterenvbreak % @flushright. % -\def\flushright{\begingroup - \let\nonarrowing = t +\envdef\flushright{% + \let\nonarrowing = t% \nonfillstart - \let\Eflushright = \nonfillfinish \advance\leftskip by 0pt plus 1fill \gobble } +\let\Eflushright = \afterenvbreak % @quotation does normal linebreaking (hence we can't use \nonfillstart) -% and narrows the margins. +% and narrows the margins. We keep \parskip nonzero in general, since +% we're doing normal filling. So, when using \aboveenvbreak and +% \afterenvbreak, temporarily make \parskip 0. % -\def\quotation{% - \begingroup\inENV %This group ends at the end of the @quotation body +\envdef\quotation{% {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip - \singlespace \parindent=0pt - % We have retained a nonzero parskip for the environment, since we're - % doing normal filling. So to avoid extra space below the environment... - \def\Equotation{\parskip = 0pt \nonfillfinish}% % % @cartouche defines \nonarrowing to inhibit narrowing at next level down. \ifx\nonarrowing\relax @@ -4465,24 +4921,49 @@ \exdentamount = \lispnarrowing \let\nonarrowing = \relax \fi + \parsearg\quotationlabel } - -% LaTeX-like @verbatim...@end verbatim and @verb{...} -% If we want to allow any as delimiter, -% we need the curly braces so that makeinfo sees the @verb command, eg: -% `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org -% -% [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. +% We have retained a nonzero parskip for the environment, since we're +% doing normal filling. % -% [Knuth] p. 344; only we need to do '@' too +\def\Equotation{% + \par + \ifx\quotationauthor\undefined\else + % indent a bit. + \leftline{\kern 2\leftskip \sl ---\quotationauthor}% + \fi + {\parskip=0pt \afterenvbreak}% +} + +% If we're given an argument, typeset it in bold with a colon after. +\def\quotationlabel#1{% + \def\temp{#1}% + \ifx\temp\empty \else + {\bf #1: }% + \fi +} + + +% LaTeX-like @verbatim...@end verbatim and @verb{...} +% If we want to allow any as delimiter, +% we need the curly braces so that makeinfo sees the @verb command, eg: +% `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org +% +% [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. +% +% [Knuth] p.344; only we need to do the other characters Texinfo sets +% active too. Otherwise, they get lost as the first character on a +% verbatim line. \def\dospecials{% - \do\ \do\\\do\@\do\{\do\}\do\$\do\&% - \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~} + \do\ \do\\\do\{\do\}\do\$\do\&% + \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% + \do\<\do\>\do\|\do\@\do+\do\"% +} % % [Knuth] p. 380 \def\uncatcodespecials{% - \def\do##1{\catcode`##1=12}\dospecials} + \def\do##1{\catcode`##1=\other}\dospecials} % % [Knuth] pp. 380,381,391 % Disable Spanish ligatures ?` and !` of \tt font @@ -4530,6 +5011,8 @@ } \endgroup \def\setupverbatim{% + \nonfillstart + \advance\leftskip by -\defbodyindent % Easiest (and conventionally used) font for verbatim \tt \def\par{\leavevmode\egroup\box0\endgraf}% @@ -4543,15 +5026,15 @@ \everypar{\starttabbox}% } -% Do the @verb magic: verbatim text is quoted by unique -% delimiter characters. Before first delimiter expect a +% Do the @verb magic: verbatim text is quoted by unique +% delimiter characters. Before first delimiter expect a % right brace, after last delimiter expect closing brace: % % \def\doverb'{'#1'}'{#1} % % [Knuth] p. 382; only eat outer {} \begingroup - \catcode`[=1\catcode`]=2\catcode`\{=12\catcode`\}=12 + \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next] \endgroup % @@ -4563,611 +5046,395 @@ % % \def\doverbatim#1@end verbatim{#1} % -% For Texinfo it's a lot easier than for LaTeX, +% For Texinfo it's a lot easier than for LaTeX, % because texinfo's \verbatim doesn't stop at '\end{verbatim}': -% we need not redefine '\', '{' and '}' +% we need not redefine '\', '{' and '}'. % % Inspired by LaTeX's verbatim command set [latex.ltx] -%% Include LaTeX hack for completeness -- never know -%% \begingroup -%% \catcode`|=0 \catcode`[=1 -%% \catcode`]=2\catcode`\{=12\catcode`\}=12\catcode`\ =\active -%% \catcode`\\=12|gdef|doverbatim#1@end verbatim[ -%% #1|endgroup|def|Everbatim[]|end[verbatim]] -%% |endgroup +% \begingroup \catcode`\ =\active - \gdef\doverbatim#1@end verbatim{#1\end{verbatim}} + \obeylines % + % ignore everything up to the first ^^M, that's the newline at the end + % of the @verbatim input line itself. Otherwise we get an extra blank + % line in the output. + \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}% + % We really want {...\end verbatim} in the body of the macro, but + % without the active space; thus we have to use \xdef and \gobble. \endgroup % -\def\verbatim{% - \def\Everbatim{\nonfillfinish\endgroup}% - \begingroup - \nonfillstart - \advance\leftskip by -\defbodyindent - \begingroup\setupverbatim\doverbatim +\envdef\verbatim{% + \setupverbatim\doverbatim } +\let\Everbatim = \afterenvbreak + % @verbatiminclude FILE - insert text of file in verbatim environment. % -% Allow normal characters that we make active in the argument (a file name). -\def\verbatiminclude{% - \begingroup - \catcode`\\=12 - \catcode`~=12 - \catcode`^=12 - \catcode`_=12 - \catcode`|=12 - \catcode`<=12 - \catcode`>=12 - \catcode`+=12 - \parsearg\doverbatiminclude -} -\def\setupverbatiminclude{% - \begingroup - \nonfillstart - \advance\leftskip by -\defbodyindent - \begingroup\setupverbatim -} +\def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude} % \def\doverbatiminclude#1{% - % Restore active chars for included file. - \endgroup - \begingroup - \def\thisfile{#1}% - \expandafter\expandafter\setupverbatiminclude\input\thisfile - \endgroup\nonfillfinish\endgroup + {% + \makevalueexpandable + \setupverbatim + \input #1 + \afterenvbreak + }% } % @copying ... @end copying. % Save the text away for @insertcopying later. -% -\newbox\copyingbox % -\def\copying{\begingroup - \parindent = 0pt % looks wrong on title page - \def\Ecopying{\egroup\endgroup}% - \global\setbox\copyingbox = \vbox\bgroup +% We save the uninterpreted tokens, rather than creating a box. +% Saving the text in a box would be much easier, but then all the +% typesetting commands (@smallbook, font changes, etc.) have to be done +% beforehand -- and a) we want @copying to be done first in the source +% file; b) letting users define the frontmatter in as flexible order as +% possible is very desirable. +% +\def\copying{\checkenv{}\begingroup\scanargctxt\docopying} +\def\docopying#1@end copying{\endgroup\def\copyingtext{#1}} +% +\def\insertcopying{% + \begingroup + \parindent = 0pt % paragraph indentation looks wrong on title page + \scanexp\copyingtext + \endgroup } -% @insertcopying. -% -\def\insertcopying{\unvcopy\copyingbox} - - \message{defuns,} % @defun etc. -% Allow user to change definition object font (\df) internally -\def\setdeffont #1 {\csname DEF#1\endcsname} - \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt -\newskip\deftypemargin \deftypemargin=12pt \newskip\deflastargmargin \deflastargmargin=18pt -\newcount\parencount -% define \functionparens, which makes ( and ) and & do special things. -% \functionparens affects the group it is contained in. -\def\activeparens{% -\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active -\catcode`\[=\active \catcode`\]=\active} - -% Make control sequences which act like normal parenthesis chars. -\let\lparen = ( \let\rparen = ) - -{\activeparens % Now, smart parens don't turn on until &foo (see \amprm) - -% Be sure that we always have a definition for `(', etc. For example, -% if the fn name has parens in it, \boldbrax will not be in effect yet, -% so TeX would otherwise complain about undefined control sequence. -\global\let(=\lparen \global\let)=\rparen -\global\let[=\lbrack \global\let]=\rbrack - -\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 } -\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} -% This is used to turn on special parens -% but make & act ordinary (given that it's active). -\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr} - -% Definitions of (, ) and & used in args for functions. -% This is the definition of ( outside of all parentheses. -\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested - \global\advance\parencount by 1 -} -% -% This is the definition of ( when already inside a level of parens. -\gdef\opnested{\char`\(\global\advance\parencount by 1 } -% -\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0. - % also in that case restore the outer-level definition of (. - \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi - \global\advance \parencount by -1 } -% If we encounter &foo, then turn on ()-hacking afterwards -\gdef\amprm#1 {{\rm\}\let(=\oprm \let)=\clrm\ } -% -\gdef\normalparens{\boldbrax\let&=\ampnr} -} % End of definition inside \activeparens -%% These parens (in \boldbrax) actually are a little bolder than the -%% contained text. This is especially needed for [ and ] -\def\opnr{{\sf\char`\(}\global\advance\parencount by 1 } -\def\clnr{{\sf\char`\)}\global\advance\parencount by -1 } -\let\ampnr = \& -\def\lbrb{{\bf\char`\[}} -\def\rbrb{{\bf\char`\]}} - -% Active &'s sneak into the index arguments, so make sure it's defined. -{ - \catcode`& = 13 - \global\let& = \ampnr -} - -% First, defname, which formats the header line itself. -% #1 should be the function name. -% #2 should be the type of definition, such as "Function". - -\def\defname #1#2{% -% Get the values of \leftskip and \rightskip as they were -% outside the @def... -\dimen2=\leftskip -\advance\dimen2 by -\defbodyindent -\noindent -\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}% -\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line -\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations -\parshape 2 0in \dimen0 \defargsindent \dimen1 -% Now output arg 2 ("Function" or some such) -% ending at \deftypemargin from the right margin, -% but stuck inside a box of width 0 so it does not interfere with linebreaking -{% Adjust \hsize to exclude the ambient margins, -% so that \rightline will obey them. -\advance \hsize by -\dimen2 -\rlap{\rightline{{\rm #2}\hskip -1.25pc }}}% -% Make all lines underfull and no complaints: -\tolerance=10000 \hbadness=10000 -\advance\leftskip by -\defbodyindent -\exdentamount=\defbodyindent -{\df #1}\enskip % Generate function name -} - -% Common pieces to start any @def... -% #1 is the \E... control sequence to end the definition (which we define). -% #2 is the \...x control sequence (which our caller defines). -% #3 is the control sequence to process the header, such as \defunheader. -% -\def\parsebodycommon#1#2#3{% - \begingroup\inENV - % If there are two @def commands in a row, we'll have a \nobreak, - % which is there to keep the function description together with its - % header. But if there's nothing but headers, we want to allow a - % break after all. - \ifnum\lastpenalty = 10000 \penalty0 \fi - \medbreak - % - % Define the \E... end token that this defining construct specifies - % so that it will exit this group. - \def#1{\endgraf\endgroup\medbreak}% +% Start the processing of @deffn: +\def\startdefun{% + \ifnum\lastpenalty<10000 + \medbreak + \else + % If there are two @def commands in a row, we'll have a \nobreak, + % which is there to keep the function description together with its + % header. But if there's nothing but headers, we need to allow a + % break somewhere. Check specifically for penalty 10002, inserted + % by \defargscommonending, instead of 10000, since the sectioning + % commands also insert a nobreak penalty, and we don't want to allow + % a break between a section heading and a defun. + % + \ifnum\lastpenalty=10002 \penalty2000 \fi + % + % Similarly, after a section heading, do not allow a break. + % But do insert the glue. + \medskip % preceded by discardable penalty, so not a breakpoint + \fi % \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent } -% Process body of @defun, @deffn, @defmac, etc. -% -\def\defparsebody#1#2#3{% - \parsebodycommon{#1}{#2}{#3}% - \def#2{\begingroup\obeylines\activeparens\spacesplit#3}% - \catcode61=\active % 61 is `=' - \begingroup\obeylines\activeparens - \spacesplit#3% -} - -% #1, #2, #3 are the common arguments (see \defparsebody). -% #4, delimited by the space, is the class name. -% -\def\defmethparsebody#1#2#3#4 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}% - \begingroup\obeylines\activeparens - \spacesplit{#3{#4}}% -} - -% Used for @deftypemethod and @deftypeivar. -% #1, #2, #3 are the common arguments (see \defparsebody). -% #4, delimited by a space, is the class name. -% #5 is the method's return type. -% -\def\deftypemethparsebody#1#2#3#4 #5 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}% - \begingroup\obeylines\activeparens - \spacesplit{#3{#4}{#5}}% -} - -% Used for @deftypeop. The change from \deftypemethparsebody is an -% extra argument at the beginning which is the `category', instead of it -% being the hardwired string `Method' or `Instance Variable'. We have -% to account for this both in the \...x definition and in parsing the -% input at hand. Thus also need a control sequence (passed as #5) for -% the \E... definition to assign the category name to. -% -\def\deftypeopparsebody#1#2#3#4#5 #6 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 ##2 ##3 {% - \def#4{##1}% - \begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}% - \begingroup\obeylines\activeparens - \spacesplit{#3{#5}{#6}}% -} - -% For @defop. -\def\defopparsebody #1#2#3#4#5 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 ##2 {\def#4{##1}% - \begingroup\obeylines\activeparens\spacesplit{#3{##2}}}% - \begingroup\obeylines\activeparens - \spacesplit{#3{#5}}% -} - -% These parsing functions are similar to the preceding ones -% except that they do not make parens into active characters. -% These are used for "variables" since they have no arguments. -% -\def\defvarparsebody #1#2#3{% - \parsebodycommon{#1}{#2}{#3}% - \def#2{\begingroup\obeylines\spacesplit#3}% - \catcode61=\active % - \begingroup\obeylines - \spacesplit#3% -} - -% @defopvar. -\def\defopvarparsebody #1#2#3#4#5 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 ##2 {\def#4{##1}% - \begingroup\obeylines\spacesplit{#3{##2}}}% - \begingroup\obeylines - \spacesplit{#3{#5}}% -} - -\def\defvrparsebody#1#2#3#4 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% - \begingroup\obeylines - \spacesplit{#3{#4}}% -} - -% This loses on `@deftp {Data Type} {struct termios}' -- it thinks the -% type is just `struct', because we lose the braces in `{struct -% termios}' when \spacesplit reads its undelimited argument. Sigh. -% \let\deftpparsebody=\defvrparsebody -% -% So, to get around this, we put \empty in with the type name. That -% way, TeX won't find exactly `{...}' as an undelimited argument, and -% won't strip off the braces. -% -\def\deftpparsebody #1#2#3#4 {% - \parsebodycommon{#1}{#2}{#3}% - \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% - \begingroup\obeylines - \spacesplit{\parsetpheaderline{#3{#4}}}\empty -} - -% Fine, but then we have to eventually remove the \empty *and* the -% braces (if any). That's what this does. -% -\def\removeemptybraces\empty#1\relax{#1} - -% After \spacesplit has done its work, this is called -- #1 is the final -% thing to call, #2 the type name (which starts with \empty), and #3 -% (which might be empty) the arguments. -% -\def\parsetpheaderline#1#2#3{% - #1{\removeemptybraces#2\relax}{#3}% -}% +\def\dodefunx#1{% + % First, check whether we are in the right environment: + \checkenv#1% + % + % As above, allow line break if we have multiple x headers in a row. + % It's not a great place, though. + \ifnum\lastpenalty=10002 \penalty3000 \fi + % + % And now, it's time to reuse the body of the original defun: + \expandafter\gobbledefun#1% +} +\def\gobbledefun#1\startdefun{} -% Split up #2 at the first space token. -% call #1 with two arguments: -% the first is all of #2 before the space token, -% the second is all of #2 after that space token. -% If #2 contains no space token, all of it is passed as the first arg -% and the second is passed as empty. +% \printdefunline \deffnheader{text} % -{\obeylines -\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}% -\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{% -\ifx\relax #3% -#1{#2}{}\else #1{#2}{#3#4}\fi}} - -% Define @defun. +\def\printdefunline#1#2{% + \begingroup + % call \deffnheader: + #1#2 \endheader + % common ending: + \interlinepenalty = 10000 + \advance\rightskip by 0pt plus 1fil + \endgraf + \nobreak\vskip -\parskip + \penalty 10002 % signal to \startdefun and \dodefunx + % Some of the @defun-type tags do not enable magic parentheses, + % rendering the following check redundant. But we don't optimize. + \checkparencounts + \endgroup +} -% First, define the processing that is wanted for arguments of \defun -% Use this to expand the args and terminate the paragraph they make up +\def\Edefun{\endgraf\medbreak} -\def\defunargs#1{\functionparens \sl -% Expand, preventing hyphenation at `-' chars. -% Note that groups don't affect changes in \hyphenchar. -% Set the font temporarily and use \font in case \setfont made \tensl a macro. -{\tensl\hyphenchar\font=0}% -#1% -{\tensl\hyphenchar\font=45}% -\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi% -\interlinepenalty=10000 -\advance\rightskip by 0pt plus 1fil -\endgraf\nobreak\vskip -\parskip\nobreak +% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn; +% the only thing remainnig is to define \deffnheader. +% +\def\makedefun#1{% + \expandafter\let\csname E#1\endcsname = \Edefun + \edef\temp{\noexpand\domakedefun + \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}% + \temp } -\def\deftypefunargs #1{% -% Expand, preventing hyphenation at `-' chars. -% Note that groups don't affect changes in \hyphenchar. -% Use \boldbraxnoamp, not \functionparens, so that & is not special. -\boldbraxnoamp -\tclose{#1}% avoid \code because of side effects on active chars -\interlinepenalty=10000 -\advance\rightskip by 0pt plus 1fil -\endgraf\nobreak\vskip -\parskip\nobreak +% \domakedefun \deffn \deffnx \deffnheader +% +% Define \deffn and \deffnx, without parameters. +% \deffnheader has to be defined explicitly. +% +\def\domakedefun#1#2#3{% + \envdef#1{% + \startdefun + \parseargusing\activeparens{\printdefunline#3}% + }% + \def#2{\dodefunx#1}% + \def#3% } -% Do complete processing of one @defun or @defunx line already parsed. +%%% Untyped functions: -% @deffn Command forward-char nchars +% @deffn category name args +\makedefun{deffn}{\deffngeneral{}} -\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader} +% @deffn category class name args +\makedefun{defop}#1 {\defopon{#1\ \putwordon}} -\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}% -\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @defun == @deffn Function +% \defopon {category on}class name args +\def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } -\def\defun{\defparsebody\Edefun\defunx\defunheader} - -\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{\putwordDeffunc}% -\defunargs {#2}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody +% \deffngeneral {subind}category name args +% +\def\deffngeneral#1#2 #3 #4\endheader{% + % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}. + \dosubind{fn}{\code{#3}}{#1}% + \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}% } -% @deftypefun int foobar (int @var{foo}, float @var{bar}) +%%% Typed functions: -\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader} +% @deftypefn category type name args +\makedefun{deftypefn}{\deftypefngeneral{}} -% #1 is the data type. #2 is the name and args. -\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax} -% #1 is the data type, #2 the name, #3 the args. -\def\deftypefunheaderx #1#2 #3\relax{% -\doind {fn}{\code{#2}}% Make entry in function index -\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypefun}% -\deftypefunargs {#3}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} +% @deftypeop category class type name args +\makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}} -% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar}) +% \deftypeopon {category on}class type name args +\def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } -\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader} +% \deftypefngeneral {subind}category type name args +% +\def\deftypefngeneral#1#2 #3 #4 #5\endheader{% + \dosubind{fn}{\code{#4}}{#1}% + \defname{#2}{#3}{#4}\defunargs{#5\unskip}% +} -% \defheaderxcond#1\relax$.$ -% puts #1 in @code, followed by a space, but does nothing if #1 is null. -\def\defheaderxcond#1#2$.${\ifx#1\relax\else\code{#1#2} \fi} +%%% Typed variables: -% #1 is the classification. #2 is the data type. #3 is the name and args. -\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax} -% #1 is the classification, #2 the data type, #3 the name, #4 the args. -\def\deftypefnheaderx #1#2#3 #4\relax{% -\doind {fn}{\code{#3}}% Make entry in function index -\begingroup -\normalparens % notably, turn off `&' magic, which prevents -% at least some C++ text from working -\defname {\defheaderxcond#2\relax$.$#3}{#1}% -\deftypefunargs {#4}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} +% @deftypevr category type var args +\makedefun{deftypevr}{\deftypecvgeneral{}} -% @defmac == @deffn Macro +% @deftypecv category class type var args +\makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}} -\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader} +% \deftypecvof {category of}class type var args +\def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} } -\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{\putwordDefmac}% -\defunargs {#2}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody +% \deftypecvgeneral {subind}category type var args +% +\def\deftypecvgeneral#1#2 #3 #4 #5\endheader{% + \dosubind{vr}{\code{#4}}{#1}% + \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } -% @defspec == @deffn Special Form +%%% Untyped variables: -\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader} +% @defvr category var args +\makedefun{defvr}#1 {\deftypevrheader{#1} {} } -\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{\putwordDefspec}% -\defunargs {#2}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} +% @defcv category class var args +\makedefun{defcv}#1 {\defcvof{#1\ \putwordof}} -% @defop CATEGORY CLASS OPERATION ARG... -% -\def\defop #1 {\def\defoptype{#1}% -\defopparsebody\Edefop\defopx\defopheader\defoptype} -% -\def\defopheader#1#2#3{% -\dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index -\begingroup\defname {#2}{\defoptype\ \putwordon\ #1}% -\defunargs {#3}\endgroup % -} +% \defcvof {category of}class var args +\def\defcvof#1#2 {\deftypecvof{#1}#2 {} } -% @deftypeop CATEGORY CLASS TYPE OPERATION ARG... -% -\def\deftypeop #1 {\def\deftypeopcategory{#1}% - \deftypeopparsebody\Edeftypeop\deftypeopx\deftypeopheader - \deftypeopcategory} -% -% #1 is the class name, #2 the data type, #3 the operation name, #4 the args. -\def\deftypeopheader#1#2#3#4{% - \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index - \begingroup - \defname{\defheaderxcond#2\relax$.$#3} - {\deftypeopcategory\ \putwordon\ \code{#1}}% - \deftypefunargs{#4}% - \endgroup +%%% Type: +% @deftp category name args +\makedefun{deftp}#1 #2 #3\endheader{% + \doind{tp}{\code{#2}}% + \defname{#1}{}{#2}\defunargs{#3\unskip}% } -% @deftypemethod CLASS TYPE METHOD ARG... -% -\def\deftypemethod{% - \deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader} -% -% #1 is the class name, #2 the data type, #3 the method name, #4 the args. -\def\deftypemethodheader#1#2#3#4{% - \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index - \begingroup - \defname{\defheaderxcond#2\relax$.$#3}{\putwordMethodon\ \code{#1}}% - \deftypefunargs{#4}% - \endgroup -} +% Remaining @defun-like shortcuts: +\makedefun{defun}{\deffnheader{\putwordDeffunc} } +\makedefun{defmac}{\deffnheader{\putwordDefmac} } +\makedefun{defspec}{\deffnheader{\putwordDefspec} } +\makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} } +\makedefun{defvar}{\defvrheader{\putwordDefvar} } +\makedefun{defopt}{\defvrheader{\putwordDefopt} } +\makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} } +\makedefun{defmethod}{\defopon\putwordMethodon} +\makedefun{deftypemethod}{\deftypeopon\putwordMethodon} +\makedefun{defivar}{\defcvof\putwordInstanceVariableof} +\makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof} -% @deftypeivar CLASS TYPE VARNAME +% \defname, which formats the name of the @def (not the args). +% #1 is the category, such as "Function". +% #2 is the return type, if any. +% #3 is the function name. % -\def\deftypeivar{% - \deftypemethparsebody\Edeftypeivar\deftypeivarx\deftypeivarheader} +% We are followed by (but not passed) the arguments, if any. % -% #1 is the class name, #2 the data type, #3 the variable name. -\def\deftypeivarheader#1#2#3{% - \dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index - \begingroup - \defname{\defheaderxcond#2\relax$.$#3} - {\putwordInstanceVariableof\ \code{#1}}% - \defvarargs{#3}% - \endgroup +\def\defname#1#2#3{% + % Get the values of \leftskip and \rightskip as they were outside the @def... + \advance\leftskip by -\defbodyindent + % + % How we'll format the type name. Putting it in brackets helps + % distinguish it from the body text that may end up on the next line + % just below it. + \def\temp{#1}% + \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi} + % + % Figure out line sizes for the paragraph shape. + % The first line needs space for \box0; but if \rightskip is nonzero, + % we need only space for the part of \box0 which exceeds it: + \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip + % The continuations: + \dimen2=\hsize \advance\dimen2 by -\defargsindent + % (plain.tex says that \dimen1 should be used only as global.) + \parshape 2 0in \dimen0 \defargsindent \dimen2 + % + % Put the type name to the right margin. + \noindent + \hbox to 0pt{% + \hfil\box0 \kern-\hsize + % \hsize has to be shortened this way: + \kern\leftskip + % Intentionally do not respect \rightskip, since we need the space. + }% + % + % Allow all lines to be underfull without complaint: + \tolerance=10000 \hbadness=10000 + \exdentamount=\defbodyindent + {% + % defun fonts. We use typewriter by default (used to be bold) because: + % . we're printing identifiers, they should be in tt in principle. + % . in languages with many accents, such as Czech or French, it's + % common to leave accents off identifiers. The result looks ok in + % tt, but exceedingly strange in rm. + % . we don't want -- and --- to be treated as ligatures. + % . this still does not fix the ?` and !` ligatures, but so far no + % one has made identifiers using them :). + \df \tt + \def\temp{#2}% return value type + \ifx\temp\empty\else \tclose{\temp} \fi + #3% output function name + }% + {\rm\enskip}% hskip 0.5 em of \tenrm + % + \boldbrax + % arguments will be output next, if any. } -% @defmethod == @defop Method +% Print arguments in slanted roman (not ttsl), inconsistently with using +% tt for the name. This is because literal text is sometimes needed in +% the argument list (groff manual), and ttsl and tt are not very +% distinguishable. Prevent hyphenation at `-' chars. % -\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader} -% -% #1 is the class name, #2 the method name, #3 the args. -\def\defmethodheader#1#2#3{% - \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% entry in function index - \begingroup - \defname{#2}{\putwordMethodon\ \code{#1}}% - \defunargs{#3}% - \endgroup -} - -% @defcv {Class Option} foo-class foo-flag - -\def\defcv #1 {\def\defcvtype{#1}% -\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype} - -\def\defcvarheader #1#2#3{% -\dosubind {vr}{\code{#2}}{\putwordof\ #1}% Make entry in var index -\begingroup\defname {#2}{\defcvtype\ \putwordof\ #1}% -\defvarargs {#3}\endgroup % +\def\defunargs#1{% + % use sl by default (not ttsl), + % tt for the names. + \df \sl \hyphenchar\font=0 + % + % On the other hand, if an argument has two dashes (for instance), we + % want a way to get ttsl. Let's try @var for that. + \let\var=\ttslanted + #1% + \sl\hyphenchar\font=45 } -% @defivar CLASS VARNAME == @defcv {Instance Variable} CLASS VARNAME -% -\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader} +% We want ()&[] to print specially on the defun line. % -\def\defivarheader#1#2#3{% - \dosubind {vr}{\code{#2}}{\putwordof\ #1}% entry in var index - \begingroup - \defname{#2}{\putwordInstanceVariableof\ #1}% - \defvarargs{#3}% - \endgroup +\def\activeparens{% + \catcode`\(=\active \catcode`\)=\active + \catcode`\[=\active \catcode`\]=\active + \catcode`\&=\active } -% @defvar -% First, define the processing that is wanted for arguments of @defvar. -% This is actually simple: just print them in roman. -% This must expand the args and terminate the paragraph they make up -\def\defvarargs #1{\normalparens #1% -\interlinepenalty=10000 -\endgraf\nobreak\vskip -\parskip\nobreak} - -% @defvr Counter foo-count - -\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader} - -\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}% -\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup} - -% @defvar == @defvr Variable +% Make control sequences which act like normal parenthesis chars. +\let\lparen = ( \let\rparen = ) -\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader} +% Be sure that we always have a definition for `(', etc. For example, +% if the fn name has parens in it, \boldbrax will not be in effect yet, +% so TeX would otherwise complain about undefined control sequence. +{ + \activeparens + \global\let(=\lparen \global\let)=\rparen + \global\let[=\lbrack \global\let]=\rbrack + \global\let& = \& -\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index -\begingroup\defname {#1}{\putwordDefvar}% -\defvarargs {#2}\endgroup % + \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} + \gdef\magicamp{\let&=\amprm} } -% @defopt == @defvr {User Option} +\newcount\parencount -\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader} +% If we encounter &foo, then turn on ()-hacking afterwards +\newif\ifampseen +\def\amprm#1 {\ampseentrue{\bf\ }} -\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index -\begingroup\defname {#1}{\putwordDefopt}% -\defvarargs {#2}\endgroup % +\def\parenfont{% + \ifampseen + % At the first level, print parens in roman, + % otherwise use the default font. + \ifnum \parencount=1 \rm \fi + \else + % The \sf parens (in \boldbrax) actually are a little bolder than + % the contained text. This is especially needed for [ and ] . + \sf + \fi } +\def\infirstlevel#1{% + \ifampseen + \ifnum\parencount=1 + #1% + \fi + \fi +} +\def\bfafterword#1 {#1 \bf} -% @deftypevar int foobar - -\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader} - -% #1 is the data type. #2 is the name, perhaps followed by text that -% is actually part of the data type, which should not be put into the index. -\def\deftypevarheader #1#2{% -\dovarind#2 \relax% Make entry in variables index -\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypevar}% -\interlinepenalty=10000 -\endgraf\nobreak\vskip -\parskip\nobreak -\endgroup} -\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}} - -% @deftypevr {Global Flag} int enable - -\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader} - -\def\deftypevrheader #1#2#3{\dovarind#3 \relax% -\begingroup\defname {\defheaderxcond#2\relax$.$#3}{#1} -\interlinepenalty=10000 -\endgraf\nobreak\vskip -\parskip\nobreak -\endgroup} - -% Now define @deftp -% Args are printed in bold, a slight difference from @defvar. - -\def\deftpargs #1{\bf \defvarargs{#1}} - -% @deftp Class window height width ... - -\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader} +\def\opnr{% + \global\advance\parencount by 1 + {\parenfont(}% + \infirstlevel \bfafterword +} +\def\clnr{% + {\parenfont)}% + \infirstlevel \sl + \global\advance\parencount by -1 +} -\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}% -\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup} +\newcount\brackcount +\def\lbrb{% + \global\advance\brackcount by 1 + {\bf[}% +} +\def\rbrb{% + {\bf]}% + \global\advance\brackcount by -1 +} -% These definitions are used if you use @defunx (etc.) -% anywhere other than immediately after a @defun or @defunx. -% -\def\defcvx#1 {\errmessage{@defcvx in invalid context}} -\def\deffnx#1 {\errmessage{@deffnx in invalid context}} -\def\defivarx#1 {\errmessage{@defivarx in invalid context}} -\def\defmacx#1 {\errmessage{@defmacx in invalid context}} -\def\defmethodx#1 {\errmessage{@defmethodx in invalid context}} -\def\defoptx #1 {\errmessage{@defoptx in invalid context}} -\def\defopx#1 {\errmessage{@defopx in invalid context}} -\def\defspecx#1 {\errmessage{@defspecx in invalid context}} -\def\deftpx#1 {\errmessage{@deftpx in invalid context}} -\def\deftypefnx#1 {\errmessage{@deftypefnx in invalid context}} -\def\deftypefunx#1 {\errmessage{@deftypefunx in invalid context}} -\def\deftypeivarx#1 {\errmessage{@deftypeivarx in invalid context}} -\def\deftypemethodx#1 {\errmessage{@deftypemethodx in invalid context}} -\def\deftypeopx#1 {\errmessage{@deftypeopx in invalid context}} -\def\deftypevarx#1 {\errmessage{@deftypevarx in invalid context}} -\def\deftypevrx#1 {\errmessage{@deftypevrx in invalid context}} -\def\defunx#1 {\errmessage{@defunx in invalid context}} -\def\defvarx#1 {\errmessage{@defvarx in invalid context}} -\def\defvrx#1 {\errmessage{@defvrx in invalid context}} +\def\checkparencounts{% + \ifnum\parencount=0 \else \badparencount \fi + \ifnum\brackcount=0 \else \badbrackcount \fi +} +\def\badparencount{% + \errmessage{Unbalanced parentheses in @def}% + \global\parencount=0 +} +\def\badbrackcount{% + \errmessage{Unbalanced square braces in @def}% + \global\brackcount=0 +} \message{macros,} @@ -5176,28 +5443,42 @@ % To do this right we need a feature of e-TeX, \scantokens, % which we arrange to emulate with a temporary file in ordinary TeX. \ifx\eTeXversion\undefined - \newwrite\macscribble - \def\scanmacro#1{% - \begingroup \newlinechar`\^^M - % Undo catcode changes of \startcontents and \doprintindex - \catcode`\@=0 \catcode`\\=12 \escapechar=`\@ - % Append \endinput to make sure that TeX does not see the ending newline. - \toks0={#1\endinput}% - \immediate\openout\macscribble=\jobname.tmp - \immediate\write\macscribble{\the\toks0}% - \immediate\closeout\macscribble - \let\xeatspaces\eatspaces - \input \jobname.tmp - \endgroup -} -\else -\def\scanmacro#1{% -\begingroup \newlinechar`\^^M -% Undo catcode changes of \startcontents and \doprintindex -\catcode`\@=0 \catcode`\\=12 \escapechar=`\@ -\let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup} + \newwrite\macscribble + \def\scantokens#1{% + \toks0={#1}% + \immediate\openout\macscribble=\jobname.tmp + \immediate\write\macscribble{\the\toks0}% + \immediate\closeout\macscribble + \input \jobname.tmp + } \fi +\def\scanmacro#1{% + \begingroup + \newlinechar`\^^M + \let\xeatspaces\eatspaces + % Undo catcode changes of \startcontents and \doprintindex + % When called from @insertcopying or (short)caption, we need active + % backslash to get it printed correctly. Previously, we had + % \catcode`\\=\other instead. We'll see whether a problem appears + % with macro expansion. --kasal, 19aug04 + \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ + % ... and \example + \spaceisspace + % + % Append \endinput to make sure that TeX does not see the ending newline. + % + % I've verified that it is necessary both for e-TeX and for ordinary TeX + % --kasal, 29nov03 + \scantokens{#1\endinput}% + \endgroup +} + +\def\scanexp#1{% + \edef\temp{\noexpand\scanmacro{#1}}% + \temp +} + \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? @@ -5205,13 +5486,15 @@ % \do\macro1\do\macro2... % Utility routines. -% Thisdoes \let #1 = #2, except with \csnames. +% This does \let #1 = #2, with \csnames; that is, +% \let \csname#1\endcsname = \csname#2\endcsname +% (except of course we have to play expansion games). +% \def\cslet#1#2{% -\expandafter\expandafter -\expandafter\let -\expandafter\expandafter -\csname#1\endcsname -\csname#2\endcsname} + \expandafter\let + \csname#1\expandafter\endcsname + \csname#2\endcsname +} % Trim leading and trailing spaces off a string. % Concepts from aro-bend problem 15 (see CTAN). @@ -5224,7 +5507,7 @@ } % Trim a single trailing ^^M off a string. -{\catcode`\^^M=12\catcode`\Q=3% +{\catcode`\^^M=\other \catcode`\Q=3% \gdef\eatcr #1{\eatcra #1Q^^MQ}% \gdef\eatcra#1^^MQ{\eatcrb#1Q}% \gdef\eatcrb#1Q#2Q{#1}% @@ -5238,30 +5521,36 @@ % done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. +\def\scanctxt{% + \catcode`\"=\other + \catcode`\+=\other + \catcode`\<=\other + \catcode`\>=\other + \catcode`\@=\other + \catcode`\^=\other + \catcode`\_=\other + \catcode`\|=\other + \catcode`\~=\other +} + +\def\scanargctxt{% + \scanctxt + \catcode`\\=\other + \catcode`\^^M=\other +} + \def\macrobodyctxt{% - \catcode`\~=12 - \catcode`\^=12 - \catcode`\_=12 - \catcode`\|=12 - \catcode`\<=12 - \catcode`\>=12 - \catcode`\+=12 - \catcode`\{=12 - \catcode`\}=12 - \catcode`\@=12 - \catcode`\^^M=12 - \usembodybackslash} + \scanctxt + \catcode`\{=\other + \catcode`\}=\other + \catcode`\^^M=\other + \usembodybackslash +} \def\macroargctxt{% - \catcode`\~=12 - \catcode`\^=12 - \catcode`\_=12 - \catcode`\|=12 - \catcode`\<=12 - \catcode`\>=12 - \catcode`\+=12 - \catcode`\@=12 - \catcode`\\=12} + \scanctxt + \catcode`\\=\other +} % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N @@ -5302,32 +5591,32 @@ \else \expandafter\parsemacbody \fi} -\def\unmacro{\parsearg\unmacroxxx} -\def\unmacroxxx#1{% +\parseargdef\unmacro{% \if1\csname ismacro.#1\endcsname \global\cslet{#1}{macsave.#1}% \global\expandafter\let \csname ismacro.#1\endcsname=0% - % Remove the macro name from \macrolist + % Remove the macro name from \macrolist: \begingroup - \edef\tempa{\expandafter\noexpand\csname#1\endcsname}% - \def\do##1{% - \def\tempb{##1}% - \ifx\tempa\tempb - % remove this - \else - \toks0 = \expandafter{\newmacrolist\do}% - \edef\newmacrolist{\the\toks0\expandafter\noexpand\tempa}% - \fi}% - \def\newmacrolist{}% - % Execute macro list to define \newmacrolist - \macrolist - \global\let\macrolist\newmacrolist + \expandafter\let\csname#1\endcsname \relax + \let\do\unmacrodo + \xdef\macrolist{\macrolist}% \endgroup \else \errmessage{Macro #1 not defined}% \fi } +% Called by \do from \dounmacro on each macro. The idea is to omit any +% macro definitions that have been changed to \relax. +% +\def\unmacrodo#1{% + \ifx#1\relax + % remove this + \else + \noexpand\do \noexpand #1% + \fi +} + % This makes use of the obscure feature that if the last token of a % is #, then the preceding argument is delimited by % an opening brace, and that opening brace is not consumed. @@ -5443,25 +5732,41 @@ \expandafter\parsearg \fi \next} -% We mant to disable all macros during \shipout so that they are not +% We want to disable all macros during \shipout so that they are not % expanded by \write. \def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}% \edef\next{\macrolist}\expandafter\endgroup\next} +% For \indexnofonts, we need to get rid of all macros, leaving only the +% arguments (if present). Of course this is not nearly correct, but it +% is the best we can do for now. makeinfo does not expand macros in the +% argument to @deffn, which ends up writing an index entry, and texindex +% isn't prepared for an index sort entry that starts with \. +% +% Since macro invocations are followed by braces, we can just redefine them +% to take a single TeX argument. The case of a macro invocation that +% goes to end-of-line is not handled. +% +\def\emptyusermacros{\begingroup + \def\do##1{\let\noexpand##1=\noexpand\asis}% + \edef\next{\macrolist}\expandafter\endgroup\next} + % @alias. % We need some trickery to remove the optional spaces around the equal % sign. Just make them active and then expand them all to nothing. -\def\alias{\begingroup\obeyspaces\parsearg\aliasxxx} +\def\alias{\parseargusing\obeyspaces\aliasxxx} \def\aliasxxx #1{\aliasyyy#1\relax} -\def\aliasyyy #1=#2\relax{\ignoreactivespaces -\edef\next{\global\let\expandafter\noexpand\csname#1\endcsname=% - \expandafter\noexpand\csname#2\endcsname}% -\expandafter\endgroup\next} +\def\aliasyyy #1=#2\relax{% + {% + \expandafter\let\obeyedspace=\empty + \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}% + }% + \next +} \message{cross references,} -% @xref etc. \newwrite\auxfile @@ -5473,56 +5778,70 @@ \def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, node \samp{\ignorespaces#1{}}} -% @node's job is to define \lastnode. -\def\node{\ENVcheck\parsearg\nodezzz} -\def\nodezzz#1{\nodexxx [#1,]} -\def\nodexxx[#1,#2]{\gdef\lastnode{#1}} +% @node's only job in TeX is to define \lastnode, which is used in +% cross-references. The @node line might or might not have commas, and +% might or might not have spaces before the first comma, like: +% @node foo , bar , ... +% We don't want such trailing spaces in the node name. +% +\parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse} +% +% also remove a trailing comma, in case of something like this: +% @node Help-Cross, , , Cross-refs +\def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse} +\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}} + \let\nwnode=\node -\let\lastnode=\relax +\let\lastnode=\empty -% The sectioning commands (@chapter, etc.) call these. -\def\donoderef{% - \ifx\lastnode\relax\else - \expandafter\expandafter\expandafter\setref{\lastnode}% - {Ysectionnumberandtype}% - \global\let\lastnode=\relax - \fi -} -\def\unnumbnoderef{% - \ifx\lastnode\relax\else - \expandafter\expandafter\expandafter\setref{\lastnode}{Ynothing}% - \global\let\lastnode=\relax - \fi -} -\def\appendixnoderef{% - \ifx\lastnode\relax\else - \expandafter\expandafter\expandafter\setref{\lastnode}% - {Yappendixletterandtype}% - \global\let\lastnode=\relax +% Write a cross-reference definition for the current node. #1 is the +% type (Ynumbered, Yappendix, Ynothing). +% +\def\donoderef#1{% + \ifx\lastnode\empty\else + \setref{\lastnode}{#1}% + \global\let\lastnode=\empty \fi } - % @anchor{NAME} -- define xref target at arbitrary point. % \newcount\savesfregister -\gdef\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} -\gdef\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} -\gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} - -% \setref{NAME}{SNT} defines a cross-reference point NAME, namely -% NAME-title, NAME-pg, and NAME-SNT. Called from \foonoderef. We have -% to set \indexdummies so commands such as @code in a section title -% aren't expanded. It would be nicer not to expand the titles in the -% first place, but there's so many layers that that is hard to do. % -\def\setref#1#2{{% - \indexdummies +\def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} +\def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} +\def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} + +% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an +% anchor), which consists of three parts: +% 1) NAME-title - the current sectioning name taken from \thissection, +% or the anchor name. +% 2) NAME-snt - section number and type, passed as the SNT arg, or +% empty for anchors. +% 3) NAME-pg - the page number. +% +% This is called from \donoderef, \anchor, and \dofloat. In the case of +% floats, there is an additional part, which is not written here: +% 4) NAME-lof - the text as it should appear in a @listoffloats. +% +\def\setref#1#2{% \pdfmkdest{#1}% - \dosetq{#1-title}{Ytitle}% - \dosetq{#1-pg}{Ypagenumber}% - \dosetq{#1-snt}{#2}% -}} + \iflinks + {% + \atdummies % preserve commands, but don't expand them + \turnoffactive + \otherbackslash + \edef\writexrdef##1##2{% + \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef + ##1}{##2}}% these are parameters of \writexrdef + }% + \toks0 = \expandafter{\thissection}% + \immediate \writexrdef{title}{\the\toks0 }% + \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. + \writexrdef{pg}{\folio}% will be written later, during \shipout + }% + \fi +} % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed @@ -5535,137 +5854,156 @@ \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \unsepspaces \def\printedmanual{\ignorespaces #5}% - \def\printednodename{\ignorespaces #3}% - \setbox1=\hbox{\printedmanual}% - \setbox0=\hbox{\printednodename}% + \def\printedrefname{\ignorespaces #3}% + \setbox1=\hbox{\printedmanual\unskip}% + \setbox0=\hbox{\printedrefname\unskip}% \ifdim \wd0 = 0pt % No printed node name was explicitly given. \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax % Use the node name inside the square brackets. - \def\printednodename{\ignorespaces #1}% + \def\printedrefname{\ignorespaces #1}% \else % Use the actual chapter/section title appear inside % the square brackets. Use the real section title if we have it. \ifdim \wd1 > 0pt % It is in another manual, so we don't have it. - \def\printednodename{\ignorespaces #1}% + \def\printedrefname{\ignorespaces #1}% \else \ifhavexrefs % We know the real title if we have the xref values. - \def\printednodename{\refx{#1-title}{}}% + \def\printedrefname{\refx{#1-title}{}}% \else % Otherwise just copy the Info node name. - \def\printednodename{\ignorespaces #1}% + \def\printedrefname{\ignorespaces #1}% \fi% \fi \fi \fi % - % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not - % insert empty discretionaries after hyphens, which means that it will - % not find a line break at a hyphen in a node names. Since some manuals - % are best written with fairly long node names, containing hyphens, this - % is a loss. Therefore, we give the text of the node name again, so it - % is as if TeX is seeing it for the first time. + % Make link in pdf output. \ifpdf \leavevmode \getfilename{#4}% - {\normalturnoffactive + {\turnoffactive \otherbackslash \ifnum\filenamelength>0 \startlink attr{/Border [0 0 0]}% goto file{\the\filename.pdf} name{#1}% \else \startlink attr{/Border [0 0 0]}% - goto name{#1}% + goto name{\pdfmkpgn{#1}}% \fi }% \linkcolor \fi % - \ifdim \wd1 > 0pt - \putwordsection{} ``\printednodename'' \putwordin{} \cite{\printedmanual}% + % Float references are printed completely differently: "Figure 1.2" + % instead of "[somenode], p.3". We distinguish them by the + % LABEL-title being set to a magic string. + {% + % Have to otherify everything special to allow the \csname to + % include an _ in the xref name, etc. + \indexnofonts + \turnoffactive + \otherbackslash + \expandafter\global\expandafter\let\expandafter\Xthisreftitle + \csname XR#1-title\endcsname + }% + \iffloat\Xthisreftitle + % If the user specified the print name (third arg) to the ref, + % print it instead of our usual "Figure 1.2". + \ifdim\wd0 = 0pt + \refx{#1-snt}% + \else + \printedrefname + \fi + % + % if the user also gave the printed manual name (fifth arg), append + % "in MANUALNAME". + \ifdim \wd1 > 0pt + \space \putwordin{} \cite{\printedmanual}% + \fi \else - % _ (for example) has to be the character _ for the purposes of the - % control sequence corresponding to the node, but it has to expand - % into the usual \leavevmode...\vrule stuff for purposes of - % printing. So we \turnoffactive for the \refx-snt, back on for the - % printing, back off for the \refx-pg. - {\normalturnoffactive - % Only output a following space if the -snt ref is nonempty; for - % @unnumbered and @anchor, it won't be. - \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% - \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi - }% - % [mynode], - [\printednodename],\space - % page 3 - \turnoffactive \putwordpage\tie\refx{#1-pg}{}% + % node/anchor (non-float) references. + % + % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not + % insert empty discretionaries after hyphens, which means that it will + % not find a line break at a hyphen in a node names. Since some manuals + % are best written with fairly long node names, containing hyphens, this + % is a loss. Therefore, we give the text of the node name again, so it + % is as if TeX is seeing it for the first time. + \ifdim \wd1 > 0pt + \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% + \else + % _ (for example) has to be the character _ for the purposes of the + % control sequence corresponding to the node, but it has to expand + % into the usual \leavevmode...\vrule stuff for purposes of + % printing. So we \turnoffactive for the \refx-snt, back on for the + % printing, back off for the \refx-pg. + {\turnoffactive \otherbackslash + % Only output a following space if the -snt ref is nonempty; for + % @unnumbered and @anchor, it won't be. + \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% + \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi + }% + % output the `[mynode]' via a macro so it can be overridden. + \xrefprintnodename\printedrefname + % + % But we always want a comma and a space: + ,\space + % + % output the `page 3'. + \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}% + \fi \fi \endlink \endgroup} -% \dosetq is the interface for calls from other macros - -% Use \normalturnoffactive so that punctuation chars such as underscore -% and backslash work in node names. (\turnoffactive doesn't do \.) -\def\dosetq#1#2{% - {\let\folio=0% - \normalturnoffactive - \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}% - \iflinks - \next - \fi - }% -} - -% \internalsetq {foo}{page} expands into -% CHARACTERS 'xrdef {foo}{...expansion of \Ypage...} -% When the aux file is read, ' is the escape character - -\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}} - -% Things to be expanded by \internalsetq - -\def\Ypagenumber{\folio} - -\def\Ytitle{\thissection} - -\def\Ynothing{} - -\def\Ysectionnumberandtype{% -\ifnum\secno=0 \putwordChapter\xreftie\the\chapno % -\else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno % -\else \ifnum \subsubsecno=0 % -\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno % -\else % -\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno % -\fi \fi \fi } - -\def\Yappendixletterandtype{% -\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}% -\else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno % -\else \ifnum \subsubsecno=0 % -\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno % -\else % -\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno % -\fi \fi \fi } - -\gdef\xreftie{'tie} +% This macro is called from \xrefX for the `[nodename]' part of xref +% output. It's a separate macro only so it can be changed more easily, +% since square brackets don't work well in some documents. Particularly +% one that Bob is working on :). +% +\def\xrefprintnodename#1{[#1]} -% Use TeX 3.0's \inputlineno to get the line number, for better error -% messages, but if we're using an old version of TeX, don't do anything. +% Things referred to by \setref. % -\ifx\inputlineno\thisisundefined - \let\linenumber = \empty % Non-3.0. -\else - \def\linenumber{\the\inputlineno:\space} -\fi +\def\Ynothing{} +\def\Yomitfromtoc{} +\def\Ynumbered{% + \ifnum\secno=0 + \putwordChapter@tie \the\chapno + \else \ifnum\subsecno=0 + \putwordSection@tie \the\chapno.\the\secno + \else \ifnum\subsubsecno=0 + \putwordSection@tie \the\chapno.\the\secno.\the\subsecno + \else + \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno + \fi\fi\fi +} +\def\Yappendix{% + \ifnum\secno=0 + \putwordAppendix@tie @char\the\appendixno{}% + \else \ifnum\subsecno=0 + \putwordSection@tie @char\the\appendixno.\the\secno + \else \ifnum\subsubsecno=0 + \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno + \else + \putwordSection@tie + @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno + \fi\fi\fi +} % Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. % If its value is nonempty, SUFFIX is output afterward. - +% \def\refx#1#2{% - \expandafter\ifx\csname X#1\endcsname\relax + {% + \indexnofonts + \otherbackslash + \expandafter\global\expandafter\let\expandafter\thisrefX + \csname XR#1\endcsname + }% + \ifx\thisrefX\relax % If not defined, say something at least. \angleleft un\-de\-fined\angleright \iflinks @@ -5680,21 +6018,49 @@ \fi \else % It's defined, so just use it. - \csname X#1\endcsname + \thisrefX \fi #2% Output the suffix in any case. } -% This is the macro invoked by entries in the aux file. -% -\def\xrdef#1{\begingroup - % Reenable \ as an escape while reading the second argument. - \catcode`\\ = 0 - \afterassignment\endgroup - \expandafter\gdef\csname X#1\endcsname +% This is the macro invoked by entries in the aux file. Usually it's +% just a \def (we prepend XR to the control sequence name to avoid +% collisions). But if this is a float type, we have more work to do. +% +\def\xrdef#1#2{% + \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value. + % + % Was that xref control sequence that we just defined for a float? + \expandafter\iffloat\csname XR#1\endcsname + % it was a float, and we have the (safe) float type in \iffloattype. + \expandafter\let\expandafter\floatlist + \csname floatlist\iffloattype\endcsname + % + % Is this the first time we've seen this float type? + \expandafter\ifx\floatlist\relax + \toks0 = {\do}% yes, so just \do + \else + % had it before, so preserve previous elements in list. + \toks0 = \expandafter{\floatlist\do}% + \fi + % + % Remember this xref in the control sequence \floatlistFLOATTYPE, + % for later use in \listoffloats. + \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}% + \fi } % Read the last existing aux file, if any. No error if none exists. +% +\def\tryauxfile{% + \openin 1 \jobname.aux + \ifeof 1 \else + \readauxfile + \global\havexrefstrue + \fi + \closein 1 +} + \def\readauxfile{\begingroup \catcode`\^^@=\other \catcode`\^^A=\other @@ -5723,9 +6089,7 @@ \catcode`\^^]=\other \catcode`\^^^=\other \catcode`\^^_=\other - \catcode`\@=\other - \catcode`\^=\other - % It was suggested to define this as 7, which would allow ^^e4 etc. + % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc. % in xref tags, i.e., node names. But since ^^e4 notation isn't % supported in the main text, it doesn't seem desirable. Furthermore, % that is not enough: for node names that actually contain a ^ @@ -5738,6 +6102,9 @@ % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter % and then to call \auxhat in \setq. % + \catcode`\^=\other + % + % Special characters. Should be turned off anyway, but... \catcode`\~=\other \catcode`\[=\other \catcode`\]=\other @@ -5749,8 +6116,19 @@ \catcode`\$=\other \catcode`\#=\other \catcode`\&=\other + \catcode`\%=\other \catcode`+=\other % avoid \+ for paranoia even though we've turned it off - % Make the characters 128-255 be printing characters + % + % This is to support \ in node names and titles, since the \ + % characters end up in a \csname. It's easier than + % leaving it active and making its active definition an actual \ + % character. What I don't understand is why it works in the *value* + % of the xrdef. Seems like it should be a catcode12 \, and that + % should not typeset properly. But it works, so I'm moving on for + % now. --karl, 15jan04. + \catcode`\\=\other + % + % Make the characters 128-255 be printing characters. {% \count 1=128 \def\loop{% @@ -5759,31 +6137,18 @@ \ifnum \count 1<256 \loop \fi }% }% - % The aux file uses ' as the escape (for now). - % Turn off \ as an escape so we do not lose on - % entries which were dumped with control sequences in their names. - % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^ - % Reference to such entries still does not work the way one would wish, - % but at least they do not bomb out when the aux file is read in. + % + % @ is our escape character in .aux files, and we need braces. \catcode`\{=1 \catcode`\}=2 - \catcode`\%=\other - \catcode`\'=0 - \catcode`\\=\other + \catcode`\@=0 % - \openin 1 \jobname.aux - \ifeof 1 \else - \closein 1 - \input \jobname.aux - \global\havexrefstrue - \global\warnedobstrue - \fi - % Open the new aux file. TeX will close it automatically at exit. - \openout\auxfile=\jobname.aux + \input \jobname.aux \endgroup} -% Footnotes. +\message{insertions,} +% including footnotes. \newcount \footnoteno @@ -5797,37 +6162,39 @@ % @footnotestyle is meaningful for info output only. \let\footnotestyle=\comment -\let\ptexfootnote=\footnote - {\catcode `\@=11 % % Auto-number footnotes. Otherwise like plain. \gdef\footnote{% + \let\indent=\ptexindent + \let\noindent=\ptexnoindent \global\advance\footnoteno by \@ne \edef\thisfootno{$^{\the\footnoteno}$}% % % In case the footnote comes at the end of a sentence, preserve the % extra spacing after we do the footnote number. \let\@sf\empty - \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi + \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi % % Remove inadvertent blank space before typesetting the footnote number. \unskip \thisfootno\@sf - \footnotezzz + \dofootnote }% % Don't bother with the trickery in plain.tex to not require the % footnote text as a parameter. Our footnotes don't need to be so general. % -% Oh yes, they do; otherwise, @ifset and anything else that uses -% \parseargline fail inside footnotes because the tokens are fixed when +% Oh yes, they do; otherwise, @ifset (and anything else that uses +% \parseargline) fails inside footnotes because the tokens are fixed when % the footnote is read. --karl, 16nov96. % -\long\gdef\footnotezzz{\insert\footins\bgroup +\gdef\dofootnote{% + \insert\footins\bgroup % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. + \hsize=\pagewidth \interlinepenalty\interfootnotelinepenalty \splittopskip\ht\strutbox % top baseline for broken footnotes \splitmaxdepth\dp\strutbox @@ -5857,48 +6224,68 @@ \footstrut \futurelet\next\fo@t } -\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t - \else\let\next\f@t\fi \next} -\def\f@@t{\bgroup\aftergroup\@foot\let\next} -\def\f@t#1{#1\@foot} -\def\@foot{\strut\par\egroup} - }%end \catcode `\@=11 -% @| inserts a changebar to the left of the current line. It should -% surround any changed text. This approach does *not* work if the -% change spans more than two lines of output. To handle that, we would -% have adopt a much more difficult approach (putting marks into the main -% vertical list for the beginning and end of each change). -% -\def\|{% - % \vadjust can only be used in horizontal mode. - \leavevmode - % - % Append this vertical mode material after the current line in the output. - \vadjust{% - % We want to insert a rule with the height and depth of the current - % leading; that is exactly what \strutbox is supposed to record. - \vskip-\baselineskip - % - % \vadjust-items are inserted at the left edge of the type. So - % the \llap here moves out into the left-hand margin. - \llap{% - % - % For a thicker or thinner bar, change the `1pt'. - \vrule height\baselineskip width1pt - % - % This is the space between the bar and the text. - \hskip 12pt - }% - }% +% In case a @footnote appears in a vbox, save the footnote text and create +% the real \insert just after the vbox finished. Otherwise, the insertion +% would be lost. +% Similarily, if a @footnote appears inside an alignment, save the footnote +% text to a box and make the \insert when a row of the table is finished. +% And the same can be done for other insert classes. --kasal, 16nov03. + +% Replace the \insert primitive by a cheating macro. +% Deeper inside, just make sure that the saved insertions are not spilled +% out prematurely. +% +\def\startsavinginserts{% + \ifx \insert\ptexinsert + \let\insert\saveinsert + \else + \let\checkinserts\relax + \fi } -% For a final copy, take out the rectangles -% that mark overfull boxes (in case you have decided -% that the text looks ok even though it passes the margin). +% This \insert replacement works for both \insert\footins{foo} and +% \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}. % -\def\finalout{\overfullrule=0pt} +\def\saveinsert#1{% + \edef\next{\noexpand\savetobox \makeSAVEname#1}% + \afterassignment\next + % swallow the left brace + \let\temp = +} +\def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}} +\def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1} + +\def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi} + +\def\placesaveins#1{% + \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname + {\box#1}% +} + +% eat @SAVE -- beware, all of them have catcode \other: +{ + \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-) + \gdef\gobblesave @SAVE{} +} + +% initialization: +\def\newsaveins #1{% + \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}% + \next +} +\def\newsaveinsX #1{% + \csname newbox\endcsname #1% + \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts + \checksaveins #1}% +} + +% initialize: +\let\checkinserts\empty +\newsaveins\footins +\newsaveins\margin + % @image. We use the macros from epsf.tex to support this. % If epsf.tex is not installed and @image is used, we complain. @@ -5908,12 +6295,12 @@ % undone and the next image would fail. \openin 1 = epsf.tex \ifeof 1 \else - \closein 1 - % Do not bother showing banner with post-v2.7 epsf.tex (available in - % doc/epsf.tex until it shows up on ctan). + % Do not bother showing banner with epsf.tex v2.7k (available in + % doc/epsf.tex and on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex \fi +\closein 1 % % We will only complain once about lack of epsf.tex. \newif\ifwarnednoepsf @@ -5949,7 +6336,7 @@ \nobreak\bigskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space - % above and below. + % above and below. \nobreak\vskip\parskip \nobreak \line\bgroup\hss @@ -5969,6 +6356,269 @@ \endgroup} +% @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables, +% etc. We don't actually implement floating yet, we always include the +% float "here". But it seemed the best name for the future. +% +\envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish} + +% There may be a space before second and/or third parameter; delete it. +\def\eatcommaspace#1, {#1,} + +% #1 is the optional FLOATTYPE, the text label for this float, typically +% "Figure", "Table", "Example", etc. Can't contain commas. If omitted, +% this float will not be numbered and cannot be referred to. +% +% #2 is the optional xref label. Also must be present for the float to +% be referable. +% +% #3 is the optional positioning argument; for now, it is ignored. It +% will somehow specify the positions allowed to float to (here, top, bottom). +% +% We keep a separate counter for each FLOATTYPE, which we reset at each +% chapter-level command. +\let\resetallfloatnos=\empty +% +\def\dofloat#1,#2,#3,#4\finish{% + \let\thiscaption=\empty + \let\thisshortcaption=\empty + % + % don't lose footnotes inside @float. + % + % BEWARE: when the floats start float, we have to issue warning whenever an + % insert appears inside a float which could possibly float. --kasal, 26may04 + % + \startsavinginserts + % + % We can't be used inside a paragraph. + \par + % + \vtop\bgroup + \def\floattype{#1}% + \def\floatlabel{#2}% + \def\floatloc{#3}% we do nothing with this yet. + % + \ifx\floattype\empty + \let\safefloattype=\empty + \else + {% + % the floattype might have accents or other special characters, + % but we need to use it in a control sequence name. + \indexnofonts + \turnoffactive + \xdef\safefloattype{\floattype}% + }% + \fi + % + % If label is given but no type, we handle that as the empty type. + \ifx\floatlabel\empty \else + % We want each FLOATTYPE to be numbered separately (Figure 1, + % Table 1, Figure 2, ...). (And if no label, no number.) + % + \expandafter\getfloatno\csname\safefloattype floatno\endcsname + \global\advance\floatno by 1 + % + {% + % This magic value for \thissection is output by \setref as the + % XREFLABEL-title value. \xrefX uses it to distinguish float + % labels (which have a completely different output format) from + % node and anchor labels. And \xrdef uses it to construct the + % lists of floats. + % + \edef\thissection{\floatmagic=\safefloattype}% + \setref{\floatlabel}{Yfloat}% + }% + \fi + % + % start with \parskip glue, I guess. + \vskip\parskip + % + % Don't suppress indentation if a float happens to start a section. + \restorefirstparagraphindent +} + +% we have these possibilities: +% @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap +% @float Foo,lbl & no caption: Foo 1.1 +% @float Foo & @caption{Cap}: Foo: Cap +% @float Foo & no caption: Foo +% @float ,lbl & Caption{Cap}: 1.1: Cap +% @float ,lbl & no caption: 1.1 +% @float & @caption{Cap}: Cap +% @float & no caption: +% +\def\Efloat{% + \let\floatident = \empty + % + % In all cases, if we have a float type, it comes first. + \ifx\floattype\empty \else \def\floatident{\floattype}\fi + % + % If we have an xref label, the number comes next. + \ifx\floatlabel\empty \else + \ifx\floattype\empty \else % if also had float type, need tie first. + \appendtomacro\floatident{\tie}% + \fi + % the number. + \appendtomacro\floatident{\chaplevelprefix\the\floatno}% + \fi + % + % Start the printed caption with what we've constructed in + % \floatident, but keep it separate; we need \floatident again. + \let\captionline = \floatident + % + \ifx\thiscaption\empty \else + \ifx\floatident\empty \else + \appendtomacro\captionline{: }% had ident, so need a colon between + \fi + % + % caption text. + \appendtomacro\captionline{\scanexp\thiscaption}% + \fi + % + % If we have anything to print, print it, with space before. + % Eventually this needs to become an \insert. + \ifx\captionline\empty \else + \vskip.5\parskip + \captionline + % + % Space below caption. + \vskip\parskip + \fi + % + % If have an xref label, write the list of floats info. Do this + % after the caption, to avoid chance of it being a breakpoint. + \ifx\floatlabel\empty \else + % Write the text that goes in the lof to the aux file as + % \floatlabel-lof. Besides \floatident, we include the short + % caption if specified, else the full caption if specified, else nothing. + {% + \atdummies \turnoffactive \otherbackslash + % since we read the caption text in the macro world, where ^^M + % is turned into a normal character, we have to scan it back, so + % we don't write the literal three characters "^^M" into the aux file. + \scanexp{% + \xdef\noexpand\gtemp{% + \ifx\thisshortcaption\empty + \thiscaption + \else + \thisshortcaption + \fi + }% + }% + \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident + \ifx\gtemp\empty \else : \gtemp \fi}}% + }% + \fi + \egroup % end of \vtop + % + % place the captured inserts + % + % BEWARE: when the floats start float, we have to issue warning whenever an + % insert appears inside a float which could possibly float. --kasal, 26may04 + % + \checkinserts +} + +% Append the tokens #2 to the definition of macro #1, not expanding either. +% +\def\appendtomacro#1#2{% + \expandafter\def\expandafter#1\expandafter{#1#2}% +} + +% @caption, @shortcaption +% +\def\caption{\docaption\thiscaption} +\def\shortcaption{\docaption\thisshortcaption} +\def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption} +\def\defcaption#1#2{\egroup \def#1{#2}} + +% The parameter is the control sequence identifying the counter we are +% going to use. Create it if it doesn't exist and assign it to \floatno. +\def\getfloatno#1{% + \ifx#1\relax + % Haven't seen this figure type before. + \csname newcount\endcsname #1% + % + % Remember to reset this floatno at the next chap. + \expandafter\gdef\expandafter\resetallfloatnos + \expandafter{\resetallfloatnos #1=0 }% + \fi + \let\floatno#1% +} + +% \setref calls this to get the XREFLABEL-snt value. We want an @xref +% to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we +% first read the @float command. +% +\def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}% + +% Magic string used for the XREFLABEL-title value, so \xrefX can +% distinguish floats from other xref types. +\def\floatmagic{!!float!!} + +% #1 is the control sequence we are passed; we expand into a conditional +% which is true if #1 represents a float ref. That is, the magic +% \thissection value which we \setref above. +% +\def\iffloat#1{\expandafter\doiffloat#1==\finish} +% +% #1 is (maybe) the \floatmagic string. If so, #2 will be the +% (safe) float type for this float. We set \iffloattype to #2. +% +\def\doiffloat#1=#2=#3\finish{% + \def\temp{#1}% + \def\iffloattype{#2}% + \ifx\temp\floatmagic +} + +% @listoffloats FLOATTYPE - print a list of floats like a table of contents. +% +\parseargdef\listoffloats{% + \def\floattype{#1}% floattype + {% + % the floattype might have accents or other special characters, + % but we need to use it in a control sequence name. + \indexnofonts + \turnoffactive + \xdef\safefloattype{\floattype}% + }% + % + % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE. + \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax + \ifhavexrefs + % if the user said @listoffloats foo but never @float foo. + \message{\linenumber No `\safefloattype' floats to list.}% + \fi + \else + \begingroup + \leftskip=\tocindent % indent these entries like a toc + \let\do=\listoffloatsdo + \csname floatlist\safefloattype\endcsname + \endgroup + \fi +} + +% This is called on each entry in a list of floats. We're passed the +% xref label, in the form LABEL-title, which is how we save it in the +% aux file. We strip off the -title and look up \XRLABEL-lof, which +% has the text we're supposed to typeset here. +% +% Figures without xref labels will not be included in the list (since +% they won't appear in the aux file). +% +\def\listoffloatsdo#1{\listoffloatsdoentry#1\finish} +\def\listoffloatsdoentry#1-title\finish{{% + % Can't fully expand XR#1-lof because it can contain anything. Just + % pass the control sequence. On the other hand, XR#1-pg is just the + % page number, and we want to fully expand that so we can get a link + % in pdf output. + \toksA = \expandafter{\csname XR#1-lof\endcsname}% + % + % use the same \entry macro we use to generate the TOC and index. + \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}% + \writeentry +}} + \message{localization,} % and i18n. @@ -5977,19 +6627,17 @@ % properly. Single argument is the language abbreviation. % It would be nice if we could set up a hyphenation file here. % -\def\documentlanguage{\parsearg\dodocumentlanguage} -\def\dodocumentlanguage#1{% +\parseargdef\documentlanguage{% \tex % read txi-??.tex file in plain TeX. - % Read the file if it exists. - \openin 1 txi-#1.tex - \ifeof1 - \errhelp = \nolanghelp - \errmessage{Cannot read language file txi-#1.tex}% - \let\temp = \relax - \else - \def\temp{\input txi-#1.tex }% - \fi - \temp + % Read the file if it exists. + \openin 1 txi-#1.tex + \ifeof 1 + \errhelp = \nolanghelp + \errmessage{Cannot read language file txi-#1.tex}% + \else + \input txi-#1.tex + \fi + \closein 1 \endgroup } \newhelp\nolanghelp{The given language definition file cannot be found or @@ -6035,11 +6683,13 @@ } % Parameters in order: 1) textheight; 2) textwidth; 3) voffset; -% 4) hoffset; 5) binding offset; 6) topskip. We also call -% \setleading{\textleading}, so the caller should define \textleading. -% The caller should also set \parskip. +% 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8) +% physical page width. % -\def\internalpagesizes#1#2#3#4#5#6{% +% We also call \setleading{\textleading}, so the caller should define +% \textleading. The caller should also set \parskip. +% +\def\internalpagesizes#1#2#3#4#5#6#7#8{% \voffset = #3\relax \topskip = #6\relax \splittopskip = \topskip @@ -6058,28 +6708,27 @@ \normaloffset = #4\relax \bindingoffset = #5\relax % + \ifpdf + \pdfpageheight #7\relax + \pdfpagewidth #8\relax + \fi + % \setleading{\textleading} % \parindent = \defaultparindent \setemergencystretch } -% Use `small' versions. -% -\def\smallenvironments{% - \let\smalldisplay = \smalldisplayx - \let\smallexample = \smalllispx - \let\smallformat = \smallformatx - \let\smalllisp = \smalllispx -} - % @letterpaper (the default). \def\letterpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % If page is nothing but text, make it come out even. - \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}% + \internalpagesizes{46\baselineskip}{6in}% + {\voffset}{.25in}% + {\bindingoffset}{36pt}% + {11in}{8.5in}% }} % Use @smallbook to reset parameters for 7x9.5 (or so) format. @@ -6087,26 +6736,42 @@ \parskip = 2pt plus 1pt \textleading = 12pt % - \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}% + \internalpagesizes{7.5in}{5in}% + {\voffset}{.25in}% + {\bindingoffset}{16pt}% + {9.25in}{7in}% % \lispnarrowing = 0.3in \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt - \deftypemargin = 0pt \defbodyindent = .5cm - \smallenvironments }} % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt - \textleading = 12pt + \textleading = 13.2pt % - \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}% + % Double-side printing via postscript on Laserjet 4050 + % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm. + % To change the settings for a different printer or situation, adjust + % \normaloffset until the front-side and back-side texts align. Then + % do the same for \bindingoffset. You can set these for testing in + % your texinfo source file like this: + % @tex + % \global\normaloffset = -6mm + % \global\bindingoffset = 10mm + % @end tex + \internalpagesizes{51\baselineskip}{160mm} + {\voffset}{\hoffset}% + {\bindingoffset}{44pt}% + {297mm}{210mm}% % \tolerance = 700 \hfuzz = 1pt + \contentsrightmargin = 0pt + \defbodyindent = 5mm }} % Use @afivepaper to print on European A5 paper. @@ -6116,44 +6781,46 @@ \parskip = 2pt plus 1pt minus 0.1pt \textleading = 12.5pt % - \internalpagesizes{166mm}{120mm}{\voffset}{-8mm}{\bindingoffset}{8pt}% + \internalpagesizes{160mm}{120mm}% + {\voffset}{\hoffset}% + {\bindingoffset}{8pt}% + {210mm}{148mm}% % \lispnarrowing = 0.2in \tolerance = 800 \hfuzz = 1.2pt - \contentsrightmargin = 0mm - \deftypemargin = 0pt + \contentsrightmargin = 0pt \defbodyindent = 2mm \tableindent = 12mm - % - \smallenvironments }} -% A specific text layout, 24x15cm overall, intended for A4 paper. Top margin -% 29mm, hence bottom margin 28mm, nominal side margin 3cm. +% A specific text layout, 24x15cm overall, intended for A4 paper. \def\afourlatex{{\globaldefs = 1 - \textleading = 13.6pt - % \afourpaper - \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}% + \internalpagesizes{237mm}{150mm}% + {\voffset}{4.6mm}% + {\bindingoffset}{7mm}% + {297mm}{210mm}% % - % Must explicitly reset to 0 because we call \afourpaper, apparently, - % although this does not entirely make sense. + % Must explicitly reset to 0 because we call \afourpaper. \globaldefs = 0 }} -% Use @afourwide to print on European A4 paper in wide format. -\def\afourwide{% +% Use @afourwide to print on A4 paper in landscape format. +\def\afourwide{{\globaldefs = 1 \afourpaper - \internalpagesizes{6.5in}{9.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}% -} + \internalpagesizes{241mm}{165mm}% + {\voffset}{-2.95mm}% + {\bindingoffset}{7mm}% + {297mm}{210mm}% + \globaldefs = 0 +}} % @pagesizes TEXTHEIGHT[,TEXTWIDTH] % Perhaps we should allow setting the margins, \topskip, \parskip, % and/or leading, also. Or perhaps we should compute them somehow. % -\def\pagesizes{\parsearg\pagesizesxxx} -\def\pagesizesxxx#1{\pagesizesyyy #1,,\finish} +\parseargdef\pagesizes{\pagesizesyyy #1,,\finish} \def\pagesizesyyy#1,#2,#3\finish{{% \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi \globaldefs = 1 @@ -6161,7 +6828,16 @@ \parskip = 3pt plus 2pt minus 1pt \setleading{\textleading}% % - \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}% + \dimen0 = #1 + \advance\dimen0 by \voffset + % + \dimen2 = \hsize + \advance\dimen2 by \normaloffset + % + \internalpagesizes{#1}{\hsize}% + {\voffset}{\normaloffset}% + {\bindingoffset}{44pt}% + {\dimen0}{\dimen2}% }} % Set default to letter. @@ -6191,8 +6867,8 @@ \def\normalplus{+} \def\normaldollar{$}%$ font-lock fix -% This macro is used to make a character print one way in ttfont -% where it can probably just be output, and another way in other fonts, +% This macro is used to make a character print one way in \tt +% (where it can probably be output as-is), and another way in other fonts, % where something hairier probably needs to be done. % % #1 is what to print if we are indeed using \tt; #2 is what to print @@ -6225,7 +6901,7 @@ \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} % Subroutine for the previous macro. -\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}} +\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } \catcode`\|=\active \def|{{\tt\char124}} @@ -6239,15 +6915,6 @@ \def+{{\tt \char 43}} \catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix -%\catcode 27=\active -%\def^^[{$\diamondsuit$} - -% Set up an active definition for =, but don't enable it most of the time. -{\catcode`\==\active -\global\def={{\tt \char 61}}} - -\catcode`+=\active -\catcode`\_=\active % If a .fmt file is being used, characters that might appear in a file % name cannot be active until we have parsed the command line. @@ -6257,44 +6924,48 @@ \catcode`\@=0 -% \rawbackslashxx output one backslash character in current font -\global\chardef\rawbackslashxx=`\\ -%{\catcode`\\=\other -%@gdef@rawbackslashxx{\}} - -% \rawbackslash redefines \ as input to do \rawbackslashxx. +% \backslashcurfont outputs one backslash character in current font, +% as in \char`\\. +\global\chardef\backslashcurfont=`\\ +\global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work + +% \rawbackslash defines an active \ to do \backslashcurfont. +% \otherbackslash defines an active \ to be a literal `\' character with +% catcode other. {\catcode`\\=\active -@gdef@rawbackslash{@let\=@rawbackslashxx }} + @gdef@rawbackslash{@let\=@backslashcurfont} + @gdef@otherbackslash{@let\=@realbackslash} +} + +% \realbackslash is an actual character `\' with catcode other. +{\catcode`\\=\other @gdef@realbackslash{\}} % \normalbackslash outputs one backslash in fixed width font. -\def\normalbackslash{{\tt\rawbackslashxx}} +\def\normalbackslash{{\tt\backslashcurfont}} -% \catcode 17=0 % Define control-q \catcode`\\=\active % Used sometimes to turn off (effectively) the active characters % even after parsing them. -@def@turnoffactive{@let"=@normaldoublequote -@let\=@realbackslash -@let~=@normaltilde -@let^=@normalcaret -@let_=@normalunderscore -@let|=@normalverticalbar -@let<=@normalless -@let>=@normalgreater -@let+=@normalplus -@let$=@normaldollar}%$ font-lock fix - -@def@normalturnoffactive{@let"=@normaldoublequote -@let\=@normalbackslash -@let~=@normaltilde -@let^=@normalcaret -@let_=@normalunderscore -@let|=@normalverticalbar -@let<=@normalless -@let>=@normalgreater -@let+=@normalplus -@let$=@normaldollar}%$ font-lock fix +@def@turnoffactive{% + @let"=@normaldoublequote + @let\=@realbackslash + @let~=@normaltilde + @let^=@normalcaret + @let_=@normalunderscore + @let|=@normalverticalbar + @let<=@normalless + @let>=@normalgreater + @let+=@normalplus + @let$=@normaldollar %$ font-lock fix + @unsepspaces +} + +% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of +% the literal character `\'. (Thus, \ is not expandable when this is in +% effect.) +% +@def@normalturnoffactive{@turnoffactive @let\=@normalbackslash} % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. @@ -6322,15 +6993,11 @@ % Say @foo, not \foo, in error messages. @escapechar = `@@ -% These look ok in all fonts, so just make them not special. +% These look ok in all fonts, so just make them not special. @catcode`@& = @other @catcode`@# = @other @catcode`@% = @other -@c Set initial fonts. -@textfonts -@rm - @c Local variables: @c eval: (add-hook 'write-file-hooks 'time-stamp) @@ -6339,3 +7006,9 @@ @c time-stamp-format: "%:y-%02m-%02d.%02H" @c time-stamp-end: "}" @c End: + +@c vim:sw=2: + +@ignore + arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115 +@end ignore diff -rNu smalltalk-2.1.9/config/wlong-double.m4 smalltalk-2.1.10/config/wlong-double.m4 --- smalltalk-2.1.9/config/wlong-double.m4 1970-01-01 01:00:00.000000000 +0100 +++ smalltalk-2.1.10/config/wlong-double.m4 2004-11-25 15:19:17.000000000 +0100 @@ -0,0 +1,19 @@ +dnl I'd like this to be edited in -*- Autoconf -*- mode... +dnl +AC_DEFUN([GST_C_WARN_LONG_DOUBLE], +[AC_CACHE_CHECK([whether -Wno-long-double is needed], gst_cv_c_wno_long_double, +[gst_cv_c_wno_long_double=no +save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Werror" +AC_COMPILE_IFELSE([[long double a;]], + [gst_cv_c_wno_long_double=no; break], + [CFLAGS="$CFLAGS -Wno-long-double" + AC_COMPILE_IFELSE([[long double a;]], + [gst_cv_c_wno_long_double=yes; break], + [AC_MSG_ERROR([compiler does not have long double])])]) +CFLAGS="$save_CFLAGS" +]) +if test $gst_cv_c_wno_long_double = yes; then + CFLAGS="$CFLAGS -Wno-long-double" +fi +])# ACX_C_HIDDEN_VISIBILITY diff -rNu smalltalk-2.1.9/config/ylwrap smalltalk-2.1.10/config/ylwrap --- smalltalk-2.1.9/config/ylwrap 2003-06-09 09:36:06.000000000 +0200 +++ smalltalk-2.1.10/config/ylwrap 2005-02-02 14:52:54.000000000 +0100 @@ -1,8 +1,10 @@ #! /bin/sh # ylwrap - wrapper for lex/yacc invocations. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002 Free Software -# Foundation, Inc. + +scriptversion=2004-09-10.20 + +# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004 +# Free Software Foundation, Inc. # # Written by Tom Tromey . # @@ -25,23 +27,52 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -# Usage: -# ylwrap INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... -# * INPUT is the input file -# * OUTPUT is file PROG generates -# * DESIRED is file we actually want -# * PROGRAM is program to run -# * ARGS are passed to PROG -# Any number of OUTPUT,DESIRED pairs may be used. +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +case "$1" in + '') + echo "$0: No files given. Try \`$0 --help' for more information." 1>&2 + exit 1 + ;; + --basedir) + basedir=$2 + shift 2 + ;; + -h|--h*) + cat <<\EOF +Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... + +Wrapper for lex/yacc invocations, renaming files as desired. + + INPUT is the input file + OUTPUT is one file PROG generates + DESIRED is the file we actually want instead of OUTPUT + PROGRAM is program to run + ARGS are passed to PROG + +Any number of OUTPUT,DESIRED pairs may be used. + +Report bugs to . +EOF + exit 0 + ;; + -v|--v*) + echo "ylwrap $scriptversion" + exit 0 + ;; +esac + # The input. input="$1" shift case "$input" in - [\\/]* | ?:[\\/]*) + [\\/]* | ?:[\\/]*) # Absolute path; do nothing. ;; - *) + *) # Relative path. Make it absolute. input="`pwd`/$input" ;; @@ -49,12 +80,12 @@ pairlist= while test "$#" -ne 0; do - if test "$1" = "--"; then - shift - break - fi - pairlist="$pairlist $1" - shift + if test "$1" = "--"; then + shift + break + fi + pairlist="$pairlist $1" + shift done # The program to run. @@ -62,8 +93,8 @@ shift # Make any relative path in $prog absolute. case "$prog" in - [\\/]* | ?:[\\/]*) ;; - *[\\/]*) prog="`pwd`/$prog" ;; + [\\/]* | ?:[\\/]*) ;; + *[\\/]*) prog="`pwd`/$prog" ;; esac # FIXME: add hostname here for parallel makes that run commands on @@ -75,86 +106,117 @@ cd $dirname case $# in - 0) $prog "$input" ;; - *) $prog "$@" "$input" ;; + 0) $prog "$input" ;; + *) $prog "$@" "$input" ;; esac -status=$? +ret=$? -if test $status -eq 0; then - set X $pairlist - shift - first=yes - # Since DOS filename conventions don't allow two dots, - # the DOS version of Bison writes out y_tab.c instead of y.tab.c - # and y_tab.h instead of y.tab.h. Test to see if this is the case. - y_tab_nodot="no" - if test -f y_tab.c || test -f y_tab.h; then - y_tab_nodot="yes" - fi - - # The directory holding the input. - input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'` - # Quote $INPUT_DIR so we can use it in a regexp. - # FIXME: really we should care about more than `.' and `\'. - input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'` - - while test "$#" -ne 0; do - from="$1" - # Handle y_tab.c and y_tab.h output by DOS - if test $y_tab_nodot = "yes"; then - if test $from = "y.tab.c"; then - from="y_tab.c" - else - if test $from = "y.tab.h"; then - from="y_tab.h" - fi - fi - fi - if test -f "$from"; then - # If $2 is an absolute path name, then just use that, - # otherwise prepend `../'. - case "$2" in - [\\/]* | ?:[\\/]*) target="$2";; - *) target="../$2";; - esac - - # Edit out `#line' or `#' directives. - # - # We don't want the resulting debug information to point at - # an absolute srcdir; it is better for it to just mention the - # .y file with no path. - # - # We want to use the real output file name, not yy.lex.c for - # instance. - # - # We want the include guards to be adjusted too. - FROM=`echo "$from" | sed \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ - -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` - TARGET=`echo "$2" | sed \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ - -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` - sed "/^#/{s,$input_rx,,;s,$from,$2,;s,$FORM,$TO,;}" "$from" >"$target" || - status=$? +if test $ret -eq 0; then + set X $pairlist + shift + first=yes + # Since DOS filename conventions don't allow two dots, + # the DOS version of Bison writes out y_tab.c instead of y.tab.c + # and y_tab.h instead of y.tab.h. Test to see if this is the case. + y_tab_nodot="no" + if test -f y_tab.c || test -f y_tab.h; then + y_tab_nodot="yes" + fi + + # The directory holding the input. + input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'` + # Quote $INPUT_DIR so we can use it in a regexp. + # FIXME: really we should care about more than `.' and `\'. + input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'` + + while test "$#" -ne 0; do + from="$1" + # Handle y_tab.c and y_tab.h output by DOS + if test $y_tab_nodot = "yes"; then + if test $from = "y.tab.c"; then + from="y_tab.c" else - # A missing file is only an error for the first file. This - # is a blatant hack to let us support using "yacc -d". If -d - # is not specified, we don't want an error when the header - # file is "missing". - if test $first = yes; then - status=1 - fi + if test $from = "y.tab.h"; then + from="y_tab.h" + fi + fi + fi + if test -f "$from"; then + # If $2 is an absolute path name, then just use that, + # otherwise prepend `../'. + case "$2" in + [\\/]* | ?:[\\/]*) target="$2";; + *) target="../$2";; + esac + + # We do not want to overwrite a header file if it hasn't + # changed. This avoid useless recompilations. However the + # parser itself (the first file) should always be updated, + # because it is the destination of the .y.c rule in the + # Makefile. Divert the output of all other files to a temporary + # file so we can compare them to existing versions. + if test $first = no; then + realtarget="$target" + target="tmp-`echo $target | sed s/.*[\\/]//g`" fi - shift - shift - first=no - done + # Edit out `#line' or `#' directives. + # + # We don't want the resulting debug information to point at + # an absolute srcdir; it is better for it to just mention the + # .y file with no path. + # + # We want to use the real output file name, not yy.lex.c for + # instance. + # + # We want the include guards to be adjusted too. + FROM=`echo "$from" | sed \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ + -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` + TARGET=`echo "$2" | sed \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ + -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` + + sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \ + -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$? + + # Check whether header files must be updated. + if test $first = no; then + if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then + echo "$2" is unchanged + rm -f "$target" + else + echo updating "$2" + mv -f "$target" "$realtarget" + fi + fi + else + # A missing file is only an error for the first file. This + # is a blatant hack to let us support using "yacc -d". If -d + # is not specified, we don't want an error when the header + # file is "missing". + if test $first = yes; then + ret=1 + fi + fi + shift + shift + first=no + done else - status=$? + ret=$? fi # Remove the directory. cd .. rm -rf $dirname -exit $status +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff -rNu smalltalk-2.1.9/config.h.in smalltalk-2.1.10/config.h.in --- smalltalk-2.1.9/config.h.in 2004-10-02 15:32:13.000000000 +0200 +++ smalltalk-2.1.10/config.h.in 2005-02-03 09:32:15.000000000 +0100 @@ -235,6 +235,9 @@ /* Define to 1 if you have the `poll' function. */ #undef HAVE_POLL +/* Define to 1 if you have the header file. */ +#undef HAVE_POLL_H + /* Define to 1 if you have the `popen' function. */ #undef HAVE_POPEN diff -rNu smalltalk-2.1.9/configure smalltalk-2.1.10/configure --- smalltalk-2.1.9/configure 2004-10-02 15:30:00.000000000 +0200 +++ smalltalk-2.1.10/configure 2005-02-03 09:30:51.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for GNU Smalltalk 2.1.9. +# Generated by GNU Autoconf 2.59 for GNU Smalltalk 2.1.10. # # Report bugs to . # @@ -280,7 +280,7 @@ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. -if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then @@ -419,8 +419,8 @@ # Identity of this package. PACKAGE_NAME='GNU Smalltalk' PACKAGE_TARNAME='smalltalk' -PACKAGE_VERSION='2.1.9' -PACKAGE_STRING='GNU Smalltalk 2.1.9' +PACKAGE_VERSION='2.1.10' +PACKAGE_STRING='GNU Smalltalk 2.1.10' PACKAGE_BUGREPORT='help-smalltalk@gnu.org' ac_unique_file="main.c" @@ -463,7 +463,7 @@ ac_subdirs_all="$ac_subdirs_all snprintfv" ac_subdirs_all="$ac_subdirs_all sigsegv" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PACKAGE VERSION VERSION_INFO MAINTAINER INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP LN_S INSTALL_INFO EMACS EMACSLOADPATH lispdir LEX YACC RM LIBSNPRINTFV INCSNPRINTFV subdirs HAVE_SIGSEGV_TRUE HAVE_SIGSEGV_FALSE LIBC_SO_NAME LIBC_SO_DIR ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP LIBTOOL ICON ALLOCA LIBOBJS INSTALL_LTDL_TRUE INSTALL_LTDL_FALSE CONVENIENCE_LTDL_TRUE CONVENIENCE_LTDL_FALSE LIBADD_DL LIBICONV LTLIBICONV LIBGMP TCLSH LIBTCLTK INCTCLTK LIBREADLINE MODULES_EXAMPLE MODULES_TCP MODULES_GTK MODULES_I18N MODULES_TK I18N_DISABLED GTK_DISABLED BLOX_IMPLEMENTATION PKG_CONFIG ATK_CFLAGS ATK_LIBS PANGO_CFLAGS PANGO_LIBS GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS GLIB_GENMARSHAL GOBJECT_QUERY GLIB_MKENUMS HAVE_GTK_TRUE HAVE_GTK_FALSE LIGHTNING_MAIN_TRUE LIGHTNING_MAIN_FALSE HAVE_INSTALLED_LIGHTNING_TRUE HAVE_INSTALLED_LIGHTNING_FALSE USE_JIT_TRANSLATION_TRUE USE_JIT_TRANSLATION_FALSE WITH_EMACS_TRUE WITH_EMACS_FALSE MODULES INCLTDL LIBLTDL LDPATH LTALLOCA LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PACKAGE VERSION VERSION_INFO MAINTAINER INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP LN_S INSTALL_INFO EMACS EMACSLOADPATH lispdir LEX YACC RM LIBSNPRINTFV INCSNPRINTFV subdirs HAVE_SIGSEGV_TRUE HAVE_SIGSEGV_FALSE LIBC_SO_NAME LIBC_SO_DIR ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP LIBTOOL ICON ALLOCA LIBOBJS INSTALL_LTDL_TRUE INSTALL_LTDL_FALSE CONVENIENCE_LTDL_TRUE CONVENIENCE_LTDL_FALSE LIBADD_DL LIBICONV LTLIBICONV LIBGMP TCLSH LIBTCLTK INCTCLTK LIBREADLINE MODULES_EXAMPLE MODULES_TCP MODULES_GTK MODULES_I18N MODULES_TK I18N_DISABLED GTK_DISABLED BLOX_IMPLEMENTATION PKG_CONFIG ATK_CFLAGS ATK_LIBS PANGO_CFLAGS PANGO_LIBS GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS GLIB_GENMARSHAL GOBJECT_QUERY GLIB_MKENUMS HAVE_GTK_TRUE HAVE_GTK_FALSE LIGHTNING_MAIN_TRUE LIGHTNING_MAIN_FALSE HAVE_INSTALLED_LIGHTNING_TRUE HAVE_INSTALLED_LIGHTNING_FALSE USE_JIT_TRANSLATION_TRUE USE_JIT_TRANSLATION_FALSE WITH_EMACS_TRUE WITH_EMACS_FALSE MODULES INCLTDL LIBLTDL LDPATH LTALLOCA LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -940,7 +940,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 2.1.9 to adapt to many kinds of systems. +\`configure' configures GNU Smalltalk 2.1.10 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1006,7 +1006,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GNU Smalltalk 2.1.9:";; + short | recursive ) echo "Configuration of GNU Smalltalk 2.1.10:";; esac cat <<\_ACEOF @@ -1165,7 +1165,7 @@ test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -GNU Smalltalk configure 2.1.9 +GNU Smalltalk configure 2.1.10 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. @@ -1179,7 +1179,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 2.1.9, which was +It was created by GNU Smalltalk $as_me 2.1.10, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -1591,7 +1591,7 @@ ac_config_headers="$ac_config_headers config.h" -am__api_version="1.8" +am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: @@ -1743,13 +1743,21 @@ fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # Keeping the `.' argument allows $(mkdir_p) to be used without - # argument. Indeed, we sometimes output rules like + # We used to keeping the `.' as first argument, in order to + # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. - # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more - # expensive solution, as it forces Make to start a sub-shell.) - mkdir_p='mkdir -p -- .' + # where $(somedir) is conditionally defined. However this is wrong + # for two reasons: + # 1. if the package is installed by a user who cannot write `.' + # make install will fail, + # 2. the above comment should most certainly read + # $(mkdir_p) $(DESTDIR)$(somedir) + # so it does not work when $(somedir) is undefined and + # $(DESTDIR) is not. + # To support the latter case, we have to write + # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), + # so the `.' trick is pointless. + mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as @@ -1865,7 +1873,7 @@ # Define the identity of the package. PACKAGE='smalltalk' - VERSION='2.1.9' + VERSION='2.1.10' cat >>confdefs.h <<_ACEOF @@ -1893,9 +1901,6 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -AMTAR=${AMTAR-"${am_missing_run}tar"} - install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user @@ -1988,6 +1993,13 @@ # We need awk for the "check" target. The system "awk" is bad on # some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + @@ -5063,6 +5075,91 @@ ;; esac +echo "$as_me:$LINENO: checking whether -Wno-long-double is needed" >&5 +echo $ECHO_N "checking whether -Wno-long-double is needed... $ECHO_C" >&6 +if test "${gst_cv_c_wno_long_double+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gst_cv_c_wno_long_double=no +save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Werror" +cat >conftest.$ac_ext <<_ACEOF +long double a; +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gst_cv_c_wno_long_double=no; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +CFLAGS="$CFLAGS -Wno-long-double" + cat >conftest.$ac_ext <<_ACEOF +long double a; +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + gst_cv_c_wno_long_double=yes; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: compiler does not have long double" >&5 +echo "$as_me: error: compiler does not have long double" >&2;} + { (exit 1); exit 1; }; } +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +CFLAGS="$save_CFLAGS" + +fi +echo "$as_me:$LINENO: result: $gst_cv_c_wno_long_double" >&5 +echo "${ECHO_T}$gst_cv_c_wno_long_double" >&6 +if test $gst_cv_c_wno_long_double = yes; then + CFLAGS="$CFLAGS -Wno-long-double" +fi + echo "$as_me:$LINENO: checking for goto void *" >&5 @@ -5401,10 +5498,10 @@ fi done done -SED=$lt_cv_path_SED fi +SED=$lt_cv_path_SED echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 @@ -5530,6 +5627,15 @@ *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 @@ -5605,30 +5711,26 @@ lt_cv_deplibs_check_method=pass_all ;; -bsdi4*) +bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; -cygwin* | mingw* | pw32*) - # win32_libid is a shell function defined in ltmain.sh +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='win32_libid' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump'. + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) - # this will be overwritten by pass_all, but leave it in just in case - lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' - lt_cv_file_magic_cmd='/usr/bin/file -L' - case "$host_os" in - rhapsody* | darwin1.[012]) - lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System` - ;; - *) # Darwin 1.3 on - lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' - ;; - esac lt_cv_deplibs_check_method=pass_all ;; @@ -5671,38 +5773,18 @@ ;; irix5* | irix6* | nonstopux*) - case $host_os in - irix5* | nonstopux*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" - ;; - *) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" - ;; + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; esac - lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) - # linux always uses pass_all now, this code is the old way (tm) - case $host_cpu in - alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh*) - lt_cv_deplibs_check_method=pass_all ;; - *) - # glibc up to 2.1.1 does not perform some relocations on ARM - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; - esac lt_cv_deplibs_check_method=pass_all - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; netbsd*) @@ -5724,19 +5806,14 @@ ;; openbsd*) - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else - lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' - lt_cv_file_magic_test_file=/shlib/libc.so lt_cv_deplibs_check_method=pass_all ;; @@ -5746,7 +5823,6 @@ solaris*) lt_cv_deplibs_check_method=pass_all - lt_cv_file_magic_test_file=/lib/libc.so ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) @@ -5825,7 +5901,7 @@ ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 5828 "configure"' > conftest.$ac_ext + echo '#line 5904 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -6389,7 +6465,7 @@ echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 - testring="ABCD" + teststring="ABCD" case $build_os in msdosdjgpp*) @@ -6424,20 +6500,34 @@ lt_cv_sys_max_cmd_len=8192; ;; + netbsd* | freebsd* | openbsd* | darwin* ) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for *BSD + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + ;; + *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while (test "X"`$CONFIG_SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \ - = "XX$testring") >/dev/null 2>&1 && - new_result=`expr "X$testring" : ".*" 2>&1` && + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` - testring=$testring$testring + teststring=$teststring$teststring done - testring= + teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. @@ -6498,6 +6588,13 @@ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; +linux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDGIRSTW]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + fi + ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; @@ -6997,6 +7094,8 @@ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi +cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` + # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) @@ -7272,11 +7371,11 @@ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7275: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7374: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7279: \$? = $ac_status" >&5 + echo "$as_me:7378: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -7383,6 +7482,16 @@ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case "$cc_basename" in + xlc*) + lt_prog_compiler_pic='-qnocommon' + lt_prog_compiler_wl='-Wl,' + ;; + esac + ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being @@ -7505,11 +7614,11 @@ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7508: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7617: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7512: \$? = $ac_status" >&5 + echo "$as_me:7621: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -7556,13 +7665,6 @@ mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext - # According to Tom Tromey, Ian Lance Taylor reported there are C compilers - # that will create temporary files in the current directory regardless of - # the output directory. Thus, making CWD read-only will cause this test - # to fail, enabling locking or at least warning the user not to do parallel - # builds. - chmod -w . - lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. @@ -7572,11 +7674,11 @@ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7575: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7677: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7579: \$? = $ac_status" >&5 + echo "$as_me:7681: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -7788,7 +7890,7 @@ ;; linux*) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_cmds="$tmp_archive_cmds" supports_anon_versioning=no @@ -8076,7 +8178,7 @@ ld_shlibs=no ;; - bsdi4*) + bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; @@ -8090,7 +8192,7 @@ # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. - shrext=".dll" + shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. @@ -8102,52 +8204,52 @@ ;; darwin* | rhapsody*) - if test "$GXX" = yes ; then - archive_cmds_need_lc=no case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag='-flat_namespace -undefined suppress' - ;; - 10.*) - allow_undefined_flag='-undefined dynamic_lookup' - ;; - esac - fi - ;; + rhapsody* | darwin1.[012]) + allow_undefined_flag='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_cmds='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='-all_load $convenience' + whole_archive_flag_spec='' link_all_deplibs=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else - ld_shlibs=no + case "$cc_basename" in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs=no + ;; + esac fi ;; @@ -8292,6 +8394,7 @@ hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else @@ -8546,7 +8649,7 @@ library_names_spec= libname_spec='lib$name' soname_spec= -shrext=".so" +shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= @@ -8643,7 +8746,7 @@ shlibpath_var=LIBRARY_PATH ;; -bsdi4*) +bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -8659,7 +8762,7 @@ cygwin* | mingw* | pw32*) version_type=windows - shrext=".dll" + shrext_cmds=".dll" need_version=no need_lib_prefix=no @@ -8724,7 +8827,7 @@ soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH - shrext='$(test .$module = .yes && echo .so || echo .dylib)' + shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` @@ -8807,7 +8910,7 @@ need_version=no case "$host_cpu" in ia64*) - shrext='.so' + shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH @@ -8822,7 +8925,7 @@ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) - shrext='.sl' + shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH @@ -8833,7 +8936,7 @@ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) - shrext='.sl' + shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH @@ -8902,6 +9005,12 @@ # before this can be enabled. hardcode_into_libs=yes + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, @@ -8911,6 +9020,18 @@ dynamic_linker='GNU/Linux ld.so' ;; +knetbsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -8920,7 +9041,7 @@ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi @@ -8969,7 +9090,7 @@ os2*) libname_spec='$name' - shrext=".dll" + shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' @@ -9071,8 +9192,8 @@ echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var " || \ - test "X$hardcode_automatic"="Xyes" ; then + test -n "$runpath_var" || \ + test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && @@ -9738,7 +9859,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext <&5 @@ -10146,7 +10230,7 @@ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= @@ -10237,7 +10321,7 @@ libext="$libext" # Shared library suffix (normally ".so"). -shrext='$shrext' +shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" @@ -13871,7 +13955,8 @@ -for ac_header in unistd.h sys/ioctl.h sys/resource.h \ + +for ac_header in unistd.h poll.h sys/ioctl.h sys/resource.h \ sys/utsname.h stropts.h sys/param.h stddef.h limits.h \ sys/timeb.h termios.h sys/mman.h sys/file.h execinfo.h \ sys/wait.h fcntl.h @@ -14024,6 +14109,11 @@ done +if test x$ac_cv_header_poll_h = xno; then + ac_config_links="$ac_config_links lib-src/poll.h:lib-src/poll_.h" + +fi + # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo "$as_me:$LINENO: checking for working alloca.h" >&5 @@ -16022,7 +16112,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -22034,7 +22127,7 @@ } >&5 cat >&5 <<_CSEOF -This file was extended by GNU Smalltalk $as_me 2.1.9, which was +This file was extended by GNU Smalltalk $as_me 2.1.10, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -22100,7 +22193,7 @@ cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -GNU Smalltalk config.status 2.1.9 +GNU Smalltalk config.status 2.1.10 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" @@ -22230,11 +22323,13 @@ "kernel/Makefile" ) CONFIG_FILES="$CONFIG_FILES kernel/Makefile" ;; "tcp/Makefile" ) CONFIG_FILES="$CONFIG_FILES tcp/Makefile" ;; "gtk/Makefile" ) CONFIG_FILES="$CONFIG_FILES gtk/Makefile" ;; + "lib-src/poll.h" ) CONFIG_LINKS="$CONFIG_LINKS lib-src/poll.h:lib-src/poll_.h" ;; "lightning/asm.h" ) CONFIG_LINKS="$CONFIG_LINKS lightning/asm.h:lightning/$cpu_subdir/asm.h" ;; "lightning/core.h" ) CONFIG_LINKS="$CONFIG_LINKS lightning/core.h:lightning/$cpu_subdir/core.h" ;; "lightning/fp.h" ) CONFIG_LINKS="$CONFIG_LINKS lightning/fp.h:lightning/$cpu_subdir/fp.h" ;; "lightning/funcs.h" ) CONFIG_LINKS="$CONFIG_LINKS lightning/funcs.h:lightning/$cpu_subdir/funcs.h" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "$srcdir/packages.xml" ) CONFIG_COMMANDS="$CONFIG_COMMANDS $srcdir/packages.xml" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} @@ -22335,7 +22430,6 @@ s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t -s,@AMTAR@,$AMTAR,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t @@ -22344,6 +22438,9 @@ s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t +s,@AMTAR@,$AMTAR,;t t +s,@am__tar@,$am__tar,;t t +s,@am__untar@,$am__untar,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t @@ -23213,27 +23310,21 @@ else continue fi - grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue @@ -23279,6 +23370,13 @@ done done ;; + $srcdir/packages.xml ) + if test -f $srcdir/packages.xml; then + : + else + $as_ln_s `pwd`/packages.xml $srcdir/packages.xml + fi + ;; esac done _ACEOF diff -rNu smalltalk-2.1.9/configure.ac smalltalk-2.1.10/configure.ac --- smalltalk-2.1.9/configure.ac 2004-10-02 15:28:47.000000000 +0200 +++ smalltalk-2.1.10/configure.ac 2005-02-03 09:29:07.000000000 +0100 @@ -1,13 +1,13 @@ dnl Hey Emacs, I want this in -*- Autoconf -*- mode, please. dnl --- -dnl Copyright 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002, 2003 +dnl Copyright 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002, 2003, 2005 dnl Free Software Foundation, Inc. dnl Please see COPYING for a description your rights and responsibilities dnl with this software. dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.52) -AC_INIT([GNU Smalltalk], 2.1.9, help-smalltalk@gnu.org, smalltalk) +AC_INIT([GNU Smalltalk], 2.1.10, help-smalltalk@gnu.org, smalltalk) MAINTAINER="bonzini@gnu.org" dnl CURRENT:REVISION:AGE means this is the REVISION-th version of @@ -74,12 +74,13 @@ AC_C_CONST AC_C_VOLATILE ACX_C_RESTRICT +GST_C_WARN_LONG_DOUBLE GST_C_GOTO_VOID_P GST_C_SYMBOLSET GST_LIBC_SO_NAME -AC_LIBTOOL_TAGS([]) +AC_LIBTOOL_TAGS AC_LIBTOOL_DLOPEN AC_LIBTOOL_WIN32_DLL AC_PROG_LIBTOOL @@ -116,11 +117,15 @@ AC_HEADER_STDC AC_HEADER_DIRENT AC_HEADER_TIME -AC_CHECK_HEADERS(unistd.h sys/ioctl.h sys/resource.h \ +AC_CHECK_HEADERS(unistd.h poll.h sys/ioctl.h sys/resource.h \ sys/utsname.h stropts.h sys/param.h stddef.h limits.h \ sys/timeb.h termios.h sys/mman.h sys/file.h execinfo.h \ sys/wait.h fcntl.h) +if test x$ac_cv_header_poll_h = xno; then + AC_CONFIG_LINKS([lib-src/poll.h:lib-src/poll_.h]) +fi + AC_FUNC_ALLOCA AC_FUNC_MEMCMP AC_FUNC_OBSTACK @@ -275,4 +280,15 @@ dnl Smalltalk makefiles AC_CONFIG_FILES(blox-tk/Makefile examples/Makefile i18n/Makefile kernel/Makefile tcp/Makefile gtk/Makefile) +dnl Support VPATH builds off a CVS repository. When building from +dnl the tarball, a suitable packages.xml file is put in the root source +dnl directory by `make dist'. +AC_CONFIG_COMMANDS($srcdir/packages.xml, [ + if test -f $srcdir/packages.xml; then + : + else + $as_ln_s `pwd`/packages.xml $srcdir/packages.xml + fi +]) + AC_OUTPUT diff -rNu smalltalk-2.1.9/doc/Makefile.am smalltalk-2.1.10/doc/Makefile.am --- smalltalk-2.1.9/doc/Makefile.am 2003-05-27 19:41:22.000000000 +0200 +++ smalltalk-2.1.10/doc/Makefile.am 2004-11-25 15:19:17.000000000 +0100 @@ -28,9 +28,7 @@ $(HELP2MAN) --info-page gst \ --name "the GNU Smalltalk virtual machine" $(top_builddir)/gst >$@ -# Must check whether this stuff works with VPATH builds - -blox.texi: $(top_builddir)/blox-tk/stamp-classes +$(srcdir)/blox.texi: $(top_builddir)/blox-tk/stamp-classes touch $(srcdir)/gst-libs.texi builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ @@ -48,11 +46,11 @@ Namespace current: Smalltalk. \ ClassPublisher Texinfo \ publishAll: classes \ - onFile: '$$builddir/$@'!" | $$GST -g \ + onFile: '../doc/blox.texi'!" | $$GST -g \ ../examples/Publish.st \ ../examples/StreamFilter.st - -tcp.texi: $(top_builddir)/tcp/stamp-classes +$(srcdir)/tcp.texi: $(top_builddir)/tcp/stamp-classes touch $(srcdir)/gst-libs.texi builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ @@ -70,11 +68,11 @@ Namespace current: Smalltalk. \ ClassPublisher Texinfo \ publishAll: classes \ - onFile: '$$builddir/$@'!" | $$GST -g \ + onFile: '../doc/tcp.texi'!" | $$GST -g \ ../examples/Publish.st \ ../examples/StreamFilter.st - -i18n.texi: $(top_builddir)/i18n/stamp-classes +$(srcdir)/i18n.texi: $(top_builddir)/i18n/stamp-classes touch $(srcdir)/gst-libs.texi builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ @@ -92,11 +90,11 @@ Namespace current: Smalltalk. \ ClassPublisher Texinfo \ publishAll: classes \ - onFile: '$$builddir/$@'!" | $$GST -g \ + onFile: '../doc/i18n.texi'!" | $$GST -g \ ../examples/Publish.st \ ../examples/StreamFilter.st - -classes.texi: $(top_builddir)/kernel/stamp-classes +$(srcdir)/classes.texi: $(top_builddir)/kernel/stamp-classes touch $(srcdir)/gst-base.texi @builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ diff -rNu smalltalk-2.1.9/doc/Makefile.in smalltalk-2.1.10/doc/Makefile.in --- smalltalk-2.1.9/doc/Makefile.in 2004-10-02 15:29:46.000000000 +0200 +++ smalltalk-2.1.10/doc/Makefile.in 2005-02-03 09:30:43.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -33,6 +33,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ subdir = doc DIST_COMMON = $(dist_man_MANS) $(gst_TEXINFOS) $(gst_base_TEXINFOS) \ @@ -61,15 +62,17 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = -INFO_DEPS = $(srcdir)/gst.info $(srcdir)/gst-base.info $(srcdir)/gst-libs.info +INFO_DEPS = $(srcdir)/gst.info $(srcdir)/gst-base.info \ + $(srcdir)/gst-libs.info TEXINFO_TEX = $(top_srcdir)/config/texinfo.tex am__TEXINFO_TEX_DIR = $(top_srcdir)/config DVIS = gst.dvi gst-base.dvi gst-libs.dvi @@ -211,6 +214,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -318,10 +323,18 @@ $(TEXI2PDF) $< .texi.html: - $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ - -o $@ $< - if test ! -d $@ && test -d $(@:.html=); then \ - mv $(@:.html=) $@; else :; fi + rm -rf $(@:.html=.htp) + if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ + -o $(@:.html=.htp) $<; \ + then \ + rm -rf $@; \ + if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ + mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \ + else \ + if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ + rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \ + exit 1; \ + fi $(srcdir)/gst.info: gst.texi $(srcdir)/vers-gst.texi $(gst_TEXINFOS) gst.dvi: gst.texi $(srcdir)/vers-gst.texi $(gst_TEXINFOS) gst.pdf: gst.texi $(srcdir)/vers-gst.texi $(gst_TEXINFOS) @@ -562,7 +575,7 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -665,9 +678,7 @@ $(HELP2MAN) --info-page gst \ --name "the GNU Smalltalk virtual machine" $(top_builddir)/gst >$@ -# Must check whether this stuff works with VPATH builds - -blox.texi: $(top_builddir)/blox-tk/stamp-classes +$(srcdir)/blox.texi: $(top_builddir)/blox-tk/stamp-classes touch $(srcdir)/gst-libs.texi builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ @@ -685,11 +696,11 @@ Namespace current: Smalltalk. \ ClassPublisher Texinfo \ publishAll: classes \ - onFile: '$$builddir/$@'!" | $$GST -g \ + onFile: '../doc/blox.texi'!" | $$GST -g \ ../examples/Publish.st \ ../examples/StreamFilter.st - -tcp.texi: $(top_builddir)/tcp/stamp-classes +$(srcdir)/tcp.texi: $(top_builddir)/tcp/stamp-classes touch $(srcdir)/gst-libs.texi builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ @@ -707,11 +718,11 @@ Namespace current: Smalltalk. \ ClassPublisher Texinfo \ publishAll: classes \ - onFile: '$$builddir/$@'!" | $$GST -g \ + onFile: '../doc/tcp.texi'!" | $$GST -g \ ../examples/Publish.st \ ../examples/StreamFilter.st - -i18n.texi: $(top_builddir)/i18n/stamp-classes +$(srcdir)/i18n.texi: $(top_builddir)/i18n/stamp-classes touch $(srcdir)/gst-libs.texi builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ @@ -729,11 +740,11 @@ Namespace current: Smalltalk. \ ClassPublisher Texinfo \ publishAll: classes \ - onFile: '$$builddir/$@'!" | $$GST -g \ + onFile: '../doc/i18n.texi'!" | $$GST -g \ ../examples/Publish.st \ ../examples/StreamFilter.st - -classes.texi: $(top_builddir)/kernel/stamp-classes +$(srcdir)/classes.texi: $(top_builddir)/kernel/stamp-classes touch $(srcdir)/gst-base.texi @builddir=`pwd`; top_builddir=$$builddir/$(top_builddir); \ SMALLTALK_IMAGE=$$top_builddir; export SMALLTALK_IMAGE; \ diff -rNu smalltalk-2.1.9/doc/classes.texi smalltalk-2.1.10/doc/classes.texi --- smalltalk-2.1.9/doc/classes.texi 2004-10-02 15:32:51.000000000 +0200 +++ smalltalk-2.1.10/doc/classes.texi 2005-02-02 15:37:47.000000000 +0100 @@ -20350,6 +20350,20 @@ distributed, that are part of the package. +@meindex baseDirs:@- +@item baseDirs:@- baseDirs +Resolve the names in the package according to the base directories +in baseDirs, which depend on where the packages.xml is found:@- +the three possible places are 1) the system kernel directory's parent +directory, 2) the local kernel directory's parent directory, 3) the +local image directory (in order of decreasing priority). +For a packages.xml found in the system kernel directory's parent +directory, all three directories are searched. For a packages.xml +found in the local kernel directory's parent directory, only +directories 2 and 3 are searched. For a packages.xml directory in +the local image directory, instead, only directory 3 is searched. + + @meindex builtFiles @item builtFiles Answer a (modifiable) OrderedCollection of files that are part of @@ -20368,11 +20382,9 @@ Answer the base directory from which to load the package. -@meindex directory:@-forBaseDir:@- -@item directory:@- dir forBaseDir:@- baseDir +@meindex directory:@- +@item directory:@- dir Set the base directory from which to load the package to dir. -If dir is a relative directory, store an absolute path composed -from the (already absolute) baseDir and from dir. @meindex fileIns @@ -20388,6 +20400,20 @@ the package. +@meindex findBaseDirs:@-for:@- +@item findBaseDirs:@- baseDirs for:@- aCollection +Resolve the names in aCollection according to the base directories +in baseDirs, and return the collection with the full filenames, or +nil if no directory was found for one or more file in aCollection. + + +@meindex findBaseDirs:@-forFile:@- +@item findBaseDirs:@- baseDirs forFile:@- fileName +Try appending 'self directory' and fileName to each of the directory +in baseDirs, and return the path to the first tried filename that exists. +Return nil if no directory is found that contains the file. + + @meindex libraries @item libraries Answer a (modifiable) Set of shared library names @@ -20524,7 +20550,15 @@ @meindex refreshDependencies @item refreshDependencies -Reload the `packages.xml' file in the image and kernel directories +Reload the `packages.xml' file in the image and kernel directories. +The three possible places are 1) the system kernel directory's parent +directory, 2) the local kernel directory's parent directory, 3) the +local image directory (in order of decreasing priority). +For a packages.xml found in the system kernel directory's parent +directory, all three directories are searched. For a packages.xml +found in the local kernel directory's parent directory, only +directories 2 and 3 are searched. For a packages.xml directory in +the local image directory, instead, only directory 3 is searched. @end table diff -rNu smalltalk-2.1.9/doc/gst-base.info smalltalk-2.1.10/doc/gst-base.info --- smalltalk-2.1.9/doc/gst-base.info 2004-10-02 15:32:58.000000000 +0200 +++ smalltalk-2.1.10/doc/gst-base.info 2005-02-02 15:37:50.000000000 +0100 @@ -1,13 +1,13 @@ -This is gst-base.info, produced by makeinfo version 4.7 from -/home/utente/devel-gst-stable/doc/gst-base-fixed.texi. +This is gst-base.info, produced by makeinfo version 4.6 from +/Users/bonzinip/devel/gst-stable/+build/doc/../../doc/gst-base-fixed.texi. INFO-DIR-SECTION GNU Smalltalk START-INFO-DIR-ENTRY * Base classes: (gst-base). The GNU Smalltalk base classes. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 31 March 2004. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 2 February 2005. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -23,1041 +23,1039 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. -  Indirect: -gst-base.info-1: 996 -gst-base.info-2: 300268 -gst-base.info-3: 600063 -gst-base.info-4: 688398 -gst-base.info-5: 1087667 +gst-base.info-1: 1015 +gst-base.info-2: 300957 +gst-base.info-3: 600644 +gst-base.info-4: 888335  Tag Table: (Indirect) -Node: Top996 -Node: Base classes2257 -Node: AbstractNamespace11566 -Node: AbstractNamespace class-instance creation12321 -Node: AbstractNamespace-accessing12760 -Node: AbstractNamespace-basic & copying13998 -Node: AbstractNamespace-copying14552 -Node: AbstractNamespace-namespace hierarchy15008 -Node: AbstractNamespace-overrides for superspaces17686 -Node: AbstractNamespace-printing19416 -Node: AbstractNamespace-testing20001 -Node: AlternativeObjectProxy20252 -Node: AlternativeObjectProxy class-instance creation20994 -Node: AlternativeObjectProxy-accessing21939 -Node: ArithmeticError22503 -Node: ArithmeticError-description22962 -Node: Array23180 -Node: Array-mutating objects23819 -Node: Array-printing24131 -Node: Array-testing24362 -Node: ArrayedCollection24515 -Node: ArrayedCollection class-instance creation25312 -Node: ArrayedCollection-basic26446 -Node: ArrayedCollection-built ins27357 -Node: ArrayedCollection-copying Collections27633 -Node: ArrayedCollection-enumerating the elements of a collection29397 -Node: ArrayedCollection-storing30556 -Node: Association30853 -Node: Association class-basic31538 -Node: Association-accessing31789 -Node: Association-finalization32409 -Node: Association-printing32642 -Node: Association-storing32902 -Node: Association-testing33168 -Node: Autoload33525 -Node: Autoload class-instance creation34203 -Node: Autoload-accessing34719 -Node: AutoloadClass34957 -Node: AutoloadClass-accessing35490 -Node: Bag36458 -Node: Bag class-basic37171 -Node: Bag-adding37440 -Node: Bag-enumerating the elements of a collection37933 -Node: Bag-extracting items38303 -Node: Bag-printing38595 -Node: Bag-removing38812 -Node: Bag-storing39134 -Node: Bag-testing collections39364 -Node: Behavior39862 -Node: Behavior-accessing class hierarchy41461 -Node: Behavior-accessing instances and variables42202 -Node: Behavior-accessing the methodDictionary43503 -Node: Behavior-built ins44598 -Node: Behavior-compilation (alternative)46801 -Node: Behavior-compiling methods47636 -Node: Behavior-creating a class hierarchy48111 -Node: Behavior-enumerating48562 -Node: Behavior-evaluating49630 -Node: Behavior-instance creation50935 -Node: Behavior-instance variables51731 -Node: Behavior-method dictionary52179 -Node: Behavior-pluggable behavior (not yet implemented)55633 -Node: Behavior-printing hierarchy56773 -Node: Behavior-support for lightweight classes57383 -Node: Behavior-testing functionality58439 -Node: Behavior-testing the class hierarchy58724 -Node: Behavior-testing the form of the instances59263 -Node: Behavior-testing the method dictionary60407 -Node: BindingDictionary61810 -Node: BindingDictionary-accessing62667 -Node: BindingDictionary-copying64563 -Node: BindingDictionary-forward declarations65110 -Node: BindingDictionary-printing65730 -Node: BindingDictionary-testing66138 -Node: BlockClosure66367 -Node: BlockClosure class-instance creation67600 -Node: BlockClosure class-testing68181 -Node: BlockClosure-accessing68489 -Node: BlockClosure-built ins70091 -Node: BlockClosure-control structures70872 -Node: BlockClosure-exception handling71553 -Node: BlockClosure-multiple process73569 -Node: BlockClosure-overriding75026 -Node: BlockClosure-testing75308 -Node: BlockClosure-unwind protection75582 -Node: BlockContext77067 -Node: BlockContext-accessing77857 -Node: BlockContext-printing79385 -Node: Boolean79624 -Node: Boolean class-testing80385 -Node: Boolean-basic80702 -Node: Boolean-C hacks81998 -Node: Boolean-overriding82260 -Node: Boolean-storing82503 -Node: ByteArray82732 -Node: ByteArray-built ins83283 -Node: ByteArray-converting84580 -Node: ByteArray-more advanced accessing84872 -Node: ByteStream91390 -Node: ByteStream-basic91779 -Node: CAggregate93069 -Node: CAggregate class-accessing93374 -Node: CAggregate-accessing93664 -Node: CallinProcess93902 -Node: CArray94430 -Node: CArray-accessing94683 -Node: CArrayCType94890 -Node: CArrayCType class-instance creation95201 -Node: CArrayCType-accessing95835 -Node: CBoolean96213 -Node: CBoolean-accessing96520 -Node: CByte96851 -Node: CByte class-conversion97243 -Node: CByte-accessing97576 -Node: CChar98028 -Node: CChar class-accessing98299 -Node: CChar-accessing98663 -Node: CCompound98980 -Node: CCompound class-instance creation99332 -Node: CCompound class-subclass creation99705 -Node: CCompound-instance creation101809 -Node: CDouble102162 -Node: CDouble class-accessing102444 -Node: CDouble-accessing102818 -Node: CFloat103145 -Node: CFloat class-accessing103433 -Node: CFloat-accessing103802 -Node: CFunctionDescriptor104124 -Node: CFunctionDescriptor class-instance creation104909 -Node: CFunctionDescriptor class-testing105271 -Node: CFunctionDescriptor-accessing105782 -Node: CFunctionDescriptor-calling106414 -Node: CFunctionDescriptor-printing108368 -Node: Character108641 -Node: Character class-built ins109620 -Node: Character class-constants110406 -Node: Character class-initializing lookup tables111214 -Node: Character class-instance creation111864 -Node: Character class-testing112236 -Node: Character-built ins112609 -Node: Character-coercion methods113398 -Node: Character-comparing113976 -Node: Character-converting114623 -Node: Character-printing114940 -Node: Character-storing115330 -Node: Character-testing115585 -Node: Character-testing functionality116237 -Node: CharacterArray116485 -Node: CharacterArray class-basic117236 -Node: CharacterArray-basic117640 -Node: CharacterArray-built ins118331 -Node: CharacterArray-comparing118760 -Node: CharacterArray-converting120984 -Node: CharacterArray-printing122355 -Node: CharacterArray-storing122988 -Node: CharacterArray-string processing123281 -Node: CharacterArray-testing functionality125834 -Node: CInt126094 -Node: CInt class-accessing126365 -Node: CInt-accessing126704 -Node: Class127036 -Node: Class-accessing instances and variables127892 -Node: Class-filing129418 -Node: Class-instance creation129872 -Node: Class-instance creation - alternative132091 -Node: Class-printing134270 -Node: Class-saving and loading134691 -Node: Class-testing136099 -Node: Class-testing functionality136352 -Node: ClassDescription136583 -Node: ClassDescription-compiling137255 -Node: ClassDescription-conversion138097 -Node: ClassDescription-copying138564 -Node: ClassDescription-filing139775 -Node: ClassDescription-organization of messages and classes140611 -Node: ClassDescription-printing141925 -Node: CLong142688 -Node: CLong class-accessing142968 -Node: CLong-accessing143332 -Node: CObject143649 -Node: CObject class-conversion144509 -Node: CObject class-instance creation144866 -Node: CObject-accessing145478 -Node: CObject-C data access145927 -Node: CObject-conversion146545 -Node: CObject-finalization147292 -Node: CObject-pointer-like behavior147770 -Node: Collection150039 -Node: Collection class-instance creation150976 -Node: Collection-adding151994 -Node: Collection-converting152355 -Node: Collection-copying Collections153462 -Node: Collection-enumeration154014 -Node: Collection-finalization157053 -Node: Collection-printing157372 -Node: Collection-removing157729 -Node: Collection-storing158583 -Node: Collection-testing collections158854 -Node: CompiledBlock159509 -Node: CompiledBlock class-instance creation160017 -Node: CompiledBlock-accessing160767 -Node: CompiledBlock-basic161840 -Node: CompiledBlock-printing162563 -Node: CompiledBlock-saving and loading162844 -Node: CompiledCode163279 -Node: CompiledCode class-cache flushing164015 -Node: CompiledCode class-instance creation164385 -Node: CompiledCode-accessing164945 -Node: CompiledCode-basic166358 -Node: CompiledCode-copying167123 -Node: CompiledCode-debugging167362 -Node: CompiledCode-decoding bytecodes167635 -Node: CompiledCode-testing accesses168056 -Node: CompiledCode-translation169231 -Node: CompiledMethod169503 -Node: CompiledMethod class-instance creation170291 -Node: CompiledMethod class-lean images170942 -Node: CompiledMethod-accessing171277 -Node: CompiledMethod-basic172658 -Node: CompiledMethod-printing173436 -Node: CompiledMethod-saving and loading173791 -Node: CompiledMethod-testing174255 -Node: ContextPart174853 -Node: ContextPart class-exception handling175637 -Node: ContextPart-accessing176597 -Node: ContextPart-built ins179844 -Node: ContextPart-copying180544 -Node: ContextPart-debugging180911 -Node: ContextPart-enumerating181449 -Node: ContextPart-exception handling181848 -Node: ContextPart-printing182124 -Node: CoreException182501 -Node: CoreException class-instance creation183777 -Node: CoreException-accessing184047 -Node: CoreException-basic184995 -Node: CoreException-enumerating185264 -Node: CoreException-exception handling185936 -Node: CoreException-instance creation186601 -Node: CPtr186917 -Node: CPtr-accessing187160 -Node: CPtrCType187709 -Node: CPtrCType class-instance creation188003 -Node: CPtrCType-accessing188302 -Node: CScalar188777 -Node: CScalar class-instance creation189073 -Node: CScalar-accessing189546 -Node: CScalarCType190075 -Node: CScalarCType-accessing190373 -Node: CScalarCType-storing190715 -Node: CShort190951 -Node: CShort class-accessing191235 -Node: CShort-accessing191604 -Node: CSmalltalk191926 -Node: CSmalltalk class-accessing192221 -Node: CSmalltalk-accessing192610 -Node: CString192952 -Node: CString class-instance creation193769 -Node: CString-accessing194242 -Node: CStringCType194771 -Node: CStringCType-accessing195040 -Node: CStruct195255 -Node: CStruct class-subclass creation195515 -Node: CType195763 -Node: CType class-C instance creation196887 -Node: CType-accessing197157 -Node: CType-C instance creation198014 -Node: CType-storing198539 -Node: CUChar198750 -Node: CUChar class-getting info199025 -Node: CUChar-accessing199403 -Node: CUInt199728 -Node: CUInt class-accessing199997 -Node: CUInt-accessing200361 -Node: CULong200678 -Node: CULong class-accessing200951 -Node: CULong-accessing201320 -Node: CUnion201642 -Node: CUnion class-subclass creation201894 -Node: CUShort202138 -Node: CUShort class-accessing202415 -Node: CUShort-accessing202789 -Node: Date203116 -Node: Date class-basic204588 -Node: Date class-instance creation (ANSI)205716 -Node: Date class-instance creation (Blue Book)206206 -Node: Date-basic207526 -Node: Date-compatibility (non-ANSI)208000 -Node: Date-date computations208413 -Node: Date-printing210036 -Node: Date-storing210264 -Node: Date-testing210487 -Node: DateTime210806 -Node: DateTime class-information211450 -Node: DateTime class-instance creation211741 -Node: DateTime class-instance creation (non-ANSI)213042 -Node: DateTime-basic213544 -Node: DateTime-computations213891 -Node: DateTime-printing214583 -Node: DateTime-splitting in dates & times214849 -Node: DateTime-storing215448 -Node: DateTime-testing215713 -Node: DateTime-time zones216088 -Node: Delay217218 -Node: Delay class-general inquiries217991 -Node: Delay class-initialization218264 -Node: Delay class-instance creation218560 -Node: Delay-accessing219063 -Node: Delay-comparing219317 -Node: Delay-process delay219603 -Node: DelayedAdaptor219839 -Node: DelayedAdaptor-accessing220375 -Node: Dictionary220754 -Node: Dictionary class-instance creation221714 -Node: Dictionary-accessing221968 -Node: Dictionary-awful ST-80 compatibility hacks223639 -Node: Dictionary-dictionary enumerating224102 -Node: Dictionary-dictionary removing225190 -Node: Dictionary-dictionary testing226059 -Node: Dictionary-polymorphism hacks226733 -Node: Dictionary-printing227018 -Node: Dictionary-rehashing227382 -Node: Dictionary-storing227599 -Node: Dictionary-testing227861 -Node: DirectedMessage228137 -Node: DirectedMessage class-creating instances228713 -Node: DirectedMessage-accessing229146 -Node: DirectedMessage-basic229454 -Node: DirectedMessage-multiple process229878 -Node: DirectedMessage-saving and loading230476 -Node: Directory230914 -Node: Directory class-C functions231695 -Node: Directory class-file name management232010 -Node: Directory class-file operations232585 -Node: Directory class-reading system defaults232967 -Node: Directory-accessing233929 -Node: Directory-enumerating234805 -Node: DLD235561 -Node: DLD class-C functions236241 -Node: DLD class-dynamic linking236632 -Node: DumperProxy237978 -Node: DumperProxy class-accessing238514 -Node: DumperProxy class-instance creation238979 -Node: DumperProxy-saving and restoring239484 -Node: Duration239899 -Node: Duration class-instance creation240310 -Node: Duration class-instance creation (non ANSI)240810 -Node: Duration-arithmetics241289 -Node: Error242477 -Node: Error-exception description242802 -Node: Exception243143 -Node: Exception class-comparison244281 -Node: Exception class-creating ExceptionCollections244745 -Node: Exception class-initialization245169 -Node: Exception class-instance creation245551 -Node: Exception class-interoperability with TrappableEvents246135 -Node: Exception-comparison246757 -Node: Exception-exception description247205 -Node: Exception-exception signaling247648 -Node: ExceptionSet248041 -Node: ExceptionSet class-instance creation248616 -Node: ExceptionSet-enumerating248881 -Node: False249445 -Node: False-basic249844 -Node: False-C hacks250838 -Node: False-printing251018 -Node: File251219 -Node: File class-C functions252052 -Node: File class-file name management252333 -Node: File class-file operations253474 -Node: File class-instance creation254102 -Node: File class-reading system defaults254604 -Node: File class-testing254891 -Node: File-accessing255543 -Node: File-file name management256643 -Node: File-file operations257429 -Node: File-testing258401 -Node: FileDescriptor259334 -Node: FileDescriptor class-initialization260495 -Node: FileDescriptor class-instance creation260833 -Node: FileDescriptor-accessing266866 -Node: FileDescriptor-basic268026 -Node: FileDescriptor-built ins269271 -Node: FileDescriptor-class type methods270483 -Node: FileDescriptor-initialize-release270913 -Node: FileDescriptor-low-level access271449 -Node: FileDescriptor-overriding inherited methods272535 -Node: FileDescriptor-printing273336 -Node: FileDescriptor-testing273636 -Node: FileSegment273860 -Node: FileSegment class-basic274479 -Node: FileSegment class-installing274836 -Node: FileSegment-basic275222 -Node: FileSegment-equality276085 -Node: FileStream276368 -Node: FileStream class-file-in277084 -Node: FileStream class-standard streams280620 -Node: FileStream-basic281360 -Node: FileStream-buffering282312 -Node: FileStream-filing in283131 -Node: FileStream-overriding inherited methods284060 -Node: FileStream-testing284933 -Node: Float285155 -Node: Float class-byte-order dependancies285958 -Node: Float class-characterization286238 -Node: Float-arithmetic287260 -Node: Float-basic287592 -Node: Float-built ins287787 -Node: Float-coercing288728 -Node: Float-printing289364 -Node: Float-storing289588 -Node: Float-testing289809 -Node: Float-testing functionality290576 -Node: FloatD290774 -Node: FloatD class-byte-order dependancies291443 -Node: FloatD class-characterization291728 -Node: FloatD class-converting293002 -Node: FloatD-built ins293258 -Node: FloatD-coercing294495 -Node: FloatE294898 -Node: FloatE class-byte-order dependancies295568 -Node: FloatE class-characterization295853 -Node: FloatE class-converting297415 -Node: FloatE-built ins297671 -Node: FloatE-coercing298908 -Node: FloatQ299311 -Node: FloatQ class-byte-order dependancies299983 -Node: FloatQ class-characterization300268 -Node: FloatQ class-converting301830 -Node: FloatQ-built ins302086 -Node: FloatQ-coercing303323 -Node: Fraction303726 -Node: Fraction class-converting304478 -Node: Fraction class-instance creation304722 -Node: Fraction-accessing305107 -Node: Fraction-arithmetic305397 -Node: Fraction-coercing306121 -Node: Fraction-comparing306760 -Node: Fraction-converting307262 -Node: Fraction-optimized cases307763 -Node: Fraction-printing308197 -Node: Fraction-testing308527 -Node: Halt308734 -Node: Halt-description309030 -Node: HashedCollection309281 -Node: HashedCollection class-instance creation310142 -Node: HashedCollection-accessing310519 -Node: HashedCollection-builtins311099 -Node: HashedCollection-copying311876 -Node: HashedCollection-enumerating the elements of a collection312354 -Node: HashedCollection-rehashing312730 -Node: HashedCollection-removing313016 -Node: HashedCollection-saving and loading313423 -Node: HashedCollection-storing313937 -Node: HashedCollection-testing collections314264 -Node: HomedAssociation315211 -Node: HomedAssociation class-basic315781 -Node: HomedAssociation-accessing316083 -Node: HomedAssociation-finalization316449 -Node: HomedAssociation-storing317069 -Node: IdentityDictionary317338 -Node: IdentitySet317731 -Node: IdentitySet-testing318130 -Node: Integer318391 -Node: Integer class-converting319220 -Node: Integer-accessing319452 -Node: Integer-basic319691 -Node: Integer-bit operators319901 -Node: Integer-converting321187 -Node: Integer-extension321891 -Node: Integer-iterators322204 -Node: Integer-math methods322570 -Node: Integer-printing323381 -Node: Integer-storing324440 -Node: Integer-testing functionality324767 -Node: Interval325041 -Node: Interval class-instance creation325637 -Node: Interval-basic326239 -Node: Interval-printing326925 -Node: Interval-storing327165 -Node: Interval-testing327412 -Node: LargeArray327683 -Node: LargeArray-overridden328086 -Node: LargeArrayedCollection328278 -Node: LargeArrayedCollection class-instance creation328821 -Node: LargeArrayedCollection-accessing329180 -Node: LargeArrayedCollection-basic329684 -Node: LargeArraySubpart330085 -Node: LargeArraySubpart class-instance creation330964 -Node: LargeArraySubpart-accessing331373 -Node: LargeArraySubpart-comparing332328 -Node: LargeArraySubpart-modifying333350 -Node: LargeByteArray334112 -Node: LargeByteArray-overridden334535 -Node: LargeInteger334976 -Node: LargeInteger-arithmetic335772 -Node: LargeInteger-bit operations336749 -Node: LargeInteger-built-ins337351 -Node: LargeInteger-coercion338430 -Node: LargeInteger-disabled338866 -Node: LargeInteger-primitive operations339241 -Node: LargeInteger-testing339721 -Node: LargeNegativeInteger340361 -Node: LargeNegativeInteger-converting341063 -Node: LargeNegativeInteger-numeric testing341451 -Node: LargeNegativeInteger-reverting to LargePositiveInteger341986 -Node: LargePositiveInteger342552 -Node: LargePositiveInteger-arithmetic343429 -Node: LargePositiveInteger-converting343905 -Node: LargePositiveInteger-helper byte-level methods344462 -Node: LargePositiveInteger-numeric testing346199 -Node: LargePositiveInteger-primitive operations346735 -Node: LargeWordArray347429 -Node: LargeWordArray-overridden347859 -Node: LargeZeroInteger348158 -Node: LargeZeroInteger-accessing348986 -Node: LargeZeroInteger-arithmetic349251 -Node: LargeZeroInteger-numeric testing350181 -Node: LargeZeroInteger-printing350518 -Node: Link350816 -Node: Link class-instance creation351361 -Node: Link-basic351593 -Node: Link-iteration351846 -Node: LinkedList352307 -Node: LinkedList-accessing352915 -Node: LinkedList-adding353231 -Node: LinkedList-enumerating353964 -Node: LinkedList-testing354305 -Node: LookupKey354661 -Node: LookupKey class-basic355215 -Node: LookupKey-accessing355457 -Node: LookupKey-printing355722 -Node: LookupKey-storing355969 -Node: LookupKey-testing356225 -Node: LookupTable356659 -Node: LookupTable class-instance creation357433 -Node: LookupTable-accessing357693 -Node: LookupTable-copying358496 -Node: LookupTable-enumerating358814 -Node: LookupTable-hashing359205 -Node: LookupTable-rehashing359444 -Node: LookupTable-removing359667 -Node: LookupTable-storing360167 -Node: Magnitude360404 -Node: Magnitude-basic360858 -Node: Magnitude-misc methods361388 -Node: MappedCollection361802 -Node: MappedCollection class-instance creation363177 -Node: MappedCollection-basic363630 -Node: Memory364521 -Node: Memory class-accessing365081 -Node: Message368978 -Node: Message class-creating instances369628 -Node: Message-accessing369920 -Node: Message-basic370362 -Node: MessageNotUnderstood370689 -Node: MessageNotUnderstood-accessing371183 -Node: MessageNotUnderstood-description371522 -Node: Metaclass371803 -Node: Metaclass class-instance creation372802 -Node: Metaclass-accessing373087 -Node: Metaclass-basic373533 -Node: Metaclass-delegation374645 -Node: Metaclass-filing376045 -Node: Metaclass-printing376336 -Node: Metaclass-testing functionality376891 -Node: MethodContext377152 -Node: MethodContext-accessing377654 -Node: MethodContext-printing378928 -Node: MethodDictionary379174 -Node: MethodDictionary-adding379705 -Node: MethodDictionary-rehashing379954 -Node: MethodDictionary-removing380208 -Node: MethodInfo380620 -Node: MethodInfo-accessing381106 -Node: MethodInfo-equality382051 -Node: Namespace382344 -Node: Namespace class-accessing382952 -Node: Namespace class-disabling instance creation383355 -Node: Namespace class-initialization383751 -Node: Namespace-accessing384188 -Node: Namespace-namespace hierarchy384477 -Node: Namespace-overrides for superspaces384975 -Node: Namespace-printing386772 -Node: NetClients.URIResolver387276 -Node: NetClients.URIResolver class-api387731 -Node: NetClients.URIResolver class-instance creation388881 -Node: NetClients.URL389258 -Node: NetClients.URL class-encoding URLs389979 -Node: NetClients.URL class-instance creation390484 -Node: NetClients.URL-accessing391309 -Node: NetClients.URL-comparing394034 -Node: NetClients.URL-copying394560 -Node: NetClients.URL-initialize-release395097 -Node: NetClients.URL-printing395396 -Node: NetClients.URL-testing395690 -Node: NetClients.URL-utilities396466 -Node: Notification396776 -Node: Notification-exception description397229 -Node: NullProxy397691 -Node: NullProxy class-instance creation398303 -Node: NullProxy-accessing398574 -Node: NullValueHolder398826 -Node: NullValueHolder class-creating instances399415 -Node: NullValueHolder-accessing399697 -Node: Number400045 -Node: Number class-converting400941 -Node: Number class-testing401401 -Node: Number-arithmetic401669 -Node: Number-comparing403002 -Node: Number-converting403425 -Node: Number-copying404693 -Node: Number-error raising405008 -Node: Number-misc math405379 -Node: Number-point creation406942 -Node: Number-retrying407237 -Node: Number-shortcuts and iterators409042 -Node: Number-testing409909 -Node: Number-truncation and round off411345 -Node: Object412160 -Node: Object class-initialization413122 -Node: Object-built ins413814 -Node: Object-change and update421748 -Node: Object-class type methods422955 -Node: Object-conversion423774 -Node: Object-copying424021 -Node: Object-debugging424685 -Node: Object-dependents access425145 -Node: Object-error raising425849 -Node: Object-exception handling426542 -Node: Object-finalization427065 -Node: Object-printing428063 -Node: Object-relational operators429808 -Node: Object-saving and loading430172 -Node: Object-storing431175 -Node: Object-syntax shortcuts431782 -Node: Object-testing functionality432109 -Node: ObjectDumper433649 -Node: ObjectDumper class-establishing proxy classes434854 -Node: ObjectDumper class-instance creation435703 -Node: ObjectDumper class-shortcuts436116 -Node: ObjectDumper class-testing436510 -Node: ObjectDumper-accessing436954 -Node: ObjectDumper-loading/dumping objects437462 -Node: ObjectDumper-stream interface437902 -Node: ObjectMemory438284 -Node: ObjectMemory class-accessing439369 -Node: ObjectMemory class-builtins439636 -Node: ObjectMemory class-initialization442983 -Node: ObjectMemory class-saving the image443275 -Node: ObjectMemory-accessing443603 -Node: ObjectMemory-builtins448557 -Node: ObjectMemory-derived information448842 -Node: OrderedCollection449829 -Node: OrderedCollection class-instance creation450551 -Node: OrderedCollection-accessing450909 -Node: OrderedCollection-adding451376 -Node: OrderedCollection-removing453440 -Node: Package454094 -Node: Package-accessing454511 -Node: PackageLoader456276 -Node: PackageLoader class-accessing456846 -Node: PackageLoader class-loading458646 -Node: PackageLoader class-testing459649 -Node: PluggableAdaptor459940 -Node: PluggableAdaptor class-creating instances460580 -Node: PluggableAdaptor-accessing461676 -Node: PluggableProxy461977 -Node: PluggableProxy class-accessing462615 -Node: PluggableProxy-saving and restoring463065 -Node: Point463500 -Node: Point class-instance creation464239 -Node: Point-accessing464552 -Node: Point-arithmetic464986 -Node: Point-comparing465705 -Node: Point-converting466518 -Node: Point-point functions467037 -Node: Point-printing467985 -Node: Point-storing468219 -Node: Point-truncation and round off468467 -Node: PositionableStream468879 -Node: PositionableStream class-instance creation469798 -Node: PositionableStream-accessing-reading470323 -Node: PositionableStream-class type methods471494 -Node: PositionableStream-positioning471999 -Node: PositionableStream-testing473153 -Node: PositionableStream-truncating473635 -Node: Process473935 -Node: Process-accessing474515 -Node: Process-basic476029 -Node: Process-builtins477576 -Node: Process-printing478386 -Node: ProcessorScheduler478600 -Node: ProcessorScheduler class-instance creation479279 -Node: ProcessorScheduler-basic479593 -Node: ProcessorScheduler-built ins481175 -Node: ProcessorScheduler-idle tasks481877 -Node: ProcessorScheduler-printing482396 -Node: ProcessorScheduler-priorities482715 -Node: ProcessorScheduler-storing484381 -Node: ProcessorScheduler-timed invocation484722 -Node: Promise485293 -Node: Promise class-creating instances485877 -Node: Promise-accessing486140 -Node: Promise-initializing486480 -Node: Promise-printing486724 -Node: Random486931 -Node: Random class-instance creation487392 -Node: Random class-shortcuts487774 -Node: Random-basic488107 -Node: Random-testing488537 -Node: ReadStream488863 -Node: ReadStream class-instance creation489315 -Node: ReadStream-accessing-reading489606 -Node: ReadWriteStream489916 -Node: ReadWriteStream class-instance creation490414 -Node: ReadWriteStream-positioning490885 -Node: Rectangle491266 -Node: Rectangle class-instance creation492067 -Node: Rectangle-accessing492625 -Node: Rectangle-copying495039 -Node: Rectangle-printing495273 -Node: Rectangle-rectangle functions495615 -Node: Rectangle-testing497472 -Node: Rectangle-transforming498302 -Node: Rectangle-truncation and round off498942 -Node: RecursionLock499247 -Node: RecursionLock class-instance creation499659 -Node: RecursionLock-accessing499909 -Node: RecursionLock-mutual exclusion500522 -Node: RecursionLock-printing500897 -Node: RootNamespace501163 -Node: RootNamespace class-instance creation501724 -Node: RootNamespace-namespace hierarchy502073 -Node: RootNamespace-overrides for superspaces502520 -Node: RootNamespace-printing503151 -Node: RunArray503675 -Node: RunArray class-instance creation504648 -Node: RunArray-accessing504936 -Node: RunArray-adding505286 -Node: RunArray-basic506376 -Node: RunArray-copying506697 -Node: RunArray-enumerating507069 -Node: RunArray-removing507545 -Node: RunArray-searching508026 -Node: RunArray-testing508456 -Node: ScaledDecimal508715 -Node: ScaledDecimal class-constants509531 -Node: ScaledDecimal class-instance creation509797 -Node: ScaledDecimal-arithmetic510250 -Node: ScaledDecimal-coercion510985 -Node: ScaledDecimal-comparing511906 -Node: ScaledDecimal-constants512558 -Node: ScaledDecimal-printing512876 -Node: ScaledDecimal-storing513352 -Node: Semaphore513606 -Node: Semaphore class-instance creation514281 -Node: Semaphore-accessing514670 -Node: Semaphore-builtins515170 -Node: Semaphore-mutual exclusion516526 -Node: Semaphore-printing516876 -Node: SequenceableCollection517122 -Node: SequenceableCollection class-instance creation517836 -Node: SequenceableCollection-basic518267 -Node: SequenceableCollection-copying SequenceableCollections521705 -Node: SequenceableCollection-enumerating523991 -Node: SequenceableCollection-replacing items527199 -Node: SequenceableCollection-testing528162 -Node: Set528612 -Node: Set-arithmetic529044 -Node: Set-awful ST-80 compatibility hacks529389 -Node: Set-comparing529766 -Node: SharedQueue530177 -Node: SharedQueue class-instance creation530711 -Node: SharedQueue-accessing531096 -Node: Signal531614 -Node: Signal-accessing532251 -Node: Signal-exception handling533117 -Node: SingletonProxy535686 -Node: SingletonProxy class-accessing536302 -Node: SingletonProxy class-instance creation536683 -Node: SingletonProxy-saving and restoring537140 -Node: SmallInteger537583 -Node: SmallInteger class-getting limits538282 -Node: SmallInteger class-testing538784 -Node: SmallInteger-bit arithmetic539096 -Node: SmallInteger-built ins539390 -Node: SmallInteger-builtins541711 -Node: SmallInteger-coercion methods542478 -Node: SmallInteger-testing functionality542850 -Node: SortedCollection543099 -Node: SortedCollection class-hacking544243 -Node: SortedCollection class-instance creation544528 -Node: SortedCollection-basic545057 -Node: SortedCollection-copying545618 -Node: SortedCollection-disabled545941 -Node: SortedCollection-enumerating546811 -Node: SortedCollection-saving and loading547157 -Node: SortedCollection-searching547519 -Node: Stream548122 -Node: Stream-accessing-reading549076 -Node: Stream-accessing-writing550885 -Node: Stream-basic551456 -Node: Stream-character writing551655 -Node: Stream-enumerating552192 -Node: Stream-filing out552443 -Node: Stream-positioning552805 -Node: Stream-printing553529 -Node: Stream-providing consistent protocols554305 -Node: Stream-storing554680 -Node: Stream-testing555070 -Node: String555372 -Node: String class-basic555966 -Node: String class-instance creation556299 -Node: String-built ins556646 -Node: String-converting558654 -Node: String-storing559015 -Node: String-testing functionality559268 -Node: String-useful functionality559508 -Node: Symbol559810 -Node: Symbol class-built ins560648 -Node: Symbol class-instance creation560879 -Node: Symbol class-symbol table562034 -Node: Symbol-basic563459 -Node: Symbol-built ins564228 -Node: Symbol-converting564553 -Node: Symbol-misc564909 -Node: Symbol-storing565089 -Node: Symbol-testing565768 -Node: Symbol-testing functionality566052 -Node: SymLink566289 -Node: SymLink class-instance creation566850 -Node: SymLink-accessing567186 -Node: SymLink-iteration567537 -Node: SymLink-printing567768 -Node: SystemDictionary567984 -Node: SystemDictionary-basic568844 -Node: SystemDictionary-builtins569141 -Node: SystemDictionary-C functions570487 -Node: SystemDictionary-miscellaneous571009 -Node: SystemDictionary-printing571370 -Node: SystemDictionary-special accessing571805 -Node: SystemDictionary-testing572418 -Node: SystemExceptions.AlreadyDefined572643 -Node: SystemExceptions.AlreadyDefined-accessing573169 -Node: SystemExceptions.ArgumentOutOfRange573437 -Node: SystemExceptions.ArgumentOutOfRange class-signaling574037 -Node: SystemExceptions.ArgumentOutOfRange-accessing574459 -Node: SystemExceptions.BadReturn575053 -Node: SystemExceptions.BadReturn-accessing575543 -Node: SystemExceptions.CInterfaceError575803 -Node: SystemExceptions.CInterfaceError-accessing576314 -Node: SystemExceptions.EmptyCollection576598 -Node: SystemExceptions.EmptyCollection-accessing577095 -Node: SystemExceptions.EndOfStream577379 -Node: SystemExceptions.EndOfStream class-signaling577880 -Node: SystemExceptions.EndOfStream-accessing578236 -Node: SystemExceptions.FileError578672 -Node: SystemExceptions.FileError-accessing579161 -Node: SystemExceptions.IndexOutOfRange579421 -Node: SystemExceptions.IndexOutOfRange class-signaling580017 -Node: SystemExceptions.IndexOutOfRange-accessing580399 -Node: SystemExceptions.InvalidArgument580929 -Node: SystemExceptions.InvalidArgument-accessing581436 -Node: SystemExceptions.InvalidProcessState581709 -Node: SystemExceptions.InvalidProcessState-accessing582250 -Node: SystemExceptions.InvalidSize582550 -Node: SystemExceptions.InvalidSize-accessing583027 -Node: SystemExceptions.InvalidValue583295 -Node: SystemExceptions.InvalidValue class-signaling583815 -Node: SystemExceptions.InvalidValue-accessing584280 -Node: SystemExceptions.MustBeBoolean584787 -Node: SystemExceptions.MutationError585219 -Node: SystemExceptions.MutationError-accessing585690 -Node: SystemExceptions.NoRunnableProcess585966 -Node: SystemExceptions.NoRunnableProcess-accessing586463 -Node: SystemExceptions.NotFound586755 -Node: SystemExceptions.NotFound class-accessing587281 -Node: SystemExceptions.NotFound-accessing587672 -Node: SystemExceptions.NotImplemented587978 -Node: SystemExceptions.NotImplemented-accessing588446 -Node: SystemExceptions.NotIndexable588726 -Node: SystemExceptions.NotIndexable-accessing589199 -Node: SystemExceptions.NotYetImplemented589471 -Node: SystemExceptions.NotYetImplemented-accessing589993 -Node: SystemExceptions.PrimitiveFailed590285 -Node: SystemExceptions.PrimitiveFailed-accessing590780 -Node: SystemExceptions.ProcessBeingTerminated591064 -Node: SystemExceptions.ProcessBeingTerminated-accessing591511 -Node: SystemExceptions.ProcessTerminated591823 -Node: SystemExceptions.ProcessTerminated-accessing592358 -Node: SystemExceptions.ReadOnlyObject592650 -Node: SystemExceptions.ReadOnlyObject-accessing593141 -Node: SystemExceptions.ShouldNotImplement593421 -Node: SystemExceptions.ShouldNotImplement-accessing593961 -Node: SystemExceptions.SubclassResponsibility594257 -Node: SystemExceptions.SubclassResponsibility-accessing594837 -Node: SystemExceptions.UserInterrupt595149 -Node: SystemExceptions.UserInterrupt-accessing595611 -Node: SystemExceptions.VMError595887 -Node: SystemExceptions.VMError-accessing596323 -Node: SystemExceptions.WrongArgumentCount596575 -Node: SystemExceptions.WrongArgumentCount-accessing597141 -Node: SystemExceptions.WrongClass597437 -Node: SystemExceptions.WrongClass class-signaling598065 -Node: SystemExceptions.WrongClass-accessing598737 -Node: SystemExceptions.WrongMessageSent599406 -Node: SystemExceptions.WrongMessageSent class-signaling600063 -Node: SystemExceptions.WrongMessageSent-accessing600496 -Node: TextCollector601101 -Node: TextCollector class-accessing601811 -Node: TextCollector-accessing602324 -Node: TextCollector-printing603139 -Node: TextCollector-set up603487 -Node: TextCollector-storing604066 -Node: Time604410 -Node: Time class-basic (UTC)605201 -Node: Time class-builtins605663 -Node: Time class-clocks606704 -Node: Time class-initialization607275 -Node: Time class-instance creation607635 -Node: Time-accessing (ANSI for DateAndTimes)608528 -Node: Time-accessing (non ANSI & for Durations)609060 -Node: Time-arithmetic609526 -Node: Time-comparing609968 -Node: TokenStream610269 -Node: TokenStream class-instance creation611089 -Node: TokenStream-basic611465 -Node: TokenStream-write methods611803 -Node: TrappableEvent612062 -Node: TrappableEvent-enumerating612650 -Node: TrappableEvent-instance creation613214 -Node: True613560 -Node: True-basic613950 -Node: True-C hacks614916 -Node: True-printing615092 -Node: UndefinedObject615290 -Node: UndefinedObject-basic616018 -Node: UndefinedObject-class creation616303 -Node: UndefinedObject-class creation - alternative618500 -Node: UndefinedObject-CObject interoperability620804 -Node: UndefinedObject-dependents access621242 -Node: UndefinedObject-printing621631 -Node: UndefinedObject-storing621927 -Node: UndefinedObject-testing622219 -Node: ValueAdaptor623071 -Node: ValueAdaptor class-creating instances623567 -Node: ValueAdaptor-accessing623871 -Node: ValueAdaptor-printing624294 -Node: ValueHolder624523 -Node: ValueHolder class-creating instances625150 -Node: ValueHolder-accessing625549 -Node: ValueHolder-initializing625858 -Node: VariableBinding626097 -Node: VariableBinding-printing626741 -Node: VariableBinding-saving and loading627072 -Node: VariableBinding-storing627545 -Node: VariableBinding-testing627849 -Node: VersionableObjectProxy628123 -Node: VersionableObjectProxy class-saving and restoring629031 -Node: VersionableObjectProxy-saving and restoring630071 -Node: VFS.ArchiveFileHandler630421 -Node: VFS.ArchiveFileHandler class-registering631350 -Node: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol631821 -Node: VFS.ArchiveFileHandler-directory operations633214 -Node: VFS.ArchiveFileHandler-file operations634072 -Node: VFS.ArchiveMemberHandler634375 -Node: VFS.ArchiveMemberHandler-accessing635115 -Node: VFS.ArchiveMemberHandler-directory operations636291 -Node: VFS.ArchiveMemberHandler-file operations636928 -Node: VFS.ArchiveMemberHandler-finalization637610 -Node: VFS.ArchiveMemberHandler-initializing638119 -Node: VFS.ArchiveMemberHandler-testing638669 -Node: VFS.DecodedFileHandler639571 -Node: VFS.DecodedFileHandler class-registering640124 -Node: VFS.DecodedFileHandler-files641287 -Node: VFS.ExternalArchiveFileHandler641998 -Node: VFS.ExternalArchiveFileHandler class-registering642841 -Node: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol643741 -Node: VFS.ExternalArchiveFileHandler-members645078 -Node: VFS.ExternalArchiveFileHandler-releasing645605 -Node: VFS.RealFileHandler645971 -Node: VFS.RealFileHandler class-C functions646726 -Node: VFS.RealFileHandler class-initialization647024 -Node: VFS.RealFileHandler-accessing647367 -Node: VFS.RealFileHandler-directory operations648573 -Node: VFS.RealFileHandler-file operations649085 -Node: VFS.RealFileHandler-testing649643 -Node: VFS.VFSHandler650403 -Node: VFS.VFSHandler class-initializing651188 -Node: VFS.VFSHandler class-instance creation652102 -Node: VFS.VFSHandler-accessing652461 -Node: VFS.VFSHandler-C functions653819 -Node: VFS.VFSHandler-directory operations654971 -Node: VFS.VFSHandler-file operations655576 -Node: VFS.VFSHandler-testing656366 -Node: Warning657223 -Node: Warning-exception description657554 -Node: WeakArray657774 -Node: WeakArray class-instance creation658279 -Node: WeakArray-accessing658619 -Node: WeakArray-conversion660283 -Node: WeakArray-loading660934 -Node: WeakIdentitySet661215 -Node: WeakKeyDictionary661689 -Node: WeakKeyDictionary-accessing662250 -Node: WeakKeyIdentityDictionary662767 -Node: WeakSet663307 -Node: WeakSet-accessing663775 -Node: WeakValueIdentityDictionary664289 -Node: WeakValueLookupTable664847 -Node: WeakValueLookupTable-hacks665467 -Node: WeakValueLookupTable-rehashing666040 -Node: WordArray666279 -Node: WriteStream666597 -Node: WriteStream class-instance creation667135 -Node: WriteStream-accessing667821 -Node: WriteStream-accessing-writing668091 -Node: WriteStream-positioning668698 -Node: ZeroDivide668924 -Node: ZeroDivide class-instance creation669429 -Node: ZeroDivide-accessing669825 -Node: ZeroDivide-description670094 -Node: Class index670325 -Node: Method index688398 -Node: Cross-reference1087667 +Node: Top1015 +Node: Base classes2176 +Node: AbstractNamespace11481 +Node: AbstractNamespace class-instance creation12228 +Node: AbstractNamespace-accessing12655 +Node: AbstractNamespace-basic & copying13881 +Node: AbstractNamespace-copying14423 +Node: AbstractNamespace-namespace hierarchy14867 +Node: AbstractNamespace-overrides for superspaces17533 +Node: AbstractNamespace-printing19251 +Node: AbstractNamespace-testing19824 +Node: AlternativeObjectProxy20063 +Node: AlternativeObjectProxy class-instance creation20797 +Node: AlternativeObjectProxy-accessing21730 +Node: ArithmeticError22282 +Node: ArithmeticError-description22733 +Node: Array22939 +Node: Array-mutating objects23570 +Node: Array-printing23870 +Node: Array-testing24089 +Node: ArrayedCollection24230 +Node: ArrayedCollection class-instance creation25019 +Node: ArrayedCollection-basic26141 +Node: ArrayedCollection-built ins27040 +Node: ArrayedCollection-copying Collections27304 +Node: ArrayedCollection-enumerating the elements of a collection29056 +Node: ArrayedCollection-storing30203 +Node: Association30488 +Node: Association class-basic31165 +Node: Association-accessing31404 +Node: Association-finalization32012 +Node: Association-printing32233 +Node: Association-storing32481 +Node: Association-testing32735 +Node: Autoload33080 +Node: Autoload class-instance creation33750 +Node: Autoload-accessing34254 +Node: AutoloadClass34480 +Node: AutoloadClass-accessing35005 +Node: Bag35961 +Node: Bag class-basic36666 +Node: Bag-adding36923 +Node: Bag-enumerating the elements of a collection37404 +Node: Bag-extracting items37762 +Node: Bag-printing38042 +Node: Bag-removing38247 +Node: Bag-storing38557 +Node: Bag-testing collections38775 +Node: Behavior39261 +Node: Behavior-accessing class hierarchy40850 +Node: Behavior-accessing instances and variables41577 +Node: Behavior-accessing the methodDictionary42864 +Node: Behavior-built ins43945 +Node: Behavior-compilation (alternative)46134 +Node: Behavior-compiling methods46955 +Node: Behavior-creating a class hierarchy47416 +Node: Behavior-enumerating47853 +Node: Behavior-evaluating48907 +Node: Behavior-instance creation50198 +Node: Behavior-instance variables50978 +Node: Behavior-method dictionary51410 +Node: Behavior-pluggable behavior (not yet implemented)54848 +Node: Behavior-printing hierarchy55972 +Node: Behavior-support for lightweight classes56566 +Node: Behavior-testing functionality57606 +Node: Behavior-testing the class hierarchy57875 +Node: Behavior-testing the form of the instances58398 +Node: Behavior-testing the method dictionary59526 +Node: BindingDictionary60913 +Node: BindingDictionary-accessing61760 +Node: BindingDictionary-copying63642 +Node: BindingDictionary-forward declarations64175 +Node: BindingDictionary-printing64781 +Node: BindingDictionary-testing65175 +Node: BlockClosure65390 +Node: BlockClosure class-instance creation66613 +Node: BlockClosure class-testing67180 +Node: BlockClosure-accessing67474 +Node: BlockClosure-built ins69062 +Node: BlockClosure-control structures69829 +Node: BlockClosure-exception handling70496 +Node: BlockClosure-multiple process72498 +Node: BlockClosure-overriding73941 +Node: BlockClosure-testing74209 +Node: BlockClosure-unwind protection74469 +Node: BlockContext75938 +Node: BlockContext-accessing76718 +Node: BlockContext-printing78232 +Node: Boolean78457 +Node: Boolean class-testing79208 +Node: Boolean-basic79511 +Node: Boolean-C hacks80793 +Node: Boolean-overriding81041 +Node: Boolean-storing81270 +Node: ByteArray81485 +Node: ByteArray-built ins82026 +Node: ByteArray-converting83309 +Node: ByteArray-more advanced accessing83587 +Node: ByteStream90091 +Node: ByteStream-basic90470 +Node: CAggregate91746 +Node: CAggregate class-accessing92041 +Node: CAggregate-accessing92317 +Node: CallinProcess92541 +Node: CArray93059 +Node: CArray-accessing93302 +Node: CArrayCType93495 +Node: CArrayCType class-instance creation93796 +Node: CArrayCType-accessing94416 +Node: CBoolean94780 +Node: CBoolean-accessing95077 +Node: CByte95394 +Node: CByte class-conversion95776 +Node: CByte-accessing96095 +Node: CChar96533 +Node: CChar class-accessing96794 +Node: CChar-accessing97144 +Node: CCompound97447 +Node: CCompound class-instance creation97789 +Node: CCompound class-subclass creation98148 +Node: CCompound-instance creation100238 +Node: CDouble100577 +Node: CDouble class-accessing100849 +Node: CDouble-accessing101209 +Node: CFloat101522 +Node: CFloat class-accessing101800 +Node: CFloat-accessing102155 +Node: CFunctionDescriptor102463 +Node: CFunctionDescriptor class-instance creation103238 +Node: CFunctionDescriptor class-testing103586 +Node: CFunctionDescriptor-accessing104083 +Node: CFunctionDescriptor-calling104701 +Node: CFunctionDescriptor-printing106641 +Node: Character106900 +Node: Character class-built ins107869 +Node: Character class-constants108641 +Node: Character class-initializing lookup tables109435 +Node: Character class-instance creation110071 +Node: Character class-testing110429 +Node: Character-built ins110788 +Node: Character-coercion methods111563 +Node: Character-comparing112127 +Node: Character-converting112760 +Node: Character-printing113063 +Node: Character-storing113437 +Node: Character-testing113676 +Node: Character-testing functionality114312 +Node: CharacterArray114544 +Node: CharacterArray class-basic115285 +Node: CharacterArray-basic115675 +Node: CharacterArray-built ins116352 +Node: CharacterArray-comparing116767 +Node: CharacterArray-converting118977 +Node: CharacterArray-printing120334 +Node: CharacterArray-storing120953 +Node: CharacterArray-string processing121232 +Node: CharacterArray-testing functionality123771 +Node: CInt124017 +Node: CInt class-accessing124278 +Node: CInt-accessing124603 +Node: Class124921 +Node: Class-accessing instances and variables125767 +Node: Class-filing127279 +Node: Class-instance creation127719 +Node: Class-instance creation - alternative129924 +Node: Class-printing132089 +Node: Class-saving and loading132496 +Node: Class-testing133890 +Node: Class-testing functionality134129 +Node: ClassDescription134346 +Node: ClassDescription-compiling135008 +Node: ClassDescription-conversion135836 +Node: ClassDescription-copying136289 +Node: ClassDescription-filing137486 +Node: ClassDescription-organization of messages and classes138308 +Node: ClassDescription-printing139608 +Node: CLong140357 +Node: CLong class-accessing140627 +Node: CLong-accessing140977 +Node: CObject141280 +Node: CObject class-conversion142130 +Node: CObject class-instance creation142473 +Node: CObject-accessing143071 +Node: CObject-C data access143506 +Node: CObject-conversion144110 +Node: CObject-finalization144843 +Node: CObject-pointer-like behavior145307 +Node: Collection147562 +Node: Collection class-instance creation148489 +Node: Collection-adding149493 +Node: Collection-converting149840 +Node: Collection-copying Collections150933 +Node: Collection-enumeration151471 +Node: Collection-finalization154496 +Node: Collection-printing154801 +Node: Collection-removing155144 +Node: Collection-storing155984 +Node: Collection-testing collections156241 +Node: CompiledBlock156880 +Node: CompiledBlock class-instance creation157378 +Node: CompiledBlock-accessing158114 +Node: CompiledBlock-basic159173 +Node: CompiledBlock-printing159882 +Node: CompiledBlock-saving and loading160149 +Node: CompiledCode160570 +Node: CompiledCode class-cache flushing161296 +Node: CompiledCode class-instance creation161652 +Node: CompiledCode-accessing162198 +Node: CompiledCode-basic163597 +Node: CompiledCode-copying164348 +Node: CompiledCode-debugging164573 +Node: CompiledCode-decoding bytecodes164832 +Node: CompiledCode-testing accesses165239 +Node: CompiledCode-translation166400 +Node: CompiledMethod166658 +Node: CompiledMethod class-instance creation167436 +Node: CompiledMethod class-lean images168073 +Node: CompiledMethod-accessing168394 +Node: CompiledMethod-basic169761 +Node: CompiledMethod-printing170525 +Node: CompiledMethod-saving and loading170866 +Node: CompiledMethod-testing171316 +Node: ContextPart171900 +Node: ContextPart class-exception handling172674 +Node: ContextPart-accessing173620 +Node: ContextPart-built ins176853 +Node: ContextPart-copying177539 +Node: ContextPart-debugging177892 +Node: ContextPart-enumerating178416 +Node: ContextPart-exception handling178801 +Node: ContextPart-printing179063 +Node: CoreException179426 +Node: CoreException class-instance creation180692 +Node: CoreException-accessing180948 +Node: CoreException-basic181882 +Node: CoreException-enumerating182137 +Node: CoreException-exception handling182795 +Node: CoreException-instance creation183446 +Node: CPtr183748 +Node: CPtr-accessing183981 +Node: CPtrCType184516 +Node: CPtrCType class-instance creation184800 +Node: CPtrCType-accessing185085 +Node: CScalar185546 +Node: CScalar class-instance creation185832 +Node: CScalar-accessing186291 +Node: CScalarCType186806 +Node: CScalarCType-accessing187094 +Node: CScalarCType-storing187422 +Node: CShort187644 +Node: CShort class-accessing187918 +Node: CShort-accessing188273 +Node: CSmalltalk188581 +Node: CSmalltalk class-accessing188866 +Node: CSmalltalk-accessing189241 +Node: CString189569 +Node: CString class-instance creation190376 +Node: CString-accessing190835 +Node: CStringCType191350 +Node: CStringCType-accessing191609 +Node: CStruct191810 +Node: CStruct class-subclass creation192060 +Node: CType192294 +Node: CType class-C instance creation193408 +Node: CType-accessing193664 +Node: CType-C instance creation194507 +Node: CType-storing195018 +Node: CUChar195215 +Node: CUChar class-getting info195480 +Node: CUChar-accessing195844 +Node: CUInt196155 +Node: CUInt class-accessing196414 +Node: CUInt-accessing196764 +Node: CULong197067 +Node: CULong class-accessing197330 +Node: CULong-accessing197685 +Node: CUnion197993 +Node: CUnion class-subclass creation198235 +Node: CUShort198465 +Node: CUShort class-accessing198732 +Node: CUShort-accessing199092 +Node: Date199405 +Node: Date class-basic200867 +Node: Date class-instance creation (ANSI)201981 +Node: Date class-instance creation (Blue Book)202457 +Node: Date-basic203763 +Node: Date-compatibility (non-ANSI)204223 +Node: Date-date computations204622 +Node: Date-printing206231 +Node: Date-storing206445 +Node: Date-testing206654 +Node: DateTime206959 +Node: DateTime class-information207593 +Node: DateTime class-instance creation207870 +Node: DateTime class-instance creation (non-ANSI)209157 +Node: DateTime-basic209645 +Node: DateTime-computations209978 +Node: DateTime-printing210656 +Node: DateTime-splitting in dates & times210908 +Node: DateTime-storing211493 +Node: DateTime-testing211744 +Node: DateTime-time zones212105 +Node: Delay213219 +Node: Delay class-general inquiries213982 +Node: Delay class-initialization214241 +Node: Delay class-instance creation214523 +Node: Delay-accessing215012 +Node: Delay-comparing215252 +Node: Delay-process delay215524 +Node: DelayedAdaptor215746 +Node: DelayedAdaptor-accessing216272 +Node: Dictionary216637 +Node: Dictionary class-instance creation217587 +Node: Dictionary-accessing217827 +Node: Dictionary-awful ST-80 compatibility hacks219484 +Node: Dictionary-dictionary enumerating219933 +Node: Dictionary-dictionary removing221007 +Node: Dictionary-dictionary testing221862 +Node: Dictionary-polymorphism hacks222522 +Node: Dictionary-printing222793 +Node: Dictionary-rehashing223143 +Node: Dictionary-storing223346 +Node: Dictionary-testing223592 +Node: DirectedMessage223852 +Node: DirectedMessage class-creating instances224418 +Node: DirectedMessage-accessing224837 +Node: DirectedMessage-basic225131 +Node: DirectedMessage-multiple process225541 +Node: DirectedMessage-saving and loading226125 +Node: Directory226549 +Node: Directory class-C functions227320 +Node: Directory class-file name management227621 +Node: Directory class-file operations228182 +Node: Directory class-reading system defaults228550 +Node: Directory-accessing229498 +Node: Directory-enumerating230360 +Node: DLD231102 +Node: DLD class-C functions231772 +Node: DLD class-dynamic linking232149 +Node: DumperProxy233481 +Node: DumperProxy class-accessing234007 +Node: DumperProxy class-instance creation234458 +Node: DumperProxy-saving and restoring234949 +Node: Duration235350 +Node: Duration class-instance creation235751 +Node: Duration class-instance creation (non ANSI)236237 +Node: Duration-arithmetics236702 +Node: Error237876 +Node: Error-exception description238191 +Node: Exception238518 +Node: Exception class-comparison239646 +Node: Exception class-creating ExceptionCollections240096 +Node: Exception class-initialization240506 +Node: Exception class-instance creation240874 +Node: Exception class-interoperability with TrappableEvents241444 +Node: Exception-comparison242052 +Node: Exception-exception description242486 +Node: Exception-exception signaling242915 +Node: ExceptionSet243294 +Node: ExceptionSet class-instance creation243859 +Node: ExceptionSet-enumerating244110 +Node: False244660 +Node: False-basic245049 +Node: False-C hacks246029 +Node: False-printing246195 +Node: File246382 +Node: File class-C functions247205 +Node: File class-file name management247472 +Node: File class-file operations248599 +Node: File class-instance creation249213 +Node: File class-reading system defaults249701 +Node: File class-testing249974 +Node: File-accessing250612 +Node: File-file name management251698 +Node: File-file operations252470 +Node: File-testing253428 +Node: FileDescriptor254345 +Node: FileDescriptor class-initialization255496 +Node: FileDescriptor class-instance creation255820 +Node: FileDescriptor-accessing261839 +Node: FileDescriptor-basic262985 +Node: FileDescriptor-built ins264216 +Node: FileDescriptor-class type methods265414 +Node: FileDescriptor-initialize-release265830 +Node: FileDescriptor-low-level access266352 +Node: FileDescriptor-overriding inherited methods267424 +Node: FileDescriptor-printing268211 +Node: FileDescriptor-testing268495 +Node: FileSegment268703 +Node: FileSegment class-basic269312 +Node: FileSegment class-installing269655 +Node: FileSegment-basic270027 +Node: FileSegment-equality270876 +Node: FileStream271145 +Node: FileStream class-file-in271851 +Node: FileStream class-standard streams275373 +Node: FileStream-basic276099 +Node: FileStream-buffering277037 +Node: FileStream-filing in277842 +Node: FileStream-overriding inherited methods278757 +Node: FileStream-testing279616 +Node: Float279824 +Node: Float class-byte-order dependancies280617 +Node: Float class-characterization280883 +Node: Float-arithmetic281891 +Node: Float-basic282209 +Node: Float-built ins282390 +Node: Float-coercing283317 +Node: Float-printing283939 +Node: Float-storing284149 +Node: Float-testing284356 +Node: Float-testing functionality285109 +Node: FloatD285291 +Node: FloatD class-byte-order dependancies285950 +Node: FloatD class-characterization286221 +Node: FloatD class-converting287481 +Node: FloatD-built ins287723 +Node: FloatD-coercing288946 +Node: FloatE289335 +Node: FloatE class-byte-order dependancies289995 +Node: FloatE class-characterization290266 +Node: FloatE class-converting291814 +Node: FloatE-built ins292056 +Node: FloatE-coercing293279 +Node: FloatQ293668 +Node: FloatQ class-byte-order dependancies294330 +Node: FloatQ class-characterization294601 +Node: FloatQ class-converting296149 +Node: FloatQ-built ins296391 +Node: FloatQ-coercing297614 +Node: Fraction298003 +Node: Fraction class-converting298745 +Node: Fraction class-instance creation298975 +Node: Fraction-accessing299346 +Node: Fraction-arithmetic299622 +Node: Fraction-coercing300332 +Node: Fraction-comparing300957 +Node: Fraction-converting301445 +Node: Fraction-optimized cases301932 +Node: Fraction-printing302352 +Node: Fraction-testing302668 +Node: Halt302859 +Node: Halt-description303145 +Node: HashedCollection303382 +Node: HashedCollection class-instance creation304233 +Node: HashedCollection-accessing304596 +Node: HashedCollection-builtins305162 +Node: HashedCollection-copying305925 +Node: HashedCollection-enumerating the elements of a collection306389 +Node: HashedCollection-rehashing306751 +Node: HashedCollection-removing307023 +Node: HashedCollection-saving and loading307416 +Node: HashedCollection-storing307916 +Node: HashedCollection-testing collections308229 +Node: HomedAssociation309160 +Node: HomedAssociation class-basic309720 +Node: HomedAssociation-accessing310008 +Node: HomedAssociation-finalization310360 +Node: HomedAssociation-storing310966 +Node: IdentityDictionary311221 +Node: IdentitySet311604 +Node: IdentitySet-testing311993 +Node: Integer312240 +Node: Integer class-converting313059 +Node: Integer-accessing313277 +Node: Integer-basic313502 +Node: Integer-bit operators313698 +Node: Integer-converting314970 +Node: Integer-extension315660 +Node: Integer-iterators315959 +Node: Integer-math methods316311 +Node: Integer-printing317108 +Node: Integer-storing318153 +Node: Integer-testing functionality318464 +Node: Interval318722 +Node: Interval class-instance creation319308 +Node: Interval-basic319896 +Node: Interval-printing320568 +Node: Interval-storing320794 +Node: Interval-testing321027 +Node: LargeArray321284 +Node: LargeArray-overridden321677 +Node: LargeArrayedCollection321855 +Node: LargeArrayedCollection class-instance creation322388 +Node: LargeArrayedCollection-accessing322733 +Node: LargeArrayedCollection-basic323223 +Node: LargeArraySubpart323610 +Node: LargeArraySubpart class-instance creation324479 +Node: LargeArraySubpart-accessing324874 +Node: LargeArraySubpart-comparing325815 +Node: LargeArraySubpart-modifying326823 +Node: LargeByteArray327571 +Node: LargeByteArray-overridden327984 +Node: LargeInteger328411 +Node: LargeInteger-arithmetic329197 +Node: LargeInteger-bit operations330160 +Node: LargeInteger-built-ins330748 +Node: LargeInteger-coercion331813 +Node: LargeInteger-disabled332235 +Node: LargeInteger-primitive operations332596 +Node: LargeInteger-testing333062 +Node: LargeNegativeInteger333688 +Node: LargeNegativeInteger-converting334380 +Node: LargeNegativeInteger-numeric testing334754 +Node: LargeNegativeInteger-reverting to LargePositiveInteger335275 +Node: LargePositiveInteger335827 +Node: LargePositiveInteger-arithmetic336694 +Node: LargePositiveInteger-converting337156 +Node: LargePositiveInteger-helper byte-level methods337699 +Node: LargePositiveInteger-numeric testing339422 +Node: LargePositiveInteger-primitive operations339944 +Node: LargeWordArray340624 +Node: LargeWordArray-overridden341044 +Node: LargeZeroInteger341329 +Node: LargeZeroInteger-accessing342147 +Node: LargeZeroInteger-arithmetic342398 +Node: LargeZeroInteger-numeric testing343314 +Node: LargeZeroInteger-printing343637 +Node: Link343921 +Node: Link class-instance creation344456 +Node: Link-basic344674 +Node: Link-iteration344913 +Node: LinkedList345360 +Node: LinkedList-accessing345958 +Node: LinkedList-adding346260 +Node: LinkedList-enumerating346979 +Node: LinkedList-testing347306 +Node: LookupKey347648 +Node: LookupKey class-basic348192 +Node: LookupKey-accessing348420 +Node: LookupKey-printing348671 +Node: LookupKey-storing348904 +Node: LookupKey-testing349146 +Node: LookupTable349566 +Node: LookupTable class-instance creation350330 +Node: LookupTable-accessing350576 +Node: LookupTable-copying351365 +Node: LookupTable-enumerating351669 +Node: LookupTable-hashing352046 +Node: LookupTable-rehashing352271 +Node: LookupTable-removing352480 +Node: LookupTable-storing352966 +Node: Magnitude353189 +Node: Magnitude-basic353633 +Node: Magnitude-misc methods354149 +Node: MappedCollection354549 +Node: MappedCollection class-instance creation355912 +Node: MappedCollection-basic356349 +Node: Memory357224 +Node: Memory class-accessing357772 +Node: Message361653 +Node: Message class-creating instances362291 +Node: Message-accessing362567 +Node: Message-basic362993 +Node: MessageNotUnderstood363304 +Node: MessageNotUnderstood-accessing363786 +Node: MessageNotUnderstood-description364109 +Node: Metaclass364374 +Node: Metaclass class-instance creation365361 +Node: Metaclass-accessing365630 +Node: Metaclass-basic366060 +Node: Metaclass-delegation367156 +Node: Metaclass-filing368540 +Node: Metaclass-printing368815 +Node: Metaclass-testing functionality369354 +Node: MethodContext369599 +Node: MethodContext-accessing370089 +Node: MethodContext-printing371347 +Node: MethodDictionary371577 +Node: MethodDictionary-adding372096 +Node: MethodDictionary-rehashing372329 +Node: MethodDictionary-removing372567 +Node: MethodInfo372963 +Node: MethodInfo-accessing373437 +Node: MethodInfo-equality374366 +Node: Namespace374643 +Node: Namespace class-accessing375239 +Node: Namespace class-disabling instance creation375626 +Node: Namespace class-initialization376006 +Node: Namespace-accessing376427 +Node: Namespace-namespace hierarchy376700 +Node: Namespace-overrides for superspaces377182 +Node: Namespace-printing378963 +Node: NetClients.URIResolver379451 +Node: NetClients.URIResolver class-api379894 +Node: NetClients.URIResolver class-instance creation381028 +Node: NetClients.URL381389 +Node: NetClients.URL class-encoding URLs382098 +Node: NetClients.URL class-instance creation382587 +Node: NetClients.URL-accessing383396 +Node: NetClients.URL-comparing386105 +Node: NetClients.URL-copying386615 +Node: NetClients.URL-initialize-release387136 +Node: NetClients.URL-printing387419 +Node: NetClients.URL-testing387697 +Node: NetClients.URL-utilities388457 +Node: Notification388751 +Node: Notification-exception description389192 +Node: NullProxy389638 +Node: NullProxy class-instance creation390238 +Node: NullProxy-accessing390493 +Node: NullValueHolder390729 +Node: NullValueHolder class-creating instances391306 +Node: NullValueHolder-accessing391572 +Node: Number391904 +Node: Number class-converting392788 +Node: Number class-testing393232 +Node: Number-arithmetic393484 +Node: Number-comparing394801 +Node: Number-converting395208 +Node: Number-copying396460 +Node: Number-error raising396759 +Node: Number-misc math397114 +Node: Number-point creation398661 +Node: Number-retrying398940 +Node: Number-shortcuts and iterators400727 +Node: Number-testing401576 +Node: Number-truncation and round off402994 +Node: Object403791 +Node: Object class-initialization404741 +Node: Object-built ins405417 +Node: Object-change and update413335 +Node: Object-class type methods414526 +Node: Object-conversion415329 +Node: Object-copying415560 +Node: Object-debugging416208 +Node: Object-dependents access416652 +Node: Object-error raising417340 +Node: Object-exception handling418017 +Node: Object-finalization418522 +Node: Object-printing419502 +Node: Object-relational operators421229 +Node: Object-saving and loading421575 +Node: Object-storing422560 +Node: Object-syntax shortcuts423149 +Node: Object-testing functionality423458 +Node: ObjectDumper424980 +Node: ObjectDumper class-establishing proxy classes426173 +Node: ObjectDumper class-instance creation427006 +Node: ObjectDumper class-shortcuts427403 +Node: ObjectDumper class-testing427781 +Node: ObjectDumper-accessing428209 +Node: ObjectDumper-loading/dumping objects428701 +Node: ObjectDumper-stream interface429125 +Node: ObjectMemory429491 +Node: ObjectMemory class-accessing430564 +Node: ObjectMemory class-builtins430815 +Node: ObjectMemory class-initialization434146 +Node: ObjectMemory class-saving the image434422 +Node: ObjectMemory-accessing434734 +Node: ObjectMemory-builtins439672 +Node: ObjectMemory-derived information439941 +Node: OrderedCollection440912 +Node: OrderedCollection class-instance creation441622 +Node: OrderedCollection-accessing441964 +Node: OrderedCollection-adding442415 +Node: OrderedCollection-removing444463 +Node: Package445101 +Node: Package-accessing445506 +Node: PackageLoader448354 +Node: PackageLoader class-accessing448912 +Node: PackageLoader class-loading451263 +Node: PackageLoader class-testing452250 +Node: PluggableAdaptor452525 +Node: PluggableAdaptor class-creating instances453153 +Node: PluggableAdaptor-accessing454232 +Node: PluggableProxy454517 +Node: PluggableProxy class-accessing455143 +Node: PluggableProxy-saving and restoring455577 +Node: Point455996 +Node: Point class-instance creation456723 +Node: Point-accessing457020 +Node: Point-arithmetic457438 +Node: Point-comparing458141 +Node: Point-converting458938 +Node: Point-point functions459441 +Node: Point-printing460373 +Node: Point-storing460591 +Node: Point-truncation and round off460823 +Node: PositionableStream461219 +Node: PositionableStream class-instance creation462126 +Node: PositionableStream-accessing-reading462635 +Node: PositionableStream-class type methods463790 +Node: PositionableStream-positioning464279 +Node: PositionableStream-testing465417 +Node: PositionableStream-truncating465883 +Node: Process466167 +Node: Process-accessing466735 +Node: Process-basic468233 +Node: Process-builtins469764 +Node: Process-printing470558 +Node: ProcessorScheduler470756 +Node: ProcessorScheduler class-instance creation471423 +Node: ProcessorScheduler-basic471721 +Node: ProcessorScheduler-built ins473287 +Node: ProcessorScheduler-idle tasks473973 +Node: ProcessorScheduler-printing474476 +Node: ProcessorScheduler-priorities474779 +Node: ProcessorScheduler-storing476429 +Node: ProcessorScheduler-timed invocation476754 +Node: Promise477309 +Node: Promise class-creating instances477881 +Node: Promise-accessing478128 +Node: Promise-initializing478452 +Node: Promise-printing478680 +Node: Random478871 +Node: Random class-instance creation479320 +Node: Random class-shortcuts479686 +Node: Random-basic480003 +Node: Random-testing480417 +Node: ReadStream480727 +Node: ReadStream class-instance creation481167 +Node: ReadStream-accessing-reading481442 +Node: ReadWriteStream481736 +Node: ReadWriteStream class-instance creation482222 +Node: ReadWriteStream-positioning482677 +Node: Rectangle483042 +Node: Rectangle class-instance creation483831 +Node: Rectangle-accessing484373 +Node: Rectangle-copying486771 +Node: Rectangle-printing486989 +Node: Rectangle-rectangle functions487315 +Node: Rectangle-testing489156 +Node: Rectangle-transforming489970 +Node: Rectangle-truncation and round off490594 +Node: RecursionLock490883 +Node: RecursionLock class-instance creation491283 +Node: RecursionLock-accessing491517 +Node: RecursionLock-mutual exclusion492114 +Node: RecursionLock-printing492473 +Node: RootNamespace492723 +Node: RootNamespace class-instance creation493272 +Node: RootNamespace-namespace hierarchy493605 +Node: RootNamespace-overrides for superspaces494036 +Node: RootNamespace-printing494651 +Node: RunArray495159 +Node: RunArray class-instance creation496120 +Node: RunArray-accessing496392 +Node: RunArray-adding496726 +Node: RunArray-basic497800 +Node: RunArray-copying498105 +Node: RunArray-enumerating498461 +Node: RunArray-removing498921 +Node: RunArray-searching499386 +Node: RunArray-testing499800 +Node: ScaledDecimal500043 +Node: ScaledDecimal class-constants500847 +Node: ScaledDecimal class-instance creation501097 +Node: ScaledDecimal-arithmetic501534 +Node: ScaledDecimal-coercion502253 +Node: ScaledDecimal-comparing503158 +Node: ScaledDecimal-constants503794 +Node: ScaledDecimal-printing504096 +Node: ScaledDecimal-storing504556 +Node: Semaphore504794 +Node: Semaphore class-instance creation505457 +Node: Semaphore-accessing505830 +Node: Semaphore-builtins506314 +Node: Semaphore-mutual exclusion507654 +Node: Semaphore-printing507988 +Node: SequenceableCollection508218 +Node: SequenceableCollection class-instance creation508920 +Node: SequenceableCollection-basic509335 +Node: SequenceableCollection-copying SequenceableCollections512757 +Node: SequenceableCollection-enumerating515027 +Node: SequenceableCollection-replacing items518219 +Node: SequenceableCollection-testing519166 +Node: Set519600 +Node: Set-arithmetic520020 +Node: Set-awful ST-80 compatibility hacks520349 +Node: Set-comparing520710 +Node: SharedQueue521105 +Node: SharedQueue class-instance creation521627 +Node: SharedQueue-accessing521996 +Node: Signal522498 +Node: Signal-accessing523123 +Node: Signal-exception handling523973 +Node: SingletonProxy526526 +Node: SingletonProxy class-accessing527130 +Node: SingletonProxy class-instance creation527495 +Node: SingletonProxy-saving and restoring527936 +Node: SmallInteger528363 +Node: SmallInteger class-getting limits529050 +Node: SmallInteger class-testing529536 +Node: SmallInteger-bit arithmetic529832 +Node: SmallInteger-built ins530110 +Node: SmallInteger-builtins532415 +Node: SmallInteger-coercion methods533166 +Node: SmallInteger-testing functionality533522 +Node: SortedCollection533755 +Node: SortedCollection class-hacking534887 +Node: SortedCollection class-instance creation535156 +Node: SortedCollection-basic535669 +Node: SortedCollection-copying536214 +Node: SortedCollection-disabled536521 +Node: SortedCollection-enumerating537375 +Node: SortedCollection-saving and loading537705 +Node: SortedCollection-searching538051 +Node: Stream538638 +Node: Stream-accessing-reading539580 +Node: Stream-accessing-writing541373 +Node: Stream-basic541928 +Node: Stream-character writing542111 +Node: Stream-enumerating542632 +Node: Stream-filing out542867 +Node: Stream-positioning543213 +Node: Stream-printing543921 +Node: Stream-providing consistent protocols544681 +Node: Stream-storing545040 +Node: Stream-testing545412 +Node: String545696 +Node: String class-basic546278 +Node: String class-instance creation546595 +Node: String-built ins546926 +Node: String-converting548918 +Node: String-storing549263 +Node: String-testing functionality549500 +Node: String-useful functionality549724 +Node: Symbol550010 +Node: Symbol class-built ins550836 +Node: Symbol class-instance creation551051 +Node: Symbol class-symbol table552190 +Node: Symbol-basic553599 +Node: Symbol-built ins554352 +Node: Symbol-converting554661 +Node: Symbol-misc555001 +Node: Symbol-storing555165 +Node: Symbol-testing555828 +Node: Symbol-testing functionality556096 +Node: SymLink556315 +Node: SymLink class-instance creation556864 +Node: SymLink-accessing557184 +Node: SymLink-iteration557519 +Node: SymLink-printing557734 +Node: SystemDictionary557934 +Node: SystemDictionary-basic558782 +Node: SystemDictionary-builtins559063 +Node: SystemDictionary-C functions560393 +Node: SystemDictionary-miscellaneous560899 +Node: SystemDictionary-printing561244 +Node: SystemDictionary-special accessing561663 +Node: SystemDictionary-testing562260 +Node: SystemExceptions.AlreadyDefined562469 +Node: SystemExceptions.AlreadyDefined-accessing562983 +Node: SystemExceptions.ArgumentOutOfRange563235 +Node: SystemExceptions.ArgumentOutOfRange class-signaling563823 +Node: SystemExceptions.ArgumentOutOfRange-accessing564229 +Node: SystemExceptions.BadReturn564807 +Node: SystemExceptions.BadReturn-accessing565285 +Node: SystemExceptions.CInterfaceError565529 +Node: SystemExceptions.CInterfaceError-accessing566028 +Node: SystemExceptions.EmptyCollection566296 +Node: SystemExceptions.EmptyCollection-accessing566781 +Node: SystemExceptions.EndOfStream567049 +Node: SystemExceptions.EndOfStream class-signaling567538 +Node: SystemExceptions.EndOfStream-accessing567878 +Node: SystemExceptions.FileError568298 +Node: SystemExceptions.FileError-accessing568775 +Node: SystemExceptions.IndexOutOfRange569019 +Node: SystemExceptions.IndexOutOfRange class-signaling569603 +Node: SystemExceptions.IndexOutOfRange-accessing569969 +Node: SystemExceptions.InvalidArgument570483 +Node: SystemExceptions.InvalidArgument-accessing570978 +Node: SystemExceptions.InvalidProcessState571235 +Node: SystemExceptions.InvalidProcessState-accessing571764 +Node: SystemExceptions.InvalidSize572048 +Node: SystemExceptions.InvalidSize-accessing572513 +Node: SystemExceptions.InvalidValue572765 +Node: SystemExceptions.InvalidValue class-signaling573273 +Node: SystemExceptions.InvalidValue-accessing573722 +Node: SystemExceptions.MustBeBoolean574213 +Node: SystemExceptions.MutationError574633 +Node: SystemExceptions.MutationError-accessing575092 +Node: SystemExceptions.NoRunnableProcess575352 +Node: SystemExceptions.NoRunnableProcess-accessing575837 +Node: SystemExceptions.NotFound576113 +Node: SystemExceptions.NotFound class-accessing576627 +Node: SystemExceptions.NotFound-accessing577002 +Node: SystemExceptions.NotImplemented577292 +Node: SystemExceptions.NotImplemented-accessing577748 +Node: SystemExceptions.NotIndexable578012 +Node: SystemExceptions.NotIndexable-accessing578473 +Node: SystemExceptions.NotYetImplemented578729 +Node: SystemExceptions.NotYetImplemented-accessing579239 +Node: SystemExceptions.PrimitiveFailed579515 +Node: SystemExceptions.PrimitiveFailed-accessing579998 +Node: SystemExceptions.ProcessBeingTerminated580266 +Node: SystemExceptions.ProcessBeingTerminated-accessing580701 +Node: SystemExceptions.ProcessTerminated580997 +Node: SystemExceptions.ProcessTerminated-accessing581520 +Node: SystemExceptions.ReadOnlyObject581796 +Node: SystemExceptions.ReadOnlyObject-accessing582275 +Node: SystemExceptions.ShouldNotImplement582539 +Node: SystemExceptions.ShouldNotImplement-accessing583067 +Node: SystemExceptions.SubclassResponsibility583347 +Node: SystemExceptions.SubclassResponsibility-accessing583915 +Node: SystemExceptions.UserInterrupt584211 +Node: SystemExceptions.UserInterrupt-accessing584661 +Node: SystemExceptions.VMError584921 +Node: SystemExceptions.VMError-accessing585345 +Node: SystemExceptions.WrongArgumentCount585581 +Node: SystemExceptions.WrongArgumentCount-accessing586135 +Node: SystemExceptions.WrongClass586415 +Node: SystemExceptions.WrongClass class-signaling587031 +Node: SystemExceptions.WrongClass-accessing587687 +Node: SystemExceptions.WrongMessageSent588340 +Node: SystemExceptions.WrongMessageSent class-signaling588985 +Node: SystemExceptions.WrongMessageSent-accessing589402 +Node: TextCollector589991 +Node: TextCollector class-accessing590689 +Node: TextCollector-accessing591186 +Node: TextCollector-printing591985 +Node: TextCollector-set up592317 +Node: TextCollector-storing592880 +Node: Time593208 +Node: Time class-basic (UTC)593987 +Node: Time class-builtins594433 +Node: Time class-clocks595458 +Node: Time class-initialization596013 +Node: Time class-instance creation596357 +Node: Time-accessing (ANSI for DateAndTimes)597234 +Node: Time-accessing (non ANSI & for Durations)597750 +Node: Time-arithmetic598200 +Node: Time-comparing598626 +Node: TokenStream598911 +Node: TokenStream class-instance creation599719 +Node: TokenStream-basic600079 +Node: TokenStream-write methods600401 +Node: TrappableEvent600644 +Node: TrappableEvent-enumerating601220 +Node: TrappableEvent-instance creation601768 +Node: True602098 +Node: True-basic602476 +Node: True-C hacks603426 +Node: True-printing603586 +Node: UndefinedObject603768 +Node: UndefinedObject-basic604484 +Node: UndefinedObject-class creation604753 +Node: UndefinedObject-class creation - alternative606934 +Node: UndefinedObject-CObject interoperability609222 +Node: UndefinedObject-dependents access609644 +Node: UndefinedObject-printing610017 +Node: UndefinedObject-storing610297 +Node: UndefinedObject-testing610573 +Node: ValueAdaptor611409 +Node: ValueAdaptor class-creating instances611893 +Node: ValueAdaptor-accessing612181 +Node: ValueAdaptor-printing612588 +Node: ValueHolder612801 +Node: ValueHolder class-creating instances613416 +Node: ValueHolder-accessing613799 +Node: ValueHolder-initializing614092 +Node: VariableBinding614315 +Node: VariableBinding-printing614947 +Node: VariableBinding-saving and loading615262 +Node: VariableBinding-storing615719 +Node: VariableBinding-testing616007 +Node: VersionableObjectProxy616265 +Node: VersionableObjectProxy class-saving and restoring617161 +Node: VersionableObjectProxy-saving and restoring618185 +Node: VFS.ArchiveFileHandler618519 +Node: VFS.ArchiveFileHandler class-registering619436 +Node: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol619891 +Node: VFS.ArchiveFileHandler-directory operations621268 +Node: VFS.ArchiveFileHandler-file operations622110 +Node: VFS.ArchiveMemberHandler622397 +Node: VFS.ArchiveMemberHandler-accessing623125 +Node: VFS.ArchiveMemberHandler-directory operations624285 +Node: VFS.ArchiveMemberHandler-file operations624906 +Node: VFS.ArchiveMemberHandler-finalization625572 +Node: VFS.ArchiveMemberHandler-initializing626065 +Node: VFS.ArchiveMemberHandler-testing626599 +Node: VFS.DecodedFileHandler627485 +Node: VFS.DecodedFileHandler class-registering628026 +Node: VFS.DecodedFileHandler-files629173 +Node: VFS.ExternalArchiveFileHandler629868 +Node: VFS.ExternalArchiveFileHandler class-registering630699 +Node: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol631583 +Node: VFS.ExternalArchiveFileHandler-members632904 +Node: VFS.ExternalArchiveFileHandler-releasing633415 +Node: VFS.RealFileHandler633765 +Node: VFS.RealFileHandler class-C functions634508 +Node: VFS.RealFileHandler class-initialization634790 +Node: VFS.RealFileHandler-accessing635117 +Node: VFS.RealFileHandler-directory operations636307 +Node: VFS.RealFileHandler-file operations636803 +Node: VFS.RealFileHandler-testing637345 +Node: VFS.VFSHandler638089 +Node: VFS.VFSHandler class-initializing638862 +Node: VFS.VFSHandler class-instance creation639760 +Node: VFS.VFSHandler-accessing640103 +Node: VFS.VFSHandler-C functions641445 +Node: VFS.VFSHandler-directory operations642581 +Node: VFS.VFSHandler-file operations643170 +Node: VFS.VFSHandler-testing643944 +Node: Warning644785 +Node: Warning-exception description645104 +Node: WeakArray645308 +Node: WeakArray class-instance creation645801 +Node: WeakArray-accessing646125 +Node: WeakArray-conversion647773 +Node: WeakArray-loading648408 +Node: WeakIdentitySet648673 +Node: WeakKeyDictionary649135 +Node: WeakKeyDictionary-accessing649684 +Node: WeakKeyIdentityDictionary650185 +Node: WeakSet650713 +Node: WeakSet-accessing651169 +Node: WeakValueIdentityDictionary651667 +Node: WeakValueLookupTable652213 +Node: WeakValueLookupTable-hacks652821 +Node: WeakValueLookupTable-rehashing653378 +Node: WordArray653601 +Node: WriteStream653907 +Node: WriteStream class-instance creation654433 +Node: WriteStream-accessing655103 +Node: WriteStream-accessing-writing655357 +Node: WriteStream-positioning655948 +Node: ZeroDivide656158 +Node: ZeroDivide class-instance creation656651 +Node: ZeroDivide-accessing657031 +Node: ZeroDivide-description657284 +Node: Class index657499 +Node: Method index669336 +Node: Cross-reference888335  End Tag Table diff -rNu smalltalk-2.1.9/doc/gst-base.info-1 smalltalk-2.1.10/doc/gst-base.info-1 --- smalltalk-2.1.9/doc/gst-base.info-1 2004-10-02 15:32:58.000000000 +0200 +++ smalltalk-2.1.10/doc/gst-base.info-1 2005-02-02 15:37:50.000000000 +0100 @@ -1,13 +1,13 @@ -This is gst-base.info, produced by makeinfo version 4.7 from -/home/utente/devel-gst-stable/doc/gst-base-fixed.texi. +This is gst-base.info, produced by makeinfo version 4.6 from +/Users/bonzinip/devel/gst-stable/+build/doc/../../doc/gst-base-fixed.texi. INFO-DIR-SECTION GNU Smalltalk START-INFO-DIR-ENTRY * Base classes: (gst-base). The GNU Smalltalk base classes. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 31 March 2004. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 2 February 2005. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -23,20 +23,16 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. -  File: gst-base.info, Node: Top, Up: (DIR) -GNU Smalltalk Library Reference -******************************* -GNU Smalltalk Library Reference - This document describes the class libraries that are distributed +This document describes the class libraries that are distributed together with the GNU Smalltalk programming language. - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 31 March 2004. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 2 February 2005. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -52,7 +48,6 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. - * Menu: * Base classes:: The class reference @@ -64,8 +59,8 @@  File: gst-base.info, Node: Base classes, Next: Class index, Prev: Top, Up: Top -1 Base classes -************** +Base classes +************ * Menu: @@ -488,8 +483,8 @@  File: gst-base.info, Node: AbstractNamespace, Next: AlternativeObjectProxy, Up: Base classes -1.1 AbstractNamespace -===================== +AbstractNamespace +================= Defined in namespace Smalltalk Superclass: BindingDictionary @@ -511,8 +506,8 @@  File: gst-base.info, Node: AbstractNamespace class-instance creation, Next: AbstractNamespace-accessing, Up: AbstractNamespace -1.1.1 AbstractNamespace class: instance creation ------------------------------------------------- +AbstractNamespace class: instance creation +------------------------------------------ new Disabled - use #new to create instances @@ -525,8 +520,8 @@  File: gst-base.info, Node: AbstractNamespace-accessing, Next: AbstractNamespace-basic & copying, Prev: AbstractNamespace class-instance creation, Up: AbstractNamespace -1.1.2 AbstractNamespace: accessing ----------------------------------- +AbstractNamespace: accessing +---------------------------- allAssociations Answer a Dictionary with all of the associations in the receiver @@ -559,8 +554,8 @@  File: gst-base.info, Node: AbstractNamespace-basic & copying, Next: AbstractNamespace-copying, Prev: AbstractNamespace-accessing, Up: AbstractNamespace -1.1.3 AbstractNamespace: basic & copying ----------------------------------------- +AbstractNamespace: basic & copying +---------------------------------- = arg Answer whether the receiver is equal to arg. The equality test is @@ -575,8 +570,8 @@  File: gst-base.info, Node: AbstractNamespace-copying, Next: AbstractNamespace-namespace hierarchy, Prev: AbstractNamespace-basic & copying, Up: AbstractNamespace -1.1.4 AbstractNamespace: copying --------------------------------- +AbstractNamespace: copying +-------------------------- copyEmpty: newSize Answer an empty copy of the receiver whose size is newSize @@ -589,8 +584,8 @@  File: gst-base.info, Node: AbstractNamespace-namespace hierarchy, Next: AbstractNamespace-overrides for superspaces, Prev: AbstractNamespace-copying, Up: AbstractNamespace -1.1.5 AbstractNamespace: namespace hierarchy --------------------------------------------- +AbstractNamespace: namespace hierarchy +-------------------------------------- addSubspace: aSymbol Add aNamespace to the set of the receiver's subspaces @@ -673,8 +668,8 @@  File: gst-base.info, Node: AbstractNamespace-overrides for superspaces, Next: AbstractNamespace-printing, Prev: AbstractNamespace-namespace hierarchy, Up: AbstractNamespace -1.1.6 AbstractNamespace: overrides for superspaces --------------------------------------------------- +AbstractNamespace: overrides for superspaces +-------------------------------------------- definedKeys Answer a kind of Set containing the keys of the receiver @@ -717,8 +712,8 @@  File: gst-base.info, Node: AbstractNamespace-printing, Next: AbstractNamespace-testing, Prev: AbstractNamespace-overrides for superspaces, Up: AbstractNamespace -1.1.7 AbstractNamespace: printing ---------------------------------- +AbstractNamespace: printing +--------------------------- name Answer the receiver's name @@ -740,8 +735,8 @@  File: gst-base.info, Node: AbstractNamespace-testing, Prev: AbstractNamespace-printing, Up: AbstractNamespace -1.1.8 AbstractNamespace: testing --------------------------------- +AbstractNamespace: testing +-------------------------- isNamespace Answer `true'. @@ -753,8 +748,8 @@  File: gst-base.info, Node: AlternativeObjectProxy, Next: ArithmeticError, Prev: AbstractNamespace, Up: Base classes -1.2 AlternativeObjectProxy -========================== +AlternativeObjectProxy +====================== Defined in namespace Smalltalk Superclass: DumperProxy @@ -774,8 +769,8 @@  File: gst-base.info, Node: AlternativeObjectProxy class-instance creation, Next: AlternativeObjectProxy-accessing, Up: AlternativeObjectProxy -1.2.1 AlternativeObjectProxy class: instance creation ------------------------------------------------------ +AlternativeObjectProxy class: instance creation +----------------------------------------------- acceptUsageForClass: aClass The receiver was asked to be used as a proxy for the class aClass. @@ -795,8 +790,8 @@  File: gst-base.info, Node: AlternativeObjectProxy-accessing, Prev: AlternativeObjectProxy class-instance creation, Up: AlternativeObjectProxy -1.2.2 AlternativeObjectProxy: accessing ---------------------------------------- +AlternativeObjectProxy: accessing +--------------------------------- object Reconstruct the object stored in the proxy and answer it. A @@ -814,8 +809,8 @@  File: gst-base.info, Node: ArithmeticError, Next: Array, Prev: AlternativeObjectProxy, Up: Base classes -1.3 ArithmeticError -=================== +ArithmeticError +=============== Defined in namespace Smalltalk Superclass: Halt @@ -831,8 +826,8 @@  File: gst-base.info, Node: ArithmeticError-description, Up: ArithmeticError -1.3.1 ArithmeticError: description ----------------------------------- +ArithmeticError: description +---------------------------- description Answer a textual description of the exception. @@ -841,8 +836,8 @@  File: gst-base.info, Node: Array, Next: ArrayedCollection, Prev: ArithmeticError, Up: Base classes -1.4 Array -========= +Array +===== Defined in namespace Smalltalk Superclass: ArrayedCollection @@ -862,8 +857,8 @@  File: gst-base.info, Node: Array-mutating objects, Next: Array-printing, Up: Array -1.4.1 Array: mutating objects ------------------------------ +Array: mutating objects +----------------------- multiBecome: anArray Transform every object in the receiver in each corresponding @@ -873,8 +868,8 @@  File: gst-base.info, Node: Array-printing, Next: Array-testing, Prev: Array-mutating objects, Up: Array -1.4.2 Array: printing ---------------------- +Array: printing +--------------- printOn: aStream Print a representation for the receiver on aStream @@ -883,8 +878,8 @@  File: gst-base.info, Node: Array-testing, Prev: Array-printing, Up: Array -1.4.3 Array: testing --------------------- +Array: testing +-------------- isArray Answer `true'. @@ -893,8 +888,8 @@  File: gst-base.info, Node: ArrayedCollection, Next: Association, Prev: Array, Up: Base classes -1.5 ArrayedCollection -===================== +ArrayedCollection +================= Defined in namespace Smalltalk Superclass: SequenceableCollection @@ -916,8 +911,8 @@  File: gst-base.info, Node: ArrayedCollection class-instance creation, Next: ArrayedCollection-basic, Up: ArrayedCollection -1.5.1 ArrayedCollection class: instance creation ------------------------------------------------- +ArrayedCollection class: instance creation +------------------------------------------ new: size withAll: anObject Answer a collection with the given size, whose elements are all @@ -950,8 +945,8 @@  File: gst-base.info, Node: ArrayedCollection-basic, Next: ArrayedCollection-built ins, Prev: ArrayedCollection class-instance creation, Up: ArrayedCollection -1.5.2 ArrayedCollection: basic ------------------------------- +ArrayedCollection: basic +------------------------ , aSequenceableCollection Answer a new instance of an ArrayedCollection containing all the @@ -977,8 +972,8 @@  File: gst-base.info, Node: ArrayedCollection-built ins, Next: ArrayedCollection-copying Collections, Prev: ArrayedCollection-basic, Up: ArrayedCollection -1.5.3 ArrayedCollection: built ins ----------------------------------- +ArrayedCollection: built ins +---------------------------- size Answer the size of the receiver @@ -987,8 +982,8 @@  File: gst-base.info, Node: ArrayedCollection-copying Collections, Next: ArrayedCollection-enumerating the elements of a collection, Prev: ArrayedCollection-built ins, Up: ArrayedCollection -1.5.4 ArrayedCollection: copying Collections --------------------------------------------- +ArrayedCollection: copying Collections +-------------------------------------- copyReplaceAll: oldSubCollection with: newSubCollection Answer a new collection in which all the sequences matching @@ -1022,8 +1017,8 @@  File: gst-base.info, Node: ArrayedCollection-enumerating the elements of a collection, Next: ArrayedCollection-storing, Prev: ArrayedCollection-copying Collections, Up: ArrayedCollection -1.5.5 ArrayedCollection: enumerating the elements of a collection ------------------------------------------------------------------ +ArrayedCollection: enumerating the elements of a collection +----------------------------------------------------------- collect: aBlock Answer a new instance of an ArrayedCollection containing all the @@ -1049,8 +1044,8 @@  File: gst-base.info, Node: ArrayedCollection-storing, Prev: ArrayedCollection-enumerating the elements of a collection, Up: ArrayedCollection -1.5.6 ArrayedCollection: storing --------------------------------- +ArrayedCollection: storing +-------------------------- storeOn: aStream Store Smalltalk code compiling to the receiver on aStream @@ -1059,8 +1054,8 @@  File: gst-base.info, Node: Association, Next: Autoload, Prev: ArrayedCollection, Up: Base classes -1.6 Association -=============== +Association +=========== Defined in namespace Smalltalk Superclass: LookupKey @@ -1082,8 +1077,8 @@  File: gst-base.info, Node: Association class-basic, Next: Association-accessing, Up: Association -1.6.1 Association class: basic ------------------------------- +Association class: basic +------------------------ key: aKey value: aValue Answer a new association with the given key and value @@ -1092,8 +1087,8 @@  File: gst-base.info, Node: Association-accessing, Next: Association-finalization, Prev: Association class-basic, Up: Association -1.6.2 Association: accessing ----------------------------- +Association: accessing +---------------------- environment Answer nil. This is present to achieve polymorphism with @@ -1116,8 +1111,8 @@  File: gst-base.info, Node: Association-finalization, Next: Association-printing, Prev: Association-accessing, Up: Association -1.6.3 Association: finalization -------------------------------- +Association: finalization +------------------------- mourn Finalize the receiver @@ -1126,8 +1121,8 @@  File: gst-base.info, Node: Association-printing, Next: Association-storing, Prev: Association-finalization, Up: Association -1.6.4 Association: printing ---------------------------- +Association: printing +--------------------- printOn: aStream Put on aStream a representation of the receiver @@ -1136,8 +1131,8 @@  File: gst-base.info, Node: Association-storing, Next: Association-testing, Prev: Association-printing, Up: Association -1.6.5 Association: storing --------------------------- +Association: storing +-------------------- storeOn: aStream Put on aStream some Smalltalk code compiling to the receiver @@ -1146,8 +1141,8 @@  File: gst-base.info, Node: Association-testing, Prev: Association-storing, Up: Association -1.6.6 Association: testing --------------------------- +Association: testing +-------------------- = anAssociation Answer whether the association's key and value are the same as @@ -1160,8 +1155,8 @@  File: gst-base.info, Node: Autoload, Next: AutoloadClass, Prev: Association, Up: Base classes -1.7 Autoload -============ +Autoload +======== Defined in namespace Smalltalk Superclass: none @@ -1181,8 +1176,8 @@  File: gst-base.info, Node: Autoload class-instance creation, Next: Autoload-accessing, Up: Autoload -1.7.1 Autoload class: instance creation ---------------------------------------- +Autoload class: instance creation +--------------------------------- class: nameSymbol from: fileNameString Make Smalltalk automatically load the class named nameSymbol from @@ -1196,8 +1191,8 @@  File: gst-base.info, Node: Autoload-accessing, Prev: Autoload class-instance creation, Up: Autoload -1.7.2 Autoload: accessing -------------------------- +Autoload: accessing +------------------- doesNotUnderstand: aMessage Load the class and resend the message to it @@ -1206,8 +1201,8 @@  File: gst-base.info, Node: AutoloadClass, Next: Bag, Prev: Autoload, Up: Base classes -1.8 AutoloadClass -================= +AutoloadClass +============= Defined in namespace Smalltalk Superclass: none @@ -1224,8 +1219,8 @@  File: gst-base.info, Node: AutoloadClass-accessing, Up: AutoloadClass -1.8.1 AutoloadClass: accessing ------------------------------- +AutoloadClass: accessing +------------------------ doesNotUnderstand: aMessage Load the class and resend the message to its metaclass. @@ -1262,8 +1257,8 @@  File: gst-base.info, Node: Bag, Next: Behavior, Prev: AutoloadClass, Up: Base classes -1.9 Bag -======= +Bag +=== Defined in namespace Smalltalk Superclass: Collection @@ -1287,8 +1282,8 @@  File: gst-base.info, Node: Bag class-basic, Next: Bag-adding, Up: Bag -1.9.1 Bag class: basic ----------------------- +Bag class: basic +---------------- new Answer a new instance of the receiver @@ -1301,8 +1296,8 @@  File: gst-base.info, Node: Bag-adding, Next: Bag-enumerating the elements of a collection, Prev: Bag class-basic, Up: Bag -1.9.2 Bag: adding ------------------ +Bag: adding +----------- add: newObject Add an occurrence of newObject to the receiver. Answer newObject. @@ -1317,8 +1312,8 @@  File: gst-base.info, Node: Bag-enumerating the elements of a collection, Next: Bag-extracting items, Prev: Bag-adding, Up: Bag -1.9.3 Bag: enumerating the elements of a collection ---------------------------------------------------- +Bag: enumerating the elements of a collection +--------------------------------------------- asSet Answer a set with the elements of the receiver @@ -1330,8 +1325,8 @@  File: gst-base.info, Node: Bag-extracting items, Next: Bag-printing, Prev: Bag-enumerating the elements of a collection, Up: Bag -1.9.4 Bag: extracting items ---------------------------- +Bag: extracting items +--------------------- sortedByCount Answer a collection of counts with elements, sorted by decreasing @@ -1341,8 +1336,8 @@  File: gst-base.info, Node: Bag-printing, Next: Bag-removing, Prev: Bag-extracting items, Up: Bag -1.9.5 Bag: printing -------------------- +Bag: printing +------------- printOn: aStream Put on aStream a representation of the receiver @@ -1351,8 +1346,8 @@  File: gst-base.info, Node: Bag-removing, Next: Bag-storing, Prev: Bag-printing, Up: Bag -1.9.6 Bag: removing -------------------- +Bag: removing +------------- remove: oldObject ifAbsent: anExceptionBlock Remove oldObject from the collection and return it. If can't be @@ -1362,8 +1357,8 @@  File: gst-base.info, Node: Bag-storing, Next: Bag-testing collections, Prev: Bag-removing, Up: Bag -1.9.7 Bag: storing ------------------- +Bag: storing +------------ storeOn: aStream Put on aStream some Smalltalk code compiling to the receiver @@ -1372,8 +1367,8 @@  File: gst-base.info, Node: Bag-testing collections, Prev: Bag-storing, Up: Bag -1.9.8 Bag: testing collections ------------------------------- +Bag: testing collections +------------------------ = aBag Answer whether the receiver and aBag contain the same objects @@ -1394,8 +1389,8 @@  File: gst-base.info, Node: Behavior, Next: BindingDictionary, Prev: Bag, Up: Base classes -1.10 Behavior -============= +Behavior +======== Defined in namespace Smalltalk Superclass: Object @@ -1433,8 +1428,8 @@  File: gst-base.info, Node: Behavior-accessing class hierarchy, Next: Behavior-accessing instances and variables, Up: Behavior -1.10.1 Behavior: accessing class hierarchy ------------------------------------------- +Behavior: accessing class hierarchy +----------------------------------- allSubclasses Answer the direct and indirect subclasses of the receiver in a Set @@ -1459,8 +1454,8 @@  File: gst-base.info, Node: Behavior-accessing instances and variables, Next: Behavior-accessing the methodDictionary, Prev: Behavior-accessing class hierarchy, Up: Behavior -1.10.2 Behavior: accessing instances and variables --------------------------------------------------- +Behavior: accessing instances and variables +------------------------------------------- allClassVarNames Return all the class variables understood by the receiver @@ -1502,8 +1497,8 @@  File: gst-base.info, Node: Behavior-accessing the methodDictionary, Next: Behavior-built ins, Prev: Behavior-accessing instances and variables, Up: Behavior -1.10.3 Behavior: accessing the methodDictionary ------------------------------------------------ +Behavior: accessing the methodDictionary +---------------------------------------- >> selector Return the compiled method associated with selector, from the local @@ -1536,8 +1531,8 @@  File: gst-base.info, Node: Behavior-built ins, Next: Behavior-compilation (alternative), Prev: Behavior-accessing the methodDictionary, Up: Behavior -1.10.4 Behavior: built ins --------------------------- +Behavior: built ins +------------------- basicNew Create a new instance of a class with no indexed instance @@ -1593,8 +1588,8 @@  File: gst-base.info, Node: Behavior-compilation (alternative), Next: Behavior-compiling methods, Prev: Behavior-built ins, Up: Behavior -1.10.5 Behavior: compilation (alternative) ------------------------------------------- +Behavior: compilation (alternative) +----------------------------------- methods Don't use this, it's only present to file in from Smalltalk/V @@ -1619,8 +1614,8 @@  File: gst-base.info, Node: Behavior-compiling methods, Next: Behavior-creating a class hierarchy, Prev: Behavior-compilation (alternative), Up: Behavior -1.10.6 Behavior: compiling methods ----------------------------------- +Behavior: compiling methods +--------------------------- methodsFor: aCategoryString Calling this method prepares the parser to receive methods @@ -1632,8 +1627,8 @@  File: gst-base.info, Node: Behavior-creating a class hierarchy, Next: Behavior-enumerating, Prev: Behavior-compiling methods, Up: Behavior -1.10.7 Behavior: creating a class hierarchy -------------------------------------------- +Behavior: creating a class hierarchy +------------------------------------ addSubclass: aClass Add aClass asone of the receiver's subclasses. @@ -1648,8 +1643,8 @@  File: gst-base.info, Node: Behavior-enumerating, Next: Behavior-evaluating, Prev: Behavior-creating a class hierarchy, Up: Behavior -1.10.8 Behavior: enumerating ----------------------------- +Behavior: enumerating +--------------------- allInstancesDo: aBlock Invokes aBlock for all instances of the receiver @@ -1685,8 +1680,8 @@  File: gst-base.info, Node: Behavior-evaluating, Next: Behavior-instance creation, Prev: Behavior-enumerating, Up: Behavior -1.10.9 Behavior: evaluating ---------------------------- +Behavior: evaluating +-------------------- evalString: aString to: anObject Answer the stack top at the end of the evaluation of the code in @@ -1721,8 +1716,8 @@  File: gst-base.info, Node: Behavior-instance creation, Next: Behavior-instance variables, Prev: Behavior-evaluating, Up: Behavior -1.10.10 Behavior: instance creation ------------------------------------ +Behavior: instance creation +--------------------------- newInFixedSpace Create a new instance of a class without indexed instance @@ -1741,8 +1736,8 @@  File: gst-base.info, Node: Behavior-instance variables, Next: Behavior-method dictionary, Prev: Behavior-instance creation, Up: Behavior -1.10.11 Behavior: instance variables ------------------------------------- +Behavior: instance variables +---------------------------- addInstVarName: aString Add the given instance variable to instance of the receiver @@ -1755,8 +1750,8 @@  File: gst-base.info, Node: Behavior-method dictionary, Next: Behavior-pluggable behavior (not yet implemented), Prev: Behavior-instance variables, Up: Behavior -1.10.12 Behavior: method dictionary ------------------------------------ +Behavior: method dictionary +--------------------------- addSelector: selector withMethod: compiledMethod Add the given compiledMethod to the method dictionary, giving it @@ -1854,8 +1849,8 @@  File: gst-base.info, Node: Behavior-pluggable behavior (not yet implemented), Next: Behavior-printing hierarchy, Prev: Behavior-method dictionary, Up: Behavior -1.10.13 Behavior: pluggable behavior (not yet implemented) ----------------------------------------------------------- +Behavior: pluggable behavior (not yet implemented) +-------------------------------------------------- compilerClass Answer the class that can be used to compile parse trees, or nil @@ -1885,8 +1880,8 @@  File: gst-base.info, Node: Behavior-printing hierarchy, Next: Behavior-support for lightweight classes, Prev: Behavior-pluggable behavior (not yet implemented), Up: Behavior -1.10.14 Behavior: printing hierarchy ------------------------------------- +Behavior: printing hierarchy +---------------------------- hierarchyIndent Answer the indent to be used by #printHierarchy - 4 by default @@ -1903,8 +1898,8 @@  File: gst-base.info, Node: Behavior-support for lightweight classes, Next: Behavior-testing functionality, Prev: Behavior-printing hierarchy, Up: Behavior -1.10.15 Behavior: support for lightweight classes -------------------------------------------------- +Behavior: support for lightweight classes +----------------------------------------- article Answer an article (`a' or `an') which is ok for the receiver's name @@ -1933,8 +1928,8 @@  File: gst-base.info, Node: Behavior-testing functionality, Next: Behavior-testing the class hierarchy, Prev: Behavior-support for lightweight classes, Up: Behavior -1.10.16 Behavior: testing functionality ---------------------------------------- +Behavior: testing functionality +------------------------------- isBehavior Answer `true'. @@ -1943,8 +1938,8 @@  File: gst-base.info, Node: Behavior-testing the class hierarchy, Next: Behavior-testing the form of the instances, Prev: Behavior-testing functionality, Up: Behavior -1.10.17 Behavior: testing the class hierarchy ---------------------------------------------- +Behavior: testing the class hierarchy +------------------------------------- includesBehavior: aClass Returns true if aClass is the receiver or a superclass of the @@ -1960,8 +1955,8 @@  File: gst-base.info, Node: Behavior-testing the form of the instances, Next: Behavior-testing the method dictionary, Prev: Behavior-testing the class hierarchy, Up: Behavior -1.10.18 Behavior: testing the form of the instances ---------------------------------------------------- +Behavior: testing the form of the instances +------------------------------------------- instSize Answer how many fixed instance variables are reserved to each of @@ -2001,8 +1996,8 @@  File: gst-base.info, Node: Behavior-testing the method dictionary, Prev: Behavior-testing the form of the instances, Up: Behavior -1.10.19 Behavior: testing the method dictionary ------------------------------------------------ +Behavior: testing the method dictionary +--------------------------------------- canUnderstand: selector Returns true if the instances of the receiver understand the given @@ -2044,8 +2039,8 @@  File: gst-base.info, Node: BindingDictionary, Next: BlockClosure, Prev: Behavior, Up: Base classes -1.11 BindingDictionary -====================== +BindingDictionary +================= Defined in namespace Smalltalk Superclass: Dictionary @@ -2069,8 +2064,8 @@  File: gst-base.info, Node: BindingDictionary-accessing, Next: BindingDictionary-copying, Up: BindingDictionary -1.11.1 BindingDictionary: accessing ------------------------------------ +BindingDictionary: accessing +---------------------------- define: aSymbol Define aSymbol as equal to nil inside the receiver. Fail if such @@ -2115,8 +2110,8 @@  File: gst-base.info, Node: BindingDictionary-copying, Next: BindingDictionary-forward declarations, Prev: BindingDictionary-accessing, Up: BindingDictionary -1.11.2 BindingDictionary: copying ---------------------------------- +BindingDictionary: copying +-------------------------- copy Answer the receiver. @@ -2138,8 +2133,8 @@  File: gst-base.info, Node: BindingDictionary-forward declarations, Next: BindingDictionary-printing, Prev: BindingDictionary-copying, Up: BindingDictionary -1.11.3 BindingDictionary: forward declarations ----------------------------------------------- +BindingDictionary: forward declarations +--------------------------------------- add: aVariableBinding Store value as associated to the given key. If any, recycle @@ -2155,8 +2150,8 @@  File: gst-base.info, Node: BindingDictionary-printing, Next: BindingDictionary-testing, Prev: BindingDictionary-forward declarations, Up: BindingDictionary -1.11.4 BindingDictionary: printing ----------------------------------- +BindingDictionary: printing +--------------------------- printOn: aStream in: aNamespace Print the receiver's name when referred to from aNamespace; by @@ -2166,8 +2161,8 @@  File: gst-base.info, Node: BindingDictionary-testing, Prev: BindingDictionary-printing, Up: BindingDictionary -1.11.5 BindingDictionary: testing ---------------------------------- +BindingDictionary: testing +-------------------------- species Answer `IdentityDictionary'. @@ -2176,8 +2171,8 @@  File: gst-base.info, Node: BlockClosure, Next: BlockContext, Prev: BindingDictionary, Up: Base classes -1.12 BlockClosure -================= +BlockClosure +============ Defined in namespace Smalltalk Superclass: Object @@ -2207,8 +2202,8 @@  File: gst-base.info, Node: BlockClosure class-instance creation, Next: BlockClosure class-testing, Up: BlockClosure -1.12.1 BlockClosure class: instance creation --------------------------------------------- +BlockClosure class: instance creation +------------------------------------- block: aCompiledBlock Answer a BlockClosure that activates the passed CompiledBlock. @@ -2222,8 +2217,8 @@  File: gst-base.info, Node: BlockClosure class-testing, Next: BlockClosure-accessing, Prev: BlockClosure class-instance creation, Up: BlockClosure -1.12.2 BlockClosure class: testing ----------------------------------- +BlockClosure class: testing +--------------------------- isImmediate Answer whether, if x is an instance of the receiver, x copy == x @@ -2232,8 +2227,8 @@  File: gst-base.info, Node: BlockClosure-accessing, Next: BlockClosure-built ins, Prev: BlockClosure class-testing, Up: BlockClosure -1.12.3 BlockClosure: accessing ------------------------------- +BlockClosure: accessing +----------------------- argumentCount Answer the number of arguments passed to the receiver @@ -2288,8 +2283,8 @@  File: gst-base.info, Node: BlockClosure-built ins, Next: BlockClosure-control structures, Prev: BlockClosure-accessing, Up: BlockClosure -1.12.4 BlockClosure: built ins ------------------------------- +BlockClosure: built ins +----------------------- blockCopy: outerContext Generate a BlockClosure identical to the receiver, with the given @@ -2314,8 +2309,8 @@  File: gst-base.info, Node: BlockClosure-control structures, Next: BlockClosure-exception handling, Prev: BlockClosure-built ins, Up: BlockClosure -1.12.5 BlockClosure: control structures ---------------------------------------- +BlockClosure: control structures +-------------------------------- repeat Evaluate the receiver 'forever' (actually until a return is @@ -2339,8 +2334,8 @@  File: gst-base.info, Node: BlockClosure-exception handling, Next: BlockClosure-multiple process, Prev: BlockClosure-control structures, Up: BlockClosure -1.12.6 BlockClosure: exception handling ---------------------------------------- +BlockClosure: exception handling +-------------------------------- ifError: aBlock Evaluate the receiver; when #error: is called, pass to aBlock the @@ -2383,8 +2378,8 @@  File: gst-base.info, Node: BlockClosure-multiple process, Next: BlockClosure-overriding, Prev: BlockClosure-exception handling, Up: BlockClosure -1.12.7 BlockClosure: multiple process -------------------------------------- +BlockClosure: multiple process +------------------------------ fork Create a new process executing the receiver and start it @@ -2423,8 +2418,8 @@  File: gst-base.info, Node: BlockClosure-overriding, Next: BlockClosure-testing, Prev: BlockClosure-multiple process, Up: BlockClosure -1.12.8 BlockClosure: overriding -------------------------------- +BlockClosure: overriding +------------------------ deepCopy Answer the receiver. @@ -2436,8 +2431,8 @@  File: gst-base.info, Node: BlockClosure-testing, Next: BlockClosure-unwind protection, Prev: BlockClosure-overriding, Up: BlockClosure -1.12.9 BlockClosure: testing ----------------------------- +BlockClosure: testing +--------------------- hasMethodReturn Answer whether the block contains a method return @@ -2446,8 +2441,8 @@  File: gst-base.info, Node: BlockClosure-unwind protection, Prev: BlockClosure-testing, Up: BlockClosure -1.12.10 BlockClosure: unwind protection ---------------------------------------- +BlockClosure: unwind protection +------------------------------- ensure: aBlock Evaluate the receiver; when any exception is signaled exit @@ -2479,8 +2474,8 @@  File: gst-base.info, Node: BlockContext, Next: Boolean, Prev: BlockClosure, Up: Base classes -1.13 BlockContext -================= +BlockContext +============ Defined in namespace Smalltalk Superclass: ContextPart @@ -2501,8 +2496,8 @@  File: gst-base.info, Node: BlockContext-accessing, Next: BlockContext-printing, Up: BlockContext -1.13.1 BlockContext: accessing ------------------------------- +BlockContext: accessing +----------------------- caller Answer the context that called the receiver @@ -2546,8 +2541,8 @@  File: gst-base.info, Node: BlockContext-printing, Prev: BlockContext-accessing, Up: BlockContext -1.13.2 BlockContext: printing ------------------------------ +BlockContext: printing +---------------------- printOn: aStream Print a representation for the receiver on aStream @@ -2556,8 +2551,8 @@  File: gst-base.info, Node: Boolean, Next: ByteArray, Prev: BlockContext, Up: Base classes -1.14 Boolean -============ +Boolean +======= Defined in namespace Smalltalk Superclass: Object @@ -2580,8 +2575,8 @@  File: gst-base.info, Node: Boolean class-testing, Next: Boolean-basic, Up: Boolean -1.14.1 Boolean class: testing ------------------------------ +Boolean class: testing +---------------------- isIdentity Answer whether x = y implies x == y for instances of the receiver @@ -2593,8 +2588,8 @@  File: gst-base.info, Node: Boolean-basic, Next: Boolean-C hacks, Prev: Boolean class-testing, Up: Boolean -1.14.2 Boolean: basic ---------------------- +Boolean: basic +-------------- & aBoolean This method's functionality should be implemented by subclasses of @@ -2644,8 +2639,8 @@  File: gst-base.info, Node: Boolean-C hacks, Next: Boolean-overriding, Prev: Boolean-basic, Up: Boolean -1.14.3 Boolean: C hacks ------------------------ +Boolean: C hacks +---------------- asCBooleanValue This method's functionality should be implemented by subclasses of @@ -2655,8 +2650,8 @@  File: gst-base.info, Node: Boolean-overriding, Next: Boolean-storing, Prev: Boolean-C hacks, Up: Boolean -1.14.4 Boolean: overriding --------------------------- +Boolean: overriding +------------------- deepCopy Answer the receiver. @@ -2668,8 +2663,8 @@  File: gst-base.info, Node: Boolean-storing, Prev: Boolean-overriding, Up: Boolean -1.14.5 Boolean: storing ------------------------ +Boolean: storing +---------------- storeOn: aStream Store on aStream some Smalltalk code which compiles to the receiver @@ -2678,8 +2673,8 @@  File: gst-base.info, Node: ByteArray, Next: ByteStream, Prev: Boolean, Up: Base classes -1.15 ByteArray -============== +ByteArray +========= Defined in namespace Smalltalk Superclass: ArrayedCollection @@ -2697,8 +2692,8 @@  File: gst-base.info, Node: ByteArray-built ins, Next: ByteArray-converting, Up: ByteArray -1.15.1 ByteArray: built ins ---------------------------- +ByteArray: built ins +-------------------- asCData: aCType Convert the receiver to a CObject with the given type @@ -2732,8 +2727,8 @@  File: gst-base.info, Node: ByteArray-converting, Next: ByteArray-more advanced accessing, Prev: ByteArray-built ins, Up: ByteArray -1.15.2 ByteArray: converting ----------------------------- +ByteArray: converting +--------------------- asString Answer a String whose character's ASCII codes are the receiver's @@ -2743,8 +2738,8 @@  File: gst-base.info, Node: ByteArray-more advanced accessing, Prev: ByteArray-converting, Up: ByteArray -1.15.3 ByteArray: more advanced accessing ------------------------------------------ +ByteArray: more advanced accessing +---------------------------------- charAt: index Access the C char at the given index in the receiver. The value is @@ -2904,8 +2899,8 @@  File: gst-base.info, Node: ByteStream, Next: CAggregate, Prev: ByteArray, Up: Base classes -1.16 ByteStream -=============== +ByteStream +========== Defined in namespace Smalltalk Superclass: ReadWriteStream @@ -2920,8 +2915,8 @@  File: gst-base.info, Node: ByteStream-basic, Up: ByteStream -1.16.1 ByteStream: basic ------------------------- +ByteStream: basic +----------------- next Return the next *character* in the ByteArray @@ -2974,8 +2969,8 @@  File: gst-base.info, Node: CAggregate, Next: CallinProcess, Prev: ByteStream, Up: Base classes -1.17 CAggregate -=============== +CAggregate +========== Defined in namespace Smalltalk Superclass: CObject @@ -2989,8 +2984,8 @@  File: gst-base.info, Node: CAggregate class-accessing, Next: CAggregate-accessing, Up: CAggregate -1.17.1 CAggregate class: accessing ----------------------------------- +CAggregate class: accessing +--------------------------- alignof Answer the receiver's instances required aligment @@ -3002,8 +2997,8 @@  File: gst-base.info, Node: CAggregate-accessing, Prev: CAggregate class-accessing, Up: CAggregate -1.17.2 CAggregate: accessing ----------------------------- +CAggregate: accessing +--------------------- elementType Answer the type over which the receiver is constructed. @@ -3012,8 +3007,8 @@  File: gst-base.info, Node: CallinProcess, Next: CArray, Prev: CAggregate, Up: Base classes -1.18 CallinProcess -================== +CallinProcess +============= Defined in namespace Smalltalk Superclass: Process @@ -3029,8 +3024,8 @@  File: gst-base.info, Node: CArray, Next: CArrayCType, Prev: CallinProcess, Up: Base classes -1.19 CArray -=========== +CArray +====== Defined in namespace Smalltalk Superclass: CAggregate @@ -3043,8 +3038,8 @@  File: gst-base.info, Node: CArray-accessing, Up: CArray -1.19.1 CArray: accessing ------------------------- +CArray: accessing +----------------- alignof Answer the receiver's required aligment @@ -3056,8 +3051,8 @@  File: gst-base.info, Node: CArrayCType, Next: CBoolean, Prev: CArray, Up: Base classes -1.20 CArrayCType -================ +CArrayCType +=========== Defined in namespace Smalltalk Superclass: CPtrCType @@ -3071,8 +3066,8 @@  File: gst-base.info, Node: CArrayCType class-instance creation, Next: CArrayCType-accessing, Up: CArrayCType -1.20.1 CArrayCType class: instance creation -------------------------------------------- +CArrayCType class: instance creation +------------------------------------ elementType: aCType This method should not be called for instances of this class. @@ -3088,8 +3083,8 @@  File: gst-base.info, Node: CArrayCType-accessing, Prev: CArrayCType class-instance creation, Up: CArrayCType -1.20.2 CArrayCType: accessing ------------------------------ +CArrayCType: accessing +---------------------- alignof Answer the alignment of the receiver's instances @@ -3104,8 +3099,8 @@  File: gst-base.info, Node: CBoolean, Next: CByte, Prev: CArrayCType, Up: Base classes -1.21 CBoolean -============= +CBoolean +======== Defined in namespace Smalltalk Superclass: CByte @@ -3119,8 +3114,8 @@  File: gst-base.info, Node: CBoolean-accessing, Up: CBoolean -1.21.1 CBoolean: accessing --------------------------- +CBoolean: accessing +------------------- value Get the receiver's value - answer true if it is != 0, false if it @@ -3134,8 +3129,8 @@  File: gst-base.info, Node: CByte, Next: CChar, Prev: CBoolean, Up: Base classes -1.22 CByte -========== +CByte +===== Defined in namespace Smalltalk Superclass: CUChar @@ -3153,8 +3148,8 @@  File: gst-base.info, Node: CByte class-conversion, Next: CByte-accessing, Up: CByte -1.22.1 CByte class: conversion ------------------------------- +CByte class: conversion +----------------------- scalarIndex Nothing special in the default case - answer a CType for the @@ -3168,8 +3163,8 @@  File: gst-base.info, Node: CByte-accessing, Prev: CByte class-conversion, Up: CByte -1.22.2 CByte: accessing ------------------------ +CByte: accessing +---------------- scalarIndex Nothing special in the default case - answer the receiver's CType @@ -3188,8 +3183,8 @@  File: gst-base.info, Node: CChar, Next: CCompound, Prev: CByte, Up: Base classes -1.23 CChar -========== +CChar +===== Defined in namespace Smalltalk Superclass: CScalar @@ -3203,8 +3198,8 @@  File: gst-base.info, Node: CChar class-accessing, Next: CChar-accessing, Up: CChar -1.23.1 CChar class: accessing ------------------------------ +CChar class: accessing +---------------------- alignof Answer the receiver's instances required aligment @@ -3220,8 +3215,8 @@  File: gst-base.info, Node: CChar-accessing, Prev: CChar class-accessing, Up: CChar -1.23.2 CChar: accessing ------------------------ +CChar: accessing +---------------- alignof Answer the receiver's required aligment @@ -3236,8 +3231,8 @@  File: gst-base.info, Node: CCompound, Next: CDouble, Prev: CChar, Up: Base classes -1.24 CCompound -============== +CCompound +========= Defined in namespace Smalltalk Superclass: CObject @@ -3252,8 +3247,8 @@  File: gst-base.info, Node: CCompound class-instance creation, Next: CCompound class-subclass creation, Up: CCompound -1.24.1 CCompound class: instance creation ------------------------------------------ +CCompound class: instance creation +---------------------------------- new Allocate a new instance of the receiver. To free the memory after @@ -3266,8 +3261,8 @@  File: gst-base.info, Node: CCompound class-subclass creation, Next: CCompound-instance creation, Prev: CCompound class-instance creation, Up: CCompound -1.24.2 CCompound class: subclass creation ------------------------------------------ +CCompound class: subclass creation +---------------------------------- alignof Answer 1, the alignment of an empty struct @@ -3325,8 +3320,8 @@  File: gst-base.info, Node: CCompound-instance creation, Prev: CCompound class-subclass creation, Up: CCompound -1.24.3 CCompound: instance creation ------------------------------------ +CCompound: instance creation +---------------------------- inspect Inspect the contents of the receiver @@ -3339,8 +3334,8 @@  File: gst-base.info, Node: CDouble, Next: CFloat, Prev: CCompound, Up: Base classes -1.25 CDouble -============ +CDouble +======= Defined in namespace Smalltalk Superclass: CScalar @@ -3354,8 +3349,8 @@  File: gst-base.info, Node: CDouble class-accessing, Next: CDouble-accessing, Up: CDouble -1.25.1 CDouble class: accessing -------------------------------- +CDouble class: accessing +------------------------ alignof Answer the receiver's instances required aligment @@ -3371,8 +3366,8 @@  File: gst-base.info, Node: CDouble-accessing, Prev: CDouble class-accessing, Up: CDouble -1.25.2 CDouble: accessing -------------------------- +CDouble: accessing +------------------ alignof Answer the receiver's required aligment @@ -3387,8 +3382,8 @@  File: gst-base.info, Node: CFloat, Next: CFunctionDescriptor, Prev: CDouble, Up: Base classes -1.26 CFloat -=========== +CFloat +====== Defined in namespace Smalltalk Superclass: CScalar @@ -3402,8 +3397,8 @@  File: gst-base.info, Node: CFloat class-accessing, Next: CFloat-accessing, Up: CFloat -1.26.1 CFloat class: accessing ------------------------------- +CFloat class: accessing +----------------------- alignof Answer the receiver's instances required aligment @@ -3419,8 +3414,8 @@  File: gst-base.info, Node: CFloat-accessing, Prev: CFloat class-accessing, Up: CFloat -1.26.2 CFloat: accessing ------------------------- +CFloat: accessing +----------------- alignof Answer the receiver's required aligment @@ -3435,8 +3430,8 @@  File: gst-base.info, Node: CFunctionDescriptor, Next: Character, Prev: CFloat, Up: Base classes -1.27 CFunctionDescriptor -======================== +CFunctionDescriptor +=================== Defined in namespace Smalltalk Superclass: Object @@ -3458,8 +3453,8 @@  File: gst-base.info, Node: CFunctionDescriptor class-instance creation, Next: CFunctionDescriptor class-testing, Up: CFunctionDescriptor -1.27.1 CFunctionDescriptor class: instance creation ---------------------------------------------------- +CFunctionDescriptor class: instance creation +-------------------------------------------- for: funcNameString returning: returnTypeSymbol withArgs: argsArray Private - Answer a CFunctionDescriptor @@ -3468,8 +3463,8 @@  File: gst-base.info, Node: CFunctionDescriptor class-testing, Next: CFunctionDescriptor-accessing, Prev: CFunctionDescriptor class-instance creation, Up: CFunctionDescriptor -1.27.2 CFunctionDescriptor class: testing ------------------------------------------ +CFunctionDescriptor class: testing +---------------------------------- addressOf: function Answer whether a function is registered (on the C side) with the @@ -3483,8 +3478,8 @@  File: gst-base.info, Node: CFunctionDescriptor-accessing, Next: CFunctionDescriptor-calling, Prev: CFunctionDescriptor class-testing, Up: CFunctionDescriptor -1.27.3 CFunctionDescriptor: accessing -------------------------------------- +CFunctionDescriptor: accessing +------------------------------ address Answer the address (CObject) of the function represented by the @@ -3506,8 +3501,8 @@  File: gst-base.info, Node: CFunctionDescriptor-calling, Next: CFunctionDescriptor-printing, Prev: CFunctionDescriptor-accessing, Up: CFunctionDescriptor -1.27.4 CFunctionDescriptor: calling ------------------------------------ +CFunctionDescriptor: calling +---------------------------- asyncCallFrom: aContext Perform the call-out for the function represented by the receiver. @@ -3545,8 +3540,8 @@  File: gst-base.info, Node: CFunctionDescriptor-printing, Prev: CFunctionDescriptor-calling, Up: CFunctionDescriptor -1.27.5 CFunctionDescriptor: printing ------------------------------------- +CFunctionDescriptor: printing +----------------------------- printOn: aStream Print a representation of the receiver onto aStream @@ -3555,8 +3550,8 @@  File: gst-base.info, Node: Character, Next: CharacterArray, Prev: CFunctionDescriptor, Up: Base classes -1.28 Character -============== +Character +========= Defined in namespace Smalltalk Superclass: Magnitude @@ -3585,8 +3580,8 @@  File: gst-base.info, Node: Character class-built ins, Next: Character class-constants, Up: Character -1.28.1 Character class: built ins ---------------------------------- +Character class: built ins +-------------------------- asciiValue: anInteger Returns the character object corresponding to anInteger. Error if @@ -3607,8 +3602,8 @@  File: gst-base.info, Node: Character class-constants, Next: Character class-initializing lookup tables, Prev: Character class-built ins, Up: Character -1.28.2 Character class: constants ---------------------------------- +Character class: constants +-------------------------- backspace Returns the character 'backspace' @@ -3650,8 +3645,8 @@  File: gst-base.info, Node: Character class-initializing lookup tables, Next: Character class-instance creation, Prev: Character class-constants, Up: Character -1.28.3 Character class: initializing lookup tables --------------------------------------------------- +Character class: initializing lookup tables +------------------------------------------- initialize Initialize the lookup table which is used to make case and @@ -3665,8 +3660,8 @@  File: gst-base.info, Node: Character class-instance creation, Next: Character class-testing, Prev: Character class-initializing lookup tables, Up: Character -1.28.4 Character class: instance creation ------------------------------------------ +Character class: instance creation +---------------------------------- digitValue: anInteger Returns a character that corresponds to anInteger. 0-9 map to @@ -3676,8 +3671,8 @@  File: gst-base.info, Node: Character class-testing, Next: Character-built ins, Prev: Character class-instance creation, Up: Character -1.28.5 Character class: testing -------------------------------- +Character class: testing +------------------------ isIdentity Answer whether x = y implies x == y for instances of the receiver @@ -3689,8 +3684,8 @@  File: gst-base.info, Node: Character-built ins, Next: Character-coercion methods, Prev: Character class-testing, Up: Character -1.28.6 Character: built ins ---------------------------- +Character: built ins +-------------------- = char Boolean return value; true if the characters are equal @@ -3715,8 +3710,8 @@  File: gst-base.info, Node: Character-coercion methods, Next: Character-comparing, Prev: Character-built ins, Up: Character -1.28.7 Character: coercion methods ----------------------------------- +Character: coercion methods +--------------------------- asLowercase Returns self as a lowercase character if it's an uppercase letter, @@ -3736,8 +3731,8 @@  File: gst-base.info, Node: Character-comparing, Next: Character-converting, Prev: Character-coercion methods, Up: Character -1.28.8 Character: comparing ---------------------------- +Character: comparing +-------------------- < aCharacter Compare the character's ASCII value. Answer whether the receiver's @@ -3759,8 +3754,8 @@  File: gst-base.info, Node: Character-converting, Next: Character-printing, Prev: Character-comparing, Up: Character -1.28.9 Character: converting ----------------------------- +Character: converting +--------------------- digitValue Returns the value of self interpreted as a digit. Here, 'digit' @@ -3770,8 +3765,8 @@  File: gst-base.info, Node: Character-printing, Next: Character-storing, Prev: Character-converting, Up: Character -1.28.10 Character: printing ---------------------------- +Character: printing +------------------- displayOn: aStream Print a representation of the receiver on aStream. Unlike @@ -3784,8 +3779,8 @@  File: gst-base.info, Node: Character-storing, Next: Character-testing, Prev: Character-printing, Up: Character -1.28.11 Character: storing --------------------------- +Character: storing +------------------ storeOn: aStream Store Smalltalk code compiling to the receiver on aStream @@ -3794,8 +3789,8 @@  File: gst-base.info, Node: Character-testing, Next: Character-testing functionality, Prev: Character-storing, Up: Character -1.28.12 Character: testing --------------------------- +Character: testing +------------------ isAlphaNumeric True if self is a letter or a digit @@ -3825,8 +3820,8 @@  File: gst-base.info, Node: Character-testing functionality, Prev: Character-testing, Up: Character -1.28.13 Character: testing functionality ----------------------------------------- +Character: testing functionality +-------------------------------- isCharacter Answer True. We're definitely characters @@ -3835,8 +3830,8 @@  File: gst-base.info, Node: CharacterArray, Next: CInt, Prev: Character, Up: Base classes -1.29 CharacterArray -=================== +CharacterArray +============== Defined in namespace Smalltalk Superclass: ArrayedCollection @@ -3859,8 +3854,8 @@  File: gst-base.info, Node: CharacterArray class-basic, Next: CharacterArray-basic, Up: CharacterArray -1.29.1 CharacterArray class: basic ----------------------------------- +CharacterArray class: basic +--------------------------- fromString: aCharacterArray Make up an instance of the receiver containing the same characters @@ -3873,8 +3868,8 @@  File: gst-base.info, Node: CharacterArray-basic, Next: CharacterArray-built ins, Prev: CharacterArray class-basic, Up: CharacterArray -1.29.2 CharacterArray: basic ----------------------------- +CharacterArray: basic +--------------------- basicAt: index Answer the index-th character of the receiver. This is an exception @@ -3891,8 +3886,8 @@  File: gst-base.info, Node: CharacterArray-built ins, Next: CharacterArray-comparing, Prev: CharacterArray-basic, Up: CharacterArray -1.29.3 CharacterArray: built ins --------------------------------- +CharacterArray: built ins +------------------------- valueAt: index Answer the ascii value of index-th character variable of the @@ -3906,8 +3901,8 @@  File: gst-base.info, Node: CharacterArray-comparing, Next: CharacterArray-converting, Prev: CharacterArray-built ins, Up: CharacterArray -1.29.4 CharacterArray: comparing --------------------------------- +CharacterArray: comparing +------------------------- < aCharacterArray Return true if the receiver is less than aCharacterArray, ignoring @@ -3961,8 +3956,8 @@  File: gst-base.info, Node: CharacterArray-converting, Next: CharacterArray-printing, Prev: CharacterArray-comparing, Up: CharacterArray -1.29.5 CharacterArray: converting ---------------------------------- +CharacterArray: converting +-------------------------- asByteArray Return the receiver, converted to a ByteArray of ASCII values @@ -4013,8 +4008,8 @@  File: gst-base.info, Node: CharacterArray-printing, Next: CharacterArray-storing, Prev: CharacterArray-converting, Up: CharacterArray -1.29.6 CharacterArray: printing -------------------------------- +CharacterArray: printing +------------------------ displayOn: aStream Print a representation of the receiver on aStream. Unlike @@ -4032,8 +4027,8 @@  File: gst-base.info, Node: CharacterArray-storing, Next: CharacterArray-string processing, Prev: CharacterArray-printing, Up: CharacterArray -1.29.7 CharacterArray: storing ------------------------------- +CharacterArray: storing +----------------------- storeOn: aStream Print Smalltalk code compiling to the receiver on aStream @@ -4042,8 +4037,8 @@  File: gst-base.info, Node: CharacterArray-string processing, Next: CharacterArray-testing functionality, Prev: CharacterArray-storing, Up: CharacterArray -1.29.8 CharacterArray: string processing ----------------------------------------- +CharacterArray: string processing +--------------------------------- bindWith: s1 Answer the receiver with every %1 replaced by the displayString of @@ -4103,8 +4098,8 @@  File: gst-base.info, Node: CharacterArray-testing functionality, Prev: CharacterArray-string processing, Up: CharacterArray -1.29.9 CharacterArray: testing functionality --------------------------------------------- +CharacterArray: testing functionality +------------------------------------- isCharacterArray Answer `true'. @@ -4113,8 +4108,8 @@  File: gst-base.info, Node: CInt, Next: Class, Prev: CharacterArray, Up: Base classes -1.30 CInt -========= +CInt +==== Defined in namespace Smalltalk Superclass: CScalar @@ -4128,8 +4123,8 @@  File: gst-base.info, Node: CInt class-accessing, Next: CInt-accessing, Up: CInt -1.30.1 CInt class: accessing ----------------------------- +CInt class: accessing +--------------------- alignof Answer the receiver's required aligment @@ -4145,8 +4140,8 @@  File: gst-base.info, Node: CInt-accessing, Prev: CInt class-accessing, Up: CInt -1.30.2 CInt: accessing ----------------------- +CInt: accessing +--------------- alignof Answer the receiver's instances required aligment @@ -4161,8 +4156,8 @@  File: gst-base.info, Node: Class, Next: ClassDescription, Prev: CInt, Up: Base classes -1.31 Class -========== +Class +===== Defined in namespace Smalltalk Superclass: ClassDescription @@ -4187,8 +4182,8 @@  File: gst-base.info, Node: Class-accessing instances and variables, Next: Class-filing, Up: Class -1.31.1 Class: accessing instances and variables ------------------------------------------------ +Class: accessing instances and variables +---------------------------------------- addClassVarName: aString Add a class variable with the given name to the class pool @@ -4252,8 +4247,8 @@  File: gst-base.info, Node: Class-filing, Next: Class-instance creation, Prev: Class-accessing instances and variables, Up: Class -1.31.2 Class: filing --------------------- +Class: filing +------------- fileOutDeclarationOn: aFileStream File out class definition to aFileStream @@ -4269,8 +4264,8 @@  File: gst-base.info, Node: Class-instance creation, Next: Class-instance creation - alternative, Prev: Class-filing, Up: Class -1.31.3 Class: instance creation -------------------------------- +Class: instance creation +------------------------ extend Redefine a version of the receiver in the current namespace. Note: @@ -4314,8 +4309,8 @@  File: gst-base.info, Node: Class-instance creation - alternative, Next: Class-printing, Prev: Class-instance creation, Up: Class -1.31.4 Class: instance creation - alternative ---------------------------------------------- +Class: instance creation - alternative +-------------------------------------- categoriesFor: method are: categories Don't use this, it is only present to file in from IBM Smalltalk @@ -4348,8 +4343,8 @@  File: gst-base.info, Node: Class-printing, Next: Class-saving and loading, Prev: Class-instance creation - alternative, Up: Class -1.31.5 Class: printing ----------------------- +Class: printing +--------------- article Answer an article (`a' or `an') which is ok for the receiver's name @@ -4364,8 +4359,8 @@  File: gst-base.info, Node: Class-saving and loading, Next: Class-testing, Prev: Class-printing, Up: Class -1.31.6 Class: saving and loading --------------------------------- +Class: saving and loading +------------------------- binaryRepresentationVersion Answer a number >= 0 which represents the current version of the @@ -4394,8 +4389,8 @@  File: gst-base.info, Node: Class-testing, Next: Class-testing functionality, Prev: Class-saving and loading, Up: Class -1.31.7 Class: testing ---------------------- +Class: testing +-------------- = aClass Returns true if the two class objects are to be considered equal. @@ -4404,8 +4399,8 @@  File: gst-base.info, Node: Class-testing functionality, Prev: Class-testing, Up: Class -1.31.8 Class: testing functionality ------------------------------------ +Class: testing functionality +---------------------------- asClass Answer the receiver. @@ -4417,8 +4412,8 @@  File: gst-base.info, Node: ClassDescription, Next: CLong, Prev: Class, Up: Base classes -1.32 ClassDescription -===================== +ClassDescription +================ Defined in namespace Smalltalk Superclass: Behavior @@ -4439,8 +4434,8 @@  File: gst-base.info, Node: ClassDescription-compiling, Next: ClassDescription-conversion, Up: ClassDescription -1.32.1 ClassDescription: compiling ----------------------------------- +ClassDescription: compiling +--------------------------- compile: code classified: categoryName Compile code in the receiver, assigning the method to the given @@ -4461,8 +4456,8 @@  File: gst-base.info, Node: ClassDescription-conversion, Next: ClassDescription-copying, Prev: ClassDescription-compiling, Up: ClassDescription -1.32.2 ClassDescription: conversion ------------------------------------ +ClassDescription: conversion +---------------------------- asClass This method's functionality should be implemented by subclasses of @@ -4478,8 +4473,8 @@  File: gst-base.info, Node: ClassDescription-copying, Next: ClassDescription-filing, Prev: ClassDescription-conversion, Up: ClassDescription -1.32.3 ClassDescription: copying --------------------------------- +ClassDescription: copying +------------------------- copy: selector from: aClass Copy the given selector from aClass, assigning it the same category @@ -4512,8 +4507,8 @@  File: gst-base.info, Node: ClassDescription-filing, Next: ClassDescription-organization of messages and classes, Prev: ClassDescription-copying, Up: ClassDescription -1.32.4 ClassDescription: filing -------------------------------- +ClassDescription: filing +------------------------ fileOut: fileName Open the given file and to file out a complete class description @@ -4538,8 +4533,8 @@  File: gst-base.info, Node: ClassDescription-organization of messages and classes, Next: ClassDescription-printing, Prev: ClassDescription-filing, Up: ClassDescription -1.32.5 ClassDescription: organization of messages and classes -------------------------------------------------------------- +ClassDescription: organization of messages and classes +------------------------------------------------------ classify: aSelector under: aString Put the method identified by the selector aSelector under the @@ -4576,8 +4571,8 @@  File: gst-base.info, Node: ClassDescription-printing, Prev: ClassDescription-organization of messages and classes, Up: ClassDescription -1.32.6 ClassDescription: printing ---------------------------------- +ClassDescription: printing +-------------------------- classVariableString This method's functionality should be implemented by subclasses of @@ -4602,8 +4597,8 @@  File: gst-base.info, Node: CLong, Next: CObject, Prev: ClassDescription, Up: Base classes -1.33 CLong -========== +CLong +===== Defined in namespace Smalltalk Superclass: CScalar @@ -4617,8 +4612,8 @@  File: gst-base.info, Node: CLong class-accessing, Next: CLong-accessing, Up: CLong -1.33.1 CLong class: accessing ------------------------------ +CLong class: accessing +---------------------- alignof Answer the receiver's instances required aligment @@ -4634,8 +4629,8 @@  File: gst-base.info, Node: CLong-accessing, Prev: CLong class-accessing, Up: CLong -1.33.2 CLong: accessing ------------------------ +CLong: accessing +---------------- alignof Answer the receiver's required aligment @@ -4650,8 +4645,8 @@  File: gst-base.info, Node: CObject, Next: Collection, Prev: CLong, Up: Base classes -1.34 CObject -============ +CObject +======= Defined in namespace Smalltalk Superclass: Object @@ -4676,8 +4671,8 @@  File: gst-base.info, Node: CObject class-conversion, Next: CObject class-instance creation, Up: CObject -1.34.1 CObject class: conversion --------------------------------- +CObject class: conversion +------------------------- scalarIndex Nothing special in the default case - answer a CType for the @@ -4691,8 +4686,8 @@  File: gst-base.info, Node: CObject class-instance creation, Next: CObject-accessing, Prev: CObject class-conversion, Up: CObject -1.34.2 CObject class: instance creation ---------------------------------------- +CObject class: instance creation +-------------------------------- address: anInteger Answer a new object pointing to the passed address, anInteger @@ -4713,8 +4708,8 @@  File: gst-base.info, Node: CObject-accessing, Next: CObject-C data access, Prev: CObject class-instance creation, Up: CObject -1.34.3 CObject: accessing -------------------------- +CObject: accessing +------------------ address Answer the address the receiver is pointing to. @@ -4732,8 +4727,8 @@  File: gst-base.info, Node: CObject-C data access, Next: CObject-conversion, Prev: CObject-accessing, Up: CObject -1.34.4 CObject: C data access ------------------------------ +CObject: C data access +---------------------- at: byteOffset put: aValue type: aType Store aValue as data of the given type from byteOffset bytes after @@ -4751,8 +4746,8 @@  File: gst-base.info, Node: CObject-conversion, Next: CObject-finalization, Prev: CObject-C data access, Up: CObject -1.34.5 CObject: conversion --------------------------- +CObject: conversion +------------------- castTo: aType Answer another CObject, pointing to the same address as the @@ -4775,8 +4770,8 @@  File: gst-base.info, Node: CObject-finalization, Next: CObject-pointer-like behavior, Prev: CObject-conversion, Up: CObject -1.34.6 CObject: finalization ----------------------------- +CObject: finalization +--------------------- finalize To make the VM call this, use #addToBeFinalized. It frees @@ -4789,8 +4784,8 @@  File: gst-base.info, Node: CObject-pointer-like behavior, Prev: CObject-finalization, Up: CObject -1.34.7 CObject: pointer-like behavior -------------------------------------- +CObject: pointer-like behavior +------------------------------ + anInteger Return another instance of the receiver's class which points at @@ -4848,8 +4843,8 @@  File: gst-base.info, Node: Collection, Next: CompiledBlock, Prev: CObject, Up: Base classes -1.35 Collection -=============== +Collection +========== Defined in namespace Smalltalk Superclass: Object @@ -4876,8 +4871,8 @@  File: gst-base.info, Node: Collection class-instance creation, Next: Collection-adding, Up: Collection -1.35.1 Collection class: instance creation ------------------------------------------- +Collection class: instance creation +----------------------------------- with: anObject Answer a collection whose only element is anObject @@ -4905,8 +4900,8 @@  File: gst-base.info, Node: Collection-adding, Next: Collection-converting, Prev: Collection class-instance creation, Up: Collection -1.35.2 Collection: adding -------------------------- +Collection: adding +------------------ add: newObject Add newObject to the receiver, answer it @@ -4919,8 +4914,8 @@  File: gst-base.info, Node: Collection-converting, Next: Collection-copying Collections, Prev: Collection-adding, Up: Collection -1.35.3 Collection: converting ------------------------------ +Collection: converting +---------------------- asArray Answer an Array containing all the elements in the receiver @@ -4958,8 +4953,8 @@  File: gst-base.info, Node: Collection-copying Collections, Next: Collection-enumeration, Prev: Collection-converting, Up: Collection -1.35.4 Collection: copying Collections --------------------------------------- +Collection: copying Collections +------------------------------- copyReplacing: targetObject withObject: newObject Copy replacing each object which is = to targetObject with @@ -4976,8 +4971,8 @@  File: gst-base.info, Node: Collection-enumeration, Next: Collection-finalization, Prev: Collection-copying Collections, Up: Collection -1.35.5 Collection: enumeration ------------------------------- +Collection: enumeration +----------------------- allSatisfy: aBlock Search the receiver for an element for which aBlock returns false. @@ -5054,8 +5049,8 @@  File: gst-base.info, Node: Collection-finalization, Next: Collection-printing, Prev: Collection-enumeration, Up: Collection -1.35.6 Collection: finalization -------------------------------- +Collection: finalization +------------------------ mourn: anObject Private - anObject has been found to have a weak key, remove it @@ -5065,8 +5060,8 @@  File: gst-base.info, Node: Collection-printing, Next: Collection-removing, Prev: Collection-finalization, Up: Collection -1.35.7 Collection: printing ---------------------------- +Collection: printing +-------------------- inspect Print all the instance variables and objects in the receiver on the @@ -5079,8 +5074,8 @@  File: gst-base.info, Node: Collection-removing, Next: Collection-storing, Prev: Collection-printing, Up: Collection -1.35.8 Collection: removing ---------------------------- +Collection: removing +-------------------- empty Remove everything from the receiver. @@ -5106,8 +5101,8 @@  File: gst-base.info, Node: Collection-storing, Next: Collection-testing collections, Prev: Collection-removing, Up: Collection -1.35.9 Collection: storing --------------------------- +Collection: storing +------------------- storeOn: aStream Store Smalltalk code compiling to the receiver on aStream @@ -5116,8 +5111,8 @@  File: gst-base.info, Node: Collection-testing collections, Prev: Collection-storing, Up: Collection -1.35.10 Collection: testing collections ---------------------------------------- +Collection: testing collections +------------------------------- capacity Answer how many elements the receiver can hold before having to @@ -5145,8 +5140,8 @@  File: gst-base.info, Node: CompiledBlock, Next: CompiledCode, Prev: Collection, Up: Base classes -1.36 CompiledBlock -================== +CompiledBlock +============= Defined in namespace Smalltalk Superclass: CompiledCode @@ -5164,8 +5159,8 @@  File: gst-base.info, Node: CompiledBlock class-instance creation, Next: CompiledBlock-accessing, Up: CompiledBlock -1.36.1 CompiledBlock class: instance creation ---------------------------------------------- +CompiledBlock class: instance creation +-------------------------------------- newMethod: numBytecodes header: anInteger method: outerMethod Answer a new CompiledMethod with room for the given bytes and the @@ -5182,8 +5177,8 @@  File: gst-base.info, Node: CompiledBlock-accessing, Next: CompiledBlock-basic, Prev: CompiledBlock class-instance creation, Up: CompiledBlock -1.36.2 CompiledBlock: accessing -------------------------------- +CompiledBlock: accessing +------------------------ flags Answer the `cleanness' of the block. 0 = clean; 1 = access to @@ -5221,8 +5216,8 @@  File: gst-base.info, Node: CompiledBlock-basic, Next: CompiledBlock-printing, Prev: CompiledBlock-accessing, Up: CompiledBlock -1.36.3 CompiledBlock: basic ---------------------------- +CompiledBlock: basic +-------------------- = aMethod Answer whether the receiver and aMethod are equal @@ -5250,8 +5245,8 @@  File: gst-base.info, Node: CompiledBlock-printing, Next: CompiledBlock-saving and loading, Prev: CompiledBlock-basic, Up: CompiledBlock -1.36.4 CompiledBlock: printing ------------------------------- +CompiledBlock: printing +----------------------- printOn: aStream Print the receiver's class and selector on aStream @@ -5260,8 +5255,8 @@  File: gst-base.info, Node: CompiledBlock-saving and loading, Prev: CompiledBlock-printing, Up: CompiledBlock -1.36.5 CompiledBlock: saving and loading ----------------------------------------- +CompiledBlock: saving and loading +--------------------------------- to @@ -5274,8 +5269,8 @@  File: gst-base.info, Node: CompiledCode, Next: CompiledMethod, Prev: CompiledBlock, Up: Base classes -1.37 CompiledCode -================= +CompiledCode +============ Defined in namespace Smalltalk Superclass: ArrayedCollection @@ -5298,8 +5293,8 @@  File: gst-base.info, Node: CompiledCode class-cache flushing, Next: CompiledCode class-instance creation, Up: CompiledCode -1.37.1 CompiledCode class: cache flushing ------------------------------------------ +CompiledCode class: cache flushing +---------------------------------- flushTranslatorCache Answer any kind of cache mantained by a just-in-time code @@ -5309,8 +5304,8 @@  File: gst-base.info, Node: CompiledCode class-instance creation, Next: CompiledCode-accessing, Prev: CompiledCode class-cache flushing, Up: CompiledCode -1.37.2 CompiledCode class: instance creation --------------------------------------------- +CompiledCode class: instance creation +------------------------------------- newMethod: numBytecodes header: anInteger literals: literals Answer a new CompiledMethod with room for the given bytes and the @@ -5324,8 +5319,8 @@  File: gst-base.info, Node: CompiledCode-accessing, Next: CompiledCode-basic, Prev: CompiledCode class-instance creation, Up: CompiledCode -1.37.3 CompiledCode: accessing ------------------------------- +CompiledCode: accessing +----------------------- at: anIndex put: aBytecode Store aBytecode as the anIndex-th bytecode @@ -5383,8 +5378,8 @@  File: gst-base.info, Node: CompiledCode-basic, Next: CompiledCode-copying, Prev: CompiledCode-accessing, Up: CompiledCode -1.37.4 CompiledCode: basic --------------------------- +CompiledCode: basic +------------------- = aMethod Answer whether the receiver and aMethod are equal @@ -5415,8 +5410,8 @@  File: gst-base.info, Node: CompiledCode-copying, Next: CompiledCode-debugging, Prev: CompiledCode-basic, Up: CompiledCode -1.37.5 CompiledCode: copying ----------------------------- +CompiledCode: copying +--------------------- deepCopy Answer a deep copy of the receiver @@ -5425,8 +5420,8 @@  File: gst-base.info, Node: CompiledCode-debugging, Next: CompiledCode-decoding bytecodes, Prev: CompiledCode-copying, Up: CompiledCode -1.37.6 CompiledCode: debugging ------------------------------- +CompiledCode: debugging +----------------------- inspect Print the contents of the receiver in a verbose way. @@ -5435,8 +5430,8 @@  File: gst-base.info, Node: CompiledCode-decoding bytecodes, Next: CompiledCode-testing accesses, Prev: CompiledCode-debugging, Up: CompiledCode -1.37.7 CompiledCode: decoding bytecodes ---------------------------------------- +CompiledCode: decoding bytecodes +-------------------------------- dispatchTo: anObject with: param Disassemble the bytecodes and tell anObject about them in the form @@ -5447,8 +5442,8 @@  File: gst-base.info, Node: CompiledCode-testing accesses, Next: CompiledCode-translation, Prev: CompiledCode-decoding bytecodes, Up: CompiledCode -1.37.8 CompiledCode: testing accesses -------------------------------------- +CompiledCode: testing accesses +------------------------------ accesses: instVarIndex Answer whether the receiver accesses the instance variable with @@ -5484,8 +5479,8 @@  File: gst-base.info, Node: CompiledCode-translation, Prev: CompiledCode-testing accesses, Up: CompiledCode -1.37.9 CompiledCode: translation --------------------------------- +CompiledCode: translation +------------------------- discardTranslation Flush the just-in-time translated code for the receiver (if any). @@ -5494,8 +5489,8 @@  File: gst-base.info, Node: CompiledMethod, Next: ContextPart, Prev: CompiledCode, Up: Base classes -1.38 CompiledMethod -=================== +CompiledMethod +============== Defined in namespace Smalltalk Superclass: CompiledCode @@ -5518,8 +5513,8 @@  File: gst-base.info, Node: CompiledMethod class-instance creation, Next: CompiledMethod class-lean images, Up: CompiledMethod -1.38.1 CompiledMethod class: instance creation ----------------------------------------------- +CompiledMethod class: instance creation +--------------------------------------- literals: lits numArgs: numArg numTemps: numTemp primitive: primIndex bytecodes: bytecodes depth: depth Answer a @@ -5533,8 +5528,8 @@  File: gst-base.info, Node: CompiledMethod class-lean images, Next: CompiledMethod-accessing, Prev: CompiledMethod class-instance creation, Up: CompiledMethod -1.38.2 CompiledMethod class: lean images ----------------------------------------- +CompiledMethod class: lean images +--------------------------------- stripSourceCode Remove all the references to method source code from the system @@ -5543,8 +5538,8 @@  File: gst-base.info, Node: CompiledMethod-accessing, Next: CompiledMethod-basic, Prev: CompiledMethod class-lean images, Up: CompiledMethod -1.38.3 CompiledMethod: accessing --------------------------------- +CompiledMethod: accessing +------------------------- allBlocksDo: aBlock Evaluate aBlock, passing to it all the CompiledBlocks it holds @@ -5596,8 +5591,8 @@  File: gst-base.info, Node: CompiledMethod-basic, Next: CompiledMethod-printing, Prev: CompiledMethod-accessing, Up: CompiledMethod -1.38.4 CompiledMethod: basic ----------------------------- +CompiledMethod: basic +--------------------- = aMethod Answer whether the receiver and aMethod are equal @@ -5628,8 +5623,8 @@  File: gst-base.info, Node: CompiledMethod-printing, Next: CompiledMethod-saving and loading, Prev: CompiledMethod-basic, Up: CompiledMethod -1.38.5 CompiledMethod: printing -------------------------------- +CompiledMethod: printing +------------------------ printOn: aStream Print the receiver's class and selector on aStream @@ -5641,8 +5636,8 @@  File: gst-base.info, Node: CompiledMethod-saving and loading, Next: CompiledMethod-testing, Prev: CompiledMethod-printing, Up: CompiledMethod -1.38.6 CompiledMethod: saving and loading ------------------------------------------ +CompiledMethod: saving and loading +---------------------------------- to @@ -5655,8 +5650,8 @@  File: gst-base.info, Node: CompiledMethod-testing, Prev: CompiledMethod-saving and loading, Up: CompiledMethod -1.38.7 CompiledMethod: testing ------------------------------- +CompiledMethod: testing +----------------------- accesses: instVarIndex Answer whether the receiver or the blocks it contains accesses the @@ -5674,8 +5669,8 @@  File: gst-base.info, Node: ContextPart, Next: CoreException, Prev: CompiledMethod, Up: Base classes -1.39 ContextPart -================ +ContextPart +=========== Defined in namespace Smalltalk Superclass: Object @@ -5699,8 +5694,8 @@  File: gst-base.info, Node: ContextPart class-exception handling, Next: ContextPart-accessing, Up: ContextPart -1.39.1 ContextPart class: exception handling --------------------------------------------- +ContextPart class: exception handling +------------------------------------- backtrace Print a backtrace from the caller to the bottom of the stack on the @@ -5731,8 +5726,8 @@  File: gst-base.info, Node: ContextPart-accessing, Next: ContextPart-built ins, Prev: ContextPart class-exception handling, Up: ContextPart -1.39.2 ContextPart: accessing ------------------------------ +ContextPart: accessing +---------------------- client Answer the client of this context, that is, the object that sent @@ -5832,8 +5827,8 @@  File: gst-base.info, Node: ContextPart-built ins, Next: ContextPart-copying, Prev: ContextPart-accessing, Up: ContextPart -1.39.3 ContextPart: built ins ------------------------------ +ContextPart: built ins +---------------------- continue: anObject Resume execution from the receiver, faking that the context on top @@ -5849,8 +5844,8 @@  File: gst-base.info, Node: ContextPart-copying, Next: ContextPart-debugging, Prev: ContextPart-built ins, Up: ContextPart -1.39.4 ContextPart: copying ---------------------------- +ContextPart: copying +-------------------- deepCopy Answer a shallow copy of the receiver - duplicating e.g. the @@ -5861,8 +5856,8 @@  File: gst-base.info, Node: ContextPart-debugging, Next: ContextPart-enumerating, Prev: ContextPart-copying, Up: ContextPart -1.39.5 ContextPart: debugging ------------------------------ +ContextPart: debugging +---------------------- debuggerClass Answer which debugger should be used to debug the current context @@ -5877,8 +5872,8 @@  File: gst-base.info, Node: ContextPart-enumerating, Next: ContextPart-exception handling, Prev: ContextPart-debugging, Up: ContextPart -1.39.6 ContextPart: enumerating -------------------------------- +ContextPart: enumerating +------------------------ scanBacktraceFor: selectors do: aBlock Scan the backtrace for contexts whose selector is among those @@ -5889,8 +5884,8 @@  File: gst-base.info, Node: ContextPart-exception handling, Next: ContextPart-printing, Prev: ContextPart-enumerating, Up: ContextPart -1.39.7 ContextPart: exception handling --------------------------------------- +ContextPart: exception handling +------------------------------- mark Add the receiver as a possible unwind point @@ -5899,8 +5894,8 @@  File: gst-base.info, Node: ContextPart-printing, Prev: ContextPart-exception handling, Up: ContextPart -1.39.8 ContextPart: printing ----------------------------- +ContextPart: printing +--------------------- backtrace Print a backtrace from the receiver to the bottom of the stack on @@ -5914,8 +5909,8 @@  File: gst-base.info, Node: CoreException, Next: CPtr, Prev: ContextPart, Up: Base classes -1.40 CoreException -================== +CoreException +============= Defined in namespace Smalltalk Superclass: TrappableEvent @@ -5946,8 +5941,8 @@  File: gst-base.info, Node: CoreException class-instance creation, Next: CoreException-accessing, Up: CoreException -1.40.1 CoreException class: instance creation ---------------------------------------------- +CoreException class: instance creation +-------------------------------------- new Create a new exception whose parent is ExAll @@ -5956,8 +5951,8 @@  File: gst-base.info, Node: CoreException-accessing, Next: CoreException-basic, Prev: CoreException class-instance creation, Up: CoreException -1.40.2 CoreException: accessing -------------------------------- +CoreException: accessing +------------------------ defaultHandler Answer the default handler for the receiver @@ -5993,8 +5988,8 @@  File: gst-base.info, Node: CoreException-basic, Next: CoreException-enumerating, Prev: CoreException-accessing, Up: CoreException -1.40.3 CoreException: basic ---------------------------- +CoreException: basic +-------------------- postCopy Modify the receiver so that the description is deep copied @@ -6003,8 +5998,8 @@  File: gst-base.info, Node: CoreException-enumerating, Next: CoreException-exception handling, Prev: CoreException-basic, Up: CoreException -1.40.4 CoreException: enumerating ---------------------------------- +CoreException: enumerating +-------------------------- allExceptionsDo: aBlock Private - Evaluate aBlock for every exception in the receiver. As @@ -6023,8 +6018,8 @@  File: gst-base.info, Node: CoreException-exception handling, Next: CoreException-instance creation, Prev: CoreException-enumerating, Up: CoreException -1.40.5 CoreException: exception handling ----------------------------------------- +CoreException: exception handling +--------------------------------- signal Raise the exception described by the receiver, passing no @@ -6046,8 +6041,8 @@  File: gst-base.info, Node: CoreException-instance creation, Prev: CoreException-exception handling, Up: CoreException -1.40.6 CoreException: instance creation ---------------------------------------- +CoreException: instance creation +-------------------------------- newChild Answer a child exception of the receiver. Its properties are set @@ -6057,8 +6052,8 @@  File: gst-base.info, Node: CPtr, Next: CPtrCType, Prev: CoreException, Up: Base classes -1.41 CPtr -========= +CPtr +==== Defined in namespace Smalltalk Superclass: CAggregate @@ -6071,8 +6066,8 @@  File: gst-base.info, Node: CPtr-accessing, Up: CPtr -1.41.1 CPtr: accessing ----------------------- +CPtr: accessing +--------------- alignof Answer the receiver's required aligment @@ -6093,8 +6088,8 @@  File: gst-base.info, Node: CPtrCType, Next: CScalar, Prev: CPtr, Up: Base classes -1.42 CPtrCType -============== +CPtrCType +========= Defined in namespace Smalltalk Superclass: CType @@ -6108,8 +6103,8 @@  File: gst-base.info, Node: CPtrCType class-instance creation, Next: CPtrCType-accessing, Up: CPtrCType -1.42.1 CPtrCType class: instance creation ------------------------------------------ +CPtrCType class: instance creation +---------------------------------- elementType: aCType Answer a new instance of CPtrCType that maps pointers to the given @@ -6119,8 +6114,8 @@  File: gst-base.info, Node: CPtrCType-accessing, Prev: CPtrCType class-instance creation, Up: CPtrCType -1.42.2 CPtrCType: accessing ---------------------------- +CPtrCType: accessing +-------------------- elementType Answer the type of the elements in the receiver's instances @@ -6135,8 +6130,8 @@  File: gst-base.info, Node: CScalar, Next: CScalarCType, Prev: CPtrCType, Up: Base classes -1.43 CScalar -============ +CScalar +======= Defined in namespace Smalltalk Superclass: CObject @@ -6150,8 +6145,8 @@  File: gst-base.info, Node: CScalar class-instance creation, Next: CScalar-accessing, Up: CScalar -1.43.1 CScalar class: instance creation ---------------------------------------- +CScalar class: instance creation +-------------------------------- type Answer a CType for the receiver - for example, CByteType if the @@ -6166,8 +6161,8 @@  File: gst-base.info, Node: CScalar-accessing, Prev: CScalar class-instance creation, Up: CScalar -1.43.2 CScalar: accessing -------------------------- +CScalar: accessing +------------------ cObjStoredType Private - Provide a conversion from a CObject to a Smalltalk object @@ -6185,8 +6180,8 @@  File: gst-base.info, Node: CScalarCType, Next: CShort, Prev: CScalar, Up: Base classes -1.44 CScalarCType -================= +CScalarCType +============ Defined in namespace Smalltalk Superclass: CType @@ -6200,8 +6195,8 @@  File: gst-base.info, Node: CScalarCType-accessing, Next: CScalarCType-storing, Up: CScalarCType -1.44.1 CScalarCType: accessing ------------------------------- +CScalarCType: accessing +----------------------- valueType valueType is used as a means to communicate to the interpreter the @@ -6212,8 +6207,8 @@  File: gst-base.info, Node: CScalarCType-storing, Prev: CScalarCType-accessing, Up: CScalarCType -1.44.2 CScalarCType: storing ----------------------------- +CScalarCType: storing +--------------------- storeOn: aStream Store Smalltalk code that compiles to the receiver @@ -6222,8 +6217,8 @@  File: gst-base.info, Node: CShort, Next: CSmalltalk, Prev: CScalarCType, Up: Base classes -1.45 CShort -=========== +CShort +====== Defined in namespace Smalltalk Superclass: CScalar @@ -6237,8 +6232,8 @@  File: gst-base.info, Node: CShort class-accessing, Next: CShort-accessing, Up: CShort -1.45.1 CShort class: accessing ------------------------------- +CShort class: accessing +----------------------- alignof Answer the receiver's instances required aligment @@ -6254,8 +6249,8 @@  File: gst-base.info, Node: CShort-accessing, Prev: CShort class-accessing, Up: CShort -1.45.2 CShort: accessing ------------------------- +CShort: accessing +----------------- alignof Answer the receiver's required aligment @@ -6270,8 +6265,8 @@  File: gst-base.info, Node: CSmalltalk, Next: CString, Prev: CShort, Up: Base classes -1.46 CSmalltalk -=============== +CSmalltalk +========== Defined in namespace Smalltalk Superclass: CScalar @@ -6285,8 +6280,8 @@  File: gst-base.info, Node: CSmalltalk class-accessing, Next: CSmalltalk-accessing, Up: CSmalltalk -1.46.1 CSmalltalk class: accessing ----------------------------------- +CSmalltalk class: accessing +--------------------------- alignof Answer the receiver's instances required aligment @@ -6302,8 +6297,8 @@  File: gst-base.info, Node: CSmalltalk-accessing, Prev: CSmalltalk class-accessing, Up: CSmalltalk -1.46.2 CSmalltalk: accessing ----------------------------- +CSmalltalk: accessing +--------------------- alignof Answer the receiver's required aligment @@ -6318,8 +6313,8 @@  File: gst-base.info, Node: CString, Next: CStringCType, Prev: CSmalltalk, Up: Base classes -1.47 CString -============ +CString +======= Defined in namespace Smalltalk Superclass: CPtr @@ -6343,8 +6338,8 @@  File: gst-base.info, Node: CString class-instance creation, Next: CString-accessing, Up: CString -1.47.1 CString class: instance creation ---------------------------------------- +CString class: instance creation +-------------------------------- type Answer a CType for the receiver - for example, CByteType if the @@ -6359,8 +6354,8 @@  File: gst-base.info, Node: CString-accessing, Prev: CString class-instance creation, Up: CString -1.47.2 CString: accessing -------------------------- +CString: accessing +------------------ cObjStoredType Private - Provide a conversion from a CObject to a Smalltalk object @@ -6378,8 +6373,8 @@  File: gst-base.info, Node: CStringCType, Next: CStruct, Prev: CString, Up: Base classes -1.48 CStringCType -================= +CStringCType +============ Defined in namespace Smalltalk Superclass: CScalarCType @@ -6392,8 +6387,8 @@  File: gst-base.info, Node: CStringCType-accessing, Up: CStringCType -1.48.1 CStringCType: accessing ------------------------------- +CStringCType: accessing +----------------------- elementType Answer the type of the elements in the receiver's instances @@ -6402,8 +6397,8 @@  File: gst-base.info, Node: CStruct, Next: CType, Prev: CStringCType, Up: Base classes -1.49 CStruct -============ +CStruct +======= Defined in namespace Smalltalk Superclass: CCompound @@ -6416,8 +6411,8 @@  File: gst-base.info, Node: CStruct class-subclass creation, Up: CStruct -1.49.1 CStruct class: subclass creation ---------------------------------------- +CStruct class: subclass creation +-------------------------------- compileDeclaration: array Compile methods that implement the declaration in array. @@ -6426,8 +6421,8 @@  File: gst-base.info, Node: CType, Next: CUChar, Prev: CStruct, Up: Base classes -1.50 CType -========== +CType +===== Defined in namespace Smalltalk Superclass: Object @@ -6457,8 +6452,8 @@  File: gst-base.info, Node: CType class-C instance creation, Next: CType-accessing, Up: CType -1.50.1 CType class: C instance creation ---------------------------------------- +CType class: C instance creation +-------------------------------- cObjectType: aCObjectSubclass Create a new CType for the given subclass of CObject @@ -6467,8 +6462,8 @@  File: gst-base.info, Node: CType-accessing, Next: CType-C instance creation, Prev: CType class-C instance creation, Up: CType -1.50.2 CType: accessing ------------------------ +CType: accessing +---------------- alignof Answer the size of the receiver's instances @@ -6497,8 +6492,8 @@  File: gst-base.info, Node: CType-C instance creation, Next: CType-storing, Prev: CType-accessing, Up: CType -1.50.3 CType: C instance creation ---------------------------------- +CType: C instance creation +-------------------------- address: cObjOrInt Create a new CObject with the type (class) identified by the @@ -6514,8 +6509,8 @@  File: gst-base.info, Node: CType-storing, Prev: CType-C instance creation, Up: CType -1.50.4 CType: storing ---------------------- +CType: storing +-------------- storeOn: aStream Store Smalltalk code that compiles to the receiver @@ -6524,8 +6519,8 @@  File: gst-base.info, Node: CUChar, Next: CUInt, Prev: CType, Up: Base classes -1.51 CUChar -=========== +CUChar +====== Defined in namespace Smalltalk Superclass: CScalar @@ -6539,8 +6534,8 @@  File: gst-base.info, Node: CUChar class-getting info, Next: CUChar-accessing, Up: CUChar -1.51.1 CUChar class: getting info ---------------------------------- +CUChar class: getting info +-------------------------- alignof Answer the receiver's instances required aligment @@ -6556,8 +6551,8 @@  File: gst-base.info, Node: CUChar-accessing, Prev: CUChar class-getting info, Up: CUChar -1.51.2 CUChar: accessing ------------------------- +CUChar: accessing +----------------- alignof Answer the receiver's required aligment @@ -6572,8 +6567,8 @@  File: gst-base.info, Node: CUInt, Next: CULong, Prev: CUChar, Up: Base classes -1.52 CUInt -========== +CUInt +===== Defined in namespace Smalltalk Superclass: CScalar @@ -6587,8 +6582,8 @@  File: gst-base.info, Node: CUInt class-accessing, Next: CUInt-accessing, Up: CUInt -1.52.1 CUInt class: accessing ------------------------------ +CUInt class: accessing +---------------------- alignof Answer the receiver's instances required aligment @@ -6604,8 +6599,8 @@  File: gst-base.info, Node: CUInt-accessing, Prev: CUInt class-accessing, Up: CUInt -1.52.2 CUInt: accessing ------------------------ +CUInt: accessing +---------------- alignof Answer the receiver's required aligment @@ -6620,8 +6615,8 @@  File: gst-base.info, Node: CULong, Next: CUnion, Prev: CUInt, Up: Base classes -1.53 CULong -=========== +CULong +====== Defined in namespace Smalltalk Superclass: CScalar @@ -6635,8 +6630,8 @@  File: gst-base.info, Node: CULong class-accessing, Next: CULong-accessing, Up: CULong -1.53.1 CULong class: accessing ------------------------------- +CULong class: accessing +----------------------- alignof Answer the receiver's instances required aligment @@ -6652,8 +6647,8 @@  File: gst-base.info, Node: CULong-accessing, Prev: CULong class-accessing, Up: CULong -1.53.2 CULong: accessing ------------------------- +CULong: accessing +----------------- alignof Answer the receiver's required aligment @@ -6668,8 +6663,8 @@  File: gst-base.info, Node: CUnion, Next: CUShort, Prev: CULong, Up: Base classes -1.54 CUnion -=========== +CUnion +====== Defined in namespace Smalltalk Superclass: CCompound @@ -6682,8 +6677,8 @@  File: gst-base.info, Node: CUnion class-subclass creation, Up: CUnion -1.54.1 CUnion class: subclass creation --------------------------------------- +CUnion class: subclass creation +------------------------------- compileDeclaration: array Compile methods that implement the declaration in array. @@ -6692,8 +6687,8 @@  File: gst-base.info, Node: CUShort, Next: Date, Prev: CUnion, Up: Base classes -1.55 CUShort -============ +CUShort +======= Defined in namespace Smalltalk Superclass: CScalar @@ -6707,8 +6702,8 @@  File: gst-base.info, Node: CUShort class-accessing, Next: CUShort-accessing, Up: CUShort -1.55.1 CUShort class: accessing -------------------------------- +CUShort class: accessing +------------------------ alignof Answer the receiver's instances required aligment @@ -6724,8 +6719,8 @@  File: gst-base.info, Node: CUShort-accessing, Prev: CUShort class-accessing, Up: CUShort -1.55.2 CUShort: accessing -------------------------- +CUShort: accessing +------------------ alignof Answer the receiver's required aligment @@ -6740,8 +6735,8 @@  File: gst-base.info, Node: Date, Next: DateTime, Prev: CUShort, Up: Base classes -1.56 Date -========= +Date +==== Defined in namespace Smalltalk Superclass: Magnitude @@ -6778,8 +6773,8 @@  File: gst-base.info, Node: Date class-basic, Next: Date class-instance creation (ANSI), Up: Date -1.56.1 Date class: basic ------------------------- +Date class: basic +----------------- abbreviationOfDay: dayIndex Answer the abbreviated name of the day of week corresponding to @@ -6820,8 +6815,8 @@  File: gst-base.info, Node: Date class-instance creation (ANSI), Next: Date class-instance creation (Blue Book), Prev: Date class-basic, Up: Date -1.56.2 Date class: instance creation (ANSI) -------------------------------------------- +Date class: instance creation (ANSI) +------------------------------------ year: y day: d hour: h minute: min second: s Answer a Date denoting the d-th day of the given year @@ -6834,8 +6829,8 @@  File: gst-base.info, Node: Date class-instance creation (Blue Book), Next: Date-basic, Prev: Date class-instance creation (ANSI), Up: Date -1.56.3 Date class: instance creation (Blue Book) ------------------------------------------------- +Date class: instance creation (Blue Book) +----------------------------------------- dateAndTimeNow Answer an array containing the current date and time @@ -6879,8 +6874,8 @@  File: gst-base.info, Node: Date-basic, Next: Date-compatibility (non-ANSI), Prev: Date class-instance creation (Blue Book), Up: Date -1.56.4 Date: basic ------------------- +Date: basic +----------- addDays: dayCount Answer a new Date pointing dayCount past the receiver @@ -6896,8 +6891,8 @@  File: gst-base.info, Node: Date-compatibility (non-ANSI), Next: Date-date computations, Prev: Date-basic, Up: Date -1.56.5 Date: compatibility (non-ANSI) -------------------------------------- +Date: compatibility (non-ANSI) +------------------------------ day Answer the day represented by the receiver @@ -6913,8 +6908,8 @@  File: gst-base.info, Node: Date-date computations, Next: Date-printing, Prev: Date-compatibility (non-ANSI), Up: Date -1.56.6 Date: date computations ------------------------------- +Date: date computations +----------------------- asSeconds Answer the date as the number of seconds from 1/1/1901. @@ -6978,8 +6973,8 @@  File: gst-base.info, Node: Date-printing, Next: Date-storing, Prev: Date-date computations, Up: Date -1.56.7 Date: printing ---------------------- +Date: printing +-------------- printOn: aStream Print a representation for the receiver on aStream @@ -6988,8 +6983,8 @@  File: gst-base.info, Node: Date-storing, Next: Date-testing, Prev: Date-printing, Up: Date -1.56.8 Date: storing --------------------- +Date: storing +------------- storeOn: aStream Store on aStream Smalltalk code compiling to the receiver @@ -6998,8 +6993,8 @@  File: gst-base.info, Node: Date-testing, Prev: Date-storing, Up: Date -1.56.9 Date: testing --------------------- +Date: testing +------------- < aDate Answer whether the receiver indicates a date preceding aDate @@ -7014,8 +7009,8 @@  File: gst-base.info, Node: DateTime, Next: Delay, Prev: Date, Up: Base classes -1.57 DateTime -============= +DateTime +======== Defined in namespace Smalltalk Superclass: Date @@ -7038,8 +7033,8 @@  File: gst-base.info, Node: DateTime class-information, Next: DateTime class-instance creation, Up: DateTime -1.57.1 DateTime class: information ----------------------------------- +DateTime class: information +--------------------------- clockPrecision Answer `ClockPrecision'. @@ -7051,8 +7046,8 @@  File: gst-base.info, Node: DateTime class-instance creation, Next: DateTime class-instance creation (non-ANSI), Prev: DateTime class-information, Up: DateTime -1.57.2 DateTime class: instance creation ----------------------------------------- +DateTime class: instance creation +--------------------------------- now Answer an instance of the receiver referring to the current date @@ -7084,8 +7079,8 @@  File: gst-base.info, Node: DateTime class-instance creation (non-ANSI), Next: DateTime-basic, Prev: DateTime class-instance creation, Up: DateTime -1.57.3 DateTime class: instance creation (non-ANSI) ---------------------------------------------------- +DateTime class: instance creation (non-ANSI) +-------------------------------------------- fromDays: days seconds: secs offset: ofs Answer a DateTime denoting the d-th day of the given (as a number) @@ -7096,8 +7091,8 @@  File: gst-base.info, Node: DateTime-basic, Next: DateTime-computations, Prev: DateTime class-instance creation (non-ANSI), Up: DateTime -1.57.4 DateTime: basic ----------------------- +DateTime: basic +--------------- + aDuration Answer a new Date pointing dayCount past the receiver @@ -7109,8 +7104,8 @@  File: gst-base.info, Node: DateTime-computations, Next: DateTime-printing, Prev: DateTime-basic, Up: DateTime -1.57.5 DateTime: computations ------------------------------ +DateTime: computations +---------------------- asSeconds Answer the date as the number of seconds from 1/1/1901. @@ -7141,8 +7136,8 @@  File: gst-base.info, Node: DateTime-printing, Next: DateTime-splitting in dates & times, Prev: DateTime-computations, Up: DateTime -1.57.6 DateTime: printing -------------------------- +DateTime: printing +------------------ printOn: aStream Print a representation for the receiver on aStream @@ -7151,8 +7146,8 @@  File: gst-base.info, Node: DateTime-splitting in dates & times, Next: DateTime-storing, Prev: DateTime-printing, Up: DateTime -1.57.7 DateTime: splitting in dates & times -------------------------------------------- +DateTime: splitting in dates & times +------------------------------------ asDate Answer a Date referring to the same day as the receiver @@ -7170,8 +7165,8 @@  File: gst-base.info, Node: DateTime-storing, Next: DateTime-testing, Prev: DateTime-splitting in dates & times, Up: DateTime -1.57.8 DateTime: storing ------------------------- +DateTime: storing +----------------- storeOn: aStream Store on aStream Smalltalk code compiling to the receiver @@ -7180,8 +7175,8 @@  File: gst-base.info, Node: DateTime-testing, Next: DateTime-time zones, Prev: DateTime-storing, Up: DateTime -1.57.9 DateTime: testing ------------------------- +DateTime: testing +----------------- < aDateTime Answer whether the receiver indicates a date preceding aDate @@ -7196,8 +7191,8 @@  File: gst-base.info, Node: DateTime-time zones, Prev: DateTime-testing, Up: DateTime -1.57.10 DateTime: time zones ----------------------------- +DateTime: time zones +-------------------- asLocal Answer the receiver, since DateTime objects store themselves in @@ -7231,8 +7226,8 @@  File: gst-base.info, Node: Delay, Next: DelayedAdaptor, Prev: DateTime, Up: Base classes -1.58 Delay -========== +Delay +===== Defined in namespace Smalltalk Superclass: Object @@ -7255,8 +7250,8 @@  File: gst-base.info, Node: Delay class-general inquiries, Next: Delay class-initialization, Up: Delay -1.58.1 Delay class: general inquiries -------------------------------------- +Delay class: general inquiries +------------------------------ millisecondClockValue Private - Answer the number of milliseconds since midnight @@ -7265,8 +7260,8 @@  File: gst-base.info, Node: Delay class-initialization, Next: Delay class-instance creation, Prev: Delay class-general inquiries, Up: Delay -1.58.2 Delay class: initialization ----------------------------------- +Delay class: initialization +--------------------------- initialize Private - Initialize the receiver and the associated process @@ -7275,8 +7270,8 @@  File: gst-base.info, Node: Delay class-instance creation, Next: Delay-accessing, Prev: Delay class-initialization, Up: Delay -1.58.3 Delay class: instance creation -------------------------------------- +Delay class: instance creation +------------------------------ forMilliseconds: millisecondCount Answer a Delay waiting for millisecondCount milliseconds @@ -7292,8 +7287,8 @@  File: gst-base.info, Node: Delay-accessing, Next: Delay-comparing, Prev: Delay class-instance creation, Up: Delay -1.58.4 Delay: accessing ------------------------ +Delay: accessing +---------------- resumptionTime Answer the time when a process waiting on a Delay will resume @@ -7302,8 +7297,8 @@  File: gst-base.info, Node: Delay-comparing, Next: Delay-process delay, Prev: Delay-accessing, Up: Delay -1.58.5 Delay: comparing ------------------------ +Delay: comparing +---------------- = aDelay Answer whether the receiver and aDelay denote the same delay @@ -7315,8 +7310,8 @@  File: gst-base.info, Node: Delay-process delay, Prev: Delay-comparing, Up: Delay -1.58.6 Delay: process delay ---------------------------- +Delay: process delay +-------------------- wait Wait until the amount of time represented by the instance of Delay @@ -7326,8 +7321,8 @@  File: gst-base.info, Node: DelayedAdaptor, Next: Dictionary, Prev: Delay, Up: Base classes -1.59 DelayedAdaptor -=================== +DelayedAdaptor +============== Defined in namespace Smalltalk Superclass: PluggableAdaptor @@ -7344,8 +7339,8 @@  File: gst-base.info, Node: DelayedAdaptor-accessing, Up: DelayedAdaptor -1.59.1 DelayedAdaptor: accessing --------------------------------- +DelayedAdaptor: accessing +------------------------- trigger Really set the value of the receiver. @@ -7361,8 +7356,8 @@  File: gst-base.info, Node: Dictionary, Next: DirectedMessage, Prev: DelayedAdaptor, Up: Base classes -1.60 Dictionary -=============== +Dictionary +========== Defined in namespace Smalltalk Superclass: HashedCollection @@ -7389,8 +7384,8 @@  File: gst-base.info, Node: Dictionary class-instance creation, Next: Dictionary-accessing, Up: Dictionary -1.60.1 Dictionary class: instance creation ------------------------------------------- +Dictionary class: instance creation +----------------------------------- new Create a new dictionary with a default size @@ -7399,8 +7394,8 @@  File: gst-base.info, Node: Dictionary-accessing, Next: Dictionary-awful ST-80 compatibility hacks, Prev: Dictionary class-instance creation, Up: Dictionary -1.60.2 Dictionary: accessing ----------------------------- +Dictionary: accessing +--------------------- add: newObject Add the newObject association to the receiver @@ -7452,8 +7447,8 @@  File: gst-base.info, Node: Dictionary-awful ST-80 compatibility hacks, Next: Dictionary-dictionary enumerating, Prev: Dictionary-accessing, Up: Dictionary -1.60.3 Dictionary: awful ST-80 compatibility hacks --------------------------------------------------- +Dictionary: awful ST-80 compatibility hacks +------------------------------------------- findKeyIndex: key Tries to see if key exists as a the key of an indexed variable. As @@ -7464,8 +7459,8 @@  File: gst-base.info, Node: Dictionary-dictionary enumerating, Next: Dictionary-dictionary removing, Prev: Dictionary-awful ST-80 compatibility hacks, Up: Dictionary -1.60.4 Dictionary: dictionary enumerating ------------------------------------------ +Dictionary: dictionary enumerating +---------------------------------- associationsDo: aBlock Pass each association in the dictionary to aBlock @@ -7499,8 +7494,8 @@  File: gst-base.info, Node: Dictionary-dictionary removing, Next: Dictionary-dictionary testing, Prev: Dictionary-dictionary enumerating, Up: Dictionary -1.60.5 Dictionary: dictionary removing --------------------------------------- +Dictionary: dictionary removing +------------------------------- remove: anAssociation Remove anAssociation's key from the dictionary @@ -7526,8 +7521,8 @@  File: gst-base.info, Node: Dictionary-dictionary testing, Next: Dictionary-polymorphism hacks, Prev: Dictionary-dictionary removing, Up: Dictionary -1.60.6 Dictionary: dictionary testing -------------------------------------- +Dictionary: dictionary testing +------------------------------ includes: anObject Answer whether the receiver contains anObject as one of its values @@ -7547,8 +7542,8 @@  File: gst-base.info, Node: Dictionary-polymorphism hacks, Next: Dictionary-printing, Prev: Dictionary-dictionary testing, Up: Dictionary -1.60.7 Dictionary: polymorphism hacks -------------------------------------- +Dictionary: polymorphism hacks +------------------------------ withAllSuperspaces This method is needed by the compiler @@ -7557,8 +7552,8 @@  File: gst-base.info, Node: Dictionary-printing, Next: Dictionary-rehashing, Prev: Dictionary-polymorphism hacks, Up: Dictionary -1.60.8 Dictionary: printing ---------------------------- +Dictionary: printing +-------------------- inspect Print all the instance variables and objects in the receiver on the @@ -7571,8 +7566,8 @@  File: gst-base.info, Node: Dictionary-rehashing, Next: Dictionary-storing, Prev: Dictionary-printing, Up: Dictionary -1.60.9 Dictionary: rehashing ----------------------------- +Dictionary: rehashing +--------------------- rehash Rehash the receiver @@ -7581,8 +7576,8 @@  File: gst-base.info, Node: Dictionary-storing, Next: Dictionary-testing, Prev: Dictionary-rehashing, Up: Dictionary -1.60.10 Dictionary: storing ---------------------------- +Dictionary: storing +------------------- storeOn: aStream Print Smalltalk code compiling to the receiver on aStream @@ -7591,8 +7586,8 @@  File: gst-base.info, Node: Dictionary-testing, Prev: Dictionary-storing, Up: Dictionary -1.60.11 Dictionary: testing ---------------------------- +Dictionary: testing +------------------- = aDictionary Answer whether the receiver and aDictionary are equal @@ -7604,8 +7599,8 @@  File: gst-base.info, Node: DirectedMessage, Next: Directory, Prev: Dictionary, Up: Base classes -1.61 DirectedMessage -==================== +DirectedMessage +=============== Defined in namespace Smalltalk Superclass: Message @@ -7624,8 +7619,8 @@  File: gst-base.info, Node: DirectedMessage class-creating instances, Next: DirectedMessage-accessing, Up: DirectedMessage -1.61.1 DirectedMessage class: creating instances ------------------------------------------------- +DirectedMessage class: creating instances +----------------------------------------- selector: aSymbol arguments: anArray This method should not be called for instances of this class. @@ -7637,8 +7632,8 @@  File: gst-base.info, Node: DirectedMessage-accessing, Next: DirectedMessage-basic, Prev: DirectedMessage class-creating instances, Up: DirectedMessage -1.61.2 DirectedMessage: accessing ---------------------------------- +DirectedMessage: accessing +-------------------------- receiver Answer the receiver @@ -7650,8 +7645,8 @@  File: gst-base.info, Node: DirectedMessage-basic, Next: DirectedMessage-multiple process, Prev: DirectedMessage-accessing, Up: DirectedMessage -1.61.3 DirectedMessage: basic ------------------------------ +DirectedMessage: basic +---------------------- printOn: aStream Print a representation of the receiver on aStream @@ -7667,8 +7662,8 @@  File: gst-base.info, Node: DirectedMessage-multiple process, Next: DirectedMessage-saving and loading, Prev: DirectedMessage-basic, Up: DirectedMessage -1.61.4 DirectedMessage: multiple process ----------------------------------------- +DirectedMessage: multiple process +--------------------------------- fork Create a new process executing the receiver and start it @@ -7686,8 +7681,8 @@  File: gst-base.info, Node: DirectedMessage-saving and loading, Prev: DirectedMessage-multiple process, Up: DirectedMessage -1.61.5 DirectedMessage: saving and loading ------------------------------------------- +DirectedMessage: saving and loading +----------------------------------- reconstructOriginalObject This method is used when DirectedMessages are used together with @@ -7698,8 +7693,8 @@  File: gst-base.info, Node: Directory, Next: DLD, Prev: DirectedMessage, Up: Base classes -1.62 Directory -============== +Directory +========= Defined in namespace Smalltalk Superclass: File @@ -7722,8 +7717,8 @@  File: gst-base.info, Node: Directory class-C functions, Next: Directory class-file name management, Up: Directory -1.62.1 Directory class: C functions ------------------------------------ +Directory class: C functions +---------------------------- primWorking: dirName C call-out to chdir. Do not modify! @@ -7735,8 +7730,8 @@  File: gst-base.info, Node: Directory class-file name management, Next: Directory class-file operations, Prev: Directory class-C functions, Up: Directory -1.62.2 Directory class: file name management --------------------------------------------- +Directory class: file name management +------------------------------------- append: fileName to: directory Answer the name of a file named `fileName' which resides in a @@ -7753,8 +7748,8 @@  File: gst-base.info, Node: Directory class-file operations, Next: Directory class-reading system defaults, Prev: Directory class-file name management, Up: Directory -1.62.3 Directory class: file operations ---------------------------------------- +Directory class: file operations +-------------------------------- create: dirName Create a directory named dirName. @@ -7766,8 +7761,8 @@  File: gst-base.info, Node: Directory class-reading system defaults, Next: Directory-accessing, Prev: Directory class-file operations, Up: Directory -1.62.4 Directory class: reading system defaults ------------------------------------------------ +Directory class: reading system defaults +---------------------------------------- home Answer the path to the user's home directory @@ -7799,8 +7794,8 @@  File: gst-base.info, Node: Directory-accessing, Next: Directory-enumerating, Prev: Directory class-reading system defaults, Up: Directory -1.62.5 Directory: accessing ---------------------------- +Directory: accessing +-------------------- at: aName Answer a File object for a file named `aName' residing in the @@ -7826,8 +7821,8 @@  File: gst-base.info, Node: Directory-enumerating, Prev: Directory-accessing, Up: Directory -1.62.6 Directory: enumerating ------------------------------ +Directory: enumerating +---------------------- contents Answer an Array with the names of the files in the directory @@ -7849,8 +7844,8 @@  File: gst-base.info, Node: DLD, Next: DumperProxy, Prev: Directory, Up: Base classes -1.63 DLD -======== +DLD +=== Defined in namespace Smalltalk Superclass: Object @@ -7872,8 +7867,8 @@  File: gst-base.info, Node: DLD class-C functions, Next: DLD class-dynamic linking, Up: DLD -1.63.1 DLD class: C functions ------------------------------ +DLD class: C functions +---------------------- defineCFunc: aName as: aFuncAddr C call-out to defineCFunc. Do not modify! @@ -7888,8 +7883,8 @@  File: gst-base.info, Node: DLD class-dynamic linking, Prev: DLD class-C functions, Up: DLD -1.63.2 DLD class: dynamic linking ---------------------------------- +DLD class: dynamic linking +-------------------------- addLibrary: library Add library to the search path of libraries to be used by DLD. @@ -7928,8 +7923,8 @@  File: gst-base.info, Node: DumperProxy, Next: Duration, Prev: DLD, Up: Base classes -1.64 DumperProxy -================ +DumperProxy +=========== Defined in namespace Smalltalk Superclass: Object @@ -7947,8 +7942,8 @@  File: gst-base.info, Node: DumperProxy class-accessing, Next: DumperProxy class-instance creation, Up: DumperProxy -1.64.1 DumperProxy class: accessing ------------------------------------ +DumperProxy class: accessing +---------------------------- acceptUsageForClass: aClass The receiver was asked to be used as a proxy for the class aClass. @@ -7961,8 +7956,8 @@  File: gst-base.info, Node: DumperProxy class-instance creation, Next: DumperProxy-saving and restoring, Prev: DumperProxy class-accessing, Up: DumperProxy -1.64.2 DumperProxy class: instance creation -------------------------------------------- +DumperProxy class: instance creation +------------------------------------ on: anObject Answer a proxy to be used to save anObject. This method MUST be @@ -7974,8 +7969,8 @@  File: gst-base.info, Node: DumperProxy-saving and restoring, Prev: DumperProxy class-instance creation, Up: DumperProxy -1.64.3 DumperProxy: saving and restoring ----------------------------------------- +DumperProxy: saving and restoring +--------------------------------- dumpTo: anObjectDumper Dump the proxy to anObjectDumper - the #loadFrom: class method @@ -7988,8 +7983,8 @@  File: gst-base.info, Node: Duration, Next: Error, Prev: DumperProxy, Up: Base classes -1.65 Duration -============= +Duration +======== Defined in namespace Smalltalk Superclass: Time @@ -8005,8 +8000,8 @@  File: gst-base.info, Node: Duration class-instance creation, Next: Duration class-instance creation (non ANSI), Up: Duration -1.65.1 Duration class: instance creation ----------------------------------------- +Duration class: instance creation +--------------------------------- days: d Answer a duration of `d' days @@ -8025,8 +8020,8 @@  File: gst-base.info, Node: Duration class-instance creation (non ANSI), Next: Duration-arithmetics, Prev: Duration class-instance creation, Up: Duration -1.65.2 Duration class: instance creation (non ANSI) ---------------------------------------------------- +Duration class: instance creation (non ANSI) +-------------------------------------------- fromDays: days seconds: secs offset: unused Answer a duration of `d' days and `secs' seconds. The last @@ -8037,8 +8032,8 @@  File: gst-base.info, Node: Duration-arithmetics, Prev: Duration class-instance creation (non ANSI), Up: Duration -1.65.3 Duration: arithmetics ----------------------------- +Duration: arithmetics +--------------------- * factor Answer a Duration that is `factor' times longer than the receiver @@ -8082,8 +8077,8 @@  File: gst-base.info, Node: Error, Next: Exception, Prev: Duration, Up: Base classes -1.66 Error -========== +Error +===== Defined in namespace Smalltalk Superclass: Exception @@ -8097,8 +8092,8 @@  File: gst-base.info, Node: Error-exception description, Up: Error -1.66.1 Error: exception description ------------------------------------ +Error: exception description +---------------------------- description Answer a textual description of the exception. @@ -8111,8 +8106,8 @@  File: gst-base.info, Node: Exception, Next: ExceptionSet, Prev: Error, Up: Base classes -1.67 Exception -============== +Exception +========= Defined in namespace Smalltalk Superclass: Signal @@ -8141,8 +8136,8 @@  File: gst-base.info, Node: Exception class-comparison, Next: Exception class-creating ExceptionCollections, Up: Exception -1.67.1 Exception class: comparison ----------------------------------- +Exception class: comparison +--------------------------- goodness: anException Answer how good the receiver is at handling the given exception. A @@ -8156,8 +8151,8 @@  File: gst-base.info, Node: Exception class-creating ExceptionCollections, Next: Exception class-initialization, Prev: Exception class-comparison, Up: Exception -1.67.2 Exception class: creating ExceptionCollections ------------------------------------------------------ +Exception class: creating ExceptionCollections +---------------------------------------------- , aTrappableEvent Answer an ExceptionCollection containing all the exceptions in the @@ -8167,8 +8162,8 @@  File: gst-base.info, Node: Exception class-initialization, Next: Exception class-instance creation, Prev: Exception class-creating ExceptionCollections, Up: Exception -1.67.3 Exception class: initialization --------------------------------------- +Exception class: initialization +------------------------------- initialize Initialize the `links' between the core exception handling system @@ -8178,8 +8173,8 @@  File: gst-base.info, Node: Exception class-instance creation, Next: Exception class-interoperability with TrappableEvents, Prev: Exception class-initialization, Up: Exception -1.67.4 Exception class: instance creation ------------------------------------------ +Exception class: instance creation +---------------------------------- new Create an instance of the receiver, which you will be able to @@ -8197,8 +8192,8 @@  File: gst-base.info, Node: Exception class-interoperability with TrappableEvents, Next: Exception-comparison, Prev: Exception class-instance creation, Up: Exception -1.67.5 Exception class: interoperability with TrappableEvents -------------------------------------------------------------- +Exception class: interoperability with TrappableEvents +------------------------------------------------------ allExceptionsDo: aBlock Private - Pass the coreException to aBlock @@ -8215,8 +8210,8 @@  File: gst-base.info, Node: Exception-comparison, Next: Exception-exception description, Prev: Exception class-interoperability with TrappableEvents, Up: Exception -1.67.6 Exception: comparison ----------------------------- +Exception: comparison +--------------------- = anObject Answer whether the receiver is equal to anObject. This is true if @@ -8230,8 +8225,8 @@  File: gst-base.info, Node: Exception-exception description, Next: Exception-exception signaling, Prev: Exception-comparison, Up: Exception -1.67.7 Exception: exception description ---------------------------------------- +Exception: exception description +-------------------------------- defaultAction Execute the default action that is attached to the receiver. @@ -8246,8 +8241,8 @@  File: gst-base.info, Node: Exception-exception signaling, Prev: Exception-exception description, Up: Exception -1.67.8 Exception: exception signaling -------------------------------------- +Exception: exception signaling +------------------------------ signal Raise the exceptional event represented by the receiver @@ -8260,8 +8255,8 @@  File: gst-base.info, Node: ExceptionSet, Next: False, Prev: Exception, Up: Base classes -1.68 ExceptionSet -================= +ExceptionSet +============ Defined in namespace Smalltalk Superclass: TrappableEvent @@ -8279,8 +8274,8 @@  File: gst-base.info, Node: ExceptionSet class-instance creation, Next: ExceptionSet-enumerating, Up: ExceptionSet -1.68.1 ExceptionSet class: instance creation --------------------------------------------- +ExceptionSet class: instance creation +------------------------------------- new Private - Answer a new, empty ExceptionSet @@ -8289,8 +8284,8 @@  File: gst-base.info, Node: ExceptionSet-enumerating, Prev: ExceptionSet class-instance creation, Up: ExceptionSet -1.68.2 ExceptionSet: enumerating --------------------------------- +ExceptionSet: enumerating +------------------------- allExceptionsDo: aBlock Private - Evaluate aBlock for every exception in the receiver. @@ -8308,8 +8303,8 @@  File: gst-base.info, Node: False, Next: File, Prev: ExceptionSet, Up: Base classes -1.69 False -========== +False +===== Defined in namespace Smalltalk Superclass: Boolean @@ -8326,8 +8321,8 @@  File: gst-base.info, Node: False-basic, Next: False-C hacks, Up: False -1.69.1 False: basic -------------------- +False: basic +------------ & aBoolean We are false - anded with anything, we always answer false @@ -8370,8 +8365,8 @@  File: gst-base.info, Node: False-C hacks, Next: False-printing, Prev: False-basic, Up: False -1.69.2 False: C hacks ---------------------- +False: C hacks +-------------- asCBooleanValue Answer `0'. @@ -8380,8 +8375,8 @@  File: gst-base.info, Node: False-printing, Prev: False-C hacks, Up: False -1.69.3 False: printing ----------------------- +False: printing +--------------- printOn: aStream Print a representation of the receiver on aStream @@ -8390,8 +8385,8 @@  File: gst-base.info, Node: File, Next: FileDescriptor, Prev: False, Up: Base classes -1.70 File -========= +File +==== Defined in namespace Smalltalk Superclass: Object @@ -8417,8 +8412,8 @@  File: gst-base.info, Node: File class-C functions, Next: File class-file name management, Up: File -1.70.1 File class: C functions ------------------------------- +File class: C functions +----------------------- errno C call-out to errno. Do not modify! @@ -8430,8 +8425,8 @@  File: gst-base.info, Node: File class-file name management, Next: File class-file operations, Prev: File class-C functions, Up: File -1.70.2 File class: file name management ---------------------------------------- +File class: file name management +-------------------------------- extensionFor: aString Answer the extension of a file named `aString'. Note: the @@ -8463,8 +8458,8 @@  File: gst-base.info, Node: File class-file operations, Next: File class-instance creation, Prev: File class-file name management, Up: File -1.70.3 File class: file operations ----------------------------------- +File class: file operations +--------------------------- checkError Return whether an error had been reported or not. If there had @@ -8484,8 +8479,8 @@  File: gst-base.info, Node: File class-instance creation, Next: File class-reading system defaults, Prev: File class-file operations, Up: File -1.70.4 File class: instance creation ------------------------------------- +File class: instance creation +----------------------------- name: aName Answer a new file with the given path. The path is not validated @@ -8499,8 +8494,8 @@  File: gst-base.info, Node: File class-reading system defaults, Next: File class-testing, Prev: File class-instance creation, Up: File -1.70.5 File class: reading system defaults ------------------------------------------- +File class: reading system defaults +----------------------------------- image Answer the full path to the image being used. @@ -8509,8 +8504,8 @@  File: gst-base.info, Node: File class-testing, Next: File-accessing, Prev: File class-reading system defaults, Up: File -1.70.6 File class: testing --------------------------- +File class: testing +------------------- exists: fileName Answer whether a file with the given name exists @@ -8533,8 +8528,8 @@  File: gst-base.info, Node: File-accessing, Next: File-file name management, Prev: File class-testing, Up: File -1.70.7 File: accessing ----------------------- +File: accessing +--------------- creationTime Answer the creation time of the file identified by the receiver. @@ -8568,8 +8563,8 @@  File: gst-base.info, Node: File-file name management, Next: File-file operations, Prev: File-accessing, Up: File -1.70.8 File: file name management ---------------------------------- +File: file name management +-------------------------- extension Answer the extension of the receiver @@ -8596,8 +8591,8 @@  File: gst-base.info, Node: File-file operations, Next: File-testing, Prev: File-file name management, Up: File -1.70.9 File: file operations ----------------------------- +File: file operations +--------------------- contents Open a read-only FileStream on the receiver, read its contents, @@ -8631,8 +8626,8 @@  File: gst-base.info, Node: File-testing, Prev: File-file operations, Up: File -1.70.10 File: testing ---------------------- +File: testing +------------- exists Answer whether a file with the name contained in the receiver does @@ -8666,8 +8661,8 @@  File: gst-base.info, Node: FileDescriptor, Next: FileSegment, Prev: File, Up: Base classes -1.71 FileDescriptor -=================== +FileDescriptor +============== Defined in namespace Smalltalk Superclass: ByteStream @@ -8697,8 +8692,8 @@  File: gst-base.info, Node: FileDescriptor class-initialization, Next: FileDescriptor class-instance creation, Up: FileDescriptor -1.71.1 FileDescriptor class: initialization -------------------------------------------- +FileDescriptor class: initialization +------------------------------------ initialize Initialize the receiver's class variables @@ -8710,8 +8705,8 @@  File: gst-base.info, Node: FileDescriptor class-instance creation, Next: FileDescriptor-accessing, Prev: FileDescriptor class-initialization, Up: FileDescriptor -1.71.2 FileDescriptor class: instance creation ----------------------------------------------- +FileDescriptor class: instance creation +--------------------------------------- append Open for writing. The file is created if it does not exist. The @@ -8830,8 +8825,8 @@  File: gst-base.info, Node: FileDescriptor-accessing, Next: FileDescriptor-basic, Prev: FileDescriptor class-instance creation, Up: FileDescriptor -1.71.3 FileDescriptor: accessing --------------------------------- +FileDescriptor: accessing +------------------------- canRead Answer whether the file is open and we can read from it @@ -8872,8 +8867,8 @@  File: gst-base.info, Node: FileDescriptor-basic, Next: FileDescriptor-built ins, Prev: FileDescriptor-accessing, Up: FileDescriptor -1.71.4 FileDescriptor: basic ----------------------------- +FileDescriptor: basic +--------------------- close Close the file @@ -8929,8 +8924,8 @@  File: gst-base.info, Node: FileDescriptor-built ins, Next: FileDescriptor-class type methods, Prev: FileDescriptor-basic, Up: FileDescriptor -1.71.5 FileDescriptor: built ins --------------------------------- +FileDescriptor: built ins +------------------------- fileOp: ioFuncIndex Private - Used to limit the number of primitives used by @@ -8968,8 +8963,8 @@  File: gst-base.info, Node: FileDescriptor-class type methods, Next: FileDescriptor-initialize-release, Prev: FileDescriptor-built ins, Up: FileDescriptor -1.71.6 FileDescriptor: class type methods ------------------------------------------ +FileDescriptor: class type methods +---------------------------------- isBinary We answer characters, so answer false @@ -8984,8 +8979,8 @@  File: gst-base.info, Node: FileDescriptor-initialize-release, Next: FileDescriptor-low-level access, Prev: FileDescriptor-class type methods, Up: FileDescriptor -1.71.7 FileDescriptor: initialize-release ------------------------------------------ +FileDescriptor: initialize-release +---------------------------------- initialize Initialize the receiver's instance variables @@ -9001,8 +8996,8 @@  File: gst-base.info, Node: FileDescriptor-low-level access, Next: FileDescriptor-overriding inherited methods, Prev: FileDescriptor-initialize-release, Up: FileDescriptor -1.71.8 FileDescriptor: low-level access ---------------------------------------- +FileDescriptor: low-level access +-------------------------------- read: byteArray Ignoring any buffering, try to fill byteArray with the contents of @@ -9033,8 +9028,8 @@  File: gst-base.info, Node: FileDescriptor-overriding inherited methods, Next: FileDescriptor-printing, Prev: FileDescriptor-low-level access, Up: FileDescriptor -1.71.9 FileDescriptor: overriding inherited methods ---------------------------------------------------- +FileDescriptor: overriding inherited methods +-------------------------------------------- isEmpty Answer whether the receiver is empty @@ -9062,8 +9057,8 @@  File: gst-base.info, Node: FileDescriptor-printing, Next: FileDescriptor-testing, Prev: FileDescriptor-overriding inherited methods, Up: FileDescriptor -1.71.10 FileDescriptor: printing --------------------------------- +FileDescriptor: printing +------------------------ printOn: aStream Print a representation of the receiver on aStream @@ -9072,8 +9067,8 @@  File: gst-base.info, Node: FileDescriptor-testing, Prev: FileDescriptor-printing, Up: FileDescriptor -1.71.11 FileDescriptor: testing -------------------------------- +FileDescriptor: testing +----------------------- atEnd Answer whether data has come to an end @@ -9082,8 +9077,8 @@  File: gst-base.info, Node: FileSegment, Next: FileStream, Prev: FileDescriptor, Up: Base classes -1.72 FileSegment -================ +FileSegment +=========== Defined in namespace Smalltalk Superclass: Object @@ -9103,8 +9098,8 @@  File: gst-base.info, Node: FileSegment class-basic, Next: FileSegment class-installing, Up: FileSegment -1.72.1 FileSegment class: basic -------------------------------- +FileSegment class: basic +------------------------ on: aFile startingAt: startPos for: sizeInteger Create a new FileSegment referring to the contents of the given @@ -9114,8 +9109,8 @@  File: gst-base.info, Node: FileSegment class-installing, Next: FileSegment-basic, Prev: FileSegment class-basic, Up: FileSegment -1.72.2 FileSegment class: installing ------------------------------------- +FileSegment class: installing +----------------------------- relocateFrom: startPath to: endPath Remove startPath from all paths that start with it, and replace it @@ -9125,8 +9120,8 @@  File: gst-base.info, Node: FileSegment-basic, Next: FileSegment-equality, Prev: FileSegment class-installing, Up: FileSegment -1.72.3 FileSegment: basic -------------------------- +FileSegment: basic +------------------ asString Answer a String containing the required segment of the file @@ -9154,8 +9149,8 @@  File: gst-base.info, Node: FileSegment-equality, Prev: FileSegment-basic, Up: FileSegment -1.72.4 FileSegment: equality ----------------------------- +FileSegment: equality +--------------------- = aFileSegment Answer whether the receiver and aFileSegment are equal. @@ -9167,8 +9162,8 @@  File: gst-base.info, Node: FileStream, Next: Float, Prev: FileSegment, Up: Base classes -1.73 FileStream -=============== +FileStream +========== Defined in namespace Smalltalk Superclass: FileDescriptor @@ -9190,8 +9185,8 @@  File: gst-base.info, Node: FileStream class-file-in, Next: FileStream class-standard streams, Up: FileStream -1.73.1 FileStream class: file-in --------------------------------- +FileStream class: file-in +------------------------- fileIn: aFileName File in the aFileName file. During a file in operation, global @@ -9264,8 +9259,8 @@  File: gst-base.info, Node: FileStream class-standard streams, Next: FileStream-basic, Prev: FileStream class-file-in, Up: FileStream -1.73.2 FileStream class: standard streams ------------------------------------------ +FileStream class: standard streams +---------------------------------- stderr Answer a FileStream that is attached the Smalltalk program's @@ -9286,8 +9281,8 @@  File: gst-base.info, Node: FileStream-basic, Next: FileStream-buffering, Prev: FileStream class-standard streams, Up: FileStream -1.73.3 FileStream: basic ------------------------- +FileStream: basic +----------------- copyFrom: from to: to Answer the contents of the file between the two given positions @@ -9327,8 +9322,8 @@  File: gst-base.info, Node: FileStream-buffering, Next: FileStream-filing in, Prev: FileStream-basic, Up: FileStream -1.73.4 FileStream: buffering ----------------------------- +FileStream: buffering +--------------------- basicFlush Private - Flush the output buffer, fail if it is empty @@ -9362,8 +9357,8 @@  File: gst-base.info, Node: FileStream-filing in, Next: FileStream-overriding inherited methods, Prev: FileStream-buffering, Up: FileStream -1.73.5 FileStream: filing in ----------------------------- +FileStream: filing in +--------------------- fileIn File in the contents of the receiver. During a file in operation, @@ -9383,8 +9378,8 @@  File: gst-base.info, Node: FileStream-overriding inherited methods, Next: FileStream-testing, Prev: FileStream-filing in, Up: FileStream -1.73.6 FileStream: overriding inherited methods ------------------------------------------------ +FileStream: overriding inherited methods +---------------------------------------- next: anInteger Return the next 'anInteger' characters from the stream, as a @@ -9410,8 +9405,8 @@  File: gst-base.info, Node: FileStream-testing, Prev: FileStream-overriding inherited methods, Up: FileStream -1.73.7 FileStream: testing --------------------------- +FileStream: testing +------------------- atEnd Answer whether data has come to an end @@ -9420,8 +9415,8 @@  File: gst-base.info, Node: Float, Next: FloatD, Prev: FileStream, Up: Base classes -1.74 Float -========== +Float +===== Defined in namespace Smalltalk Superclass: Number @@ -9447,8 +9442,8 @@  File: gst-base.info, Node: Float class-byte-order dependancies, Next: Float class-characterization, Up: Float -1.74.1 Float class: byte-order dependancies -------------------------------------------- +Float class: byte-order dependancies +------------------------------------ signByte Answer the byte of the receiver that contains the exponent @@ -9457,8 +9452,8 @@  File: gst-base.info, Node: Float class-characterization, Next: Float-arithmetic, Prev: Float class-byte-order dependancies, Up: Float -1.74.2 Float class: characterization ------------------------------------- +Float class: characterization +----------------------------- denormalized Answer whether instances of the receiver can be in denormalized @@ -9495,8 +9490,8 @@  File: gst-base.info, Node: Float-arithmetic, Next: Float-basic, Prev: Float class-characterization, Up: Float -1.74.3 Float: arithmetic ------------------------- +Float: arithmetic +----------------- integerPart Return the receiver's integer part @@ -9509,8 +9504,8 @@  File: gst-base.info, Node: Float-basic, Next: Float-built ins, Prev: Float-arithmetic, Up: Float -1.74.4 Float: basic -------------------- +Float: basic +------------ hash Answer an hash value for the receiver @@ -9519,8 +9514,8 @@  File: gst-base.info, Node: Float-built ins, Next: Float-coercing, Prev: Float-basic, Up: Float -1.74.5 Float: built ins ------------------------ +Float: built ins +---------------- arcCos Answer the arc-cosine of the receiver @@ -9568,8 +9563,8 @@  File: gst-base.info, Node: Float-coercing, Next: Float-printing, Prev: Float-built ins, Up: Float -1.74.6 Float: coercing ----------------------- +Float: coercing +--------------- asExactFraction Convert the receiver into a fraction with optimal approximation, @@ -9593,8 +9588,8 @@  File: gst-base.info, Node: Float-printing, Next: Float-storing, Prev: Float-coercing, Up: Float -1.74.7 Float: printing ----------------------- +Float: printing +--------------- printOn: aStream Print a representation of the receiver on aStream @@ -9603,8 +9598,8 @@  File: gst-base.info, Node: Float-storing, Next: Float-testing, Prev: Float-printing, Up: Float -1.74.8 Float: storing ---------------------- +Float: storing +-------------- storeOn: aStream Print a representation of the receiver on aStream @@ -9613,8 +9608,8 @@  File: gst-base.info, Node: Float-testing, Next: Float-testing functionality, Prev: Float-storing, Up: Float -1.74.9 Float: testing ---------------------- +Float: testing +-------------- isFinite Answer whether the receiver does not represent infinity, nor a NaN @@ -9644,8 +9639,8 @@  File: gst-base.info, Node: Float-testing functionality, Prev: Float-testing, Up: Float -1.74.10 Float: testing functionality ------------------------------------- +Float: testing functionality +---------------------------- isFloat Answer `true'. @@ -9654,8 +9649,8 @@  File: gst-base.info, Node: FloatD, Next: FloatE, Prev: Float, Up: Base classes -1.75 FloatD -=========== +FloatD +====== Defined in namespace Smalltalk Superclass: Float @@ -9676,8 +9671,8 @@  File: gst-base.info, Node: FloatD class-byte-order dependancies, Next: FloatD class-characterization, Up: FloatD -1.75.1 FloatD class: byte-order dependancies --------------------------------------------- +FloatD class: byte-order dependancies +------------------------------------- signByte Answer the byte of the receiver that contains the exponent @@ -9686,8 +9681,8 @@  File: gst-base.info, Node: FloatD class-characterization, Next: FloatD class-converting, Prev: FloatD class-byte-order dependancies, Up: FloatD -1.75.2 FloatD class: characterization -------------------------------------- +FloatD class: characterization +------------------------------ decimalDigits Return the number of decimal digits of precision for a FloatD. @@ -9726,8 +9721,8 @@  File: gst-base.info, Node: FloatD class-converting, Next: FloatD-built ins, Prev: FloatD class-characterization, Up: FloatD -1.75.3 FloatD class: converting -------------------------------- +FloatD class: converting +------------------------ coerce: aNumber Answer aNumber converted to a FloatD @@ -9736,8 +9731,8 @@  File: gst-base.info, Node: FloatD-built ins, Next: FloatD-coercing, Prev: FloatD class-converting, Up: FloatD -1.75.4 FloatD: built ins ------------------------- +FloatD: built ins +----------------- * arg Multiply the receiver and arg and answer another Number @@ -9792,8 +9787,8 @@  File: gst-base.info, Node: FloatD-coercing, Prev: FloatD-built ins, Up: FloatD -1.75.5 FloatD: coercing ------------------------ +FloatD: coercing +---------------- asFloatD Just defined for completeness. Return the receiver. @@ -9814,8 +9809,8 @@  File: gst-base.info, Node: FloatE, Next: FloatQ, Prev: FloatD, Up: Base classes -1.76 FloatE -=========== +FloatE +====== Defined in namespace Smalltalk Superclass: Float @@ -9836,8 +9831,8 @@  File: gst-base.info, Node: FloatE class-byte-order dependancies, Next: FloatE class-characterization, Up: FloatE -1.76.1 FloatE class: byte-order dependancies --------------------------------------------- +FloatE class: byte-order dependancies +------------------------------------- signByte Answer the byte of the receiver that contains the exponent @@ -9846,8 +9841,8 @@  File: gst-base.info, Node: FloatE class-characterization, Next: FloatE class-converting, Prev: FloatE class-byte-order dependancies, Up: FloatE -1.76.2 FloatE class: characterization -------------------------------------- +FloatE class: characterization +------------------------------ decimalDigits Return the number of decimal digits of precision for a FloatE. @@ -9898,8 +9893,8 @@  File: gst-base.info, Node: FloatE class-converting, Next: FloatE-built ins, Prev: FloatE class-characterization, Up: FloatE -1.76.3 FloatE class: converting -------------------------------- +FloatE class: converting +------------------------ coerce: aNumber Answer aNumber converted to a FloatE @@ -9908,8 +9903,8 @@  File: gst-base.info, Node: FloatE-built ins, Next: FloatE-coercing, Prev: FloatE class-converting, Up: FloatE -1.76.4 FloatE: built ins ------------------------- +FloatE: built ins +----------------- * arg Multiply the receiver and arg and answer another Number @@ -9964,8 +9959,8 @@  File: gst-base.info, Node: FloatE-coercing, Prev: FloatE-built ins, Up: FloatE -1.76.5 FloatE: coercing ------------------------ +FloatE: coercing +---------------- asFloatE Just defined for completeness. Return the receiver. @@ -9986,8 +9981,8 @@  File: gst-base.info, Node: FloatQ, Next: Fraction, Prev: FloatE, Up: Base classes -1.77 FloatQ -=========== +FloatQ +====== Defined in namespace Smalltalk Superclass: Float @@ -10008,10 +10003,272 @@  File: gst-base.info, Node: FloatQ class-byte-order dependancies, Next: FloatQ class-characterization, Up: FloatQ -1.77.1 FloatQ class: byte-order dependancies --------------------------------------------- +FloatQ class: byte-order dependancies +------------------------------------- signByte Answer the byte of the receiver that contains the exponent + +File: gst-base.info, Node: FloatQ class-characterization, Next: FloatQ class-converting, Prev: FloatQ class-byte-order dependancies, Up: FloatQ + +FloatQ class: characterization +------------------------------ + +decimalDigits + Return the number of decimal digits of precision for a FloatQ. + Technically, if P is the precision for the representation, then + the decimal precision Q is the maximum number of decimal digits + such that any floating point number with Q base 10 digits can be + rounded to a floating point number with P base 2 digits and back + again, without change to the Q decimal digits. + +e + Returns the value of e. Hope is that it is precise enough + +emax + Return the maximum allowable exponent for a FloatQ that is finite. + +emin + Return the maximum allowable exponent for a FloatQ that is finite. + +fmax + Return the largest normalized FloatQ that is not infinite. + +fminNormalized + Return the smallest normalized FloatQ that is > 0 + +infinity + Return a FloatQ that represents positive infinity. + +ln10 + Returns the value of ln 10. Hope is that it is precise enough + +log10Base2 + Returns the value of log2 10. Hope is that it is precise enough + +nan + Return a FloatQ that represents a mathematically indeterminate + value (e.g. Inf - Inf, Inf / Inf). + +negativeInfinity + Return a FloatQ that represents negative infinity. + +pi + Returns the value of pi. Hope is that it is precise enough + +precision + Answer the number of bits in the mantissa. 1 + (2^-precision) = 1 + + + +File: gst-base.info, Node: FloatQ class-converting, Next: FloatQ-built ins, Prev: FloatQ class-characterization, Up: FloatQ + +FloatQ class: converting +------------------------ + +coerce: aNumber + Answer aNumber converted to a FloatQ + + + +File: gst-base.info, Node: FloatQ-built ins, Next: FloatQ-coercing, Prev: FloatQ class-converting, Up: FloatQ + +FloatQ: 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 FloatQ + +< 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 greater than arg + +>= arg + Answer whether the receiver is greater than or equal to arg + +asFloatD + Answer the receiver converted to a FloatD + +asFloatE + Answer the receiver converted to a FloatE + +exponent + Answer the exponent of the receiver in mantissa*2^exponent + representation ( |mantissa|<=1 ) + +fractionPart + Answer the fractional part of the receiver + +timesTwoPower: arg + Answer the receiver multiplied by 2^arg + +truncated + Truncate the receiver towards zero and answer the result + +~= arg + Answer whether the receiver is not equal to arg + + + +File: gst-base.info, Node: FloatQ-coercing, Prev: FloatQ-built ins, Up: FloatQ + +FloatQ: coercing +---------------- + +asFloatQ + Just defined for completeness. Return the receiver. + +coerce: aNumber + Coerce aNumber to the receiver's class + +generality + Answer 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: Fraction, Next: Halt, Prev: FloatQ, Up: Base classes + +Fraction +======== + +Defined in namespace Smalltalk +Superclass: Number +Category: Language-Data types + I represent rational numbers in the form (p/q) where p and q are + integers. The arithmetic operations *, +, -, /, on fractions, + all return a reduced fraction. + +* Menu: + +* Fraction class-converting:: (class) +* Fraction class-instance creation:: (class) +* Fraction-accessing:: (instance) +* Fraction-arithmetic:: (instance) +* Fraction-coercing:: (instance) +* Fraction-comparing:: (instance) +* Fraction-converting:: (instance) +* Fraction-optimized cases:: (instance) +* Fraction-printing:: (instance) +* Fraction-testing:: (instance) + + +File: gst-base.info, Node: Fraction class-converting, Next: Fraction class-instance creation, Up: Fraction + +Fraction class: converting +-------------------------- + +coerce: aNumber + Answer aNumber converted to a Fraction + + + +File: gst-base.info, Node: Fraction class-instance creation, Next: Fraction-accessing, Prev: Fraction class-converting, Up: Fraction + +Fraction class: instance creation +--------------------------------- + +initialize + Initialize the receiver's class variables + +numerator: nInteger denominator: dInteger + Answer a new instance of fraction (nInteger/dInteger) + + + +File: gst-base.info, Node: Fraction-accessing, Next: Fraction-arithmetic, Prev: Fraction class-instance creation, Up: Fraction + +Fraction: accessing +------------------- + +denominator + Answer the receiver's denominator + +numerator + Answer the receiver's numerator + + + +File: gst-base.info, Node: Fraction-arithmetic, Next: Fraction-coercing, Prev: Fraction-accessing, Up: Fraction + +Fraction: arithmetic +-------------------- + +* aNumber + Multiply two numbers and answer the result. + ++ aNumber + Sum two numbers and answer the result. + +- aNumber + Subtract aNumber from the receiver and answer the result. + +/ aNumber + Divide the receiver by aNumber and answer the result. + +// aNumber + Return the integer quotient of dividing the receiver by aNumber + with truncation towards negative infinity. + +\\ aNumber + Return the remainder from dividing the receiver by aNumber, (using + //). + +estimatedLog + Answer an estimate of (self abs floorLog: 10) + + + +File: gst-base.info, Node: Fraction-coercing, Next: Fraction-comparing, Prev: Fraction-arithmetic, Up: Fraction + +Fraction: coercing +------------------ + +ceiling + Truncate the receiver towards positive infinity and return the + truncated result + +coerce: aNumber + Coerce aNumber to the receiver's class + +floor + Truncate the receiver towards negative infinity and return the + truncated result + +generality + Return the receiver's generality + +truncated + Truncate the receiver and return the truncated result + +unity + Coerce 1 to the receiver's class + +zero + Coerce 0 to the receiver's class + + diff -rNu smalltalk-2.1.9/doc/gst-base.info-2 smalltalk-2.1.10/doc/gst-base.info-2 --- smalltalk-2.1.9/doc/gst-base.info-2 2004-10-02 15:32:58.000000000 +0200 +++ smalltalk-2.1.10/doc/gst-base.info-2 2005-02-02 15:37:50.000000000 +0100 @@ -1,13 +1,13 @@ -This is gst-base.info, produced by makeinfo version 4.7 from -/home/utente/devel-gst-stable/doc/gst-base-fixed.texi. +This is gst-base.info, produced by makeinfo version 4.6 from +/Users/bonzinip/devel/gst-stable/+build/doc/../../doc/gst-base-fixed.texi. INFO-DIR-SECTION GNU Smalltalk START-INFO-DIR-ENTRY * Base classes: (gst-base). The GNU Smalltalk base classes. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 31 March 2004. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 2 February 2005. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -23,274 +23,11 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. - - -File: gst-base.info, Node: FloatQ class-characterization, Next: FloatQ class-converting, Prev: FloatQ class-byte-order dependancies, Up: FloatQ - -1.77.2 FloatQ class: characterization -------------------------------------- - -decimalDigits - Return the number of decimal digits of precision for a FloatQ. - Technically, if P is the precision for the representation, then - the decimal precision Q is the maximum number of decimal digits - such that any floating point number with Q base 10 digits can be - rounded to a floating point number with P base 2 digits and back - again, without change to the Q decimal digits. - -e - Returns the value of e. Hope is that it is precise enough - -emax - Return the maximum allowable exponent for a FloatQ that is finite. - -emin - Return the maximum allowable exponent for a FloatQ that is finite. - -fmax - Return the largest normalized FloatQ that is not infinite. - -fminNormalized - Return the smallest normalized FloatQ that is > 0 - -infinity - Return a FloatQ that represents positive infinity. - -ln10 - Returns the value of ln 10. Hope is that it is precise enough - -log10Base2 - Returns the value of log2 10. Hope is that it is precise enough - -nan - Return a FloatQ that represents a mathematically indeterminate - value (e.g. Inf - Inf, Inf / Inf). - -negativeInfinity - Return a FloatQ that represents negative infinity. - -pi - Returns the value of pi. Hope is that it is precise enough - -precision - Answer the number of bits in the mantissa. 1 + (2^-precision) = 1 - - - -File: gst-base.info, Node: FloatQ class-converting, Next: FloatQ-built ins, Prev: FloatQ class-characterization, Up: FloatQ - -1.77.3 FloatQ class: converting -------------------------------- - -coerce: aNumber - Answer aNumber converted to a FloatQ - - - -File: gst-base.info, Node: FloatQ-built ins, Next: FloatQ-coercing, Prev: FloatQ class-converting, Up: FloatQ - -1.77.4 FloatQ: 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 FloatQ - -< 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 greater than arg - ->= arg - Answer whether the receiver is greater than or equal to arg - -asFloatD - Answer the receiver converted to a FloatD - -asFloatE - Answer the receiver converted to a FloatE - -exponent - Answer the exponent of the receiver in mantissa*2^exponent - representation ( |mantissa|<=1 ) - -fractionPart - Answer the fractional part of the receiver - -timesTwoPower: arg - Answer the receiver multiplied by 2^arg - -truncated - Truncate the receiver towards zero and answer the result - -~= arg - Answer whether the receiver is not equal to arg - - - -File: gst-base.info, Node: FloatQ-coercing, Prev: FloatQ-built ins, Up: FloatQ - -1.77.5 FloatQ: coercing ------------------------ - -asFloatQ - Just defined for completeness. Return the receiver. - -coerce: aNumber - Coerce aNumber to the receiver's class - -generality - Answer 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: Fraction, Next: Halt, Prev: FloatQ, Up: Base classes - -1.78 Fraction -============= - -Defined in namespace Smalltalk -Superclass: Number -Category: Language-Data types - I represent rational numbers in the form (p/q) where p and q are - integers. The arithmetic operations *, +, -, /, on fractions, - all return a reduced fraction. - -* Menu: - -* Fraction class-converting:: (class) -* Fraction class-instance creation:: (class) -* Fraction-accessing:: (instance) -* Fraction-arithmetic:: (instance) -* Fraction-coercing:: (instance) -* Fraction-comparing:: (instance) -* Fraction-converting:: (instance) -* Fraction-optimized cases:: (instance) -* Fraction-printing:: (instance) -* Fraction-testing:: (instance) - - -File: gst-base.info, Node: Fraction class-converting, Next: Fraction class-instance creation, Up: Fraction - -1.78.1 Fraction class: converting ---------------------------------- - -coerce: aNumber - Answer aNumber converted to a Fraction - - - -File: gst-base.info, Node: Fraction class-instance creation, Next: Fraction-accessing, Prev: Fraction class-converting, Up: Fraction - -1.78.2 Fraction class: instance creation ----------------------------------------- - -initialize - Initialize the receiver's class variables - -numerator: nInteger denominator: dInteger - Answer a new instance of fraction (nInteger/dInteger) - - - -File: gst-base.info, Node: Fraction-accessing, Next: Fraction-arithmetic, Prev: Fraction class-instance creation, Up: Fraction - -1.78.3 Fraction: accessing --------------------------- - -denominator - Answer the receiver's denominator - -numerator - Answer the receiver's numerator - - - -File: gst-base.info, Node: Fraction-arithmetic, Next: Fraction-coercing, Prev: Fraction-accessing, Up: Fraction - -1.78.4 Fraction: arithmetic ---------------------------- - -* aNumber - Multiply two numbers and answer the result. - -+ aNumber - Sum two numbers and answer the result. - -- aNumber - Subtract aNumber from the receiver and answer the result. - -/ aNumber - Divide the receiver by aNumber and answer the result. - -// aNumber - Return the integer quotient of dividing the receiver by aNumber - with truncation towards negative infinity. - -\\ aNumber - Return the remainder from dividing the receiver by aNumber, (using - //). - -estimatedLog - Answer an estimate of (self abs floorLog: 10) - - - -File: gst-base.info, Node: Fraction-coercing, Next: Fraction-comparing, Prev: Fraction-arithmetic, Up: Fraction - -1.78.5 Fraction: coercing -------------------------- - -ceiling - Truncate the receiver towards positive infinity and return the - truncated result - -coerce: aNumber - Coerce aNumber to the receiver's class - -floor - Truncate the receiver towards negative infinity and return the - truncated result - -generality - Return the receiver's generality - -truncated - Truncate the receiver and return the truncated result - -unity - Coerce 1 to the receiver's class - -zero - Coerce 0 to the receiver's class - -  File: gst-base.info, Node: Fraction-comparing, Next: Fraction-converting, Prev: Fraction-coercing, Up: Fraction -1.78.6 Fraction: comparing --------------------------- +Fraction: comparing +------------------- < arg Test if the receiver is less than arg. @@ -314,8 +51,8 @@  File: gst-base.info, Node: Fraction-converting, Next: Fraction-optimized cases, Prev: Fraction-comparing, Up: Fraction -1.78.7 Fraction: converting ---------------------------- +Fraction: converting +-------------------- asFloatD Answer the receiver converted to a FloatD @@ -336,8 +73,8 @@  File: gst-base.info, Node: Fraction-optimized cases, Next: Fraction-printing, Prev: Fraction-converting, Up: Fraction -1.78.8 Fraction: optimized cases --------------------------------- +Fraction: optimized cases +------------------------- negated Return the receiver, with its sign changed. @@ -355,8 +92,8 @@  File: gst-base.info, Node: Fraction-printing, Next: Fraction-testing, Prev: Fraction-optimized cases, Up: Fraction -1.78.9 Fraction: printing -------------------------- +Fraction: printing +------------------ printOn: aStream Print a representation of the receiver on aStream @@ -368,8 +105,8 @@  File: gst-base.info, Node: Fraction-testing, Prev: Fraction-printing, Up: Fraction -1.78.10 Fraction: testing -------------------------- +Fraction: testing +----------------- isRational Answer whether the receiver is rational - true @@ -378,8 +115,8 @@  File: gst-base.info, Node: Halt, Next: HashedCollection, Prev: Fraction, Up: Base classes -1.79 Halt -========= +Halt +==== Defined in namespace Smalltalk Superclass: Error @@ -393,8 +130,8 @@  File: gst-base.info, Node: Halt-description, Up: Halt -1.79.1 Halt: description ------------------------- +Halt: description +----------------- description Answer a textual description of the exception. @@ -406,8 +143,8 @@  File: gst-base.info, Node: HashedCollection, Next: HomedAssociation, Prev: Halt, Up: Base classes -1.80 HashedCollection -===================== +HashedCollection +================ Defined in namespace Smalltalk Superclass: Collection @@ -431,8 +168,8 @@  File: gst-base.info, Node: HashedCollection class-instance creation, Next: HashedCollection-accessing, Up: HashedCollection -1.80.1 HashedCollection class: instance creation ------------------------------------------------- +HashedCollection class: instance creation +----------------------------------------- new Answer a new instance of the receiver with a default size @@ -444,8 +181,8 @@  File: gst-base.info, Node: HashedCollection-accessing, Next: HashedCollection-builtins, Prev: HashedCollection class-instance creation, Up: HashedCollection -1.80.2 HashedCollection: accessing ----------------------------------- +HashedCollection: accessing +--------------------------- add: newObject Add newObject to the set, if and only if the set doesn't already @@ -462,8 +199,8 @@  File: gst-base.info, Node: HashedCollection-builtins, Next: HashedCollection-copying, Prev: HashedCollection-accessing, Up: HashedCollection -1.80.3 HashedCollection: builtins ---------------------------------- +HashedCollection: builtins +-------------------------- primAt: anIndex Private - Answer the anIndex-th item of the hash table for the @@ -484,8 +221,8 @@  File: gst-base.info, Node: HashedCollection-copying, Next: HashedCollection-enumerating the elements of a collection, Prev: HashedCollection-builtins, Up: HashedCollection -1.80.4 HashedCollection: copying --------------------------------- +HashedCollection: copying +------------------------- deepCopy Returns a deep copy of the receiver (the instance variables are @@ -499,8 +236,8 @@  File: gst-base.info, Node: HashedCollection-enumerating the elements of a collection, Next: HashedCollection-rehashing, Prev: HashedCollection-copying, Up: HashedCollection -1.80.5 HashedCollection: enumerating the elements of a collection ------------------------------------------------------------------ +HashedCollection: enumerating the elements of a collection +---------------------------------------------------------- do: aBlock Enumerate all the non-nil members of the set @@ -509,8 +246,8 @@  File: gst-base.info, Node: HashedCollection-rehashing, Next: HashedCollection-removing, Prev: HashedCollection-enumerating the elements of a collection, Up: HashedCollection -1.80.6 HashedCollection: rehashing ----------------------------------- +HashedCollection: rehashing +--------------------------- rehash Rehash the receiver @@ -519,8 +256,8 @@  File: gst-base.info, Node: HashedCollection-removing, Next: HashedCollection-saving and loading, Prev: HashedCollection-rehashing, Up: HashedCollection -1.80.7 HashedCollection: removing ---------------------------------- +HashedCollection: removing +-------------------------- remove: oldObject ifAbsent: anExceptionBlock Remove oldObject to the set. If it is found, answer oldObject. @@ -530,8 +267,8 @@  File: gst-base.info, Node: HashedCollection-saving and loading, Next: HashedCollection-storing, Prev: HashedCollection-removing, Up: HashedCollection -1.80.8 HashedCollection: saving and loading -------------------------------------------- +HashedCollection: saving and loading +------------------------------------ postLoad Called after loading an object; rehash the collection because @@ -545,8 +282,8 @@  File: gst-base.info, Node: HashedCollection-storing, Next: HashedCollection-testing collections, Prev: HashedCollection-saving and loading, Up: HashedCollection -1.80.9 HashedCollection: storing --------------------------------- +HashedCollection: storing +------------------------- storeOn: aStream Store on aStream some Smalltalk code which compiles to the receiver @@ -555,8 +292,8 @@  File: gst-base.info, Node: HashedCollection-testing collections, Prev: HashedCollection-storing, Up: HashedCollection -1.80.10 HashedCollection: testing collections ---------------------------------------------- +HashedCollection: testing collections +------------------------------------- = aHashedCollection Returns true if the two sets have the same membership, false if not @@ -588,8 +325,8 @@  File: gst-base.info, Node: HomedAssociation, Next: IdentityDictionary, Prev: HashedCollection, Up: Base classes -1.81 HomedAssociation -===================== +HomedAssociation +================ Defined in namespace Smalltalk Superclass: Association @@ -607,8 +344,8 @@  File: gst-base.info, Node: HomedAssociation class-basic, Next: HomedAssociation-accessing, Up: HomedAssociation -1.81.1 HomedAssociation class: basic ------------------------------------- +HomedAssociation class: basic +----------------------------- key: aKey value: aValue environment: aNamespace Answer a new association with the given key and value @@ -617,8 +354,8 @@  File: gst-base.info, Node: HomedAssociation-accessing, Next: HomedAssociation-finalization, Prev: HomedAssociation class-basic, Up: HomedAssociation -1.81.2 HomedAssociation: accessing ----------------------------------- +HomedAssociation: accessing +--------------------------- environment Answer the namespace in which I live. @@ -630,8 +367,8 @@  File: gst-base.info, Node: HomedAssociation-finalization, Next: HomedAssociation-storing, Prev: HomedAssociation-accessing, Up: HomedAssociation -1.81.3 HomedAssociation: finalization -------------------------------------- +HomedAssociation: finalization +------------------------------ mourn This message is sent to the receiver when the object is made @@ -645,8 +382,8 @@  File: gst-base.info, Node: HomedAssociation-storing, Prev: HomedAssociation-finalization, Up: HomedAssociation -1.81.4 HomedAssociation: storing --------------------------------- +HomedAssociation: storing +------------------------- storeOn: aStream Put on aStream some Smalltalk code compiling to the receiver @@ -655,8 +392,8 @@  File: gst-base.info, Node: IdentityDictionary, Next: IdentitySet, Prev: HomedAssociation, Up: Base classes -1.82 IdentityDictionary -======================= +IdentityDictionary +================== Defined in namespace Smalltalk Superclass: LookupTable @@ -669,8 +406,8 @@  File: gst-base.info, Node: IdentitySet, Next: Integer, Prev: IdentityDictionary, Up: Base classes -1.83 IdentitySet -================ +IdentitySet +=========== Defined in namespace Smalltalk Superclass: Set @@ -685,8 +422,8 @@  File: gst-base.info, Node: IdentitySet-testing, Up: IdentitySet -1.83.1 IdentitySet: testing ---------------------------- +IdentitySet: testing +-------------------- identityIncludes: anObject Answer whether we include the anObject object; for IdentitySets @@ -696,8 +433,8 @@  File: gst-base.info, Node: Integer, Next: Interval, Prev: IdentitySet, Up: Base classes -1.84 Integer -============ +Integer +======= Defined in namespace Smalltalk Superclass: Number @@ -724,8 +461,8 @@  File: gst-base.info, Node: Integer class-converting, Next: Integer-accessing, Up: Integer -1.84.1 Integer class: converting --------------------------------- +Integer class: converting +------------------------- coerce: aNumber Answer aNumber converted to a kind of Integer @@ -734,8 +471,8 @@  File: gst-base.info, Node: Integer-accessing, Next: Integer-basic, Prev: Integer class-converting, Up: Integer -1.84.2 Integer: accessing -------------------------- +Integer: accessing +------------------ denominator Answer `1'. @@ -747,8 +484,8 @@  File: gst-base.info, Node: Integer-basic, Next: Integer-bit operators, Prev: Integer-accessing, Up: Integer -1.84.3 Integer: basic ---------------------- +Integer: basic +-------------- hash Answer an hash value for the receiver @@ -757,8 +494,8 @@  File: gst-base.info, Node: Integer-bit operators, Next: Integer-converting, Prev: Integer-basic, Up: Integer -1.84.4 Integer: bit operators ------------------------------ +Integer: bit operators +---------------------- allMask: anInteger True if all 1 bits in anInteger are 1 in the receiver @@ -801,8 +538,8 @@  File: gst-base.info, Node: Integer-converting, Next: Integer-extension, Prev: Integer-bit operators, Up: Integer -1.84.5 Integer: converting --------------------------- +Integer: converting +------------------- asCharacter Return self as an ascii character @@ -833,8 +570,8 @@  File: gst-base.info, Node: Integer-extension, Next: Integer-iterators, Prev: Integer-converting, Up: Integer -1.84.6 Integer: extension -------------------------- +Integer: extension +------------------ alignTo: anInteger Answer the receiver, truncated to the first higher or equal @@ -844,8 +581,8 @@  File: gst-base.info, Node: Integer-iterators, Next: Integer-math methods, Prev: Integer-extension, Up: Integer -1.84.7 Integer: iterators -------------------------- +Integer: iterators +------------------ timesRepeat: aBlock Evaluate aBlock a number of times equal to the receiver's value. @@ -856,8 +593,8 @@  File: gst-base.info, Node: Integer-math methods, Next: Integer-printing, Prev: Integer-iterators, Up: Integer -1.84.8 Integer: math methods ----------------------------- +Integer: math methods +--------------------- binomial: anInteger Compute the number of combinations of anInteger objects among a @@ -889,8 +626,8 @@  File: gst-base.info, Node: Integer-printing, Next: Integer-storing, Prev: Integer-math methods, Up: Integer -1.84.9 Integer: printing ------------------------- +Integer: printing +----------------- displayOn: aStream Print on aStream the base 10 representation of the receiver @@ -929,8 +666,8 @@  File: gst-base.info, Node: Integer-storing, Next: Integer-testing functionality, Prev: Integer-printing, Up: Integer -1.84.10 Integer: storing ------------------------- +Integer: storing +---------------- storeOn: aStream Print on aStream the base 10 representation of the receiver @@ -942,8 +679,8 @@  File: gst-base.info, Node: Integer-testing functionality, Prev: Integer-storing, Up: Integer -1.84.11 Integer: testing functionality --------------------------------------- +Integer: testing functionality +------------------------------ isInteger Answer `true'. @@ -955,8 +692,8 @@  File: gst-base.info, Node: Interval, Next: LargeArray, Prev: Integer, Up: Base classes -1.85 Interval -============= +Interval +======== Defined in namespace Smalltalk Superclass: ArrayedCollection @@ -976,8 +713,8 @@  File: gst-base.info, Node: Interval class-instance creation, Next: Interval-basic, Up: Interval -1.85.1 Interval class: instance creation ----------------------------------------- +Interval class: instance creation +--------------------------------- from: startInteger to: stopInteger Answer an Interval going from startInteger to the stopInteger, @@ -995,8 +732,8 @@  File: gst-base.info, Node: Interval-basic, Next: Interval-printing, Prev: Interval class-instance creation, Up: Interval -1.85.2 Interval: basic ----------------------- +Interval: basic +--------------- at: index Answer the index-th element of the receiver. @@ -1024,8 +761,8 @@  File: gst-base.info, Node: Interval-printing, Next: Interval-storing, Prev: Interval-basic, Up: Interval -1.85.3 Interval: printing -------------------------- +Interval: printing +------------------ printOn: aStream Print a representation for the receiver on aStream @@ -1034,8 +771,8 @@  File: gst-base.info, Node: Interval-storing, Next: Interval-testing, Prev: Interval-printing, Up: Interval -1.85.4 Interval: storing ------------------------- +Interval: storing +----------------- storeOn: aStream Store Smalltalk code compiling to the receiver on aStream @@ -1044,8 +781,8 @@  File: gst-base.info, Node: Interval-testing, Prev: Interval-storing, Up: Interval -1.85.5 Interval: testing ------------------------- +Interval: testing +----------------- = anInterval Answer whether anInterval is the same interval as the receiver @@ -1057,8 +794,8 @@  File: gst-base.info, Node: LargeArray, Next: LargeArrayedCollection, Prev: Interval, Up: Base classes -1.86 LargeArray -=============== +LargeArray +========== Defined in namespace Smalltalk Superclass: LargeArrayedCollection @@ -1073,8 +810,8 @@  File: gst-base.info, Node: LargeArray-overridden, Up: LargeArray -1.86.1 LargeArray: overridden ------------------------------ +LargeArray: overridden +---------------------- newCollection: size Create an Array of the given size @@ -1083,8 +820,8 @@  File: gst-base.info, Node: LargeArrayedCollection, Next: LargeArraySubpart, Prev: LargeArray, Up: Base classes -1.87 LargeArrayedCollection -=========================== +LargeArrayedCollection +====================== Defined in namespace Smalltalk Superclass: ArrayedCollection @@ -1101,8 +838,8 @@  File: gst-base.info, Node: LargeArrayedCollection class-instance creation, Next: LargeArrayedCollection-accessing, Up: LargeArrayedCollection -1.87.1 LargeArrayedCollection class: instance creation ------------------------------------------------------- +LargeArrayedCollection class: instance creation +----------------------------------------------- new: anInteger Answer a new instance of the receiver, with room for anInteger @@ -1112,8 +849,8 @@  File: gst-base.info, Node: LargeArrayedCollection-accessing, Next: LargeArrayedCollection-basic, Prev: LargeArrayedCollection class-instance creation, Up: LargeArrayedCollection -1.87.2 LargeArrayedCollection: accessing ----------------------------------------- +LargeArrayedCollection: accessing +--------------------------------- at: anIndex Answer the anIndex-th item of the receiver. @@ -1128,8 +865,8 @@  File: gst-base.info, Node: LargeArrayedCollection-basic, Prev: LargeArrayedCollection-accessing, Up: LargeArrayedCollection -1.87.3 LargeArrayedCollection: basic ------------------------------------- +LargeArrayedCollection: basic +----------------------------- = aLargeArray Answer whether the receiver and aLargeArray have the same contents @@ -1144,8 +881,8 @@  File: gst-base.info, Node: LargeArraySubpart, Next: LargeByteArray, Prev: LargeArrayedCollection, Up: Base classes -1.88 LargeArraySubpart -====================== +LargeArraySubpart +================= Defined in namespace Smalltalk Superclass: Magnitude @@ -1167,8 +904,8 @@  File: gst-base.info, Node: LargeArraySubpart class-instance creation, Next: LargeArraySubpart-accessing, Up: LargeArraySubpart -1.88.1 LargeArraySubpart class: instance creation -------------------------------------------------- +LargeArraySubpart class: instance creation +------------------------------------------ first: first last: last index: index Answer a LargeArraySubpart which answers first, last, and index @@ -1178,8 +915,8 @@  File: gst-base.info, Node: LargeArraySubpart-accessing, Next: LargeArraySubpart-comparing, Prev: LargeArraySubpart class-instance creation, Up: LargeArraySubpart -1.88.2 LargeArraySubpart: accessing ------------------------------------ +LargeArraySubpart: accessing +---------------------------- first Answer the index of the first item of the LargeArrayedCollection @@ -1205,8 +942,8 @@  File: gst-base.info, Node: LargeArraySubpart-comparing, Next: LargeArraySubpart-modifying, Prev: LargeArraySubpart-accessing, Up: LargeArraySubpart -1.88.3 LargeArraySubpart: comparing ------------------------------------ +LargeArraySubpart: comparing +---------------------------- < anObject Answer whether the receiver points to a part of the array that is @@ -1233,8 +970,8 @@  File: gst-base.info, Node: LargeArraySubpart-modifying, Prev: LargeArraySubpart-comparing, Up: LargeArraySubpart -1.88.4 LargeArraySubpart: modifying ------------------------------------ +LargeArraySubpart: modifying +---------------------------- cutAt: position Answer a new LargeArraySubpart whose lastIndex is position - 1, @@ -1261,8 +998,8 @@  File: gst-base.info, Node: LargeByteArray, Next: LargeInteger, Prev: LargeArraySubpart, Up: Base classes -1.89 LargeByteArray -=================== +LargeByteArray +============== Defined in namespace Smalltalk Superclass: LargeArrayedCollection @@ -1277,8 +1014,8 @@  File: gst-base.info, Node: LargeByteArray-overridden, Up: LargeByteArray -1.89.1 LargeByteArray: overridden ---------------------------------- +LargeByteArray: overridden +-------------------------- costOfNewIndex Answer the maximum number of consecutive items set to the @@ -1294,8 +1031,8 @@  File: gst-base.info, Node: LargeInteger, Next: LargeNegativeInteger, Prev: LargeByteArray, Up: Base classes -1.90 LargeInteger -================= +LargeInteger +============ Defined in namespace Smalltalk Superclass: Integer @@ -1319,8 +1056,8 @@  File: gst-base.info, Node: LargeInteger-arithmetic, Next: LargeInteger-bit operations, Up: LargeInteger -1.90.1 LargeInteger: arithmetic -------------------------------- +LargeInteger: arithmetic +------------------------ * aNumber Multiply aNumber and the receiver, answer the result @@ -1361,8 +1098,8 @@  File: gst-base.info, Node: LargeInteger-bit operations, Next: LargeInteger-built-ins, Prev: LargeInteger-arithmetic, Up: LargeInteger -1.90.2 LargeInteger: bit operations ------------------------------------ +LargeInteger: bit operations +---------------------------- bitAnd: aNumber Answer the receiver ANDed with aNumber @@ -1386,8 +1123,8 @@  File: gst-base.info, Node: LargeInteger-built-ins, Next: LargeInteger-coercion, Prev: LargeInteger-bit operations, Up: LargeInteger -1.90.3 LargeInteger: built-ins ------------------------------- +LargeInteger: built-ins +----------------------- at: anIndex Answer the anIndex-th byte in the receiver's representation @@ -1421,8 +1158,8 @@  File: gst-base.info, Node: LargeInteger-coercion, Next: LargeInteger-disabled, Prev: LargeInteger-built-ins, Up: LargeInteger -1.90.4 LargeInteger: coercion ------------------------------ +LargeInteger: coercion +---------------------- coerce: aNumber Truncate the number; if needed, convert it to LargeInteger @@ -1441,8 +1178,8 @@  File: gst-base.info, Node: LargeInteger-disabled, Next: LargeInteger-primitive operations, Prev: LargeInteger-coercion, Up: LargeInteger -1.90.5 LargeInteger: disabled ------------------------------ +LargeInteger: disabled +---------------------- asObject This method always fails. The number of OOPs is far less than the @@ -1455,8 +1192,8 @@  File: gst-base.info, Node: LargeInteger-primitive operations, Next: LargeInteger-testing, Prev: LargeInteger-disabled, Up: LargeInteger -1.90.6 LargeInteger: primitive operations ------------------------------------------ +LargeInteger: primitive operations +---------------------------------- basicLeftShift: totalShift Private - Left shift the receiver by aNumber places @@ -1471,8 +1208,8 @@  File: gst-base.info, Node: LargeInteger-testing, Prev: LargeInteger-primitive operations, Up: LargeInteger -1.90.7 LargeInteger: testing ----------------------------- +LargeInteger: testing +--------------------- < aNumber Answer whether the receiver is smaller than aNumber @@ -1496,8 +1233,8 @@  File: gst-base.info, Node: LargeNegativeInteger, Next: LargePositiveInteger, Prev: LargeInteger, Up: Base classes -1.91 LargeNegativeInteger -========================= +LargeNegativeInteger +==================== Defined in namespace Smalltalk Superclass: LargeInteger @@ -1516,8 +1253,8 @@  File: gst-base.info, Node: LargeNegativeInteger-converting, Next: LargeNegativeInteger-numeric testing, Up: LargeNegativeInteger -1.91.1 LargeNegativeInteger: converting ---------------------------------------- +LargeNegativeInteger: converting +-------------------------------- asFloatD Answer the receiver converted to a FloatD @@ -1532,8 +1269,8 @@  File: gst-base.info, Node: LargeNegativeInteger-numeric testing, Next: LargeNegativeInteger-reverting to LargePositiveInteger, Prev: LargeNegativeInteger-converting, Up: LargeNegativeInteger -1.91.2 LargeNegativeInteger: numeric testing --------------------------------------------- +LargeNegativeInteger: numeric testing +------------------------------------- abs Answer the receiver's absolute value. @@ -1554,8 +1291,8 @@  File: gst-base.info, Node: LargeNegativeInteger-reverting to LargePositiveInteger, Prev: LargeNegativeInteger-numeric testing, Up: LargeNegativeInteger -1.91.3 LargeNegativeInteger: reverting to LargePositiveInteger --------------------------------------------------------------- +LargeNegativeInteger: reverting to LargePositiveInteger +------------------------------------------------------- + aNumber Sum the receiver and aNumber, answer the result @@ -1574,8 +1311,8 @@  File: gst-base.info, Node: LargePositiveInteger, Next: LargeWordArray, Prev: LargeNegativeInteger, Up: Base classes -1.92 LargePositiveInteger -========================= +LargePositiveInteger +==================== Defined in namespace Smalltalk Superclass: LargeInteger @@ -1597,8 +1334,8 @@  File: gst-base.info, Node: LargePositiveInteger-arithmetic, Next: LargePositiveInteger-converting, Up: LargePositiveInteger -1.92.1 LargePositiveInteger: arithmetic ---------------------------------------- +LargePositiveInteger: arithmetic +-------------------------------- + aNumber Sum the receiver and aNumber, answer the result @@ -1616,8 +1353,8 @@  File: gst-base.info, Node: LargePositiveInteger-converting, Next: LargePositiveInteger-helper byte-level methods, Prev: LargePositiveInteger-arithmetic, Up: LargePositiveInteger -1.92.2 LargePositiveInteger: converting ---------------------------------------- +LargePositiveInteger: converting +-------------------------------- asFloatD Answer the receiver converted to a FloatD @@ -1636,8 +1373,8 @@  File: gst-base.info, Node: LargePositiveInteger-helper byte-level methods, Next: LargePositiveInteger-numeric testing, Prev: LargePositiveInteger-converting, Up: LargePositiveInteger -1.92.3 LargePositiveInteger: helper byte-level methods ------------------------------------------------------- +LargePositiveInteger: helper byte-level methods +----------------------------------------------- bytes: byteArray1 from: j compare: byteArray2 Private - Answer the sign of byteArray2 - byteArray1; the j-th @@ -1681,8 +1418,8 @@  File: gst-base.info, Node: LargePositiveInteger-numeric testing, Next: LargePositiveInteger-primitive operations, Prev: LargePositiveInteger-helper byte-level methods, Up: LargePositiveInteger -1.92.4 LargePositiveInteger: numeric testing --------------------------------------------- +LargePositiveInteger: numeric testing +------------------------------------- abs Answer the receiver's absolute value @@ -1703,8 +1440,8 @@  File: gst-base.info, Node: LargePositiveInteger-primitive operations, Prev: LargePositiveInteger-numeric testing, Up: LargePositiveInteger -1.92.5 LargePositiveInteger: primitive operations -------------------------------------------------- +LargePositiveInteger: primitive operations +------------------------------------------ divide: aNumber using: aBlock Private - Divide the receiver by aNumber (unsigned division). @@ -1722,8 +1459,8 @@  File: gst-base.info, Node: LargeWordArray, Next: LargeZeroInteger, Prev: LargePositiveInteger, Up: Base classes -1.93 LargeWordArray -=================== +LargeWordArray +============== Defined in namespace Smalltalk Superclass: LargeArrayedCollection @@ -1738,8 +1475,8 @@  File: gst-base.info, Node: LargeWordArray-overridden, Up: LargeWordArray -1.93.1 LargeWordArray: overridden ---------------------------------- +LargeWordArray: overridden +-------------------------- defaultElement Answer the value which is hoped to be the most common in the array @@ -1751,8 +1488,8 @@  File: gst-base.info, Node: LargeZeroInteger, Next: Link, Prev: LargeWordArray, Up: Base classes -1.94 LargeZeroInteger -===================== +LargeZeroInteger +================ Defined in namespace Smalltalk Superclass: LargePositiveInteger @@ -1774,8 +1511,8 @@  File: gst-base.info, Node: LargeZeroInteger-accessing, Next: LargeZeroInteger-arithmetic, Up: LargeZeroInteger -1.94.1 LargeZeroInteger: accessing ----------------------------------- +LargeZeroInteger: accessing +--------------------------- at: anIndex Answer `0'. @@ -1790,8 +1527,8 @@  File: gst-base.info, Node: LargeZeroInteger-arithmetic, Next: LargeZeroInteger-numeric testing, Prev: LargeZeroInteger-accessing, Up: LargeZeroInteger -1.94.2 LargeZeroInteger: arithmetic ------------------------------------ +LargeZeroInteger: arithmetic +---------------------------- * aNumber Multiply aNumber and the receiver, answer the result @@ -1826,8 +1563,8 @@  File: gst-base.info, Node: LargeZeroInteger-numeric testing, Next: LargeZeroInteger-printing, Prev: LargeZeroInteger-arithmetic, Up: LargeZeroInteger -1.94.3 LargeZeroInteger: numeric testing ----------------------------------------- +LargeZeroInteger: numeric testing +--------------------------------- sign Answer the receiver's sign @@ -1839,8 +1576,8 @@  File: gst-base.info, Node: LargeZeroInteger-printing, Prev: LargeZeroInteger-numeric testing, Up: LargeZeroInteger -1.94.4 LargeZeroInteger: printing ---------------------------------- +LargeZeroInteger: printing +-------------------------- replace: str withStringBase: radix Return in a string the base radix representation of the receiver. @@ -1849,8 +1586,8 @@  File: gst-base.info, Node: Link, Next: LinkedList, Prev: LargeZeroInteger, Up: Base classes -1.95 Link -========= +Link +==== Defined in namespace Smalltalk Superclass: Object @@ -1869,8 +1606,8 @@  File: gst-base.info, Node: Link class-instance creation, Next: Link-basic, Up: Link -1.95.1 Link class: instance creation ------------------------------------- +Link class: instance creation +----------------------------- nextLink: aLink Create an instance with the given next link @@ -1879,8 +1616,8 @@  File: gst-base.info, Node: Link-basic, Next: Link-iteration, Prev: Link class-instance creation, Up: Link -1.95.2 Link: basic ------------------- +Link: basic +----------- nextLink Answer the next item in the list @@ -1892,8 +1629,8 @@  File: gst-base.info, Node: Link-iteration, Prev: Link-basic, Up: Link -1.95.3 Link: iteration ----------------------- +Link: iteration +--------------- at: index Retrieve a node (instance of Link) that is at a distance of `index' @@ -1912,8 +1649,8 @@  File: gst-base.info, Node: LinkedList, Next: LookupKey, Prev: Link, Up: Base classes -1.96 LinkedList -=============== +LinkedList +========== Defined in namespace Smalltalk Superclass: SequenceableCollection @@ -1933,8 +1670,8 @@  File: gst-base.info, Node: LinkedList-accessing, Next: LinkedList-adding, Up: LinkedList -1.96.1 LinkedList: accessing ----------------------------- +LinkedList: accessing +--------------------- at: index Return the element that is index into the linked list. @@ -1946,8 +1683,8 @@  File: gst-base.info, Node: LinkedList-adding, Next: LinkedList-enumerating, Prev: LinkedList-accessing, Up: LinkedList -1.96.2 LinkedList: adding -------------------------- +LinkedList: adding +------------------ add: aLink Add aLink at the end of the list; return aLink. @@ -1974,8 +1711,8 @@  File: gst-base.info, Node: LinkedList-enumerating, Next: LinkedList-testing, Prev: LinkedList-adding, Up: LinkedList -1.96.3 LinkedList: enumerating ------------------------------- +LinkedList: enumerating +----------------------- do: aBlock Enumerate each object in the list, passing it to aBlock (actual @@ -1985,8 +1722,8 @@  File: gst-base.info, Node: LinkedList-testing, Prev: LinkedList-enumerating, Up: LinkedList -1.96.4 LinkedList: testing --------------------------- +LinkedList: testing +------------------- isEmpty Returns true if the list contains no members @@ -2001,8 +1738,8 @@  File: gst-base.info, Node: LookupKey, Next: LookupTable, Prev: LinkedList, Up: Base classes -1.97 LookupKey -============== +LookupKey +========= Defined in namespace Smalltalk Superclass: Magnitude @@ -2022,8 +1759,8 @@  File: gst-base.info, Node: LookupKey class-basic, Next: LookupKey-accessing, Up: LookupKey -1.97.1 LookupKey class: basic ------------------------------ +LookupKey class: basic +---------------------- key: aKey Answer a new instance of the receiver with the given key and value @@ -2032,8 +1769,8 @@  File: gst-base.info, Node: LookupKey-accessing, Next: LookupKey-printing, Prev: LookupKey class-basic, Up: LookupKey -1.97.2 LookupKey: accessing ---------------------------- +LookupKey: accessing +-------------------- key Answer the receiver's key @@ -2045,8 +1782,8 @@  File: gst-base.info, Node: LookupKey-printing, Next: LookupKey-storing, Prev: LookupKey-accessing, Up: LookupKey -1.97.3 LookupKey: printing --------------------------- +LookupKey: printing +------------------- printOn: aStream Put on aStream a representation of the receiver @@ -2055,8 +1792,8 @@  File: gst-base.info, Node: LookupKey-storing, Next: LookupKey-testing, Prev: LookupKey-printing, Up: LookupKey -1.97.4 LookupKey: storing -------------------------- +LookupKey: storing +------------------ storeOn: aStream Put on aStream some Smalltalk code compiling to the receiver @@ -2065,8 +1802,8 @@  File: gst-base.info, Node: LookupKey-testing, Prev: LookupKey-storing, Up: LookupKey -1.97.5 LookupKey: testing -------------------------- +LookupKey: testing +------------------ < aLookupKey Answer whether the receiver's key is less than aLookupKey's @@ -2083,8 +1820,8 @@  File: gst-base.info, Node: LookupTable, Next: Magnitude, Prev: LookupKey, Up: Base classes -1.98 LookupTable -================ +LookupTable +=========== Defined in namespace Smalltalk Superclass: Dictionary @@ -2108,8 +1845,8 @@  File: gst-base.info, Node: LookupTable class-instance creation, Next: LookupTable-accessing, Up: LookupTable -1.98.1 LookupTable class: instance creation -------------------------------------------- +LookupTable class: instance creation +------------------------------------ new Create a new LookupTable with a default size @@ -2118,8 +1855,8 @@  File: gst-base.info, Node: LookupTable-accessing, Next: LookupTable-copying, Prev: LookupTable class-instance creation, Up: LookupTable -1.98.2 LookupTable: accessing ------------------------------ +LookupTable: accessing +---------------------- add: anAssociation Add the anAssociation key to the receiver @@ -2143,8 +1880,8 @@  File: gst-base.info, Node: LookupTable-copying, Next: LookupTable-enumerating, Prev: LookupTable-accessing, Up: LookupTable -1.98.3 LookupTable: copying ---------------------------- +LookupTable: copying +-------------------- deepCopy Returns a deep copy of the receiver (the instance variables are @@ -2154,8 +1891,8 @@  File: gst-base.info, Node: LookupTable-enumerating, Next: LookupTable-hashing, Prev: LookupTable-copying, Up: LookupTable -1.98.4 LookupTable: enumerating -------------------------------- +LookupTable: enumerating +------------------------ associationsDo: aBlock Pass each association in the LookupTable to aBlock @@ -2168,8 +1905,8 @@  File: gst-base.info, Node: LookupTable-hashing, Next: LookupTable-rehashing, Prev: LookupTable-enumerating, Up: LookupTable -1.98.5 LookupTable: hashing ---------------------------- +LookupTable: hashing +-------------------- hash Answer the hash value for the receiver @@ -2178,8 +1915,8 @@  File: gst-base.info, Node: LookupTable-rehashing, Next: LookupTable-removing, Prev: LookupTable-hashing, Up: LookupTable -1.98.6 LookupTable: rehashing ------------------------------ +LookupTable: rehashing +---------------------- rehash Rehash the receiver @@ -2188,8 +1925,8 @@  File: gst-base.info, Node: LookupTable-removing, Next: LookupTable-storing, Prev: LookupTable-rehashing, Up: LookupTable -1.98.7 LookupTable: removing ----------------------------- +LookupTable: removing +--------------------- remove: anAssociation Remove anAssociation's key from the dictionary @@ -2205,8 +1942,8 @@  File: gst-base.info, Node: LookupTable-storing, Prev: LookupTable-removing, Up: LookupTable -1.98.8 LookupTable: storing ---------------------------- +LookupTable: storing +-------------------- storeOn: aStream Print Smalltalk code compiling to the receiver on aStream @@ -2215,8 +1952,8 @@  File: gst-base.info, Node: Magnitude, Next: MappedCollection, Prev: LookupTable, Up: Base classes -1.99 Magnitude -============== +Magnitude +========= Defined in namespace Smalltalk Superclass: Object @@ -2233,8 +1970,8 @@  File: gst-base.info, Node: Magnitude-basic, Next: Magnitude-misc methods, Up: Magnitude -1.99.1 Magnitude: basic ------------------------ +Magnitude: basic +---------------- < aMagnitude Answer whether the receiver is less than aMagnitude @@ -2255,8 +1992,8 @@  File: gst-base.info, Node: Magnitude-misc methods, Prev: Magnitude-basic, Up: Magnitude -1.99.2 Magnitude: misc methods ------------------------------- +Magnitude: misc methods +----------------------- between: min and: max Returns true if object is inclusively between min and max. @@ -2271,8 +2008,8 @@  File: gst-base.info, Node: MappedCollection, Next: Memory, Prev: Magnitude, Up: Base classes -1.100 MappedCollection -====================== +MappedCollection +================ Defined in namespace Smalltalk Superclass: Collection @@ -2305,8 +2042,8 @@  File: gst-base.info, Node: MappedCollection class-instance creation, Next: MappedCollection-basic, Up: MappedCollection -1.100.1 MappedCollection class: instance creation -------------------------------------------------- +MappedCollection class: instance creation +----------------------------------------- collection: aCollection map: aMap Answer a new MappedCollection using the given domain (aCollection) @@ -2320,8 +2057,8 @@  File: gst-base.info, Node: MappedCollection-basic, Prev: MappedCollection class-instance creation, Up: MappedCollection -1.100.2 MappedCollection: basic -------------------------------- +MappedCollection: basic +----------------------- add: anObject This method should not be called for instances of this class. @@ -2361,8 +2098,8 @@  File: gst-base.info, Node: Memory, Next: Message, Prev: MappedCollection, Up: Base classes -1.101 Memory -============ +Memory +====== Defined in namespace Smalltalk Superclass: Object @@ -2380,8 +2117,8 @@  File: gst-base.info, Node: Memory class-accessing, Up: Memory -1.101.1 Memory class: accessing -------------------------------- +Memory class: accessing +----------------------- at: anAddress Access the Smalltalk object (OOP) at the given address. @@ -2500,8 +2237,8 @@  File: gst-base.info, Node: Message, Next: MessageNotUnderstood, Prev: Memory, Up: Base classes -1.102 Message -============= +Message +======= Defined in namespace Smalltalk Superclass: Object @@ -2521,8 +2258,8 @@  File: gst-base.info, Node: Message class-creating instances, Next: Message-accessing, Up: Message -1.102.1 Message class: creating instances ------------------------------------------ +Message class: creating instances +--------------------------------- selector: aSymbol arguments: anArray Create a new Message with the given selector and arguments @@ -2531,8 +2268,8 @@  File: gst-base.info, Node: Message-accessing, Next: Message-basic, Prev: Message class-creating instances, Up: Message -1.102.2 Message: accessing --------------------------- +Message: accessing +------------------ argument Answer the first of the receiver's arguments @@ -2553,8 +2290,8 @@  File: gst-base.info, Node: Message-basic, Prev: Message-accessing, Up: Message -1.102.3 Message: basic ----------------------- +Message: basic +-------------- printOn: aStream Print a representation of the receiver on aStream @@ -2569,8 +2306,8 @@  File: gst-base.info, Node: MessageNotUnderstood, Next: Metaclass, Prev: Message, Up: Base classes -1.103 MessageNotUnderstood -========================== +MessageNotUnderstood +==================== Defined in namespace Smalltalk Superclass: Halt @@ -2587,8 +2324,8 @@  File: gst-base.info, Node: MessageNotUnderstood-accessing, Next: MessageNotUnderstood-description, Up: MessageNotUnderstood -1.103.1 MessageNotUnderstood: accessing ---------------------------------------- +MessageNotUnderstood: accessing +------------------------------- message Answer the message that wasn't understood @@ -2600,8 +2337,8 @@  File: gst-base.info, Node: MessageNotUnderstood-description, Prev: MessageNotUnderstood-accessing, Up: MessageNotUnderstood -1.103.2 MessageNotUnderstood: description ------------------------------------------ +MessageNotUnderstood: description +--------------------------------- description Answer a textual description of the exception. @@ -2610,8 +2347,8 @@  File: gst-base.info, Node: Metaclass, Next: MethodContext, Prev: MessageNotUnderstood, Up: Base classes -1.104 Metaclass -=============== +Metaclass +========= Defined in namespace Smalltalk Superclass: ClassDescription @@ -2637,8 +2374,8 @@  File: gst-base.info, Node: Metaclass class-instance creation, Next: Metaclass-accessing, Up: Metaclass -1.104.1 Metaclass class: instance creation ------------------------------------------- +Metaclass class: instance creation +---------------------------------- subclassOf: superMeta Answer a new metaclass representing a subclass of superMeta @@ -2647,8 +2384,8 @@  File: gst-base.info, Node: Metaclass-accessing, Next: Metaclass-basic, Prev: Metaclass class-instance creation, Up: Metaclass -1.104.2 Metaclass: accessing ----------------------------- +Metaclass: accessing +-------------------- instanceClass Answer the only instance of the metaclass @@ -2665,8 +2402,8 @@  File: gst-base.info, Node: Metaclass-basic, Next: Metaclass-delegation, Prev: Metaclass-accessing, Up: Metaclass -1.104.3 Metaclass: basic ------------------------- +Metaclass: basic +---------------- instanceVariableNames: classInstVarNames Set the class-instance variables for the receiver to be those in @@ -2693,8 +2430,8 @@  File: gst-base.info, Node: Metaclass-delegation, Next: Metaclass-filing, Prev: Metaclass-basic, Up: Metaclass -1.104.4 Metaclass: delegation ------------------------------ +Metaclass: delegation +--------------------- addClassVarName: aString Add a class variable with the given name to the class pool @@ -2748,8 +2485,8 @@  File: gst-base.info, Node: Metaclass-filing, Next: Metaclass-printing, Prev: Metaclass-delegation, Up: Metaclass -1.104.5 Metaclass: filing -------------------------- +Metaclass: filing +----------------- fileOutOn: aFileStream File out complete class description: class definition, class and @@ -2759,8 +2496,8 @@  File: gst-base.info, Node: Metaclass-printing, Next: Metaclass-testing functionality, Prev: Metaclass-filing, Up: Metaclass -1.104.6 Metaclass: printing ---------------------------- +Metaclass: printing +------------------- nameIn: aNamespace Answer the class name when the class is referenced from aNamespace. @@ -2779,8 +2516,8 @@  File: gst-base.info, Node: Metaclass-testing functionality, Prev: Metaclass-printing, Up: Metaclass -1.104.7 Metaclass: testing functionality ----------------------------------------- +Metaclass: testing functionality +-------------------------------- asClass Answer `instanceClass'. @@ -2792,8 +2529,8 @@  File: gst-base.info, Node: MethodContext, Next: MethodDictionary, Prev: Metaclass, Up: Base classes -1.105 MethodContext -=================== +MethodContext +============= Defined in namespace Smalltalk Superclass: ContextPart @@ -2810,8 +2547,8 @@  File: gst-base.info, Node: MethodContext-accessing, Next: MethodContext-printing, Up: MethodContext -1.105.1 MethodContext: accessing --------------------------------- +MethodContext: accessing +------------------------ home Answer the MethodContext to which the receiver refers (i.e. the @@ -2848,8 +2585,8 @@  File: gst-base.info, Node: MethodContext-printing, Prev: MethodContext-accessing, Up: MethodContext -1.105.2 MethodContext: printing -------------------------------- +MethodContext: printing +----------------------- printOn: aStream Print a representation for the receiver on aStream @@ -2858,8 +2595,8 @@  File: gst-base.info, Node: MethodDictionary, Next: MethodInfo, Prev: MethodContext, Up: Base classes -1.106 MethodDictionary -====================== +MethodDictionary +================ Defined in namespace Smalltalk Superclass: LookupTable @@ -2877,8 +2614,8 @@  File: gst-base.info, Node: MethodDictionary-adding, Next: MethodDictionary-rehashing, Up: MethodDictionary -1.106.1 MethodDictionary: adding --------------------------------- +MethodDictionary: adding +------------------------ at: key put: value Store value as associated to the given key @@ -2887,8 +2624,8 @@  File: gst-base.info, Node: MethodDictionary-rehashing, Next: MethodDictionary-removing, Prev: MethodDictionary-adding, Up: MethodDictionary -1.106.2 MethodDictionary: rehashing ------------------------------------ +MethodDictionary: rehashing +--------------------------- rehash Rehash the receiver @@ -2897,8 +2634,8 @@  File: gst-base.info, Node: MethodDictionary-removing, Prev: MethodDictionary-rehashing, Up: MethodDictionary -1.106.3 MethodDictionary: removing ----------------------------------- +MethodDictionary: removing +-------------------------- remove: anAssociation Remove anAssociation's key from the dictionary @@ -2911,8 +2648,8 @@  File: gst-base.info, Node: MethodInfo, Next: Namespace, Prev: MethodDictionary, Up: Base classes -1.107 MethodInfo -================ +MethodInfo +========== Defined in namespace Smalltalk Superclass: Object @@ -2929,8 +2666,8 @@  File: gst-base.info, Node: MethodInfo-accessing, Next: MethodInfo-equality, Up: MethodInfo -1.107.1 MethodInfo: accessing ------------------------------ +MethodInfo: accessing +--------------------- category Answer the method category @@ -2971,8 +2708,8 @@  File: gst-base.info, Node: MethodInfo-equality, Prev: MethodInfo-accessing, Up: MethodInfo -1.107.2 MethodInfo: equality ----------------------------- +MethodInfo: equality +-------------------- = aMethodInfo Compare the receiver and aMethodInfo, answer whether they're equal @@ -2984,8 +2721,8 @@  File: gst-base.info, Node: Namespace, Next: NetClients.URIResolver, Prev: MethodInfo, Up: Base classes -1.108 Namespace -=============== +Namespace +========= Defined in namespace Smalltalk Superclass: AbstractNamespace @@ -3005,8 +2742,8 @@  File: gst-base.info, Node: Namespace class-accessing, Next: Namespace class-disabling instance creation, Up: Namespace -1.108.1 Namespace class: accessing ----------------------------------- +Namespace class: accessing +-------------------------- current Answer the current namespace @@ -3019,8 +2756,8 @@  File: gst-base.info, Node: Namespace class-disabling instance creation, Next: Namespace class-initialization, Prev: Namespace class-accessing, Up: Namespace -1.108.2 Namespace class: disabling instance creation ----------------------------------------------------- +Namespace class: disabling instance creation +-------------------------------------------- new Disabled - use #addSubspace: to create instances @@ -3032,8 +2769,8 @@  File: gst-base.info, Node: Namespace class-initialization, Next: Namespace-accessing, Prev: Namespace class-disabling instance creation, Up: Namespace -1.108.3 Namespace class: initialization ---------------------------------------- +Namespace class: initialization +------------------------------- initialize This actually is not needed, the job could be done in dict.c @@ -3044,8 +2781,8 @@  File: gst-base.info, Node: Namespace-accessing, Next: Namespace-namespace hierarchy, Prev: Namespace class-initialization, Up: Namespace -1.108.4 Namespace: accessing ----------------------------- +Namespace: accessing +-------------------- inheritedKeys Answer a Set of all the keys in the receiver and its superspaces @@ -3054,8 +2791,8 @@  File: gst-base.info, Node: Namespace-namespace hierarchy, Next: Namespace-overrides for superspaces, Prev: Namespace-accessing, Up: Namespace -1.108.5 Namespace: namespace hierarchy --------------------------------------- +Namespace: namespace hierarchy +------------------------------ siblings Answer all the other namespaces that inherit from the receiver's @@ -3070,8 +2807,8 @@  File: gst-base.info, Node: Namespace-overrides for superspaces, Next: Namespace-printing, Prev: Namespace-namespace hierarchy, Up: Namespace -1.108.6 Namespace: overrides for superspaces --------------------------------------------- +Namespace: overrides for superspaces +------------------------------------ associationAt: key ifAbsent: aBlock Return the key/value pair associated to the variable named as @@ -3121,8 +2858,8 @@  File: gst-base.info, Node: Namespace-printing, Prev: Namespace-overrides for superspaces, Up: Namespace -1.108.7 Namespace: printing ---------------------------- +Namespace: printing +------------------- nameIn: aNamespace Answer Smalltalk code compiling to the receiver when the current @@ -3139,8 +2876,8 @@  File: gst-base.info, Node: NetClients.URIResolver, Next: NetClients.URL, Prev: Namespace, Up: Base classes -1.109 NetClients.URIResolver -============================ +NetClients.URIResolver +====================== Defined in namespace Smalltalk.NetClients Superclass: Object @@ -3155,8 +2892,8 @@  File: gst-base.info, Node: NetClients.URIResolver class-api, Next: NetClients.URIResolver class-instance creation, Up: NetClients.URIResolver -1.109.1 NetClients.URIResolver class: api ------------------------------------------ +NetClients.URIResolver class: api +--------------------------------- openOn: aURI Always raise an error, as this method is not supported without @@ -3183,8 +2920,8 @@  File: gst-base.info, Node: NetClients.URIResolver class-instance creation, Prev: NetClients.URIResolver class-api, Up: NetClients.URIResolver -1.109.2 NetClients.URIResolver class: instance creation -------------------------------------------------------- +NetClients.URIResolver class: instance creation +----------------------------------------------- on: anURL Answer a new URIResolver that will do its best to fetch the data @@ -3194,8 +2931,8 @@  File: gst-base.info, Node: NetClients.URL, Next: Notification, Prev: NetClients.URIResolver, Up: Base classes -1.110 NetClients.URL -==================== +NetClients.URL +============== Defined in namespace Smalltalk.NetClients Superclass: Object @@ -3218,8 +2955,8 @@  File: gst-base.info, Node: NetClients.URL class-encoding URLs, Next: NetClients.URL class-instance creation, Up: NetClients.URL -1.110.1 NetClients.URL class: encoding URLs -------------------------------------------- +NetClients.URL class: encoding URLs +----------------------------------- decode: aString Decode a text/x-www-form-urlencoded String into a text/plain @@ -3236,8 +2973,8 @@  File: gst-base.info, Node: NetClients.URL class-instance creation, Next: NetClients.URL-accessing, Prev: NetClients.URL class-encoding URLs, Up: NetClients.URL -1.110.2 NetClients.URL class: instance creation ------------------------------------------------ +NetClients.URL class: instance creation +--------------------------------------- fromString: aString Parse the given URL and answer an URL object based on it. @@ -3258,8 +2995,8 @@  File: gst-base.info, Node: NetClients.URL-accessing, Next: NetClients.URL-comparing, Prev: NetClients.URL class-instance creation, Up: NetClients.URL -1.110.3 NetClients.URL: accessing ---------------------------------- +NetClients.URL: accessing +------------------------- decodedFields Convert the form fields to a Dictionary, answer nil if no question @@ -3359,8 +3096,8 @@  File: gst-base.info, Node: NetClients.URL-comparing, Next: NetClients.URL-copying, Prev: NetClients.URL-accessing, Up: NetClients.URL -1.110.4 NetClients.URL: comparing ---------------------------------- +NetClients.URL: comparing +------------------------- = anURL Answer whether the two URLs are equal. The file and anchor are @@ -3375,8 +3112,8 @@  File: gst-base.info, Node: NetClients.URL-copying, Next: NetClients.URL-initialize-release, Prev: NetClients.URL-comparing, Up: NetClients.URL -1.110.5 NetClients.URL: copying -------------------------------- +NetClients.URL: copying +----------------------- copyWithoutAuxiliaryParts Answer a copy of the receiver where the fragment and query parts @@ -3393,8 +3130,8 @@  File: gst-base.info, Node: NetClients.URL-initialize-release, Next: NetClients.URL-printing, Prev: NetClients.URL-copying, Up: NetClients.URL -1.110.6 NetClients.URL: initialize-release ------------------------------------------- +NetClients.URL: initialize-release +---------------------------------- initialize Initialize the object to a consistent state. @@ -3403,8 +3140,8 @@  File: gst-base.info, Node: NetClients.URL-printing, Next: NetClients.URL-testing, Prev: NetClients.URL-initialize-release, Up: NetClients.URL -1.110.7 NetClients.URL: printing --------------------------------- +NetClients.URL: printing +------------------------ printOn: stream Print a representation of the URL on the given stream. @@ -3413,8 +3150,8 @@  File: gst-base.info, Node: NetClients.URL-testing, Next: NetClients.URL-utilities, Prev: NetClients.URL-printing, Up: NetClients.URL -1.110.8 NetClients.URL: testing -------------------------------- +NetClients.URL: testing +----------------------- canCache Answer whether the URL is cacheable. The current implementation @@ -3439,8 +3176,8 @@  File: gst-base.info, Node: NetClients.URL-utilities, Prev: NetClients.URL-testing, Up: NetClients.URL -1.110.9 NetClients.URL: utilities ---------------------------------- +NetClients.URL: utilities +------------------------- construct: anURL Construct an absolute URL based on the relative URL anURL and the @@ -3450,8 +3187,8 @@  File: gst-base.info, Node: Notification, Next: NullProxy, Prev: NetClients.URL, Up: Base classes -1.111 Notification -================== +Notification +============ Defined in namespace Smalltalk Superclass: Exception @@ -3467,8 +3204,8 @@  File: gst-base.info, Node: Notification-exception description, Up: Notification -1.111.1 Notification: exception description -------------------------------------------- +Notification: exception description +----------------------------------- defaultAction Do the default action for notifications, which is to resume @@ -3484,8 +3221,8 @@  File: gst-base.info, Node: NullProxy, Next: NullValueHolder, Prev: Notification, Up: Base classes -1.112 NullProxy -=============== +NullProxy +========= Defined in namespace Smalltalk Superclass: AlternativeObjectProxy @@ -3504,8 +3241,8 @@  File: gst-base.info, Node: NullProxy class-instance creation, Next: NullProxy-accessing, Up: NullProxy -1.112.1 NullProxy class: instance creation ------------------------------------------- +NullProxy class: instance creation +---------------------------------- loadFrom: anObjectDumper Reload the object stored in anObjectDumper @@ -3514,8 +3251,8 @@  File: gst-base.info, Node: NullProxy-accessing, Prev: NullProxy class-instance creation, Up: NullProxy -1.112.2 NullProxy: accessing ----------------------------- +NullProxy: accessing +-------------------- dumpTo: anObjectDumper Dump the object stored in the proxy to anObjectDumper @@ -3524,8 +3261,8 @@  File: gst-base.info, Node: NullValueHolder, Next: Number, Prev: NullProxy, Up: Base classes -1.113 NullValueHolder -===================== +NullValueHolder +=============== Defined in namespace Smalltalk Superclass: ValueAdaptor @@ -3543,8 +3280,8 @@  File: gst-base.info, Node: NullValueHolder class-creating instances, Next: NullValueHolder-accessing, Up: NullValueHolder -1.113.1 NullValueHolder class: creating instances -------------------------------------------------- +NullValueHolder class: creating instances +----------------------------------------- new Not used - use `ValueHolder null' instead @@ -3553,8 +3290,8 @@  File: gst-base.info, Node: NullValueHolder-accessing, Prev: NullValueHolder class-creating instances, Up: NullValueHolder -1.113.2 NullValueHolder: accessing ----------------------------------- +NullValueHolder: accessing +-------------------------- value Retrive the value of the receiver. Always answer nil @@ -3566,8 +3303,8 @@  File: gst-base.info, Node: Number, Next: Object, Prev: NullValueHolder, Up: Base classes -1.114 Number -============ +Number +====== Defined in namespace Smalltalk Superclass: Magnitude @@ -3595,8 +3332,8 @@  File: gst-base.info, Node: Number class-converting, Next: Number class-testing, Up: Number -1.114.1 Number class: converting --------------------------------- +Number class: converting +------------------------ coerce: aNumber Answer aNumber - whatever class it belongs to, it is good @@ -3610,8 +3347,8 @@  File: gst-base.info, Node: Number class-testing, Next: Number-arithmetic, Prev: Number class-converting, Up: Number -1.114.2 Number class: testing ------------------------------ +Number class: testing +--------------------- isImmediate Answer whether, if x is an instance of the receiver, x copy == x @@ -3620,8 +3357,8 @@  File: gst-base.info, Node: Number-arithmetic, Next: Number-comparing, Prev: Number class-testing, Up: Number -1.114.3 Number: arithmetic --------------------------- +Number: arithmetic +------------------ * aNumber Subtract the receiver and aNumber, answer the result @@ -3664,8 +3401,8 @@  File: gst-base.info, Node: Number-comparing, Next: Number-converting, Prev: Number-arithmetic, Up: Number -1.114.4 Number: comparing -------------------------- +Number: comparing +----------------- max: aNumber Redefined to ensure that a NaN is never answered. Answer the @@ -3679,8 +3416,8 @@  File: gst-base.info, Node: Number-converting, Next: Number-copying, Prev: Number-comparing, Up: Number -1.114.5 Number: converting --------------------------- +Number: converting +------------------ asFloat Convert the receiver to an arbitrary subclass of Float @@ -3731,8 +3468,8 @@  File: gst-base.info, Node: Number-copying, Next: Number-error raising, Prev: Number-converting, Up: Number -1.114.6 Number: copying ------------------------ +Number: copying +--------------- deepCopy Return the receiver - it's an immediate (immutable) object @@ -3744,8 +3481,8 @@  File: gst-base.info, Node: Number-error raising, Next: Number-misc math, Prev: Number-copying, Up: Number -1.114.7 Number: error raising ------------------------------ +Number: error raising +--------------------- arithmeticError: msg Raise an ArithmeticError exception having msg as its message text. @@ -3758,8 +3495,8 @@  File: gst-base.info, Node: Number-misc math, Next: Number-point creation, Prev: Number-error raising, Up: Number -1.114.8 Number: misc math -------------------------- +Number: misc math +----------------- abs Answer the absolute value of the receiver @@ -3829,8 +3566,8 @@  File: gst-base.info, Node: Number-point creation, Next: Number-retrying, Prev: Number-misc math, Up: Number -1.114.9 Number: point creation ------------------------------- +Number: point creation +---------------------- @ y Answer a new point whose x is the receiver and whose y is y @@ -3842,8 +3579,8 @@  File: gst-base.info, Node: Number-retrying, Next: Number-shortcuts and iterators, Prev: Number-point creation, Up: Number -1.114.10 Number: retrying -------------------------- +Number: retrying +---------------- retry: aSymbol coercing: aNumber Coerce to the other number's class the one number between the @@ -3888,8 +3625,8 @@  File: gst-base.info, Node: Number-shortcuts and iterators, Next: Number-testing, Prev: Number-retrying, Up: Number -1.114.11 Number: shortcuts and iterators ----------------------------------------- +Number: shortcuts and iterators +------------------------------- to: stop Return an interval going from the receiver to stop by 1 @@ -3913,8 +3650,8 @@  File: gst-base.info, Node: Number-testing, Next: Number-truncation and round off, Prev: Number-shortcuts and iterators, Up: Number -1.114.12 Number: testing ------------------------- +Number: testing +--------------- closeTo: num Answer whether the receiver can be considered sufficiently close @@ -3964,8 +3701,8 @@  File: gst-base.info, Node: Number-truncation and round off, Prev: Number-testing, Up: Number -1.114.13 Number: truncation and round off ------------------------------------------ +Number: truncation and round off +-------------------------------- asInteger Answer the receiver, rounded to the nearest integer @@ -3997,8 +3734,8 @@  File: gst-base.info, Node: Object, Next: ObjectDumper, Prev: Number, Up: Base classes -1.115 Object -============ +Object +====== Defined in namespace Smalltalk Superclass: none @@ -4029,8 +3766,8 @@  File: gst-base.info, Node: Object class-initialization, Next: Object-built ins, Up: Object -1.115.1 Object class: initialization ------------------------------------- +Object class: initialization +---------------------------- dependencies Answer a dictionary that associates an object with its dependents. @@ -4054,8 +3791,8 @@  File: gst-base.info, Node: Object-built ins, Next: Object-change and update, Prev: Object class-initialization, Up: Object -1.115.2 Object: built ins -------------------------- +Object: built ins +----------------- = arg Answer whether the receiver is equal to arg. The equality test is @@ -4257,8 +3994,8 @@  File: gst-base.info, Node: Object-change and update, Next: Object-class type methods, Prev: Object-built ins, Up: Object -1.115.3 Object: change and update ---------------------------------- +Object: change and update +------------------------- broadcast: aSymbol Send the unary message aSymbol to each of the receiver's dependents @@ -4295,8 +4032,8 @@  File: gst-base.info, Node: Object-class type methods, Next: Object-conversion, Prev: Object-change and update, Up: Object -1.115.4 Object: class type methods ----------------------------------- +Object: class type methods +-------------------------- species This method has no unique definition. Generally speaking, methods @@ -4316,8 +4053,8 @@  File: gst-base.info, Node: Object-conversion, Next: Object-copying, Prev: Object-class type methods, Up: Object -1.115.5 Object: conversion --------------------------- +Object: conversion +------------------ asValue Answer a ValueHolder whose initial value is the receiver. @@ -4326,8 +4063,8 @@  File: gst-base.info, Node: Object-copying, Next: Object-debugging, Prev: Object-conversion, Up: Object -1.115.6 Object: copying ------------------------ +Object: copying +--------------- copy Returns a shallow copy of the receiver (the instance variables are @@ -4347,8 +4084,8 @@  File: gst-base.info, Node: Object-debugging, Next: Object-dependents access, Prev: Object-copying, Up: Object -1.115.7 Object: debugging -------------------------- +Object: debugging +----------------- breakpoint: context return: return Called back by the system. Must return the value passed through the @@ -4364,8 +4101,8 @@  File: gst-base.info, Node: Object-dependents access, Next: Object-error raising, Prev: Object-debugging, Up: Object -1.115.8 Object: dependents access ---------------------------------- +Object: dependents access +------------------------- addDependent: anObject Add anObject to the set of the receiver's dependents. Important: @@ -4386,8 +4123,8 @@  File: gst-base.info, Node: Object-error raising, Next: Object-exception handling, Prev: Object-dependents access, Up: Object -1.115.9 Object: error raising ------------------------------ +Object: error raising +--------------------- doesNotUnderstand: aMessage Called by the system when a selector was not found. message is a @@ -4407,8 +4144,8 @@  File: gst-base.info, Node: Object-exception handling, Next: Object-finalization, Prev: Object-error raising, Up: Object -1.115.10 Object: exception handling ------------------------------------ +Object: exception handling +-------------------------- badReturnError Called back when a block performs a bad return. @@ -4427,8 +4164,8 @@  File: gst-base.info, Node: Object-finalization, Next: Object-printing, Prev: Object-exception handling, Up: Object -1.115.11 Object: finalization ------------------------------ +Object: finalization +-------------------- addToBeFinalized Arrange things so that #finalize is sent to the object when the @@ -4455,8 +4192,8 @@  File: gst-base.info, Node: Object-printing, Next: Object-relational operators, Prev: Object-finalization, Up: Object -1.115.12 Object: printing -------------------------- +Object: printing +---------------- basicPrintNl Print a basic representation of the receiver, followed by a new @@ -4509,8 +4246,8 @@  File: gst-base.info, Node: Object-relational operators, Next: Object-saving and loading, Prev: Object-printing, Up: Object -1.115.13 Object: relational operators -------------------------------------- +Object: relational operators +---------------------------- ~= anObject Answer whether the receiver and anObject are not equal @@ -4522,8 +4259,8 @@  File: gst-base.info, Node: Object-saving and loading, Next: Object-storing, Prev: Object-relational operators, Up: Object -1.115.14 Object: saving and loading ------------------------------------ +Object: saving and loading +-------------------------- binaryRepresentationObject This method must be implemented if PluggableProxies are used with @@ -4551,8 +4288,8 @@  File: gst-base.info, Node: Object-storing, Next: Object-syntax shortcuts, Prev: Object-saving and loading, Up: Object -1.115.15 Object: storing ------------------------- +Object: storing +--------------- store Put a String of Smalltalk code compiling to the receiver on the @@ -4572,8 +4309,8 @@  File: gst-base.info, Node: Object-syntax shortcuts, Next: Object-testing functionality, Prev: Object-storing, Up: Object -1.115.16 Object: syntax shortcuts ---------------------------------- +Object: syntax shortcuts +------------------------ -> anObject Creates a new instance of Association with the receiver being the @@ -4583,8 +4320,8 @@  File: gst-base.info, Node: Object-testing functionality, Prev: Object-syntax shortcuts, Up: Object -1.115.17 Object: testing functionality --------------------------------------- +Object: testing functionality +----------------------------- ifNil: nilBlock Evaluate nilBlock if the receiver is nil, else answer self @@ -4666,8 +4403,8 @@  File: gst-base.info, Node: ObjectDumper, Next: ObjectMemory, Prev: Object, Up: Base classes -1.116 ObjectDumper -================== +ObjectDumper +============ Defined in namespace Smalltalk Superclass: Stream @@ -4697,8 +4434,8 @@  File: gst-base.info, Node: ObjectDumper class-establishing proxy classes, Next: ObjectDumper class-instance creation, Up: ObjectDumper -1.116.1 ObjectDumper class: establishing proxy classes ------------------------------------------------------- +ObjectDumper class: establishing proxy classes +---------------------------------------------- disableProxyFor: aClass Disable proxies for instances of aClass and its descendants @@ -4723,8 +4460,8 @@  File: gst-base.info, Node: ObjectDumper class-instance creation, Next: ObjectDumper class-shortcuts, Prev: ObjectDumper class-establishing proxy classes, Up: ObjectDumper -1.116.2 ObjectDumper class: instance creation ---------------------------------------------- +ObjectDumper class: instance creation +------------------------------------- new This method should not be called for instances of this class. @@ -4736,8 +4473,8 @@  File: gst-base.info, Node: ObjectDumper class-shortcuts, Next: ObjectDumper class-testing, Prev: ObjectDumper class-instance creation, Up: ObjectDumper -1.116.3 ObjectDumper class: shortcuts -------------------------------------- +ObjectDumper class: shortcuts +----------------------------- dump: anObject to: aFileStream Dump anObject to aFileStream. Answer anObject @@ -4749,8 +4486,8 @@  File: gst-base.info, Node: ObjectDumper class-testing, Next: ObjectDumper-accessing, Prev: ObjectDumper class-shortcuts, Up: ObjectDumper -1.116.4 ObjectDumper class: testing ------------------------------------ +ObjectDumper class: testing +--------------------------- example This is a real torture test: it outputs recursive objects, @@ -4762,8 +4499,8 @@  File: gst-base.info, Node: ObjectDumper-accessing, Next: ObjectDumper-loading/dumping objects, Prev: ObjectDumper class-testing, Up: ObjectDumper -1.116.5 ObjectDumper: accessing -------------------------------- +ObjectDumper: accessing +----------------------- flush `Forget' any information on previously stored objects. @@ -4780,8 +4517,8 @@  File: gst-base.info, Node: ObjectDumper-loading/dumping objects, Next: ObjectDumper-stream interface, Prev: ObjectDumper-accessing, Up: ObjectDumper -1.116.6 ObjectDumper: loading/dumping objects ---------------------------------------------- +ObjectDumper: loading/dumping objects +------------------------------------- dump: anObject Dump anObject on the stream associated with the receiver. Answer @@ -4795,8 +4532,8 @@  File: gst-base.info, Node: ObjectDumper-stream interface, Prev: ObjectDumper-loading/dumping objects, Up: ObjectDumper -1.116.7 ObjectDumper: stream interface --------------------------------------- +ObjectDumper: stream interface +------------------------------ atEnd Answer whether the underlying stream is at EOF @@ -4811,8 +4548,8 @@  File: gst-base.info, Node: ObjectMemory, Next: OrderedCollection, Prev: ObjectDumper, Up: Base classes -1.117 ObjectMemory -================== +ObjectMemory +============ Defined in namespace Smalltalk Superclass: Object @@ -4841,8 +4578,8 @@  File: gst-base.info, Node: ObjectMemory class-accessing, Next: ObjectMemory class-builtins, Up: ObjectMemory -1.117.1 ObjectMemory class: accessing -------------------------------------- +ObjectMemory class: accessing +----------------------------- current Return a snapshot of the VM's memory management statistics. @@ -4851,8 +4588,8 @@  File: gst-base.info, Node: ObjectMemory class-builtins, Next: ObjectMemory class-initialization, Prev: ObjectMemory class-accessing, Up: ObjectMemory -1.117.2 ObjectMemory class: builtins ------------------------------------- +ObjectMemory class: builtins +---------------------------- abort Quit the Smalltalk environment, dumping core. @@ -4949,8 +4686,8 @@  File: gst-base.info, Node: ObjectMemory class-initialization, Next: ObjectMemory class-saving the image, Prev: ObjectMemory class-builtins, Up: ObjectMemory -1.117.3 ObjectMemory class: initialization ------------------------------------------- +ObjectMemory class: initialization +---------------------------------- initialize Initialize the globals @@ -4959,8 +4696,8 @@  File: gst-base.info, Node: ObjectMemory class-saving the image, Next: ObjectMemory-accessing, Prev: ObjectMemory class-initialization, Up: ObjectMemory -1.117.4 ObjectMemory class: saving the image --------------------------------------------- +ObjectMemory class: saving the image +------------------------------------ snapshot Save a snapshot on the image file that was loaded on startup. @@ -4969,8 +4706,8 @@  File: gst-base.info, Node: ObjectMemory-accessing, Next: ObjectMemory-builtins, Prev: ObjectMemory class-saving the image, Up: ObjectMemory -1.117.5 ObjectMemory: accessing -------------------------------- +ObjectMemory: accessing +----------------------- allocFailures Answer the number of times that the old-space allocator found no @@ -5117,8 +4854,8 @@  File: gst-base.info, Node: ObjectMemory-builtins, Next: ObjectMemory-derived information, Prev: ObjectMemory-accessing, Up: ObjectMemory -1.117.6 ObjectMemory: builtins ------------------------------- +ObjectMemory: builtins +---------------------- update Update the values in the object to the current state of the VM. @@ -5127,8 +4864,8 @@  File: gst-base.info, Node: ObjectMemory-derived information, Prev: ObjectMemory-builtins, Up: ObjectMemory -1.117.7 ObjectMemory: derived information ------------------------------------------ +ObjectMemory: derived information +--------------------------------- scavengesBeforeTenuring Answer the number of scavenges that an object must on average @@ -5147,8 +4884,8 @@  File: gst-base.info, Node: OrderedCollection, Next: Package, Prev: ObjectMemory, Up: Base classes -1.118 OrderedCollection -======================= +OrderedCollection +================= Defined in namespace Smalltalk Superclass: SequenceableCollection @@ -5168,8 +4905,8 @@  File: gst-base.info, Node: OrderedCollection class-instance creation, Next: OrderedCollection-accessing, Up: OrderedCollection -1.118.1 OrderedCollection class: instance creation --------------------------------------------------- +OrderedCollection class: instance creation +------------------------------------------ new Answer an OrderedCollection of default size @@ -5181,8 +4918,8 @@  File: gst-base.info, Node: OrderedCollection-accessing, Next: OrderedCollection-adding, Prev: OrderedCollection class-instance creation, Up: OrderedCollection -1.118.2 OrderedCollection: accessing ------------------------------------- +OrderedCollection: accessing +---------------------------- at: anIndex Answer the anIndex-th item of the receiver @@ -5198,8 +4935,8 @@  File: gst-base.info, Node: OrderedCollection-adding, Next: OrderedCollection-removing, Prev: OrderedCollection-accessing, Up: OrderedCollection -1.118.3 OrderedCollection: adding ---------------------------------- +OrderedCollection: adding +------------------------- add: anObject Add anObject in the receiver, answer it @@ -5259,8 +4996,8 @@  File: gst-base.info, Node: OrderedCollection-removing, Prev: OrderedCollection-adding, Up: OrderedCollection -1.118.4 OrderedCollection: removing ------------------------------------ +OrderedCollection: removing +--------------------------- remove: anObject ifAbsent: aBlock Remove anObject from the receiver. If it can't be found, answer the @@ -5282,8 +5019,8 @@  File: gst-base.info, Node: Package, Next: PackageLoader, Prev: OrderedCollection, Up: Base classes -1.119 Package -============= +Package +======= Defined in namespace Smalltalk Superclass: Object @@ -5299,13 +5036,25 @@  File: gst-base.info, Node: Package-accessing, Up: Package -1.119.1 Package: accessing --------------------------- +Package: accessing +------------------ allFiles Answer an OrderedCollection of all the files, both built and distributed, that are part of the package. +baseDirs: baseDirs + Resolve the names in the package according to the base directories + in baseDirs, which depend on where the packages.xml is found: the + three possible places are 1) the system kernel directory's parent + directory, 2) the local kernel directory's parent directory, 3) the + local image directory (in order of decreasing priority). For a + packages.xml found in the system kernel directory's parent + directory, all three directories are searched. For a packages.xml + found in the local kernel directory's parent directory, only + directories 2 and 3 are searched. For a packages.xml directory in + the local image directory, instead, only directory 3 is searched. + builtFiles Answer a (modifiable) OrderedCollection of files that are part of the package but are not distributed. @@ -5318,10 +5067,8 @@ directory Answer the base directory from which to load the package. -directory: dir forBaseDir: baseDir - Set the base directory from which to load the package to dir. If - dir is a relative directory, store an absolute path composed from - the (already absolute) baseDir and from dir. +directory: dir + Set the base directory from which to load the package to dir. fileIns Answer a (modifiable) OrderedCollections of files that are to be @@ -5332,6 +5079,17 @@ Answer a (modifiable) OrderedCollection of files that are part of the package. +findBaseDirs: baseDirs for: aCollection + Resolve the names in aCollection according to the base directories + in baseDirs, and return the collection with the full filenames, or + nil if no directory was found for one or more file in aCollection. + +findBaseDirs: baseDirs forFile: fileName + Try appending 'self directory' and fileName to each of the + directory in baseDirs, and return the path to the first tried + filename that exists. Return nil if no directory is found that + contains the file. + libraries Answer a (modifiable) Set of shared library names that are required to load the package. @@ -5361,8 +5119,8 @@  File: gst-base.info, Node: PackageLoader, Next: PluggableAdaptor, Prev: Package, Up: Base classes -1.120 PackageLoader -=================== +PackageLoader +============= Defined in namespace Smalltalk Superclass: Object @@ -5380,8 +5138,8 @@  File: gst-base.info, Node: PackageLoader class-accessing, Next: PackageLoader class-loading, Up: PackageLoader -1.120.1 PackageLoader class: accessing --------------------------------------- +PackageLoader class: accessing +------------------------------ builtFilesFor: package Answer a Set of Strings containing the filenames of the given @@ -5430,14 +5188,23 @@ package refreshDependencies - Reload the `packages.xml' file in the image and kernel directories + Reload the `packages.xml' file in the image and kernel directories. + The three possible places are 1) the system kernel directory's + parent directory, 2) the local kernel directory's parent + directory, 3) the local image directory (in order of decreasing + priority). For a packages.xml found in the system kernel + directory's parent directory, all three directories are searched. + For a packages.xml found in the local kernel directory's parent + directory, only directories 2 and 3 are searched. For a + packages.xml directory in the local image directory, instead, only + directory 3 is searched.  File: gst-base.info, Node: PackageLoader class-loading, Next: PackageLoader class-testing, Prev: PackageLoader class-accessing, Up: PackageLoader -1.120.2 PackageLoader class: loading ------------------------------------- +PackageLoader class: loading +---------------------------- extractDependenciesFor: packagesList onError: aBlock Answer an OrderedCollection containing all the packages which you @@ -5460,8 +5227,8 @@  File: gst-base.info, Node: PackageLoader class-testing, Prev: PackageLoader class-loading, Up: PackageLoader -1.120.3 PackageLoader class: testing ------------------------------------- +PackageLoader class: testing +---------------------------- canLoad: package Answer whether all the needed pre-requisites for package are @@ -5471,8 +5238,8 @@  File: gst-base.info, Node: PluggableAdaptor, Next: PluggableProxy, Prev: PackageLoader, Up: Base classes -1.121 PluggableAdaptor -====================== +PluggableAdaptor +================ Defined in namespace Smalltalk Superclass: ValueAdaptor @@ -5491,8 +5258,8 @@  File: gst-base.info, Node: PluggableAdaptor class-creating instances, Next: PluggableAdaptor-accessing, Up: PluggableAdaptor -1.121.1 PluggableAdaptor class: creating instances --------------------------------------------------- +PluggableAdaptor class: creating instances +------------------------------------------ getBlock: getBlock putBlock: putBlock Answer a PluggableAdaptor using the given blocks to implement @@ -5508,7 +5275,7 @@ implement #value, and anObject's putSelector message to implement #value: - message + message on: anObject index: anIndex Answer a PluggableAdaptor using anObject's #at: and #at:put: @@ -5522,8 +5289,8 @@  File: gst-base.info, Node: PluggableAdaptor-accessing, Prev: PluggableAdaptor class-creating instances, Up: PluggableAdaptor -1.121.2 PluggableAdaptor: accessing ------------------------------------ +PluggableAdaptor: accessing +--------------------------- value Get the value of the receiver. @@ -5535,8 +5302,8 @@  File: gst-base.info, Node: PluggableProxy, Next: Point, Prev: PluggableAdaptor, Up: Base classes -1.122 PluggableProxy -==================== +PluggableProxy +============== Defined in namespace Smalltalk Superclass: AlternativeObjectProxy @@ -5555,8 +5322,8 @@  File: gst-base.info, Node: PluggableProxy class-accessing, Next: PluggableProxy-saving and restoring, Up: PluggableProxy -1.122.1 PluggableProxy class: accessing ---------------------------------------- +PluggableProxy class: accessing +------------------------------- on: anObject Answer a proxy to be used to save anObject. The proxy stores a @@ -5568,8 +5335,8 @@  File: gst-base.info, Node: PluggableProxy-saving and restoring, Prev: PluggableProxy class-accessing, Up: PluggableProxy -1.122.2 PluggableProxy: saving and restoring --------------------------------------------- +PluggableProxy: saving and restoring +------------------------------------ object Reconstruct the object stored in the proxy and answer it; the @@ -5580,8 +5347,8 @@  File: gst-base.info, Node: Point, Next: PositionableStream, Prev: PluggableProxy, Up: Base classes -1.123 Point -=========== +Point +===== Defined in namespace Smalltalk Superclass: Object @@ -5605,8 +5372,8 @@  File: gst-base.info, Node: Point class-instance creation, Next: Point-accessing, Up: Point -1.123.1 Point class: instance creation --------------------------------------- +Point class: instance creation +------------------------------ new Create a new point with both coordinates set to 0 @@ -5618,8 +5385,8 @@  File: gst-base.info, Node: Point-accessing, Next: Point-arithmetic, Prev: Point class-instance creation, Up: Point -1.123.2 Point: accessing ------------------------- +Point: accessing +---------------- x Answer the x coordinate @@ -5640,8 +5407,8 @@  File: gst-base.info, Node: Point-arithmetic, Next: Point-comparing, Prev: Point-accessing, Up: Point -1.123.3 Point: arithmetic -------------------------- +Point: arithmetic +----------------- * scale Multiply the receiver by scale, which can be a Number or a Point @@ -5668,8 +5435,8 @@  File: gst-base.info, Node: Point-comparing, Next: Point-converting, Prev: Point-arithmetic, Up: Point -1.123.4 Point: comparing ------------------------- +Point: comparing +---------------- < aPoint Answer whether the receiver is higher and to the left of aPoint @@ -5700,8 +5467,8 @@  File: gst-base.info, Node: Point-converting, Next: Point-point functions, Prev: Point-comparing, Up: Point -1.123.5 Point: converting -------------------------- +Point: converting +----------------- asPoint Answer the receiver. @@ -5724,8 +5491,8 @@  File: gst-base.info, Node: Point-point functions, Next: Point-printing, Prev: Point-converting, Up: Point -1.123.6 Point: point functions ------------------------------- +Point: point functions +---------------------- arcTan Answer the angle (measured counterclockwise) between the receiver @@ -5757,8 +5524,8 @@  File: gst-base.info, Node: Point-printing, Next: Point-storing, Prev: Point-point functions, Up: Point -1.123.7 Point: printing ------------------------ +Point: printing +--------------- printOn: aStream Print a representation for the receiver on aStream @@ -5767,8 +5534,8 @@  File: gst-base.info, Node: Point-storing, Next: Point-truncation and round off, Prev: Point-printing, Up: Point -1.123.8 Point: storing ----------------------- +Point: storing +-------------- storeOn: aStream Print Smalltalk code compiling to the receiver on aStream @@ -5777,8 +5544,8 @@  File: gst-base.info, Node: Point-truncation and round off, Prev: Point-storing, Up: Point -1.123.9 Point: truncation and round off ---------------------------------------- +Point: truncation and round off +------------------------------- rounded Answer a new point whose coordinates are rounded to the nearest @@ -5792,8 +5559,8 @@  File: gst-base.info, Node: PositionableStream, Next: Process, Prev: Point, Up: Base classes -1.124 PositionableStream -======================== +PositionableStream +================== Defined in namespace Smalltalk Superclass: Stream @@ -5817,8 +5584,8 @@  File: gst-base.info, Node: PositionableStream class-instance creation, Next: PositionableStream-accessing-reading, Up: PositionableStream -1.124.1 PositionableStream class: instance creation ---------------------------------------------------- +PositionableStream class: instance creation +------------------------------------------- on: aCollection Answer an instance of the receiver streaming on the whole contents @@ -5832,8 +5599,8 @@  File: gst-base.info, Node: PositionableStream-accessing-reading, Next: PositionableStream-class type methods, Prev: PositionableStream class-instance creation, Up: PositionableStream -1.124.2 PositionableStream: accessing-reading ---------------------------------------------- +PositionableStream: accessing-reading +------------------------------------- close Disassociate a stream from its backing store. @@ -5867,8 +5634,8 @@  File: gst-base.info, Node: PositionableStream-class type methods, Next: PositionableStream-positioning, Prev: PositionableStream-accessing-reading, Up: PositionableStream -1.124.3 PositionableStream: class type methods ----------------------------------------------- +PositionableStream: class type methods +-------------------------------------- isExternalStream We stream on a collection residing in the image, so answer false @@ -5881,8 +5648,8 @@  File: gst-base.info, Node: PositionableStream-positioning, Next: PositionableStream-testing, Prev: PositionableStream-class type methods, Up: PositionableStream -1.124.4 PositionableStream: positioning ---------------------------------------- +PositionableStream: positioning +------------------------------- basicPosition: anInteger Move the stream pointer to the anInteger-th object @@ -5918,8 +5685,8 @@  File: gst-base.info, Node: PositionableStream-testing, Next: PositionableStream-truncating, Prev: PositionableStream-positioning, Up: PositionableStream -1.124.5 PositionableStream: testing ------------------------------------ +PositionableStream: testing +--------------------------- atEnd Answer whether the objects in the stream have reached an end @@ -5935,8 +5702,8 @@  File: gst-base.info, Node: PositionableStream-truncating, Prev: PositionableStream-testing, Up: PositionableStream -1.124.6 PositionableStream: truncating --------------------------------------- +PositionableStream: truncating +------------------------------ truncate Truncate the receiver to the current position - only valid for @@ -5946,8 +5713,8 @@  File: gst-base.info, Node: Process, Next: ProcessorScheduler, Prev: PositionableStream, Up: Base classes -1.125 Process -============= +Process +======= Defined in namespace Smalltalk Superclass: Link @@ -5967,8 +5734,8 @@  File: gst-base.info, Node: Process-accessing, Next: Process-basic, Up: Process -1.125.1 Process: accessing --------------------------- +Process: accessing +------------------ externalInterruptsEnabled Answer whether the receiver is executed with interrupts enabled @@ -6012,8 +5779,8 @@  File: gst-base.info, Node: Process-basic, Next: Process-builtins, Prev: Process-accessing, Up: Process -1.125.2 Process: basic ----------------------- +Process: basic +-------------- lowerPriority Lower a bit the priority of the receiver. A #lowerPriority will @@ -6052,8 +5819,8 @@  File: gst-base.info, Node: Process-builtins, Next: Process-printing, Prev: Process-basic, Up: Process -1.125.3 Process: builtins -------------------------- +Process: builtins +----------------- resume Resume the receiver's execution @@ -6075,8 +5842,8 @@  File: gst-base.info, Node: Process-printing, Prev: Process-builtins, Up: Process -1.125.4 Process: printing -------------------------- +Process: printing +----------------- printOn: aStream Print a representation of the receiver on aStream @@ -6085,8 +5852,8 @@  File: gst-base.info, Node: ProcessorScheduler, Next: Promise, Prev: Process, Up: Base classes -1.126 ProcessorScheduler -======================== +ProcessorScheduler +================== Defined in namespace Smalltalk Superclass: Object @@ -6107,8 +5874,8 @@  File: gst-base.info, Node: ProcessorScheduler class-instance creation, Next: ProcessorScheduler-basic, Up: ProcessorScheduler -1.126.1 ProcessorScheduler class: instance creation ---------------------------------------------------- +ProcessorScheduler class: instance creation +------------------------------------------- new Error--new instances of ProcessorScheduler should not be created. @@ -6117,8 +5884,8 @@  File: gst-base.info, Node: ProcessorScheduler-basic, Next: ProcessorScheduler-built ins, Prev: ProcessorScheduler class-instance creation, Up: ProcessorScheduler -1.126.2 ProcessorScheduler: basic ---------------------------------- +ProcessorScheduler: basic +------------------------- activePriority Answer the active process' priority @@ -6160,8 +5927,8 @@  File: gst-base.info, Node: ProcessorScheduler-built ins, Next: ProcessorScheduler-idle tasks, Prev: ProcessorScheduler-basic, Up: ProcessorScheduler -1.126.3 ProcessorScheduler: built ins -------------------------------------- +ProcessorScheduler: built ins +----------------------------- twice @@ -6180,8 +5947,8 @@  File: gst-base.info, Node: ProcessorScheduler-idle tasks, Next: ProcessorScheduler-printing, Prev: ProcessorScheduler-built ins, Up: ProcessorScheduler -1.126.4 ProcessorScheduler: idle tasks --------------------------------------- +ProcessorScheduler: idle tasks +------------------------------ idle Private - Call the next idle task @@ -6200,8 +5967,8 @@  File: gst-base.info, Node: ProcessorScheduler-printing, Next: ProcessorScheduler-priorities, Prev: ProcessorScheduler-idle tasks, Up: ProcessorScheduler -1.126.5 ProcessorScheduler: printing ------------------------------------- +ProcessorScheduler: printing +---------------------------- printOn: aStream Store onto aStream a printed representation of the receiver @@ -6210,8 +5977,8 @@  File: gst-base.info, Node: ProcessorScheduler-priorities, Next: ProcessorScheduler-storing, Prev: ProcessorScheduler-printing, Up: ProcessorScheduler -1.126.6 ProcessorScheduler: priorities --------------------------------------- +ProcessorScheduler: priorities +------------------------------ highestPriority Answer the highest valid priority @@ -6262,8 +6029,8 @@  File: gst-base.info, Node: ProcessorScheduler-storing, Next: ProcessorScheduler-timed invocation, Prev: ProcessorScheduler-priorities, Up: ProcessorScheduler -1.126.7 ProcessorScheduler: storing ------------------------------------ +ProcessorScheduler: storing +--------------------------- storeOn: aStream Store onto aStream a Smalltalk expression which evaluates to the @@ -6273,8 +6040,8 @@  File: gst-base.info, Node: ProcessorScheduler-timed invocation, Prev: ProcessorScheduler-storing, Up: ProcessorScheduler -1.126.8 ProcessorScheduler: timed invocation --------------------------------------------- +ProcessorScheduler: timed invocation +------------------------------------ isTimeoutProgrammed Private - Answer whether there is a pending call to @@ -6291,8 +6058,8 @@  File: gst-base.info, Node: Promise, Next: Random, Prev: ProcessorScheduler, Up: Base classes -1.127 Promise -============= +Promise +======= Defined in namespace Smalltalk Superclass: ValueHolder @@ -6311,8 +6078,8 @@  File: gst-base.info, Node: Promise class-creating instances, Next: Promise-accessing, Up: Promise -1.127.1 Promise class: creating instances ------------------------------------------ +Promise class: creating instances +--------------------------------- null This method should not be called for instances of this class. @@ -6321,8 +6088,8 @@  File: gst-base.info, Node: Promise-accessing, Next: Promise-initializing, Prev: Promise class-creating instances, Up: Promise -1.127.2 Promise: accessing --------------------------- +Promise: accessing +------------------ hasValue Answer whether we already have a value. @@ -6337,8 +6104,8 @@  File: gst-base.info, Node: Promise-initializing, Next: Promise-printing, Prev: Promise-accessing, Up: Promise -1.127.3 Promise: initializing ------------------------------ +Promise: initializing +--------------------- initialize Private - set the initial state of the receiver @@ -6347,8 +6114,8 @@  File: gst-base.info, Node: Promise-printing, Prev: Promise-initializing, Up: Promise -1.127.4 Promise: printing -------------------------- +Promise: printing +----------------- printOn: aStream Print a representation of the receiver @@ -6357,8 +6124,8 @@  File: gst-base.info, Node: Random, Next: ReadStream, Prev: Promise, Up: Base classes -1.128 Random -============ +Random +====== Defined in namespace Smalltalk Superclass: Stream @@ -6376,8 +6143,8 @@  File: gst-base.info, Node: Random class-instance creation, Next: Random class-shortcuts, Up: Random -1.128.1 Random class: instance creation ---------------------------------------- +Random class: instance creation +------------------------------- new Create a new random number generator whose seed is given by the @@ -6390,8 +6157,8 @@  File: gst-base.info, Node: Random class-shortcuts, Next: Random-basic, Prev: Random class-instance creation, Up: Random -1.128.2 Random class: shortcuts -------------------------------- +Random class: shortcuts +----------------------- between: low and: high Return a random integer between the given extrema @@ -6403,8 +6170,8 @@  File: gst-base.info, Node: Random-basic, Next: Random-testing, Prev: Random class-shortcuts, Up: Random -1.128.3 Random: basic ---------------------- +Random: basic +------------- atEnd This stream never ends. Always answer false. @@ -6422,8 +6189,8 @@  File: gst-base.info, Node: Random-testing, Prev: Random-basic, Up: Random -1.128.4 Random: testing ------------------------ +Random: testing +--------------- chiSquare Compute the chi-square of the random that this class generates. @@ -6436,8 +6203,8 @@  File: gst-base.info, Node: ReadStream, Next: ReadWriteStream, Prev: Random, Up: Base classes -1.129 ReadStream -================ +ReadStream +========== Defined in namespace Smalltalk Superclass: PositionableStream @@ -6453,8 +6220,8 @@  File: gst-base.info, Node: ReadStream class-instance creation, Next: ReadStream-accessing-reading, Up: ReadStream -1.129.1 ReadStream class: instance creation -------------------------------------------- +ReadStream class: instance creation +----------------------------------- on: aCollection Answer a new stream working on aCollection from its start. @@ -6463,8 +6230,8 @@  File: gst-base.info, Node: ReadStream-accessing-reading, Prev: ReadStream class-instance creation, Up: ReadStream -1.129.2 ReadStream: accessing-reading -------------------------------------- +ReadStream: accessing-reading +----------------------------- reverseContents May be faster than generic stream reverseContents. @@ -6476,8 +6243,8 @@  File: gst-base.info, Node: ReadWriteStream, Next: Rectangle, Prev: ReadStream, Up: Base classes -1.130 ReadWriteStream -===================== +ReadWriteStream +=============== Defined in namespace Smalltalk Superclass: WriteStream @@ -6494,8 +6261,8 @@  File: gst-base.info, Node: ReadWriteStream class-instance creation, Next: ReadWriteStream-positioning, Up: ReadWriteStream -1.130.1 ReadWriteStream class: instance creation ------------------------------------------------- +ReadWriteStream class: instance creation +---------------------------------------- on: aCollection Answer a new stream working on aCollection from its start. The @@ -6509,8 +6276,8 @@  File: gst-base.info, Node: ReadWriteStream-positioning, Prev: ReadWriteStream class-instance creation, Up: ReadWriteStream -1.130.2 ReadWriteStream: positioning ------------------------------------- +ReadWriteStream: positioning +---------------------------- position: anInteger Unlike WriteStreams, ReadWriteStreams don't truncate the stream @@ -6522,8 +6289,8 @@  File: gst-base.info, Node: Rectangle, Next: RecursionLock, Prev: ReadWriteStream, Up: Base classes -1.131 Rectangle -=============== +Rectangle +========= Defined in namespace Smalltalk Superclass: Object @@ -6547,8 +6314,8 @@  File: gst-base.info, Node: Rectangle class-instance creation, Next: Rectangle-accessing, Up: Rectangle -1.131.1 Rectangle class: instance creation ------------------------------------------- +Rectangle class: instance creation +---------------------------------- left: leftNumber right: rightNumber top: topNumber bottom: bottomNumber Answer a rectangle with the given coordinates @@ -6566,8 +6333,8 @@  File: gst-base.info, Node: Rectangle-accessing, Next: Rectangle-copying, Prev: Rectangle class-instance creation, Up: Rectangle -1.131.2 Rectangle: accessing ----------------------------- +Rectangle: accessing +-------------------- bottom Answer the corner's y of the receiver @@ -6676,8 +6443,8 @@  File: gst-base.info, Node: Rectangle-copying, Next: Rectangle-printing, Prev: Rectangle-accessing, Up: Rectangle -1.131.3 Rectangle: copying --------------------------- +Rectangle: copying +------------------ copy Return a deep copy of the receiver for safety. @@ -6686,8 +6453,8 @@  File: gst-base.info, Node: Rectangle-printing, Next: Rectangle-rectangle functions, Prev: Rectangle-copying, Up: Rectangle -1.131.4 Rectangle: printing ---------------------------- +Rectangle: printing +------------------- printOn: aStream Print a representation of the receiver on aStream @@ -6699,8 +6466,8 @@  File: gst-base.info, Node: Rectangle-rectangle functions, Next: Rectangle-testing, Prev: Rectangle-printing, Up: Rectangle -1.131.5 Rectangle: rectangle functions --------------------------------------- +Rectangle: rectangle functions +------------------------------ amountToTranslateWithin: aRectangle Answer a Point so that if aRectangle is translated by that point, @@ -6750,8 +6517,8 @@  File: gst-base.info, Node: Rectangle-testing, Next: Rectangle-transforming, Prev: Rectangle-rectangle functions, Up: Rectangle -1.131.6 Rectangle: testing --------------------------- +Rectangle: testing +------------------ = aRectangle Answer whether the receiver is equal to aRectangle @@ -6777,8 +6544,8 @@  File: gst-base.info, Node: Rectangle-transforming, Next: Rectangle-truncation and round off, Prev: Rectangle-testing, Up: Rectangle -1.131.7 Rectangle: transforming -------------------------------- +Rectangle: transforming +----------------------- moveBy: aPoint Change the receiver so that the origin and corner are shifted by @@ -6800,8 +6567,8 @@  File: gst-base.info, Node: Rectangle-truncation and round off, Prev: Rectangle-transforming, Up: Rectangle -1.131.8 Rectangle: truncation and round off -------------------------------------------- +Rectangle: truncation and round off +----------------------------------- rounded Answer a copy of the receiver with the coordinates rounded to the @@ -6811,8 +6578,8 @@  File: gst-base.info, Node: RecursionLock, Next: RootNamespace, Prev: Rectangle, Up: Base classes -1.132 RecursionLock -=================== +RecursionLock +============= Defined in namespace Smalltalk Superclass: Object @@ -6828,8 +6595,8 @@  File: gst-base.info, Node: RecursionLock class-instance creation, Next: RecursionLock-accessing, Up: RecursionLock -1.132.1 RecursionLock class: instance creation ----------------------------------------------- +RecursionLock class: instance creation +-------------------------------------- new Answer a new semaphore @@ -6838,8 +6605,8 @@  File: gst-base.info, Node: RecursionLock-accessing, Next: RecursionLock-mutual exclusion, Prev: RecursionLock class-instance creation, Up: RecursionLock -1.132.2 RecursionLock: accessing --------------------------------- +RecursionLock: accessing +------------------------ isOwnerProcess Answer whether the receiver is the owner of the lock. @@ -6861,8 +6628,8 @@  File: gst-base.info, Node: RecursionLock-mutual exclusion, Next: RecursionLock-printing, Prev: RecursionLock-accessing, Up: RecursionLock -1.132.3 RecursionLock: mutual exclusion ---------------------------------------- +RecursionLock: mutual exclusion +------------------------------- critical: aBlock Wait for the receiver to be free, execute aBlock and signal the @@ -6872,8 +6639,8 @@  File: gst-base.info, Node: RecursionLock-printing, Prev: RecursionLock-mutual exclusion, Up: RecursionLock -1.132.4 RecursionLock: printing -------------------------------- +RecursionLock: printing +----------------------- printOn: aStream Print a human-readable represention of the receiver on aStream. @@ -6882,8 +6649,8 @@  File: gst-base.info, Node: RootNamespace, Next: RunArray, Prev: RecursionLock, Up: Base classes -1.133 RootNamespace -=================== +RootNamespace +============= Defined in namespace Smalltalk Superclass: AbstractNamespace @@ -6901,8 +6668,8 @@  File: gst-base.info, Node: RootNamespace class-instance creation, Next: RootNamespace-namespace hierarchy, Up: RootNamespace -1.133.1 RootNamespace class: instance creation ----------------------------------------------- +RootNamespace class: instance creation +-------------------------------------- new: spaceName Create a new root namespace with the given name, and add to @@ -6912,8 +6679,8 @@  File: gst-base.info, Node: RootNamespace-namespace hierarchy, Next: RootNamespace-overrides for superspaces, Prev: RootNamespace class-instance creation, Up: RootNamespace -1.133.2 RootNamespace: namespace hierarchy ------------------------------------------- +RootNamespace: namespace hierarchy +---------------------------------- siblings Answer all the other root namespaces @@ -6926,8 +6693,8 @@  File: gst-base.info, Node: RootNamespace-overrides for superspaces, Next: RootNamespace-printing, Prev: RootNamespace-namespace hierarchy, Up: RootNamespace -1.133.3 RootNamespace: overrides for superspaces ------------------------------------------------- +RootNamespace: overrides for superspaces +---------------------------------------- inheritedKeys Answer a Set of all the keys in the receiver and its superspaces @@ -6942,8 +6709,8 @@  File: gst-base.info, Node: RootNamespace-printing, Prev: RootNamespace-overrides for superspaces, Up: RootNamespace -1.133.4 RootNamespace: printing -------------------------------- +RootNamespace: printing +----------------------- nameIn: aNamespace Answer Smalltalk code compiling to the receiver when the current @@ -6960,8 +6727,8 @@  File: gst-base.info, Node: RunArray, Next: ScaledDecimal, Prev: RootNamespace, Up: Base classes -1.134 RunArray -============== +RunArray +======== Defined in namespace Smalltalk Superclass: OrderedCollection @@ -6988,8 +6755,8 @@  File: gst-base.info, Node: RunArray class-instance creation, Next: RunArray-accessing, Up: RunArray -1.134.1 RunArray class: instance creation ------------------------------------------ +RunArray class: instance creation +--------------------------------- new Answer an empty RunArray @@ -7001,8 +6768,8 @@  File: gst-base.info, Node: RunArray-accessing, Next: RunArray-adding, Prev: RunArray class-instance creation, Up: RunArray -1.134.2 RunArray: accessing ---------------------------- +RunArray: accessing +------------------- at: anIndex Answer the element at index anIndex @@ -7015,8 +6782,8 @@  File: gst-base.info, Node: RunArray-adding, Next: RunArray-basic, Prev: RunArray-accessing, Up: RunArray -1.134.3 RunArray: adding ------------------------- +RunArray: adding +---------------- add: anObject afterIndex: anIndex Add anObject after the element at index anIndex @@ -7047,8 +6814,8 @@  File: gst-base.info, Node: RunArray-basic, Next: RunArray-copying, Prev: RunArray-adding, Up: RunArray -1.134.4 RunArray: basic ------------------------ +RunArray: basic +--------------- first Answer the first element in the receiver @@ -7063,8 +6830,8 @@  File: gst-base.info, Node: RunArray-copying, Next: RunArray-enumerating, Prev: RunArray-basic, Up: RunArray -1.134.5 RunArray: copying -------------------------- +RunArray: copying +----------------- deepCopy Answer a copy of the receiver containing copies of the receiver's @@ -7077,8 +6844,8 @@  File: gst-base.info, Node: RunArray-enumerating, Next: RunArray-removing, Prev: RunArray-copying, Up: RunArray -1.134.6 RunArray: enumerating ------------------------------ +RunArray: enumerating +--------------------- do: aBlock Enumerate all the objects in the receiver, passing each one to @@ -7093,8 +6860,8 @@  File: gst-base.info, Node: RunArray-removing, Next: RunArray-searching, Prev: RunArray-enumerating, Up: RunArray -1.134.7 RunArray: removing --------------------------- +RunArray: removing +------------------ removeAtIndex: anIndex Remove the object at index anIndex from the receiver and answer the @@ -7112,8 +6879,8 @@  File: gst-base.info, Node: RunArray-searching, Next: RunArray-testing, Prev: RunArray-removing, Up: RunArray -1.134.8 RunArray: searching ---------------------------- +RunArray: searching +------------------- indexOf: anObject startingAt: anIndex ifAbsent: aBlock Answer the index of the first copy of anObject in the receiver, @@ -7124,8 +6891,8 @@  File: gst-base.info, Node: RunArray-testing, Prev: RunArray-searching, Up: RunArray -1.134.9 RunArray: testing -------------------------- +RunArray: testing +----------------- = anObject Answer true if the receiver is equal to anObject @@ -7137,8 +6904,8 @@  File: gst-base.info, Node: ScaledDecimal, Next: Semaphore, Prev: RunArray, Up: Base classes -1.135 ScaledDecimal -=================== +ScaledDecimal +============= Defined in namespace Smalltalk Superclass: Number @@ -7162,8 +6929,8 @@  File: gst-base.info, Node: ScaledDecimal class-constants, Next: ScaledDecimal class-instance creation, Up: ScaledDecimal -1.135.1 ScaledDecimal class: constants --------------------------------------- +ScaledDecimal class: constants +------------------------------ initialize Initialize the receiver's class variables @@ -7172,8 +6939,8 @@  File: gst-base.info, Node: ScaledDecimal class-instance creation, Next: ScaledDecimal-arithmetic, Prev: ScaledDecimal class-constants, Up: ScaledDecimal -1.135.2 ScaledDecimal class: instance creation ----------------------------------------------- +ScaledDecimal class: instance creation +-------------------------------------- newFromNumber: aNumber scale: scale Answer a new instance of ScaledDecimal, representing a decimal @@ -7184,8 +6951,8 @@  File: gst-base.info, Node: ScaledDecimal-arithmetic, Next: ScaledDecimal-coercion, Prev: ScaledDecimal class-instance creation, Up: ScaledDecimal -1.135.3 ScaledDecimal: arithmetic ---------------------------------- +ScaledDecimal: arithmetic +------------------------- * aNumber Multiply two numbers and answer the result. @@ -7211,8 +6978,8 @@  File: gst-base.info, Node: ScaledDecimal-coercion, Next: ScaledDecimal-comparing, Prev: ScaledDecimal-arithmetic, Up: ScaledDecimal -1.135.4 ScaledDecimal: coercion -------------------------------- +ScaledDecimal: coercion +----------------------- asFloatD Answer the receiver, converted to a FloatD @@ -7251,8 +7018,8 @@  File: gst-base.info, Node: ScaledDecimal-comparing, Next: ScaledDecimal-constants, Prev: ScaledDecimal-coercion, Up: ScaledDecimal -1.135.5 ScaledDecimal: comparing --------------------------------- +ScaledDecimal: comparing +------------------------ < aNumber Answer whether the receiver is less than arg. @@ -7279,8 +7046,8 @@  File: gst-base.info, Node: ScaledDecimal-constants, Next: ScaledDecimal-printing, Prev: ScaledDecimal-comparing, Up: ScaledDecimal -1.135.6 ScaledDecimal: constants --------------------------------- +ScaledDecimal: constants +------------------------ one Answer the receiver's representation of one. @@ -7292,8 +7059,8 @@  File: gst-base.info, Node: ScaledDecimal-printing, Next: ScaledDecimal-storing, Prev: ScaledDecimal-constants, Up: ScaledDecimal -1.135.7 ScaledDecimal: printing -------------------------------- +ScaledDecimal: printing +----------------------- displayOn: aStream Print a representation of the receiver on aStream, intended to be @@ -7307,8 +7074,8 @@  File: gst-base.info, Node: ScaledDecimal-storing, Prev: ScaledDecimal-printing, Up: ScaledDecimal -1.135.8 ScaledDecimal: storing ------------------------------- +ScaledDecimal: storing +---------------------- storeOn: aStream Print Smalltalk code that compiles to the receiver on aStream. @@ -7317,8 +7084,8 @@  File: gst-base.info, Node: Semaphore, Next: SequenceableCollection, Prev: ScaledDecimal, Up: Base classes -1.136 Semaphore -=============== +Semaphore +========= Defined in namespace Smalltalk Superclass: LinkedList @@ -7339,8 +7106,8 @@  File: gst-base.info, Node: Semaphore class-instance creation, Next: Semaphore-accessing, Up: Semaphore -1.136.1 Semaphore class: instance creation ------------------------------------------- +Semaphore class: instance creation +---------------------------------- forMutualExclusion Answer a new semaphore with a signal on it. These semaphores are a @@ -7353,8 +7120,8 @@  File: gst-base.info, Node: Semaphore-accessing, Next: Semaphore-builtins, Prev: Semaphore class-instance creation, Up: Semaphore -1.136.2 Semaphore: accessing ----------------------------- +Semaphore: accessing +-------------------- name Answer a user-friendly name for the receiver @@ -7373,8 +7140,8 @@  File: gst-base.info, Node: Semaphore-builtins, Next: Semaphore-mutual exclusion, Prev: Semaphore-accessing, Up: Semaphore -1.136.3 Semaphore: builtins ---------------------------- +Semaphore: builtins +------------------- lock Without putting the receiver to sleep, force processes that try to @@ -7413,8 +7180,8 @@  File: gst-base.info, Node: Semaphore-mutual exclusion, Next: Semaphore-printing, Prev: Semaphore-builtins, Up: Semaphore -1.136.4 Semaphore: mutual exclusion ------------------------------------ +Semaphore: mutual exclusion +--------------------------- critical: aBlock Wait for the receiver to be free, execute aBlock and signal the @@ -7424,8 +7191,8 @@  File: gst-base.info, Node: Semaphore-printing, Prev: Semaphore-mutual exclusion, Up: Semaphore -1.136.5 Semaphore: printing ---------------------------- +Semaphore: printing +------------------- printOn: aStream Print a human-readable represention of the receiver on aStream. @@ -7434,8 +7201,8 @@  File: gst-base.info, Node: SequenceableCollection, Next: Set, Prev: Semaphore, Up: Base classes -1.137 SequenceableCollection -============================ +SequenceableCollection +====================== Defined in namespace Smalltalk Superclass: Collection @@ -7455,8 +7222,8 @@  File: gst-base.info, Node: SequenceableCollection class-instance creation, Next: SequenceableCollection-basic, Up: SequenceableCollection -1.137.1 SequenceableCollection class: instance creation -------------------------------------------------------- +SequenceableCollection class: instance creation +----------------------------------------------- streamContents: aBlock Create a ReadWriteStream on an empty instance of the receiver; @@ -7467,8 +7234,8 @@  File: gst-base.info, Node: SequenceableCollection-basic, Next: SequenceableCollection-copying SequenceableCollections, Prev: SequenceableCollection class-instance creation, Up: SequenceableCollection -1.137.2 SequenceableCollection: basic -------------------------------------- +SequenceableCollection: basic +----------------------------- after: oldObject Return the element after oldObject. Error if oldObject not found @@ -7559,8 +7326,8 @@  File: gst-base.info, Node: SequenceableCollection-copying SequenceableCollections, Next: SequenceableCollection-enumerating, Prev: SequenceableCollection-basic, Up: SequenceableCollection -1.137.3 SequenceableCollection: copying SequenceableCollections ---------------------------------------------------------------- +SequenceableCollection: copying SequenceableCollections +------------------------------------------------------- , aSequenceableCollection Append aSequenceableCollection at the end of the receiver (using @@ -7607,8 +7374,8 @@  File: gst-base.info, Node: SequenceableCollection-enumerating, Next: SequenceableCollection-replacing items, Prev: SequenceableCollection-copying SequenceableCollections, Up: SequenceableCollection -1.137.4 SequenceableCollection: enumerating -------------------------------------------- +SequenceableCollection: enumerating +----------------------------------- anyOne Answer an unspecified element of the collection. @@ -7689,8 +7456,8 @@  File: gst-base.info, Node: SequenceableCollection-replacing items, Next: SequenceableCollection-testing, Prev: SequenceableCollection-enumerating, Up: SequenceableCollection -1.137.5 SequenceableCollection: replacing items ------------------------------------------------ +SequenceableCollection: replacing items +--------------------------------------- replaceAll: anObject with: anotherObject In the receiver, replace every occurrence of anObject with @@ -7712,8 +7479,8 @@  File: gst-base.info, Node: SequenceableCollection-testing, Prev: SequenceableCollection-replacing items, Up: SequenceableCollection -1.137.6 SequenceableCollection: testing ---------------------------------------- +SequenceableCollection: testing +------------------------------- = aCollection Answer whether the receiver's items match those in aCollection @@ -7729,8 +7496,8 @@  File: gst-base.info, Node: Set, Next: SharedQueue, Prev: SequenceableCollection, Up: Base classes -1.138 Set -========= +Set +=== Defined in namespace Smalltalk Superclass: HashedCollection @@ -7747,8 +7514,8 @@  File: gst-base.info, Node: Set-arithmetic, Next: Set-awful ST-80 compatibility hacks, Up: Set -1.138.1 Set: arithmetic ------------------------ +Set: arithmetic +--------------- & aSet Compute the set intersection of the receiver and aSet. @@ -7763,8 +7530,8 @@  File: gst-base.info, Node: Set-awful ST-80 compatibility hacks, Next: Set-comparing, Prev: Set-arithmetic, Up: Set -1.138.2 Set: awful ST-80 compatibility hacks --------------------------------------------- +Set: awful ST-80 compatibility hacks +------------------------------------ findObjectIndex: object Tries to see if anObject exists as an indexed variable. As soon as @@ -7774,8 +7541,8 @@  File: gst-base.info, Node: Set-comparing, Prev: Set-awful ST-80 compatibility hacks, Up: Set -1.138.3 Set: comparing ----------------------- +Set: comparing +-------------- < aSet Answer whether the receiver is a strict subset of aSet @@ -7793,8 +7560,8 @@  File: gst-base.info, Node: SharedQueue, Next: Signal, Prev: Set, Up: Base classes -1.139 SharedQueue -================= +SharedQueue +=========== Defined in namespace Smalltalk Superclass: Object @@ -7812,8 +7579,8 @@  File: gst-base.info, Node: SharedQueue class-instance creation, Next: SharedQueue-accessing, Up: SharedQueue -1.139.1 SharedQueue class: instance creation --------------------------------------------- +SharedQueue class: instance creation +------------------------------------ new Create a new instance of the receiver @@ -7826,8 +7593,8 @@  File: gst-base.info, Node: SharedQueue-accessing, Prev: SharedQueue class-instance creation, Up: SharedQueue -1.139.2 SharedQueue: accessing ------------------------------- +SharedQueue: accessing +---------------------- isEmpty Answer whether there is an object on the queue @@ -7846,8 +7613,8 @@  File: gst-base.info, Node: Signal, Next: SingletonProxy, Prev: SharedQueue, Up: Base classes -1.140 Signal -============ +Signal +====== Defined in namespace Smalltalk Superclass: Object @@ -7866,8 +7633,8 @@  File: gst-base.info, Node: Signal-accessing, Next: Signal-exception handling, Up: Signal -1.140.1 Signal: accessing -------------------------- +Signal: accessing +----------------- argument Answer the first argument of the receiver @@ -7905,8 +7672,8 @@  File: gst-base.info, Node: Signal-exception handling, Prev: Signal-accessing, Up: Signal -1.140.2 Signal: exception handling ----------------------------------- +Signal: exception handling +-------------------------- defaultAction Execute the default handler for the raised exception @@ -7973,8 +7740,8 @@  File: gst-base.info, Node: SingletonProxy, Next: SmallInteger, Prev: Signal, Up: Base classes -1.141 SingletonProxy -==================== +SingletonProxy +============== Defined in namespace Smalltalk Superclass: AlternativeObjectProxy @@ -7993,8 +7760,8 @@  File: gst-base.info, Node: SingletonProxy class-accessing, Next: SingletonProxy class-instance creation, Up: SingletonProxy -1.141.1 SingletonProxy class: accessing ---------------------------------------- +SingletonProxy class: accessing +------------------------------- acceptUsageForClass: aClass The receiver was asked to be used as a proxy for the class aClass. @@ -8004,8 +7771,8 @@  File: gst-base.info, Node: SingletonProxy class-instance creation, Next: SingletonProxy-saving and restoring, Prev: SingletonProxy class-accessing, Up: SingletonProxy -1.141.2 SingletonProxy class: instance creation ------------------------------------------------ +SingletonProxy class: instance creation +--------------------------------------- on: anObject Answer a proxy to be used to save anObject. The proxy stores the @@ -8016,8 +7783,8 @@  File: gst-base.info, Node: SingletonProxy-saving and restoring, Prev: SingletonProxy class-instance creation, Up: SingletonProxy -1.141.3 SingletonProxy: saving and restoring --------------------------------------------- +SingletonProxy: saving and restoring +------------------------------------ object Reconstruct the object stored in the proxy and answer it; the @@ -8028,8 +7795,8 @@  File: gst-base.info, Node: SmallInteger, Next: SortedCollection, Prev: SingletonProxy, Up: Base classes -1.142 SmallInteger -================== +SmallInteger +============ Defined in namespace Smalltalk Superclass: Integer @@ -8051,8 +7818,8 @@  File: gst-base.info, Node: SmallInteger class-getting limits, Next: SmallInteger class-testing, Up: SmallInteger -1.142.1 SmallInteger class: getting limits ------------------------------------------- +SmallInteger class: getting limits +---------------------------------- bits Answer the number of bits (excluding the sign) that can be @@ -8070,8 +7837,8 @@  File: gst-base.info, Node: SmallInteger class-testing, Next: SmallInteger-bit arithmetic, Prev: SmallInteger class-getting limits, Up: SmallInteger -1.142.2 SmallInteger class: testing ------------------------------------ +SmallInteger class: testing +--------------------------- isIdentity Answer whether x = y implies x == y for instances of the receiver @@ -8080,8 +7847,8 @@  File: gst-base.info, Node: SmallInteger-bit arithmetic, Next: SmallInteger-built ins, Prev: SmallInteger class-testing, Up: SmallInteger -1.142.3 SmallInteger: bit arithmetic ------------------------------------- +SmallInteger: bit arithmetic +---------------------------- highBit Return the index of the highest order 1 bit of the receiver @@ -8090,8 +7857,8 @@  File: gst-base.info, Node: SmallInteger-built ins, Next: SmallInteger-builtins, Prev: SmallInteger-bit arithmetic, Up: SmallInteger -1.142.4 SmallInteger: built ins -------------------------------- +SmallInteger: built ins +----------------------- * arg Multiply the receiver and arg and answer another Number @@ -8180,8 +7947,8 @@  File: gst-base.info, Node: SmallInteger-builtins, Next: SmallInteger-coercion methods, Prev: SmallInteger-built ins, Up: SmallInteger -1.142.5 SmallInteger: builtins ------------------------------- +SmallInteger: builtins +---------------------- at: anIndex Answer the index-th indexed instance variable of the receiver. @@ -8206,8 +7973,8 @@  File: gst-base.info, Node: SmallInteger-coercion methods, Next: SmallInteger-testing functionality, Prev: SmallInteger-builtins, Up: SmallInteger -1.142.6 SmallInteger: coercion methods --------------------------------------- +SmallInteger: coercion methods +------------------------------ generality Return the receiver's generality @@ -8222,8 +7989,8 @@  File: gst-base.info, Node: SmallInteger-testing functionality, Prev: SmallInteger-coercion methods, Up: SmallInteger -1.142.7 SmallInteger: testing functionality -------------------------------------------- +SmallInteger: testing functionality +----------------------------------- isSmallInteger Answer `true'. @@ -8232,8 +7999,8 @@  File: gst-base.info, Node: SortedCollection, Next: Stream, Prev: SmallInteger, Up: Base classes -1.143 SortedCollection -====================== +SortedCollection +================ Defined in namespace Smalltalk Superclass: OrderedCollection @@ -8261,8 +8028,8 @@  File: gst-base.info, Node: SortedCollection class-hacking, Next: SortedCollection class-instance creation, Up: SortedCollection -1.143.1 SortedCollection class: hacking ---------------------------------------- +SortedCollection class: hacking +------------------------------- defaultSortBlock Answer a default sort block for the receiver. @@ -8271,8 +8038,8 @@  File: gst-base.info, Node: SortedCollection class-instance creation, Next: SortedCollection-basic, Prev: SortedCollection class-hacking, Up: SortedCollection -1.143.2 SortedCollection class: instance creation -------------------------------------------------- +SortedCollection class: instance creation +----------------------------------------- new Answer a new collection with a default size and sort block @@ -8289,8 +8056,8 @@  File: gst-base.info, Node: SortedCollection-basic, Next: SortedCollection-copying, Prev: SortedCollection class-instance creation, Up: SortedCollection -1.143.3 SortedCollection: basic -------------------------------- +SortedCollection: basic +----------------------- last Answer the last item of the receiver @@ -8310,8 +8077,8 @@  File: gst-base.info, Node: SortedCollection-copying, Next: SortedCollection-disabled, Prev: SortedCollection-basic, Up: SortedCollection -1.143.4 SortedCollection: copying ---------------------------------- +SortedCollection: copying +------------------------- copyEmpty: newSize Answer an empty copy of the receiver, with the same sort block as @@ -8321,8 +8088,8 @@  File: gst-base.info, Node: SortedCollection-disabled, Next: SortedCollection-enumerating, Prev: SortedCollection-copying, Up: SortedCollection -1.143.5 SortedCollection: disabled ----------------------------------- +SortedCollection: disabled +-------------------------- add: anObject afterIndex: i This method should not be called for instances of this class. @@ -8349,8 +8116,8 @@  File: gst-base.info, Node: SortedCollection-enumerating, Next: SortedCollection-saving and loading, Prev: SortedCollection-disabled, Up: SortedCollection -1.143.6 SortedCollection: enumerating -------------------------------------- +SortedCollection: enumerating +----------------------------- beConsistent Prepare the receiver to be walked through with #do: or another @@ -8360,8 +8127,8 @@  File: gst-base.info, Node: SortedCollection-saving and loading, Next: SortedCollection-searching, Prev: SortedCollection-enumerating, Up: SortedCollection -1.143.7 SortedCollection: saving and loading --------------------------------------------- +SortedCollection: saving and loading +------------------------------------ postLoad Restore the default sortBlock if it is nil @@ -8373,8 +8140,8 @@  File: gst-base.info, Node: SortedCollection-searching, Prev: SortedCollection-saving and loading, Up: SortedCollection -1.143.8 SortedCollection: searching ------------------------------------ +SortedCollection: searching +--------------------------- includes: anObject Private - Answer whether the receiver includes an item which is @@ -8392,8 +8159,8 @@  File: gst-base.info, Node: Stream, Next: String, Prev: SortedCollection, Up: Base classes -1.144 Stream -============ +Stream +====== Defined in namespace Smalltalk Superclass: Object @@ -8421,8 +8188,8 @@  File: gst-base.info, Node: Stream-accessing-reading, Next: Stream-accessing-writing, Up: Stream -1.144.1 Stream: accessing-reading ---------------------------------- +Stream: accessing-reading +------------------------- contents Answer the whole contents of the receiver, from the next object to @@ -8474,8 +8241,8 @@  File: gst-base.info, Node: Stream-accessing-writing, Next: Stream-basic, Prev: Stream-accessing-reading, Up: Stream -1.144.2 Stream: accessing-writing ---------------------------------- +Stream: accessing-writing +------------------------- next: anInteger put: anObject Write anInteger copies of anObject to the receiver @@ -8494,8 +8261,8 @@  File: gst-base.info, Node: Stream-basic, Next: Stream-character writing, Prev: Stream-accessing-writing, Up: Stream -1.144.3 Stream: basic ---------------------- +Stream: basic +------------- species Answer `Array'. @@ -8504,8 +8271,8 @@  File: gst-base.info, Node: Stream-character writing, Next: Stream-enumerating, Prev: Stream-basic, Up: Stream -1.144.4 Stream: character writing ---------------------------------- +Stream: character writing +------------------------- cr Store a cr on the receiver @@ -8535,8 +8302,8 @@  File: gst-base.info, Node: Stream-enumerating, Next: Stream-filing out, Prev: Stream-character writing, Up: Stream -1.144.5 Stream: enumerating ---------------------------- +Stream: enumerating +------------------- do: aBlock Evaluate aBlock once for every object in the receiver @@ -8545,8 +8312,8 @@  File: gst-base.info, Node: Stream-filing out, Next: Stream-positioning, Prev: Stream-enumerating, Up: Stream -1.144.6 Stream: filing out --------------------------- +Stream: filing out +------------------ fileOut: aClass File out aClass on the receiver. If aClass is not a metaclass, @@ -8557,8 +8324,8 @@  File: gst-base.info, Node: Stream-positioning, Next: Stream-printing, Prev: Stream-filing out, Up: Stream -1.144.7 Stream: positioning ---------------------------- +Stream: positioning +------------------- skip: anInteger Move the position forwards by anInteger places @@ -8578,8 +8345,8 @@  File: gst-base.info, Node: Stream-printing, Next: Stream-providing consistent protocols, Prev: Stream-positioning, Up: Stream -1.144.8 Stream: printing ------------------------- +Stream: printing +---------------- << anObject This method is a short-cut for #display:; it prints anObject on the @@ -8600,8 +8367,8 @@  File: gst-base.info, Node: Stream-providing consistent protocols, Next: Stream-storing, Prev: Stream-printing, Up: Stream -1.144.9 Stream: providing consistent protocols ----------------------------------------------- +Stream: providing consistent protocols +-------------------------------------- close Do nothing. This is provided for consistency with file streams @@ -8613,8 +8380,8 @@  File: gst-base.info, Node: Stream-storing, Next: Stream-testing, Prev: Stream-providing consistent protocols, Up: Stream -1.144.10 Stream: storing ------------------------- +Stream: storing +--------------- store: anObject Print Smalltalk code compiling to anObject on the receiver, by @@ -8625,8 +8392,8 @@  File: gst-base.info, Node: Stream-testing, Prev: Stream-storing, Up: Stream -1.144.11 Stream: testing ------------------------- +Stream: testing +--------------- atEnd Answer whether the stream has got to an end @@ -8639,8 +8406,8 @@  File: gst-base.info, Node: String, Next: Symbol, Prev: Stream, Up: Base classes -1.145 String -============ +String +====== Defined in namespace Smalltalk Superclass: CharacterArray @@ -8661,8 +8428,8 @@  File: gst-base.info, Node: String class-basic, Next: String class-instance creation, Up: String -1.145.1 String class: basic ---------------------------- +String class: basic +------------------- , aString Answer a new instance of an ArrayedCollection containing all the @@ -8673,8 +8440,8 @@  File: gst-base.info, Node: String class-instance creation, Next: String-built ins, Prev: String class-basic, Up: String -1.145.2 String class: instance creation ---------------------------------------- +String class: instance creation +------------------------------- fromCData: aCObject size: anInteger Answer a String containing anInteger bytes starting at the @@ -8684,8 +8451,8 @@  File: gst-base.info, Node: String-built ins, Next: String-converting, Prev: String class-instance creation, Up: String -1.145.3 String: built ins -------------------------- +String: built ins +----------------- asCData: aCType Convert the receiver to a CObject with the given type @@ -8739,8 +8506,8 @@  File: gst-base.info, Node: String-converting, Next: String-storing, Prev: String-built ins, Up: String -1.145.4 String: converting --------------------------- +String: converting +------------------ asByteArray Return the receiver, converted to a ByteArray of ASCII values @@ -8755,8 +8522,8 @@  File: gst-base.info, Node: String-storing, Next: String-testing functionality, Prev: String-converting, Up: String -1.145.5 String: storing ------------------------ +String: storing +--------------- storeOn: aStream Print Smalltalk code compiling to the receiver on aStream @@ -8765,8 +8532,8 @@  File: gst-base.info, Node: String-testing functionality, Next: String-useful functionality, Prev: String-storing, Up: String -1.145.6 String: testing functionality -------------------------------------- +String: testing functionality +----------------------------- isString Answer `true'. @@ -8775,8 +8542,8 @@  File: gst-base.info, Node: String-useful functionality, Prev: String-testing functionality, Up: String -1.145.7 String: useful functionality ------------------------------------- +String: useful functionality +---------------------------- linesDo: aBlock Send 'aBlock' a substring of the receiver for each newline @@ -8786,8 +8553,8 @@  File: gst-base.info, Node: Symbol, Next: SymLink, Prev: String, Up: Base classes -1.146 Symbol -============ +Symbol +====== Defined in namespace Smalltalk Superclass: String @@ -8813,8 +8580,8 @@  File: gst-base.info, Node: Symbol class-built ins, Next: Symbol class-instance creation, Up: Symbol -1.146.1 Symbol class: built ins -------------------------------- +Symbol class: built ins +----------------------- intern: aString Private - Same as 'aString asSymbol' @@ -8823,8 +8590,8 @@  File: gst-base.info, Node: Symbol class-instance creation, Next: Symbol class-symbol table, Prev: Symbol class-built ins, Up: Symbol -1.146.2 Symbol class: instance creation ---------------------------------------- +Symbol class: instance creation +------------------------------- internCharacter: aCharacter Answer the one-character symbol associated to the given character. @@ -8858,8 +8625,8 @@  File: gst-base.info, Node: Symbol class-symbol table, Next: Symbol-basic, Prev: Symbol class-instance creation, Up: Symbol -1.146.3 Symbol class: symbol table ----------------------------------- +Symbol class: symbol table +-------------------------- hasInterned: aString ifTrue: aBlock If aString has not been interned yet, answer false. Else, pass the @@ -8891,8 +8658,8 @@  File: gst-base.info, Node: Symbol-basic, Next: Symbol-built ins, Prev: Symbol class-symbol table, Up: Symbol -1.146.4 Symbol: basic ---------------------- +Symbol: basic +------------- deepCopy Returns a deep copy of the receiver. As Symbols are identity @@ -8916,8 +8683,8 @@  File: gst-base.info, Node: Symbol-built ins, Next: Symbol-converting, Prev: Symbol-basic, Up: Symbol -1.146.5 Symbol: built ins -------------------------- +Symbol: built ins +----------------- = aSymbol Answer whether the receiver and aSymbol are the same object @@ -8930,8 +8697,8 @@  File: gst-base.info, Node: Symbol-converting, Next: Symbol-misc, Prev: Symbol-built ins, Up: Symbol -1.146.6 Symbol: converting --------------------------- +Symbol: converting +------------------ asString Answer a String with the same characters as the receiver @@ -8944,8 +8711,8 @@  File: gst-base.info, Node: Symbol-misc, Next: Symbol-storing, Prev: Symbol-converting, Up: Symbol -1.146.7 Symbol: misc --------------------- +Symbol: misc +------------ species Answer `String'. @@ -8954,8 +8721,8 @@  File: gst-base.info, Node: Symbol-storing, Next: Symbol-testing, Prev: Symbol-misc, Up: Symbol -1.146.8 Symbol: storing ------------------------ +Symbol: storing +--------------- displayOn: aStream Print a represention of the receiver on aStream. For most objects @@ -8975,8 +8742,8 @@  File: gst-base.info, Node: Symbol-testing, Next: Symbol-testing functionality, Prev: Symbol-storing, Up: Symbol -1.146.9 Symbol: testing ------------------------ +Symbol: testing +--------------- isSimpleSymbol Answer whether the receiver must be represented in quoted-string @@ -8986,8 +8753,8 @@  File: gst-base.info, Node: Symbol-testing functionality, Prev: Symbol-testing, Up: Symbol -1.146.10 Symbol: testing functionality --------------------------------------- +Symbol: testing functionality +----------------------------- isString Answer `false'. @@ -8999,8 +8766,8 @@  File: gst-base.info, Node: SymLink, Next: SystemDictionary, Prev: Symbol, Up: Base classes -1.147 SymLink -============= +SymLink +======= Defined in namespace Smalltalk Superclass: Link @@ -9019,8 +8786,8 @@  File: gst-base.info, Node: SymLink class-instance creation, Next: SymLink-accessing, Up: SymLink -1.147.1 SymLink class: instance creation ----------------------------------------- +SymLink class: instance creation +-------------------------------- symbol: aSymbol nextLink: aSymLink Answer a new SymLink, which refers to aSymbol and points to @@ -9030,8 +8797,8 @@  File: gst-base.info, Node: SymLink-accessing, Next: SymLink-iteration, Prev: SymLink class-instance creation, Up: SymLink -1.147.2 SymLink: accessing --------------------------- +SymLink: accessing +------------------ symbol Answer the Symbol that the receiver refers to in the symbol table. @@ -9043,8 +8810,8 @@  File: gst-base.info, Node: SymLink-iteration, Next: SymLink-printing, Prev: SymLink-accessing, Up: SymLink -1.147.3 SymLink: iteration --------------------------- +SymLink: iteration +------------------ do: aBlock Evaluate aBlock for each symbol in the list @@ -9053,8 +8820,8 @@  File: gst-base.info, Node: SymLink-printing, Prev: SymLink-iteration, Up: SymLink -1.147.4 SymLink: printing -------------------------- +SymLink: printing +----------------- printOn: aStream Print a representation of the receiver on aStream. @@ -9063,8 +8830,8 @@  File: gst-base.info, Node: SystemDictionary, Next: SystemExceptions.AlreadyDefined, Prev: SymLink, Up: Base classes -1.148 SystemDictionary -====================== +SystemDictionary +================ Defined in namespace Smalltalk Superclass: RootNamespace @@ -9087,8 +8854,8 @@  File: gst-base.info, Node: SystemDictionary-basic, Next: SystemDictionary-builtins, Up: SystemDictionary -1.148.1 SystemDictionary: basic -------------------------------- +SystemDictionary: basic +----------------------- halt Interrupt interpreter @@ -9101,8 +8868,8 @@  File: gst-base.info, Node: SystemDictionary-builtins, Next: SystemDictionary-C functions, Prev: SystemDictionary-basic, Up: SystemDictionary -1.148.2 SystemDictionary: builtins ----------------------------------- +SystemDictionary: builtins +-------------------------- basicBacktrace Prints the method invocation stack backtrace, as an aid to @@ -9146,8 +8913,8 @@  File: gst-base.info, Node: SystemDictionary-C functions, Next: SystemDictionary-miscellaneous, Prev: SystemDictionary-builtins, Up: SystemDictionary -1.148.3 SystemDictionary: C functions -------------------------------------- +SystemDictionary: C functions +----------------------------- getArgc C call-out to getArgc. Do not modify! @@ -9168,8 +8935,8 @@  File: gst-base.info, Node: SystemDictionary-miscellaneous, Next: SystemDictionary-printing, Prev: SystemDictionary-C functions, Up: SystemDictionary -1.148.4 SystemDictionary: miscellaneous ---------------------------------------- +SystemDictionary: miscellaneous +------------------------------- arguments Return the command line arguments after the -a switch @@ -9181,8 +8948,8 @@  File: gst-base.info, Node: SystemDictionary-printing, Next: SystemDictionary-special accessing, Prev: SystemDictionary-miscellaneous, Up: SystemDictionary -1.148.5 SystemDictionary: printing ----------------------------------- +SystemDictionary: printing +-------------------------- nameIn: aNamespace Answer `'Smalltalk". @@ -9197,8 +8964,8 @@  File: gst-base.info, Node: SystemDictionary-special accessing, Next: SystemDictionary-testing, Prev: SystemDictionary-printing, Up: SystemDictionary -1.148.6 SystemDictionary: special accessing -------------------------------------------- +SystemDictionary: special accessing +----------------------------------- addFeature: aFeature Add the aFeature feature to the Features set @@ -9217,8 +8984,8 @@  File: gst-base.info, Node: SystemDictionary-testing, Prev: SystemDictionary-special accessing, Up: SystemDictionary -1.148.7 SystemDictionary: testing ---------------------------------- +SystemDictionary: testing +------------------------- isSmalltalk Answer `true'. @@ -9227,8 +8994,8 @@  File: gst-base.info, Node: SystemExceptions.AlreadyDefined, Next: SystemExceptions.ArgumentOutOfRange, Prev: SystemDictionary, Up: Base classes -1.149 SystemExceptions.AlreadyDefined -===================================== +SystemExceptions.AlreadyDefined +=============================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidArgument @@ -9243,8 +9010,8 @@  File: gst-base.info, Node: SystemExceptions.AlreadyDefined-accessing, Up: SystemExceptions.AlreadyDefined -1.149.1 SystemExceptions.AlreadyDefined: accessing --------------------------------------------------- +SystemExceptions.AlreadyDefined: accessing +------------------------------------------ description Answer a description for the error @@ -9253,8 +9020,8 @@  File: gst-base.info, Node: SystemExceptions.ArgumentOutOfRange, Next: SystemExceptions.BadReturn, Prev: SystemExceptions.AlreadyDefined, Up: Base classes -1.150 SystemExceptions.ArgumentOutOfRange -========================================= +SystemExceptions.ArgumentOutOfRange +=================================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidArgument @@ -9270,8 +9037,8 @@  File: gst-base.info, Node: SystemExceptions.ArgumentOutOfRange class-signaling, Next: SystemExceptions.ArgumentOutOfRange-accessing, Up: SystemExceptions.ArgumentOutOfRange -1.150.1 SystemExceptions.ArgumentOutOfRange class: signaling ------------------------------------------------------------- +SystemExceptions.ArgumentOutOfRange class: signaling +---------------------------------------------------- signalOn: value mustBeBetween: low and: high Raise the exception. The given value was not between low and high. @@ -9280,8 +9047,8 @@  File: gst-base.info, Node: SystemExceptions.ArgumentOutOfRange-accessing, Prev: SystemExceptions.ArgumentOutOfRange class-signaling, Up: SystemExceptions.ArgumentOutOfRange -1.150.2 SystemExceptions.ArgumentOutOfRange: accessing ------------------------------------------------------- +SystemExceptions.ArgumentOutOfRange: accessing +---------------------------------------------- description Answer a textual description of the exception. @@ -9302,8 +9069,8 @@  File: gst-base.info, Node: SystemExceptions.BadReturn, Next: SystemExceptions.CInterfaceError, Prev: SystemExceptions.ArgumentOutOfRange, Up: Base classes -1.151 SystemExceptions.BadReturn -================================ +SystemExceptions.BadReturn +========================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.VMError @@ -9318,8 +9085,8 @@  File: gst-base.info, Node: SystemExceptions.BadReturn-accessing, Up: SystemExceptions.BadReturn -1.151.1 SystemExceptions.BadReturn: accessing ---------------------------------------------- +SystemExceptions.BadReturn: accessing +------------------------------------- description Answer a textual description of the exception. @@ -9328,8 +9095,8 @@  File: gst-base.info, Node: SystemExceptions.CInterfaceError, Next: SystemExceptions.EmptyCollection, Prev: SystemExceptions.BadReturn, Up: Base classes -1.152 SystemExceptions.CInterfaceError -====================================== +SystemExceptions.CInterfaceError +================================ Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.PrimitiveFailed @@ -9344,8 +9111,8 @@  File: gst-base.info, Node: SystemExceptions.CInterfaceError-accessing, Up: SystemExceptions.CInterfaceError -1.152.1 SystemExceptions.CInterfaceError: accessing ---------------------------------------------------- +SystemExceptions.CInterfaceError: accessing +------------------------------------------- description Answer a textual description of the exception. @@ -9354,8 +9121,8 @@  File: gst-base.info, Node: SystemExceptions.EmptyCollection, Next: SystemExceptions.EndOfStream, Prev: SystemExceptions.CInterfaceError, Up: Base classes -1.153 SystemExceptions.EmptyCollection -====================================== +SystemExceptions.EmptyCollection +================================ Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -9369,8 +9136,8 @@  File: gst-base.info, Node: SystemExceptions.EmptyCollection-accessing, Up: SystemExceptions.EmptyCollection -1.153.1 SystemExceptions.EmptyCollection: accessing ---------------------------------------------------- +SystemExceptions.EmptyCollection: accessing +------------------------------------------- description Answer a textual description of the exception. @@ -9379,8 +9146,8 @@  File: gst-base.info, Node: SystemExceptions.EndOfStream, Next: SystemExceptions.FileError, Prev: SystemExceptions.EmptyCollection, Up: Base classes -1.154 SystemExceptions.EndOfStream -================================== +SystemExceptions.EndOfStream +============================ Defined in namespace Smalltalk.SystemExceptions Superclass: Notification @@ -9395,8 +9162,8 @@  File: gst-base.info, Node: SystemExceptions.EndOfStream class-signaling, Next: SystemExceptions.EndOfStream-accessing, Up: SystemExceptions.EndOfStream -1.154.1 SystemExceptions.EndOfStream class: signaling ------------------------------------------------------ +SystemExceptions.EndOfStream class: signaling +--------------------------------------------- signalOn: stream Answer an exception reporting the parameter has reached its end. @@ -9405,8 +9172,8 @@  File: gst-base.info, Node: SystemExceptions.EndOfStream-accessing, Prev: SystemExceptions.EndOfStream class-signaling, Up: SystemExceptions.EndOfStream -1.154.2 SystemExceptions.EndOfStream: accessing ------------------------------------------------ +SystemExceptions.EndOfStream: accessing +--------------------------------------- description Answer a textual description of the exception. @@ -9421,8 +9188,8 @@  File: gst-base.info, Node: SystemExceptions.FileError, Next: SystemExceptions.IndexOutOfRange, Prev: SystemExceptions.EndOfStream, Up: Base classes -1.155 SystemExceptions.FileError -================================ +SystemExceptions.FileError +========================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.PrimitiveFailed @@ -9437,8 +9204,8 @@  File: gst-base.info, Node: SystemExceptions.FileError-accessing, Up: SystemExceptions.FileError -1.155.1 SystemExceptions.FileError: accessing ---------------------------------------------- +SystemExceptions.FileError: accessing +------------------------------------- description Answer a textual description of the exception. @@ -9447,8 +9214,8 @@  File: gst-base.info, Node: SystemExceptions.IndexOutOfRange, Next: SystemExceptions.InvalidArgument, Prev: SystemExceptions.FileError, Up: Base classes -1.156 SystemExceptions.IndexOutOfRange -====================================== +SystemExceptions.IndexOutOfRange +================================ Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.ArgumentOutOfRange @@ -9464,8 +9231,8 @@  File: gst-base.info, Node: SystemExceptions.IndexOutOfRange class-signaling, Next: SystemExceptions.IndexOutOfRange-accessing, Up: SystemExceptions.IndexOutOfRange -1.156.1 SystemExceptions.IndexOutOfRange class: signaling ---------------------------------------------------------- +SystemExceptions.IndexOutOfRange class: signaling +------------------------------------------------- signalOn: aCollection withIndex: value The given index was out of range in aCollection. @@ -9474,8 +9241,8 @@  File: gst-base.info, Node: SystemExceptions.IndexOutOfRange-accessing, Prev: SystemExceptions.IndexOutOfRange class-signaling, Up: SystemExceptions.IndexOutOfRange -1.156.2 SystemExceptions.IndexOutOfRange: accessing ---------------------------------------------------- +SystemExceptions.IndexOutOfRange: accessing +------------------------------------------- collection Answer the collection that triggered the error @@ -9493,8 +9260,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidArgument, Next: SystemExceptions.InvalidProcessState, Prev: SystemExceptions.IndexOutOfRange, Up: Base classes -1.157 SystemExceptions.InvalidArgument -====================================== +SystemExceptions.InvalidArgument +================================ Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -9508,8 +9275,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidArgument-accessing, Up: SystemExceptions.InvalidArgument -1.157.1 SystemExceptions.InvalidArgument: accessing ---------------------------------------------------- +SystemExceptions.InvalidArgument: accessing +------------------------------------------- messageText Answer an exception's message text. @@ -9518,8 +9285,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidProcessState, Next: SystemExceptions.InvalidSize, Prev: SystemExceptions.InvalidArgument, Up: Base classes -1.158 SystemExceptions.InvalidProcessState -========================================== +SystemExceptions.InvalidProcessState +==================================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -9534,8 +9301,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidProcessState-accessing, Up: SystemExceptions.InvalidProcessState -1.158.1 SystemExceptions.InvalidProcessState: accessing -------------------------------------------------------- +SystemExceptions.InvalidProcessState: accessing +----------------------------------------------- description Answer a textual description of the exception. @@ -9544,8 +9311,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidSize, Next: SystemExceptions.InvalidValue, Prev: SystemExceptions.InvalidProcessState, Up: Base classes -1.159 SystemExceptions.InvalidSize -================================== +SystemExceptions.InvalidSize +============================ Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidArgument @@ -9559,8 +9326,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidSize-accessing, Up: SystemExceptions.InvalidSize -1.159.1 SystemExceptions.InvalidSize: accessing ------------------------------------------------ +SystemExceptions.InvalidSize: accessing +--------------------------------------- description Answer a textual description of the exception. @@ -9569,8 +9336,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidValue, Next: SystemExceptions.MustBeBoolean, Prev: SystemExceptions.InvalidSize, Up: Base classes -1.160 SystemExceptions.InvalidValue -=================================== +SystemExceptions.InvalidValue +============================= Defined in namespace Smalltalk.SystemExceptions Superclass: Error @@ -9585,8 +9352,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidValue class-signaling, Next: SystemExceptions.InvalidValue-accessing, Up: SystemExceptions.InvalidValue -1.160.1 SystemExceptions.InvalidValue class: signaling ------------------------------------------------------- +SystemExceptions.InvalidValue class: signaling +---------------------------------------------- signalOn: value Answer an exception reporting the parameter as invalid. @@ -9599,8 +9366,8 @@  File: gst-base.info, Node: SystemExceptions.InvalidValue-accessing, Prev: SystemExceptions.InvalidValue class-signaling, Up: SystemExceptions.InvalidValue -1.160.2 SystemExceptions.InvalidValue: accessing ------------------------------------------------- +SystemExceptions.InvalidValue: accessing +---------------------------------------- description Answer a textual description of the exception. @@ -9618,8 +9385,8 @@  File: gst-base.info, Node: SystemExceptions.MustBeBoolean, Next: SystemExceptions.MutationError, Prev: SystemExceptions.InvalidValue, Up: Base classes -1.161 SystemExceptions.MustBeBoolean -==================================== +SystemExceptions.MustBeBoolean +============================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -9631,8 +9398,8 @@  File: gst-base.info, Node: SystemExceptions.MutationError, Next: SystemExceptions.NoRunnableProcess, Prev: SystemExceptions.MustBeBoolean, Up: Base classes -1.162 SystemExceptions.MutationError -==================================== +SystemExceptions.MutationError +============================== Defined in namespace Smalltalk.SystemExceptions Superclass: Error @@ -9646,8 +9413,8 @@  File: gst-base.info, Node: SystemExceptions.MutationError-accessing, Up: SystemExceptions.MutationError -1.162.1 SystemExceptions.MutationError: accessing -------------------------------------------------- +SystemExceptions.MutationError: accessing +----------------------------------------- description Answer a textual description of the exception. @@ -9656,8 +9423,8 @@  File: gst-base.info, Node: SystemExceptions.NoRunnableProcess, Next: SystemExceptions.NotFound, Prev: SystemExceptions.MutationError, Up: Base classes -1.163 SystemExceptions.NoRunnableProcess -======================================== +SystemExceptions.NoRunnableProcess +================================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.VMError @@ -9671,8 +9438,8 @@  File: gst-base.info, Node: SystemExceptions.NoRunnableProcess-accessing, Up: SystemExceptions.NoRunnableProcess -1.163.1 SystemExceptions.NoRunnableProcess: accessing ------------------------------------------------------ +SystemExceptions.NoRunnableProcess: accessing +--------------------------------------------- description Answer a textual description of the exception. @@ -9681,8 +9448,8 @@  File: gst-base.info, Node: SystemExceptions.NotFound, Next: SystemExceptions.NotImplemented, Prev: SystemExceptions.NoRunnableProcess, Up: Base classes -1.164 SystemExceptions.NotFound -=============================== +SystemExceptions.NotFound +========================= Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidArgument @@ -9697,8 +9464,8 @@  File: gst-base.info, Node: SystemExceptions.NotFound class-accessing, Next: SystemExceptions.NotFound-accessing, Up: SystemExceptions.NotFound -1.164.1 SystemExceptions.NotFound class: accessing --------------------------------------------------- +SystemExceptions.NotFound class: accessing +------------------------------------------ signalOn: value what: aString Raise an exception; aString specifies what was not found (a key, @@ -9708,8 +9475,8 @@  File: gst-base.info, Node: SystemExceptions.NotFound-accessing, Prev: SystemExceptions.NotFound class-accessing, Up: SystemExceptions.NotFound -1.164.2 SystemExceptions.NotFound: accessing --------------------------------------------- +SystemExceptions.NotFound: accessing +------------------------------------ description Answer a textual description of the exception. @@ -9718,8 +9485,8 @@  File: gst-base.info, Node: SystemExceptions.NotImplemented, Next: SystemExceptions.NotIndexable, Prev: SystemExceptions.NotFound, Up: Base classes -1.165 SystemExceptions.NotImplemented -===================================== +SystemExceptions.NotImplemented +=============================== Defined in namespace Smalltalk.SystemExceptions Superclass: Error @@ -9733,8 +9500,8 @@  File: gst-base.info, Node: SystemExceptions.NotImplemented-accessing, Up: SystemExceptions.NotImplemented -1.165.1 SystemExceptions.NotImplemented: accessing --------------------------------------------------- +SystemExceptions.NotImplemented: accessing +------------------------------------------ description Answer a textual description of the exception. @@ -9743,8 +9510,8 @@  File: gst-base.info, Node: SystemExceptions.NotIndexable, Next: SystemExceptions.NotYetImplemented, Prev: SystemExceptions.NotImplemented, Up: Base classes -1.166 SystemExceptions.NotIndexable -=================================== +SystemExceptions.NotIndexable +============================= Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -9758,8 +9525,8 @@  File: gst-base.info, Node: SystemExceptions.NotIndexable-accessing, Up: SystemExceptions.NotIndexable -1.166.1 SystemExceptions.NotIndexable: accessing ------------------------------------------------- +SystemExceptions.NotIndexable: accessing +---------------------------------------- description Answer a textual description of the exception. @@ -9768,8 +9535,8 @@  File: gst-base.info, Node: SystemExceptions.NotYetImplemented, Next: SystemExceptions.PrimitiveFailed, Prev: SystemExceptions.NotIndexable, Up: Base classes -1.167 SystemExceptions.NotYetImplemented -======================================== +SystemExceptions.NotYetImplemented +================================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.NotImplemented @@ -9784,8 +9551,8 @@  File: gst-base.info, Node: SystemExceptions.NotYetImplemented-accessing, Up: SystemExceptions.NotYetImplemented -1.167.1 SystemExceptions.NotYetImplemented: accessing ------------------------------------------------------ +SystemExceptions.NotYetImplemented: accessing +--------------------------------------------- description Answer a textual description of the exception. @@ -9794,8 +9561,8 @@  File: gst-base.info, Node: SystemExceptions.PrimitiveFailed, Next: SystemExceptions.ProcessBeingTerminated, Prev: SystemExceptions.NotYetImplemented, Up: Base classes -1.168 SystemExceptions.PrimitiveFailed -====================================== +SystemExceptions.PrimitiveFailed +================================ Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.VMError @@ -9809,8 +9576,8 @@  File: gst-base.info, Node: SystemExceptions.PrimitiveFailed-accessing, Up: SystemExceptions.PrimitiveFailed -1.168.1 SystemExceptions.PrimitiveFailed: accessing ---------------------------------------------------- +SystemExceptions.PrimitiveFailed: accessing +------------------------------------------- description Answer a textual description of the exception. @@ -9819,8 +9586,8 @@  File: gst-base.info, Node: SystemExceptions.ProcessBeingTerminated, Next: SystemExceptions.ProcessTerminated, Prev: SystemExceptions.PrimitiveFailed, Up: Base classes -1.169 SystemExceptions.ProcessBeingTerminated -============================================= +SystemExceptions.ProcessBeingTerminated +======================================= Defined in namespace Smalltalk.SystemExceptions Superclass: Notification @@ -9833,8 +9600,8 @@  File: gst-base.info, Node: SystemExceptions.ProcessBeingTerminated-accessing, Up: SystemExceptions.ProcessBeingTerminated -1.169.1 SystemExceptions.ProcessBeingTerminated: accessing ----------------------------------------------------------- +SystemExceptions.ProcessBeingTerminated: accessing +-------------------------------------------------- description Answer a textual description of the exception. @@ -9843,8 +9610,8 @@  File: gst-base.info, Node: SystemExceptions.ProcessTerminated, Next: SystemExceptions.ReadOnlyObject, Prev: SystemExceptions.ProcessBeingTerminated, Up: Base classes -1.170 SystemExceptions.ProcessTerminated -======================================== +SystemExceptions.ProcessTerminated +================================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -9859,8 +9626,8 @@  File: gst-base.info, Node: SystemExceptions.ProcessTerminated-accessing, Up: SystemExceptions.ProcessTerminated -1.170.1 SystemExceptions.ProcessTerminated: accessing ------------------------------------------------------ +SystemExceptions.ProcessTerminated: accessing +--------------------------------------------- description Answer a textual description of the exception. @@ -9869,8 +9636,8 @@  File: gst-base.info, Node: SystemExceptions.ReadOnlyObject, Next: SystemExceptions.ShouldNotImplement, Prev: SystemExceptions.ProcessTerminated, Up: Base classes -1.171 SystemExceptions.ReadOnlyObject -===================================== +SystemExceptions.ReadOnlyObject +=============================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -9884,8 +9651,8 @@  File: gst-base.info, Node: SystemExceptions.ReadOnlyObject-accessing, Up: SystemExceptions.ReadOnlyObject -1.171.1 SystemExceptions.ReadOnlyObject: accessing --------------------------------------------------- +SystemExceptions.ReadOnlyObject: accessing +------------------------------------------ description Answer a textual description of the exception. @@ -9894,8 +9661,8 @@  File: gst-base.info, Node: SystemExceptions.ShouldNotImplement, Next: SystemExceptions.SubclassResponsibility, Prev: SystemExceptions.ReadOnlyObject, Up: Base classes -1.172 SystemExceptions.ShouldNotImplement -========================================= +SystemExceptions.ShouldNotImplement +=================================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.NotImplemented @@ -9910,8 +9677,8 @@  File: gst-base.info, Node: SystemExceptions.ShouldNotImplement-accessing, Up: SystemExceptions.ShouldNotImplement -1.172.1 SystemExceptions.ShouldNotImplement: accessing ------------------------------------------------------- +SystemExceptions.ShouldNotImplement: accessing +---------------------------------------------- description Answer a textual description of the exception. @@ -9920,8 +9687,8 @@  File: gst-base.info, Node: SystemExceptions.SubclassResponsibility, Next: SystemExceptions.UserInterrupt, Prev: SystemExceptions.ShouldNotImplement, Up: Base classes -1.173 SystemExceptions.SubclassResponsibility -============================================= +SystemExceptions.SubclassResponsibility +======================================= Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.ShouldNotImplement @@ -9936,8 +9703,8 @@  File: gst-base.info, Node: SystemExceptions.SubclassResponsibility-accessing, Up: SystemExceptions.SubclassResponsibility -1.173.1 SystemExceptions.SubclassResponsibility: accessing ----------------------------------------------------------- +SystemExceptions.SubclassResponsibility: accessing +-------------------------------------------------- description Answer a textual description of the exception. @@ -9946,8 +9713,8 @@  File: gst-base.info, Node: SystemExceptions.UserInterrupt, Next: SystemExceptions.VMError, Prev: SystemExceptions.SubclassResponsibility, Up: Base classes -1.174 SystemExceptions.UserInterrupt -==================================== +SystemExceptions.UserInterrupt +============================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.VMError @@ -9961,8 +9728,8 @@  File: gst-base.info, Node: SystemExceptions.UserInterrupt-accessing, Up: SystemExceptions.UserInterrupt -1.174.1 SystemExceptions.UserInterrupt: accessing -------------------------------------------------- +SystemExceptions.UserInterrupt: accessing +----------------------------------------- description Answer a textual description of the exception. @@ -9971,8 +9738,8 @@  File: gst-base.info, Node: SystemExceptions.VMError, Next: SystemExceptions.WrongArgumentCount, Prev: SystemExceptions.UserInterrupt, Up: Base classes -1.175 SystemExceptions.VMError -============================== +SystemExceptions.VMError +======================== Defined in namespace Smalltalk.SystemExceptions Superclass: Error @@ -9986,8 +9753,8 @@  File: gst-base.info, Node: SystemExceptions.VMError-accessing, Up: SystemExceptions.VMError -1.175.1 SystemExceptions.VMError: accessing -------------------------------------------- +SystemExceptions.VMError: accessing +----------------------------------- description Answer a textual description of the exception. @@ -9996,8 +9763,8 @@  File: gst-base.info, Node: SystemExceptions.WrongArgumentCount, Next: SystemExceptions.WrongClass, Prev: SystemExceptions.VMError, Up: Base classes -1.176 SystemExceptions.WrongArgumentCount -========================================= +SystemExceptions.WrongArgumentCount +=================================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.PrimitiveFailed @@ -10012,8 +9779,8 @@  File: gst-base.info, Node: SystemExceptions.WrongArgumentCount-accessing, Up: SystemExceptions.WrongArgumentCount -1.176.1 SystemExceptions.WrongArgumentCount: accessing ------------------------------------------------------- +SystemExceptions.WrongArgumentCount: accessing +---------------------------------------------- description Answer a textual description of the exception. @@ -10022,8 +9789,8 @@  File: gst-base.info, Node: SystemExceptions.WrongClass, Next: SystemExceptions.WrongMessageSent, Prev: SystemExceptions.WrongArgumentCount, Up: Base classes -1.177 SystemExceptions.WrongClass -================================= +SystemExceptions.WrongClass +=========================== Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.InvalidValue @@ -10040,8 +9807,8 @@  File: gst-base.info, Node: SystemExceptions.WrongClass class-signaling, Next: SystemExceptions.WrongClass-accessing, Up: SystemExceptions.WrongClass -1.177.1 SystemExceptions.WrongClass class: signaling ----------------------------------------------------- +SystemExceptions.WrongClass class: signaling +-------------------------------------------- signalOn: anObject mustBe: aClassOrArray Raise an exception. The given object should have been an instance @@ -10055,8 +9822,8 @@  File: gst-base.info, Node: SystemExceptions.WrongClass-accessing, Prev: SystemExceptions.WrongClass class-signaling, Up: SystemExceptions.WrongClass -1.177.2 SystemExceptions.WrongClass: accessing ----------------------------------------------- +SystemExceptions.WrongClass: accessing +-------------------------------------- description Answer a textual description of the exception. @@ -10078,8 +9845,8 @@  File: gst-base.info, Node: SystemExceptions.WrongMessageSent, Next: TextCollector, Prev: SystemExceptions.WrongClass, Up: Base classes -1.178 SystemExceptions.WrongMessageSent -======================================= +SystemExceptions.WrongMessageSent +================================= Defined in namespace Smalltalk.SystemExceptions Superclass: SystemExceptions.ShouldNotImplement @@ -10093,3 +9860,422 @@ * SystemExceptions.WrongMessageSent class-signaling:: (class) * SystemExceptions.WrongMessageSent-accessing:: (instance) + +File: gst-base.info, Node: SystemExceptions.WrongMessageSent class-signaling, Next: SystemExceptions.WrongMessageSent-accessing, Up: SystemExceptions.WrongMessageSent + +SystemExceptions.WrongMessageSent class: signaling +-------------------------------------------------- + +signalOn: selector useInstead: aSymbol + Raise an exception, signaling which selector was sent and + suggesting a valid alternative. + + + +File: gst-base.info, Node: SystemExceptions.WrongMessageSent-accessing, Prev: SystemExceptions.WrongMessageSent class-signaling, Up: SystemExceptions.WrongMessageSent + +SystemExceptions.WrongMessageSent: accessing +-------------------------------------------- + +messageText + Answer an exception's message text. + +selector + Answer which selector was sent. + +selector: aSymbol + Set which selector was sent. + +suggestedSelector + Answer a valid alternative to the selector that was used. + +suggestedSelector: aSymbol + Set a valid alternative to the selector that was used. + + + +File: gst-base.info, Node: TextCollector, Next: Time, Prev: SystemExceptions.WrongMessageSent, Up: Base classes + +TextCollector +============= + +Defined in namespace Smalltalk +Superclass: Stream +Category: Streams + I am a thread-safe class that maps between standard Stream + protocol and a single message to another object (its selector is + pluggable and should roughly correspond to #nextPutAll:). I am, + in fact, the class that implements the global Transcript object. + +* Menu: + +* TextCollector class-accessing:: (class) +* TextCollector-accessing:: (instance) +* TextCollector-printing:: (instance) +* TextCollector-set up:: (instance) +* TextCollector-storing:: (instance) + + +File: gst-base.info, Node: TextCollector class-accessing, Next: TextCollector-accessing, Up: TextCollector + +TextCollector class: accessing +------------------------------ + +message: receiverToSelectorAssociation + Answer a new instance of the receiver, that uses the message + identified by anAssociation to perform write operations. + anAssociation's key is the receiver, while its value is the + selector. + +new + This method should not be called for instances of this class. + + + +File: gst-base.info, Node: TextCollector-accessing, Next: TextCollector-printing, Prev: TextCollector class-accessing, Up: TextCollector + +TextCollector: accessing +------------------------ + +cr + Emit a new-line (carriage return) to the Transcript + +endEntry + Emit two new-lines. This method is present for compatibility with + VisualWorks. + +next: anInteger put: anObject + Write anInteger copies of anObject to the Transcript + +nextPut: aCharacter + Emit aCharacter to the Transcript + +nextPutAll: aString + Write aString to the Transcript + +show: aString + Write aString to the Transcript + +showCr: aString + Write aString to the Transcript, followed by a new-line character + +showOnNewLine: aString + Write aString to the Transcript, preceded by a new-line character + + + +File: gst-base.info, Node: TextCollector-printing, Next: TextCollector-set up, Prev: TextCollector-accessing, Up: TextCollector + +TextCollector: printing +----------------------- + +print: anObject + Print anObject's representation to the Transcript + +printOn: aStream + Print a representation of the receiver onto aStream + + + +File: gst-base.info, Node: TextCollector-set up, Next: TextCollector-storing, Prev: TextCollector-printing, Up: TextCollector + +TextCollector: set up +--------------------- + +message + Answer an association representing the message to be sent to + perform write operations. The key is the receiver, the value is + the selector + +message: receiverToSelectorAssociation + Set the message to be sent to perform write operations to the one + represented by anAssociation. anAssociation's key is the + receiver, while its value is the selector + + + +File: gst-base.info, Node: TextCollector-storing, Prev: TextCollector-set up, Up: TextCollector + +TextCollector: storing +---------------------- + +store: anObject + Print Smalltalk code which evaluates to anObject on the Transcript + +storeOn: aStream + Print Smalltalk code which evaluates to the receiver onto aStream + + + +File: gst-base.info, Node: Time, Next: TokenStream, Prev: TextCollector, Up: Base classes + +Time +==== + +Defined in namespace Smalltalk +Superclass: Magnitude +Category: Language-Data types + My instances represent times of the day. I provide methods for + instance creation, methods that access components (hours, minutes, + and seconds) of a time value, and a block execution timing + facility. + +* Menu: + +* Time class-basic (UTC):: (class) +* Time class-builtins:: (class) +* Time class-clocks:: (class) +* Time class-initialization:: (class) +* Time class-instance creation:: (class) +* Time-accessing (ANSI for DateAndTimes):: (instance) +* Time-accessing (non ANSI & for Durations):: (instance) +* Time-arithmetic:: (instance) +* Time-comparing:: (instance) + + +File: gst-base.info, Node: Time class-basic (UTC), Next: Time class-builtins, Up: Time + +Time class: basic (UTC) +----------------------- + +utcNow + Answer a time representing the current time of day in Coordinated + Universal Time (UTC) + +utcSecondClock + Answer the number of seconds since the midnight of 1/1/1901 (unlike + #secondClock, the reference time is here expressed as UTC, that is + as Coordinated Universal Time). + + + +File: gst-base.info, Node: Time class-builtins, Next: Time class-clocks, Prev: Time class-basic (UTC), Up: Time + +Time class: builtins +-------------------- + +primMillisecondClock + Returns the number of milliseconds since midnight. + +primSecondClock + Returns the number of seconds to/from 1/1/2000. + +timezone + Answer a String associated with the current timezone (either + standard or daylight-saving) on this operating system. For + example, the answer could be `EST' to indicate Eastern Standard + Time; the answer can be empty and can't be assumed to be a + three-character code such as `EST'. + +timezoneBias + Specifies the current bias, in minutes, for local time translation + for the current time. The bias is the difference, in seconds, + between Coordinated Universal Time (UTC) and local time; a + positive bias indicates that the local timezone is to the east of + Greenwich (e.g. Europe, Asia), while a negative bias indicates + that it is to the west (e.g. America) + + + +File: gst-base.info, Node: Time class-clocks, Next: Time class-initialization, Prev: Time class-builtins, Up: Time + +Time class: clocks +------------------ + +millisecondClock + Answer the number of milliseconds since startup. + +millisecondClockValue + Answer the number of milliseconds since startup + +millisecondsPerDay + Answer the number of milliseconds in a day + +millisecondsToRun: timedBlock + Answer the number of milliseconds which timedBlock took to run + +secondClock + Answer the number of seconds since the midnight of 1/1/1901 + + + +File: gst-base.info, Node: Time class-initialization, Next: Time class-instance creation, Prev: Time class-clocks, Up: Time + +Time class: initialization +-------------------------- + +initialize + Initialize the Time class after the image has been bootstrapped + +update: aspect + Private - Initialize the receiver's instance variables + + + +File: gst-base.info, Node: Time class-instance creation, Next: Time-accessing (ANSI for DateAndTimes), Prev: Time class-initialization, Up: Time + +Time class: instance creation +----------------------------- + +fromSeconds: secondCount + Answer a Time representing secondCount seconds past midnight + +hours: h + Answer a Time that is the given number of hours past midnight + +hours: h minutes: m seconds: s + Answer a Time that is the given number of hours, minutes and + seconds past midnight + +minutes: m + Answer a Time that is the given number of minutes past midnight + +new + Answer a Time representing midnight + +now + Answer a time representing the current time of day + +readFrom: aStream + Parse an instance of the receiver (hours/minutes/seconds) from + aStream + +seconds: s + Answer a Time that is the given number of seconds past midnight + + + +File: gst-base.info, Node: Time-accessing (ANSI for DateAndTimes), Next: Time-accessing (non ANSI & for Durations), Prev: Time class-instance creation, Up: Time + +Time: accessing (ANSI for DateAndTimes) +--------------------------------------- + +hour + Answer the number of hours in the receiver + +hour12 + Answer the hour in a 12-hour clock + +hour24 + Answer the hour in a 24-hour clock + +minute + Answer the number of minutes in the receiver + +second + Answer the number of seconds in the receiver + + + +File: gst-base.info, Node: Time-accessing (non ANSI & for Durations), Next: Time-arithmetic, Prev: Time-accessing (ANSI for DateAndTimes), Up: Time + +Time: accessing (non ANSI & for Durations) +------------------------------------------ + +asSeconds + Answer `seconds'. + +hours + Answer the number of hours in the receiver + +minutes + Answer the number of minutes in the receiver + +seconds + Answer the number of seconds in the receiver + + + +File: gst-base.info, Node: Time-arithmetic, Next: Time-comparing, Prev: Time-accessing (non ANSI & for Durations), Up: Time + +Time: arithmetic +---------------- + +addTime: timeAmount + Answer a new Time that is timeAmount seconds after the receiver + +printOn: aStream + Print a representation of the receiver on aStream + +subtractTime: timeAmount + Answer a new Time that is timeAmount seconds before the receiver + + + +File: gst-base.info, Node: Time-comparing, Prev: Time-arithmetic, Up: Time + +Time: comparing +--------------- + +< aTime + Answer whether the receiver is less than aTime + += aTime + Answer whether the receiver is equal to aTime + +hash + Answer an hash value for the receiver + + + +File: gst-base.info, Node: TokenStream, Next: TrappableEvent, Prev: Time, Up: Base classes + +TokenStream +=========== + +Defined in namespace Smalltalk +Superclass: Stream +Category: Streams-Collections + I am not a typical part of the Smalltalk kernel class hierarchy. + I operate on a stream of characters and return distinct + whitespace-delimited groups of characters; I am used to parse the + parameters of class-creation methods. + + Basically, I parse off whitespace separated tokens as substrings + and return them (next). If the entire contents of the string are + requested, I return them as an Array containing the individual + strings. + +* Menu: + +* TokenStream class-instance creation:: (class) +* TokenStream-basic:: (instance) +* TokenStream-write methods:: (instance) + + +File: gst-base.info, Node: TokenStream class-instance creation, Next: TokenStream-basic, Up: TokenStream + +TokenStream class: instance creation +------------------------------------ + +on: aString + Answer a TokenStream working on aString + +onStream: aStream + Answer a TokenStream working on the collection on which aStream is + in turn streaming. + + + +File: gst-base.info, Node: TokenStream-basic, Next: TokenStream-write methods, Prev: TokenStream class-instance creation, Up: TokenStream + +TokenStream: basic +------------------ + +atEnd + Answer whether the input stream has no more tokens. + +next + Answer a new whitespace-separated token from the input stream + + + +File: gst-base.info, Node: TokenStream-write methods, Prev: TokenStream-basic, Up: TokenStream + +TokenStream: write methods +-------------------------- + +nextPut: anObject + This method should not be called for instances of this class. + + diff -rNu smalltalk-2.1.9/doc/gst-base.info-3 smalltalk-2.1.10/doc/gst-base.info-3 --- smalltalk-2.1.9/doc/gst-base.info-3 2004-10-02 15:32:58.000000000 +0200 +++ smalltalk-2.1.10/doc/gst-base.info-3 2005-02-02 15:37:50.000000000 +0100 @@ -1,13 +1,13 @@ -This is gst-base.info, produced by makeinfo version 4.7 from -/home/utente/devel-gst-stable/doc/gst-base-fixed.texi. +This is gst-base.info, produced by makeinfo version 4.6 from +/Users/bonzinip/devel/gst-stable/+build/doc/../../doc/gst-base-fixed.texi. INFO-DIR-SECTION GNU Smalltalk START-INFO-DIR-ENTRY * Base classes: (gst-base). The GNU Smalltalk base classes. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 31 March 2004. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 2 February 2005. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -23,431 +23,11 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. - - -File: gst-base.info, Node: SystemExceptions.WrongMessageSent class-signaling, Next: SystemExceptions.WrongMessageSent-accessing, Up: SystemExceptions.WrongMessageSent - -1.178.1 SystemExceptions.WrongMessageSent class: signaling ----------------------------------------------------------- - -signalOn: selector useInstead: aSymbol - Raise an exception, signaling which selector was sent and - suggesting a valid alternative. - - - -File: gst-base.info, Node: SystemExceptions.WrongMessageSent-accessing, Prev: SystemExceptions.WrongMessageSent class-signaling, Up: SystemExceptions.WrongMessageSent - -1.178.2 SystemExceptions.WrongMessageSent: accessing ----------------------------------------------------- - -messageText - Answer an exception's message text. - -selector - Answer which selector was sent. - -selector: aSymbol - Set which selector was sent. - -suggestedSelector - Answer a valid alternative to the selector that was used. - -suggestedSelector: aSymbol - Set a valid alternative to the selector that was used. - - - -File: gst-base.info, Node: TextCollector, Next: Time, Prev: SystemExceptions.WrongMessageSent, Up: Base classes - -1.179 TextCollector -=================== - -Defined in namespace Smalltalk -Superclass: Stream -Category: Streams - I am a thread-safe class that maps between standard Stream - protocol and a single message to another object (its selector is - pluggable and should roughly correspond to #nextPutAll:). I am, - in fact, the class that implements the global Transcript object. - -* Menu: - -* TextCollector class-accessing:: (class) -* TextCollector-accessing:: (instance) -* TextCollector-printing:: (instance) -* TextCollector-set up:: (instance) -* TextCollector-storing:: (instance) - - -File: gst-base.info, Node: TextCollector class-accessing, Next: TextCollector-accessing, Up: TextCollector - -1.179.1 TextCollector class: accessing --------------------------------------- - -message: receiverToSelectorAssociation - Answer a new instance of the receiver, that uses the message - identified by anAssociation to perform write operations. - anAssociation's key is the receiver, while its value is the - selector. - -new - This method should not be called for instances of this class. - - - -File: gst-base.info, Node: TextCollector-accessing, Next: TextCollector-printing, Prev: TextCollector class-accessing, Up: TextCollector - -1.179.2 TextCollector: accessing --------------------------------- - -cr - Emit a new-line (carriage return) to the Transcript - -endEntry - Emit two new-lines. This method is present for compatibility with - VisualWorks. - -next: anInteger put: anObject - Write anInteger copies of anObject to the Transcript - -nextPut: aCharacter - Emit aCharacter to the Transcript - -nextPutAll: aString - Write aString to the Transcript - -show: aString - Write aString to the Transcript - -showCr: aString - Write aString to the Transcript, followed by a new-line character - -showOnNewLine: aString - Write aString to the Transcript, preceded by a new-line character - - - -File: gst-base.info, Node: TextCollector-printing, Next: TextCollector-set up, Prev: TextCollector-accessing, Up: TextCollector - -1.179.3 TextCollector: printing -------------------------------- - -print: anObject - Print anObject's representation to the Transcript - -printOn: aStream - Print a representation of the receiver onto aStream - - - -File: gst-base.info, Node: TextCollector-set up, Next: TextCollector-storing, Prev: TextCollector-printing, Up: TextCollector - -1.179.4 TextCollector: set up ------------------------------ - -message - Answer an association representing the message to be sent to - perform write operations. The key is the receiver, the value is - the selector - -message: receiverToSelectorAssociation - Set the message to be sent to perform write operations to the one - represented by anAssociation. anAssociation's key is the - receiver, while its value is the selector - - - -File: gst-base.info, Node: TextCollector-storing, Prev: TextCollector-set up, Up: TextCollector - -1.179.5 TextCollector: storing ------------------------------- - -store: anObject - Print Smalltalk code which evaluates to anObject on the Transcript - -storeOn: aStream - Print Smalltalk code which evaluates to the receiver onto aStream - - - -File: gst-base.info, Node: Time, Next: TokenStream, Prev: TextCollector, Up: Base classes - -1.180 Time -========== - -Defined in namespace Smalltalk -Superclass: Magnitude -Category: Language-Data types - My instances represent times of the day. I provide methods for - instance creation, methods that access components (hours, minutes, - and seconds) of a time value, and a block execution timing - facility. - -* Menu: - -* Time class-basic (UTC):: (class) -* Time class-builtins:: (class) -* Time class-clocks:: (class) -* Time class-initialization:: (class) -* Time class-instance creation:: (class) -* Time-accessing (ANSI for DateAndTimes):: (instance) -* Time-accessing (non ANSI & for Durations):: (instance) -* Time-arithmetic:: (instance) -* Time-comparing:: (instance) - - -File: gst-base.info, Node: Time class-basic (UTC), Next: Time class-builtins, Up: Time - -1.180.1 Time class: basic (UTC) -------------------------------- - -utcNow - Answer a time representing the current time of day in Coordinated - Universal Time (UTC) - -utcSecondClock - Answer the number of seconds since the midnight of 1/1/1901 (unlike - #secondClock, the reference time is here expressed as UTC, that is - as Coordinated Universal Time). - - - -File: gst-base.info, Node: Time class-builtins, Next: Time class-clocks, Prev: Time class-basic (UTC), Up: Time - -1.180.2 Time class: builtins ----------------------------- - -primMillisecondClock - Returns the number of milliseconds since midnight. - -primSecondClock - Returns the number of seconds to/from 1/1/2000. - -timezone - Answer a String associated with the current timezone (either - standard or daylight-saving) on this operating system. For - example, the answer could be `EST' to indicate Eastern Standard - Time; the answer can be empty and can't be assumed to be a - three-character code such as `EST'. - -timezoneBias - Specifies the current bias, in minutes, for local time translation - for the current time. The bias is the difference, in seconds, - between Coordinated Universal Time (UTC) and local time; a - positive bias indicates that the local timezone is to the east of - Greenwich (e.g. Europe, Asia), while a negative bias indicates - that it is to the west (e.g. America) - - - -File: gst-base.info, Node: Time class-clocks, Next: Time class-initialization, Prev: Time class-builtins, Up: Time - -1.180.3 Time class: clocks --------------------------- - -millisecondClock - Answer the number of milliseconds since startup. - -millisecondClockValue - Answer the number of milliseconds since startup - -millisecondsPerDay - Answer the number of milliseconds in a day - -millisecondsToRun: timedBlock - Answer the number of milliseconds which timedBlock took to run - -secondClock - Answer the number of seconds since the midnight of 1/1/1901 - - - -File: gst-base.info, Node: Time class-initialization, Next: Time class-instance creation, Prev: Time class-clocks, Up: Time - -1.180.4 Time class: initialization ----------------------------------- - -initialize - Initialize the Time class after the image has been bootstrapped - -update: aspect - Private - Initialize the receiver's instance variables - - - -File: gst-base.info, Node: Time class-instance creation, Next: Time-accessing (ANSI for DateAndTimes), Prev: Time class-initialization, Up: Time - -1.180.5 Time class: instance creation -------------------------------------- - -fromSeconds: secondCount - Answer a Time representing secondCount seconds past midnight - -hours: h - Answer a Time that is the given number of hours past midnight - -hours: h minutes: m seconds: s - Answer a Time that is the given number of hours, minutes and - seconds past midnight - -minutes: m - Answer a Time that is the given number of minutes past midnight - -new - Answer a Time representing midnight - -now - Answer a time representing the current time of day - -readFrom: aStream - Parse an instance of the receiver (hours/minutes/seconds) from - aStream - -seconds: s - Answer a Time that is the given number of seconds past midnight - - - -File: gst-base.info, Node: Time-accessing (ANSI for DateAndTimes), Next: Time-accessing (non ANSI & for Durations), Prev: Time class-instance creation, Up: Time - -1.180.6 Time: accessing (ANSI for DateAndTimes) ------------------------------------------------ - -hour - Answer the number of hours in the receiver - -hour12 - Answer the hour in a 12-hour clock - -hour24 - Answer the hour in a 24-hour clock - -minute - Answer the number of minutes in the receiver - -second - Answer the number of seconds in the receiver - - - -File: gst-base.info, Node: Time-accessing (non ANSI & for Durations), Next: Time-arithmetic, Prev: Time-accessing (ANSI for DateAndTimes), Up: Time - -1.180.7 Time: accessing (non ANSI & for Durations) --------------------------------------------------- - -asSeconds - Answer `seconds'. - -hours - Answer the number of hours in the receiver - -minutes - Answer the number of minutes in the receiver - -seconds - Answer the number of seconds in the receiver - - - -File: gst-base.info, Node: Time-arithmetic, Next: Time-comparing, Prev: Time-accessing (non ANSI & for Durations), Up: Time - -1.180.8 Time: arithmetic ------------------------- - -addTime: timeAmount - Answer a new Time that is timeAmount seconds after the receiver - -printOn: aStream - Print a representation of the receiver on aStream - -subtractTime: timeAmount - Answer a new Time that is timeAmount seconds before the receiver - - - -File: gst-base.info, Node: Time-comparing, Prev: Time-arithmetic, Up: Time - -1.180.9 Time: comparing ------------------------ - -< aTime - Answer whether the receiver is less than aTime - -= aTime - Answer whether the receiver is equal to aTime - -hash - Answer an hash value for the receiver - - - -File: gst-base.info, Node: TokenStream, Next: TrappableEvent, Prev: Time, Up: Base classes - -1.181 TokenStream -================= - -Defined in namespace Smalltalk -Superclass: Stream -Category: Streams-Collections - I am not a typical part of the Smalltalk kernel class hierarchy. - I operate on a stream of characters and return distinct - whitespace-delimited groups of characters; I am used to parse the - parameters of class-creation methods. - - Basically, I parse off whitespace separated tokens as substrings - and return them (next). If the entire contents of the string are - requested, I return them as an Array containing the individual - strings. - -* Menu: - -* TokenStream class-instance creation:: (class) -* TokenStream-basic:: (instance) -* TokenStream-write methods:: (instance) - - -File: gst-base.info, Node: TokenStream class-instance creation, Next: TokenStream-basic, Up: TokenStream - -1.181.1 TokenStream class: instance creation --------------------------------------------- - -on: aString - Answer a TokenStream working on aString - -onStream: aStream - Answer a TokenStream working on the collection on which aStream is - in turn streaming. - - - -File: gst-base.info, Node: TokenStream-basic, Next: TokenStream-write methods, Prev: TokenStream class-instance creation, Up: TokenStream - -1.181.2 TokenStream: basic --------------------------- - -atEnd - Answer whether the input stream has no more tokens. - -next - Answer a new whitespace-separated token from the input stream - - - -File: gst-base.info, Node: TokenStream-write methods, Prev: TokenStream-basic, Up: TokenStream - -1.181.3 TokenStream: write methods ----------------------------------- - -nextPut: anObject - This method should not be called for instances of this class. - -  File: gst-base.info, Node: TrappableEvent, Next: True, Prev: TokenStream, Up: Base classes -1.182 TrappableEvent -==================== +TrappableEvent +============== Defined in namespace Smalltalk Superclass: Object @@ -465,8 +45,8 @@  File: gst-base.info, Node: TrappableEvent-enumerating, Next: TrappableEvent-instance creation, Up: TrappableEvent -1.182.1 TrappableEvent: enumerating ------------------------------------ +TrappableEvent: enumerating +--------------------------- allExceptionsDo: aBlock Execute aBlock, passing it an Exception for every exception in the @@ -484,8 +64,8 @@  File: gst-base.info, Node: TrappableEvent-instance creation, Prev: TrappableEvent-enumerating, Up: TrappableEvent -1.182.2 TrappableEvent: instance creation ------------------------------------------ +TrappableEvent: instance creation +--------------------------------- , aTrappableEvent Answer an ExceptionSet containing all the exceptions in the @@ -495,8 +75,8 @@  File: gst-base.info, Node: True, Next: UndefinedObject, Prev: TrappableEvent, Up: Base classes -1.183 True -========== +True +==== Defined in namespace Smalltalk Superclass: Boolean @@ -513,8 +93,8 @@  File: gst-base.info, Node: True-basic, Next: True-C hacks, Up: True -1.183.1 True: basic -------------------- +True: basic +----------- & aBoolean We are true - anded with anything, we always answer the other @@ -557,8 +137,8 @@  File: gst-base.info, Node: True-C hacks, Next: True-printing, Prev: True-basic, Up: True -1.183.2 True: C hacks ---------------------- +True: C hacks +------------- asCBooleanValue Answer `1'. @@ -567,8 +147,8 @@  File: gst-base.info, Node: True-printing, Prev: True-C hacks, Up: True -1.183.3 True: printing ----------------------- +True: printing +-------------- printOn: aStream Print a representation of the receiver on aStream @@ -577,8 +157,8 @@  File: gst-base.info, Node: UndefinedObject, Next: ValueAdaptor, Prev: True, Up: Base classes -1.184 UndefinedObject -===================== +UndefinedObject +=============== Defined in namespace Smalltalk Superclass: Object @@ -600,8 +180,8 @@  File: gst-base.info, Node: UndefinedObject-basic, Next: UndefinedObject-class creation, Up: UndefinedObject -1.184.1 UndefinedObject: basic ------------------------------- +UndefinedObject: basic +---------------------- copy Answer the receiver. @@ -616,8 +196,8 @@  File: gst-base.info, Node: UndefinedObject-class creation, Next: UndefinedObject-class creation - alternative, Prev: UndefinedObject-basic, Up: UndefinedObject -1.184.2 UndefinedObject: class creation ---------------------------------------- +UndefinedObject: class creation +------------------------------- metaclassFor: classNameString Create a Metaclass object for the given class name. The metaclass @@ -662,8 +242,8 @@  File: gst-base.info, Node: UndefinedObject-class creation - alternative, Next: UndefinedObject-CObject interoperability, Prev: UndefinedObject-class creation, Up: UndefinedObject -1.184.3 UndefinedObject: class creation - alternative ------------------------------------------------------ +UndefinedObject: class creation - alternative +--------------------------------------------- subclass: classNameString classInstanceVariableNames: stringClassInstVarNames instanceVariableNames: stringInstVarNames classVariableNames: stringOfClassVarNames poolDictionaries: stringOfPoolNames Don't use this, it is only present to file in from IBM Smalltalk @@ -693,8 +273,8 @@  File: gst-base.info, Node: UndefinedObject-CObject interoperability, Next: UndefinedObject-dependents access, Prev: UndefinedObject-class creation - alternative, Up: UndefinedObject -1.184.4 UndefinedObject: CObject interoperability -------------------------------------------------- +UndefinedObject: CObject interoperability +----------------------------------------- free Do nothing, a NULL pointer can be safely freed. @@ -707,8 +287,8 @@  File: gst-base.info, Node: UndefinedObject-dependents access, Next: UndefinedObject-printing, Prev: UndefinedObject-CObject interoperability, Up: UndefinedObject -1.184.5 UndefinedObject: dependents access ------------------------------------------- +UndefinedObject: dependents access +---------------------------------- addDependent: ignored Fail, nil does not support dependents. @@ -720,8 +300,8 @@  File: gst-base.info, Node: UndefinedObject-printing, Next: UndefinedObject-storing, Prev: UndefinedObject-dependents access, Up: UndefinedObject -1.184.6 UndefinedObject: printing ---------------------------------- +UndefinedObject: printing +------------------------- printOn: aStream Print a representation of the receiver on aStream. @@ -730,8 +310,8 @@  File: gst-base.info, Node: UndefinedObject-storing, Next: UndefinedObject-testing, Prev: UndefinedObject-printing, Up: UndefinedObject -1.184.7 UndefinedObject: storing --------------------------------- +UndefinedObject: storing +------------------------ storeOn: aStream Store Smalltalk code compiling to the receiver on aStream. @@ -740,8 +320,8 @@  File: gst-base.info, Node: UndefinedObject-testing, Prev: UndefinedObject-storing, Up: UndefinedObject -1.184.8 UndefinedObject: testing --------------------------------- +UndefinedObject: testing +------------------------ ifNil: nilBlock Evaluate nilBlock if the receiver is nil, else answer nil @@ -770,8 +350,8 @@  File: gst-base.info, Node: ValueAdaptor, Next: ValueHolder, Prev: UndefinedObject, Up: Base classes -1.185 ValueAdaptor -================== +ValueAdaptor +============ Defined in namespace Smalltalk Superclass: Object @@ -788,8 +368,8 @@  File: gst-base.info, Node: ValueAdaptor class-creating instances, Next: ValueAdaptor-accessing, Up: ValueAdaptor -1.185.1 ValueAdaptor class: creating instances ----------------------------------------------- +ValueAdaptor class: creating instances +-------------------------------------- new We don't know enough of subclasses to have a shared implementation @@ -799,8 +379,8 @@  File: gst-base.info, Node: ValueAdaptor-accessing, Next: ValueAdaptor-printing, Prev: ValueAdaptor class-creating instances, Up: ValueAdaptor -1.185.2 ValueAdaptor: accessing -------------------------------- +ValueAdaptor: accessing +----------------------- value Retrive the value of the receiver. Must be implemented by @@ -814,8 +394,8 @@  File: gst-base.info, Node: ValueAdaptor-printing, Prev: ValueAdaptor-accessing, Up: ValueAdaptor -1.185.3 ValueAdaptor: printing ------------------------------- +ValueAdaptor: printing +---------------------- printOn: aStream Print a representation of the receiver @@ -824,8 +404,8 @@  File: gst-base.info, Node: ValueHolder, Next: VariableBinding, Prev: ValueAdaptor, Up: Base classes -1.186 ValueHolder -================= +ValueHolder +=========== Defined in namespace Smalltalk Superclass: ValueAdaptor @@ -844,8 +424,8 @@  File: gst-base.info, Node: ValueHolder class-creating instances, Next: ValueHolder-accessing, Up: ValueHolder -1.186.1 ValueHolder class: creating instances ---------------------------------------------- +ValueHolder class: creating instances +------------------------------------- new Create a ValueHolder whose starting value is nil @@ -860,8 +440,8 @@  File: gst-base.info, Node: ValueHolder-accessing, Next: ValueHolder-initializing, Prev: ValueHolder class-creating instances, Up: ValueHolder -1.186.2 ValueHolder: accessing ------------------------------- +ValueHolder: accessing +---------------------- value Get the value of the receiver. @@ -873,8 +453,8 @@  File: gst-base.info, Node: ValueHolder-initializing, Prev: ValueHolder-accessing, Up: ValueHolder -1.186.3 ValueHolder: initializing ---------------------------------- +ValueHolder: initializing +------------------------- initialize Private - set the initial value of the receiver @@ -883,8 +463,8 @@  File: gst-base.info, Node: VariableBinding, Next: VersionableObjectProxy, Prev: ValueHolder, Up: Base classes -1.187 VariableBinding -===================== +VariableBinding +=============== Defined in namespace Smalltalk Superclass: HomedAssociation @@ -903,8 +483,8 @@  File: gst-base.info, Node: VariableBinding-printing, Next: VariableBinding-saving and loading, Up: VariableBinding -1.187.1 VariableBinding: printing ---------------------------------- +VariableBinding: printing +------------------------- path Print a dotted path that compiles to the receiver's value @@ -916,8 +496,8 @@  File: gst-base.info, Node: VariableBinding-saving and loading, Next: VariableBinding-storing, Prev: VariableBinding-printing, Up: VariableBinding -1.187.2 VariableBinding: saving and loading -------------------------------------------- +VariableBinding: saving and loading +----------------------------------- to @@ -930,8 +510,8 @@  File: gst-base.info, Node: VariableBinding-storing, Next: VariableBinding-testing, Prev: VariableBinding-saving and loading, Up: VariableBinding -1.187.3 VariableBinding: storing --------------------------------- +VariableBinding: storing +------------------------ storeOn: aStream Put on aStream some Smalltalk code compiling to the receiver @@ -940,8 +520,8 @@  File: gst-base.info, Node: VariableBinding-testing, Prev: VariableBinding-storing, Up: VariableBinding -1.187.4 VariableBinding: testing --------------------------------- +VariableBinding: testing +------------------------ isDefined Answer true if this VariableBinding lives outside the Undeclared @@ -951,8 +531,8 @@  File: gst-base.info, Node: VersionableObjectProxy, Next: VFS.ArchiveFileHandler, Prev: VariableBinding, Up: Base classes -1.188 VersionableObjectProxy -============================ +VersionableObjectProxy +====================== Defined in namespace Smalltalk Superclass: NullProxy @@ -974,8 +554,8 @@  File: gst-base.info, Node: VersionableObjectProxy class-saving and restoring, Next: VersionableObjectProxy-saving and restoring, Up: VersionableObjectProxy -1.188.1 VersionableObjectProxy class: saving and restoring ----------------------------------------------------------- +VersionableObjectProxy class: saving and restoring +-------------------------------------------------- to @@ -996,8 +576,8 @@  File: gst-base.info, Node: VersionableObjectProxy-saving and restoring, Prev: VersionableObjectProxy class-saving and restoring, Up: VersionableObjectProxy -1.188.2 VersionableObjectProxy: saving and restoring ----------------------------------------------------- +VersionableObjectProxy: saving and restoring +-------------------------------------------- dumpTo: anObjectDumper Save the object with extra versioning information. @@ -1006,8 +586,8 @@  File: gst-base.info, Node: VFS.ArchiveFileHandler, Next: VFS.ArchiveMemberHandler, Prev: VersionableObjectProxy, Up: Base classes -1.189 VFS.ArchiveFileHandler -============================ +VFS.ArchiveFileHandler +====================== Defined in namespace Smalltalk.VFS Superclass: VFS.RealFileHandler @@ -1029,8 +609,8 @@  File: gst-base.info, Node: VFS.ArchiveFileHandler class-registering, Next: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol, Up: VFS.ArchiveFileHandler -1.189.1 VFS.ArchiveFileHandler class: registering -------------------------------------------------- +VFS.ArchiveFileHandler class: registering +----------------------------------------- isAccessible Answer whether a directory with the name contained in the receiver @@ -1043,8 +623,8 @@  File: gst-base.info, Node: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol, Next: VFS.ArchiveFileHandler-directory operations, Prev: VFS.ArchiveFileHandler class-registering, Up: VFS.ArchiveFileHandler -1.189.2 VFS.ArchiveFileHandler: ArchiveMemberHandler protocol -------------------------------------------------------------- +VFS.ArchiveFileHandler: ArchiveMemberHandler protocol +----------------------------------------------------- extractMember: anArchiveMemberHandler Extract the contents of anArchiveMemberHandler into a file that @@ -1075,8 +655,8 @@  File: gst-base.info, Node: VFS.ArchiveFileHandler-directory operations, Next: VFS.ArchiveFileHandler-file operations, Prev: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol, Up: VFS.ArchiveFileHandler -1.189.3 VFS.ArchiveFileHandler: directory operations ----------------------------------------------------- +VFS.ArchiveFileHandler: directory operations +-------------------------------------------- at: aName Answer a VFSHandler for a file named `aName' residing in the @@ -1101,8 +681,8 @@  File: gst-base.info, Node: VFS.ArchiveFileHandler-file operations, Prev: VFS.ArchiveFileHandler-directory operations, Up: VFS.ArchiveFileHandler -1.189.4 VFS.ArchiveFileHandler: file operations ------------------------------------------------ +VFS.ArchiveFileHandler: file operations +--------------------------------------- remove Remove the file with the given path name @@ -1111,8 +691,8 @@  File: gst-base.info, Node: VFS.ArchiveMemberHandler, Next: VFS.DecodedFileHandler, Prev: VFS.ArchiveFileHandler, Up: Base classes -1.190 VFS.ArchiveMemberHandler -============================== +VFS.ArchiveMemberHandler +======================== Defined in namespace Smalltalk.VFS Superclass: VFS.VFSHandler @@ -1132,8 +712,8 @@  File: gst-base.info, Node: VFS.ArchiveMemberHandler-accessing, Next: VFS.ArchiveMemberHandler-directory operations, Up: VFS.ArchiveMemberHandler -1.190.1 VFS.ArchiveMemberHandler: accessing -------------------------------------------- +VFS.ArchiveMemberHandler: accessing +----------------------------------- creationTime Answer the creation time of the file identified by the receiver. @@ -1167,8 +747,8 @@  File: gst-base.info, Node: VFS.ArchiveMemberHandler-directory operations, Next: VFS.ArchiveMemberHandler-file operations, Prev: VFS.ArchiveMemberHandler-accessing, Up: VFS.ArchiveMemberHandler -1.190.2 VFS.ArchiveMemberHandler: directory operations ------------------------------------------------------- +VFS.ArchiveMemberHandler: directory operations +---------------------------------------------- at: aName Answer a VFSHandler for a file named `aName' residing in the @@ -1185,8 +765,8 @@  File: gst-base.info, Node: VFS.ArchiveMemberHandler-file operations, Next: VFS.ArchiveMemberHandler-finalization, Prev: VFS.ArchiveMemberHandler-directory operations, Up: VFS.ArchiveMemberHandler -1.190.3 VFS.ArchiveMemberHandler: file operations -------------------------------------------------- +VFS.ArchiveMemberHandler: file operations +----------------------------------------- open: class mode: mode ifFail: aBlock Open the receiver in the given mode (as answered by FileStream's @@ -1205,8 +785,8 @@  File: gst-base.info, Node: VFS.ArchiveMemberHandler-finalization, Next: VFS.ArchiveMemberHandler-initializing, Prev: VFS.ArchiveMemberHandler-file operations, Up: VFS.ArchiveMemberHandler -1.190.4 VFS.ArchiveMemberHandler: finalization ----------------------------------------------- +VFS.ArchiveMemberHandler: finalization +-------------------------------------- realFileName Answer the real file name which holds the file contents, or nil if @@ -1220,8 +800,8 @@  File: gst-base.info, Node: VFS.ArchiveMemberHandler-initializing, Next: VFS.ArchiveMemberHandler-testing, Prev: VFS.ArchiveMemberHandler-finalization, Up: VFS.ArchiveMemberHandler -1.190.5 VFS.ArchiveMemberHandler: initializing ----------------------------------------------- +VFS.ArchiveMemberHandler: initializing +-------------------------------------- parent: anArchiveFileHandler Set the archive of which the receiver is a member. @@ -1234,8 +814,8 @@  File: gst-base.info, Node: VFS.ArchiveMemberHandler-testing, Prev: VFS.ArchiveMemberHandler-initializing, Up: VFS.ArchiveMemberHandler -1.190.6 VFS.ArchiveMemberHandler: testing ------------------------------------------ +VFS.ArchiveMemberHandler: testing +--------------------------------- exists Answer whether a file with the name contained in the receiver does @@ -1265,8 +845,8 @@  File: gst-base.info, Node: VFS.DecodedFileHandler, Next: VFS.ExternalArchiveFileHandler, Prev: VFS.ArchiveMemberHandler, Up: Base classes -1.191 VFS.DecodedFileHandler -============================ +VFS.DecodedFileHandler +====================== Defined in namespace Smalltalk.VFS Superclass: VFS.RealFileHandler @@ -1283,8 +863,8 @@  File: gst-base.info, Node: VFS.DecodedFileHandler class-registering, Next: VFS.DecodedFileHandler-files, Up: VFS.DecodedFileHandler -1.191.1 VFS.DecodedFileHandler class: registering -------------------------------------------------- +VFS.DecodedFileHandler class: registering +----------------------------------------- fileSystems Answer the virtual file systems that can be processed by this @@ -1310,8 +890,8 @@  File: gst-base.info, Node: VFS.DecodedFileHandler-files, Prev: VFS.DecodedFileHandler class-registering, Up: VFS.DecodedFileHandler -1.191.2 VFS.DecodedFileHandler: files -------------------------------------- +VFS.DecodedFileHandler: files +----------------------------- finalize Upon finalization, we remove the file that was temporarily holding @@ -1333,8 +913,8 @@  File: gst-base.info, Node: VFS.ExternalArchiveFileHandler, Next: VFS.RealFileHandler, Prev: VFS.DecodedFileHandler, Up: Base classes -1.192 VFS.ExternalArchiveFileHandler -==================================== +VFS.ExternalArchiveFileHandler +============================== Defined in namespace Smalltalk.VFS Superclass: VFS.ArchiveFileHandler @@ -1354,8 +934,8 @@  File: gst-base.info, Node: VFS.ExternalArchiveFileHandler class-registering, Next: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol, Up: VFS.ExternalArchiveFileHandler -1.192.1 VFS.ExternalArchiveFileHandler class: registering ---------------------------------------------------------- +VFS.ExternalArchiveFileHandler class: registering +------------------------------------------------- fileSystems Answer the virtual file systems that can be processed by this @@ -1375,8 +955,8 @@  File: gst-base.info, Node: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol, Next: VFS.ExternalArchiveFileHandler-members, Prev: VFS.ExternalArchiveFileHandler class-registering, Up: VFS.ExternalArchiveFileHandler -1.192.2 VFS.ExternalArchiveFileHandler: ArchiveMemberHandler protocol ---------------------------------------------------------------------- +VFS.ExternalArchiveFileHandler: ArchiveMemberHandler protocol +------------------------------------------------------------- extractMember: anArchiveMemberHandler Extract the contents of anArchiveMemberHandler into a file that @@ -1406,8 +986,8 @@  File: gst-base.info, Node: VFS.ExternalArchiveFileHandler-members, Next: VFS.ExternalArchiveFileHandler-releasing, Prev: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol, Up: VFS.ExternalArchiveFileHandler -1.192.3 VFS.ExternalArchiveFileHandler: members ------------------------------------------------ +VFS.ExternalArchiveFileHandler: members +--------------------------------------- createDir: dirName Create a subdirectory of the receiver, naming it dirName. @@ -1420,8 +1000,8 @@  File: gst-base.info, Node: VFS.ExternalArchiveFileHandler-releasing, Prev: VFS.ExternalArchiveFileHandler-members, Up: VFS.ExternalArchiveFileHandler -1.192.4 VFS.ExternalArchiveFileHandler: releasing -------------------------------------------------- +VFS.ExternalArchiveFileHandler: releasing +----------------------------------------- release Release the resources used by the receiver that don't survive when @@ -1431,8 +1011,8 @@  File: gst-base.info, Node: VFS.RealFileHandler, Next: VFS.VFSHandler, Prev: VFS.ExternalArchiveFileHandler, Up: Base classes -1.193 VFS.RealFileHandler -========================= +VFS.RealFileHandler +=================== Defined in namespace Smalltalk.VFS Superclass: VFS.VFSHandler @@ -1453,8 +1033,8 @@  File: gst-base.info, Node: VFS.RealFileHandler class-C functions, Next: VFS.RealFileHandler class-initialization, Up: VFS.RealFileHandler -1.193.1 VFS.RealFileHandler class: C functions ----------------------------------------------- +VFS.RealFileHandler class: C functions +-------------------------------------- working C call-out to getCurDirName. Do not modify! @@ -1463,8 +1043,8 @@  File: gst-base.info, Node: VFS.RealFileHandler class-initialization, Next: VFS.RealFileHandler-accessing, Prev: VFS.RealFileHandler class-C functions, Up: VFS.RealFileHandler -1.193.2 VFS.RealFileHandler class: initialization -------------------------------------------------- +VFS.RealFileHandler class: initialization +----------------------------------------- initialize Initialize the receiver's class variables @@ -1473,8 +1053,8 @@  File: gst-base.info, Node: VFS.RealFileHandler-accessing, Next: VFS.RealFileHandler-directory operations, Prev: VFS.RealFileHandler class-initialization, Up: VFS.RealFileHandler -1.193.3 VFS.RealFileHandler: accessing --------------------------------------- +VFS.RealFileHandler: accessing +------------------------------ creationTime Answer the creation time of the file identified by the receiver. @@ -1508,8 +1088,8 @@  File: gst-base.info, Node: VFS.RealFileHandler-directory operations, Next: VFS.RealFileHandler-file operations, Prev: VFS.RealFileHandler-accessing, Up: VFS.RealFileHandler -1.193.4 VFS.RealFileHandler: directory operations -------------------------------------------------- +VFS.RealFileHandler: directory operations +----------------------------------------- createDir: dirName Create a subdirectory of the receiver, naming it dirName. @@ -1522,8 +1102,8 @@  File: gst-base.info, Node: VFS.RealFileHandler-file operations, Next: VFS.RealFileHandler-testing, Prev: VFS.RealFileHandler-directory operations, Up: VFS.RealFileHandler -1.193.5 VFS.RealFileHandler: file operations --------------------------------------------- +VFS.RealFileHandler: file operations +------------------------------------ open: class mode: mode ifFail: aBlock Open the receiver in the given mode (as answered by FileStream's @@ -1539,8 +1119,8 @@  File: gst-base.info, Node: VFS.RealFileHandler-testing, Prev: VFS.RealFileHandler-file operations, Up: VFS.RealFileHandler -1.193.6 VFS.RealFileHandler: testing ------------------------------------- +VFS.RealFileHandler: testing +---------------------------- exists Answer whether a file with the name contained in the receiver does @@ -1566,8 +1146,8 @@  File: gst-base.info, Node: VFS.VFSHandler, Next: Warning, Prev: VFS.RealFileHandler, Up: Base classes -1.194 VFS.VFSHandler -==================== +VFS.VFSHandler +============== Defined in namespace Smalltalk.VFS Superclass: Object @@ -1590,8 +1170,8 @@  File: gst-base.info, Node: VFS.VFSHandler class-initializing, Next: VFS.VFSHandler class-instance creation, Up: VFS.VFSHandler -1.194.1 VFS.VFSHandler class: initializing ------------------------------------------- +VFS.VFSHandler class: initializing +---------------------------------- fileSystems Answer the virtual file systems that can be processed by this @@ -1615,8 +1195,8 @@  File: gst-base.info, Node: VFS.VFSHandler class-instance creation, Next: VFS.VFSHandler-accessing, Prev: VFS.VFSHandler class-initializing, Up: VFS.VFSHandler -1.194.2 VFS.VFSHandler class: instance creation ------------------------------------------------ +VFS.VFSHandler class: instance creation +--------------------------------------- for: fileName Answer the (real or virtual) file handler for the file named @@ -1626,8 +1206,8 @@  File: gst-base.info, Node: VFS.VFSHandler-accessing, Next: VFS.VFSHandler-C functions, Prev: VFS.VFSHandler class-instance creation, Up: VFS.VFSHandler -1.194.3 VFS.VFSHandler: accessing ---------------------------------- +VFS.VFSHandler: accessing +------------------------- creationTime Answer the creation time of the file identified by the receiver. @@ -1668,8 +1248,8 @@  File: gst-base.info, Node: VFS.VFSHandler-C functions, Next: VFS.VFSHandler-directory operations, Prev: VFS.VFSHandler-accessing, Up: VFS.VFSHandler -1.194.4 VFS.VFSHandler: C functions ------------------------------------ +VFS.VFSHandler: C functions +--------------------------- closeDir: dirObject C call-out to closedir. Do not modify! @@ -1714,8 +1294,8 @@  File: gst-base.info, Node: VFS.VFSHandler-directory operations, Next: VFS.VFSHandler-file operations, Prev: VFS.VFSHandler-C functions, Up: VFS.VFSHandler -1.194.5 VFS.VFSHandler: directory operations --------------------------------------------- +VFS.VFSHandler: directory operations +------------------------------------ at: aName Answer a VFSHandler for a file named `aName' residing in the @@ -1732,8 +1312,8 @@  File: gst-base.info, Node: VFS.VFSHandler-file operations, Next: VFS.VFSHandler-testing, Prev: VFS.VFSHandler-directory operations, Up: VFS.VFSHandler -1.194.6 VFS.VFSHandler: file operations ---------------------------------------- +VFS.VFSHandler: file operations +------------------------------- open: mode ifFail: aBlock Open the receiver in the given mode (as answered by FileStream's @@ -1757,8 +1337,8 @@  File: gst-base.info, Node: VFS.VFSHandler-testing, Prev: VFS.VFSHandler-file operations, Up: VFS.VFSHandler -1.194.7 VFS.VFSHandler: testing -------------------------------- +VFS.VFSHandler: testing +----------------------- exists Answer whether a file with the name contained in the receiver does @@ -1788,8 +1368,8 @@  File: gst-base.info, Node: Warning, Next: WeakArray, Prev: VFS.VFSHandler, Up: Base classes -1.195 Warning -============= +Warning +======= Defined in namespace Smalltalk Superclass: Notification @@ -1803,8 +1383,8 @@  File: gst-base.info, Node: Warning-exception description, Up: Warning -1.195.1 Warning: exception description --------------------------------------- +Warning: exception description +------------------------------ description Answer a textual description of the exception. @@ -1813,8 +1393,8 @@  File: gst-base.info, Node: WeakArray, Next: WeakIdentitySet, Prev: Warning, Up: Base classes -1.196 WeakArray -=============== +WeakArray +========= Defined in namespace Smalltalk Superclass: Array @@ -1832,8 +1412,8 @@  File: gst-base.info, Node: WeakArray class-instance creation, Next: WeakArray-accessing, Up: WeakArray -1.196.1 WeakArray class: instance creation ------------------------------------------- +WeakArray class: instance creation +---------------------------------- new: size Private - Initialize the values array; plus, make it weak and @@ -1843,8 +1423,8 @@  File: gst-base.info, Node: WeakArray-accessing, Next: WeakArray-conversion, Prev: WeakArray class-instance creation, Up: WeakArray -1.196.2 WeakArray: accessing ----------------------------- +WeakArray: accessing +-------------------- aliveObjectsDo: aBlock Evaluate aBlock for all the elements in the array, excluding the @@ -1890,8 +1470,8 @@  File: gst-base.info, Node: WeakArray-conversion, Next: WeakArray-loading, Prev: WeakArray-accessing, Up: WeakArray -1.196.3 WeakArray: conversion ------------------------------ +WeakArray: conversion +--------------------- asArray Answer a non-weak version of the receiver @@ -1913,8 +1493,8 @@  File: gst-base.info, Node: WeakArray-loading, Prev: WeakArray-conversion, Up: WeakArray -1.196.4 WeakArray: loading --------------------------- +WeakArray: loading +------------------ postLoad Called after loading an object; must restore it to the state before @@ -1924,8 +1504,8 @@  File: gst-base.info, Node: WeakIdentitySet, Next: WeakKeyDictionary, Prev: WeakArray, Up: Base classes -1.197 WeakIdentitySet -===================== +WeakIdentitySet +=============== Defined in namespace Smalltalk Superclass: WeakSet @@ -1940,8 +1520,8 @@  File: gst-base.info, Node: WeakKeyDictionary, Next: WeakKeyIdentityDictionary, Prev: WeakIdentitySet, Up: Base classes -1.198 WeakKeyDictionary -======================= +WeakKeyDictionary +================= Defined in namespace Smalltalk Superclass: Dictionary @@ -1958,8 +1538,8 @@  File: gst-base.info, Node: WeakKeyDictionary-accessing, Up: WeakKeyDictionary -1.198.1 WeakKeyDictionary: accessing ------------------------------------- +WeakKeyDictionary: accessing +---------------------------- add: anAssociation Store value as associated to the given key. If any, recycle @@ -1975,8 +1555,8 @@  File: gst-base.info, Node: WeakKeyIdentityDictionary, Next: WeakSet, Prev: WeakKeyDictionary, Up: Base classes -1.199 WeakKeyIdentityDictionary -=============================== +WeakKeyIdentityDictionary +========================= Defined in namespace Smalltalk Superclass: WeakKeyDictionary @@ -1991,8 +1571,8 @@  File: gst-base.info, Node: WeakSet, Next: WeakValueIdentityDictionary, Prev: WeakKeyIdentityDictionary, Up: Base classes -1.200 WeakSet -============= +WeakSet +======= Defined in namespace Smalltalk Superclass: Set @@ -2008,8 +1588,8 @@  File: gst-base.info, Node: WeakSet-accessing, Up: WeakSet -1.200.1 WeakSet: accessing --------------------------- +WeakSet: accessing +------------------ add: anObject Add newObject to the set, if and only if the set doesn't already @@ -2027,8 +1607,8 @@  File: gst-base.info, Node: WeakValueIdentityDictionary, Next: WeakValueLookupTable, Prev: WeakSet, Up: Base classes -1.201 WeakValueIdentityDictionary -================================= +WeakValueIdentityDictionary +=========================== Defined in namespace Smalltalk Superclass: WeakValueLookupTable @@ -2043,8 +1623,8 @@  File: gst-base.info, Node: WeakValueLookupTable, Next: WordArray, Prev: WeakValueIdentityDictionary, Up: Base classes -1.202 WeakValueLookupTable -========================== +WeakValueLookupTable +==================== Defined in namespace Smalltalk Superclass: LookupTable @@ -2062,8 +1642,8 @@  File: gst-base.info, Node: WeakValueLookupTable-hacks, Next: WeakValueLookupTable-rehashing, Up: WeakValueLookupTable -1.202.1 WeakValueLookupTable: hacks ------------------------------------ +WeakValueLookupTable: hacks +--------------------------- at: key ifAbsent: aBlock Answer the value associated to the given key, or the result of @@ -2080,8 +1660,8 @@  File: gst-base.info, Node: WeakValueLookupTable-rehashing, Prev: WeakValueLookupTable-hacks, Up: WeakValueLookupTable -1.202.2 WeakValueLookupTable: rehashing ---------------------------------------- +WeakValueLookupTable: rehashing +------------------------------- rehash Rehash the receiver @@ -2090,8 +1670,8 @@  File: gst-base.info, Node: WordArray, Next: WriteStream, Prev: WeakValueLookupTable, Up: Base classes -1.203 WordArray -=============== +WordArray +========= Defined in namespace Smalltalk Superclass: ArrayedCollection @@ -2103,8 +1683,8 @@  File: gst-base.info, Node: WriteStream, Next: ZeroDivide, Prev: WordArray, Up: Base classes -1.204 WriteStream -================= +WriteStream +=========== Defined in namespace Smalltalk Superclass: PositionableStream @@ -2122,8 +1702,8 @@  File: gst-base.info, Node: WriteStream class-instance creation, Next: WriteStream-accessing, Up: WriteStream -1.204.1 WriteStream class: instance creation --------------------------------------------- +WriteStream class: instance creation +------------------------------------ on: aCollection Answer a new instance of the receiver which streams on aCollection. @@ -2142,8 +1722,8 @@  File: gst-base.info, Node: WriteStream-accessing, Next: WriteStream-accessing-writing, Prev: WriteStream class-instance creation, Up: WriteStream -1.204.2 WriteStream: accessing ------------------------------- +WriteStream: accessing +---------------------- size Answer how many objects have been written @@ -2152,8 +1732,8 @@  File: gst-base.info, Node: WriteStream-accessing-writing, Next: WriteStream-positioning, Prev: WriteStream-accessing, Up: WriteStream -1.204.3 WriteStream: accessing-writing --------------------------------------- +WriteStream: accessing-writing +------------------------------ contents Returns a collection of the same type that the stream accesses, up @@ -2171,8 +1751,8 @@  File: gst-base.info, Node: WriteStream-positioning, Prev: WriteStream-accessing-writing, Up: WriteStream -1.204.4 WriteStream: positioning --------------------------------- +WriteStream: positioning +------------------------ emptyStream Extension - Reset the stream @@ -2181,8 +1761,8 @@  File: gst-base.info, Node: ZeroDivide, Prev: WriteStream, Up: Base classes -1.205 ZeroDivide -================ +ZeroDivide +========== Defined in namespace Smalltalk Superclass: ArithmeticError @@ -2200,8 +1780,8 @@  File: gst-base.info, Node: ZeroDivide class-instance creation, Next: ZeroDivide-accessing, Up: ZeroDivide -1.205.1 ZeroDivide class: instance creation -------------------------------------------- +ZeroDivide class: instance creation +----------------------------------- dividend: aNumber Create a new ZeroDivide object remembering that the dividend was @@ -2215,8 +1795,8 @@  File: gst-base.info, Node: ZeroDivide-accessing, Next: ZeroDivide-description, Prev: ZeroDivide class-instance creation, Up: ZeroDivide -1.205.2 ZeroDivide: accessing ------------------------------ +ZeroDivide: accessing +--------------------- dividend Answer the number that was being divided by zero @@ -2225,8 +1805,8 @@  File: gst-base.info, Node: ZeroDivide-description, Prev: ZeroDivide-accessing, Up: ZeroDivide -1.205.3 ZeroDivide: description -------------------------------- +ZeroDivide: description +----------------------- description Answer a textual description of the exception. @@ -2238,253 +1818,3402 @@ Class index *********** -[index] * Menu: -* AbstractNamespace: AbstractNamespace. (line 6) +* AbstractNamespace: AbstractNamespace. * AlternativeObjectProxy: AlternativeObjectProxy. - (line 6) -* ArithmeticError: ArithmeticError. (line 6) -* Array: Array. (line 6) -* ArrayedCollection: ArrayedCollection. (line 6) -* Association: Association. (line 6) -* Autoload: Autoload. (line 6) -* AutoloadClass: AutoloadClass. (line 6) -* Bag: Bag. (line 6) -* Behavior: Behavior. (line 6) -* BindingDictionary: BindingDictionary. (line 6) -* BlockClosure: BlockClosure. (line 6) -* BlockContext: BlockContext. (line 6) -* Boolean: Boolean. (line 6) -* ByteArray: ByteArray. (line 6) -* ByteStream: ByteStream. (line 6) -* CAggregate: CAggregate. (line 6) -* CallinProcess: CallinProcess. (line 6) -* CArray: CArray. (line 6) -* CArrayCType: CArrayCType. (line 6) -* CBoolean: CBoolean. (line 6) -* CByte: CByte. (line 6) -* CChar: CChar. (line 6) -* CCompound: CCompound. (line 6) -* CDouble: CDouble. (line 6) -* CFloat: CFloat. (line 6) -* CFunctionDescriptor: CFunctionDescriptor. (line 6) -* Character: Character. (line 6) -* CharacterArray: CharacterArray. (line 6) -* CInt: CInt. (line 6) -* Class: Class. (line 6) -* ClassDescription: ClassDescription. (line 6) -* CLong: CLong. (line 6) -* CObject: CObject. (line 6) -* Collection: Collection. (line 6) -* CompiledBlock: CompiledBlock. (line 6) -* CompiledCode: CompiledCode. (line 6) -* CompiledMethod: CompiledMethod. (line 6) -* ContextPart: ContextPart. (line 6) -* CoreException: CoreException. (line 6) -* CPtr: CPtr. (line 6) -* CPtrCType: CPtrCType. (line 6) -* CScalar: CScalar. (line 6) -* CScalarCType: CScalarCType. (line 6) -* CShort: CShort. (line 6) -* CSmalltalk: CSmalltalk. (line 6) -* CString: CString. (line 6) -* CStringCType: CStringCType. (line 6) -* CStruct: CStruct. (line 6) -* CType: CType. (line 6) -* CUChar: CUChar. (line 6) -* CUInt: CUInt. (line 6) -* CULong: CULong. (line 6) -* CUnion: CUnion. (line 6) -* CUShort: CUShort. (line 6) -* Date: Date. (line 6) -* DateTime: DateTime. (line 6) -* Delay: Delay. (line 6) -* DelayedAdaptor: DelayedAdaptor. (line 6) -* Dictionary: Dictionary. (line 6) -* DirectedMessage: DirectedMessage. (line 6) -* Directory: Directory. (line 6) -* DLD: DLD. (line 6) -* DumperProxy: DumperProxy. (line 6) -* Duration: Duration. (line 6) -* Error: Error. (line 6) -* Exception: Exception. (line 6) -* ExceptionSet: ExceptionSet. (line 6) -* False: False. (line 6) -* File: File. (line 6) -* FileDescriptor: FileDescriptor. (line 6) -* FileSegment: FileSegment. (line 6) -* FileStream: FileStream. (line 6) -* Float: Float. (line 6) -* FloatD: FloatD. (line 6) -* FloatE: FloatE. (line 6) -* FloatQ: FloatQ. (line 6) -* Fraction: Fraction. (line 6) -* Halt: Halt. (line 6) -* HashedCollection: HashedCollection. (line 6) -* HomedAssociation: HomedAssociation. (line 6) -* IdentityDictionary: IdentityDictionary. (line 6) -* IdentitySet: IdentitySet. (line 6) -* Integer: Integer. (line 6) -* Interval: Interval. (line 6) -* LargeArray: LargeArray. (line 6) +* ArithmeticError: ArithmeticError. +* Array: Array. +* ArrayedCollection: ArrayedCollection. +* Association: Association. +* Autoload: Autoload. +* AutoloadClass: AutoloadClass. +* Bag: Bag. +* Behavior: Behavior. +* BindingDictionary: BindingDictionary. +* BlockClosure: BlockClosure. +* BlockContext: BlockContext. +* Boolean: Boolean. +* ByteArray: ByteArray. +* ByteStream: ByteStream. +* CAggregate: CAggregate. +* CallinProcess: CallinProcess. +* CArray: CArray. +* CArrayCType: CArrayCType. +* CBoolean: CBoolean. +* CByte: CByte. +* CChar: CChar. +* CCompound: CCompound. +* CDouble: CDouble. +* CFloat: CFloat. +* CFunctionDescriptor: CFunctionDescriptor. +* Character: Character. +* CharacterArray: CharacterArray. +* CInt: CInt. +* Class: Class. +* ClassDescription: ClassDescription. +* CLong: CLong. +* CObject: CObject. +* Collection: Collection. +* CompiledBlock: CompiledBlock. +* CompiledCode: CompiledCode. +* CompiledMethod: CompiledMethod. +* ContextPart: ContextPart. +* CoreException: CoreException. +* CPtr: CPtr. +* CPtrCType: CPtrCType. +* CScalar: CScalar. +* CScalarCType: CScalarCType. +* CShort: CShort. +* CSmalltalk: CSmalltalk. +* CString: CString. +* CStringCType: CStringCType. +* CStruct: CStruct. +* CType: CType. +* CUChar: CUChar. +* CUInt: CUInt. +* CULong: CULong. +* CUnion: CUnion. +* CUShort: CUShort. +* Date: Date. +* DateTime: DateTime. +* Delay: Delay. +* DelayedAdaptor: DelayedAdaptor. +* Dictionary: Dictionary. +* DirectedMessage: DirectedMessage. +* Directory: Directory. +* DLD: DLD. +* DumperProxy: DumperProxy. +* Duration: Duration. +* Error: Error. +* Exception: Exception. +* ExceptionSet: ExceptionSet. +* False: False. +* File: File. +* FileDescriptor: FileDescriptor. +* FileSegment: FileSegment. +* FileStream: FileStream. +* Float: Float. +* FloatD: FloatD. +* FloatE: FloatE. +* FloatQ: FloatQ. +* Fraction: Fraction. +* Halt: Halt. +* HashedCollection: HashedCollection. +* HomedAssociation: HomedAssociation. +* IdentityDictionary: IdentityDictionary. +* IdentitySet: IdentitySet. +* Integer: Integer. +* Interval: Interval. +* LargeArray: LargeArray. * LargeArrayedCollection: LargeArrayedCollection. - (line 6) -* LargeArraySubpart: LargeArraySubpart. (line 6) -* LargeByteArray: LargeByteArray. (line 6) -* LargeInteger: LargeInteger. (line 6) -* LargeNegativeInteger: LargeNegativeInteger. (line 6) -* LargePositiveInteger: LargePositiveInteger. (line 6) -* LargeWordArray: LargeWordArray. (line 6) -* LargeZeroInteger: LargeZeroInteger. (line 6) -* Link: Link. (line 6) -* LinkedList: LinkedList. (line 6) -* LookupKey: LookupKey. (line 6) -* LookupTable: LookupTable. (line 6) -* Magnitude: Magnitude. (line 6) -* MappedCollection: MappedCollection. (line 6) -* Memory: Memory. (line 6) -* Message: Message. (line 6) -* MessageNotUnderstood: MessageNotUnderstood. (line 6) -* Metaclass: Metaclass. (line 6) -* MethodContext: MethodContext. (line 6) -* MethodDictionary: MethodDictionary. (line 6) -* MethodInfo: MethodInfo. (line 6) -* Namespace: Namespace. (line 6) +* LargeArraySubpart: LargeArraySubpart. +* LargeByteArray: LargeByteArray. +* LargeInteger: LargeInteger. +* LargeNegativeInteger: LargeNegativeInteger. +* LargePositiveInteger: LargePositiveInteger. +* LargeWordArray: LargeWordArray. +* LargeZeroInteger: LargeZeroInteger. +* Link: Link. +* LinkedList: LinkedList. +* LookupKey: LookupKey. +* LookupTable: LookupTable. +* Magnitude: Magnitude. +* MappedCollection: MappedCollection. +* Memory: Memory. +* Message: Message. +* MessageNotUnderstood: MessageNotUnderstood. +* Metaclass: Metaclass. +* MethodContext: MethodContext. +* MethodDictionary: MethodDictionary. +* MethodInfo: MethodInfo. +* Namespace: Namespace. * NetClients.URIResolver: NetClients.URIResolver. - (line 6) -* NetClients.URL: NetClients.URL. (line 6) -* Notification: Notification. (line 6) -* NullProxy: NullProxy. (line 6) -* NullValueHolder: NullValueHolder. (line 6) -* Number: Number. (line 6) -* Object: Object. (line 6) -* ObjectDumper: ObjectDumper. (line 6) -* ObjectMemory: ObjectMemory. (line 6) -* OrderedCollection: OrderedCollection. (line 6) -* Package: Package. (line 6) -* PackageLoader: PackageLoader. (line 6) -* PluggableAdaptor: PluggableAdaptor. (line 6) -* PluggableProxy: PluggableProxy. (line 6) -* Point: Point. (line 6) -* PositionableStream: PositionableStream. (line 6) -* Process: Process. (line 6) -* ProcessorScheduler: ProcessorScheduler. (line 6) -* Promise: Promise. (line 6) -* Random: Random. (line 6) -* ReadStream: ReadStream. (line 6) -* ReadWriteStream: ReadWriteStream. (line 6) -* Rectangle: Rectangle. (line 6) -* RecursionLock: RecursionLock. (line 6) -* RootNamespace: RootNamespace. (line 6) -* RunArray: RunArray. (line 6) -* ScaledDecimal: ScaledDecimal. (line 6) -* Semaphore: Semaphore. (line 6) +* NetClients.URL: NetClients.URL. +* Notification: Notification. +* NullProxy: NullProxy. +* NullValueHolder: NullValueHolder. +* Number: Number. +* Object: Object. +* ObjectDumper: ObjectDumper. +* ObjectMemory: ObjectMemory. +* OrderedCollection: OrderedCollection. +* Package: Package. +* PackageLoader: PackageLoader. +* PluggableAdaptor: PluggableAdaptor. +* PluggableProxy: PluggableProxy. +* Point: Point. +* PositionableStream: PositionableStream. +* Process: Process. +* ProcessorScheduler: ProcessorScheduler. +* Promise: Promise. +* Random: Random. +* ReadStream: ReadStream. +* ReadWriteStream: ReadWriteStream. +* Rectangle: Rectangle. +* RecursionLock: RecursionLock. +* RootNamespace: RootNamespace. +* RunArray: RunArray. +* ScaledDecimal: ScaledDecimal. +* Semaphore: Semaphore. * SequenceableCollection: SequenceableCollection. - (line 6) -* Set: Set. (line 6) -* SharedQueue: SharedQueue. (line 6) -* Signal: Signal. (line 6) -* SingletonProxy: SingletonProxy. (line 6) -* SmallInteger: SmallInteger. (line 6) -* SortedCollection: SortedCollection. (line 6) -* Stream: Stream. (line 6) -* String: String. (line 6) -* Symbol: Symbol. (line 6) -* SymLink: SymLink. (line 6) -* SystemDictionary: SystemDictionary. (line 6) +* Set: Set. +* SharedQueue: SharedQueue. +* Signal: Signal. +* SingletonProxy: SingletonProxy. +* SmallInteger: SmallInteger. +* SortedCollection: SortedCollection. +* Stream: Stream. +* String: String. +* Symbol: Symbol. +* SymLink: SymLink. +* SystemDictionary: SystemDictionary. * SystemExceptions.AlreadyDefined: SystemExceptions.AlreadyDefined. - (line 6) * SystemExceptions.ArgumentOutOfRange: SystemExceptions.ArgumentOutOfRange. - (line 6) * SystemExceptions.BadReturn: SystemExceptions.BadReturn. - (line 6) * SystemExceptions.CInterfaceError: SystemExceptions.CInterfaceError. - (line 6) * SystemExceptions.EmptyCollection: SystemExceptions.EmptyCollection. - (line 6) * SystemExceptions.EndOfStream: SystemExceptions.EndOfStream. - (line 6) * SystemExceptions.FileError: SystemExceptions.FileError. - (line 6) * SystemExceptions.IndexOutOfRange: SystemExceptions.IndexOutOfRange. - (line 6) * SystemExceptions.InvalidArgument: SystemExceptions.InvalidArgument. - (line 6) * SystemExceptions.InvalidProcessState: SystemExceptions.InvalidProcessState. - (line 6) * SystemExceptions.InvalidSize: SystemExceptions.InvalidSize. - (line 6) * SystemExceptions.InvalidValue: SystemExceptions.InvalidValue. - (line 6) * SystemExceptions.MustBeBoolean: SystemExceptions.MustBeBoolean. - (line 6) * SystemExceptions.MutationError: SystemExceptions.MutationError. - (line 6) * SystemExceptions.NoRunnableProcess: SystemExceptions.NoRunnableProcess. - (line 6) * SystemExceptions.NotFound: SystemExceptions.NotFound. - (line 6) * SystemExceptions.NotImplemented: SystemExceptions.NotImplemented. - (line 6) * SystemExceptions.NotIndexable: SystemExceptions.NotIndexable. - (line 6) * SystemExceptions.NotYetImplemented: SystemExceptions.NotYetImplemented. - (line 6) * SystemExceptions.PrimitiveFailed: SystemExceptions.PrimitiveFailed. - (line 6) * SystemExceptions.ProcessBeingTerminated: SystemExceptions.ProcessBeingTerminated. - (line 6) * SystemExceptions.ProcessTerminated: SystemExceptions.ProcessTerminated. - (line 6) * SystemExceptions.ReadOnlyObject: SystemExceptions.ReadOnlyObject. - (line 6) * SystemExceptions.ShouldNotImplement: SystemExceptions.ShouldNotImplement. - (line 6) * SystemExceptions.SubclassResponsibility: SystemExceptions.SubclassResponsibility. - (line 6) * SystemExceptions.UserInterrupt: SystemExceptions.UserInterrupt. - (line 6) * SystemExceptions.VMError: SystemExceptions.VMError. - (line 6) * SystemExceptions.WrongArgumentCount: SystemExceptions.WrongArgumentCount. - (line 6) * SystemExceptions.WrongClass: SystemExceptions.WrongClass. - (line 6) * SystemExceptions.WrongMessageSent: SystemExceptions.WrongMessageSent. - (line 6) -* TextCollector: TextCollector. (line 6) -* Time: Time. (line 6) -* TokenStream: TokenStream. (line 6) -* TrappableEvent: TrappableEvent. (line 6) -* True: True. (line 6) -* UndefinedObject: UndefinedObject. (line 6) -* ValueAdaptor: ValueAdaptor. (line 6) -* ValueHolder: ValueHolder. (line 6) -* VariableBinding: VariableBinding. (line 6) +* TextCollector: TextCollector. +* Time: Time. +* TokenStream: TokenStream. +* TrappableEvent: TrappableEvent. +* True: True. +* UndefinedObject: UndefinedObject. +* ValueAdaptor: ValueAdaptor. +* ValueHolder: ValueHolder. +* VariableBinding: VariableBinding. * VersionableObjectProxy: VersionableObjectProxy. - (line 6) * VFS.ArchiveFileHandler: VFS.ArchiveFileHandler. - (line 6) * VFS.ArchiveMemberHandler: VFS.ArchiveMemberHandler. - (line 6) * VFS.DecodedFileHandler: VFS.DecodedFileHandler. - (line 6) * VFS.ExternalArchiveFileHandler: VFS.ExternalArchiveFileHandler. - (line 6) -* VFS.RealFileHandler: VFS.RealFileHandler. (line 6) -* VFS.VFSHandler: VFS.VFSHandler. (line 6) -* Warning: Warning. (line 6) -* WeakArray: WeakArray. (line 6) -* WeakIdentitySet: WeakIdentitySet. (line 6) -* WeakKeyDictionary: WeakKeyDictionary. (line 6) +* VFS.RealFileHandler: VFS.RealFileHandler. +* VFS.VFSHandler: VFS.VFSHandler. +* Warning: Warning. +* WeakArray: WeakArray. +* WeakIdentitySet: WeakIdentitySet. +* WeakKeyDictionary: WeakKeyDictionary. * WeakKeyIdentityDictionary: WeakKeyIdentityDictionary. - (line 6) -* WeakSet: WeakSet. (line 6) +* WeakSet: WeakSet. * WeakValueIdentityDictionary: WeakValueIdentityDictionary. - (line 6) -* WeakValueLookupTable: WeakValueLookupTable. (line 6) -* WordArray: WordArray. (line 6) -* WriteStream: WriteStream. (line 6) -* ZeroDivide: ZeroDivide. (line 6) +* WeakValueLookupTable: WeakValueLookupTable. +* WordArray: WordArray. +* WriteStream: WriteStream. +* ZeroDivide: ZeroDivide. + + +File: gst-base.info, Node: Method index, Next: Cross-reference, Prev: Class index, Up: Top + +Method index +************ + +* Menu: + +* & <1>: True-basic. +* & <2>: Set-arithmetic. +* & <3>: Boolean-basic. +* &: False-basic. +* * <1>: Number-arithmetic. +* * <2>: SmallInteger-built ins. +* * <3>: LargeInteger-arithmetic. +* * <4>: LargeZeroInteger-arithmetic. +* * <5>: ScaledDecimal-arithmetic. +* * <6>: Duration-arithmetics. +* * <7>: FloatQ-built ins. +* * <8>: Fraction-arithmetic. +* * <9>: FloatE-built ins. +* * <10>: FloatD-built ins. +* *: Point-arithmetic. +* + <1>: ScaledDecimal-arithmetic. +* + <2>: LargeInteger-arithmetic. +* + <3>: FloatQ-built ins. +* + <4>: FloatE-built ins. +* + <5>: FloatD-built ins. +* + <6>: Duration-arithmetics. +* + <7>: Number-arithmetic. +* + <8>: SmallInteger-built ins. +* + <9>: LargeNegativeInteger-reverting to LargePositiveInteger. +* + <10>: DateTime-basic. +* + <11>: Point-arithmetic. +* + <12>: Fraction-arithmetic. +* + <13>: LargeZeroInteger-arithmetic. +* + <14>: CObject-pointer-like behavior. +* + <15>: LargePositiveInteger-arithmetic. +* +: Set-arithmetic. +* , <1>: Exception class-creating ExceptionCollections. +* , <2>: ArrayedCollection-basic. +* , <3>: SequenceableCollection-copying SequenceableCollections. +* , <4>: String class-basic. +* ,: TrappableEvent-instance creation. +* - <1>: CObject-pointer-like behavior. +* - <2>: Fraction-arithmetic. +* - <3>: Point-arithmetic. +* - <4>: FloatE-built ins. +* - <5>: Number-arithmetic. +* - <6>: SmallInteger-built ins. +* - <7>: ScaledDecimal-arithmetic. +* - <8>: LargePositiveInteger-arithmetic. +* - <9>: LargeNegativeInteger-reverting to LargePositiveInteger. +* - <10>: LargeZeroInteger-arithmetic. +* - <11>: Duration-arithmetics. +* - <12>: DateTime-basic. +* - <13>: LargeInteger-arithmetic. +* - <14>: FloatD-built ins. +* - <15>: FloatQ-built ins. +* -: Set-arithmetic. +* ->: Object-syntax shortcuts. +* / <1>: FloatQ-built ins. +* / <2>: FloatD-built ins. +* / <3>: LargeZeroInteger-arithmetic. +* / <4>: Duration-arithmetics. +* / <5>: FloatE-built ins. +* / <6>: Number-arithmetic. +* / <7>: ScaledDecimal-arithmetic. +* / <8>: Point-arithmetic. +* / <9>: SmallInteger-built ins. +* / <10>: Fraction-arithmetic. +* /: LargeInteger-arithmetic. +* // <1>: Number-arithmetic. +* // <2>: LargeInteger-arithmetic. +* // <3>: Point-arithmetic. +* // <4>: LargeZeroInteger-arithmetic. +* // <5>: SmallInteger-built ins. +* // <6>: ScaledDecimal-arithmetic. +* //: Fraction-arithmetic. +* < <1>: FloatQ-built ins. +* < <2>: Magnitude-basic. +* < <3>: Fraction-comparing. +* < <4>: LookupKey-testing. +* < <5>: CharacterArray-comparing. +* < <6>: Time-comparing. +* < <7>: SmallInteger-built ins. +* < <8>: Set-comparing. +* < <9>: LargeArraySubpart-comparing. +* < <10>: Point-comparing. +* < <11>: Character-comparing. +* < <12>: DateTime-testing. +* < <13>: Date-testing. +* < <14>: LargeInteger-testing. +* < <15>: FloatD-built ins. +* < <16>: ScaledDecimal-comparing. +* <: FloatE-built ins. +* <<: Stream-printing. +* <= <1>: FloatQ-built ins. +* <= <2>: LargeArraySubpart-comparing. +* <= <3>: LargeInteger-testing. +* <= <4>: ScaledDecimal-comparing. +* <= <5>: Magnitude-basic. +* <= <6>: FloatE-built ins. +* <= <7>: CharacterArray-comparing. +* <= <8>: Set-comparing. +* <= <9>: Character-comparing. +* <= <10>: Fraction-comparing. +* <= <11>: Point-comparing. +* <= <12>: SmallInteger-built ins. +* <=: FloatD-built ins. +* = <1>: CompiledMethod-basic. +* = <2>: RunArray-testing. +* = <3>: FloatQ-built ins. +* = <4>: Exception-comparison. +* = <5>: FloatD-built ins. +* = <6>: NetClients.URL-comparing. +* = <7>: Time-comparing. +* = <8>: FloatE-built ins. +* = <9>: Object-built ins. +* = <10>: Rectangle-testing. +* = <11>: Association-testing. +* = <12>: AbstractNamespace-basic & copying. +* = <13>: Bag-testing collections. +* = <14>: Class-testing. +* = <15>: Symbol-built ins. +* = <16>: LookupKey-testing. +* = <17>: ScaledDecimal-comparing. +* = <18>: FileSegment-equality. +* = <19>: MethodInfo-equality. +* = <20>: SequenceableCollection-testing. +* = <21>: CompiledCode-basic. +* = <22>: Point-comparing. +* = <23>: CompiledBlock-basic. +* = <24>: HashedCollection-testing collections. +* = <25>: DateTime-testing. +* = <26>: Delay-comparing. +* = <27>: Fraction-comparing. +* = <28>: Date-testing. +* = <29>: LargeArraySubpart-comparing. +* = <30>: Dictionary-testing. +* = <31>: Interval-testing. +* = <32>: SmallInteger-built ins. +* = <33>: LargeArrayedCollection-basic. +* = <34>: Magnitude-basic. +* = <35>: LargeInteger-testing. +* =: Character-built ins. +* == <1>: Object-built ins. +* ==: SmallInteger-built ins. +* > <1>: FloatD-built ins. +* > <2>: Set-comparing. +* > <3>: Point-comparing. +* > <4>: Character-comparing. +* > <5>: SmallInteger-built ins. +* > <6>: FloatQ-built ins. +* > <7>: Magnitude-basic. +* > <8>: Fraction-comparing. +* > <9>: CharacterArray-comparing. +* > <10>: ScaledDecimal-comparing. +* > <11>: LargeInteger-testing. +* >: FloatE-built ins. +* >= <1>: CharacterArray-comparing. +* >= <2>: FloatQ-built ins. +* >= <3>: Fraction-comparing. +* >= <4>: ScaledDecimal-comparing. +* >= <5>: FloatE-built ins. +* >= <6>: Set-comparing. +* >= <7>: LargeInteger-testing. +* >= <8>: Character-comparing. +* >= <9>: SmallInteger-built ins. +* >= <10>: Point-comparing. +* >= <11>: FloatD-built ins. +* >=: Magnitude-basic. +* >>: Behavior-accessing the methodDictionary. +* @: Number-point creation. +* \\ <1>: SmallInteger-built ins. +* \\ <2>: LargeInteger-arithmetic. +* \\ <3>: Fraction-arithmetic. +* \\ <4>: LargeZeroInteger-arithmetic. +* \\ <5>: ScaledDecimal-arithmetic. +* \\: Number-arithmetic. +* abbreviationOfDay_: Date class-basic. +* abort: ObjectMemory class-builtins. +* abs <1>: LargeNegativeInteger-numeric testing. +* abs <2>: Point-arithmetic. +* abs <3>: LargePositiveInteger-numeric testing. +* abs <4>: Number-misc math. +* abs: Duration-arithmetics. +* acceptUsageForClass_ <1>: SingletonProxy class-accessing. +* acceptUsageForClass_ <2>: DumperProxy class-accessing. +* acceptUsageForClass_: AlternativeObjectProxy class-instance creation. +* accesses_ <1>: CompiledMethod-testing. +* accesses_: CompiledCode-testing accesses. +* activePriority: ProcessorScheduler-basic. +* activeProcess: ProcessorScheduler-basic. +* add_ <1>: MappedCollection-basic. +* add_ <2>: BindingDictionary-forward declarations. +* add_ <3>: Collection-adding. +* add_ <4>: OrderedCollection-adding. +* add_ <5>: LinkedList-adding. +* add_ <6>: WeakSet-accessing. +* add_ <7>: Bag-adding. +* add_ <8>: Dictionary-accessing. +* add_ <9>: ArrayedCollection-basic. +* add_ <10>: WeakKeyDictionary-accessing. +* add_ <11>: LookupTable-accessing. +* add_: HashedCollection-accessing. +* add_after_: OrderedCollection-adding. +* add_afterIndex_ <1>: SortedCollection-disabled. +* add_afterIndex_ <2>: OrderedCollection-adding. +* add_afterIndex_: RunArray-adding. +* add_before_: OrderedCollection-adding. +* add_beforeIndex_: OrderedCollection-adding. +* add_withOccurrences_: Bag-adding. +* addAll_ <1>: OrderedCollection-adding. +* addAll_: Collection-adding. +* addAll_after_: OrderedCollection-adding. +* addAll_afterIndex_ <1>: RunArray-adding. +* addAll_afterIndex_ <2>: OrderedCollection-adding. +* addAll_afterIndex_: SortedCollection-disabled. +* addAll_before_: OrderedCollection-adding. +* addAll_beforeIndex_: OrderedCollection-adding. +* addAllFirst_ <1>: RunArray-adding. +* addAllFirst_ <2>: OrderedCollection-adding. +* addAllFirst_: SortedCollection-disabled. +* addAllLast_ <1>: RunArray-adding. +* addAllLast_ <2>: SortedCollection-disabled. +* addAllLast_: OrderedCollection-adding. +* addClassVarName_ <1>: Class-accessing instances and variables. +* addClassVarName_: Metaclass-delegation. +* addDays_: Date-basic. +* addDependent_ <1>: UndefinedObject-dependents access. +* addDependent_: Object-dependents access. +* addFeature_: SystemDictionary-special accessing. +* addFirst_ <1>: RunArray-adding. +* addFirst_ <2>: OrderedCollection-adding. +* addFirst_ <3>: LinkedList-adding. +* addFirst_: SortedCollection-disabled. +* addInstVarName_: Behavior-instance variables. +* addLast_ <1>: LinkedList-adding. +* addLast_ <2>: SortedCollection-disabled. +* addLast_ <3>: RunArray-adding. +* addLast_: OrderedCollection-adding. +* addLibrary_: DLD class-dynamic linking. +* addModule_: DLD class-dynamic linking. +* address <1>: CObject-accessing. +* address: CFunctionDescriptor-accessing. +* address_ <1>: CFunctionDescriptor-accessing. +* address_ <2>: CObject class-instance creation. +* address_ <3>: CObject-accessing. +* address_: CType-C instance creation. +* addressAt_: CObject-pointer-like behavior. +* addressOf_ <1>: ObjectMemory class-builtins. +* addressOf_: CFunctionDescriptor class-testing. +* addressOfOOP_: ObjectMemory class-builtins. +* addSelector_withMethod_: Behavior-method dictionary. +* addSharedPool_ <1>: Metaclass-delegation. +* addSharedPool_: Class-accessing instances and variables. +* addSubclass_: Behavior-creating a class hierarchy. +* addSubspace_: AbstractNamespace-namespace hierarchy. +* addTime_: Time-arithmetic. +* addToBeFinalized: Object-finalization. +* after_: SequenceableCollection-basic. +* alignof <1>: CUInt-accessing. +* alignof <2>: CPtr-accessing. +* alignof <3>: CShort class-accessing. +* alignof <4>: CShort-accessing. +* alignof <5>: CSmalltalk class-accessing. +* alignof <6>: CSmalltalk-accessing. +* alignof <7>: CType-accessing. +* alignof <8>: CUChar class-getting info. +* alignof <9>: CUChar-accessing. +* alignof <10>: CUInt class-accessing. +* alignof <11>: CULong class-accessing. +* alignof <12>: CULong-accessing. +* alignof <13>: CUShort class-accessing. +* alignof <14>: CUShort-accessing. +* alignof <15>: CLong-accessing. +* alignof <16>: CLong class-accessing. +* alignof <17>: CInt-accessing. +* alignof <18>: CInt class-accessing. +* alignof <19>: CFloat-accessing. +* alignof <20>: CFloat class-accessing. +* alignof <21>: CDouble-accessing. +* alignof <22>: CDouble class-accessing. +* alignof <23>: CCompound class-subclass creation. +* alignof <24>: CChar-accessing. +* alignof <25>: CChar class-accessing. +* alignof <26>: CArrayCType-accessing. +* alignof <27>: CArray-accessing. +* alignof: CAggregate class-accessing. +* alignTo_: Integer-extension. +* aliveObjectsDo_: WeakArray-accessing. +* allAssociations: AbstractNamespace-accessing. +* allBehaviorsDo_: AbstractNamespace-accessing. +* allBlocksDo_: CompiledMethod-accessing. +* allClassesDo_: AbstractNamespace-accessing. +* allClassObjectsDo_: AbstractNamespace-accessing. +* allClassVarNames <1>: Behavior-accessing instances and variables. +* allClassVarNames <2>: Class-accessing instances and variables. +* allClassVarNames: Metaclass-delegation. +* allExceptionsDo_ <1>: TrappableEvent-enumerating. +* allExceptionsDo_ <2>: ExceptionSet-enumerating. +* allExceptionsDo_ <3>: CoreException-enumerating. +* allExceptionsDo_: Exception class-interoperability with TrappableEvents. +* allFiles: Package-accessing. +* allInstances: Behavior-accessing instances and variables. +* allInstancesDo_: Behavior-enumerating. +* allInstVarNames: Behavior-accessing instances and variables. +* allLiterals: CompiledMethod-accessing. +* allMask_: Integer-bit operators. +* allMetaclassesDo_: AbstractNamespace-accessing. +* alloc_: CObject class-instance creation. +* alloc_type_: CObject class-instance creation. +* allocFailures: ObjectMemory-accessing. +* allocMatches: ObjectMemory-accessing. +* allocProbes: ObjectMemory-accessing. +* allocSplits: ObjectMemory-accessing. +* allOwners: Object-built ins. +* allSatisfy_: Collection-enumeration. +* allSelectors: Behavior-accessing the methodDictionary. +* allSharedPools <1>: Behavior-accessing instances and variables. +* allSharedPools: Metaclass-delegation. +* allSubassociationsDo_: AbstractNamespace-namespace hierarchy. +* allSubclasses: Behavior-accessing class hierarchy. +* allSubclassesDo_: Behavior-enumerating. +* allSubinstancesDo_: Behavior-enumerating. +* allSubspaces: AbstractNamespace-namespace hierarchy. +* allSubspacesDo_: AbstractNamespace-namespace hierarchy. +* allSuperclasses: Behavior-accessing class hierarchy. +* allSuperclassesDo_: Behavior-enumerating. +* allSuperspaces: AbstractNamespace-namespace hierarchy. +* allSuperspacesDo_: AbstractNamespace-namespace hierarchy. +* amountToTranslateWithin_: Rectangle-rectangle functions. +* and_ <1>: False-basic. +* and_ <2>: True-basic. +* and_: Boolean-basic. +* anyMask_: Integer-bit operators. +* anyOne <1>: SequenceableCollection-enumerating. +* anyOne: Collection-enumeration. +* anySatisfy_: Collection-enumeration. +* append: FileDescriptor class-instance creation. +* append_to_: Directory class-file name management. +* arcCos <1>: Float-built ins. +* arcCos: Number-misc math. +* arcSin <1>: Number-misc math. +* arcSin: Float-built ins. +* arcTan <1>: Point-point functions. +* arcTan <2>: Number-misc math. +* arcTan: Float-built ins. +* area: Rectangle-rectangle functions. +* areasOutside_: Rectangle-rectangle functions. +* argument <1>: Message-accessing. +* argument: Signal-accessing. +* argumentCount <1>: Signal-accessing. +* argumentCount: BlockClosure-accessing. +* arguments <1>: Message-accessing. +* arguments <2>: SystemDictionary-miscellaneous. +* arguments: Signal-accessing. +* arguments_: Message-accessing. +* arithmeticError_: Number-error raising. +* arrayType_: CType-accessing. +* article <1>: Behavior-support for lightweight classes. +* article: Class-printing. +* asArray <1>: WeakArray-conversion. +* asArray: Collection-converting. +* asBag: Collection-converting. +* asByteArray <1>: String-converting. +* asByteArray <2>: CharacterArray-converting. +* asByteArray: Collection-converting. +* asCBooleanValue <1>: Boolean-C hacks. +* asCBooleanValue <2>: True-C hacks. +* asCBooleanValue: False-C hacks. +* asCData_ <1>: String-built ins. +* asCData_: ByteArray-built ins. +* asCharacter: Integer-converting. +* asciiValue: Character-built ins. +* asciiValue_: Character class-built ins. +* asClass <1>: Behavior-support for lightweight classes. +* asClass <2>: Metaclass-testing functionality. +* asClass <3>: ClassDescription-conversion. +* asClass: Class-testing functionality. +* asClassPoolKey: CharacterArray-converting. +* asDate: DateTime-splitting in dates & times. +* asExactFraction: Float-coercing. +* asFloat <1>: Number-converting. +* asFloat: Float-coercing. +* asFloatD <1>: FloatQ-built ins. +* asFloatD <2>: LargeNegativeInteger-converting. +* asFloatD <3>: Number-converting. +* asFloatD <4>: Fraction-converting. +* asFloatD <5>: FloatE-built ins. +* asFloatD <6>: LargePositiveInteger-converting. +* asFloatD <7>: SmallInteger-built ins. +* asFloatD <8>: ScaledDecimal-coercion. +* asFloatD: FloatD-coercing. +* asFloatE <1>: FloatD-built ins. +* asFloatE <2>: FloatQ-built ins. +* asFloatE <3>: Fraction-converting. +* asFloatE <4>: FloatE-coercing. +* asFloatE <5>: ScaledDecimal-coercion. +* asFloatE <6>: LargePositiveInteger-converting. +* asFloatE <7>: LargeNegativeInteger-converting. +* asFloatE <8>: SmallInteger-built ins. +* asFloatE: Number-converting. +* asFloatQ <1>: FloatQ-coercing. +* asFloatQ <2>: Number-converting. +* asFloatQ <3>: Fraction-converting. +* asFloatQ <4>: FloatE-built ins. +* asFloatQ <5>: ScaledDecimal-coercion. +* asFloatQ <6>: LargeNegativeInteger-converting. +* asFloatQ <7>: LargePositiveInteger-converting. +* asFloatQ <8>: FloatD-built ins. +* asFloatQ: SmallInteger-built ins. +* asFraction <1>: ScaledDecimal-coercion. +* asFraction <2>: Float-coercing. +* asFraction <3>: Integer-converting. +* asFraction: Fraction-converting. +* asGlobalKey: CharacterArray-converting. +* asInteger <1>: Number-truncation and round off. +* asInteger <2>: Character-built ins. +* asInteger: CharacterArray-converting. +* asLocal: DateTime-time zones. +* asLowercase <1>: CharacterArray-converting. +* asLowercase: Character-coercion methods. +* asMetaclass: ClassDescription-conversion. +* asNumber: CharacterArray-converting. +* asObject <1>: SmallInteger-built ins. +* asObject: LargeInteger-disabled. +* asObjectNoFail <1>: SmallInteger-built ins. +* asObjectNoFail: LargeInteger-disabled. +* asOop: Object-built ins. +* asOrderedCollection: Collection-converting. +* asPoint <1>: Point-converting. +* asPoint: Number-point creation. +* asPoolKey: CharacterArray-converting. +* asRectangle <1>: Number-converting. +* asRectangle: Point-converting. +* asRunArray: Collection-converting. +* asScaledDecimal_ <1>: Integer-converting. +* asScaledDecimal_: Number-converting. +* asScaledDecimal_scale_: Number-converting. +* asSeconds <1>: DateTime-computations. +* asSeconds <2>: Date-date computations. +* asSeconds: Time-accessing (non ANSI & for Durations). +* asSet <1>: Collection-converting. +* asSet: Bag-enumerating the elements of a collection. +* assigns_ <1>: CompiledMethod-testing. +* assigns_: CompiledCode-testing accesses. +* associationAt_: Dictionary-accessing. +* associationAt_ifAbsent_ <1>: LookupTable-accessing. +* associationAt_ifAbsent_ <2>: Dictionary-accessing. +* associationAt_ifAbsent_: Namespace-overrides for superspaces. +* associationsDo_ <1>: Namespace-overrides for superspaces. +* associationsDo_ <2>: LookupTable-enumerating. +* associationsDo_: Dictionary-dictionary enumerating. +* asSortedCollection: Collection-converting. +* asSortedCollection_: Collection-converting. +* asString <1>: String-converting. +* asString <2>: Symbol-converting. +* asString <3>: Character-coercion methods. +* asString <4>: ByteArray-converting. +* asString <5>: FileSegment-basic. +* asString: CharacterArray-converting. +* asSymbol <1>: Symbol-converting. +* asSymbol <2>: Character-coercion methods. +* asSymbol <3>: String-converting. +* asSymbol: CharacterArray-converting. +* asTime: DateTime-splitting in dates & times. +* asUppercase <1>: CharacterArray-converting. +* asUppercase: Character-coercion methods. +* asUTC: DateTime-time zones. +* asValue: Object-conversion. +* asyncCallFrom_: CFunctionDescriptor-calling. +* asyncCallNoRetryFrom_: CFunctionDescriptor-calling. +* at_ <1>: Dictionary-accessing. +* at_ <2>: CObject-pointer-like behavior. +* at_ <3>: VFS.ArchiveFileHandler-directory operations. +* at_ <4>: Interval-basic. +* at_ <5>: SmallInteger-builtins. +* at_ <6>: OrderedCollection-accessing. +* at_ <7>: LargeInteger-built-ins. +* at_ <8>: VFS.ArchiveMemberHandler-directory operations. +* at_ <9>: String-built ins. +* at_ <10>: Object-built ins. +* at_ <11>: HashedCollection-accessing. +* at_ <12>: LargeZeroInteger-accessing. +* at_ <13>: Memory class-accessing. +* at_ <14>: WeakArray-accessing. +* at_ <15>: Link-iteration. +* at_ <16>: LinkedList-accessing. +* at_ <17>: VFS.VFSHandler-directory operations. +* at_ <18>: LargeArrayedCollection-accessing. +* at_ <19>: RunArray-accessing. +* at_ <20>: Directory-accessing. +* at_ <21>: DateTime-splitting in dates & times. +* at_: MappedCollection-basic. +* at_ifAbsent_ <1>: SequenceableCollection-basic. +* at_ifAbsent_ <2>: Dictionary-accessing. +* at_ifAbsent_ <3>: LookupTable-accessing. +* at_ifAbsent_ <4>: WeakValueLookupTable-hacks. +* at_ifAbsent_: Namespace-overrides for superspaces. +* at_ifAbsentPut_: Dictionary-accessing. +* at_ifPresent_ <1>: Dictionary-accessing. +* at_ifPresent_ <2>: Namespace-overrides for superspaces. +* at_ifPresent_ <3>: LookupTable-accessing. +* at_ifPresent_: WeakValueLookupTable-hacks. +* at_put_ <1>: LookupTable-accessing. +* at_put_ <2>: MethodDictionary-adding. +* at_put_ <3>: LinkedList-accessing. +* at_put_ <4>: Object-built ins. +* at_put_ <5>: Link-iteration. +* at_put_ <6>: LargeArrayedCollection-accessing. +* at_put_ <7>: String-built ins. +* at_put_ <8>: CompiledCode-accessing. +* at_put_ <9>: HashedCollection-accessing. +* at_put_ <10>: LargeInteger-built-ins. +* at_put_ <11>: WeakArray-accessing. +* at_put_ <12>: BindingDictionary-forward declarations. +* at_put_ <13>: WeakKeyDictionary-accessing. +* at_put_ <14>: SmallInteger-builtins. +* at_put_ <15>: SortedCollection-disabled. +* at_put_ <16>: RunArray-accessing. +* at_put_ <17>: Interval-basic. +* at_put_ <18>: CObject-pointer-like behavior. +* at_put_ <19>: OrderedCollection-accessing. +* at_put_ <20>: MappedCollection-basic. +* at_put_ <21>: Memory class-accessing. +* at_put_: Dictionary-accessing. +* at_put_type_: CObject-C data access. +* at_type_: CObject-C data access. +* atAll_put_ <1>: SequenceableCollection-basic. +* atAll_put_: WeakArray-accessing. +* atAllPut_ <1>: WeakArray-accessing. +* atAllPut_: SequenceableCollection-basic. +* atEnd <1>: PositionableStream-testing. +* atEnd <2>: FileStream-testing. +* atEnd <3>: Stream-testing. +* atEnd <4>: TokenStream-basic. +* atEnd <5>: FileDescriptor-testing. +* atEnd <6>: Random-basic. +* atEnd: ObjectDumper-stream interface. +* backspace: Character class-constants. +* backtrace <1>: ContextPart class-exception handling. +* backtrace <2>: ContextPart-printing. +* backtrace: SystemDictionary-miscellaneous. +* backtraceOn_ <1>: ContextPart-printing. +* backtraceOn_: ContextPart class-exception handling. +* badReturnError: Object-exception handling. +* baseDirs_: Package-accessing. +* basicAt_ <1>: String-built ins. +* basicAt_ <2>: Object-built ins. +* basicAt_ <3>: SmallInteger-builtins. +* basicAt_: CharacterArray-basic. +* basicAt_put_ <1>: SmallInteger-builtins. +* basicAt_put_ <2>: CharacterArray-basic. +* basicAt_put_ <3>: Object-built ins. +* basicAt_put_: String-built ins. +* basicAtEnd: PositionableStream-testing. +* basicBacktrace: SystemDictionary-builtins. +* basicFlush: FileStream-buffering. +* basicLeftShift_: LargeInteger-primitive operations. +* basicMessageText: Signal-accessing. +* basicNew: Behavior-built ins. +* basicNew_: Behavior-built ins. +* basicNewInFixedSpace: Behavior-built ins. +* basicNewInFixedSpace_: Behavior-built ins. +* basicPosition_: PositionableStream-positioning. +* basicPrint: Object-built ins. +* basicPrintNl: Object-printing. +* basicPrintOn_: Object-printing. +* basicRightShift_: LargeInteger-primitive operations. +* basicSize: Object-built ins. +* become_: Object-built ins. +* beConsistent <1>: SortedCollection-enumerating. +* beConsistent: Collection-enumeration. +* before_: SequenceableCollection-basic. +* bell: Character class-constants. +* between_and_ <1>: Random-basic. +* between_and_ <2>: Magnitude-misc methods. +* between_and_: Random class-shortcuts. +* bigEndian: Memory class-accessing. +* bigObjectThreshold: ObjectMemory class-builtins. +* bigObjectThreshold_: ObjectMemory class-builtins. +* binaryRepresentationObject <1>: VariableBinding-saving and loading. +* binaryRepresentationObject <2>: CompiledBlock-saving and loading. +* binaryRepresentationObject <3>: Object-saving and loading. +* binaryRepresentationObject: CompiledMethod-saving and loading. +* binaryRepresentationVersion: Class-saving and loading. +* binding: ClassDescription-conversion. +* bindingFor_: Class-accessing instances and variables. +* bindWith_: CharacterArray-string processing. +* bindWith_with_: CharacterArray-string processing. +* bindWith_with_with_: CharacterArray-string processing. +* bindWith_with_with_with_: CharacterArray-string processing. +* bindWithArguments_: CharacterArray-string processing. +* binomial_: Integer-math methods. +* bitAnd_ <1>: SmallInteger-built ins. +* bitAnd_: LargeInteger-bit operations. +* bitAt_ <1>: LargeInteger-bit operations. +* bitAt_: Integer-bit operators. +* bitAt_put_: Integer-bit operators. +* bitClear_: Integer-bit operators. +* bitInvert <1>: LargeInteger-bit operations. +* bitInvert: Integer-bit operators. +* bitOr_ <1>: SmallInteger-built ins. +* bitOr_: LargeInteger-bit operations. +* bits: SmallInteger class-getting limits. +* bitShift_ <1>: LargeInteger-bit operations. +* bitShift_: SmallInteger-built ins. +* bitXor_ <1>: LargeInteger-bit operations. +* bitXor_: SmallInteger-built ins. +* block: BlockClosure-accessing. +* block_ <1>: BlockClosure-accessing. +* block_: BlockClosure class-instance creation. +* blockAt_: CompiledCode-accessing. +* blockCopy_: BlockClosure-built ins. +* bottom: Rectangle-accessing. +* bottom_: Rectangle-accessing. +* bottomCenter: Rectangle-accessing. +* bottomLeft: Rectangle-accessing. +* bottomLeft_: Rectangle-accessing. +* bottomRight: Rectangle-accessing. +* bottomRight_: Rectangle-accessing. +* breakpoint_return_: Object-debugging. +* broadcast_: Object-change and update. +* broadcast_with_: Object-change and update. +* broadcast_with_with_: Object-change and update. +* broadcast_withArguments_: Object-change and update. +* broadcast_withBlock_: Object-change and update. +* bufferSize: FileStream-buffering. +* bufferSize_: FileStream-buffering. +* builtFiles: Package-accessing. +* builtFilesFor_: PackageLoader class-accessing. +* byteAt_: ByteArray-built ins. +* byteAt_put_: ByteArray-built ins. +* bytecodeAt_: CompiledCode-accessing. +* bytecodeAt_put_: CompiledCode-accessing. +* byteCodeCounter: SystemDictionary-builtins. +* bytes_from_compare_: LargePositiveInteger-helper byte-level methods. +* bytes_from_subtract_: LargePositiveInteger-helper byte-level methods. +* bytes_multiply_: LargePositiveInteger-helper byte-level methods. +* bytesLeftShift_: LargePositiveInteger-helper byte-level methods. +* bytesLeftShift_big_: LargePositiveInteger-helper byte-level methods. +* bytesLeftShift_n_: LargePositiveInteger-helper byte-level methods. +* bytesPerOOP: ObjectMemory-accessing. +* bytesPerOTE: ObjectMemory-accessing. +* bytesRightShift_big_: LargePositiveInteger-helper byte-level methods. +* bytesRightShift_n_: LargePositiveInteger-helper byte-level methods. +* bytesTrailingZeros_: LargePositiveInteger-helper byte-level methods. +* caller: BlockContext-accessing. +* callFrom_into_: CFunctionDescriptor-calling. +* callNoRetryFrom_into_: CFunctionDescriptor-calling. +* callouts: Package-accessing. +* calloutsFor_: PackageLoader class-accessing. +* canCache: NetClients.URL-testing. +* canLoad_: PackageLoader class-testing. +* canRead: FileDescriptor-accessing. +* canUnderstand_: Behavior-testing the method dictionary. +* canWrite: FileDescriptor-accessing. +* capacity <1>: HashedCollection-testing collections. +* capacity: Collection-testing collections. +* castTo_: CObject-conversion. +* categoriesFor_are_: Class-instance creation - alternative. +* category <1>: MethodInfo-accessing. +* category <2>: Class-accessing instances and variables. +* category: Metaclass-delegation. +* category_ <1>: Class-accessing instances and variables. +* category_: MethodInfo-accessing. +* ceiling <1>: Fraction-coercing. +* ceiling <2>: Integer-converting. +* ceiling <3>: ScaledDecimal-coercion. +* ceiling: Float-built ins. +* center: Rectangle-accessing. +* changeClassTo_: Object-built ins. +* changed: Object-change and update. +* changed_: Object-change and update. +* changePriorityListOf_to_suspend_: ProcessorScheduler-basic. +* charAt_ <1>: Memory class-accessing. +* charAt_: ByteArray-more advanced accessing. +* charAt_put_ <1>: ByteArray-more advanced accessing. +* charAt_put_: Memory class-accessing. +* checkError: File class-file operations. +* checkError_: File class-file operations. +* checkIndexableBounds_: Object-built ins. +* checkIndexableBounds_put_: Object-built ins. +* chiSquare: Random-testing. +* chiSquare_range_: Random-testing. +* class: Object-built ins. +* class_from_: Autoload class-instance creation. +* class_in_from_: Autoload class-instance creation. +* classAt_: AbstractNamespace-accessing. +* classAt_ifAbsent_: AbstractNamespace-accessing. +* classify_under_: ClassDescription-organization of messages and classes. +* classPool <1>: Class-accessing instances and variables. +* classPool <2>: Behavior-accessing instances and variables. +* classPool: Metaclass-delegation. +* classVariableString: ClassDescription-printing. +* classVarNames <1>: Metaclass-delegation. +* classVarNames <2>: Behavior-accessing instances and variables. +* classVarNames: Class-accessing instances and variables. +* clean: FileStream-buffering. +* clearBit_: Integer-bit operators. +* clearGCFlag_: WeakArray-accessing. +* client: ContextPart-accessing. +* clockPrecision: DateTime class-information. +* close <1>: PositionableStream-accessing-reading. +* close <2>: Stream-providing consistent protocols. +* close: FileDescriptor-basic. +* closeDir_: VFS.VFSHandler-C functions. +* closeTo_: Number-testing. +* cObjectType: CType-accessing. +* cObjectType_: CType class-C instance creation. +* cObjStoredType <1>: CScalar-accessing. +* cObjStoredType: CString-accessing. +* codePoint: Character-built ins. +* codePoint_: Character class-built ins. +* coerce_ <1>: Integer class-converting. +* coerce_ <2>: Fraction-coercing. +* coerce_ <3>: Number-converting. +* coerce_ <4>: FloatE-coercing. +* coerce_ <5>: Integer-converting. +* coerce_ <6>: FloatQ class-converting. +* coerce_ <7>: Fraction class-converting. +* coerce_ <8>: Number class-converting. +* coerce_ <9>: FloatE class-converting. +* coerce_ <10>: LargeInteger-coercion. +* coerce_ <11>: FloatD-coercing. +* coerce_ <12>: FloatD class-converting. +* coerce_ <13>: ScaledDecimal-coercion. +* coerce_: FloatQ-coercing. +* collect_ <1>: Dictionary-dictionary enumerating. +* collect_ <2>: Collection-enumeration. +* collect_ <3>: MappedCollection-basic. +* collect_ <4>: ArrayedCollection-enumerating the elements of a collection. +* collect_: Interval-basic. +* collection: SystemExceptions.IndexOutOfRange-accessing. +* collection_: SystemExceptions.IndexOutOfRange-accessing. +* collection_map_: MappedCollection class-instance creation. +* comment <1>: Metaclass-delegation. +* comment: Class-accessing instances and variables. +* comment_: Class-accessing instances and variables. +* compact: ObjectMemory class-builtins. +* compile_: Behavior-method dictionary. +* compile_classified_: ClassDescription-compiling. +* compile_classified_ifError_: ClassDescription-compiling. +* compile_classified_notifying_: ClassDescription-compiling. +* compile_ifError_: Behavior-method dictionary. +* compile_notifying_: Behavior-method dictionary. +* compileAll: Behavior-method dictionary. +* compileAll_: Behavior-method dictionary. +* compileAllSubclasses: Behavior-method dictionary. +* compileAllSubclasses_: Behavior-method dictionary. +* compileDeclaration_ <1>: CCompound class-subclass creation. +* compileDeclaration_ <2>: CUnion class-subclass creation. +* compileDeclaration_: CStruct class-subclass creation. +* compileDeclaration_inject_into_: CCompound class-subclass creation. +* compiledMethodAt_: Behavior-accessing the methodDictionary. +* compiledMethodAt_ifAbsent_: Behavior-accessing the methodDictionary. +* compilerClass: Behavior-pluggable behavior (not yet implemented). +* compileSize_align_: CCompound class-subclass creation. +* compileString_: Behavior-built ins. +* compileString_ifError_: Behavior-built ins. +* compress: LargeArrayedCollection-accessing. +* computeAggregateType_block_: CCompound class-subclass creation. +* computeArrayType_block_: CCompound class-subclass creation. +* computePtrType_block_: CCompound class-subclass creation. +* computeTypeString_block_: CCompound class-subclass creation. +* conform_: Collection-enumeration. +* construct_: NetClients.URL-utilities. +* contains_ <1>: Collection-enumeration. +* contains_: Rectangle-testing. +* containsLiteral_: CompiledCode-testing accesses. +* containsPoint_: Rectangle-testing. +* contents <1>: MappedCollection-basic. +* contents <2>: WriteStream-accessing-writing. +* contents <3>: Stream-accessing-reading. +* contents <4>: PositionableStream-accessing-reading. +* contents <5>: FileDescriptor-basic. +* contents <6>: Directory-enumerating. +* contents: File-file operations. +* continue_: ContextPart-built ins. +* contractTo_: CharacterArray-string processing. +* convertFromVersion_withFixedVariables_indexedVariables_for_: Class-saving and loading. +* copy <1>: Object-copying. +* copy <2>: Rectangle-copying. +* copy <3>: UndefinedObject-basic. +* copy: BindingDictionary-copying. +* copy_from_: ClassDescription-copying. +* copy_from_classified_: ClassDescription-copying. +* copyAll_from_: ClassDescription-copying. +* copyAll_from_classified_: ClassDescription-copying. +* copyAllCategoriesFrom_: ClassDescription-copying. +* copyCategory_from_: ClassDescription-copying. +* copyCategory_from_classified_: ClassDescription-copying. +* copyEmpty_ <1>: AbstractNamespace-copying. +* copyEmpty_ <2>: BindingDictionary-copying. +* copyEmpty_: SortedCollection-copying. +* copyEmptyForCollect: BindingDictionary-copying. +* copyFrom_: SequenceableCollection-copying SequenceableCollections. +* copyFrom_to_ <1>: SequenceableCollection-copying SequenceableCollections. +* copyFrom_to_ <2>: PositionableStream-accessing-reading. +* copyFrom_to_ <3>: ArrayedCollection-basic. +* copyFrom_to_ <4>: FileStream-basic. +* copyFrom_to_: FileDescriptor-basic. +* copyReplaceAll_with_ <1>: ArrayedCollection-copying Collections. +* copyReplaceAll_with_: SequenceableCollection-copying SequenceableCollections. +* copyReplaceFrom_to_with_ <1>: ArrayedCollection-copying Collections. +* copyReplaceFrom_to_with_: SequenceableCollection-copying SequenceableCollections. +* copyReplaceFrom_to_withObject_ <1>: ArrayedCollection-copying Collections. +* copyReplaceFrom_to_withObject_: SequenceableCollection-copying SequenceableCollections. +* copyReplacing_withObject_: Collection-copying Collections. +* copyUpTo_: SequenceableCollection-copying SequenceableCollections. +* copyWith_ <1>: ArrayedCollection-basic. +* copyWith_: Collection-copying Collections. +* copyWithout_ <1>: Collection-copying Collections. +* copyWithout_: ArrayedCollection-basic. +* copyWithoutAuxiliaryParts: NetClients.URL-copying. +* copyWithoutFragment: NetClients.URL-copying. +* coreException: Exception class-interoperability with TrappableEvents. +* corner: Rectangle-accessing. +* corner_ <1>: Point-converting. +* corner_: Rectangle-accessing. +* cos <1>: Number-misc math. +* cos: Float-built ins. +* costOfNewIndex: LargeByteArray-overridden. +* cr <1>: Character class-constants. +* cr <2>: Stream-character writing. +* cr: TextCollector-accessing. +* create: FileDescriptor class-instance creation. +* create_: Directory class-file operations. +* createDir_ <1>: VFS.ArchiveMemberHandler-directory operations. +* createDir_ <2>: VFS.ExternalArchiveFileHandler-members. +* createDir_ <3>: VFS.RealFileHandler-directory operations. +* createDir_ <4>: VFS.ArchiveFileHandler-directory operations. +* createDir_: VFS.VFSHandler-directory operations. +* createGetMethod_ <1>: ClassDescription-organization of messages and classes. +* createGetMethod_: Behavior-method dictionary. +* createGetMethod_default_ <1>: ClassDescription-organization of messages and classes. +* createGetMethod_default_: Behavior-method dictionary. +* createSetMethod_ <1>: ClassDescription-organization of messages and classes. +* createSetMethod_: Behavior-method dictionary. +* creationTime <1>: VFS.ArchiveMemberHandler-accessing. +* creationTime <2>: VFS.VFSHandler-accessing. +* creationTime <3>: File-accessing. +* creationTime: VFS.RealFileHandler-accessing. +* critical_ <1>: Semaphore-mutual exclusion. +* critical_: RecursionLock-mutual exclusion. +* crTab: Stream-character writing. +* current <1>: Namespace class-accessing. +* current: ObjectMemory class-accessing. +* current_: Namespace class-accessing. +* cutAt_: LargeArraySubpart-modifying. +* dateAndTimeNow: Date class-instance creation (Blue Book). +* day: Date-compatibility (non-ANSI). +* dayName: Date-compatibility (non-ANSI). +* dayOfMonth: Date-date computations. +* dayOfWeek <1>: Date-date computations. +* dayOfWeek: DateTime-computations. +* dayOfWeek_: Date class-basic. +* dayOfWeekAbbreviation: Date-date computations. +* dayOfWeekName: Date-date computations. +* dayOfYear: Date-date computations. +* days: Duration-arithmetics. +* days_: Duration class-instance creation. +* days_hours_minutes_seconds_: Duration class-instance creation. +* daysFromBaseDay: Date-date computations. +* daysInMonth: Date-date computations. +* daysInMonth_forYear_: Date class-basic. +* daysInYear: Date-date computations. +* daysInYear_: Date class-basic. +* daysLeftInMonth: Date-date computations. +* daysLeftInYear: Date-date computations. +* debug: SystemDictionary-builtins. +* debuggerClass <1>: Behavior-pluggable behavior (not yet implemented). +* debuggerClass <2>: ContextPart-debugging. +* debuggerClass: Metaclass-delegation. +* decimalDigits <1>: FloatE class-characterization. +* decimalDigits <2>: FloatQ class-characterization. +* decimalDigits: FloatD class-characterization. +* declarationTrace: SystemDictionary-builtins. +* declarationTrace_: SystemDictionary-builtins. +* decode_: NetClients.URL class-encoding URLs. +* decodedFields: NetClients.URL-accessing. +* decodedFile: NetClients.URL-accessing. +* decodedFragment: NetClients.URL-accessing. +* decompile_: Behavior-method dictionary. +* decompilerClass: Behavior-pluggable behavior (not yet implemented). +* decr: CObject-pointer-like behavior. +* decrBy_: CObject-pointer-like behavior. +* deepCopy <1>: HashedCollection-copying. +* deepCopy <2>: Boolean-overriding. +* deepCopy <3>: BlockClosure-overriding. +* deepCopy <4>: BindingDictionary-copying. +* deepCopy <5>: Symbol-basic. +* deepCopy <6>: RunArray-copying. +* deepCopy <7>: LookupTable-copying. +* deepCopy <8>: UndefinedObject-basic. +* deepCopy <9>: CompiledCode-copying. +* deepCopy <10>: Object-copying. +* deepCopy <11>: WeakArray-conversion. +* deepCopy <12>: ContextPart-copying. +* deepCopy: Number-copying. +* defaultAction <1>: Notification-exception description. +* defaultAction <2>: Signal-exception handling. +* defaultAction: Exception-exception description. +* defaultElement <1>: LargeByteArray-overridden. +* defaultElement: LargeWordArray-overridden. +* defaultHandler: CoreException-accessing. +* defaultHandler_: CoreException-accessing. +* defaultSortBlock: SortedCollection class-hacking. +* define_: BindingDictionary-accessing. +* defineAsyncCFunc_withSelectorArgs_args_ <1>: Behavior-method dictionary. +* defineAsyncCFunc_withSelectorArgs_args_: ClassDescription-organization of messages and classes. +* defineCFunc_as_: DLD class-C functions. +* defineCFunc_withSelectorArgs_returning_args_ <1>: ClassDescription-organization of messages and classes. +* defineCFunc_withSelectorArgs_returning_args_: Behavior-method dictionary. +* definedKeys: AbstractNamespace-overrides for superspaces. +* defineExternFunc_: DLD class-dynamic linking. +* definesKey_: AbstractNamespace-overrides for superspaces. +* degreesToRadians: Number-converting. +* denominator <1>: Fraction-accessing. +* denominator: Integer-accessing. +* denormalized: Float class-characterization. +* dependencies: Object class-initialization. +* dependencies_: Object class-initialization. +* dependents: Object-dependents access. +* deref_: Memory class-accessing. +* description <1>: ZeroDivide-description. +* description <2>: SystemExceptions.FileError-accessing. +* description <3>: Halt-description. +* description <4>: SystemExceptions.EndOfStream-accessing. +* description <5>: SystemExceptions.EmptyCollection-accessing. +* description <6>: SystemExceptions.CInterfaceError-accessing. +* description <7>: MessageNotUnderstood-description. +* description <8>: SystemExceptions.BadReturn-accessing. +* description <9>: SystemExceptions.ArgumentOutOfRange-accessing. +* description <10>: Warning-exception description. +* description <11>: SystemExceptions.MutationError-accessing. +* description <12>: SystemExceptions.NotFound-accessing. +* description <13>: SystemExceptions.NotImplemented-accessing. +* description <14>: SystemExceptions.NotIndexable-accessing. +* description <15>: SystemExceptions.NotYetImplemented-accessing. +* description <16>: CoreException-accessing. +* description <17>: SystemExceptions.PrimitiveFailed-accessing. +* description <18>: SystemExceptions.ProcessBeingTerminated-accessing. +* description <19>: Signal-accessing. +* description <20>: SystemExceptions.NoRunnableProcess-accessing. +* description <21>: SystemExceptions.ProcessTerminated-accessing. +* description <22>: SystemExceptions.ReadOnlyObject-accessing. +* description <23>: SystemExceptions.ShouldNotImplement-accessing. +* description <24>: SystemExceptions.InvalidValue-accessing. +* description <25>: SystemExceptions.SubclassResponsibility-accessing. +* description <26>: SystemExceptions.InvalidSize-accessing. +* description <27>: SystemExceptions.UserInterrupt-accessing. +* description <28>: SystemExceptions.VMError-accessing. +* description <29>: Notification-exception description. +* description <30>: SystemExceptions.InvalidProcessState-accessing. +* description <31>: SystemExceptions.WrongArgumentCount-accessing. +* description <32>: Exception-exception description. +* description <33>: SystemExceptions.WrongClass-accessing. +* description <34>: SystemExceptions.IndexOutOfRange-accessing. +* description <35>: SystemExceptions.AlreadyDefined-accessing. +* description <36>: ArithmeticError-description. +* description: Error-exception description. +* description_: CoreException-accessing. +* detect_: Collection-enumeration. +* detect_ifNone_: Collection-enumeration. +* digitAt_: LargeInteger-built-ins. +* digitAt_put_: LargeInteger-built-ins. +* digitLength: LargeInteger-built-ins. +* digitValue: Character-converting. +* digitValue_: Character class-instance creation. +* directory: Package-accessing. +* directory_: Package-accessing. +* directoryAt_: Directory-accessing. +* directoryFor_: PackageLoader class-accessing. +* disableInterrupts: ProcessorScheduler-built ins. +* disableProxyFor_: ObjectDumper class-establishing proxy classes. +* discardTranslation: CompiledCode-translation. +* dispatchTo_with_: CompiledCode-decoding bytecodes. +* display: Object-printing. +* display_: Stream-printing. +* displayNl: Object-printing. +* displayOn_ <1>: Symbol-storing. +* displayOn_ <2>: Character-printing. +* displayOn_ <3>: CharacterArray-printing. +* displayOn_ <4>: Object-printing. +* displayOn_ <5>: ScaledDecimal-printing. +* displayOn_: Integer-printing. +* displayString <1>: CharacterArray-printing. +* displayString <2>: Object-printing. +* displayString <3>: Integer-printing. +* displayString: Symbol-storing. +* dist_: Point-point functions. +* divide_using_: LargePositiveInteger-primitive operations. +* dividend: ZeroDivide-accessing. +* dividend_: ZeroDivide class-instance creation. +* do_ <1>: LinkedList-enumerating. +* do_ <2>: Collection-enumeration. +* do_ <3>: HashedCollection-enumerating the elements of a collection. +* do_ <4>: SymLink-iteration. +* do_ <5>: VFS.VFSHandler-directory operations. +* do_ <6>: VFS.ExternalArchiveFileHandler-members. +* do_ <7>: SequenceableCollection-enumerating. +* do_ <8>: VFS.ArchiveMemberHandler-directory operations. +* do_ <9>: Stream-enumerating. +* do_ <10>: Dictionary-dictionary enumerating. +* do_ <11>: VFS.ArchiveFileHandler-directory operations. +* do_ <12>: MappedCollection-basic. +* do_ <13>: Namespace-overrides for superspaces. +* do_ <14>: WeakSet-accessing. +* do_ <15>: RunArray-enumerating. +* do_ <16>: WeakArray-accessing. +* do_ <17>: Bag-enumerating the elements of a collection. +* do_ <18>: VFS.RealFileHandler-directory operations. +* do_ <19>: Interval-basic. +* do_ <20>: Directory-enumerating. +* do_: Link-iteration. +* do_separatedBy_ <1>: SequenceableCollection-enumerating. +* do_separatedBy_: Collection-enumeration. +* doesNotUnderstand_ <1>: Autoload-accessing. +* doesNotUnderstand_ <2>: BindingDictionary-accessing. +* doesNotUnderstand_ <3>: Object-error raising. +* doesNotUnderstand_: AutoloadClass-accessing. +* domain: MappedCollection-basic. +* dotProduct_: Point-point functions. +* doubleAt_ <1>: ByteArray-more advanced accessing. +* doubleAt_: Memory class-accessing. +* doubleAt_put_ <1>: ByteArray-more advanced accessing. +* doubleAt_put_: Memory class-accessing. +* doWithIndex_: SequenceableCollection-enumerating. +* dump_: ObjectDumper-loading/dumping objects. +* dump_to_: ObjectDumper class-shortcuts. +* dumpTo_ <1>: DumperProxy-saving and restoring. +* dumpTo_ <2>: NullProxy-accessing. +* dumpTo_: VersionableObjectProxy-saving and restoring. +* e <1>: FloatE class-characterization. +* e <2>: FloatQ class-characterization. +* e: Float class-characterization. +* edenSize: ObjectMemory-accessing. +* edenUsedBytes: ObjectMemory-accessing. +* edit_: Behavior-method dictionary. +* elementType <1>: CStringCType-accessing. +* elementType <2>: CAggregate-accessing. +* elementType: CPtrCType-accessing. +* elementType_ <1>: CPtrCType class-instance creation. +* elementType_: CArrayCType class-instance creation. +* elementType_numberOfElements_: CArrayCType class-instance creation. +* emax <1>: FloatE class-characterization. +* emax <2>: FloatD class-characterization. +* emax: FloatQ class-characterization. +* emin <1>: FloatE class-characterization. +* emin <2>: FloatD class-characterization. +* emin: FloatQ class-characterization. +* emitInspectTo_for_: CCompound class-subclass creation. +* empty: Collection-removing. +* emptyStream: WriteStream-positioning. +* enableInterrupts: ProcessorScheduler-built ins. +* encode_: NetClients.URL class-encoding URLs. +* endEntry: TextCollector-accessing. +* ensure_: BlockClosure-unwind protection. +* ensureReadable: FileDescriptor-accessing. +* ensureWriteable: FileDescriptor-accessing. +* environment <1>: HomedAssociation-accessing. +* environment <2>: ContextPart-accessing. +* environment <3>: Behavior-support for lightweight classes. +* environment <4>: Metaclass-delegation. +* environment <5>: Class-accessing instances and variables. +* environment <6>: BindingDictionary-accessing. +* environment <7>: Association-accessing. +* environment: AutoloadClass-accessing. +* environment_ <1>: Association-accessing. +* environment_ <2>: Class-accessing instances and variables. +* environment_ <3>: HomedAssociation-accessing. +* environment_ <4>: AutoloadClass-accessing. +* environment_: BindingDictionary-accessing. +* eof: Character class-constants. +* eot: Character class-constants. +* epsilon: Float class-characterization. +* eqv_ <1>: Boolean-basic. +* eqv_ <2>: False-basic. +* eqv_: True-basic. +* errno: File class-C functions. +* error_: Object-error raising. +* esc: Character class-constants. +* estimatedLog <1>: Float-coercing. +* estimatedLog <2>: Integer-math methods. +* estimatedLog <3>: Fraction-arithmetic. +* estimatedLog <4>: Number-misc math. +* estimatedLog: LargeInteger-arithmetic. +* evalString_to_: Behavior-evaluating. +* evalString_to_ifError_: Behavior-evaluating. +* evaluate_: Behavior-evaluating. +* evaluate_ifError_: Behavior-evaluating. +* evaluate_notifying_: Behavior-evaluating. +* evaluate_to_: Behavior-evaluating. +* evaluate_to_ifError_: Behavior-evaluating. +* evaluatorClass: Behavior-pluggable behavior (not yet implemented). +* even <1>: Integer-math methods. +* even: Number-testing. +* example: ObjectDumper class-testing. +* exception: Signal-accessing. +* exceptionalCondition: FileDescriptor-accessing. +* executionTrace: SystemDictionary-builtins. +* executionTrace_: SystemDictionary-builtins. +* exists <1>: VFS.RealFileHandler-testing. +* exists <2>: VFS.VFSHandler-testing. +* exists <3>: VFS.ArchiveMemberHandler-testing. +* exists: File-testing. +* exists_: File class-testing. +* exp <1>: Number-misc math. +* exp: Float-built ins. +* expandBy_: Rectangle-rectangle functions. +* exponent <1>: FloatE-built ins. +* exponent <2>: FloatQ-built ins. +* exponent: FloatD-built ins. +* extend: Class-instance creation. +* extension: File-file name management. +* extensionFor_: File class-file name management. +* extent: Rectangle-accessing. +* extent_ <1>: Point-converting. +* extent_: Rectangle-accessing. +* externalInterruptsEnabled: Process-accessing. +* extractDependenciesFor_onError_: PackageLoader class-loading. +* extractDirentName_: VFS.VFSHandler-C functions. +* extractMember_ <1>: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol. +* extractMember_: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol. +* factorial: Integer-math methods. +* fd: FileDescriptor-accessing. +* fileIn: FileStream-filing in. +* fileIn_: FileStream class-file-in. +* fileIn_ifMissing_: FileStream class-file-in. +* fileIn_ifTrue_: FileStream class-file-in. +* fileIn_line_from_at_: FileStream class-file-in. +* fileInLine_fileName_at_: FileStream-filing in. +* fileInPackage_: PackageLoader class-loading. +* fileInPackages_: PackageLoader class-loading. +* fileIns: Package-accessing. +* fileInsFor_: PackageLoader class-accessing. +* fileName <1>: CharacterArray-converting. +* fileName <2>: AutoloadClass-accessing. +* fileName: FileSegment-basic. +* fileName_: AutoloadClass-accessing. +* fileOp_: FileDescriptor-built ins. +* fileOp_ifFail_: FileDescriptor-built ins. +* fileOp_with_: FileDescriptor-built ins. +* fileOp_with_ifFail_: FileDescriptor-built ins. +* fileOp_with_with_: FileDescriptor-built ins. +* fileOp_with_with_ifFail_: FileDescriptor-built ins. +* fileOp_with_with_with_: FileDescriptor-built ins. +* fileOp_with_with_with_ifFail_: FileDescriptor-built ins. +* fileOut_ <1>: ClassDescription-filing. +* fileOut_: Stream-filing out. +* fileOutCategory_to_: ClassDescription-filing. +* fileOutCategory_toStream_: ClassDescription-filing. +* fileOutDeclarationOn_: Class-filing. +* fileOutHeaderOn_: Class-filing. +* fileOutOn_ <1>: ClassDescription-filing. +* fileOutOn_ <2>: Metaclass-filing. +* fileOutOn_: Class-filing. +* fileOutSelector_to_: ClassDescription-filing. +* filePos <1>: FileSegment-basic. +* filePos: CharacterArray-converting. +* files: Package-accessing. +* filesFor_: PackageLoader class-accessing. +* filesMatching_do_: Directory-enumerating. +* fileSystems <1>: VFS.ExternalArchiveFileHandler class-registering. +* fileSystems <2>: VFS.VFSHandler class-initializing. +* fileSystems: VFS.DecodedFileHandler class-registering. +* fileSystemsIn_: VFS.ExternalArchiveFileHandler class-registering. +* fill: FileStream-buffering. +* fillMember_ <1>: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol. +* fillMember_: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol. +* finalIP: BlockClosure-accessing. +* finalizableObjects: Object class-initialization. +* finalize <1>: VFS.DecodedFileHandler-files. +* finalize <2>: CObject-finalization. +* finalize <3>: VFS.ArchiveFileHandler-directory operations. +* finalize <4>: Object-finalization. +* finalize: FileDescriptor-basic. +* findBaseDirs_for_: Package-accessing. +* findBaseDirs_forFile_: Package-accessing. +* findFirst_: SequenceableCollection-enumerating. +* findKeyIndex_: Dictionary-awful ST-80 compatibility hacks. +* findLast_: SequenceableCollection-enumerating. +* findObjectIndex_: Set-awful ST-80 compatibility hacks. +* finishIncrementalGC: ObjectMemory class-builtins. +* first <1>: SequenceableCollection-basic. +* first <2>: RunArray-basic. +* first: LargeArraySubpart-accessing. +* first_last_index_ <1>: LargeArraySubpart class-instance creation. +* first_last_index_: LargeArraySubpart-accessing. +* firstDayOfMonth: Date-date computations. +* firstIndex: LargeArraySubpart-accessing. +* fixedSpaceSize: ObjectMemory-accessing. +* fixedSpaceUsedBytes: ObjectMemory-accessing. +* fixTemps: BlockClosure-accessing. +* flags <1>: CompiledCode-accessing. +* flags <2>: CompiledMethod-accessing. +* flags: CompiledBlock-accessing. +* floatAt_ <1>: ByteArray-more advanced accessing. +* floatAt_: Memory class-accessing. +* floatAt_put_ <1>: ByteArray-more advanced accessing. +* floatAt_put_: Memory class-accessing. +* floor <1>: Integer-converting. +* floor <2>: Number-truncation and round off. +* floor <3>: Fraction-coercing. +* floor: Float-built ins. +* floorLog_ <1>: Integer-math methods. +* floorLog_: Number-misc math. +* flush <1>: PackageLoader class-accessing. +* flush <2>: ObjectDumper-accessing. +* flush <3>: Stream-providing consistent protocols. +* flush: FileStream-buffering. +* flushCache: Behavior-built ins. +* flushTranslatorCache: CompiledCode class-cache flushing. +* fmax <1>: FloatD class-characterization. +* fmax <2>: FloatQ class-characterization. +* fmax: FloatE class-characterization. +* fmin: Float class-characterization. +* fminDenormalized: Float class-characterization. +* fminNormalized <1>: FloatD class-characterization. +* fminNormalized <2>: FloatE class-characterization. +* fminNormalized: FloatQ class-characterization. +* fold_: Collection-enumeration. +* fopen_mode_: FileDescriptor class-instance creation. +* fopen_mode_ifFail_: FileDescriptor class-instance creation. +* for_: VFS.VFSHandler class-instance creation. +* for_returning_withArgs_: CFunctionDescriptor class-instance creation. +* fork <1>: DirectedMessage-multiple process. +* fork: BlockClosure-multiple process. +* forkAt_ <1>: DirectedMessage-multiple process. +* forkAt_: BlockClosure-multiple process. +* forkWithoutPreemption: BlockClosure-multiple process. +* forMilliseconds_: Delay class-instance creation. +* forMutualExclusion: Semaphore class-instance creation. +* forSeconds_: Delay class-instance creation. +* fractionPart <1>: ScaledDecimal-coercion. +* fractionPart <2>: FloatE-built ins. +* fractionPart <3>: Number-truncation and round off. +* fractionPart <4>: FloatQ-built ins. +* fractionPart: FloatD-built ins. +* fragment: NetClients.URL-accessing. +* fragment_: NetClients.URL-accessing. +* free <1>: CObject-C data access. +* free: UndefinedObject-CObject interoperability. +* from_to_: Interval class-instance creation. +* from_to_by_: Interval class-instance creation. +* from_to_do_: SequenceableCollection-enumerating. +* from_to_doWithIndex_: SequenceableCollection-enumerating. +* from_to_keysAndValuesDo_: SequenceableCollection-enumerating. +* fromCData_size_: String class-instance creation. +* fromDays_: Date class-instance creation (Blue Book). +* fromDays_seconds_offset_ <1>: DateTime class-instance creation (non-ANSI). +* fromDays_seconds_offset_: Duration class-instance creation (non ANSI). +* fromJulian_: Date class-instance creation (Blue Book). +* fromSeconds_ <1>: Date class-instance creation (Blue Book). +* fromSeconds_: Time class-instance creation. +* fromString_ <1>: NetClients.URL class-instance creation. +* fromString_: CharacterArray class-basic. +* fullName: File-file name management. +* fullNameAt_: Directory-accessing. +* fullNameFor_: File class-file name management. +* fullRequestString: NetClients.URL-accessing. +* gcd_ <1>: Integer-math methods. +* gcd_ <2>: LargeNegativeInteger-reverting to LargePositiveInteger. +* gcd_: LargePositiveInteger-arithmetic. +* gcMessage: ObjectMemory class-builtins. +* gcMessage_: ObjectMemory class-builtins. +* generality <1>: SmallInteger-coercion methods. +* generality <2>: Number-converting. +* generality <3>: LargeInteger-coercion. +* generality <4>: FloatD-coercing. +* generality <5>: ScaledDecimal-coercion. +* generality <6>: FloatQ-coercing. +* generality <7>: Fraction-coercing. +* generality: FloatE-coercing. +* generateMakefileOnto_: FileStream class-file-in. +* getArgc: SystemDictionary-C functions. +* getArgv_: SystemDictionary-C functions. +* getBlock_putBlock_: PluggableAdaptor class-creating instances. +* getenv_: SystemDictionary-C functions. +* getTraceFlag_: SystemDictionary-builtins. +* globalGarbageCollect: ObjectMemory class-builtins. +* goodness_ <1>: ExceptionSet-enumerating. +* goodness_ <2>: TrappableEvent-enumerating. +* goodness_ <3>: Exception class-comparison. +* goodness_: CoreException-enumerating. +* grid_: Point-point functions. +* grow: LargeArraySubpart-modifying. +* growBy_: LargeArraySubpart-modifying. +* growThresholdPercent: ObjectMemory class-builtins. +* growThresholdPercent_: ObjectMemory class-builtins. +* growTo_: ObjectMemory class-builtins. +* halt <1>: Object-built ins. +* halt: SystemDictionary-basic. +* halt_: Object-error raising. +* handles_ <1>: TrappableEvent-enumerating. +* handles_ <2>: CoreException-enumerating. +* handles_ <3>: ExceptionSet-enumerating. +* handles_: Exception class-comparison. +* hasBytecode_between_and_: CompiledCode-testing accesses. +* hasFeatures_: SystemDictionary-special accessing. +* hasFragment: NetClients.URL-testing. +* hash <1>: Date-testing. +* hash <2>: LargeInteger-built-ins. +* hash <3>: Fraction-comparing. +* hash <4>: LargeArraySubpart-comparing. +* hash <5>: Float-basic. +* hash <6>: Dictionary-testing. +* hash <7>: String-built ins. +* hash <8>: CompiledCode-basic. +* hash <9>: NetClients.URL-comparing. +* hash <10>: Symbol-built ins. +* hash <11>: ScaledDecimal-comparing. +* hash <12>: SystemDictionary-basic. +* hash <13>: RunArray-testing. +* hash <14>: Integer-basic. +* hash <15>: Time-comparing. +* hash <16>: LargeZeroInteger-accessing. +* hash <17>: Rectangle-testing. +* hash <18>: ByteArray-built ins. +* hash <19>: Object-built ins. +* hash <20>: Delay-comparing. +* hash <21>: MethodInfo-equality. +* hash <22>: LookupKey-testing. +* hash <23>: AbstractNamespace-basic & copying. +* hash <24>: LargeArrayedCollection-basic. +* hash <25>: LookupTable-hashing. +* hash <26>: Bag-testing collections. +* hash <27>: Point-converting. +* hash <28>: DateTime-testing. +* hash <29>: Exception-comparison. +* hash <30>: FileSegment-equality. +* hash <31>: HashedCollection-testing collections. +* hash <32>: Association-testing. +* hash <33>: CompiledMethod-basic. +* hash <34>: Interval-testing. +* hash: SequenceableCollection-testing. +* hasInterned_ifTrue_: Symbol class-symbol table. +* hasMethodReturn: BlockClosure-testing. +* hasMethods: Behavior-testing the method dictionary. +* hasPostData: NetClients.URL-accessing. +* hasPostData_: NetClients.URL-accessing. +* hasProxyFor_: ObjectDumper class-establishing proxy classes. +* hasQuery: NetClients.URL-testing. +* hasValue: Promise-accessing. +* height: Rectangle-accessing. +* height_: Rectangle-accessing. +* hereAt_: AbstractNamespace-overrides for superspaces. +* hereAt_ifAbsent_: AbstractNamespace-overrides for superspaces. +* hierarchyIndent: Behavior-printing hierarchy. +* high: SystemExceptions.ArgumentOutOfRange-accessing. +* high_: SystemExceptions.ArgumentOutOfRange-accessing. +* highBit <1>: Integer-bit operators. +* highBit <2>: SmallInteger-bit arithmetic. +* highBit <3>: LargeNegativeInteger-reverting to LargePositiveInteger. +* highBit: LargePositiveInteger-arithmetic. +* highestPriority: ProcessorScheduler-priorities. +* highIOPriority: ProcessorScheduler-priorities. +* home <1>: ContextPart-accessing. +* home <2>: Directory class-reading system defaults. +* home <3>: BlockContext-accessing. +* home: MethodContext-accessing. +* host: NetClients.URL-accessing. +* host_: NetClients.URL-accessing. +* hour <1>: Time-accessing (ANSI for DateAndTimes). +* hour: DateTime-computations. +* hour12 <1>: DateTime-computations. +* hour12: Time-accessing (ANSI for DateAndTimes). +* hour24 <1>: Time-accessing (ANSI for DateAndTimes). +* hour24: DateTime-computations. +* hours: Time-accessing (non ANSI & for Durations). +* hours_: Time class-instance creation. +* hours_minutes_seconds_: Time class-instance creation. +* identityHash: Object-built ins. +* identityIncludes_ <1>: Collection-testing collections. +* identityIncludes_ <2>: SequenceableCollection-basic. +* identityIncludes_: IdentitySet-testing. +* identityIndexOf_: SequenceableCollection-basic. +* identityIndexOf_ifAbsent_: SequenceableCollection-basic. +* identityIndexOf_startingAt_: SequenceableCollection-basic. +* identityIndexOf_startingAt_ifAbsent_: SequenceableCollection-basic. +* idle: ProcessorScheduler-idle tasks. +* idleAdd_: ProcessorScheduler-idle tasks. +* ifCurtailed_: BlockClosure-unwind protection. +* ifError_: BlockClosure-exception handling. +* ifFalse_ <1>: True-basic. +* ifFalse_ <2>: False-basic. +* ifFalse_: Boolean-basic. +* ifFalse_ifTrue_ <1>: True-basic. +* ifFalse_ifTrue_ <2>: False-basic. +* ifFalse_ifTrue_: Boolean-basic. +* ifNil_ <1>: UndefinedObject-testing. +* ifNil_: Object-testing functionality. +* ifNil_ifNotNil_ <1>: Object-testing functionality. +* ifNil_ifNotNil_: UndefinedObject-testing. +* ifNotNil_ <1>: Object-testing functionality. +* ifNotNil_: UndefinedObject-testing. +* ifNotNil_ifNil_ <1>: Object-testing functionality. +* ifNotNil_ifNil_: UndefinedObject-testing. +* ifTrue_ <1>: Boolean-basic. +* ifTrue_ <2>: True-basic. +* ifTrue_: False-basic. +* ifTrue_ifFalse_ <1>: True-basic. +* ifTrue_ifFalse_ <2>: Boolean-basic. +* ifTrue_ifFalse_: False-basic. +* ignoreCallouts: PackageLoader class-accessing. +* ignoreCallouts_: PackageLoader class-accessing. +* image <1>: File class-reading system defaults. +* image: Directory class-reading system defaults. +* import_from_: BindingDictionary-accessing. +* includes_ <1>: Collection-testing collections. +* includes_ <2>: Dictionary-dictionary testing. +* includes_ <3>: HashedCollection-testing collections. +* includes_ <4>: Directory-accessing. +* includes_ <5>: Bag-testing collections. +* includes_ <6>: SortedCollection-searching. +* includes_: SequenceableCollection-basic. +* includesAssociation_: Dictionary-dictionary testing. +* includesBehavior_: Behavior-testing the class hierarchy. +* includesClassNamed_: AbstractNamespace-namespace hierarchy. +* includesGlobalNamed_: AbstractNamespace-namespace hierarchy. +* includesKey_ <1>: Dictionary-dictionary testing. +* includesKey_ <2>: Namespace-overrides for superspaces. +* includesKey_: WeakValueLookupTable-hacks. +* includesSelector_: Behavior-testing the method dictionary. +* incr: CObject-pointer-like behavior. +* incrBy_: CObject-pointer-like behavior. +* incrementalGCStep: ObjectMemory class-builtins. +* indexOf_: SequenceableCollection-basic. +* indexOf_ifAbsent_: SequenceableCollection-basic. +* indexOf_matchCase_startingAt_: CharacterArray-comparing. +* indexOf_startingAt_: SequenceableCollection-basic. +* indexOf_startingAt_ifAbsent_ <1>: SequenceableCollection-basic. +* indexOf_startingAt_ifAbsent_ <2>: SortedCollection-searching. +* indexOf_startingAt_ifAbsent_: RunArray-searching. +* indexOfMonth_: Date class-basic. +* indexOfSubCollection_: SequenceableCollection-basic. +* indexOfSubCollection_ifAbsent_: SequenceableCollection-basic. +* indexOfSubCollection_startingAt_: SequenceableCollection-basic. +* indexOfSubCollection_startingAt_ifAbsent_: SequenceableCollection-basic. +* infinity <1>: FloatD class-characterization. +* infinity <2>: FloatQ class-characterization. +* infinity: FloatE class-characterization. +* inheritedKeys <1>: AbstractNamespace-overrides for superspaces. +* inheritedKeys <2>: Namespace-accessing. +* inheritedKeys: RootNamespace-overrides for superspaces. +* inheritsFrom_ <1>: Behavior-testing the class hierarchy. +* inheritsFrom_: AbstractNamespace-namespace hierarchy. +* initDayNameDict: Date class-basic. +* initialIP <1>: BlockClosure-accessing. +* initialIP: ContextPart-accessing. +* initialize <1>: ValueHolder-initializing. +* initialize <2>: Exception class-initialization. +* initialize <3>: NetClients.URL-initialize-release. +* initialize <4>: VFS.DecodedFileHandler class-registering. +* initialize <5>: FileStream class-file-in. +* initialize <6>: Time class-initialization. +* initialize <7>: ObjectMemory class-initialization. +* initialize <8>: DateTime class-information. +* initialize <9>: VFS.RealFileHandler class-initialization. +* initialize <10>: Fraction class-instance creation. +* initialize <11>: CCompound class-subclass creation. +* initialize <12>: DLD class-dynamic linking. +* initialize <13>: Object class-initialization. +* initialize <14>: Class-accessing instances and variables. +* initialize <15>: ProcessorScheduler-idle tasks. +* initialize <16>: Delay class-initialization. +* initialize <17>: Promise-initializing. +* initialize <18>: FileDescriptor-initialize-release. +* initialize <19>: VFS.VFSHandler class-initializing. +* initialize <20>: Namespace class-initialization. +* initialize <21>: Date class-basic. +* initialize <22>: Duration class-instance creation. +* initialize <23>: NetClients.URL class-encoding URLs. +* initialize <24>: FileDescriptor class-initialization. +* initialize <25>: ScaledDecimal class-constants. +* initialize: Character class-initializing lookup tables. +* initMonthNameDict: Date class-basic. +* inject_into_: Collection-enumeration. +* insetBy_: Rectangle-rectangle functions. +* insetOriginBy_corner_: Rectangle-rectangle functions. +* inspect <1>: Dictionary-printing. +* inspect <2>: Object-debugging. +* inspect <3>: CompiledCode-debugging. +* inspect <4>: CCompound-instance creation. +* inspect <5>: SequenceableCollection-testing. +* inspect: Collection-printing. +* inspectSelectorList: CCompound-instance creation. +* instanceClass: Metaclass-accessing. +* instanceCount: Behavior-accessing instances and variables. +* instanceVariableNames_: Metaclass-basic. +* instanceVariableString: ClassDescription-printing. +* instSize: Behavior-testing the form of the instances. +* instVarAt_: Object-built ins. +* instVarAt_put_: Object-built ins. +* instVarNames: Behavior-accessing instances and variables. +* intAt_ <1>: Memory class-accessing. +* intAt_: ByteArray-more advanced accessing. +* intAt_put_ <1>: ByteArray-more advanced accessing. +* intAt_put_: Memory class-accessing. +* integerPart <1>: Fraction-converting. +* integerPart <2>: Float-arithmetic. +* integerPart <3>: Number-truncation and round off. +* integerPart: ScaledDecimal-coercion. +* intern_: Symbol class-built ins. +* internCharacter_: Symbol class-instance creation. +* intersect_: Rectangle-rectangle functions. +* intersects_: Rectangle-testing. +* invalidate: FileDescriptor-basic. +* ip: ContextPart-accessing. +* ip_: ContextPart-accessing. +* isAccessible <1>: VFS.ArchiveFileHandler class-registering. +* isAccessible <2>: File-testing. +* isAccessible <3>: VFS.ArchiveMemberHandler-testing. +* isAccessible: VFS.VFSHandler-testing. +* isAccessible_: File class-testing. +* isAlive_: WeakArray-accessing. +* isAlphaNumeric: Character-testing. +* isArray <1>: Object-testing functionality. +* isArray: Array-testing. +* isBehavior <1>: Behavior-testing functionality. +* isBehavior: Object-testing functionality. +* isBinary: FileDescriptor-class type methods. +* isBits: Behavior-testing the form of the instances. +* isBitSet_: Integer-bit operators. +* isBlock <1>: MethodContext-accessing. +* isBlock <2>: BlockContext-accessing. +* isBlock: ContextPart-accessing. +* isBytes: Behavior-testing the form of the instances. +* isCharacter <1>: Character-testing functionality. +* isCharacter: Object-testing functionality. +* isCharacterArray <1>: CharacterArray-testing functionality. +* isCharacterArray: Object-testing functionality. +* isClass <1>: Object-testing functionality. +* isClass: Class-testing functionality. +* isDefined: VariableBinding-testing. +* isDigit: Character-testing. +* isDirectory <1>: VFS.RealFileHandler-testing. +* isDirectory <2>: File-testing. +* isDirectory <3>: VFS.VFSHandler-testing. +* isDirectory <4>: VFS.ArchiveFileHandler class-registering. +* isDirectory: VFS.ArchiveMemberHandler-testing. +* isDisabled <1>: MethodContext-accessing. +* isDisabled <2>: ContextPart-accessing. +* isDisabled: BlockContext-accessing. +* isEmpty <1>: LinkedList-testing. +* isEmpty <2>: Collection-testing collections. +* isEmpty <3>: HashedCollection-testing collections. +* isEmpty <4>: FileDescriptor-overriding inherited methods. +* isEmpty <5>: PositionableStream-testing. +* isEmpty: SharedQueue-accessing. +* isEnvironment <1>: ContextPart-accessing. +* isEnvironment <2>: BlockContext-accessing. +* isEnvironment: MethodContext-accessing. +* isExecutable <1>: VFS.ArchiveMemberHandler-testing. +* isExecutable <2>: VFS.RealFileHandler-testing. +* isExecutable <3>: File-testing. +* isExecutable: VFS.VFSHandler-testing. +* isExecutable_: File class-testing. +* isExternalStream <1>: FileDescriptor-class type methods. +* isExternalStream <2>: Stream-testing. +* isExternalStream: PositionableStream-class type methods. +* isFile: File-testing. +* isFileScheme: NetClients.URL-testing. +* isFinite <1>: Float-testing. +* isFinite: Number-testing. +* isFixed: Behavior-testing the form of the instances. +* isFloat <1>: Float-testing functionality. +* isFloat: Object-testing functionality. +* isFragmentOnly: NetClients.URL-testing. +* isFunction_: CFunctionDescriptor class-testing. +* isIdentity <1>: Character class-testing. +* isIdentity <2>: Boolean class-testing. +* isIdentity <3>: SmallInteger class-testing. +* isIdentity: Behavior-testing the form of the instances. +* isImmediate <1>: BlockClosure class-testing. +* isImmediate <2>: Number class-testing. +* isImmediate <3>: Character class-testing. +* isImmediate <4>: Boolean class-testing. +* isImmediate: Behavior-testing the form of the instances. +* isInfinite <1>: Number-testing. +* isInfinite: Float-testing. +* isInteger <1>: Object-testing functionality. +* isInteger: Integer-testing functionality. +* isInternalExceptionHandlingContext: ContextPart-debugging. +* isKindOf_: Object-testing functionality. +* isLeapYear: Date-date computations. +* isLetter: Character-testing. +* isLowercase: Character-testing. +* isMemberOf_: Object-testing functionality. +* isMeta: Object-testing functionality. +* isMetaClass: Object-testing functionality. +* isMetaclass <1>: Object-testing functionality. +* isMetaclass: Metaclass-testing functionality. +* isNamespace <1>: AbstractNamespace-testing. +* isNamespace: Object-testing functionality. +* isNaN <1>: Float-testing. +* isNaN: Number-testing. +* isNested: Signal-exception handling. +* isNil <1>: UndefinedObject-testing. +* isNil: Object-testing functionality. +* isNumber <1>: Object-testing functionality. +* isNumber: Number-testing. +* isNumeric: CharacterArray-converting. +* isOpen: FileDescriptor-accessing. +* isOwnerProcess: RecursionLock-accessing. +* isPipe: FileDescriptor-accessing. +* isPointers: Behavior-testing the form of the instances. +* isProcess: ContextPart-accessing. +* isPunctuation: Character-testing. +* isRational <1>: Number-testing. +* isRational <2>: Integer-testing functionality. +* isRational: Fraction-testing. +* isReadable <1>: VFS.RealFileHandler-testing. +* isReadable <2>: File-testing. +* isReadable <3>: VFS.VFSHandler-testing. +* isReadable: VFS.ArchiveMemberHandler-testing. +* isReadable_: File class-testing. +* isReadOnly: Object-built ins. +* isResumable <1>: Halt-description. +* isResumable <2>: Exception-exception description. +* isResumable <3>: CoreException-accessing. +* isResumable <4>: Signal-exception handling. +* isResumable <5>: Error-exception description. +* isResumable: Notification-exception description. +* isResumable_: CoreException-accessing. +* isSeparator: Character-testing. +* isSimpleSymbol: Symbol-testing. +* isSmall: LargePositiveInteger-primitive operations. +* isSmallInteger <1>: Object-testing functionality. +* isSmallInteger: SmallInteger-testing functionality. +* isSmalltalk <1>: SystemDictionary-testing. +* isSmalltalk: AbstractNamespace-testing. +* isString <1>: String-testing functionality. +* isString <2>: Symbol-testing functionality. +* isString: Object-testing functionality. +* isSymbol <1>: Object-testing functionality. +* isSymbol: Symbol-testing functionality. +* isSymbolString_: Symbol class-symbol table. +* isText: FileDescriptor-class type methods. +* isTimeoutProgrammed: ProcessorScheduler-timed invocation. +* isUnwind <1>: ContextPart-accessing. +* isUnwind <2>: BlockContext-accessing. +* isUnwind: MethodContext-accessing. +* isUppercase: Character-testing. +* isValid: CFunctionDescriptor-accessing. +* isVariable: Behavior-testing the form of the instances. +* isVowel: Character-testing. +* isWords: Behavior-testing the form of the instances. +* isWriteable <1>: VFS.RealFileHandler-testing. +* isWriteable <2>: File-testing. +* isWriteable <3>: VFS.VFSHandler-testing. +* isWriteable: VFS.ArchiveMemberHandler-testing. +* isWriteable_: File class-testing. +* jumpDestinationAt_: CompiledCode-testing accesses. +* kernel: Directory class-reading system defaults. +* key: LookupKey-accessing. +* key_ <1>: LookupKey-accessing. +* key_: LookupKey class-basic. +* key_value_ <1>: Association class-basic. +* key_value_: Association-accessing. +* key_value_environment_: HomedAssociation class-basic. +* keyAtValue_: Dictionary-accessing. +* keyAtValue_ifAbsent_: Dictionary-accessing. +* keys: Dictionary-accessing. +* keysAndValuesDo_ <1>: Dictionary-dictionary enumerating. +* keysAndValuesDo_ <2>: Namespace-overrides for superspaces. +* keysAndValuesDo_ <3>: LookupTable-enumerating. +* keysAndValuesDo_: SequenceableCollection-enumerating. +* keysDo_ <1>: Namespace-overrides for superspaces. +* keysDo_: Dictionary-dictionary enumerating. +* keywords: Symbol-basic. +* kindOfSubclass: Behavior-testing the class hierarchy. +* largeNegated: LargeInteger-primitive operations. +* largest: SmallInteger class-getting limits. +* last <1>: SequenceableCollection-basic. +* last <2>: RunArray-basic. +* last <3>: LargeArraySubpart-accessing. +* last: SortedCollection-basic. +* lastAccessTime <1>: File-accessing. +* lastAccessTime <2>: VFS.RealFileHandler-accessing. +* lastAccessTime <3>: VFS.ArchiveMemberHandler-accessing. +* lastAccessTime: VFS.VFSHandler-accessing. +* lastChangeTime <1>: File-accessing. +* lastChangeTime <2>: VFS.ArchiveMemberHandler-accessing. +* lastChangeTime <3>: VFS.RealFileHandler-accessing. +* lastChangeTime: VFS.VFSHandler-accessing. +* lastDayOfMonth: Date-date computations. +* lastIndex: LargeArraySubpart-accessing. +* lastModifyTime <1>: VFS.ArchiveMemberHandler-accessing. +* lastModifyTime <2>: VFS.VFSHandler-accessing. +* lastModifyTime <3>: VFS.RealFileHandler-accessing. +* lastModifyTime: File-accessing. +* lastUnwindPoint: ContextPart class-exception handling. +* lcm_: Integer-math methods. +* left: Rectangle-accessing. +* left_: Rectangle-accessing. +* left_right_top_bottom_: Rectangle class-instance creation. +* left_top_right_bottom_: Rectangle-accessing. +* leftCenter: Rectangle-accessing. +* lf: Character class-constants. +* libraries: Package-accessing. +* librariesFor_: PackageLoader class-accessing. +* library_getFunc_: DLD class-C functions. +* libraryList: DLD class-dynamic linking. +* lineDelimiter: CharacterArray class-basic. +* linesDo_: String-useful functionality. +* linkFile_: DLD class-C functions. +* literalAt_: CompiledCode-accessing. +* literalAt_put_: CompiledCode-accessing. +* literals: CompiledCode-accessing. +* literals_numArgs_numTemps_primitive_bytecodes_depth_: CompiledMethod class-instance creation. +* ln <1>: Number-misc math. +* ln: Float-built ins. +* ln10 <1>: FloatE class-characterization. +* ln10 <2>: Float class-characterization. +* ln10: FloatQ class-characterization. +* load: ObjectDumper-loading/dumping objects. +* loadedClass: AutoloadClass-accessing. +* loadedMetaclass: AutoloadClass-accessing. +* loadFrom_ <1>: VersionableObjectProxy class-saving and restoring. +* loadFrom_ <2>: ObjectDumper class-shortcuts. +* loadFrom_ <3>: DumperProxy class-accessing. +* loadFrom_: NullProxy class-instance creation. +* localKernel: Directory class-reading system defaults. +* lock: Semaphore-builtins. +* log: Number-misc math. +* log10Base2 <1>: FloatE class-characterization. +* log10Base2 <2>: Float class-characterization. +* log10Base2: FloatQ class-characterization. +* log_: Number-misc math. +* longAt_ <1>: Memory class-accessing. +* longAt_: ByteArray-more advanced accessing. +* longAt_put_ <1>: Memory class-accessing. +* longAt_put_: ByteArray-more advanced accessing. +* low: SystemExceptions.ArgumentOutOfRange-accessing. +* low_: SystemExceptions.ArgumentOutOfRange-accessing. +* lowerPriority: Process-basic. +* lowestPriority: ProcessorScheduler-priorities. +* lowIOPriority: ProcessorScheduler-priorities. +* makeEphemeron: Object-built ins. +* makeFixed: Object-built ins. +* makeReadOnly_: Object-built ins. +* makeWeak: Object-built ins. +* map: MappedCollection-basic. +* mark: ContextPart-exception handling. +* mark_: Object-built ins. +* match_: CharacterArray-comparing. +* match_ignoreCase_: CharacterArray-comparing. +* max_ <1>: Number-comparing. +* max_ <2>: Magnitude-misc methods. +* max_: Point-comparing. +* member_do_ <1>: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol. +* member_do_: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol. +* merge_: Rectangle-rectangle functions. +* meridianAbbreviation: DateTime-computations. +* message <1>: TextCollector-set up. +* message: MessageNotUnderstood-accessing. +* message_ <1>: TextCollector class-accessing. +* message_: TextCollector-set up. +* messageText <1>: Signal-accessing. +* messageText <2>: SystemExceptions.InvalidValue-accessing. +* messageText <3>: SystemExceptions.WrongClass-accessing. +* messageText <4>: SystemExceptions.WrongMessageSent-accessing. +* messageText <5>: SystemExceptions.IndexOutOfRange-accessing. +* messageText: SystemExceptions.InvalidArgument-accessing. +* messageText_: Signal-accessing. +* metaclassFor_: UndefinedObject-class creation. +* method <1>: BlockClosure-accessing. +* method <2>: CompiledBlock-accessing. +* method: ContextPart-accessing. +* methodCategory <1>: CompiledCode-basic. +* methodCategory <2>: CompiledBlock-basic. +* methodCategory: CompiledMethod-basic. +* methodCategory_ <1>: CompiledMethod-basic. +* methodCategory_ <2>: CompiledCode-basic. +* methodCategory_: CompiledBlock-basic. +* methodClass <1>: CompiledBlock-accessing. +* methodClass <2>: MethodInfo-accessing. +* methodClass <3>: CompiledCode-accessing. +* methodClass <4>: ContextPart-accessing. +* methodClass: CompiledMethod-accessing. +* methodClass_ <1>: CompiledMethod-accessing. +* methodClass_ <2>: MethodInfo-accessing. +* methodClass_ <3>: CompiledBlock-accessing. +* methodClass_: CompiledCode-accessing. +* methodDictionary: Behavior-method dictionary. +* methodDictionary_: Behavior-method dictionary. +* methods: Behavior-compilation (alternative). +* methodsFor: Behavior-compilation (alternative). +* methodsFor_: Behavior-compiling methods. +* methodsFor_ifFeatures_: Behavior-compilation (alternative). +* methodsFor_ifTrue_: Behavior-built ins. +* methodsFor_stamp_: Behavior-compilation (alternative). +* methodSourceCode <1>: CompiledBlock-basic. +* methodSourceCode <2>: CompiledCode-basic. +* methodSourceCode: CompiledMethod-basic. +* methodSourceFile <1>: CompiledCode-basic. +* methodSourceFile <2>: CompiledBlock-basic. +* methodSourceFile: CompiledMethod-basic. +* methodSourcePos <1>: CompiledBlock-basic. +* methodSourcePos <2>: CompiledMethod-basic. +* methodSourcePos: CompiledCode-basic. +* methodSourceString <1>: CompiledBlock-basic. +* methodSourceString <2>: CompiledCode-basic. +* methodSourceString: CompiledMethod-basic. +* millisecondClock: Time class-clocks. +* millisecondClockValue <1>: Time class-clocks. +* millisecondClockValue: Delay class-general inquiries. +* millisecondsPerDay: Time class-clocks. +* millisecondsToRun_: Time class-clocks. +* min_ <1>: Point-comparing. +* min_ <2>: Magnitude-misc methods. +* min_: Number-comparing. +* minute <1>: Time-accessing (ANSI for DateAndTimes). +* minute: DateTime-computations. +* minutes: Time-accessing (non ANSI & for Durations). +* minutes_: Time class-instance creation. +* module: Directory class-reading system defaults. +* moduleList: DLD class-dynamic linking. +* modules: Package-accessing. +* modulesFor_: PackageLoader class-accessing. +* month: Date-date computations. +* monthAbbreviation: Date-date computations. +* monthName: Date-date computations. +* mourn <1>: Object-finalization. +* mourn <2>: Association-finalization. +* mourn: HomedAssociation-finalization. +* mourn_: Collection-finalization. +* moveBy_: Rectangle-transforming. +* moveTo_: Rectangle-transforming. +* multiBecome_: Array-mutating objects. +* multiply_: LargePositiveInteger-primitive operations. +* mustBeBoolean: Object-exception handling. +* name <1>: AbstractNamespace-printing. +* name <2>: BindingDictionary-accessing. +* name <3>: Behavior-support for lightweight classes. +* name <4>: CFunctionDescriptor-accessing. +* name <5>: Semaphore-accessing. +* name <6>: RecursionLock-accessing. +* name <7>: Class-accessing instances and variables. +* name <8>: Process-accessing. +* name <9>: AutoloadClass-accessing. +* name <10>: Package-accessing. +* name <11>: File-accessing. +* name <12>: Metaclass-delegation. +* name <13>: VFS.VFSHandler-accessing. +* name: FileDescriptor-accessing. +* name_ <1>: File class-instance creation. +* name_ <2>: VFS.VFSHandler-accessing. +* name_ <3>: VFS.RealFileHandler-accessing. +* name_ <4>: Package-accessing. +* name_ <5>: AbstractNamespace-printing. +* name_ <6>: Semaphore-accessing. +* name_ <7>: RecursionLock-accessing. +* name_ <8>: AutoloadClass-accessing. +* name_: Process-accessing. +* name_environment_subclassOf_instanceVariableNames_variable_words_pointers_classVariableNames_poolDictionaries_category_: Metaclass-basic. +* name_realFileName_: VFS.DecodedFileHandler-files. +* nameAt_: Directory-accessing. +* nameIn_ <1>: ClassDescription-printing. +* nameIn_ <2>: Namespace-printing. +* nameIn_ <3>: Metaclass-printing. +* nameIn_ <4>: SystemDictionary-printing. +* nameIn_ <5>: BindingDictionary-accessing. +* nameIn_ <6>: RootNamespace-printing. +* nameIn_ <7>: Behavior-support for lightweight classes. +* nameIn_: AbstractNamespace-printing. +* nameOfDay_: Date class-basic. +* nameOfMonth_: Date class-basic. +* namesMatching_do_: Directory-enumerating. +* nan <1>: FloatQ class-characterization. +* nan <2>: FloatD class-characterization. +* nan: FloatE class-characterization. +* narrow <1>: UndefinedObject-CObject interoperability. +* narrow: CObject-conversion. +* negated <1>: Duration-arithmetics. +* negated <2>: LargeInteger-arithmetic. +* negated <3>: Fraction-optimized cases. +* negated <4>: Float-arithmetic. +* negated: Number-misc math. +* negative <1>: LargeNegativeInteger-numeric testing. +* negative <2>: LargePositiveInteger-numeric testing. +* negative <3>: Number-testing. +* negative <4>: Duration-arithmetics. +* negative: Float-testing. +* negativeInfinity <1>: FloatE class-characterization. +* negativeInfinity <2>: FloatD class-characterization. +* negativeInfinity: FloatQ class-characterization. +* new <1>: AbstractNamespace class-instance creation. +* new <2>: ZeroDivide class-instance creation. +* new <3>: ValueHolder class-creating instances. +* new <4>: ValueAdaptor class-creating instances. +* new <5>: Time class-instance creation. +* new <6>: TextCollector class-accessing. +* new <7>: Symbol class-instance creation. +* new <8>: SortedCollection class-instance creation. +* new <9>: SharedQueue class-instance creation. +* new <10>: Semaphore class-instance creation. +* new <11>: RunArray class-instance creation. +* new <12>: RecursionLock class-instance creation. +* new <13>: Rectangle class-instance creation. +* new <14>: Random class-instance creation. +* new <15>: ProcessorScheduler class-instance creation. +* new <16>: Point class-instance creation. +* new <17>: OrderedCollection class-instance creation. +* new <18>: ObjectDumper class-instance creation. +* new <19>: NullValueHolder class-creating instances. +* new <20>: NetClients.URL class-instance creation. +* new <21>: Namespace class-disabling instance creation. +* new <22>: MappedCollection class-instance creation. +* new <23>: LookupTable class-instance creation. +* new <24>: HashedCollection class-instance creation. +* new <25>: ExceptionSet class-instance creation. +* new <26>: Exception class-instance creation. +* new <27>: Dictionary class-instance creation. +* new <28>: CType-C instance creation. +* new <29>: CoreException class-instance creation. +* new <30>: CObject class-instance creation. +* new <31>: CCompound class-instance creation. +* new <32>: Behavior-built ins. +* new: Bag class-basic. +* new_ <1>: WeakArray class-instance creation. +* new_ <2>: OrderedCollection class-instance creation. +* new_ <3>: CObject class-instance creation. +* new_ <4>: SortedCollection class-instance creation. +* new_ <5>: LargeArrayedCollection class-instance creation. +* new_ <6>: Namespace class-disabling instance creation. +* new_ <7>: CPtrCType-accessing. +* new_ <8>: Bag class-basic. +* new_ <9>: HashedCollection class-instance creation. +* new_ <10>: RootNamespace class-instance creation. +* new_ <11>: RunArray class-instance creation. +* new_ <12>: Symbol class-instance creation. +* new_: Behavior-built ins. +* new_withAll_: ArrayedCollection class-instance creation. +* newBuffer <1>: FileStream-buffering. +* newBuffer: FileDescriptor-initialize-release. +* newChild: CoreException-instance creation. +* newCollection_ <1>: LargeArray-overridden. +* newCollection_ <2>: LargeByteArray-overridden. +* newCollection_: LargeWordArray-overridden. +* newDay_month_year_: Date class-instance creation (Blue Book). +* newDay_monthIndex_year_: Date class-instance creation (Blue Book). +* newDay_year_: Date class-instance creation (Blue Book). +* newFromNumber_scale_: ScaledDecimal class-instance creation. +* newInFixedSpace: Behavior-instance creation. +* newInFixedSpace_: Behavior-instance creation. +* newMemberHandlerFor_: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol. +* newMeta_environment_subclassOf_instanceVariableNames_variable_words_pointers_classVariableNames_poolDictionaries_category_: Metaclass-basic. +* newMethod_header_literals_: CompiledCode class-instance creation. +* newMethod_header_method_: CompiledBlock class-instance creation. +* newMethod_header_numLiterals_: CompiledCode class-instance creation. +* newPage: Character class-constants. +* newProcess <1>: DirectedMessage-multiple process. +* newProcess: BlockClosure-multiple process. +* newProcessWith_: BlockClosure-multiple process. +* newsGroup: NetClients.URL-accessing. +* newStruct_declaration_: CCompound class-subclass creation. +* next <1>: Random class-shortcuts. +* next <2>: FileDescriptor-basic. +* next <3>: Stream-accessing-reading. +* next <4>: Random-basic. +* next <5>: ObjectDumper-stream interface. +* next <6>: ByteStream-basic. +* next <7>: TokenStream-basic. +* next <8>: PositionableStream-accessing-reading. +* next <9>: SharedQueue-accessing. +* next: FileStream-basic. +* next_ <1>: FileDescriptor-overriding inherited methods. +* next_ <2>: FileStream-overriding inherited methods. +* next_: Stream-accessing-reading. +* next_put_ <1>: Stream-accessing-writing. +* next_put_: TextCollector-accessing. +* next_putAll_startingAt_: Stream-accessing-writing. +* nextAvailable_: Stream-accessing-reading. +* nextByte <1>: ByteStream-basic. +* nextByte <2>: FileDescriptor-basic. +* nextByte: FileStream-basic. +* nextByteArray_ <1>: ByteStream-basic. +* nextByteArray_ <2>: FileStream-overriding inherited methods. +* nextByteArray_: FileDescriptor-overriding inherited methods. +* nextHunk <1>: FileDescriptor-initialize-release. +* nextHunk: FileStream-buffering. +* nextInstance: Object-built ins. +* nextLine <1>: Stream-accessing-reading. +* nextLine: FileStream-overriding inherited methods. +* nextLink: Link-basic. +* nextLink_ <1>: Link-basic. +* nextLink_: Link class-instance creation. +* nextLong: ByteStream-basic. +* nextMatchFor_: Stream-accessing-reading. +* nextPut_ <1>: TextCollector-accessing. +* nextPut_ <2>: WriteStream-accessing-writing. +* nextPut_ <3>: SharedQueue-accessing. +* nextPut_ <4>: ByteStream-basic. +* nextPut_ <5>: TokenStream-write methods. +* nextPut_ <6>: ObjectDumper-stream interface. +* nextPut_ <7>: FileDescriptor-basic. +* nextPut_ <8>: Random-basic. +* nextPut_ <9>: Stream-accessing-writing. +* nextPut_: FileStream-basic. +* nextPutAll_ <1>: FileStream-overriding inherited methods. +* nextPutAll_ <2>: FileDescriptor-overriding inherited methods. +* nextPutAll_ <3>: Stream-accessing-writing. +* nextPutAll_ <4>: ByteStream-basic. +* nextPutAll_: TextCollector-accessing. +* nextPutAllFlush_: FileStream-overriding inherited methods. +* nextPutByte_ <1>: FileStream-basic. +* nextPutByte_ <2>: ByteStream-basic. +* nextPutByte_: FileDescriptor-basic. +* nextPutByteArray_ <1>: ByteStream-basic. +* nextPutByteArray_ <2>: FileStream-basic. +* nextPutByteArray_: FileDescriptor-basic. +* nextPutLong_: ByteStream-basic. +* nextPutShort_: ByteStream-basic. +* nextShort: ByteStream-basic. +* nextSignedByte: ByteStream-basic. +* nextUlong: ByteStream-basic. +* nextUshort: ByteStream-basic. +* nextValidOop: SmallInteger-built ins. +* nl <1>: Stream-character writing. +* nl: Character class-constants. +* nlTab: Stream-character writing. +* noMask_: Integer-bit operators. +* nonVersionedInstSize: Class-saving and loading. +* normal: Point-point functions. +* noRunnableProcess: Object-exception handling. +* not <1>: False-basic. +* not <2>: True-basic. +* not: Boolean-basic. +* notEmpty <1>: LinkedList-testing. +* notEmpty: Collection-testing collections. +* notify: Semaphore-builtins. +* notifyAll: Semaphore-builtins. +* notNil <1>: UndefinedObject-testing. +* notNil: Object-testing functionality. +* notYetImplemented: Object-built ins. +* now <1>: Time class-instance creation. +* now: DateTime class-instance creation. +* nthOuterContext_: BlockContext-accessing. +* nul: Character class-constants. +* null <1>: ValueHolder class-creating instances. +* null: Promise class-creating instances. +* numArgs <1>: BlockClosure-accessing. +* numArgs <2>: CompiledBlock-accessing. +* numArgs <3>: CompiledCode-accessing. +* numArgs <4>: ContextPart-accessing. +* numArgs <5>: CompiledMethod-accessing. +* numArgs: Symbol-basic. +* numArgs_numTemps_bytecodes_depth_literals_ <1>: BlockClosure class-instance creation. +* numArgs_numTemps_bytecodes_depth_literals_: CompiledBlock class-instance creation. +* numberOfElements: CArrayCType-accessing. +* numCompactions: ObjectMemory-accessing. +* numerator <1>: Fraction-accessing. +* numerator: Integer-accessing. +* numerator_denominator_: Fraction class-instance creation. +* numFixedOOPs: ObjectMemory-accessing. +* numFreeOTEs: ObjectMemory-accessing. +* numGlobalGCs: ObjectMemory-accessing. +* numGrowths: ObjectMemory-accessing. +* numLiterals <1>: CompiledCode-accessing. +* numLiterals: CompiledBlock-accessing. +* numOldOOPs: ObjectMemory-accessing. +* numOTEs: ObjectMemory-accessing. +* numScavenges: ObjectMemory-accessing. +* numTemps <1>: CompiledMethod-accessing. +* numTemps <2>: CompiledBlock-accessing. +* numTemps <3>: CompiledCode-accessing. +* numTemps <4>: ContextPart-accessing. +* numTemps: BlockClosure-accessing. +* numWeakOOPs: ObjectMemory-accessing. +* object <1>: PluggableProxy-saving and restoring. +* object <2>: SingletonProxy-saving and restoring. +* object <3>: AlternativeObjectProxy-accessing. +* object: DumperProxy-saving and restoring. +* object_: AlternativeObjectProxy-accessing. +* objectAt_: ByteArray-more advanced accessing. +* objectAt_put_: ByteArray-more advanced accessing. +* objectsAndRunLengthsDo_: RunArray-enumerating. +* occurrencesOf_ <1>: HashedCollection-testing collections. +* occurrencesOf_ <2>: Collection-testing collections. +* occurrencesOf_ <3>: Dictionary-dictionary testing. +* occurrencesOf_ <4>: SortedCollection-searching. +* occurrencesOf_: Bag-testing collections. +* odd <1>: Integer-math methods. +* odd: Number-testing. +* offset: DateTime-time zones. +* offset_: DateTime-time zones. +* oldSpaceSize: ObjectMemory-accessing. +* oldSpaceUsedBytes: ObjectMemory-accessing. +* on_ <1>: NetClients.URIResolver class-instance creation. +* on_ <2>: FileDescriptor class-instance creation. +* on_ <3>: AlternativeObjectProxy class-instance creation. +* on_ <4>: File class-instance creation. +* on_ <5>: TokenStream class-instance creation. +* on_ <6>: DumperProxy class-instance creation. +* on_ <7>: WriteStream class-instance creation. +* on_ <8>: SingletonProxy class-instance creation. +* on_ <9>: ReadWriteStream class-instance creation. +* on_ <10>: ReadStream class-instance creation. +* on_ <11>: PositionableStream class-instance creation. +* on_ <12>: PluggableProxy class-accessing. +* on_: ObjectDumper class-instance creation. +* on_aspect_: PluggableAdaptor class-creating instances. +* on_do_: BlockClosure-exception handling. +* on_do_on_do_: BlockClosure-exception handling. +* on_do_on_do_on_do_: BlockClosure-exception handling. +* on_do_on_do_on_do_on_do_: BlockClosure-exception handling. +* on_do_on_do_on_do_on_do_on_do_: BlockClosure-exception handling. +* on_from_to_: PositionableStream class-instance creation. +* on_getSelector_putSelector_: PluggableAdaptor class-creating instances. +* on_index_: PluggableAdaptor class-creating instances. +* on_key_: PluggableAdaptor class-creating instances. +* on_startingAt_for_: FileSegment class-basic. +* one: ScaledDecimal-constants. +* onStream_: TokenStream class-instance creation. +* open_ <1>: FileDescriptor class-instance creation. +* open_: File-file operations. +* open_ifFail_ <1>: VFS.VFSHandler-file operations. +* open_ifFail_: File-file operations. +* open_mode_: FileDescriptor class-instance creation. +* open_mode_ifFail_ <1>: VFS.VFSHandler-file operations. +* open_mode_ifFail_ <2>: VFS.RealFileHandler-file operations. +* open_mode_ifFail_ <3>: VFS.ArchiveMemberHandler-file operations. +* open_mode_ifFail_: FileDescriptor class-instance creation. +* openDescriptor_: File-file operations. +* openDescriptor_ifFail_: VFS.VFSHandler-file operations. +* openDir_: VFS.VFSHandler-C functions. +* openOn_: NetClients.URIResolver class-api. +* openOn_ifFail_: NetClients.URIResolver class-api. +* openStreamOn_: NetClients.URIResolver class-api. +* openStreamOn_ifFail_: NetClients.URIResolver class-api. +* openTemporaryFile_: FileDescriptor class-instance creation. +* or_ <1>: False-basic. +* or_ <2>: Boolean-basic. +* or_: True-basic. +* origin: Rectangle-accessing. +* origin_: Rectangle-accessing. +* origin_corner_ <1>: Rectangle class-instance creation. +* origin_corner_: Rectangle-accessing. +* origin_extent_ <1>: Rectangle-accessing. +* origin_extent_: Rectangle class-instance creation. +* outer: Signal-exception handling. +* outerContext <1>: BlockContext-accessing. +* outerContext: BlockClosure-accessing. +* outerContext_: BlockClosure-accessing. +* parent <1>: CoreException-accessing. +* parent: VFS.ArchiveMemberHandler-accessing. +* parent_: VFS.ArchiveMemberHandler-initializing. +* parentContext: ContextPart-accessing. +* parentContext_: ContextPart-accessing. +* parserClass: Behavior-pluggable behavior (not yet implemented). +* pass: Signal-exception handling. +* password: NetClients.URL-accessing. +* password_: NetClients.URL-accessing. +* path <1>: File-file name management. +* path <2>: VariableBinding-printing. +* path: NetClients.URL-accessing. +* path_: NetClients.URL-accessing. +* pathFor_: File class-file name management. +* pathSeparator: Directory class-file name management. +* pathSeparatorString: Directory class-file name management. +* peek <1>: FileStream-basic. +* peek <2>: FileDescriptor-basic. +* peek <3>: PositionableStream-accessing-reading. +* peek: SharedQueue-accessing. +* peekFor_: PositionableStream-accessing-reading. +* pendingWrite: FileStream-buffering. +* perform_: Object-built ins. +* perform_with_: Object-built ins. +* perform_with_with_: Object-built ins. +* perform_with_with_with_: Object-built ins. +* perform_withArguments_: Object-built ins. +* pi <1>: FloatE class-characterization. +* pi <2>: Float class-characterization. +* pi: FloatQ class-characterization. +* popen_dir_: FileDescriptor class-instance creation. +* popen_dir_ifFail_: FileDescriptor class-instance creation. +* port: NetClients.URL-accessing. +* port_: NetClients.URL-accessing. +* position <1>: FileStream-basic. +* position <2>: FileDescriptor-basic. +* position: PositionableStream-positioning. +* position_ <1>: ReadWriteStream-positioning. +* position_ <2>: FileStream-basic. +* position_ <3>: PositionableStream-positioning. +* position_: FileDescriptor-basic. +* positive <1>: Float-testing. +* positive <2>: Number-testing. +* positive <3>: LargeNegativeInteger-numeric testing. +* positive <4>: LargePositiveInteger-numeric testing. +* positive: Duration-arithmetics. +* positiveDifference_: Number-misc math. +* postCopy <1>: CoreException-basic. +* postCopy <2>: NetClients.URL-copying. +* postCopy: Object-copying. +* postData: NetClients.URL-accessing. +* postData_: NetClients.URL-accessing. +* postLoad <1>: SortedCollection-saving and loading. +* postLoad <2>: Object-saving and loading. +* postLoad <3>: HashedCollection-saving and loading. +* postLoad: WeakArray-loading. +* postStore <1>: Object-saving and loading. +* postStore: HashedCollection-saving and loading. +* precision <1>: FloatQ class-characterization. +* precision <2>: FloatE class-characterization. +* precision: FloatD class-characterization. +* prerequisites: Package-accessing. +* prerequisitesFor_: PackageLoader class-accessing. +* preStore <1>: SortedCollection-saving and loading. +* preStore: Object-saving and loading. +* primaryInstance: Metaclass-accessing. +* primAt_: HashedCollection-builtins. +* primAt_put_: HashedCollection-builtins. +* primCreateDir_mode_: VFS.VFSHandler-C functions. +* primDefineExternFunc_: DLD class-dynamic linking. +* primDivide_: LargePositiveInteger-helper byte-level methods. +* primError_: Object-built ins. +* primHash: Float-built ins. +* primIsExecutable_: VFS.VFSHandler-C functions. +* primIsReadable_: VFS.VFSHandler-C functions. +* primIsWriteable_: VFS.VFSHandler-C functions. +* primitive <1>: CompiledMethod-accessing. +* primitive: CompiledCode-accessing. +* primitiveFailed: Object-built ins. +* primMillisecondClock: Time class-builtins. +* primNew_name_: AbstractNamespace class-instance creation. +* primObject: AlternativeObjectProxy-accessing. +* primRemoveDir_: VFS.VFSHandler-C functions. +* primRename_to_: VFS.VFSHandler-C functions. +* primReplaceFrom_to_with_startingAt_ <1>: String-built ins. +* primReplaceFrom_to_with_startingAt_ <2>: ByteArray-built ins. +* primReplaceFrom_to_with_startingAt_: LargeInteger-built-ins. +* primSecondClock: Time class-builtins. +* primSize: HashedCollection-builtins. +* primTerminate: Process-basic. +* primUnlink_: VFS.VFSHandler-C functions. +* primWorking_: Directory class-C functions. +* print: Object-printing. +* print_ <1>: TextCollector-printing. +* print_: Stream-printing. +* printHierarchy: Behavior-printing hierarchy. +* printNl: Object-printing. +* printOn_ <1>: SymLink-printing. +* printOn_ <2>: False-printing. +* printOn_ <3>: UndefinedObject-printing. +* printOn_ <4>: True-printing. +* printOn_ <5>: Bag-printing. +* printOn_ <6>: Object-printing. +* printOn_ <7>: VariableBinding-printing. +* printOn_ <8>: DateTime-printing. +* printOn_ <9>: LookupKey-printing. +* printOn_ <10>: Semaphore-printing. +* printOn_ <11>: Association-printing. +* printOn_ <12>: CFunctionDescriptor-printing. +* printOn_ <13>: Fraction-printing. +* printOn_ <14>: ScaledDecimal-printing. +* printOn_ <15>: Time-arithmetic. +* printOn_ <16>: CompiledBlock-printing. +* printOn_ <17>: Message-basic. +* printOn_ <18>: Date-printing. +* printOn_ <19>: NetClients.URL-printing. +* printOn_ <20>: RecursionLock-printing. +* printOn_ <21>: Character-printing. +* printOn_ <22>: Rectangle-printing. +* printOn_ <23>: Metaclass-printing. +* printOn_ <24>: MethodContext-printing. +* printOn_ <25>: Duration-arithmetics. +* printOn_ <26>: Array-printing. +* printOn_ <27>: BlockContext-printing. +* printOn_ <28>: Promise-printing. +* printOn_ <29>: CharacterArray-printing. +* printOn_ <30>: TextCollector-printing. +* printOn_ <31>: Collection-printing. +* printOn_ <32>: ProcessorScheduler-printing. +* printOn_ <33>: Process-printing. +* printOn_ <34>: Class-printing. +* printOn_ <35>: Dictionary-printing. +* printOn_ <36>: Integer-printing. +* printOn_ <37>: DirectedMessage-basic. +* printOn_ <38>: Float-printing. +* printOn_ <39>: FileDescriptor-printing. +* printOn_ <40>: CompiledMethod-printing. +* printOn_ <41>: Point-printing. +* printOn_ <42>: AbstractNamespace-printing. +* printOn_ <43>: CObject-accessing. +* printOn_ <44>: ValueAdaptor-printing. +* printOn_ <45>: Interval-printing. +* printOn_ <46>: Symbol-storing. +* printOn_: Package-accessing. +* printOn_base_: Integer-printing. +* printOn_in_ <1>: RootNamespace-printing. +* printOn_in_ <2>: Metaclass-printing. +* printOn_in_ <3>: SystemDictionary-printing. +* printOn_in_ <4>: ClassDescription-printing. +* printOn_in_ <5>: BindingDictionary-printing. +* printOn_in_ <6>: Behavior-support for lightweight classes. +* printOn_in_: Namespace-printing. +* printString <1>: Integer-printing. +* printString: Object-printing. +* printString_: Integer-printing. +* printStringRadix_: Integer-printing. +* printSubclasses_using_: Behavior-printing hierarchy. +* printXmlOn_collection_tag_: Package-accessing. +* priority: Process-accessing. +* priority_: Process-accessing. +* priorityName_: ProcessorScheduler-priorities. +* privateMethods: Behavior-compilation (alternative). +* processesAt_: ProcessorScheduler-basic. +* proxyClassFor_: ObjectDumper class-establishing proxy classes. +* proxyFor_: ObjectDumper class-establishing proxy classes. +* ptrType: CType-accessing. +* publicMethods: Behavior-compilation (alternative). +* putenv_: SystemDictionary-C functions. +* query: NetClients.URL-accessing. +* query_: NetClients.URL-accessing. +* queueInterrupt_: Process-accessing. +* quit: ObjectMemory class-builtins. +* quit_: ObjectMemory class-builtins. +* quo_ <1>: LargeInteger-arithmetic. +* quo_ <2>: Number-arithmetic. +* quo_ <3>: SmallInteger-built ins. +* quo_: LargeZeroInteger-arithmetic. +* radiansToDegrees: Number-converting. +* radix: Float class-characterization. +* radix_: Integer-printing. +* raisedTo_ <1>: Float-built ins. +* raisedTo_: Number-misc math. +* raisedToInteger_ <1>: Number-misc math. +* raisedToInteger_: Fraction-optimized cases. +* raisePriority: Process-basic. +* read: FileDescriptor class-instance creation. +* read_: FileDescriptor-low-level access. +* read_from_to_: FileDescriptor-low-level access. +* read_numBytes_: FileDescriptor-low-level access. +* readDir_: VFS.VFSHandler-C functions. +* readFrom_ <1>: Number class-converting. +* readFrom_ <2>: Time class-instance creation. +* readFrom_ <3>: Date class-instance creation (Blue Book). +* readFrom_: DateTime class-instance creation. +* reads_ <1>: CompiledCode-testing accesses. +* reads_: CompiledMethod-testing. +* readStream <1>: SequenceableCollection-enumerating. +* readStream: File-file operations. +* readWrite: FileDescriptor class-instance creation. +* readWriteStream: SequenceableCollection-enumerating. +* realFileName <1>: VFS.VFSHandler-accessing. +* realFileName <2>: VFS.DecodedFileHandler-files. +* realFileName: VFS.ArchiveMemberHandler-finalization. +* rebuildTable: Symbol class-symbol table. +* receiver <1>: DirectedMessage-accessing. +* receiver <2>: ContextPart-accessing. +* receiver <3>: BlockClosure-accessing. +* receiver: MessageNotUnderstood-accessing. +* receiver_ <1>: BlockClosure-accessing. +* receiver_: DirectedMessage-accessing. +* reciprocal <1>: Number-arithmetic. +* reciprocal: Fraction-optimized cases. +* reclaimedBytesPerGlobalGC: ObjectMemory-accessing. +* reclaimedBytesPerScavenge: ObjectMemory-accessing. +* reclaimedPercentPerScavenge: ObjectMemory-accessing. +* recompile_: Behavior-method dictionary. +* recompile_notifying_: Behavior-method dictionary. +* reconstructOriginalObject <1>: Object-saving and loading. +* reconstructOriginalObject: DirectedMessage-saving and loading. +* record_: FileStream class-file-in. +* refersTo_: CompiledCode-testing accesses. +* refresh <1>: VFS.ArchiveMemberHandler-accessing. +* refresh <2>: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol. +* refresh <3>: VFS.RealFileHandler-accessing. +* refresh <4>: File-accessing. +* refresh: VFS.VFSHandler-accessing. +* refreshDependencies: PackageLoader class-accessing. +* register_forClass_: VFS.VFSHandler class-initializing. +* registerProxyClass_for_: ObjectDumper class-establishing proxy classes. +* rehash <1>: WeakValueLookupTable-rehashing. +* rehash <2>: HashedCollection-rehashing. +* rehash <3>: LookupTable-rehashing. +* rehash <4>: Dictionary-rehashing. +* rehash: MethodDictionary-rehashing. +* reinvokeFor_: Message-basic. +* reject_ <1>: MappedCollection-basic. +* reject_ <2>: Collection-enumeration. +* reject_ <3>: Dictionary-dictionary enumerating. +* reject_: ArrayedCollection-enumerating the elements of a collection. +* release <1>: VFS.DecodedFileHandler-files. +* release <2>: VFS.ArchiveMemberHandler-finalization. +* release <3>: Object-dependents access. +* release <4>: VFS.ArchiveFileHandler-directory operations. +* release <5>: UndefinedObject-dependents access. +* release: VFS.ExternalArchiveFileHandler-releasing. +* relocateFrom_to_: FileSegment class-installing. +* relocateFrom_to_map_: FileSegment-basic. +* relocateTo_: LargeArraySubpart-modifying. +* rem_ <1>: Number-arithmetic. +* rem_ <2>: LargeInteger-arithmetic. +* rem_: LargeZeroInteger-arithmetic. +* remove <1>: VFS.VFSHandler-file operations. +* remove <2>: File-file operations. +* remove <3>: VFS.ArchiveFileHandler-file operations. +* remove <4>: VFS.RealFileHandler-file operations. +* remove: VFS.ArchiveMemberHandler-file operations. +* remove_ <1>: LookupTable-removing. +* remove_ <2>: Dictionary-dictionary removing. +* remove_ <3>: Collection-removing. +* remove_ <4>: File class-file operations. +* remove_: MethodDictionary-removing. +* remove_ifAbsent_ <1>: Bag-removing. +* remove_ifAbsent_ <2>: WeakSet-accessing. +* remove_ifAbsent_ <3>: HashedCollection-removing. +* remove_ifAbsent_ <4>: LinkedList-adding. +* remove_ifAbsent_ <5>: OrderedCollection-removing. +* remove_ifAbsent_ <6>: Dictionary-dictionary removing. +* remove_ifAbsent_ <7>: LookupTable-removing. +* remove_ifAbsent_: Collection-removing. +* removeAll_: Collection-removing. +* removeAll_ifAbsent_: Collection-removing. +* removeAllKeys_: Dictionary-dictionary removing. +* removeAllKeys_ifAbsent_: Dictionary-dictionary removing. +* removeAtIndex_ <1>: RunArray-removing. +* removeAtIndex_: OrderedCollection-removing. +* removeCategory_: ClassDescription-organization of messages and classes. +* removeClassVarName_ <1>: Metaclass-delegation. +* removeClassVarName_: Class-accessing instances and variables. +* removeDependent_: Object-dependents access. +* removeFeature_: SystemDictionary-special accessing. +* removeFirst <1>: OrderedCollection-removing. +* removeFirst <2>: RunArray-removing. +* removeFirst: LinkedList-adding. +* removeFirst_: LargeArraySubpart-modifying. +* removeInstVarName_: Behavior-instance variables. +* removeKey_: Dictionary-dictionary removing. +* removeKey_ifAbsent_ <1>: MethodDictionary-removing. +* removeKey_ifAbsent_ <2>: Dictionary-dictionary removing. +* removeKey_ifAbsent_: LookupTable-removing. +* removeLast <1>: RunArray-removing. +* removeLast <2>: OrderedCollection-removing. +* removeLast <3>: SortedCollection-basic. +* removeLast: LinkedList-adding. +* removeLast_: LargeArraySubpart-modifying. +* removeLastUnwindPoint: ContextPart class-exception handling. +* removeMember_ <1>: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol. +* removeMember_: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol. +* removeSelector_: Behavior-method dictionary. +* removeSelector_ifAbsent_: Behavior-method dictionary. +* removeSharedPool_ <1>: Metaclass-delegation. +* removeSharedPool_: Class-accessing instances and variables. +* removeSubclass_ <1>: Behavior-creating a class hierarchy. +* removeSubclass_: UndefinedObject-class creation. +* removeToBeFinalized: Object-finalization. +* rename_to_: File class-file operations. +* renameTo_ <1>: VFS.ArchiveMemberHandler-file operations. +* renameTo_ <2>: VFS.RealFileHandler-file operations. +* renameTo_ <3>: VFS.VFSHandler-file operations. +* renameTo_: File-file operations. +* repeat: BlockClosure-control structures. +* replace_withStringBase_ <1>: LargePositiveInteger-converting. +* replace_withStringBase_: LargeZeroInteger-printing. +* replaceAll_with_: SequenceableCollection-replacing items. +* replaceFrom_to_with_: SequenceableCollection-replacing items. +* replaceFrom_to_with_startingAt_ <1>: String-built ins. +* replaceFrom_to_with_startingAt_ <2>: SequenceableCollection-replacing items. +* replaceFrom_to_with_startingAt_: ByteArray-built ins. +* replaceFrom_to_withByteArray_startingAt_: String-built ins. +* replaceFrom_to_withObject_: SequenceableCollection-replacing items. +* replaceFrom_to_withString_startingAt_: ByteArray-built ins. +* requestString: NetClients.URL-accessing. +* require_: FileStream class-file-in. +* reset <1>: FileDescriptor-basic. +* reset: PositionableStream-positioning. +* resignalAs_: Signal-exception handling. +* respondsTo_: Object-testing functionality. +* resume <1>: Process-builtins. +* resume: Signal-exception handling. +* resume_: Signal-exception handling. +* resumptionTime: Delay-accessing. +* retry: Signal-exception handling. +* retry_coercing_: Number-retrying. +* retryDifferenceCoercing_: Number-retrying. +* retryDivisionCoercing_: Number-retrying. +* retryEqualityCoercing_: Number-retrying. +* retryError: Number-retrying. +* retryInequalityCoercing_: Number-retrying. +* retryMultiplicationCoercing_: Number-retrying. +* retryRelationalOp_coercing_: Number-retrying. +* retrySumCoercing_: Number-retrying. +* retryUsing_: Signal-exception handling. +* return: Signal-exception handling. +* return_: Signal-exception handling. +* reverse <1>: SequenceableCollection-enumerating. +* reverse <2>: ArrayedCollection-copying Collections. +* reverse: Interval-basic. +* reverseContents <1>: WriteStream-accessing-writing. +* reverseContents <2>: PositionableStream-accessing-reading. +* reverseContents <3>: FileDescriptor-overriding inherited methods. +* reverseContents: ReadStream-accessing-reading. +* reverseDo_: SequenceableCollection-enumerating. +* rewindDir_: VFS.VFSHandler-C functions. +* right: Rectangle-accessing. +* right_: Rectangle-accessing. +* rightCenter: Rectangle-accessing. +* rockBottomPriority: ProcessorScheduler-priorities. +* rounded <1>: Integer-converting. +* rounded <2>: Point-truncation and round off. +* rounded <3>: Rectangle-truncation and round off. +* rounded: Number-truncation and round off. +* roundTo_: Number-truncation and round off. +* sameAs_: CharacterArray-comparing. +* scalarIndex <1>: CFloat class-accessing. +* scalarIndex <2>: CInt-accessing. +* scalarIndex <3>: CInt class-accessing. +* scalarIndex <4>: CShort class-accessing. +* scalarIndex <5>: CUShort-accessing. +* scalarIndex <6>: CByte class-conversion. +* scalarIndex <7>: CUShort class-accessing. +* scalarIndex <8>: CShort-accessing. +* scalarIndex <9>: CByte-accessing. +* scalarIndex <10>: CULong-accessing. +* scalarIndex <11>: CSmalltalk class-accessing. +* scalarIndex <12>: CSmalltalk-accessing. +* scalarIndex <13>: CChar class-accessing. +* scalarIndex <14>: CChar-accessing. +* scalarIndex <15>: CULong class-accessing. +* scalarIndex <16>: CLong class-accessing. +* scalarIndex <17>: CLong-accessing. +* scalarIndex <18>: CObject class-conversion. +* scalarIndex <19>: CUInt-accessing. +* scalarIndex <20>: CUInt class-accessing. +* scalarIndex <21>: CDouble class-accessing. +* scalarIndex <22>: CUChar-accessing. +* scalarIndex <23>: CDouble-accessing. +* scalarIndex <24>: CObject-conversion. +* scalarIndex <25>: CUChar class-getting info. +* scalarIndex: CFloat-accessing. +* scaleBy_: Rectangle-transforming. +* scanBacktraceFor_do_: ContextPart-enumerating. +* scavenge: ObjectMemory class-builtins. +* scavengesBeforeTenuring: ObjectMemory-derived information. +* scheme: NetClients.URL-accessing. +* scheme_: NetClients.URL-accessing. +* scheme_host_port_path_: NetClients.URL class-instance creation. +* scheme_path_: NetClients.URL class-instance creation. +* scheme_username_password_host_port_path_: NetClients.URL class-instance creation. +* scopeHas_ifTrue_: Behavior-testing the method dictionary. +* scramble: SmallInteger-builtins. +* second <1>: DateTime-computations. +* second: Time-accessing (ANSI for DateAndTimes). +* secondClock: Time class-clocks. +* seconds: Time-accessing (non ANSI & for Durations). +* seconds_: Time class-instance creation. +* seed_: Random class-instance creation. +* select_ <1>: Dictionary-dictionary enumerating. +* select_ <2>: ArrayedCollection-enumerating the elements of a collection. +* select_ <3>: MappedCollection-basic. +* select_: Collection-enumeration. +* selector <1>: CompiledBlock-accessing. +* selector <2>: CompiledMethod-accessing. +* selector <3>: CompiledCode-accessing. +* selector <4>: MethodInfo-accessing. +* selector <5>: ContextPart-accessing. +* selector <6>: SystemExceptions.WrongMessageSent-accessing. +* selector: Message-accessing. +* selector_ <1>: CompiledMethod-accessing. +* selector_ <2>: CompiledBlock-accessing. +* selector_ <3>: MethodInfo-accessing. +* selector_ <4>: SystemExceptions.WrongMessageSent-accessing. +* selector_ <5>: CompiledCode-accessing. +* selector_: Message-accessing. +* selector_arguments_ <1>: DirectedMessage class-creating instances. +* selector_arguments_: Message class-creating instances. +* selector_arguments_receiver_: DirectedMessage class-creating instances. +* selectorAt_: Behavior-accessing the methodDictionary. +* selectors: Behavior-accessing the methodDictionary. +* selectorsAndMethodsDo_: Behavior-method dictionary. +* selectSubclasses_: Behavior-enumerating. +* selectSubspaces_: AbstractNamespace-namespace hierarchy. +* selectSuperclasses_: Behavior-enumerating. +* selectSuperspaces_: AbstractNamespace-namespace hierarchy. +* send: DirectedMessage-basic. +* sender: MethodContext-accessing. +* sendTo_: Message-basic. +* set_to_: AbstractNamespace-overrides for superspaces. +* set_to_ifAbsent_ <1>: RootNamespace-overrides for superspaces. +* set_to_ifAbsent_ <2>: AbstractNamespace-overrides for superspaces. +* set_to_ifAbsent_: Namespace-overrides for superspaces. +* setBit_: Integer-bit operators. +* setPriorityFrom_to_suspend_: Process-accessing. +* setToEnd <1>: PositionableStream-positioning. +* setToEnd: FileDescriptor-overriding inherited methods. +* setTraceFlag_to_: SystemDictionary-builtins. +* shallowCopy <1>: BlockClosure-overriding. +* shallowCopy <2>: HashedCollection-copying. +* shallowCopy <3>: Number-copying. +* shallowCopy <4>: Symbol-basic. +* shallowCopy <5>: Object-built ins. +* shallowCopy <6>: WeakArray-conversion. +* shallowCopy <7>: BindingDictionary-copying. +* shallowCopy <8>: RunArray-copying. +* shallowCopy <9>: UndefinedObject-basic. +* shallowCopy: Boolean-overriding. +* sharedPools <1>: Metaclass-delegation. +* sharedPools <2>: Behavior-accessing instances and variables. +* sharedPools: Class-accessing instances and variables. +* sharedVariableString: ClassDescription-printing. +* shortAt_ <1>: ByteArray-more advanced accessing. +* shortAt_: Memory class-accessing. +* shortAt_put_ <1>: Memory class-accessing. +* shortAt_put_: ByteArray-more advanced accessing. +* shortMonthName: Date-compatibility (non-ANSI). +* shortNameOfMonth_: Date class-basic. +* shouldNotImplement: Object-built ins. +* show_: TextCollector-accessing. +* showCr_: TextCollector-accessing. +* showOnNewLine_: TextCollector-accessing. +* siblings <1>: Namespace-namespace hierarchy. +* siblings <2>: RootNamespace-namespace hierarchy. +* siblings: AbstractNamespace-namespace hierarchy. +* siblingsDo_ <1>: Namespace-namespace hierarchy. +* siblingsDo_ <2>: AbstractNamespace-namespace hierarchy. +* siblingsDo_: RootNamespace-namespace hierarchy. +* sign <1>: LargePositiveInteger-numeric testing. +* sign <2>: LargeNegativeInteger-numeric testing. +* sign <3>: Float-testing. +* sign <4>: LargeZeroInteger-numeric testing. +* sign: Number-testing. +* signal <1>: CoreException-exception handling. +* signal <2>: Exception-exception signaling. +* signal <3>: Semaphore-builtins. +* signal: Exception class-instance creation. +* signal_ <1>: Exception-exception signaling. +* signal_: Exception class-instance creation. +* signal_atMilliseconds_: ProcessorScheduler-timed invocation. +* signal_onInterrupt_: ProcessorScheduler-timed invocation. +* signalClass: CoreException-accessing. +* signalClass_: CoreException-accessing. +* signalOn_ <1>: SystemExceptions.EndOfStream class-signaling. +* signalOn_: SystemExceptions.InvalidValue class-signaling. +* signalOn_mustBe_: SystemExceptions.WrongClass class-signaling. +* signalOn_mustBeBetween_and_: SystemExceptions.ArgumentOutOfRange class-signaling. +* signalOn_reason_: SystemExceptions.InvalidValue class-signaling. +* signalOn_useInstead_: SystemExceptions.WrongMessageSent class-signaling. +* signalOn_what_: SystemExceptions.NotFound class-accessing. +* signalOn_withIndex_: SystemExceptions.IndexOutOfRange class-signaling. +* signalWith_: CoreException-exception handling. +* signalWith_with_: CoreException-exception handling. +* signalWithArguments_: CoreException-exception handling. +* signByte <1>: FloatQ class-byte-order dependancies. +* signByte <2>: Float class-byte-order dependancies. +* signByte <3>: FloatD class-byte-order dependancies. +* signByte: FloatE class-byte-order dependancies. +* similarityTo_: String-built ins. +* sin <1>: Number-misc math. +* sin: Float-built ins. +* singleStep: Process-basic. +* singleStepWaitingOn_: Process-builtins. +* size <1>: VFS.RealFileHandler-accessing. +* size <2>: String-built ins. +* size <3>: FileDescriptor-basic. +* size <4>: FileStream-basic. +* size <5>: Collection-testing collections. +* size <6>: MappedCollection-basic. +* size <7>: Bag-testing collections. +* size <8>: FileSegment-basic. +* size <9>: LargeArrayedCollection-basic. +* size <10>: WeakArray-accessing. +* size <11>: Object-built ins. +* size <12>: ReadStream-accessing-reading. +* size <13>: HashedCollection-testing collections. +* size <14>: VFS.ArchiveMemberHandler-accessing. +* size <15>: ContextPart-accessing. +* size <16>: Namespace-overrides for superspaces. +* size <17>: Interval-basic. +* size <18>: LargeZeroInteger-accessing. +* size <19>: LinkedList-testing. +* size <20>: PositionableStream-positioning. +* size <21>: RunArray-basic. +* size <22>: VFS.VFSHandler-accessing. +* size <23>: Link-iteration. +* size <24>: OrderedCollection-accessing. +* size <25>: File-accessing. +* size <26>: ArrayedCollection-built ins. +* size <27>: WriteStream-accessing. +* size: LargeInteger-built-ins. +* size_stCtime_stMtime_stAtime_isDirectory_: VFS.ArchiveMemberHandler-initializing. +* sizeof <1>: CArray-accessing. +* sizeof <2>: CUChar class-getting info. +* sizeof <3>: CLong class-accessing. +* sizeof <4>: CChar-accessing. +* sizeof <5>: CArrayCType-accessing. +* sizeof <6>: CChar class-accessing. +* sizeof <7>: CFloat-accessing. +* sizeof <8>: CAggregate class-accessing. +* sizeof <9>: CFloat class-accessing. +* sizeof <10>: CInt class-accessing. +* sizeof <11>: CUShort class-accessing. +* sizeof <12>: CULong-accessing. +* sizeof <13>: CShort-accessing. +* sizeof <14>: CInt-accessing. +* sizeof <15>: CShort class-accessing. +* sizeof <16>: CDouble class-accessing. +* sizeof <17>: CType-accessing. +* sizeof <18>: CUInt-accessing. +* sizeof <19>: CDouble-accessing. +* sizeof <20>: CULong class-accessing. +* sizeof <21>: CLong-accessing. +* sizeof <22>: CSmalltalk-accessing. +* sizeof <23>: CUChar-accessing. +* sizeof <24>: CSmalltalk class-accessing. +* sizeof <25>: CPtr-accessing. +* sizeof <26>: CCompound class-subclass creation. +* sizeof <27>: CUInt class-accessing. +* sizeof: CUShort-accessing. +* skip_ <1>: PositionableStream-positioning. +* skip_ <2>: FileDescriptor-overriding inherited methods. +* skip_ <3>: ReadWriteStream-positioning. +* skip_: Stream-positioning. +* skipSeparators: PositionableStream-positioning. +* skipTo_: Stream-positioning. +* skipToAll_: Stream-positioning. +* smallest: SmallInteger class-getting limits. +* smoothingFactor: ObjectMemory class-builtins. +* smoothingFactor_: ObjectMemory class-builtins. +* snapshot: ObjectMemory class-saving the image. +* snapshot_: ObjectMemory class-builtins. +* soleInstance: Metaclass-accessing. +* someInstance: Behavior-built ins. +* sortBlock: SortedCollection-basic. +* sortBlock_ <1>: SortedCollection class-instance creation. +* sortBlock_ <2>: SortedCollection-basic. +* sortBlock_: SharedQueue class-instance creation. +* sortedByCount: Bag-extracting items. +* sourceCode: MethodInfo-accessing. +* sourceCodeAt_: Behavior-accessing the methodDictionary. +* sourceCodeMap: CompiledCode-testing accesses. +* sourceFile: MethodInfo-accessing. +* sourceMethodAt_: Behavior-accessing the methodDictionary. +* sourcePos: MethodInfo-accessing. +* sourceString: MethodInfo-accessing. +* sp: ContextPart-accessing. +* sp_: ContextPart-accessing. +* space <1>: Character class-constants. +* space: Stream-character writing. +* space_: Stream-character writing. +* spaceGrowRate: ObjectMemory class-builtins. +* spaceGrowRate_: ObjectMemory class-builtins. +* species <1>: Interval-basic. +* species <2>: PositionableStream-class type methods. +* species <3>: Stream-basic. +* species <4>: BindingDictionary-testing. +* species <5>: WeakArray-conversion. +* species <6>: Object-class type methods. +* species: Symbol-misc. +* splitAt_: Stream-accessing-reading. +* sqrt <1>: Float-built ins. +* sqrt: Number-misc math. +* squared <1>: Number-misc math. +* squared: Fraction-optimized cases. +* stackDepth <1>: BlockClosure-accessing. +* stackDepth <2>: CompiledBlock-accessing. +* stackDepth <3>: CompiledMethod-accessing. +* stackDepth: CompiledCode-accessing. +* startsWith_: CharacterArray-comparing. +* statOn_into_: VFS.VFSHandler-C functions. +* stderr: FileStream class-standard streams. +* stdin: FileStream class-standard streams. +* stdout: FileStream class-standard streams. +* store: Object-storing. +* store_ <1>: Stream-storing. +* store_: TextCollector-storing. +* storeNl: Object-storing. +* storeOn_ <1>: Interval-storing. +* storeOn_ <2>: DateTime-storing. +* storeOn_ <3>: CharacterArray-storing. +* storeOn_ <4>: Fraction-printing. +* storeOn_ <5>: CType-storing. +* storeOn_ <6>: ScaledDecimal-storing. +* storeOn_ <7>: ArrayedCollection-storing. +* storeOn_ <8>: LookupKey-storing. +* storeOn_ <9>: Float-storing. +* storeOn_ <10>: Boolean-storing. +* storeOn_ <11>: Association-storing. +* storeOn_ <12>: Point-storing. +* storeOn_ <13>: Date-storing. +* storeOn_ <14>: RootNamespace-printing. +* storeOn_ <15>: SystemDictionary-printing. +* storeOn_ <16>: Namespace-printing. +* storeOn_ <17>: Character-storing. +* storeOn_ <18>: Rectangle-printing. +* storeOn_ <19>: AbstractNamespace-printing. +* storeOn_ <20>: HashedCollection-storing. +* storeOn_ <21>: Class-printing. +* storeOn_ <22>: Metaclass-printing. +* storeOn_ <23>: Dictionary-storing. +* storeOn_ <24>: VariableBinding-storing. +* storeOn_ <25>: TextCollector-storing. +* storeOn_ <26>: UndefinedObject-storing. +* storeOn_ <27>: HomedAssociation-storing. +* storeOn_ <28>: Integer-storing. +* storeOn_ <29>: Object-storing. +* storeOn_ <30>: Collection-storing. +* storeOn_ <31>: ProcessorScheduler-storing. +* storeOn_ <32>: CompiledMethod-printing. +* storeOn_ <33>: CScalarCType-storing. +* storeOn_ <34>: LookupTable-storing. +* storeOn_ <35>: Bag-storing. +* storeOn_: String-storing. +* storeOn_base_: Integer-printing. +* storeString <1>: Object-storing. +* storeString: Integer-storing. +* stream <1>: SystemExceptions.EndOfStream-accessing. +* stream: ObjectDumper-accessing. +* stream_ <1>: ObjectDumper-accessing. +* stream_: SystemExceptions.EndOfStream-accessing. +* streamContents_: SequenceableCollection class-instance creation. +* strictlyPositive <1>: Number-testing. +* strictlyPositive <2>: Float-testing. +* strictlyPositive <3>: LargeZeroInteger-numeric testing. +* strictlyPositive <4>: LargePositiveInteger-numeric testing. +* strictlyPositive: LargeNegativeInteger-numeric testing. +* stringAt_ <1>: Memory class-accessing. +* stringAt_: ByteArray-more advanced accessing. +* stringAt_put_ <1>: ByteArray-more advanced accessing. +* stringAt_put_: Memory class-accessing. +* stringError_: File class-C functions. +* stripExtension: File-file name management. +* stripExtensionFrom_: File class-file name management. +* stripFileName: File-file name management. +* stripFileNameFor_: File class-file name management. +* stripPath: File-file name management. +* stripPathFrom_: File class-file name management. +* stripSourceCode <1>: CompiledMethod class-lean images. +* stripSourceCode: MethodInfo-accessing. +* subclass_classInstanceVariableNames_instanceVariableNames_classVariableNames_poolDictionaries_ <1>: Class-instance creation - alternative. +* subclass_classInstanceVariableNames_instanceVariableNames_classVariableNames_poolDictionaries_: UndefinedObject-class creation - alternative. +* subclass_declaration_classVariableNames_poolDictionaries_category_: CCompound class-subclass creation. +* subclass_instanceVariableNames_classVariableNames_poolDictionaries_ <1>: Class-instance creation - alternative. +* subclass_instanceVariableNames_classVariableNames_poolDictionaries_: UndefinedObject-class creation - alternative. +* subclass_instanceVariableNames_classVariableNames_poolDictionaries_category_ <1>: UndefinedObject-class creation. +* subclass_instanceVariableNames_classVariableNames_poolDictionaries_category_: Class-instance creation. +* subclasses: Behavior-accessing class hierarchy. +* subclassesDo_: Behavior-enumerating. +* subclassInstVarNames: Behavior-accessing instances and variables. +* subclassOf_: Metaclass class-instance creation. +* subclassResponsibility: Object-built ins. +* subspaces: AbstractNamespace-namespace hierarchy. +* subspacesDo_: AbstractNamespace-namespace hierarchy. +* subStrings: CharacterArray-string processing. +* substrings: CharacterArray-string processing. +* substrings_: CharacterArray-string processing. +* subStrings_: CharacterArray-string processing. +* subtractDate_: Date-basic. +* subtractDays_: Date-basic. +* subtractTime_: Time-arithmetic. +* suggestedSelector: SystemExceptions.WrongMessageSent-accessing. +* suggestedSelector_: SystemExceptions.WrongMessageSent-accessing. +* superclass: Behavior-accessing class hierarchy. +* superclass_: Behavior-creating a class hierarchy. +* superspace: AbstractNamespace-namespace hierarchy. +* superspace_: AbstractNamespace-namespace hierarchy. +* survSpaceSize: ObjectMemory-accessing. +* survSpaceUsedBytes: ObjectMemory-accessing. +* suspend: Process-basic. +* suspendedContext: Process-accessing. +* symbol: SymLink-accessing. +* symbol_: SymLink-accessing. +* symbol_nextLink_: SymLink class-instance creation. +* system_: SystemDictionary-C functions. +* systemBackgroundPriority: ProcessorScheduler-priorities. +* systemKernel: Directory class-reading system defaults. +* tab <1>: Stream-character writing. +* tab: Character class-constants. +* tab_: Stream-character writing. +* tag: Signal-accessing. +* tag_: Signal-accessing. +* tan <1>: Number-misc math. +* tan: Float-built ins. +* temporary: Directory class-reading system defaults. +* tenure: Object-built ins. +* tenuredBytesPerScavenge: ObjectMemory-accessing. +* terminate: Process-basic. +* terminateActive: ProcessorScheduler-basic. +* timeBetweenGlobalGCs: ObjectMemory-accessing. +* timeBetweenGrowths: ObjectMemory-accessing. +* timeBetweenScavenges: ObjectMemory-accessing. +* timeSlice: ProcessorScheduler-basic. +* timeSlice_: ProcessorScheduler-basic. +* timesRepeat_: Integer-iterators. +* timesTwoPower_ <1>: FloatD-built ins. +* timesTwoPower_ <2>: FloatQ-built ins. +* timesTwoPower_: FloatE-built ins. +* timeToCollect: ObjectMemory-accessing. +* timeToCompact: ObjectMemory-accessing. +* timeToScavenge: ObjectMemory-accessing. +* timezone: Time class-builtins. +* timeZoneAbbreviation: DateTime-time zones. +* timezoneBias: Time class-builtins. +* timeZoneName: DateTime-time zones. +* timingPriority: ProcessorScheduler-priorities. +* to_: Number-shortcuts and iterators. +* to_by_: Number-shortcuts and iterators. +* to_by_do_: Number-shortcuts and iterators. +* to_do_: Number-shortcuts and iterators. +* today: Date class-instance creation (Blue Book). +* top: Rectangle-accessing. +* top_: Rectangle-accessing. +* topCenter: Rectangle-accessing. +* topLeft: Rectangle-accessing. +* topLeft_: Rectangle-accessing. +* topRight: Rectangle-accessing. +* topRight_: Rectangle-accessing. +* translateBy_: Rectangle-transforming. +* translatedToBeWithin_: Rectangle-rectangle functions. +* transpose: Point-point functions. +* trigger: DelayedAdaptor-accessing. +* trimSeparators: CharacterArray-converting. +* truncate <1>: FileStream-basic. +* truncate <2>: FileDescriptor-basic. +* truncate: PositionableStream-truncating. +* truncated <1>: Integer-converting. +* truncated <2>: Number-truncation and round off. +* truncated <3>: ScaledDecimal-coercion. +* truncated <4>: Fraction-coercing. +* truncated <5>: FloatQ-built ins. +* truncated <6>: FloatE-built ins. +* truncated <7>: FloatD-built ins. +* truncated: Float-coercing. +* truncatedGrid_: Point-point functions. +* truncateTo_ <1>: Number-truncation and round off. +* truncateTo_: Point-truncation and round off. +* type <1>: CCompound class-instance creation. +* type <2>: CScalar class-instance creation. +* type <3>: CByte class-conversion. +* type <4>: CByte-accessing. +* type <5>: CObject-conversion. +* type <6>: CString class-instance creation. +* type: CObject class-conversion. +* type_: CObject-accessing. +* ucharAt_: ByteArray-more advanced accessing. +* ucharAt_put_ <1>: Memory class-accessing. +* ucharAt_put_: ByteArray-more advanced accessing. +* uintAt_: ByteArray-more advanced accessing. +* uintAt_put_ <1>: ByteArray-more advanced accessing. +* uintAt_put_: Memory class-accessing. +* ulongAt_: ByteArray-more advanced accessing. +* ulongAt_put_ <1>: ByteArray-more advanced accessing. +* ulongAt_put_: Memory class-accessing. +* unity <1>: SmallInteger-coercion methods. +* unity <2>: Fraction-coercing. +* unity <3>: FloatD-coercing. +* unity <4>: FloatQ-coercing. +* unity <5>: Number-converting. +* unity <6>: LargeInteger-coercion. +* unity: FloatE-coercing. +* unpreemptedPriority: ProcessorScheduler-priorities. +* unsignedCharAt_ <1>: Memory class-accessing. +* unsignedCharAt_: ByteArray-more advanced accessing. +* unsignedCharAt_put_ <1>: Memory class-accessing. +* unsignedCharAt_put_: ByteArray-more advanced accessing. +* unsignedIntAt_ <1>: Memory class-accessing. +* unsignedIntAt_: ByteArray-more advanced accessing. +* unsignedIntAt_put_ <1>: ByteArray-more advanced accessing. +* unsignedIntAt_put_: Memory class-accessing. +* unsignedLongAt_ <1>: Memory class-accessing. +* unsignedLongAt_: ByteArray-more advanced accessing. +* unsignedLongAt_put_ <1>: Memory class-accessing. +* unsignedLongAt_put_: ByteArray-more advanced accessing. +* unsignedShortAt_ <1>: Memory class-accessing. +* unsignedShortAt_: ByteArray-more advanced accessing. +* unsignedShortAt_put_ <1>: Memory class-accessing. +* unsignedShortAt_put_: ByteArray-more advanced accessing. +* untilMilliseconds_: Delay class-instance creation. +* unwind: ContextPart class-exception handling. +* unwind_: ContextPart class-exception handling. +* update: ObjectMemory-builtins. +* update_ <1>: FileDescriptor class-initialization. +* update_ <2>: Object class-initialization. +* update_ <3>: VFS.ArchiveMemberHandler-file operations. +* update_ <4>: DLD class-dynamic linking. +* update_ <5>: ProcessorScheduler-idle tasks. +* update_ <6>: Time class-initialization. +* update_ <7>: VFS.VFSHandler class-initializing. +* update_: Object-change and update. +* updateMember_ <1>: VFS.ExternalArchiveFileHandler-ArchiveMemberHandler protocol. +* updateMember_: VFS.ArchiveFileHandler-ArchiveMemberHandler protocol. +* upTo_: Stream-accessing-reading. +* upToAll_: Stream-accessing-reading. +* upToEnd: Stream-accessing-reading. +* userBackgroundPriority: ProcessorScheduler-priorities. +* userInterrupt: Object-exception handling. +* userInterruptPriority: ProcessorScheduler-priorities. +* username: NetClients.URL-accessing. +* username_: NetClients.URL-accessing. +* userSchedulingPriority: ProcessorScheduler-priorities. +* ushortAt_: ByteArray-more advanced accessing. +* ushortAt_put_ <1>: Memory class-accessing. +* ushortAt_put_: ByteArray-more advanced accessing. +* utcDateAndTimeNow: Date class-instance creation (Blue Book). +* utcNow: Time class-basic (UTC). +* utcSecondClock: Time class-basic (UTC). +* utcToday: Date class-instance creation (Blue Book). +* validClasses: SystemExceptions.WrongClass-accessing. +* validClasses_: SystemExceptions.WrongClass-accessing. +* validClassesString: SystemExceptions.WrongClass-accessing. +* validSize <1>: Object-debugging. +* validSize: ContextPart-accessing. +* value <1>: SystemExceptions.InvalidValue-accessing. +* value <2>: BlockClosure-built ins. +* value <3>: ValueAdaptor-accessing. +* value <4>: CScalar-accessing. +* value <5>: CBoolean-accessing. +* value <6>: Character-built ins. +* value <7>: CByte-accessing. +* value <8>: CPtr-accessing. +* value <9>: NullValueHolder-accessing. +* value <10>: Promise-accessing. +* value <11>: ValueHolder-accessing. +* value <12>: DirectedMessage-basic. +* value <13>: PluggableAdaptor-accessing. +* value <14>: Association-accessing. +* value <15>: CString-accessing. +* value: DelayedAdaptor-accessing. +* value_ <1>: DelayedAdaptor-accessing. +* value_ <2>: BlockClosure-built ins. +* value_ <3>: NullValueHolder-accessing. +* value_ <4>: CPtr-accessing. +* value_ <5>: CScalar class-instance creation. +* value_ <6>: CScalar-accessing. +* value_ <7>: SystemExceptions.InvalidValue-accessing. +* value_ <8>: CBoolean-accessing. +* value_ <9>: CByte-accessing. +* value_ <10>: CString class-instance creation. +* value_ <11>: CString-accessing. +* value_ <12>: Character class-built ins. +* value_ <13>: PluggableAdaptor-accessing. +* value_ <14>: Association-accessing. +* value_ <15>: ValueAdaptor-accessing. +* value_ <16>: Promise-accessing. +* value_: ValueHolder-accessing. +* value_value_: BlockClosure-built ins. +* value_value_value_: BlockClosure-built ins. +* valueAt_: CharacterArray-built ins. +* valueAt_put_: CharacterArray-built ins. +* values <1>: Dictionary-accessing. +* values: AbstractNamespace-overrides for superspaces. +* valueType <1>: CType-accessing. +* valueType: CScalarCType-accessing. +* valueWithArguments_: BlockClosure-built ins. +* valueWithoutInterrupts: BlockClosure-multiple process. +* valueWithoutInterrupts_: Process-accessing. +* valueWithoutPreemption: BlockClosure-multiple process. +* valueWithUnwind: BlockClosure-unwind protection. +* variableByteSubclass_classInstanceVariableNames_classVariableNames_poolDictionaries_: Class-instance creation - alternative. +* variableByteSubclass_classInstanceVariableNames_instanceVariableNames_classVariableNames_poolDictionaries_: UndefinedObject-class creation - alternative. +* variableByteSubclass_classVariableNames_poolDictionaries_: Class-instance creation - alternative. +* variableByteSubclass_instanceVariableNames_classVariableNames_poolDictionaries_: UndefinedObject-class creation - alternative. +* variableByteSubclass_instanceVariableNames_classVariableNames_poolDictionaries_category_ <1>: Class-instance creation. +* variableByteSubclass_instanceVariableNames_classVariableNames_poolDictionaries_category_: UndefinedObject-class creation. +* variableLongSubclass_classInstanceVariableNames_classVariableNames_poolDictionaries_: Class-instance creation - alternative. +* variableLongSubclass_classVariableNames_poolDictionaries_: Class-instance creation - alternative. +* variableSubclass_classInstanceVariableNames_instanceVariableNames_classVariableNames_poolDictionaries_ <1>: Class-instance creation - alternative. +* variableSubclass_classInstanceVariableNames_instanceVariableNames_classVariableNames_poolDictionaries_: UndefinedObject-class creation - alternative. +* variableSubclass_instanceVariableNames_classVariableNames_poolDictionaries_ <1>: UndefinedObject-class creation - alternative. +* variableSubclass_instanceVariableNames_classVariableNames_poolDictionaries_: Class-instance creation - alternative. +* variableSubclass_instanceVariableNames_classVariableNames_poolDictionaries_category_ <1>: UndefinedObject-class creation. +* variableSubclass_instanceVariableNames_classVariableNames_poolDictionaries_category_: Class-instance creation. +* variableWordSubclass_classInstanceVariableNames_instanceVariableNames_classVariableNames_poolDictionaries_: UndefinedObject-class creation - alternative. +* variableWordSubclass_instanceVariableNames_classVariableNames_poolDictionaries_: UndefinedObject-class creation - alternative. +* variableWordSubclass_instanceVariableNames_classVariableNames_poolDictionaries_category_ <1>: Class-instance creation. +* variableWordSubclass_instanceVariableNames_classVariableNames_poolDictionaries_category_: UndefinedObject-class creation. +* verbose_: FileStream class-file-in. +* verboseTrace: SystemDictionary-builtins. +* verboseTrace_: SystemDictionary-builtins. +* version: SystemDictionary-special accessing. +* vfsFor_name_subPath_ <1>: VFS.ExternalArchiveFileHandler class-registering. +* vfsFor_name_subPath_: VFS.DecodedFileHandler class-registering. +* wait <1>: Delay-process delay. +* wait: Semaphore-builtins. +* waitAfterSignalling_: Semaphore-builtins. +* waitForException: FileDescriptor-accessing. +* waitingProcesses <1>: Semaphore-accessing. +* waitingProcesses: RecursionLock-accessing. +* whenSignalledIn_do_exitBlock_: Exception class-interoperability with TrappableEvents. +* whichCategoryIncludesSelector_: ClassDescription-organization of messages and classes. +* whichClassIncludesSelector_: Behavior-testing the method dictionary. +* whichSelectorsAccess_: Behavior-testing the method dictionary. +* whichSelectorsAssign_: Behavior-testing the method dictionary. +* whichSelectorsRead_: Behavior-testing the method dictionary. +* whichSelectorsReferTo_: Behavior-testing the method dictionary. +* whichSelectorsReferToByteCode_: Behavior-testing the method dictionary. +* whileCurrentDo_: AbstractNamespace-copying. +* whileFalse: BlockClosure-control structures. +* whileFalse_: BlockClosure-control structures. +* whileTrue: BlockClosure-control structures. +* whileTrue_: BlockClosure-control structures. +* width: Rectangle-accessing. +* width_: Rectangle-accessing. +* with_ <1>: Collection class-instance creation. +* with_ <2>: ValueHolder class-creating instances. +* with_ <3>: ReadWriteStream class-instance creation. +* with_ <4>: WriteStream class-instance creation. +* with_ <5>: ArrayedCollection class-instance creation. +* with_: Symbol class-instance creation. +* with_collect_ <1>: SequenceableCollection-enumerating. +* with_collect_: ArrayedCollection-enumerating the elements of a collection. +* with_do_: SequenceableCollection-enumerating. +* with_from_to_: WriteStream class-instance creation. +* with_with_ <1>: Collection class-instance creation. +* with_with_ <2>: ArrayedCollection class-instance creation. +* with_with_: Symbol class-instance creation. +* with_with_with_ <1>: Collection class-instance creation. +* with_with_with_ <2>: Symbol class-instance creation. +* with_with_with_: ArrayedCollection class-instance creation. +* with_with_with_with_ <1>: ArrayedCollection class-instance creation. +* with_with_with_with_ <2>: Symbol class-instance creation. +* with_with_with_with_: Collection class-instance creation. +* with_with_with_with_with_ <1>: Collection class-instance creation. +* with_with_with_with_with_ <2>: Symbol class-instance creation. +* with_with_with_with_with_: ArrayedCollection class-instance creation. +* withAll_ <1>: ArrayedCollection class-instance creation. +* withAll_ <2>: Collection class-instance creation. +* withAll_: Interval class-instance creation. +* withAllBlocksDo_: CompiledMethod-accessing. +* withAllSubclasses: Behavior-accessing class hierarchy. +* withAllSubclassesDo_: Behavior-enumerating. +* withAllSubspaces: AbstractNamespace-namespace hierarchy. +* withAllSubspacesDo_: AbstractNamespace-namespace hierarchy. +* withAllSuperclasses: Behavior-accessing class hierarchy. +* withAllSuperclassesDo_: Behavior-enumerating. +* withAllSuperspaces <1>: Dictionary-polymorphism hacks. +* withAllSuperspaces: AbstractNamespace-namespace hierarchy. +* withAllSuperspacesDo_: AbstractNamespace-namespace hierarchy. +* withFileDo_: FileSegment-basic. +* withNewMethodClass_: CompiledMethod-accessing. +* withNewMethodClass_selector_: CompiledMethod-accessing. +* withSignOf_: Number-misc math. +* working <1>: VFS.RealFileHandler class-C functions. +* working: Directory class-C functions. +* working_: Directory class-file operations. +* wouldBlock <1>: Semaphore-accessing. +* wouldBlock: RecursionLock-accessing. +* write: FileDescriptor class-instance creation. +* write_: FileDescriptor-low-level access. +* write_from_to_: FileDescriptor-low-level access. +* write_numBytes_: FileDescriptor-low-level access. +* writeStream <1>: File-file operations. +* writeStream: SequenceableCollection-enumerating. +* x: Point-accessing. +* x_: Point-accessing. +* x_y_ <1>: Point class-instance creation. +* x_y_: Point-accessing. +* xor_ <1>: True-basic. +* xor_ <2>: False-basic. +* xor_: Boolean-basic. +* y: Point-accessing. +* y_: Point-accessing. +* year: Date-date computations. +* year_day_hour_minute_second_ <1>: DateTime class-instance creation. +* year_day_hour_minute_second_: Date class-instance creation (ANSI). +* year_day_hour_minute_second_offset_: DateTime class-instance creation. +* year_month_day_hour_minute_second_ <1>: DateTime class-instance creation. +* year_month_day_hour_minute_second_: Date class-instance creation (ANSI). +* year_month_day_hour_minute_second_offset_: DateTime class-instance creation. +* yield <1>: ProcessorScheduler-basic. +* yield: Process-builtins. +* yourself: Object-class type methods. +* zero <1>: FloatD-coercing. +* zero <2>: FloatQ-coercing. +* zero <3>: Fraction-coercing. +* zero <4>: ScaledDecimal-constants. +* zero <5>: FloatE-coercing. +* zero <6>: SmallInteger-coercion methods. +* zero <7>: LargeInteger-coercion. +* zero <8>: Duration class-instance creation. +* zero: Number-converting. +* zeroDivide: Number-error raising. +* | <1>: Boolean-basic. +* | <2>: False-basic. +* |: True-basic. +* ~= <1>: SmallInteger-built ins. +* ~= <2>: Object-relational operators. +* ~= <3>: FloatD-built ins. +* ~= <4>: ScaledDecimal-comparing. +* ~= <5>: FloatQ-built ins. +* ~= <6>: FloatE-built ins. +* ~=: LargeInteger-testing. +* ~~ <1>: Object-relational operators. +* ~~: SmallInteger-built ins. Binary files smalltalk-2.1.9/doc/gst-base.info-4 and smalltalk-2.1.10/doc/gst-base.info-4 differ Binary files smalltalk-2.1.9/doc/gst-base.info-5 and smalltalk-2.1.10/doc/gst-base.info-5 differ diff -rNu smalltalk-2.1.9/doc/gst-libs.info smalltalk-2.1.10/doc/gst-libs.info --- smalltalk-2.1.9/doc/gst-libs.info 2004-10-02 15:37:27.000000000 +0200 +++ smalltalk-2.1.10/doc/gst-libs.info 2005-02-02 15:11:09.000000000 +0100 @@ -1,13 +1,13 @@ -This is gst-libs.info, produced by makeinfo version 4.7 from -/home/utente/devel-gst-stable/doc/gst-libs-fixed.texi. +This is gst-libs.info, produced by makeinfo version 4.6 from +/Users/bonzinip/devel/gst-stable/+build/doc/../../doc/gst-libs-fixed.texi. INFO-DIR-SECTION GNU Smalltalk START-INFO-DIR-ENTRY * Libraries: (gst-libs). The GNU Smalltalk class libraries. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 9 January 2004. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 2 February 2005. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -23,365 +23,364 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. -  Indirect: -gst-libs.info-1: 1000 -gst-libs.info-2: 297169 +gst-libs.info-1: 1018 +gst-libs.info-2: 293578  Tag Table: (Indirect) -Node: Top1000 -Node: BLOX2405 -Node: BLOX.BArc4951 -Node: BLOX.BArc-accessing5264 -Node: BLOX.BBalloon6810 -Node: BLOX.BBalloon class-accessing7282 -Node: BLOX.BBalloon-accessing7710 -Node: BLOX.BBalloon-initializing8106 -Node: BLOX.BBoundingBox8356 -Node: BLOX.BBoundingBox-accessing8827 -Node: BLOX.BButton11568 -Node: BLOX.BButton class-instance creation12043 -Node: BLOX.BButton-accessing12391 -Node: BLOX.BButtonLike16576 -Node: BLOX.BButtonLike-accessing16923 -Node: BLOX.BCanvas17724 -Node: BLOX.BCanvas-accessing18490 -Node: BLOX.BCanvas-geometry management19346 -Node: BLOX.BCanvas-widget protocol21065 -Node: BLOX.BCanvasObject22290 -Node: BLOX.BCanvasObject class-instance creation22832 -Node: BLOX.BCanvasObject-accessing23249 -Node: BLOX.BCanvasObject-widget protocol25199 -Node: BLOX.BCheckMenuItem26484 -Node: BLOX.BCheckMenuItem class-instance creation26931 -Node: BLOX.BCheckMenuItem-accessing27254 -Node: BLOX.BColorButton27716 -Node: BLOX.BColorButton-accessing28145 -Node: BLOX.BContainer28612 -Node: BLOX.BContainer-accessing29059 -Node: BLOX.BDialog29726 -Node: BLOX.BDialog class-instance creation30349 -Node: BLOX.BDialog class-prompters31266 -Node: BLOX.BDialog-accessing34803 -Node: BLOX.BDialog-widget protocol36011 -Node: BLOX.BDropDown36913 -Node: BLOX.BDropDown-accessing37845 -Node: BLOX.BDropDown-callbacks43109 -Node: BLOX.BDropDown-flexibility43735 -Node: BLOX.BDropDown-list box accessing45230 -Node: BLOX.BDropDown-widget protocol48280 -Node: BLOX.BDropDownEdit49223 -Node: BLOX.BDropDownEdit-accessing49759 -Node: BLOX.BDropDownEdit-accessing-overrides51923 -Node: BLOX.BDropDownEdit-text accessing52240 -Node: BLOX.BDropDownList53650 -Node: BLOX.BDropDownList-accessing54199 -Node: BLOX.BDropDownList-callbacks56886 -Node: BLOX.BDropDownList-list box accessing57586 -Node: BLOX.BEdit58026 -Node: BLOX.BEdit class-instance creation58443 -Node: BLOX.BEdit-accessing58781 -Node: BLOX.BEdit-widget protocol63144 -Node: BLOX.BEmbeddedImage65122 -Node: BLOX.BEmbeddedImage-accessing65473 -Node: BLOX.BEmbeddedText66422 -Node: BLOX.BEmbeddedText-accessing66784 -Node: BLOX.BEventSet69729 -Node: BLOX.BEventSet class-initializing70427 -Node: BLOX.BEventSet-accessing70895 -Node: BLOX.BEventSet-initializing71184 -Node: BLOX.BEventTarget71567 -Node: BLOX.BEventTarget-intercepting events71938 -Node: BLOX.BExtended78034 -Node: BLOX.BExtended-accessing78852 -Node: BLOX.BExtended-customization79116 -Node: BLOX.BForm80130 -Node: BLOX.BForm-accessing80503 -Node: BLOX.BImage81950 -Node: BLOX.BImage class-arrows82535 -Node: BLOX.BImage class-GNU83037 -Node: BLOX.BImage class-icons83291 -Node: BLOX.BImage class-instance creation83804 -Node: BLOX.BImage class-small icons84562 -Node: BLOX.BImage-accessing84944 -Node: BLOX.BImage-image management88072 -Node: BLOX.BImage-widget protocol90598 -Node: BLOX.BLabel90907 -Node: BLOX.BLabel class-initialization91299 -Node: BLOX.BLabel class-instance creation91579 -Node: BLOX.BLabel-accessing91964 -Node: BLOX.BLine96663 -Node: BLOX.BLine-accessing97009 -Node: BLOX.BList97579 -Node: BLOX.BList-accessing97954 -Node: BLOX.BList-widget protocol109850 -Node: BLOX.Blox111233 -Node: BLOX.Blox class-event dispatching112321 -Node: BLOX.Blox class-instance creation113614 -Node: BLOX.Blox class-utility114064 -Node: BLOX.Blox-accessing117201 -Node: BLOX.Blox-basic118555 -Node: BLOX.Blox-creating children119152 -Node: BLOX.Blox-customization120173 -Node: BLOX.Blox-widget protocol120970 -Node: BLOX.BMenu123231 -Node: BLOX.BMenu class-instance creation123629 -Node: BLOX.BMenu-accessing124046 -Node: BLOX.BMenu-callback registration124895 -Node: BLOX.BMenuBar125993 -Node: BLOX.BMenuBar-accessing126328 -Node: BLOX.BMenuItem126563 -Node: BLOX.BMenuItem class-instance creation127053 -Node: BLOX.BMenuItem-accessing127457 -Node: BLOX.BMenuObject128285 -Node: BLOX.BMenuObject-accessing128684 -Node: BLOX.BMenuObject-callback131023 -Node: BLOX.BOval131979 -Node: BLOX.BPolyline132303 -Node: BLOX.BPolyline-accessing132642 -Node: BLOX.BPopupMenu134979 -Node: BLOX.BPopupMenu-widget protocol135396 -Node: BLOX.BPopupWindow135613 -Node: BLOX.BPopupWindow-geometry management136216 -Node: BLOX.BPrimitive138284 -Node: BLOX.BPrimitive-accessing138675 -Node: BLOX.BProgress138906 -Node: BLOX.BProgress-accessing139238 -Node: BLOX.BRadioButton140484 -Node: BLOX.BRadioButton-accessing140833 -Node: BLOX.BRadioGroup141721 -Node: BLOX.BRadioGroup-accessing142354 -Node: BLOX.BRadioGroup-widget protocol142829 -Node: BLOX.BRectangle143159 -Node: BLOX.BRectangle-accessing143507 -Node: BLOX.BScrolledCanvas143995 -Node: BLOX.BSpline144424 -Node: BLOX.BSpline-accessing144761 -Node: BLOX.BText145192 -Node: BLOX.BText class-accessing145817 -Node: BLOX.BText class-instance creation146160 -Node: BLOX.BText-accessing146528 -Node: BLOX.BText-attributes152375 -Node: BLOX.BText-geometry management153646 -Node: BLOX.BText-images155225 -Node: BLOX.BText-inserting text156907 -Node: BLOX.BText-position & lines158923 -Node: BLOX.BTextAttributes160730 -Node: BLOX.BTextAttributes class-instance-creation shortcuts161196 -Node: BLOX.BTextAttributes-colors164055 -Node: BLOX.BTextAttributes-setting attributes165144 -Node: BLOX.BTextBindings169298 -Node: BLOX.BTextBindings class-instance creation169842 -Node: BLOX.BTextTags170094 -Node: BLOX.BToggle170463 -Node: BLOX.BToggle-accessing170852 -Node: BLOX.BTransientWindow171750 -Node: BLOX.BTransientWindow class-instance creation172269 -Node: BLOX.BTransientWindow-widget protocol172888 -Node: BLOX.BViewport173480 -Node: BLOX.BViewport-accessing173921 -Node: BLOX.BViewport-scrollbars174181 -Node: BLOX.BWidget175141 -Node: BLOX.BWidget class-popups175710 -Node: BLOX.BWidget-accessing176965 -Node: BLOX.BWidget-customization181580 -Node: BLOX.BWidget-geometry management183209 -Node: BLOX.BWidget-widget protocol199715 -Node: BLOX.BWindow201755 -Node: BLOX.BWindow class-instance creation202208 -Node: BLOX.BWindow-accessing202645 -Node: BLOX.BWindow-widget protocol205367 -Node: BLOX.Gui210077 -Node: BLOX.Gui-accessing210477 -Node: TCP210738 -Node: TCP.AbstractSocket212082 -Node: TCP.AbstractSocket class-defaults212696 -Node: TCP.AbstractSocket class-instance creation213582 -Node: TCP.AbstractSocket class-timed-out operations214177 -Node: TCP.AbstractSocket-accessing215168 -Node: TCP.AbstractSocket-printing216313 -Node: TCP.AbstractSocket-socket options216621 -Node: TCP.AbstractSocket-stream protocol217554 -Node: TCP.AbstractSocket-testing218127 -Node: TCP.AbstractSocketImpl218403 -Node: TCP.AbstractSocketImpl class-abstract218993 -Node: TCP.AbstractSocketImpl class-socket creation219451 -Node: TCP.AbstractSocketImpl-accessing219793 -Node: TCP.AbstractSocketImpl-asynchronous operations220954 -Node: TCP.AbstractSocketImpl-socket operations221696 -Node: TCP.AbstractSocketImpl-socket options223662 -Node: TCP.Datagram225636 -Node: TCP.Datagram class-instance creation225955 -Node: TCP.Datagram-accessing227266 -Node: TCP.DatagramSocket228299 -Node: TCP.DatagramSocket class-accessing228806 -Node: TCP.DatagramSocket class-initialization229455 -Node: TCP.DatagramSocket class-instance creation229817 -Node: TCP.DatagramSocket-accessing230832 -Node: TCP.DatagramSocket-direct operations231735 -Node: TCP.DatagramSocketImpl232050 -Node: TCP.DatagramSocketImpl class-parameters232481 -Node: TCP.DatagramSocketImpl-accessing232782 -Node: TCP.DatagramSocketImpl-socket operations233213 -Node: TCP.ICMPSocketImpl234365 -Node: TCP.ICMPSocketImpl class-implementation234672 -Node: TCP.IPAddress234968 -Node: TCP.IPAddress class-constants235430 -Node: TCP.IPAddress class-initialization235753 -Node: TCP.IPAddress class-instance creation236466 -Node: TCP.IPAddress-accessing240341 -Node: TCP.IPAddress-printing241479 -Node: TCP.MulticastSocket241706 -Node: TCP.MulticastSocket-instance creation242017 -Node: TCP.MulticastSocketImpl242848 -Node: TCP.MulticastSocketImpl-multicasting243176 -Node: TCP.OOBSocketImpl243963 -Node: TCP.OOBSocketImpl class-implementation244327 -Node: TCP.OOBSocketImpl-implementation244661 -Node: TCP.RawSocketImpl245070 -Node: TCP.RawSocketImpl class-parameters245372 -Node: TCP.ReadBuffer245614 -Node: TCP.ReadBuffer class-instance creation246086 -Node: TCP.ReadBuffer-buffer handling246557 -Node: TCP.ServerSocket247526 -Node: TCP.ServerSocket class-instance creation247907 -Node: TCP.ServerSocket-accessing249383 -Node: TCP.ServerSocket-initializing250308 -Node: TCP.Socket250703 -Node: TCP.Socket class-accessing251263 -Node: TCP.Socket class-instance creation252068 -Node: TCP.Socket class-tests252912 -Node: TCP.Socket class-well known ports254473 -Node: TCP.Socket-accessing256563 -Node: TCP.Socket-out-of-band data256876 -Node: TCP.Socket-printing257188 -Node: TCP.Socket-stream protocol257458 -Node: TCP.SocketAddress259553 -Node: TCP.SocketAddress class-abstract260027 -Node: TCP.SocketAddress class-accessing260471 -Node: TCP.SocketAddress class-host name lookup262479 -Node: TCP.SocketAddress class-initialization263285 -Node: TCP.SocketAddress-accessing264495 -Node: TCP.SocketImpl265502 -Node: TCP.SocketImpl class-parameters265884 -Node: TCP.SocketImpl-abstract266146 -Node: TCP.SocketImpl-socket operations266479 -Node: TCP.TCPSocketImpl266921 -Node: TCP.TCPSocketImpl class-implementation267268 -Node: TCP.TCPSocketImpl-implementation267602 -Node: TCP.UDPSocketImpl267931 -Node: TCP.UDPSocketImpl class-implementation268286 -Node: TCP.UDPSocketImpl-multicasting268618 -Node: TCP.WriteBuffer269526 -Node: TCP.WriteBuffer-buffer handling269940 -Node: I18N270394 -Node: I18N.BigEndianFileStream272959 -Node: I18N.EncodedStream273315 -Node: I18N.EncodedStream class-initializing273851 -Node: I18N.EncodedStream class-instance creation274734 -Node: I18N.Encoder275656 -Node: I18N.Encoder class-instance creation276216 -Node: I18N.Encoder-stream operations276652 -Node: I18N.Encoders.ComposeUCS4BE277720 -Node: I18N.Encoders.ComposeUCS4BE-stream operation278253 -Node: I18N.Encoders.ComposeUCS4LE278602 -Node: I18N.Encoders.ComposeUCS4LE-stream operation279148 -Node: I18N.Encoders.FromUCS4279500 -Node: I18N.Encoders.FromUCS4-stream operation280015 -Node: I18N.Encoders.FromUTF7280300 -Node: I18N.Encoders.FromUTF7 class-initialization280690 -Node: I18N.Encoders.FromUTF7-converting281014 -Node: I18N.Encoders.Iconv281698 -Node: I18N.Encoders.Iconv-stream operation282380 -Node: I18N.Encoders.SplitUCS4BE282789 -Node: I18N.Encoders.SplitUCS4BE-stream operation283337 -Node: I18N.Encoders.SplitUCS4LE283920 -Node: I18N.Encoders.SplitUCS4LE-stream operation284474 -Node: I18N.Encoders.ToUCS4285059 -Node: I18N.Encoders.ToUCS4-stream operation285601 -Node: I18N.Encoders.ToUTF7285891 -Node: I18N.Encoders.ToUTF7 class-initialization286410 -Node: I18N.Encoders.ToUTF7-conversion286726 -Node: I18N.FileStreamSegment287176 -Node: I18N.FileStreamSegment-basic287612 -Node: I18N.IncompleteSequenceError287932 -Node: I18N.IncompleteSequenceError-accessing288495 -Node: I18N.InvalidCharsetError288761 -Node: I18N.InvalidCharsetError-accessing289204 -Node: I18N.InvalidSequenceError289454 -Node: I18N.InvalidSequenceError-accessing289885 -Node: I18N.LcMessages290139 -Node: I18N.LcMessages class-accessing290595 -Node: I18N.LcMessages-accessing290982 -Node: I18N.LcMessages-opening MO files291721 -Node: I18N.LcMessagesCatalog292519 -Node: I18N.LcMessagesDomain292894 -Node: I18N.LcMessagesDomain class-opening MO files294004 -Node: I18N.LcMessagesDomain-handling the cache294395 -Node: I18N.LcMessagesDomain-querying294934 -Node: I18N.LcMessagesDummyDomain296057 -Node: I18N.LcMessagesMoFileVersion0296476 -Node: I18N.LcMessagesMoFileVersion0 class-documentation297169 -Node: I18N.LcMessagesMoFileVersion0 class-plurals305130 -Node: I18N.LcMessagesMoFileVersion0-flushing the cache305780 -Node: I18N.LcMessagesTerritoryDomain306221 -Node: I18N.LcMessagesTerritoryDomain class-instance creation306695 -Node: I18N.LcMonetary307075 -Node: I18N.LcMonetary class-accessing307609 -Node: I18N.LcMonetary-printing307995 -Node: I18N.LcMonetaryISO308794 -Node: I18N.LcMonetaryISO class-accessing309088 -Node: I18N.LcNumeric309364 -Node: I18N.LcNumeric class-accessing309839 -Node: I18N.LcNumeric-printing310220 -Node: I18N.LcPrintFormats310724 -Node: I18N.LcPrintFormats-printing311287 -Node: I18N.LcTime311797 -Node: I18N.LcTime class-accessing312295 -Node: I18N.LcTime-printing312661 -Node: I18N.LcTime-tests314961 -Node: I18N.Locale315195 -Node: I18N.Locale class-initialization315860 -Node: I18N.Locale class-instance creation316248 -Node: I18N.Locale-subobjects316901 -Node: I18N.LocaleConventions317542 -Node: I18N.LocaleConventions class-accessing317988 -Node: I18N.LocaleConventions-accessing318712 -Node: I18N.LocaleData319043 -Node: I18N.LocaleData class-accessing319555 -Node: I18N.LocaleData class-database320626 -Node: I18N.LocaleData-accessing321097 -Node: I18N.LocaleData-initialization322270 -Node: I18N.RTEAlternativeNode322670 -Node: I18N.RTEAlternativeNode class-compiling323045 -Node: I18N.RTEAlternativeNode-computing323465 -Node: I18N.RTEBinaryNode324041 -Node: I18N.RTEBinaryNode class-compiling324445 -Node: I18N.RTEBinaryNode-compiling324813 -Node: I18N.RTEBinaryNode-computing325124 -Node: I18N.RTELiteralNode325666 -Node: I18N.RTELiteralNode class-initializing326029 -Node: I18N.RTELiteralNode-computing326342 -Node: I18N.RTENegationNode326772 -Node: I18N.RTENegationNode class-initializing327142 -Node: I18N.RTENegationNode-computing327457 -Node: I18N.RTEParameterNode327914 -Node: I18N.RTEParameterNode-computing328237 -Node: I18N.RunTimeExpression328554 -Node: I18N.RunTimeExpression class-compiling329002 -Node: I18N.RunTimeExpression class-initializing329626 -Node: I18N.RunTimeExpression class-instance creation330001 -Node: I18N.RunTimeExpression-computing330376 -Node: XML330801 -Node: Building a DOM from XML331017 -Node: Building XML336406 -Node: Using DTDs339574 -Node: XSL Processing342828 -Node: Attributions344248 -Node: Class index344592 -Node: Method index353878 -Node: Cross-reference516998 +Node: Top1018 +Node: BLOX2322 +Node: BLOX.BArc4864 +Node: BLOX.BArc-accessing5169 +Node: BLOX.BBalloon6703 +Node: BLOX.BBalloon class-accessing7167 +Node: BLOX.BBalloon-accessing7583 +Node: BLOX.BBalloon-initializing7967 +Node: BLOX.BBoundingBox8205 +Node: BLOX.BBoundingBox-accessing8668 +Node: BLOX.BButton11397 +Node: BLOX.BButton class-instance creation11864 +Node: BLOX.BButton-accessing12200 +Node: BLOX.BButtonLike16373 +Node: BLOX.BButtonLike-accessing16712 +Node: BLOX.BCanvas17501 +Node: BLOX.BCanvas-accessing18259 +Node: BLOX.BCanvas-geometry management19103 +Node: BLOX.BCanvas-widget protocol20810 +Node: BLOX.BCanvasObject22023 +Node: BLOX.BCanvasObject class-instance creation22557 +Node: BLOX.BCanvasObject-accessing22962 +Node: BLOX.BCanvasObject-widget protocol24900 +Node: BLOX.BCheckMenuItem26173 +Node: BLOX.BCheckMenuItem class-instance creation26612 +Node: BLOX.BCheckMenuItem-accessing26923 +Node: BLOX.BColorButton27373 +Node: BLOX.BColorButton-accessing27794 +Node: BLOX.BContainer28249 +Node: BLOX.BContainer-accessing28686 +Node: BLOX.BDialog29339 +Node: BLOX.BDialog class-instance creation29952 +Node: BLOX.BDialog class-prompters30855 +Node: BLOX.BDialog-accessing34378 +Node: BLOX.BDialog-widget protocol35572 +Node: BLOX.BDropDown36460 +Node: BLOX.BDropDown-accessing37382 +Node: BLOX.BDropDown-callbacks42632 +Node: BLOX.BDropDown-flexibility43244 +Node: BLOX.BDropDown-list box accessing44725 +Node: BLOX.BDropDown-widget protocol47761 +Node: BLOX.BDropDownEdit48690 +Node: BLOX.BDropDownEdit-accessing49216 +Node: BLOX.BDropDownEdit-accessing-overrides51366 +Node: BLOX.BDropDownEdit-text accessing51669 +Node: BLOX.BDropDownList53065 +Node: BLOX.BDropDownList-accessing53604 +Node: BLOX.BDropDownList-callbacks56277 +Node: BLOX.BDropDownList-list box accessing56963 +Node: BLOX.BEdit57389 +Node: BLOX.BEdit class-instance creation57796 +Node: BLOX.BEdit-accessing58120 +Node: BLOX.BEdit-widget protocol62469 +Node: BLOX.BEmbeddedImage64433 +Node: BLOX.BEmbeddedImage-accessing64774 +Node: BLOX.BEmbeddedText65709 +Node: BLOX.BEmbeddedText-accessing66061 +Node: BLOX.BEventSet68992 +Node: BLOX.BEventSet class-initializing69680 +Node: BLOX.BEventSet-accessing70134 +Node: BLOX.BEventSet-initializing70409 +Node: BLOX.BEventTarget70778 +Node: BLOX.BEventTarget-intercepting events71139 +Node: BLOX.BExtended77221 +Node: BLOX.BExtended-accessing78029 +Node: BLOX.BExtended-customization78279 +Node: BLOX.BForm79279 +Node: BLOX.BForm-accessing79642 +Node: BLOX.BImage81075 +Node: BLOX.BImage class-arrows81650 +Node: BLOX.BImage class-GNU82138 +Node: BLOX.BImage class-icons82378 +Node: BLOX.BImage class-instance creation82877 +Node: BLOX.BImage class-small icons83621 +Node: BLOX.BImage-accessing83989 +Node: BLOX.BImage-image management87103 +Node: BLOX.BImage-widget protocol89615 +Node: BLOX.BLabel89910 +Node: BLOX.BLabel class-initialization90292 +Node: BLOX.BLabel class-instance creation90558 +Node: BLOX.BLabel-accessing90929 +Node: BLOX.BLine95614 +Node: BLOX.BLine-accessing95950 +Node: BLOX.BList96506 +Node: BLOX.BList-accessing96871 +Node: BLOX.BList-widget protocol108753 +Node: BLOX.Blox110122 +Node: BLOX.Blox class-event dispatching111200 +Node: BLOX.Blox class-instance creation112477 +Node: BLOX.Blox class-utility112913 +Node: BLOX.Blox-accessing116036 +Node: BLOX.Blox-basic117376 +Node: BLOX.Blox-creating children117959 +Node: BLOX.Blox-customization118966 +Node: BLOX.Blox-widget protocol119749 +Node: BLOX.BMenu121996 +Node: BLOX.BMenu class-instance creation122384 +Node: BLOX.BMenu-accessing122787 +Node: BLOX.BMenu-callback registration123622 +Node: BLOX.BMenuBar124706 +Node: BLOX.BMenuBar-accessing125031 +Node: BLOX.BMenuItem125252 +Node: BLOX.BMenuItem class-instance creation125732 +Node: BLOX.BMenuItem-accessing126122 +Node: BLOX.BMenuObject126936 +Node: BLOX.BMenuObject-accessing127325 +Node: BLOX.BMenuObject-callback129650 +Node: BLOX.BOval130592 +Node: BLOX.BPolyline130906 +Node: BLOX.BPolyline-accessing131235 +Node: BLOX.BPopupMenu133558 +Node: BLOX.BPopupMenu-widget protocol133965 +Node: BLOX.BPopupWindow134168 +Node: BLOX.BPopupWindow-geometry management134761 +Node: BLOX.BPrimitive136815 +Node: BLOX.BPrimitive-accessing137196 +Node: BLOX.BProgress137413 +Node: BLOX.BProgress-accessing137735 +Node: BLOX.BRadioButton138967 +Node: BLOX.BRadioButton-accessing139306 +Node: BLOX.BRadioGroup140180 +Node: BLOX.BRadioGroup-accessing140803 +Node: BLOX.BRadioGroup-widget protocol141264 +Node: BLOX.BRectangle141580 +Node: BLOX.BRectangle-accessing141918 +Node: BLOX.BScrolledCanvas142392 +Node: BLOX.BSpline142811 +Node: BLOX.BSpline-accessing143138 +Node: BLOX.BText143555 +Node: BLOX.BText class-accessing144170 +Node: BLOX.BText class-instance creation144499 +Node: BLOX.BText-accessing144853 +Node: BLOX.BText-attributes150686 +Node: BLOX.BText-geometry management151943 +Node: BLOX.BText-images153508 +Node: BLOX.BText-inserting text155176 +Node: BLOX.BText-position & lines157178 +Node: BLOX.BTextAttributes158971 +Node: BLOX.BTextAttributes class-instance-creation shortcuts159427 +Node: BLOX.BTextAttributes-colors162272 +Node: BLOX.BTextAttributes-setting attributes163347 +Node: BLOX.BTextBindings167487 +Node: BLOX.BTextBindings class-instance creation168021 +Node: BLOX.BTextTags168259 +Node: BLOX.BToggle168618 +Node: BLOX.BToggle-accessing168997 +Node: BLOX.BTransientWindow169881 +Node: BLOX.BTransientWindow class-instance creation170390 +Node: BLOX.BTransientWindow-widget protocol170995 +Node: BLOX.BViewport171573 +Node: BLOX.BViewport-accessing172004 +Node: BLOX.BViewport-scrollbars172250 +Node: BLOX.BWidget173196 +Node: BLOX.BWidget class-popups173755 +Node: BLOX.BWidget-accessing174996 +Node: BLOX.BWidget-customization179597 +Node: BLOX.BWidget-geometry management181212 +Node: BLOX.BWidget-widget protocol197704 +Node: BLOX.BWindow199730 +Node: BLOX.BWindow class-instance creation200173 +Node: BLOX.BWindow-accessing200596 +Node: BLOX.BWindow-widget protocol203304 +Node: BLOX.Gui208000 +Node: BLOX.Gui-accessing208390 +Node: TCP208637 +Node: TCP.AbstractSocket209977 +Node: TCP.AbstractSocket class-defaults210583 +Node: TCP.AbstractSocket class-instance creation211457 +Node: TCP.AbstractSocket class-timed-out operations212040 +Node: TCP.AbstractSocket-accessing213019 +Node: TCP.AbstractSocket-printing214152 +Node: TCP.AbstractSocket-socket options214448 +Node: TCP.AbstractSocket-stream protocol215369 +Node: TCP.AbstractSocket-testing215930 +Node: TCP.AbstractSocketImpl216194 +Node: TCP.AbstractSocketImpl class-abstract216776 +Node: TCP.AbstractSocketImpl class-socket creation217222 +Node: TCP.AbstractSocketImpl-accessing217552 +Node: TCP.AbstractSocketImpl-asynchronous operations218701 +Node: TCP.AbstractSocketImpl-socket operations219431 +Node: TCP.AbstractSocketImpl-socket options221385 +Node: TCP.Datagram223347 +Node: TCP.Datagram class-instance creation223658 +Node: TCP.Datagram-accessing224957 +Node: TCP.DatagramSocket225978 +Node: TCP.DatagramSocket class-accessing226477 +Node: TCP.DatagramSocket class-initialization227114 +Node: TCP.DatagramSocket class-instance creation227464 +Node: TCP.DatagramSocket-accessing228467 +Node: TCP.DatagramSocket-direct operations229358 +Node: TCP.DatagramSocketImpl229661 +Node: TCP.DatagramSocketImpl class-parameters230084 +Node: TCP.DatagramSocketImpl-accessing230373 +Node: TCP.DatagramSocketImpl-socket operations230792 +Node: TCP.ICMPSocketImpl231932 +Node: TCP.ICMPSocketImpl class-implementation232231 +Node: TCP.IPAddress232515 +Node: TCP.IPAddress class-constants232969 +Node: TCP.IPAddress class-initialization233280 +Node: TCP.IPAddress class-instance creation233981 +Node: TCP.IPAddress-accessing237844 +Node: TCP.IPAddress-printing238970 +Node: TCP.MulticastSocket239185 +Node: TCP.MulticastSocket-instance creation239488 +Node: TCP.MulticastSocketImpl240307 +Node: TCP.MulticastSocketImpl-multicasting240627 +Node: TCP.OOBSocketImpl241402 +Node: TCP.OOBSocketImpl class-implementation241756 +Node: TCP.OOBSocketImpl-implementation242076 +Node: TCP.RawSocketImpl242471 +Node: TCP.RawSocketImpl class-parameters242763 +Node: TCP.ReadBuffer242991 +Node: TCP.ReadBuffer class-instance creation243453 +Node: TCP.ReadBuffer-buffer handling243910 +Node: TCP.ServerSocket244865 +Node: TCP.ServerSocket class-instance creation245236 +Node: TCP.ServerSocket-accessing246698 +Node: TCP.ServerSocket-initializing247609 +Node: TCP.Socket247990 +Node: TCP.Socket class-accessing248540 +Node: TCP.Socket class-instance creation249331 +Node: TCP.Socket class-tests250161 +Node: TCP.Socket class-well known ports251708 +Node: TCP.Socket-accessing253784 +Node: TCP.Socket-out-of-band data254083 +Node: TCP.Socket-printing254381 +Node: TCP.Socket-stream protocol254637 +Node: TCP.SocketAddress256718 +Node: TCP.SocketAddress class-abstract257182 +Node: TCP.SocketAddress class-accessing257612 +Node: TCP.SocketAddress class-host name lookup259606 +Node: TCP.SocketAddress class-initialization260398 +Node: TCP.SocketAddress-accessing261594 +Node: TCP.SocketImpl262587 +Node: TCP.SocketImpl class-parameters262959 +Node: TCP.SocketImpl-abstract263207 +Node: TCP.SocketImpl-socket operations263526 +Node: TCP.TCPSocketImpl263954 +Node: TCP.TCPSocketImpl class-implementation264291 +Node: TCP.TCPSocketImpl-implementation264611 +Node: TCP.UDPSocketImpl264926 +Node: TCP.UDPSocketImpl class-implementation265271 +Node: TCP.UDPSocketImpl-multicasting265589 +Node: TCP.WriteBuffer266483 +Node: TCP.WriteBuffer-buffer handling266887 +Node: I18N267327 +Node: I18N.BigEndianFileStream269888 +Node: I18N.EncodedStream270236 +Node: I18N.EncodedStream class-initializing270764 +Node: I18N.EncodedStream class-instance creation271635 +Node: I18N.Encoder272545 +Node: I18N.Encoder class-instance creation273097 +Node: I18N.Encoder-stream operations273521 +Node: I18N.Encoders.ComposeUCS4BE274577 +Node: I18N.Encoders.ComposeUCS4BE-stream operation275102 +Node: I18N.Encoders.ComposeUCS4LE275439 +Node: I18N.Encoders.ComposeUCS4LE-stream operation275977 +Node: I18N.Encoders.FromUCS4276317 +Node: I18N.Encoders.FromUCS4-stream operation276824 +Node: I18N.Encoders.FromUTF7277097 +Node: I18N.Encoders.FromUTF7 class-initialization277479 +Node: I18N.Encoders.FromUTF7-converting277791 +Node: I18N.Encoders.Iconv278463 +Node: I18N.Encoders.Iconv-stream operation279137 +Node: I18N.Encoders.SplitUCS4BE279534 +Node: I18N.Encoders.SplitUCS4BE-stream operation280074 +Node: I18N.Encoders.SplitUCS4LE280645 +Node: I18N.Encoders.SplitUCS4LE-stream operation281189 +Node: I18N.Encoders.ToUCS4281760 +Node: I18N.Encoders.ToUCS4-stream operation282292 +Node: I18N.Encoders.ToUTF7282568 +Node: I18N.Encoders.ToUTF7 class-initialization283077 +Node: I18N.Encoders.ToUTF7-conversion283379 +Node: I18N.FileStreamSegment283815 +Node: I18N.FileStreamSegment-basic284241 +Node: I18N.IncompleteSequenceError284547 +Node: I18N.IncompleteSequenceError-accessing285100 +Node: I18N.InvalidCharsetError285352 +Node: I18N.InvalidCharsetError-accessing285785 +Node: I18N.InvalidSequenceError286021 +Node: I18N.InvalidSequenceError-accessing286442 +Node: I18N.LcMessages286682 +Node: I18N.LcMessages class-accessing287128 +Node: I18N.LcMessages-accessing287501 +Node: I18N.LcMessages-opening MO files288226 +Node: I18N.LcMessagesCatalog289010 +Node: I18N.LcMessagesDomain289375 +Node: I18N.LcMessagesDomain class-opening MO files290475 +Node: I18N.LcMessagesDomain-handling the cache290852 +Node: I18N.LcMessagesDomain-querying291377 +Node: I18N.LcMessagesDummyDomain292486 +Node: I18N.LcMessagesMoFileVersion0292895 +Node: I18N.LcMessagesMoFileVersion0 class-documentation293578 +Node: I18N.LcMessagesMoFileVersion0 class-plurals301525 +Node: I18N.LcMessagesMoFileVersion0-flushing the cache302161 +Node: I18N.LcMessagesTerritoryDomain302588 +Node: I18N.LcMessagesTerritoryDomain class-instance creation303052 +Node: I18N.LcMonetary303418 +Node: I18N.LcMonetary class-accessing303942 +Node: I18N.LcMonetary-printing304314 +Node: I18N.LcMonetaryISO305099 +Node: I18N.LcMonetaryISO class-accessing305383 +Node: I18N.LcNumeric305645 +Node: I18N.LcNumeric class-accessing306110 +Node: I18N.LcNumeric-printing306477 +Node: I18N.LcPrintFormats306967 +Node: I18N.LcPrintFormats-printing307520 +Node: I18N.LcTime308016 +Node: I18N.LcTime class-accessing308504 +Node: I18N.LcTime-printing308856 +Node: I18N.LcTime-tests311142 +Node: I18N.Locale311362 +Node: I18N.Locale class-initialization312017 +Node: I18N.Locale class-instance creation312391 +Node: I18N.Locale-subobjects313030 +Node: I18N.LocaleConventions313657 +Node: I18N.LocaleConventions class-accessing314093 +Node: I18N.LocaleConventions-accessing314803 +Node: I18N.LocaleData315120 +Node: I18N.LocaleData class-accessing315622 +Node: I18N.LocaleData class-database316679 +Node: I18N.LocaleData-accessing317136 +Node: I18N.LocaleData-initialization318295 +Node: I18N.RTEAlternativeNode318681 +Node: I18N.RTEAlternativeNode class-compiling319046 +Node: I18N.RTEAlternativeNode-computing319452 +Node: I18N.RTEBinaryNode320014 +Node: I18N.RTEBinaryNode class-compiling320408 +Node: I18N.RTEBinaryNode-compiling320762 +Node: I18N.RTEBinaryNode-computing321059 +Node: I18N.RTELiteralNode321587 +Node: I18N.RTELiteralNode class-initializing321940 +Node: I18N.RTELiteralNode-computing322239 +Node: I18N.RTENegationNode322655 +Node: I18N.RTENegationNode class-initializing323015 +Node: I18N.RTENegationNode-computing323316 +Node: I18N.RTEParameterNode323759 +Node: I18N.RTEParameterNode-computing324072 +Node: I18N.RunTimeExpression324375 +Node: I18N.RunTimeExpression class-compiling324813 +Node: I18N.RunTimeExpression class-initializing325423 +Node: I18N.RunTimeExpression class-instance creation325784 +Node: I18N.RunTimeExpression-computing326145 +Node: XML326556 +Node: Building a DOM from XML326768 +Node: Building XML332149 +Node: Using DTDs335314 +Node: XSL Processing338565 +Node: Attributions339987 +Node: Class index340323 +Node: Method index346794 +Node: Cross-reference428927  End Tag Table diff -rNu smalltalk-2.1.9/doc/gst-libs.info-1 smalltalk-2.1.10/doc/gst-libs.info-1 --- smalltalk-2.1.9/doc/gst-libs.info-1 2004-10-02 15:37:27.000000000 +0200 +++ smalltalk-2.1.10/doc/gst-libs.info-1 2005-02-02 15:11:09.000000000 +0100 @@ -1,13 +1,13 @@ -This is gst-libs.info, produced by makeinfo version 4.7 from -/home/utente/devel-gst-stable/doc/gst-libs-fixed.texi. +This is gst-libs.info, produced by makeinfo version 4.6 from +/Users/bonzinip/devel/gst-stable/+build/doc/../../doc/gst-libs-fixed.texi. INFO-DIR-SECTION GNU Smalltalk START-INFO-DIR-ENTRY * Libraries: (gst-libs). The GNU Smalltalk class libraries. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 9 January 2004. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 2 February 2005. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -23,20 +23,16 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. -  File: gst-libs.info, Node: Top, Up: (DIR) -GNU Smalltalk Library Reference -******************************* -GNU Smalltalk Library Reference - This document describes the class libraries that are distributed +This document describes the class libraries that are distributed together with the GNU Smalltalk programming language. - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 9 January 2004. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 2 February 2005. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -52,7 +48,6 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. - * Menu: * BLOX:: The GUI library @@ -67,8 +62,8 @@  File: gst-libs.info, Node: BLOX, Next: TCP, Prev: Top, Up: Top -1 BLOX -****** +BLOX +**** * Menu: @@ -184,8 +179,8 @@  File: gst-libs.info, Node: BLOX.BArc, Next: BLOX.BBalloon, Up: BLOX -1.1 BLOX.BArc -============= +BLOX.BArc +========= Defined in namespace BLOX Superclass: BLOX.BOval @@ -200,8 +195,8 @@  File: gst-libs.info, Node: BLOX.BArc-accessing, Up: BLOX.BArc -1.1.1 BLOX.BArc: accessing --------------------------- +BLOX.BArc: accessing +-------------------- endAngle Answer the ending of the angular range that is occupied by the arc, @@ -255,8 +250,8 @@  File: gst-libs.info, Node: BLOX.BBalloon, Next: BLOX.BBoundingBox, Prev: BLOX.BArc, Up: BLOX -1.2 BLOX.BBalloon -================= +BLOX.BBalloon +============= Defined in namespace BLOX Superclass: BLOX.BEventSet @@ -273,8 +268,8 @@  File: gst-libs.info, Node: BLOX.BBalloon class-accessing, Next: BLOX.BBalloon-accessing, Up: BLOX.BBalloon -1.2.1 BLOX.BBalloon class: accessing ------------------------------------- +BLOX.BBalloon class: accessing +------------------------------ balloonDelayTime Answer the time after which the balloon is shown (default is half @@ -290,8 +285,8 @@  File: gst-libs.info, Node: BLOX.BBalloon-accessing, Next: BLOX.BBalloon-initializing, Prev: BLOX.BBalloon class-accessing, Up: BLOX.BBalloon -1.2.2 BLOX.BBalloon: accessing ------------------------------- +BLOX.BBalloon: accessing +------------------------ shown Answer whether the receiver's balloon is displayed @@ -306,8 +301,8 @@  File: gst-libs.info, Node: BLOX.BBalloon-initializing, Prev: BLOX.BBalloon-accessing, Up: BLOX.BBalloon -1.2.3 BLOX.BBalloon: initializing ---------------------------------- +BLOX.BBalloon: initializing +--------------------------- initialize: aBWidget Initialize the event sets for the receiver @@ -316,8 +311,8 @@  File: gst-libs.info, Node: BLOX.BBoundingBox, Next: BLOX.BButton, Prev: BLOX.BBalloon, Up: BLOX -1.3 BLOX.BBoundingBox -===================== +BLOX.BBoundingBox +================= Defined in namespace BLOX Superclass: BLOX.BCanvasObject @@ -333,8 +328,8 @@  File: gst-libs.info, Node: BLOX.BBoundingBox-accessing, Up: BLOX.BBoundingBox -1.3.1 BLOX.BBoundingBox: accessing ----------------------------------- +BLOX.BBoundingBox: accessing +---------------------------- boundingBox Answer a Rectangle enclosing all of the receiver @@ -400,8 +395,8 @@  File: gst-libs.info, Node: BLOX.BButton, Next: BLOX.BButtonLike, Prev: BLOX.BBoundingBox, Up: BLOX -1.4 BLOX.BButton -================ +BLOX.BButton +============ Defined in namespace BLOX Superclass: BLOX.BPrimitive @@ -418,8 +413,8 @@  File: gst-libs.info, Node: BLOX.BButton class-instance creation, Next: BLOX.BButton-accessing, Up: BLOX.BButton -1.4.1 BLOX.BButton class: instance creation -------------------------------------------- +BLOX.BButton class: instance creation +------------------------------------- new: parent label: label Answer a new BButton widget laid inside the given parent widget, @@ -429,8 +424,8 @@  File: gst-libs.info, Node: BLOX.BButton-accessing, Prev: BLOX.BButton class-instance creation, Up: BLOX.BButton -1.4.2 BLOX.BButton: accessing ------------------------------ +BLOX.BButton: accessing +----------------------- backgroundColor Answer the value of the backgroundColor option for the widget. @@ -520,8 +515,8 @@  File: gst-libs.info, Node: BLOX.BButtonLike, Next: BLOX.BCanvas, Prev: BLOX.BButton, Up: BLOX -1.5 BLOX.BButtonLike -==================== +BLOX.BButtonLike +================ Defined in namespace BLOX Superclass: BLOX.BExtended @@ -535,8 +530,8 @@  File: gst-libs.info, Node: BLOX.BButtonLike-accessing, Up: BLOX.BButtonLike -1.5.1 BLOX.BButtonLike: accessing ---------------------------------- +BLOX.BButtonLike: accessing +--------------------------- callback Answer a DirectedMessage that is sent when the receiver is clicked, @@ -560,8 +555,8 @@  File: gst-libs.info, Node: BLOX.BCanvas, Next: BLOX.BCanvasObject, Prev: BLOX.BButtonLike, Up: BLOX -1.6 BLOX.BCanvas -================ +BLOX.BCanvas +============ Defined in namespace BLOX Superclass: BLOX.BViewport @@ -585,8 +580,8 @@  File: gst-libs.info, Node: BLOX.BCanvas-accessing, Next: BLOX.BCanvas-geometry management, Up: BLOX.BCanvas -1.6.1 BLOX.BCanvas: accessing ------------------------------ +BLOX.BCanvas: accessing +----------------------- backgroundColor Answer the value of the backgroundColor option for the widget. @@ -612,8 +607,8 @@  File: gst-libs.info, Node: BLOX.BCanvas-geometry management, Next: BLOX.BCanvas-widget protocol, Prev: BLOX.BCanvas-accessing, Up: BLOX.BCanvas -1.6.2 BLOX.BCanvas: geometry management ---------------------------------------- +BLOX.BCanvas: geometry management +--------------------------------- addChild: child The widget identified by child has been added to the receiver. @@ -666,8 +661,8 @@  File: gst-libs.info, Node: BLOX.BCanvas-widget protocol, Prev: BLOX.BCanvas-geometry management, Up: BLOX.BCanvas -1.6.3 BLOX.BCanvas: widget protocol ------------------------------------ +BLOX.BCanvas: widget protocol +----------------------------- at: aPoint Selects the topmost item in the canvas overlapping the point given @@ -711,8 +706,8 @@  File: gst-libs.info, Node: BLOX.BCanvasObject, Next: BLOX.BCheckMenuItem, Prev: BLOX.BCanvas, Up: BLOX -1.7 BLOX.BCanvasObject -====================== +BLOX.BCanvasObject +================== Defined in namespace BLOX Superclass: BLOX.BEventTarget @@ -729,8 +724,8 @@  File: gst-libs.info, Node: BLOX.BCanvasObject class-instance creation, Next: BLOX.BCanvasObject-accessing, Up: BLOX.BCanvasObject -1.7.1 BLOX.BCanvasObject class: instance creation -------------------------------------------------- +BLOX.BCanvasObject class: instance creation +------------------------------------------- new This method should not be called for instances of this class. @@ -743,8 +738,8 @@  File: gst-libs.info, Node: BLOX.BCanvasObject-accessing, Next: BLOX.BCanvasObject-widget protocol, Prev: BLOX.BCanvasObject class-instance creation, Up: BLOX.BCanvasObject -1.7.2 BLOX.BCanvasObject: accessing ------------------------------------ +BLOX.BCanvasObject: accessing +----------------------------- blox Answer the parent canvas of the receiver @@ -797,8 +792,8 @@  File: gst-libs.info, Node: BLOX.BCanvasObject-widget protocol, Prev: BLOX.BCanvasObject-accessing, Up: BLOX.BCanvasObject -1.7.3 BLOX.BCanvasObject: widget protocol ------------------------------------------ +BLOX.BCanvasObject: widget protocol +----------------------------------- create If the object has not been created yet and has been initialized @@ -836,8 +831,8 @@  File: gst-libs.info, Node: BLOX.BCheckMenuItem, Next: BLOX.BColorButton, Prev: BLOX.BCanvasObject, Up: BLOX -1.8 BLOX.BCheckMenuItem -======================= +BLOX.BCheckMenuItem +=================== Defined in namespace BLOX Superclass: BLOX.BMenuItem @@ -853,8 +848,8 @@  File: gst-libs.info, Node: BLOX.BCheckMenuItem class-instance creation, Next: BLOX.BCheckMenuItem-accessing, Up: BLOX.BCheckMenuItem -1.8.1 BLOX.BCheckMenuItem class: instance creation --------------------------------------------------- +BLOX.BCheckMenuItem class: instance creation +-------------------------------------------- new: parent This method should not be called for instances of this class. @@ -863,8 +858,8 @@  File: gst-libs.info, Node: BLOX.BCheckMenuItem-accessing, Prev: BLOX.BCheckMenuItem class-instance creation, Up: BLOX.BCheckMenuItem -1.8.2 BLOX.BCheckMenuItem: accessing ------------------------------------- +BLOX.BCheckMenuItem: accessing +------------------------------ invokeCallback Generate a synthetic callback @@ -880,8 +875,8 @@  File: gst-libs.info, Node: BLOX.BColorButton, Next: BLOX.BContainer, Prev: BLOX.BCheckMenuItem, Up: BLOX -1.9 BLOX.BColorButton -===================== +BLOX.BColorButton +================= Defined in namespace BLOX Superclass: BLOX.BButtonLike @@ -896,8 +891,8 @@  File: gst-libs.info, Node: BLOX.BColorButton-accessing, Up: BLOX.BColorButton -1.9.1 BLOX.BColorButton: accessing ----------------------------------- +BLOX.BColorButton: accessing +---------------------------- color Set the color that the receiver is painted in. @@ -914,8 +909,8 @@  File: gst-libs.info, Node: BLOX.BContainer, Next: BLOX.BDialog, Prev: BLOX.BColorButton, Up: BLOX -1.10 BLOX.BContainer -==================== +BLOX.BContainer +=============== Defined in namespace BLOX Superclass: BLOX.BForm @@ -931,8 +926,8 @@  File: gst-libs.info, Node: BLOX.BContainer-accessing, Up: BLOX.BContainer -1.10.1 BLOX.BContainer: accessing ---------------------------------- +BLOX.BContainer: accessing +-------------------------- setVerticalLayout: aBoolean Answer whether the container will align the widgets vertically or @@ -947,8 +942,8 @@  File: gst-libs.info, Node: BLOX.BDialog, Next: BLOX.BDropDown, Prev: BLOX.BContainer, Up: BLOX -1.11 BLOX.BDialog -================= +BLOX.BDialog +============ Defined in namespace BLOX Superclass: BLOX.BForm @@ -968,8 +963,8 @@  File: gst-libs.info, Node: BLOX.BDialog class-instance creation, Next: BLOX.BDialog class-prompters, Up: BLOX.BDialog -1.11.1 BLOX.BDialog class: instance creation --------------------------------------------- +BLOX.BDialog class: instance creation +------------------------------------- new: parent Answer a new dialog handler (containing a label widget and some @@ -991,8 +986,8 @@  File: gst-libs.info, Node: BLOX.BDialog class-prompters, Next: BLOX.BDialog-accessing, Prev: BLOX.BDialog class-instance creation, Up: BLOX.BDialog -1.11.2 BLOX.BDialog class: prompters ------------------------------------- +BLOX.BDialog class: prompters +----------------------------- chooseColor: parent label: aLabel default: color Prompt for a color. The dialog box is created with the given @@ -1049,8 +1044,8 @@  File: gst-libs.info, Node: BLOX.BDialog-accessing, Next: BLOX.BDialog-widget protocol, Prev: BLOX.BDialog class-prompters, Up: BLOX.BDialog -1.11.3 BLOX.BDialog: accessing ------------------------------- +BLOX.BDialog: accessing +----------------------- addButton: aLabel receiver: anObject index: anInt Add a button to the dialog box that, when clicked, will cause the @@ -1080,8 +1075,8 @@  File: gst-libs.info, Node: BLOX.BDialog-widget protocol, Prev: BLOX.BDialog-accessing, Up: BLOX.BDialog -1.11.4 BLOX.BDialog: widget protocol ------------------------------------- +BLOX.BDialog: widget protocol +----------------------------- center Center the dialog box's parent window in the screen @@ -1108,8 +1103,8 @@  File: gst-libs.info, Node: BLOX.BDropDown, Next: BLOX.BDropDownEdit, Prev: BLOX.BDialog, Up: BLOX -1.12 BLOX.BDropDown -=================== +BLOX.BDropDown +============== Defined in namespace BLOX Superclass: BLOX.BExtended @@ -1133,8 +1128,8 @@  File: gst-libs.info, Node: BLOX.BDropDown-accessing, Next: BLOX.BDropDown-callbacks, Up: BLOX.BDropDown -1.12.1 BLOX.BDropDown: accessing --------------------------------- +BLOX.BDropDown: accessing +------------------------- backgroundColor Answer the value of the backgroundColor for the widget, which in @@ -1240,8 +1235,8 @@  File: gst-libs.info, Node: BLOX.BDropDown-callbacks, Next: BLOX.BDropDown-flexibility, Prev: BLOX.BDropDown-accessing, Up: BLOX.BDropDown -1.12.2 BLOX.BDropDown: callbacks --------------------------------- +BLOX.BDropDown: callbacks +------------------------- callback Answer a DirectedMessage that is sent when the receiver is clicked, @@ -1259,8 +1254,8 @@  File: gst-libs.info, Node: BLOX.BDropDown-flexibility, Next: BLOX.BDropDown-list box accessing, Prev: BLOX.BDropDown-callbacks, Up: BLOX.BDropDown -1.12.3 BLOX.BDropDown: flexibility ----------------------------------- +BLOX.BDropDown: flexibility +--------------------------- createList Create the popup widget to be used for the `drop-down list'. It @@ -1302,8 +1297,8 @@  File: gst-libs.info, Node: BLOX.BDropDown-list box accessing, Next: BLOX.BDropDown-widget protocol, Prev: BLOX.BDropDown-flexibility, Up: BLOX.BDropDown -1.12.4 BLOX.BDropDown: list box accessing ------------------------------------------ +BLOX.BDropDown: list box accessing +---------------------------------- add: anObject afterIndex: index Add an element with the given value after another element whose @@ -1383,8 +1378,8 @@  File: gst-libs.info, Node: BLOX.BDropDown-widget protocol, Prev: BLOX.BDropDown-list box accessing, Up: BLOX.BDropDown -1.12.5 BLOX.BDropDown: widget protocol --------------------------------------- +BLOX.BDropDown: widget protocol +------------------------------- dropdown Force the pop-up list widget to be visible. @@ -1411,8 +1406,8 @@  File: gst-libs.info, Node: BLOX.BDropDownEdit, Next: BLOX.BDropDownList, Prev: BLOX.BDropDown, Up: BLOX -1.13 BLOX.BDropDownEdit -======================= +BLOX.BDropDownEdit +================== Defined in namespace BLOX Superclass: BLOX.BDropDown @@ -1429,8 +1424,8 @@  File: gst-libs.info, Node: BLOX.BDropDownEdit-accessing, Next: BLOX.BDropDownEdit-accessing-overrides, Up: BLOX.BDropDownEdit -1.13.1 BLOX.BDropDownEdit: accessing ------------------------------------- +BLOX.BDropDownEdit: accessing +----------------------------- backgroundColor: aColor Set the value of the backgroundColor option for the widget. @@ -1475,8 +1470,8 @@  File: gst-libs.info, Node: BLOX.BDropDownEdit-accessing-overrides, Next: BLOX.BDropDownEdit-text accessing, Prev: BLOX.BDropDownEdit-accessing, Up: BLOX.BDropDownEdit -1.13.2 BLOX.BDropDownEdit: accessing-overrides ----------------------------------------------- +BLOX.BDropDownEdit: accessing-overrides +--------------------------------------- text Answer the text shown in the widget @@ -1485,8 +1480,8 @@  File: gst-libs.info, Node: BLOX.BDropDownEdit-text accessing, Prev: BLOX.BDropDownEdit-accessing-overrides, Up: BLOX.BDropDownEdit -1.13.3 BLOX.BDropDownEdit: text accessing ------------------------------------------ +BLOX.BDropDownEdit: text accessing +---------------------------------- insertAtEnd: aString Clear the selection and append aString at the end of the text @@ -1524,8 +1519,8 @@  File: gst-libs.info, Node: BLOX.BDropDownList, Next: BLOX.BEdit, Prev: BLOX.BDropDownEdit, Up: BLOX -1.14 BLOX.BDropDownList -======================= +BLOX.BDropDownList +================== Defined in namespace BLOX Superclass: BLOX.BDropDown @@ -1543,8 +1538,8 @@  File: gst-libs.info, Node: BLOX.BDropDownList-accessing, Next: BLOX.BDropDownList-callbacks, Up: BLOX.BDropDownList -1.14.1 BLOX.BDropDownList: accessing ------------------------------------- +BLOX.BDropDownList: accessing +----------------------------- backgroundColor: aColor Set the value of the backgroundColor for the widget, which in this @@ -1598,8 +1593,8 @@  File: gst-libs.info, Node: BLOX.BDropDownList-callbacks, Next: BLOX.BDropDownList-list box accessing, Prev: BLOX.BDropDownList-accessing, Up: BLOX.BDropDownList -1.14.2 BLOX.BDropDownList: callbacks ------------------------------------- +BLOX.BDropDownList: callbacks +----------------------------- callback: aReceiver message: aSymbol Set up so that aReceiver is sent the aSymbol message (the name of @@ -1616,8 +1611,8 @@  File: gst-libs.info, Node: BLOX.BDropDownList-list box accessing, Prev: BLOX.BDropDownList-callbacks, Up: BLOX.BDropDownList -1.14.3 BLOX.BDropDownList: list box accessing ---------------------------------------------- +BLOX.BDropDownList: list box accessing +-------------------------------------- index Answer the value of the index option for the widget. Since it is @@ -1628,8 +1623,8 @@  File: gst-libs.info, Node: BLOX.BEdit, Next: BLOX.BEmbeddedImage, Prev: BLOX.BDropDownList, Up: BLOX -1.15 BLOX.BEdit -=============== +BLOX.BEdit +========== Defined in namespace BLOX Superclass: BLOX.BPrimitive @@ -1645,8 +1640,8 @@  File: gst-libs.info, Node: BLOX.BEdit class-instance creation, Next: BLOX.BEdit-accessing, Up: BLOX.BEdit -1.15.1 BLOX.BEdit class: instance creation ------------------------------------------- +BLOX.BEdit class: instance creation +----------------------------------- new: parent contents: aString Answer a new BEdit widget laid inside the given parent widget, @@ -1656,8 +1651,8 @@  File: gst-libs.info, Node: BLOX.BEdit-accessing, Next: BLOX.BEdit-widget protocol, Prev: BLOX.BEdit class-instance creation, Up: BLOX.BEdit -1.15.2 BLOX.BEdit: accessing ----------------------------- +BLOX.BEdit: accessing +--------------------- backgroundColor Answer the value of the backgroundColor option for the widget. @@ -1756,8 +1751,8 @@  File: gst-libs.info, Node: BLOX.BEdit-widget protocol, Prev: BLOX.BEdit-accessing, Up: BLOX.BEdit -1.15.3 BLOX.BEdit: widget protocol ----------------------------------- +BLOX.BEdit: widget protocol +--------------------------- destroyed Private - The receiver has been destroyed, clear the corresponding @@ -1818,8 +1813,8 @@  File: gst-libs.info, Node: BLOX.BEmbeddedImage, Next: BLOX.BEmbeddedText, Prev: BLOX.BEdit, Up: BLOX -1.16 BLOX.BEmbeddedImage -======================== +BLOX.BEmbeddedImage +=================== Defined in namespace BLOX Superclass: BLOX.BBoundingBox @@ -1833,8 +1828,8 @@  File: gst-libs.info, Node: BLOX.BEmbeddedImage-accessing, Up: BLOX.BEmbeddedImage -1.16.1 BLOX.BEmbeddedImage: accessing -------------------------------------- +BLOX.BEmbeddedImage: accessing +------------------------------ copyInto: aBlox Answer a new BCanvasObject identical to this but displayed into @@ -1860,8 +1855,8 @@  File: gst-libs.info, Node: BLOX.BEmbeddedText, Next: BLOX.BEventSet, Prev: BLOX.BEmbeddedImage, Up: BLOX -1.17 BLOX.BEmbeddedText -======================= +BLOX.BEmbeddedText +================== Defined in namespace BLOX Superclass: BLOX.BBoundingBox @@ -1875,8 +1870,8 @@  File: gst-libs.info, Node: BLOX.BEmbeddedText-accessing, Up: BLOX.BEmbeddedText -1.17.1 BLOX.BEmbeddedText: accessing ------------------------------------- +BLOX.BEmbeddedText: accessing +----------------------------- font Answer the value of the font option for the canvas object. @@ -1938,8 +1933,8 @@  File: gst-libs.info, Node: BLOX.BEventSet, Next: BLOX.BEventTarget, Prev: BLOX.BEmbeddedText, Up: BLOX -1.18 BLOX.BEventSet -=================== +BLOX.BEventSet +============== Defined in namespace BLOX Superclass: BLOX.BEventTarget @@ -1959,8 +1954,8 @@  File: gst-libs.info, Node: BLOX.BEventSet class-initializing, Next: BLOX.BEventSet-accessing, Up: BLOX.BEventSet -1.18.1 BLOX.BEventSet class: initializing ------------------------------------------ +BLOX.BEventSet class: initializing +---------------------------------- new This method should not be called for instances of this class. @@ -1974,8 +1969,8 @@  File: gst-libs.info, Node: BLOX.BEventSet-accessing, Next: BLOX.BEventSet-initializing, Prev: BLOX.BEventSet class-initializing, Up: BLOX.BEventSet -1.18.2 BLOX.BEventSet: accessing --------------------------------- +BLOX.BEventSet: accessing +------------------------- widget Answer the widget to which the receiver is attached. @@ -1984,8 +1979,8 @@  File: gst-libs.info, Node: BLOX.BEventSet-initializing, Prev: BLOX.BEventSet-accessing, Up: BLOX.BEventSet -1.18.3 BLOX.BEventSet: initializing ------------------------------------ +BLOX.BEventSet: initializing +---------------------------- initialize: aBWidget Initialize the receiver's event handlers to attach to aBWidget. @@ -1996,8 +1991,8 @@  File: gst-libs.info, Node: BLOX.BEventTarget, Next: BLOX.BExtended, Prev: BLOX.BEventSet, Up: BLOX -1.19 BLOX.BEventTarget -====================== +BLOX.BEventTarget +================= Defined in namespace BLOX Superclass: Object @@ -2012,8 +2007,8 @@  File: gst-libs.info, Node: BLOX.BEventTarget-intercepting events, Up: BLOX.BEventTarget -1.19.1 BLOX.BEventTarget: intercepting events ---------------------------------------------- +BLOX.BEventTarget: intercepting events +-------------------------------------- addEventSet: aBEventSetSublass Add to the receiver the event handlers implemented by an instance @@ -2145,8 +2140,8 @@  File: gst-libs.info, Node: BLOX.BExtended, Next: BLOX.BForm, Prev: BLOX.BEventTarget, Up: BLOX -1.20 BLOX.BExtended -=================== +BLOX.BExtended +============== Defined in namespace BLOX Superclass: BLOX.BWidget @@ -2168,8 +2163,8 @@  File: gst-libs.info, Node: BLOX.BExtended-accessing, Next: BLOX.BExtended-customization, Up: BLOX.BExtended -1.20.1 BLOX.BExtended: accessing --------------------------------- +BLOX.BExtended: accessing +------------------------- asPrimitiveWidget Answer the primitive widget that implements the receiver. @@ -2178,8 +2173,8 @@  File: gst-libs.info, Node: BLOX.BExtended-customization, Prev: BLOX.BExtended-accessing, Up: BLOX.BExtended -1.20.2 BLOX.BExtended: customization ------------------------------------- +BLOX.BExtended: customization +----------------------------- create After this method is called (the call is made automatically) the @@ -2201,8 +2196,8 @@  File: gst-libs.info, Node: BLOX.BForm, Next: BLOX.BImage, Prev: BLOX.BExtended, Up: BLOX -1.21 BLOX.BForm -=============== +BLOX.BForm +========== Defined in namespace BLOX Superclass: BLOX.BPrimitive @@ -2217,8 +2212,8 @@  File: gst-libs.info, Node: BLOX.BForm-accessing, Up: BLOX.BForm -1.21.1 BLOX.BForm: accessing ----------------------------- +BLOX.BForm: accessing +--------------------- backgroundColor Answer the value of the backgroundColor option for the widget. @@ -2258,8 +2253,8 @@  File: gst-libs.info, Node: BLOX.BImage, Next: BLOX.BLabel, Prev: BLOX.BForm, Up: BLOX -1.22 BLOX.BImage -================ +BLOX.BImage +=========== Defined in namespace BLOX Superclass: BLOX.BPrimitive @@ -2280,8 +2275,8 @@  File: gst-libs.info, Node: BLOX.BImage class-arrows, Next: BLOX.BImage class-GNU, Up: BLOX.BImage -1.22.1 BLOX.BImage class: arrows --------------------------------- +BLOX.BImage class: arrows +------------------------- downArrow Answer the XPM representation of a 12x12 arrow pointing downwards. @@ -2299,8 +2294,8 @@  File: gst-libs.info, Node: BLOX.BImage class-GNU, Next: BLOX.BImage class-icons, Prev: BLOX.BImage class-arrows, Up: BLOX.BImage -1.22.2 BLOX.BImage class: GNU ------------------------------ +BLOX.BImage class: GNU +---------------------- gnu Answer the XPM representation of a 48x48 GNU. @@ -2309,8 +2304,8 @@  File: gst-libs.info, Node: BLOX.BImage class-icons, Next: BLOX.BImage class-instance creation, Prev: BLOX.BImage class-GNU, Up: BLOX.BImage -1.22.3 BLOX.BImage class: icons -------------------------------- +BLOX.BImage class: icons +------------------------ exclaim Answer the XPM representation of a 32x32 exclamation mark icon. @@ -2328,8 +2323,8 @@  File: gst-libs.info, Node: BLOX.BImage class-instance creation, Next: BLOX.BImage class-small icons, Prev: BLOX.BImage class-icons, Up: BLOX.BImage -1.22.4 BLOX.BImage class: instance creation -------------------------------------------- +BLOX.BImage class: instance creation +------------------------------------ new: parent data: aString Answer a new BImage widget laid inside the given parent widget, @@ -2348,8 +2343,8 @@  File: gst-libs.info, Node: BLOX.BImage class-small icons, Next: BLOX.BImage-accessing, Prev: BLOX.BImage class-instance creation, Up: BLOX.BImage -1.22.5 BLOX.BImage class: small icons -------------------------------------- +BLOX.BImage class: small icons +------------------------------ directory Answer the Base-64 GIF representation of a `directory folder' icon. @@ -2361,8 +2356,8 @@  File: gst-libs.info, Node: BLOX.BImage-accessing, Next: BLOX.BImage-image management, Prev: BLOX.BImage class-small icons, Up: BLOX.BImage -1.22.6 BLOX.BImage: accessing ------------------------------ +BLOX.BImage: accessing +---------------------- backgroundColor Answer the value of the backgroundColor option for the widget. @@ -2434,8 +2429,8 @@  File: gst-libs.info, Node: BLOX.BImage-image management, Next: BLOX.BImage-widget protocol, Prev: BLOX.BImage-accessing, Up: BLOX.BImage -1.22.7 BLOX.BImage: image management ------------------------------------- +BLOX.BImage: image management +----------------------------- blank Blank the corresponding image @@ -2504,8 +2499,8 @@  File: gst-libs.info, Node: BLOX.BImage-widget protocol, Prev: BLOX.BImage-image management, Up: BLOX.BImage -1.22.8 BLOX.BImage: widget protocol ------------------------------------ +BLOX.BImage: widget protocol +---------------------------- destroyed Private - The receiver has been destroyed, clear the corresponding @@ -2515,8 +2510,8 @@  File: gst-libs.info, Node: BLOX.BLabel, Next: BLOX.BLine, Prev: BLOX.BImage, Up: BLOX -1.23 BLOX.BLabel -================ +BLOX.BLabel +=========== Defined in namespace BLOX Superclass: BLOX.BPrimitive @@ -2532,8 +2527,8 @@  File: gst-libs.info, Node: BLOX.BLabel class-initialization, Next: BLOX.BLabel class-instance creation, Up: BLOX.BLabel -1.23.1 BLOX.BLabel class: initialization ----------------------------------------- +BLOX.BLabel class: initialization +--------------------------------- initialize Private - Initialize the receiver's class variables. @@ -2542,8 +2537,8 @@  File: gst-libs.info, Node: BLOX.BLabel class-instance creation, Next: BLOX.BLabel-accessing, Prev: BLOX.BLabel class-initialization, Up: BLOX.BLabel -1.23.2 BLOX.BLabel class: instance creation -------------------------------------------- +BLOX.BLabel class: instance creation +------------------------------------ new: parent label: label Answer a new BLabel widget laid inside the given parent widget, @@ -2553,8 +2548,8 @@  File: gst-libs.info, Node: BLOX.BLabel-accessing, Prev: BLOX.BLabel class-instance creation, Up: BLOX.BLabel -1.23.3 BLOX.BLabel: accessing ------------------------------ +BLOX.BLabel: accessing +---------------------- alignment Answer the value of the anchor option for the widget. Specifies @@ -2650,8 +2645,8 @@  File: gst-libs.info, Node: BLOX.BLine, Next: BLOX.BList, Prev: BLOX.BLabel, Up: BLOX -1.24 BLOX.BLine -=============== +BLOX.BLine +========== Defined in namespace BLOX Superclass: BLOX.BBoundingBox @@ -2666,8 +2661,8 @@  File: gst-libs.info, Node: BLOX.BLine-accessing, Up: BLOX.BLine -1.24.1 BLOX.BLine: accessing ----------------------------- +BLOX.BLine: accessing +--------------------- cap Answer the way in which caps are to be drawn at the endpoints of @@ -2688,8 +2683,8 @@  File: gst-libs.info, Node: BLOX.BList, Next: BLOX.Blox, Prev: BLOX.BLine, Up: BLOX -1.25 BLOX.BList -=============== +BLOX.BList +========== Defined in namespace BLOX Superclass: BLOX.BViewport @@ -2705,8 +2700,8 @@  File: gst-libs.info, Node: BLOX.BList-accessing, Next: BLOX.BList-widget protocol, Up: BLOX.BList -1.25.1 BLOX.BList: accessing ----------------------------- +BLOX.BList: accessing +--------------------- add: anObject afterIndex: index Add an element with the given value after another element whose @@ -2954,8 +2949,8 @@  File: gst-libs.info, Node: BLOX.BList-widget protocol, Prev: BLOX.BList-accessing, Up: BLOX.BList -1.25.2 BLOX.BList: widget protocol ----------------------------------- +BLOX.BList: widget protocol +--------------------------- callback Answer a DirectedMessage that is sent when the active item in the @@ -2996,8 +2991,8 @@  File: gst-libs.info, Node: BLOX.Blox, Next: BLOX.BMenu, Prev: BLOX.BList, Up: BLOX -1.26 BLOX.Blox -============== +BLOX.Blox +========= Defined in namespace BLOX Superclass: BLOX.BEventTarget @@ -3027,10 +3022,10 @@  File: gst-libs.info, Node: BLOX.Blox class-event dispatching, Next: BLOX.Blox class-instance creation, Up: BLOX.Blox -1.26.1 BLOX.Blox class: event dispatching ------------------------------------------ +BLOX.Blox class: event dispatching +---------------------------------- - balances + balances dispatchEvents If this is the outermost dispatching loop that is started, @@ -3049,7 +3044,7 @@ widget (which can be any kind of BWidget, but will be typically a BWindow). - balances + balances terminateMainLoop Terminate the event dispatching loop if this call to @@ -3064,8 +3059,8 @@  File: gst-libs.info, Node: BLOX.Blox class-instance creation, Next: BLOX.Blox class-utility, Prev: BLOX.Blox class-event dispatching, Up: BLOX.Blox -1.26.2 BLOX.Blox class: instance creation ------------------------------------------ +BLOX.Blox class: instance creation +---------------------------------- new This method should not be called for instances of this class. @@ -3078,8 +3073,8 @@  File: gst-libs.info, Node: BLOX.Blox class-utility, Next: BLOX.Blox-accessing, Prev: BLOX.Blox class-instance creation, Up: BLOX.Blox -1.26.3 BLOX.Blox class: utility -------------------------------- +BLOX.Blox class: utility +------------------------ active Answer the currently active Blox, or nil if the focus does not @@ -3164,8 +3159,8 @@  File: gst-libs.info, Node: BLOX.Blox-accessing, Next: BLOX.Blox-basic, Prev: BLOX.Blox class-utility, Up: BLOX.Blox -1.26.4 BLOX.Blox: accessing ---------------------------- +BLOX.Blox: accessing +-------------------- state Answer the value of the state option for the widget. Specifies @@ -3193,8 +3188,8 @@  File: gst-libs.info, Node: BLOX.Blox-basic, Next: BLOX.Blox-creating children, Prev: BLOX.Blox-accessing, Up: BLOX.Blox -1.26.5 BLOX.Blox: basic ------------------------ +BLOX.Blox: basic +---------------- deepCopy It does not make sense to make a copy, because it would make data @@ -3212,8 +3207,8 @@  File: gst-libs.info, Node: BLOX.Blox-creating children, Next: BLOX.Blox-customization, Prev: BLOX.Blox-basic, Up: BLOX.Blox -1.26.6 BLOX.Blox: creating children ------------------------------------ +BLOX.Blox: creating children +---------------------------- make: array Create children of the receiver. Answer a Dictionary of the @@ -3238,8 +3233,8 @@  File: gst-libs.info, Node: BLOX.Blox-customization, Next: BLOX.Blox-widget protocol, Prev: BLOX.Blox-creating children, Up: BLOX.Blox -1.26.7 BLOX.Blox: customization -------------------------------- +BLOX.Blox: customization +------------------------ addChild: child The widget identified by child has been added to the receiver. @@ -3257,8 +3252,8 @@  File: gst-libs.info, Node: BLOX.Blox-widget protocol, Prev: BLOX.Blox-customization, Up: BLOX.Blox -1.26.8 BLOX.Blox: widget protocol ---------------------------------- +BLOX.Blox: widget protocol +-------------------------- asPrimitiveWidget Answer the primitive widget that implements the receiver. @@ -3326,8 +3321,8 @@  File: gst-libs.info, Node: BLOX.BMenu, Next: BLOX.BMenuBar, Prev: BLOX.Blox, Up: BLOX -1.27 BLOX.BMenu -=============== +BLOX.BMenu +========== Defined in namespace BLOX Superclass: BLOX.BMenuObject @@ -3343,8 +3338,8 @@  File: gst-libs.info, Node: BLOX.BMenu class-instance creation, Next: BLOX.BMenu-accessing, Up: BLOX.BMenu -1.27.1 BLOX.BMenu class: instance creation ------------------------------------------- +BLOX.BMenu class: instance creation +----------------------------------- new: parent label: label Add a new menu to the parent window's menu bar, with `label' as @@ -3355,8 +3350,8 @@  File: gst-libs.info, Node: BLOX.BMenu-accessing, Next: BLOX.BMenu-callback registration, Prev: BLOX.BMenu class-instance creation, Up: BLOX.BMenu -1.27.2 BLOX.BMenu: accessing ----------------------------- +BLOX.BMenu: accessing +--------------------- label Answer the value of the label option for the widget. Specifies a @@ -3376,8 +3371,8 @@  File: gst-libs.info, Node: BLOX.BMenu-callback registration, Prev: BLOX.BMenu-accessing, Up: BLOX.BMenu -1.27.3 BLOX.BMenu: callback registration ----------------------------------------- +BLOX.BMenu: callback registration +--------------------------------- addLine Add a separator item at the end of the menu @@ -3407,8 +3402,8 @@  File: gst-libs.info, Node: BLOX.BMenuBar, Next: BLOX.BMenuItem, Prev: BLOX.BMenu, Up: BLOX -1.28 BLOX.BMenuBar -================== +BLOX.BMenuBar +============= Defined in namespace BLOX Superclass: BLOX.BMenuObject @@ -3422,8 +3417,8 @@  File: gst-libs.info, Node: BLOX.BMenuBar-accessing, Up: BLOX.BMenuBar -1.28.1 BLOX.BMenuBar: accessing -------------------------------- +BLOX.BMenuBar: accessing +------------------------ add: aMenu Add aMenu to the menu bar @@ -3435,8 +3430,8 @@  File: gst-libs.info, Node: BLOX.BMenuItem, Next: BLOX.BMenuObject, Prev: BLOX.BMenuBar, Up: BLOX -1.29 BLOX.BMenuItem -=================== +BLOX.BMenuItem +============== Defined in namespace BLOX Superclass: BLOX.BMenuObject @@ -3453,8 +3448,8 @@  File: gst-libs.info, Node: BLOX.BMenuItem class-instance creation, Next: BLOX.BMenuItem-accessing, Up: BLOX.BMenuItem -1.29.1 BLOX.BMenuItem class: instance creation ----------------------------------------------- +BLOX.BMenuItem class: instance creation +--------------------------------------- new: parent Add a new separator item to the specified menu. @@ -3467,8 +3462,8 @@  File: gst-libs.info, Node: BLOX.BMenuItem-accessing, Prev: BLOX.BMenuItem class-instance creation, Up: BLOX.BMenuItem -1.29.2 BLOX.BMenuItem: accessing --------------------------------- +BLOX.BMenuItem: accessing +------------------------- label Answer the value of the label option for the widget. Specifies a @@ -3488,8 +3483,8 @@  File: gst-libs.info, Node: BLOX.BMenuObject, Next: BLOX.BOval, Prev: BLOX.BMenuItem, Up: BLOX -1.30 BLOX.BMenuObject -===================== +BLOX.BMenuObject +================ Defined in namespace BLOX Superclass: BLOX.Blox @@ -3505,8 +3500,8 @@  File: gst-libs.info, Node: BLOX.BMenuObject-accessing, Next: BLOX.BMenuObject-callback, Up: BLOX.BMenuObject -1.30.1 BLOX.BMenuObject: accessing ----------------------------------- +BLOX.BMenuObject: accessing +--------------------------- activeBackground Answer the value of the activeBackground option for the widget. @@ -3563,8 +3558,8 @@  File: gst-libs.info, Node: BLOX.BMenuObject-callback, Prev: BLOX.BMenuObject-accessing, Up: BLOX.BMenuObject -1.30.2 BLOX.BMenuObject: callback ---------------------------------- +BLOX.BMenuObject: callback +-------------------------- callback Answer a DirectedMessage that is sent when the receiver is @@ -3589,8 +3584,8 @@  File: gst-libs.info, Node: BLOX.BOval, Next: BLOX.BPolyline, Prev: BLOX.BMenuObject, Up: BLOX -1.31 BLOX.BOval -=============== +BLOX.BOval +========== Defined in namespace BLOX Superclass: BLOX.BRectangle @@ -3603,8 +3598,8 @@  File: gst-libs.info, Node: BLOX.BPolyline, Next: BLOX.BPopupMenu, Prev: BLOX.BOval, Up: BLOX -1.32 BLOX.BPolyline -=================== +BLOX.BPolyline +============== Defined in namespace BLOX Superclass: BLOX.BCanvasObject @@ -3618,8 +3613,8 @@  File: gst-libs.info, Node: BLOX.BPolyline-accessing, Up: BLOX.BPolyline -1.32.1 BLOX.BPolyline: accessing --------------------------------- +BLOX.BPolyline: accessing +------------------------- boundingBox Answer `boundingBox'. @@ -3687,8 +3682,8 @@  File: gst-libs.info, Node: BLOX.BPopupMenu, Next: BLOX.BPopupWindow, Prev: BLOX.BPolyline, Up: BLOX -1.33 BLOX.BPopupMenu -==================== +BLOX.BPopupMenu +=============== Defined in namespace BLOX Superclass: BLOX.BMenu @@ -3703,8 +3698,8 @@  File: gst-libs.info, Node: BLOX.BPopupMenu-widget protocol, Up: BLOX.BPopupMenu -1.33.1 BLOX.BPopupMenu: widget protocol ---------------------------------------- +BLOX.BPopupMenu: widget protocol +-------------------------------- popup Generate a synthetic menu popup event @@ -3713,8 +3708,8 @@  File: gst-libs.info, Node: BLOX.BPopupWindow, Next: BLOX.BPrimitive, Prev: BLOX.BPopupMenu, Up: BLOX -1.34 BLOX.BPopupWindow -====================== +BLOX.BPopupWindow +================= Defined in namespace BLOX Superclass: BLOX.BWindow @@ -3732,8 +3727,8 @@  File: gst-libs.info, Node: BLOX.BPopupWindow-geometry management, Up: BLOX.BPopupWindow -1.34.1 BLOX.BPopupWindow: geometry management ---------------------------------------------- +BLOX.BPopupWindow: geometry management +-------------------------------------- addChild: w Private - The widget identified by child has been added to the @@ -3791,8 +3786,8 @@  File: gst-libs.info, Node: BLOX.BPrimitive, Next: BLOX.BProgress, Prev: BLOX.BPopupWindow, Up: BLOX -1.35 BLOX.BPrimitive -==================== +BLOX.BPrimitive +=============== Defined in namespace BLOX Superclass: BLOX.BWidget @@ -3807,8 +3802,8 @@  File: gst-libs.info, Node: BLOX.BPrimitive-accessing, Up: BLOX.BPrimitive -1.35.1 BLOX.BPrimitive: accessing ---------------------------------- +BLOX.BPrimitive: accessing +-------------------------- asPrimitiveWidget Answer the primitive widget that implements the receiver. @@ -3817,8 +3812,8 @@  File: gst-libs.info, Node: BLOX.BProgress, Next: BLOX.BRadioButton, Prev: BLOX.BPrimitive, Up: BLOX -1.36 BLOX.BProgress -=================== +BLOX.BProgress +============== Defined in namespace BLOX Superclass: BLOX.BExtended @@ -3832,8 +3827,8 @@  File: gst-libs.info, Node: BLOX.BProgress-accessing, Up: BLOX.BProgress -1.36.1 BLOX.BProgress: accessing --------------------------------- +BLOX.BProgress: accessing +------------------------- backgroundColor Answer the background color of the widget. This is used for the @@ -3872,8 +3867,8 @@  File: gst-libs.info, Node: BLOX.BRadioButton, Next: BLOX.BRadioGroup, Prev: BLOX.BProgress, Up: BLOX -1.37 BLOX.BRadioButton -====================== +BLOX.BRadioButton +================= Defined in namespace BLOX Superclass: BLOX.BButton @@ -3887,8 +3882,8 @@  File: gst-libs.info, Node: BLOX.BRadioButton-accessing, Up: BLOX.BRadioButton -1.37.1 BLOX.BRadioButton: accessing ------------------------------------ +BLOX.BRadioButton: accessing +---------------------------- callback: aReceiver message: aSymbol Set up so that aReceiver is sent the aSymbol message (the name of @@ -3911,8 +3906,8 @@  File: gst-libs.info, Node: BLOX.BRadioGroup, Next: BLOX.BRectangle, Prev: BLOX.BRadioButton, Up: BLOX -1.38 BLOX.BRadioGroup -===================== +BLOX.BRadioGroup +================ Defined in namespace BLOX Superclass: BLOX.BContainer @@ -3931,8 +3926,8 @@  File: gst-libs.info, Node: BLOX.BRadioGroup-accessing, Next: BLOX.BRadioGroup-widget protocol, Up: BLOX.BRadioGroup -1.38.1 BLOX.BRadioGroup: accessing ----------------------------------- +BLOX.BRadioGroup: accessing +--------------------------- value Answer the index of the button that is currently selected, 1 being @@ -3947,8 +3942,8 @@  File: gst-libs.info, Node: BLOX.BRadioGroup-widget protocol, Prev: BLOX.BRadioGroup-accessing, Up: BLOX.BRadioGroup -1.38.2 BLOX.BRadioGroup: widget protocol ----------------------------------------- +BLOX.BRadioGroup: widget protocol +--------------------------------- destroyed Private - The receiver has been destroyed, clear the corresponding @@ -3958,8 +3953,8 @@  File: gst-libs.info, Node: BLOX.BRectangle, Next: BLOX.BScrolledCanvas, Prev: BLOX.BRadioGroup, Up: BLOX -1.39 BLOX.BRectangle -==================== +BLOX.BRectangle +=============== Defined in namespace BLOX Superclass: BLOX.BBoundingBox @@ -3973,8 +3968,8 @@  File: gst-libs.info, Node: BLOX.BRectangle-accessing, Up: BLOX.BRectangle -1.39.1 BLOX.BRectangle: accessing ---------------------------------- +BLOX.BRectangle: accessing +-------------------------- outlineColor Answer the color with which the outline of the rectangle is drawn. @@ -3992,8 +3987,8 @@  File: gst-libs.info, Node: BLOX.BScrolledCanvas, Next: BLOX.BSpline, Prev: BLOX.BRectangle, Up: BLOX -1.40 BLOX.BScrolledCanvas -========================= +BLOX.BScrolledCanvas +==================== Defined in namespace BLOX Superclass: BLOX.BCanvas @@ -4007,8 +4002,8 @@  File: gst-libs.info, Node: BLOX.BSpline, Next: BLOX.BText, Prev: BLOX.BScrolledCanvas, Up: BLOX -1.41 BLOX.BSpline -================= +BLOX.BSpline +============ Defined in namespace BLOX Superclass: BLOX.BPolyline @@ -4022,8 +4017,8 @@  File: gst-libs.info, Node: BLOX.BSpline-accessing, Up: BLOX.BSpline -1.41.1 BLOX.BSpline: accessing ------------------------------- +BLOX.BSpline: accessing +----------------------- smoothness Answer the degree of smoothness desired for curves. Each spline @@ -4037,8 +4032,8 @@  File: gst-libs.info, Node: BLOX.BText, Next: BLOX.BTextAttributes, Prev: BLOX.BSpline, Up: BLOX -1.42 BLOX.BText -=============== +BLOX.BText +========== Defined in namespace BLOX Superclass: BLOX.BViewport @@ -4059,8 +4054,8 @@  File: gst-libs.info, Node: BLOX.BText class-accessing, Next: BLOX.BText class-instance creation, Up: BLOX.BText -1.42.1 BLOX.BText class: accessing ----------------------------------- +BLOX.BText class: accessing +--------------------------- emacsLike Answer whether we are using Emacs or Motif key bindings. @@ -4072,8 +4067,8 @@  File: gst-libs.info, Node: BLOX.BText class-instance creation, Next: BLOX.BText-accessing, Prev: BLOX.BText class-accessing, Up: BLOX.BText -1.42.2 BLOX.BText class: instance creation ------------------------------------------- +BLOX.BText class: instance creation +----------------------------------- newReadOnly: parent Answer a new read-only text widget (read-only is achieved simply @@ -4083,8 +4078,8 @@  File: gst-libs.info, Node: BLOX.BText-accessing, Next: BLOX.BText-attributes, Prev: BLOX.BText class-instance creation, Up: BLOX.BText -1.42.3 BLOX.BText: accessing ----------------------------- +BLOX.BText: accessing +--------------------- backgroundColor Answer the value of the backgroundColor option for the widget. @@ -4211,8 +4206,8 @@  File: gst-libs.info, Node: BLOX.BText-attributes, Next: BLOX.BText-geometry management, Prev: BLOX.BText-accessing, Up: BLOX.BText -1.42.4 BLOX.BText: attributes ------------------------------ +BLOX.BText: attributes +---------------------- insertAtEnd: aString attribute: attr Clear the selection and append aString at the end of the widget. @@ -4242,8 +4237,8 @@  File: gst-libs.info, Node: BLOX.BText-geometry management, Next: BLOX.BText-images, Prev: BLOX.BText-attributes, Up: BLOX.BText -1.42.5 BLOX.BText: geometry management --------------------------------------- +BLOX.BText: geometry management +------------------------------- child: child height: value Set the height of the given child to be `value' pixels. @@ -4293,8 +4288,8 @@  File: gst-libs.info, Node: BLOX.BText-images, Next: BLOX.BText-inserting text, Prev: BLOX.BText-geometry management, Up: BLOX.BText -1.42.6 BLOX.BText: images -------------------------- +BLOX.BText: images +------------------ insertImage: anObject Insert an image where the insertion point currently lies in the @@ -4329,8 +4324,8 @@  File: gst-libs.info, Node: BLOX.BText-inserting text, Next: BLOX.BText-position & lines, Prev: BLOX.BText-images, Up: BLOX.BText -1.42.7 BLOX.BText: inserting text ---------------------------------- +BLOX.BText: inserting text +-------------------------- insertAtEnd: aString Clear the selection and append aString at the end of the widget. @@ -4388,8 +4383,8 @@  File: gst-libs.info, Node: BLOX.BText-position & lines, Prev: BLOX.BText-inserting text, Up: BLOX.BText -1.42.8 BLOX.BText: position & lines ------------------------------------ +BLOX.BText: position & lines +---------------------------- charsInLine: number Answer how many characters are there in the number-th line @@ -4444,8 +4439,8 @@  File: gst-libs.info, Node: BLOX.BTextAttributes, Next: BLOX.BTextBindings, Prev: BLOX.BText, Up: BLOX -1.43 BLOX.BTextAttributes -========================= +BLOX.BTextAttributes +==================== Defined in namespace BLOX Superclass: Object @@ -4461,8 +4456,8 @@  File: gst-libs.info, Node: BLOX.BTextAttributes class-instance-creation shortcuts, Next: BLOX.BTextAttributes-colors, Up: BLOX.BTextAttributes -1.43.1 BLOX.BTextAttributes class: instance-creation shortcuts --------------------------------------------------------------- +BLOX.BTextAttributes class: instance-creation shortcuts +------------------------------------------------------- backgroundColor: color Create a new BTextAttributes object resulting in text with the @@ -4541,8 +4536,8 @@  File: gst-libs.info, Node: BLOX.BTextAttributes-colors, Next: BLOX.BTextAttributes-setting attributes, Prev: BLOX.BTextAttributes class-instance-creation shortcuts, Up: BLOX.BTextAttributes -1.43.2 BLOX.BTextAttributes: colors ------------------------------------ +BLOX.BTextAttributes: colors +---------------------------- black Set the receiver so that applying it results in black text. @@ -4581,8 +4576,8 @@  File: gst-libs.info, Node: BLOX.BTextAttributes-setting attributes, Prev: BLOX.BTextAttributes-colors, Up: BLOX.BTextAttributes -1.43.3 BLOX.BTextAttributes: setting attributes ------------------------------------------------ +BLOX.BTextAttributes: setting attributes +---------------------------------------- backgroundColor Answer the value of the backgroundColor option for the text. @@ -4679,8 +4674,8 @@  File: gst-libs.info, Node: BLOX.BTextBindings, Next: BLOX.BTextTags, Prev: BLOX.BTextAttributes, Up: BLOX -1.44 BLOX.BTextBindings -======================= +BLOX.BTextBindings +================== Defined in namespace BLOX Superclass: BLOX.BEventTarget @@ -4697,8 +4692,8 @@  File: gst-libs.info, Node: BLOX.BTextBindings class-instance creation, Up: BLOX.BTextBindings -1.44.1 BLOX.BTextBindings class: instance creation --------------------------------------------------- +BLOX.BTextBindings class: instance creation +------------------------------------------- new Create a new instance of the receiver. @@ -4707,8 +4702,8 @@  File: gst-libs.info, Node: BLOX.BTextTags, Next: BLOX.BToggle, Prev: BLOX.BTextBindings, Up: BLOX -1.45 BLOX.BTextTags -=================== +BLOX.BTextTags +============== Defined in namespace BLOX Superclass: Object @@ -4721,8 +4716,8 @@  File: gst-libs.info, Node: BLOX.BToggle, Next: BLOX.BTransientWindow, Prev: BLOX.BTextTags, Up: BLOX -1.46 BLOX.BToggle -================= +BLOX.BToggle +============ Defined in namespace BLOX Superclass: BLOX.BButton @@ -4737,8 +4732,8 @@  File: gst-libs.info, Node: BLOX.BToggle-accessing, Up: BLOX.BToggle -1.46.1 BLOX.BToggle: accessing ------------------------------- +BLOX.BToggle: accessing +----------------------- callback: aReceiver message: aSymbol Set up so that aReceiver is sent the aSymbol message (the name of @@ -4765,8 +4760,8 @@  File: gst-libs.info, Node: BLOX.BTransientWindow, Next: BLOX.BViewport, Prev: BLOX.BToggle, Up: BLOX -1.47 BLOX.BTransientWindow -========================== +BLOX.BTransientWindow +===================== Defined in namespace BLOX Superclass: BLOX.BWindow @@ -4783,8 +4778,8 @@  File: gst-libs.info, Node: BLOX.BTransientWindow class-instance creation, Next: BLOX.BTransientWindow-widget protocol, Up: BLOX.BTransientWindow -1.47.1 BLOX.BTransientWindow class: instance creation ------------------------------------------------------ +BLOX.BTransientWindow class: instance creation +---------------------------------------------- new This method should not be called for instances of this class. @@ -4801,8 +4796,8 @@  File: gst-libs.info, Node: BLOX.BTransientWindow-widget protocol, Prev: BLOX.BTransientWindow class-instance creation, Up: BLOX.BTransientWindow -1.47.2 BLOX.BTransientWindow: widget protocol ---------------------------------------------- +BLOX.BTransientWindow: widget protocol +-------------------------------------- map Map the window and inform the windows manager that the receiver is @@ -4815,8 +4810,8 @@  File: gst-libs.info, Node: BLOX.BViewport, Next: BLOX.BWidget, Prev: BLOX.BTransientWindow, Up: BLOX -1.48 BLOX.BViewport -=================== +BLOX.BViewport +============== Defined in namespace BLOX Superclass: BLOX.BPrimitive @@ -4832,8 +4827,8 @@  File: gst-libs.info, Node: BLOX.BViewport-accessing, Next: BLOX.BViewport-scrollbars, Up: BLOX.BViewport -1.48.1 BLOX.BViewport: accessing --------------------------------- +BLOX.BViewport: accessing +------------------------- connected Private - Answer the name of Tk widget for the connected widget. @@ -4842,8 +4837,8 @@  File: gst-libs.info, Node: BLOX.BViewport-scrollbars, Prev: BLOX.BViewport-accessing, Up: BLOX.BViewport -1.48.2 BLOX.BViewport: scrollbars ---------------------------------- +BLOX.BViewport: scrollbars +-------------------------- horizontal Answer whether an horizontal scrollbar is drawn in the widget if @@ -4878,8 +4873,8 @@  File: gst-libs.info, Node: BLOX.BWidget, Next: BLOX.BWindow, Prev: BLOX.BViewport, Up: BLOX -1.49 BLOX.BWidget -================= +BLOX.BWidget +============ Defined in namespace BLOX Superclass: BLOX.Blox @@ -4898,8 +4893,8 @@  File: gst-libs.info, Node: BLOX.BWidget class-popups, Next: BLOX.BWidget-accessing, Up: BLOX.BWidget -1.49.1 BLOX.BWidget class: popups ---------------------------------- +BLOX.BWidget class: popups +-------------------------- new Create an instance of the receiver inside a BPopupWindow; do not @@ -4924,8 +4919,8 @@  File: gst-libs.info, Node: BLOX.BWidget-accessing, Next: BLOX.BWidget-customization, Prev: BLOX.BWidget class-popups, Up: BLOX.BWidget -1.49.2 BLOX.BWidget: accessing ------------------------------- +BLOX.BWidget: accessing +----------------------- borderWidth Answer the value of the borderWidth option for the widget. @@ -5011,8 +5006,8 @@  File: gst-libs.info, Node: BLOX.BWidget-customization, Next: BLOX.BWidget-geometry management, Prev: BLOX.BWidget-accessing, Up: BLOX.BWidget -1.49.3 BLOX.BWidget: customization ----------------------------------- +BLOX.BWidget: customization +--------------------------- addChild: child The widget identified by child has been added to the receiver. @@ -5047,8 +5042,8 @@  File: gst-libs.info, Node: BLOX.BWidget-geometry management, Next: BLOX.BWidget-widget protocol, Prev: BLOX.BWidget-customization, Up: BLOX.BWidget -1.49.4 BLOX.BWidget: geometry management ----------------------------------------- +BLOX.BWidget: geometry management +--------------------------------- boundingBox Answer a Rectangle containing the bounding box of the receiver @@ -5405,8 +5400,8 @@  File: gst-libs.info, Node: BLOX.BWidget-widget protocol, Prev: BLOX.BWidget-geometry management, Up: BLOX.BWidget -1.49.5 BLOX.BWidget: widget protocol ------------------------------------- +BLOX.BWidget: widget protocol +----------------------------- activate At any given time, one window on each display is designated as the @@ -5451,8 +5446,8 @@  File: gst-libs.info, Node: BLOX.BWindow, Next: BLOX.Gui, Prev: BLOX.BWidget, Up: BLOX -1.50 BLOX.BWindow -================= +BLOX.BWindow +============ Defined in namespace BLOX Superclass: BLOX.BForm @@ -5469,8 +5464,8 @@  File: gst-libs.info, Node: BLOX.BWindow class-instance creation, Next: BLOX.BWindow-accessing, Up: BLOX.BWindow -1.50.1 BLOX.BWindow class: instance creation --------------------------------------------- +BLOX.BWindow class: instance creation +------------------------------------- new Answer a new top-level window. @@ -5486,8 +5481,8 @@  File: gst-libs.info, Node: BLOX.BWindow-accessing, Next: BLOX.BWindow-widget protocol, Prev: BLOX.BWindow class-instance creation, Up: BLOX.BWindow -1.50.2 BLOX.BWindow: accessing ------------------------------- +BLOX.BWindow: accessing +----------------------- callback Answer a DirectedMessage that is sent to verify whether the @@ -5545,8 +5540,8 @@  File: gst-libs.info, Node: BLOX.BWindow-widget protocol, Prev: BLOX.BWindow-accessing, Up: BLOX.BWindow -1.50.3 BLOX.BWindow: widget protocol ------------------------------------- +BLOX.BWindow: widget protocol +----------------------------- center Center the window in the screen @@ -5684,8 +5679,8 @@  File: gst-libs.info, Node: BLOX.Gui, Prev: BLOX.BWindow, Up: BLOX -1.51 BLOX.Gui -============= +BLOX.Gui +======== Defined in namespace BLOX Superclass: Object @@ -5701,8 +5696,8 @@  File: gst-libs.info, Node: BLOX.Gui-accessing, Up: BLOX.Gui -1.51.1 BLOX.Gui: accessing --------------------------- +BLOX.Gui: accessing +------------------- blox Return instance of blox subclass which implements window @@ -5714,8 +5709,8 @@  File: gst-libs.info, Node: TCP, Next: I18N, Prev: BLOX, Up: Top -2 TCP -***** +TCP +*** * Menu: @@ -5774,8 +5769,8 @@  File: gst-libs.info, Node: TCP.AbstractSocket, Next: TCP.AbstractSocketImpl, Up: TCP -2.1 TCP.AbstractSocket -====================== +TCP.AbstractSocket +================== Defined in namespace TCP Superclass: Stream @@ -5795,8 +5790,8 @@  File: gst-libs.info, Node: TCP.AbstractSocket class-defaults, Next: TCP.AbstractSocket class-instance creation, Up: TCP.AbstractSocket -2.1.1 TCP.AbstractSocket class: defaults ----------------------------------------- +TCP.AbstractSocket class: defaults +---------------------------------- defaultAddressClass Answer the default address family to be used. In the library, the @@ -5818,8 +5813,8 @@  File: gst-libs.info, Node: TCP.AbstractSocket class-instance creation, Next: TCP.AbstractSocket class-timed-out operations, Prev: TCP.AbstractSocket class-defaults, Up: TCP.AbstractSocket -2.1.2 TCP.AbstractSocket class: instance creation -------------------------------------------------- +TCP.AbstractSocket class: instance creation +------------------------------------------- new This method should not be called for instances of this class. @@ -5833,8 +5828,8 @@  File: gst-libs.info, Node: TCP.AbstractSocket class-timed-out operations, Next: TCP.AbstractSocket-accessing, Prev: TCP.AbstractSocket class-instance creation, Up: TCP.AbstractSocket -2.1.3 TCP.AbstractSocket class: timed-out operations ----------------------------------------------------- +TCP.AbstractSocket class: timed-out operations +---------------------------------------------- checkPeriod Answer the period that is to elapse between socket polls if data @@ -5859,8 +5854,8 @@  File: gst-libs.info, Node: TCP.AbstractSocket-accessing, Next: TCP.AbstractSocket-printing, Prev: TCP.AbstractSocket class-timed-out operations, Up: TCP.AbstractSocket -2.1.4 TCP.AbstractSocket: accessing ------------------------------------ +TCP.AbstractSocket: accessing +----------------------------- address Answer an IP address that is of common interest (this can be either @@ -5901,8 +5896,8 @@  File: gst-libs.info, Node: TCP.AbstractSocket-printing, Next: TCP.AbstractSocket-socket options, Prev: TCP.AbstractSocket-accessing, Up: TCP.AbstractSocket -2.1.5 TCP.AbstractSocket: printing ----------------------------------- +TCP.AbstractSocket: printing +---------------------------- printOn: aStream Print a representation of the receiver on aStream @@ -5911,8 +5906,8 @@  File: gst-libs.info, Node: TCP.AbstractSocket-socket options, Next: TCP.AbstractSocket-stream protocol, Prev: TCP.AbstractSocket-printing, Up: TCP.AbstractSocket -2.1.6 TCP.AbstractSocket: socket options ----------------------------------------- +TCP.AbstractSocket: socket options +---------------------------------- soLinger Answer the number of seconds that the socket is allowed to wait if @@ -5937,8 +5932,8 @@  File: gst-libs.info, Node: TCP.AbstractSocket-stream protocol, Next: TCP.AbstractSocket-testing, Prev: TCP.AbstractSocket-socket options, Up: TCP.AbstractSocket -2.1.7 TCP.AbstractSocket: stream protocol ------------------------------------------ +TCP.AbstractSocket: stream protocol +----------------------------------- atEnd By default, answer whether the connection is still open. @@ -5955,8 +5950,8 @@  File: gst-libs.info, Node: TCP.AbstractSocket-testing, Prev: TCP.AbstractSocket-stream protocol, Up: TCP.AbstractSocket -2.1.8 TCP.AbstractSocket: testing ---------------------------------- +TCP.AbstractSocket: testing +--------------------------- isExternalStream Answer whether the receiver streams on a file or socket. @@ -5965,8 +5960,8 @@  File: gst-libs.info, Node: TCP.AbstractSocketImpl, Next: TCP.Datagram, Prev: TCP.AbstractSocket, Up: TCP -2.2 TCP.AbstractSocketImpl -========================== +TCP.AbstractSocketImpl +====================== Defined in namespace TCP Superclass: FileDescriptor @@ -5984,8 +5979,8 @@  File: gst-libs.info, Node: TCP.AbstractSocketImpl class-abstract, Next: TCP.AbstractSocketImpl class-socket creation, Up: TCP.AbstractSocketImpl -2.2.1 TCP.AbstractSocketImpl class: abstract --------------------------------------------- +TCP.AbstractSocketImpl class: abstract +-------------------------------------- addressClass Answer the class responsible for handling addresses for the @@ -6001,8 +5996,8 @@  File: gst-libs.info, Node: TCP.AbstractSocketImpl class-socket creation, Next: TCP.AbstractSocketImpl-accessing, Prev: TCP.AbstractSocketImpl class-abstract, Up: TCP.AbstractSocketImpl -2.2.2 TCP.AbstractSocketImpl class: socket creation ---------------------------------------------------- +TCP.AbstractSocketImpl class: socket creation +--------------------------------------------- new Create a socket for the receiver. @@ -6011,8 +6006,8 @@  File: gst-libs.info, Node: TCP.AbstractSocketImpl-accessing, Next: TCP.AbstractSocketImpl-asynchronous operations, Prev: TCP.AbstractSocketImpl class-socket creation, Up: TCP.AbstractSocketImpl -2.2.3 TCP.AbstractSocketImpl: accessing ---------------------------------------- +TCP.AbstractSocketImpl: accessing +--------------------------------- connectTo: ipAddress port: port Connect the receiver to the given IP address and port. `Connecting' @@ -6042,8 +6037,8 @@  File: gst-libs.info, Node: TCP.AbstractSocketImpl-asynchronous operations, Next: TCP.AbstractSocketImpl-socket operations, Prev: TCP.AbstractSocketImpl-accessing, Up: TCP.AbstractSocketImpl -2.2.4 TCP.AbstractSocketImpl: asynchronous operations ------------------------------------------------------ +TCP.AbstractSocketImpl: asynchronous operations +----------------------------------------------- ensureReadable If the file is open, wait until data can be read from it. The wait @@ -6062,8 +6057,8 @@  File: gst-libs.info, Node: TCP.AbstractSocketImpl-socket operations, Next: TCP.AbstractSocketImpl-socket options, Prev: TCP.AbstractSocketImpl-asynchronous operations, Up: TCP.AbstractSocketImpl -2.2.5 TCP.AbstractSocketImpl: socket operations ------------------------------------------------ +TCP.AbstractSocketImpl: socket operations +----------------------------------------- accept: implementationClass Accept a connection on the receiver, and create a new instance of @@ -6122,8 +6117,8 @@  File: gst-libs.info, Node: TCP.AbstractSocketImpl-socket options, Prev: TCP.AbstractSocketImpl-socket operations, Up: TCP.AbstractSocketImpl -2.2.6 TCP.AbstractSocketImpl: socket options --------------------------------------------- +TCP.AbstractSocketImpl: socket options +-------------------------------------- optionAt: opt level: level put: anObject Modify the value of a socket option. The option identifier is in @@ -6169,8 +6164,8 @@  File: gst-libs.info, Node: TCP.Datagram, Next: TCP.DatagramSocket, Prev: TCP.AbstractSocketImpl, Up: TCP -2.3 TCP.Datagram -================ +TCP.Datagram +============ Defined in namespace TCP Superclass: Object @@ -6184,8 +6179,8 @@  File: gst-libs.info, Node: TCP.Datagram class-instance creation, Next: TCP.Datagram-accessing, Up: TCP.Datagram -2.3.1 TCP.Datagram class: instance creation -------------------------------------------- +TCP.Datagram class: instance creation +------------------------------------- data: aByteArray Answer a new datagram with the specified data. @@ -6214,8 +6209,8 @@  File: gst-libs.info, Node: TCP.Datagram-accessing, Prev: TCP.Datagram class-instance creation, Up: TCP.Datagram -2.3.2 TCP.Datagram: accessing ------------------------------ +TCP.Datagram: accessing +----------------------- address Answer the address of the target socket @@ -6251,8 +6246,8 @@  File: gst-libs.info, Node: TCP.DatagramSocket, Next: TCP.DatagramSocketImpl, Prev: TCP.Datagram, Up: TCP -2.4 TCP.DatagramSocket -====================== +TCP.DatagramSocket +================== Defined in namespace TCP Superclass: TCP.AbstractSocket @@ -6269,8 +6264,8 @@  File: gst-libs.info, Node: TCP.DatagramSocket class-accessing, Next: TCP.DatagramSocket class-initialization, Up: TCP.DatagramSocket -2.4.1 TCP.DatagramSocket class: accessing ------------------------------------------ +TCP.DatagramSocket class: accessing +----------------------------------- defaultBufferSize Answer the default maximum size for input datagrams. @@ -6288,8 +6283,8 @@  File: gst-libs.info, Node: TCP.DatagramSocket class-initialization, Next: TCP.DatagramSocket class-instance creation, Prev: TCP.DatagramSocket class-accessing, Up: TCP.DatagramSocket -2.4.2 TCP.DatagramSocket class: initialization ----------------------------------------------- +TCP.DatagramSocket class: initialization +---------------------------------------- initialize Initialize the class to use an input datagram size of 128. @@ -6298,8 +6293,8 @@  File: gst-libs.info, Node: TCP.DatagramSocket class-instance creation, Next: TCP.DatagramSocket-accessing, Prev: TCP.DatagramSocket class-initialization, Up: TCP.DatagramSocket -2.4.3 TCP.DatagramSocket class: instance creation -------------------------------------------------- +TCP.DatagramSocket class: instance creation +------------------------------------------- local: ipAddressOrString port: remotePort Create a new socket and bind it to the given host (passed as a @@ -6323,8 +6318,8 @@  File: gst-libs.info, Node: TCP.DatagramSocket-accessing, Next: TCP.DatagramSocket-direct operations, Prev: TCP.DatagramSocket class-instance creation, Up: TCP.DatagramSocket -2.4.4 TCP.DatagramSocket: accessing ------------------------------------ +TCP.DatagramSocket: accessing +----------------------------- address Answer the local address. @@ -6359,8 +6354,8 @@  File: gst-libs.info, Node: TCP.DatagramSocket-direct operations, Prev: TCP.DatagramSocket-accessing, Up: TCP.DatagramSocket -2.4.5 TCP.DatagramSocket: direct operations -------------------------------------------- +TCP.DatagramSocket: direct operations +------------------------------------- nextFrom: ipAddress port: port Answer the next datagram from the given address and port. @@ -6369,8 +6364,8 @@  File: gst-libs.info, Node: TCP.DatagramSocketImpl, Next: TCP.ICMPSocketImpl, Prev: TCP.DatagramSocket, Up: TCP -2.5 TCP.DatagramSocketImpl -========================== +TCP.DatagramSocketImpl +====================== Defined in namespace TCP Superclass: TCP.AbstractSocketImpl @@ -6385,8 +6380,8 @@  File: gst-libs.info, Node: TCP.DatagramSocketImpl class-parameters, Next: TCP.DatagramSocketImpl-accessing, Up: TCP.DatagramSocketImpl -2.5.1 TCP.DatagramSocketImpl class: parameters ----------------------------------------------- +TCP.DatagramSocketImpl class: parameters +---------------------------------------- socketType Answer the socket type parameter for `create'. @@ -6395,8 +6390,8 @@  File: gst-libs.info, Node: TCP.DatagramSocketImpl-accessing, Next: TCP.DatagramSocketImpl-socket operations, Prev: TCP.DatagramSocketImpl class-parameters, Up: TCP.DatagramSocketImpl -2.5.2 TCP.DatagramSocketImpl: accessing ---------------------------------------- +TCP.DatagramSocketImpl: accessing +--------------------------------- bufferSize Answer the size of the buffer in which datagrams are stored. @@ -6408,8 +6403,8 @@  File: gst-libs.info, Node: TCP.DatagramSocketImpl-socket operations, Prev: TCP.DatagramSocketImpl-accessing, Up: TCP.DatagramSocketImpl -2.5.3 TCP.DatagramSocketImpl: socket operations ------------------------------------------------ +TCP.DatagramSocketImpl: socket operations +----------------------------------------- next Retrieve a datagram from the receiver, answer a new Datagram object @@ -6441,8 +6436,8 @@  File: gst-libs.info, Node: TCP.ICMPSocketImpl, Next: TCP.IPAddress, Prev: TCP.DatagramSocketImpl, Up: TCP -2.6 TCP.ICMPSocketImpl -====================== +TCP.ICMPSocketImpl +================== Defined in namespace TCP Superclass: TCP.RawSocketImpl @@ -6455,8 +6450,8 @@  File: gst-libs.info, Node: TCP.ICMPSocketImpl class-implementation, Up: TCP.ICMPSocketImpl -2.6.1 TCP.ICMPSocketImpl class: implementation ----------------------------------------------- +TCP.ICMPSocketImpl class: implementation +---------------------------------------- addressClass Answer the class that holds network addresses for ICMP sockets, @@ -6466,8 +6461,8 @@  File: gst-libs.info, Node: TCP.IPAddress, Next: TCP.MulticastSocket, Prev: TCP.ICMPSocketImpl, Up: TCP -2.7 TCP.IPAddress -================= +TCP.IPAddress +============= Defined in namespace TCP Superclass: TCP.SocketAddress @@ -6484,8 +6479,8 @@  File: gst-libs.info, Node: TCP.IPAddress class-constants, Next: TCP.IPAddress class-initialization, Up: TCP.IPAddress -2.7.1 TCP.IPAddress class: constants ------------------------------------- +TCP.IPAddress class: constants +------------------------------ addressSize Answer the size of an IPv4 address. @@ -6497,8 +6492,8 @@  File: gst-libs.info, Node: TCP.IPAddress class-initialization, Next: TCP.IPAddress class-instance creation, Prev: TCP.IPAddress class-constants, Up: TCP.IPAddress -2.7.2 TCP.IPAddress class: initialization ------------------------------------------ +TCP.IPAddress class: initialization +----------------------------------- createLocalAddress Answer an object representing a local address in the address @@ -6519,8 +6514,8 @@  File: gst-libs.info, Node: TCP.IPAddress class-instance creation, Next: TCP.IPAddress-accessing, Prev: TCP.IPAddress class-initialization, Up: TCP.IPAddress -2.7.3 TCP.IPAddress class: instance creation --------------------------------------------- +TCP.IPAddress class: instance creation +-------------------------------------- fromArray: parts Answer a new IPAddress from an array of numbers; the numbers are @@ -6590,8 +6585,8 @@  File: gst-libs.info, Node: TCP.IPAddress-accessing, Next: TCP.IPAddress-printing, Prev: TCP.IPAddress class-instance creation, Up: TCP.IPAddress -2.7.4 TCP.IPAddress: accessing ------------------------------- +TCP.IPAddress: accessing +------------------------ addressClass Answer the `address class' of the receiver (see IPAddress @@ -6624,8 +6619,8 @@  File: gst-libs.info, Node: TCP.IPAddress-printing, Prev: TCP.IPAddress-accessing, Up: TCP.IPAddress -2.7.5 TCP.IPAddress: printing ------------------------------ +TCP.IPAddress: printing +----------------------- printOn: aStream Print the receiver in dot notation. @@ -6634,8 +6629,8 @@  File: gst-libs.info, Node: TCP.MulticastSocket, Next: TCP.MulticastSocketImpl, Prev: TCP.IPAddress, Up: TCP -2.8 TCP.MulticastSocket -======================= +TCP.MulticastSocket +=================== Defined in namespace TCP Superclass: TCP.DatagramSocket @@ -6648,8 +6643,8 @@  File: gst-libs.info, Node: TCP.MulticastSocket-instance creation, Up: TCP.MulticastSocket -2.8.1 TCP.MulticastSocket: instance creation --------------------------------------------- +TCP.MulticastSocket: instance creation +-------------------------------------- interface Answer the local device supporting the multicast socket. This is @@ -6678,8 +6673,8 @@  File: gst-libs.info, Node: TCP.MulticastSocketImpl, Next: TCP.OOBSocketImpl, Prev: TCP.MulticastSocket, Up: TCP -2.9 TCP.MulticastSocketImpl -=========================== +TCP.MulticastSocketImpl +======================= Defined in namespace TCP Superclass: TCP.DatagramSocketImpl @@ -6692,8 +6687,8 @@  File: gst-libs.info, Node: TCP.MulticastSocketImpl-multicasting, Up: TCP.MulticastSocketImpl -2.9.1 TCP.MulticastSocketImpl: multicasting -------------------------------------------- +TCP.MulticastSocketImpl: multicasting +------------------------------------- ipMulticastIf Answer the local device for a multicast socket (in the form of an @@ -6721,8 +6716,8 @@  File: gst-libs.info, Node: TCP.OOBSocketImpl, Next: TCP.RawSocketImpl, Prev: TCP.MulticastSocketImpl, Up: TCP -2.10 TCP.OOBSocketImpl -====================== +TCP.OOBSocketImpl +================= Defined in namespace TCP Superclass: TCP.DatagramSocketImpl @@ -6736,8 +6731,8 @@  File: gst-libs.info, Node: TCP.OOBSocketImpl class-implementation, Next: TCP.OOBSocketImpl-implementation, Up: TCP.OOBSocketImpl -2.10.1 TCP.OOBSocketImpl class: implementation ----------------------------------------------- +TCP.OOBSocketImpl class: implementation +--------------------------------------- addressClass Answer the class that holds network addresses for TCP sockets, @@ -6747,8 +6742,8 @@  File: gst-libs.info, Node: TCP.OOBSocketImpl-implementation, Prev: TCP.OOBSocketImpl class-implementation, Up: TCP.OOBSocketImpl -2.10.2 TCP.OOBSocketImpl: implementation ----------------------------------------- +TCP.OOBSocketImpl: implementation +--------------------------------- canRead Answer whether out-of-band data is available on the socket @@ -6761,8 +6756,8 @@  File: gst-libs.info, Node: TCP.RawSocketImpl, Next: TCP.ReadBuffer, Prev: TCP.OOBSocketImpl, Up: TCP -2.11 TCP.RawSocketImpl -====================== +TCP.RawSocketImpl +================= Defined in namespace TCP Superclass: TCP.DatagramSocketImpl @@ -6775,8 +6770,8 @@  File: gst-libs.info, Node: TCP.RawSocketImpl class-parameters, Up: TCP.RawSocketImpl -2.11.1 TCP.RawSocketImpl class: parameters ------------------------------------------- +TCP.RawSocketImpl class: parameters +----------------------------------- socketType Answer the socket type parameter for `create'. @@ -6785,8 +6780,8 @@  File: gst-libs.info, Node: TCP.ReadBuffer, Next: TCP.ServerSocket, Prev: TCP.RawSocketImpl, Up: TCP -2.12 TCP.ReadBuffer -=================== +TCP.ReadBuffer +============== Defined in namespace TCP Superclass: ReadStream @@ -6802,8 +6797,8 @@  File: gst-libs.info, Node: TCP.ReadBuffer class-instance creation, Next: TCP.ReadBuffer-buffer handling, Up: TCP.ReadBuffer -2.12.1 TCP.ReadBuffer class: instance creation ----------------------------------------------- +TCP.ReadBuffer class: instance creation +--------------------------------------- on: aCollection Answer a Stream that uses aCollection as a buffer. You should @@ -6815,8 +6810,8 @@  File: gst-libs.info, Node: TCP.ReadBuffer-buffer handling, Prev: TCP.ReadBuffer class-instance creation, Up: TCP.ReadBuffer -2.12.2 TCP.ReadBuffer: buffer handling --------------------------------------- +TCP.ReadBuffer: buffer handling +------------------------------- atEnd Answer whether the data stream has ended. @@ -6850,8 +6845,8 @@  File: gst-libs.info, Node: TCP.ServerSocket, Next: TCP.Socket, Prev: TCP.ReadBuffer, Up: TCP -2.13 TCP.ServerSocket -===================== +TCP.ServerSocket +================ Defined in namespace TCP Superclass: TCP.AbstractSocket @@ -6866,8 +6861,8 @@  File: gst-libs.info, Node: TCP.ServerSocket class-instance creation, Next: TCP.ServerSocket-accessing, Up: TCP.ServerSocket -2.13.1 TCP.ServerSocket class: instance creation ------------------------------------------------- +TCP.ServerSocket class: instance creation +----------------------------------------- defaultQueueSize Answer the default length of the queue for pending connections. @@ -6902,8 +6897,8 @@  File: gst-libs.info, Node: TCP.ServerSocket-accessing, Next: TCP.ServerSocket-initializing, Prev: TCP.ServerSocket class-instance creation, Up: TCP.ServerSocket -2.13.2 TCP.ServerSocket: accessing ----------------------------------- +TCP.ServerSocket: accessing +--------------------------- accept Accept a new connection and create a new instance of Socket if @@ -6933,8 +6928,8 @@  File: gst-libs.info, Node: TCP.ServerSocket-initializing, Prev: TCP.ServerSocket-accessing, Up: TCP.ServerSocket -2.13.3 TCP.ServerSocket: initializing -------------------------------------- +TCP.ServerSocket: initializing +------------------------------ port: anInteger queueSize: backlog bindTo: localAddr Initialize the ServerSocket so that it serves on the given address @@ -6944,8 +6939,8 @@  File: gst-libs.info, Node: TCP.Socket, Next: TCP.SocketAddress, Prev: TCP.ServerSocket, Up: TCP -2.14 TCP.Socket -=============== +TCP.Socket +========== Defined in namespace TCP Superclass: TCP.AbstractSocket @@ -6965,8 +6960,8 @@  File: gst-libs.info, Node: TCP.Socket class-accessing, Next: TCP.Socket class-instance creation, Up: TCP.Socket -2.14.1 TCP.Socket class: accessing ----------------------------------- +TCP.Socket class: accessing +--------------------------- defaultImplementationClass Answer the default implementation class. Depending on the @@ -6990,8 +6985,8 @@  File: gst-libs.info, Node: TCP.Socket class-instance creation, Next: TCP.Socket class-tests, Prev: TCP.Socket class-accessing, Up: TCP.Socket -2.14.2 TCP.Socket class: instance creation ------------------------------------------- +TCP.Socket class: instance creation +----------------------------------- remote: ipAddressOrString port: remotePort Create a new socket and connect to the given host (passed as a @@ -7009,8 +7004,8 @@  File: gst-libs.info, Node: TCP.Socket class-tests, Next: TCP.Socket class-well known ports, Prev: TCP.Socket class-instance creation, Up: TCP.Socket -2.14.3 TCP.Socket class: tests ------------------------------- +TCP.Socket class: tests +----------------------- loopbackTest Send data from one socket to another on the local machine. Tests @@ -7052,8 +7047,8 @@  File: gst-libs.info, Node: TCP.Socket class-well known ports, Next: TCP.Socket-accessing, Prev: TCP.Socket class-tests, Up: TCP.Socket -2.14.4 TCP.Socket class: well known ports ------------------------------------------ +TCP.Socket class: well known ports +---------------------------------- defaultPortAt: protocol Answer the port that is used (by default) for the given service @@ -7136,8 +7131,8 @@  File: gst-libs.info, Node: TCP.Socket-accessing, Next: TCP.Socket-out-of-band data, Prev: TCP.Socket class-well known ports, Up: TCP.Socket -2.14.5 TCP.Socket: accessing ----------------------------- +TCP.Socket: accessing +--------------------- address Answer the address of the remote endpoint @@ -7149,8 +7144,8 @@  File: gst-libs.info, Node: TCP.Socket-out-of-band data, Next: TCP.Socket-printing, Prev: TCP.Socket-accessing, Up: TCP.Socket -2.14.6 TCP.Socket: out-of-band data ------------------------------------ +TCP.Socket: out-of-band data +---------------------------- outOfBand Return a datagram socket to be used for receiving out-of-band data @@ -7160,8 +7155,8 @@  File: gst-libs.info, Node: TCP.Socket-printing, Next: TCP.Socket-stream protocol, Prev: TCP.Socket-out-of-band data, Up: TCP.Socket -2.14.7 TCP.Socket: printing ---------------------------- +TCP.Socket: printing +-------------------- printOn: aStream Print a representation of the receiver on aStream @@ -7170,8 +7165,8 @@  File: gst-libs.info, Node: TCP.Socket-stream protocol, Prev: TCP.Socket-printing, Up: TCP.Socket -2.14.8 TCP.Socket: stream protocol ----------------------------------- +TCP.Socket: stream protocol +--------------------------- atEnd Answer whether more data is available on the socket @@ -7240,8 +7235,8 @@  File: gst-libs.info, Node: TCP.SocketAddress, Next: TCP.SocketImpl, Prev: TCP.Socket, Up: TCP -2.15 TCP.SocketAddress -====================== +TCP.SocketAddress +================= Defined in namespace TCP Superclass: Object @@ -7258,8 +7253,8 @@  File: gst-libs.info, Node: TCP.SocketAddress class-abstract, Next: TCP.SocketAddress class-accessing, Up: TCP.SocketAddress -2.15.1 TCP.SocketAddress class: abstract ----------------------------------------- +TCP.SocketAddress class: abstract +--------------------------------- fromSockAddr: aByteArray port: portAdaptor Private - Answer a new IPAddress from a ByteArray containing a C @@ -7270,8 +7265,8 @@  File: gst-libs.info, Node: TCP.SocketAddress class-accessing, Next: TCP.SocketAddress class-host name lookup, Prev: TCP.SocketAddress class-abstract, Up: TCP.SocketAddress -2.15.2 TCP.SocketAddress class: accessing ------------------------------------------ +TCP.SocketAddress class: accessing +---------------------------------- addressFamily Answer the address family used for sockets whose endpoint is an @@ -7328,8 +7323,8 @@  File: gst-libs.info, Node: TCP.SocketAddress class-host name lookup, Next: TCP.SocketAddress class-initialization, Prev: TCP.SocketAddress class-accessing, Up: TCP.SocketAddress -2.15.3 TCP.SocketAddress class: host name lookup ------------------------------------------------- +TCP.SocketAddress class: host name lookup +----------------------------------------- allByName: aString Answer all the IP addresses that refer to the the given host. If @@ -7347,8 +7342,8 @@  File: gst-libs.info, Node: TCP.SocketAddress class-initialization, Next: TCP.SocketAddress-accessing, Prev: TCP.SocketAddress class-host name lookup, Up: TCP.SocketAddress -2.15.4 TCP.SocketAddress class: initialization ----------------------------------------------- +TCP.SocketAddress class: initialization +--------------------------------------- createLocalAddress Answer an object representing a local address in the address @@ -7381,8 +7376,8 @@  File: gst-libs.info, Node: TCP.SocketAddress-accessing, Prev: TCP.SocketAddress class-initialization, Up: TCP.SocketAddress -2.15.5 TCP.SocketAddress: accessing ------------------------------------ +TCP.SocketAddress: accessing +---------------------------- = anIPAddress Answer whether the receiver and anIPAddress represent the same @@ -7409,8 +7404,8 @@  File: gst-libs.info, Node: TCP.SocketImpl, Next: TCP.TCPSocketImpl, Prev: TCP.SocketAddress, Up: TCP -2.16 TCP.SocketImpl -=================== +TCP.SocketImpl +============== Defined in namespace TCP Superclass: TCP.AbstractSocketImpl @@ -7425,8 +7420,8 @@  File: gst-libs.info, Node: TCP.SocketImpl class-parameters, Next: TCP.SocketImpl-abstract, Up: TCP.SocketImpl -2.16.1 TCP.SocketImpl class: parameters ---------------------------------------- +TCP.SocketImpl class: parameters +-------------------------------- socketType Answer the socket type parameter for `create'. @@ -7435,8 +7430,8 @@  File: gst-libs.info, Node: TCP.SocketImpl-abstract, Next: TCP.SocketImpl-socket operations, Prev: TCP.SocketImpl class-parameters, Up: TCP.SocketImpl -2.16.2 TCP.SocketImpl: abstract -------------------------------- +TCP.SocketImpl: abstract +------------------------ outOfBandImplClass Return an implementation class to be used for out-of-band data on @@ -7446,8 +7441,8 @@  File: gst-libs.info, Node: TCP.SocketImpl-socket operations, Prev: TCP.SocketImpl-abstract, Up: TCP.SocketImpl -2.16.3 TCP.SocketImpl: socket operations ----------------------------------------- +TCP.SocketImpl: socket operations +--------------------------------- connectTo: ipAddress port: port Try to connect the socket represented by the receiver to the given @@ -7461,8 +7456,8 @@  File: gst-libs.info, Node: TCP.TCPSocketImpl, Next: TCP.UDPSocketImpl, Prev: TCP.SocketImpl, Up: TCP -2.17 TCP.TCPSocketImpl -====================== +TCP.TCPSocketImpl +================= Defined in namespace TCP Superclass: TCP.SocketImpl @@ -7476,8 +7471,8 @@  File: gst-libs.info, Node: TCP.TCPSocketImpl class-implementation, Next: TCP.TCPSocketImpl-implementation, Up: TCP.TCPSocketImpl -2.17.1 TCP.TCPSocketImpl class: implementation ----------------------------------------------- +TCP.TCPSocketImpl class: implementation +--------------------------------------- addressClass Answer the class that holds network addresses for TCP sockets, @@ -7487,8 +7482,8 @@  File: gst-libs.info, Node: TCP.TCPSocketImpl-implementation, Prev: TCP.TCPSocketImpl class-implementation, Up: TCP.TCPSocketImpl -2.17.2 TCP.TCPSocketImpl: implementation ----------------------------------------- +TCP.TCPSocketImpl: implementation +--------------------------------- outOfBandImplClass Return an implementation class to be used for out-of-band data on @@ -7498,8 +7493,8 @@  File: gst-libs.info, Node: TCP.UDPSocketImpl, Next: TCP.WriteBuffer, Prev: TCP.TCPSocketImpl, Up: TCP -2.18 TCP.UDPSocketImpl -====================== +TCP.UDPSocketImpl +================= Defined in namespace TCP Superclass: TCP.MulticastSocketImpl @@ -7513,8 +7508,8 @@  File: gst-libs.info, Node: TCP.UDPSocketImpl class-implementation, Next: TCP.UDPSocketImpl-multicasting, Up: TCP.UDPSocketImpl -2.18.1 TCP.UDPSocketImpl class: implementation ----------------------------------------------- +TCP.UDPSocketImpl class: implementation +--------------------------------------- addressClass Answer the class that holds network addresses for UDP sockets, @@ -7524,8 +7519,8 @@  File: gst-libs.info, Node: TCP.UDPSocketImpl-multicasting, Prev: TCP.UDPSocketImpl class-implementation, Up: TCP.UDPSocketImpl -2.18.2 TCP.UDPSocketImpl: multicasting --------------------------------------- +TCP.UDPSocketImpl: multicasting +------------------------------- ipMulticastIf Answer the local device for a multicast socket (in the form of an @@ -7556,8 +7551,8 @@  File: gst-libs.info, Node: TCP.WriteBuffer, Prev: TCP.UDPSocketImpl, Up: TCP -2.19 TCP.WriteBuffer -==================== +TCP.WriteBuffer +=============== Defined in namespace TCP Superclass: WriteStream @@ -7573,8 +7568,8 @@  File: gst-libs.info, Node: TCP.WriteBuffer-buffer handling, Up: TCP.WriteBuffer -2.19.1 TCP.WriteBuffer: buffer handling ---------------------------------------- +TCP.WriteBuffer: buffer handling +-------------------------------- flush Evaluate the flushing block and reset the stream @@ -7588,8 +7583,8 @@  File: gst-libs.info, Node: I18N, Next: XML, Prev: TCP, Up: Top -3 I18N -****** +I18N +**** * Menu: @@ -7688,8 +7683,8 @@  File: gst-libs.info, Node: I18N.BigEndianFileStream, Next: I18N.EncodedStream, Up: I18N -3.1 I18N.BigEndianFileStream -============================ +I18N.BigEndianFileStream +======================== Defined in namespace I18N Superclass: FileStream @@ -7702,8 +7697,8 @@  File: gst-libs.info, Node: I18N.EncodedStream, Next: I18N.Encoder, Prev: I18N.BigEndianFileStream, Up: I18N -3.2 I18N.EncodedStream -====================== +I18N.EncodedStream +================== Defined in namespace I18N Superclass: I18N.Encoder @@ -7720,8 +7715,8 @@  File: gst-libs.info, Node: I18N.EncodedStream class-initializing, Next: I18N.EncodedStream class-instance creation, Up: I18N.EncodedStream -3.2.1 I18N.EncodedStream class: initializing --------------------------------------------- +I18N.EncodedStream class: initializing +-------------------------------------- initialize Initialize the registry of the encoders to include the standard @@ -7740,8 +7735,8 @@  File: gst-libs.info, Node: I18N.EncodedStream class-instance creation, Prev: I18N.EncodedStream class-initializing, Up: I18N.EncodedStream -3.2.2 I18N.EncodedStream class: instance creation -------------------------------------------------- +I18N.EncodedStream class: instance creation +------------------------------------------- on: aStringOrStream from: fromEncoding Answer a pipe of encoders that converts aStringOrStream (which can @@ -7762,8 +7757,8 @@  File: gst-libs.info, Node: I18N.Encoder, Next: I18N.Encoders.ComposeUCS4BE, Prev: I18N.EncodedStream, Up: I18N -3.3 I18N.Encoder -================ +I18N.Encoder +============ Defined in namespace I18N Superclass: Stream @@ -7781,8 +7776,8 @@  File: gst-libs.info, Node: I18N.Encoder class-instance creation, Next: I18N.Encoder-stream operations, Up: I18N.Encoder -3.3.1 I18N.Encoder class: instance creation -------------------------------------------- +I18N.Encoder class: instance creation +------------------------------------- on: aStringOrStream from: fromEncoding to: toEncoding Answer a new encoder that translates from fromEncoding to @@ -7793,8 +7788,8 @@  File: gst-libs.info, Node: I18N.Encoder-stream operations, Prev: I18N.Encoder class-instance creation, Up: I18N.Encoder -3.3.2 I18N.Encoder: stream operations -------------------------------------- +I18N.Encoder: stream operations +------------------------------- atEnd Return whether the receiver can produce another character in the @@ -7824,8 +7819,8 @@  File: gst-libs.info, Node: I18N.Encoders.ComposeUCS4BE, Next: I18N.Encoders.ComposeUCS4LE, Prev: I18N.Encoder, Up: I18N -3.4 I18N.Encoders.ComposeUCS4BE -=============================== +I18N.Encoders.ComposeUCS4BE +=========================== Defined in namespace I18N.Encoders Superclass: I18N.Encoders.ToUCS4 @@ -7841,8 +7836,8 @@  File: gst-libs.info, Node: I18N.Encoders.ComposeUCS4BE-stream operation, Up: I18N.Encoders.ComposeUCS4BE -3.4.1 I18N.Encoders.ComposeUCS4BE: stream operation ---------------------------------------------------- +I18N.Encoders.ComposeUCS4BE: stream operation +--------------------------------------------- next Answer a 32-bit integer obtained by reading four 8-bit character @@ -7852,8 +7847,8 @@  File: gst-libs.info, Node: I18N.Encoders.ComposeUCS4LE, Next: I18N.Encoders.FromUCS4, Prev: I18N.Encoders.ComposeUCS4BE, Up: I18N -3.5 I18N.Encoders.ComposeUCS4LE -=============================== +I18N.Encoders.ComposeUCS4LE +=========================== Defined in namespace I18N.Encoders Superclass: I18N.Encoders.ToUCS4 @@ -7869,8 +7864,8 @@  File: gst-libs.info, Node: I18N.Encoders.ComposeUCS4LE-stream operation, Up: I18N.Encoders.ComposeUCS4LE -3.5.1 I18N.Encoders.ComposeUCS4LE: stream operation ---------------------------------------------------- +I18N.Encoders.ComposeUCS4LE: stream operation +--------------------------------------------- next Answer a 32-bit integer obtained by reading four 8-bit character @@ -7880,8 +7875,8 @@  File: gst-libs.info, Node: I18N.Encoders.FromUCS4, Next: I18N.Encoders.FromUTF7, Prev: I18N.Encoders.ComposeUCS4LE, Up: I18N -3.6 I18N.Encoders.FromUCS4 -========================== +I18N.Encoders.FromUCS4 +====================== Defined in namespace I18N.Encoders Superclass: I18N.Encoder @@ -7897,8 +7892,8 @@  File: gst-libs.info, Node: I18N.Encoders.FromUCS4-stream operation, Up: I18N.Encoders.FromUCS4 -3.6.1 I18N.Encoders.FromUCS4: stream operation ----------------------------------------------- +I18N.Encoders.FromUCS4: stream operation +---------------------------------------- species We answer a string of Characters encoded in our destination @@ -7908,8 +7903,8 @@  File: gst-libs.info, Node: I18N.Encoders.FromUTF7, Next: I18N.Encoders.Iconv, Prev: I18N.Encoders.FromUCS4, Up: I18N -3.7 I18N.Encoders.FromUTF7 -========================== +I18N.Encoders.FromUTF7 +====================== Defined in namespace I18N.Encoders Superclass: I18N.Encoders.ToUCS4 @@ -7923,8 +7918,8 @@  File: gst-libs.info, Node: I18N.Encoders.FromUTF7 class-initialization, Next: I18N.Encoders.FromUTF7-converting, Up: I18N.Encoders.FromUTF7 -3.7.1 I18N.Encoders.FromUTF7 class: initialization --------------------------------------------------- +I18N.Encoders.FromUTF7 class: initialization +-------------------------------------------- initialize Initialize the tables used by the UTF7-to-UCS4 converter @@ -7933,8 +7928,8 @@  File: gst-libs.info, Node: I18N.Encoders.FromUTF7-converting, Prev: I18N.Encoders.FromUTF7 class-initialization, Up: I18N.Encoders.FromUTF7 -3.7.2 I18N.Encoders.FromUTF7: converting ----------------------------------------- +I18N.Encoders.FromUTF7: converting +---------------------------------- atEnd Answer whether the receiver can produce another UCS4 32-bit @@ -7953,8 +7948,8 @@  File: gst-libs.info, Node: I18N.Encoders.Iconv, Next: I18N.Encoders.SplitUCS4BE, Prev: I18N.Encoders.FromUTF7, Up: I18N -3.8 I18N.Encoders.Iconv -======================= +I18N.Encoders.Iconv +=================== Defined in namespace I18N.Encoders Superclass: I18N.Encoder @@ -7972,8 +7967,8 @@  File: gst-libs.info, Node: I18N.Encoders.Iconv-stream operation, Up: I18N.Encoders.Iconv -3.8.1 I18N.Encoders.Iconv: stream operation -------------------------------------------- +I18N.Encoders.Iconv: stream operation +------------------------------------- atEnd Answer whether the receiver can produce more characters @@ -7989,8 +7984,8 @@  File: gst-libs.info, Node: I18N.Encoders.SplitUCS4BE, Next: I18N.Encoders.SplitUCS4LE, Prev: I18N.Encoders.Iconv, Up: I18N -3.9 I18N.Encoders.SplitUCS4BE -============================= +I18N.Encoders.SplitUCS4BE +========================= Defined in namespace I18N.Encoders Superclass: I18N.Encoders.FromUCS4 @@ -8006,8 +8001,8 @@  File: gst-libs.info, Node: I18N.Encoders.SplitUCS4BE-stream operation, Up: I18N.Encoders.SplitUCS4BE -3.9.1 I18N.Encoders.SplitUCS4BE: stream operation -------------------------------------------------- +I18N.Encoders.SplitUCS4BE: stream operation +------------------------------------------- atEnd Answer whether the receiver can produce more characters @@ -8025,8 +8020,8 @@  File: gst-libs.info, Node: I18N.Encoders.SplitUCS4LE, Next: I18N.Encoders.ToUCS4, Prev: I18N.Encoders.SplitUCS4BE, Up: I18N -3.10 I18N.Encoders.SplitUCS4LE -============================== +I18N.Encoders.SplitUCS4LE +========================= Defined in namespace I18N.Encoders Superclass: I18N.Encoders.FromUCS4 @@ -8042,8 +8037,8 @@  File: gst-libs.info, Node: I18N.Encoders.SplitUCS4LE-stream operation, Up: I18N.Encoders.SplitUCS4LE -3.10.1 I18N.Encoders.SplitUCS4LE: stream operation --------------------------------------------------- +I18N.Encoders.SplitUCS4LE: stream operation +------------------------------------------- atEnd Answer whether the receiver can produce more characters @@ -8061,8 +8056,8 @@  File: gst-libs.info, Node: I18N.Encoders.ToUCS4, Next: I18N.Encoders.ToUTF7, Prev: I18N.Encoders.SplitUCS4LE, Up: I18N -3.11 I18N.Encoders.ToUCS4 -========================= +I18N.Encoders.ToUCS4 +==================== Defined in namespace I18N.Encoders Superclass: I18N.Encoder @@ -8078,8 +8073,8 @@  File: gst-libs.info, Node: I18N.Encoders.ToUCS4-stream operation, Up: I18N.Encoders.ToUCS4 -3.11.1 I18N.Encoders.ToUCS4: stream operation ---------------------------------------------- +I18N.Encoders.ToUCS4: stream operation +-------------------------------------- species We answer a WordArray of UCS4 characters encoded as a series of @@ -8089,8 +8084,8 @@  File: gst-libs.info, Node: I18N.Encoders.ToUTF7, Next: I18N.FileStreamSegment, Prev: I18N.Encoders.ToUCS4, Up: I18N -3.12 I18N.Encoders.ToUTF7 -========================= +I18N.Encoders.ToUTF7 +==================== Defined in namespace I18N.Encoders Superclass: I18N.Encoders.FromUCS4 @@ -8106,8 +8101,8 @@  File: gst-libs.info, Node: I18N.Encoders.ToUTF7 class-initialization, Next: I18N.Encoders.ToUTF7-conversion, Up: I18N.Encoders.ToUTF7 -3.12.1 I18N.Encoders.ToUTF7 class: initialization -------------------------------------------------- +I18N.Encoders.ToUTF7 class: initialization +------------------------------------------ initialize Initialize the tables used by the UCS4-to-UTF7 converter @@ -8116,8 +8111,8 @@  File: gst-libs.info, Node: I18N.Encoders.ToUTF7-conversion, Prev: I18N.Encoders.ToUTF7 class-initialization, Up: I18N.Encoders.ToUTF7 -3.12.2 I18N.Encoders.ToUTF7: conversion ---------------------------------------- +I18N.Encoders.ToUTF7: conversion +-------------------------------- atEnd Answer whether the receiver can produce more characters @@ -8133,8 +8128,8 @@  File: gst-libs.info, Node: I18N.FileStreamSegment, Next: I18N.IncompleteSequenceError, Prev: I18N.Encoders.ToUTF7, Up: I18N -3.13 I18N.FileStreamSegment -=========================== +I18N.FileStreamSegment +====================== Defined in namespace I18N Superclass: FileSegment @@ -8149,8 +8144,8 @@  File: gst-libs.info, Node: I18N.FileStreamSegment-basic, Up: I18N.FileStreamSegment -3.13.1 I18N.FileStreamSegment: basic ------------------------------------- +I18N.FileStreamSegment: basic +----------------------------- fileName Answer the name of the file containing the segment @@ -8162,8 +8157,8 @@  File: gst-libs.info, Node: I18N.IncompleteSequenceError, Next: I18N.InvalidCharsetError, Prev: I18N.FileStreamSegment, Up: I18N -3.14 I18N.IncompleteSequenceError -================================= +I18N.IncompleteSequenceError +============================ Defined in namespace I18N Superclass: Error @@ -8180,8 +8175,8 @@  File: gst-libs.info, Node: I18N.IncompleteSequenceError-accessing, Up: I18N.IncompleteSequenceError -3.14.1 I18N.IncompleteSequenceError: accessing ----------------------------------------------- +I18N.IncompleteSequenceError: accessing +--------------------------------------- description Answer a textual description of the exception. @@ -8190,8 +8185,8 @@  File: gst-libs.info, Node: I18N.InvalidCharsetError, Next: I18N.InvalidSequenceError, Prev: I18N.IncompleteSequenceError, Up: I18N -3.15 I18N.InvalidCharsetError -============================= +I18N.InvalidCharsetError +======================== Defined in namespace I18N Superclass: SystemExceptions.InvalidArgument @@ -8206,8 +8201,8 @@  File: gst-libs.info, Node: I18N.InvalidCharsetError-accessing, Up: I18N.InvalidCharsetError -3.15.1 I18N.InvalidCharsetError: accessing ------------------------------------------- +I18N.InvalidCharsetError: accessing +----------------------------------- description Answer a textual description of the exception. @@ -8216,8 +8211,8 @@  File: gst-libs.info, Node: I18N.InvalidSequenceError, Next: I18N.LcMessages, Prev: I18N.InvalidCharsetError, Up: I18N -3.16 I18N.InvalidSequenceError -============================== +I18N.InvalidSequenceError +========================= Defined in namespace I18N Superclass: Error @@ -8232,8 +8227,8 @@  File: gst-libs.info, Node: I18N.InvalidSequenceError-accessing, Up: I18N.InvalidSequenceError -3.16.1 I18N.InvalidSequenceError: accessing -------------------------------------------- +I18N.InvalidSequenceError: accessing +------------------------------------ description Answer a textual description of the exception. @@ -8242,8 +8237,8 @@  File: gst-libs.info, Node: I18N.LcMessages, Next: I18N.LcMessagesCatalog, Prev: I18N.InvalidSequenceError, Up: I18N -3.17 I18N.LcMessages -==================== +I18N.LcMessages +=============== Defined in namespace I18N Superclass: I18N.LocaleConventions @@ -8259,8 +8254,8 @@  File: gst-libs.info, Node: I18N.LcMessages class-accessing, Next: I18N.LcMessages-accessing, Up: I18N.LcMessages -3.17.1 I18N.LcMessages class: accessing ---------------------------------------- +I18N.LcMessages class: accessing +-------------------------------- category Answer the environment variable used to determine the default @@ -8274,8 +8269,8 @@  File: gst-libs.info, Node: I18N.LcMessages-accessing, Next: I18N.LcMessages-opening MO files, Prev: I18N.LcMessages class-accessing, Up: I18N.LcMessages -3.17.2 I18N.LcMessages: accessing ---------------------------------- +I18N.LcMessages: accessing +-------------------------- languageDirectory Answer the directory holding MO files for the language @@ -8296,8 +8291,8 @@  File: gst-libs.info, Node: I18N.LcMessages-opening MO files, Prev: I18N.LcMessages-accessing, Up: I18N.LcMessages -3.17.3 I18N.LcMessages: opening MO files ----------------------------------------- +I18N.LcMessages: opening MO files +--------------------------------- ? aString Answer an object for the aString domain, querying both the @@ -8319,8 +8314,8 @@  File: gst-libs.info, Node: I18N.LcMessagesCatalog, Next: I18N.LcMessagesDomain, Prev: I18N.LcMessages, Up: I18N -3.18 I18N.LcMessagesCatalog -=========================== +I18N.LcMessagesCatalog +====================== Defined in namespace I18N Superclass: I18N.LcMessagesDomain @@ -8333,8 +8328,8 @@  File: gst-libs.info, Node: I18N.LcMessagesDomain, Next: I18N.LcMessagesDummyDomain, Prev: I18N.LcMessagesCatalog, Up: I18N -3.19 I18N.LcMessagesDomain -========================== +I18N.LcMessagesDomain +===================== Defined in namespace I18N Superclass: I18N.LocaleData @@ -8366,8 +8361,8 @@  File: gst-libs.info, Node: I18N.LcMessagesDomain class-opening MO files, Next: I18N.LcMessagesDomain-handling the cache, Up: I18N.LcMessagesDomain -3.19.1 I18N.LcMessagesDomain class: opening MO files ----------------------------------------------------- +I18N.LcMessagesDomain class: opening MO files +--------------------------------------------- id: anArray on: aFileName Create an instance of the receiver with a given locale identifier @@ -8377,8 +8372,8 @@  File: gst-libs.info, Node: I18N.LcMessagesDomain-handling the cache, Next: I18N.LcMessagesDomain-querying, Prev: I18N.LcMessagesDomain class-opening MO files, Up: I18N.LcMessagesDomain -3.19.2 I18N.LcMessagesDomain: handling the cache ------------------------------------------------- +I18N.LcMessagesDomain: handling the cache +----------------------------------------- flush Flush the receiver's cache of translations @@ -8392,8 +8387,8 @@  File: gst-libs.info, Node: I18N.LcMessagesDomain-querying, Prev: I18N.LcMessagesDomain-handling the cache, Up: I18N.LcMessagesDomain -3.19.3 I18N.LcMessagesDomain: querying --------------------------------------- +I18N.LcMessagesDomain: querying +------------------------------- ? aString Answer the translation of `aString', or answer aString itself if @@ -8425,8 +8420,8 @@  File: gst-libs.info, Node: I18N.LcMessagesDummyDomain, Next: I18N.LcMessagesMoFileVersion0, Prev: I18N.LcMessagesDomain, Up: I18N -3.20 I18N.LcMessagesDummyDomain -=============================== +I18N.LcMessagesDummyDomain +========================== Defined in namespace I18N Superclass: I18N.LcMessagesDomain @@ -8439,8 +8434,8 @@  File: gst-libs.info, Node: I18N.LcMessagesMoFileVersion0, Next: I18N.LcMessagesTerritoryDomain, Prev: I18N.LcMessagesDummyDomain, Up: I18N -3.21 I18N.LcMessagesMoFileVersion0 -================================== +I18N.LcMessagesMoFileVersion0 +============================= Defined in namespace I18N Superclass: I18N.LcMessagesCatalog diff -rNu smalltalk-2.1.9/doc/gst-libs.info-2 smalltalk-2.1.10/doc/gst-libs.info-2 --- smalltalk-2.1.9/doc/gst-libs.info-2 2004-10-02 15:37:27.000000000 +0200 +++ smalltalk-2.1.10/doc/gst-libs.info-2 2005-02-02 15:11:09.000000000 +0100 @@ -1,13 +1,13 @@ -This is gst-libs.info, produced by makeinfo version 4.7 from -/home/utente/devel-gst-stable/doc/gst-libs-fixed.texi. +This is gst-libs.info, produced by makeinfo version 4.6 from +/Users/bonzinip/devel/gst-stable/+build/doc/../../doc/gst-libs-fixed.texi. INFO-DIR-SECTION GNU Smalltalk START-INFO-DIR-ENTRY * Libraries: (gst-libs). The GNU Smalltalk class libraries. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 9 January 2004. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 2 February 2005. Copyright (C) 1988-92, 1994-95, 1999-2001 Free Software Foundation, Inc. @@ -23,12 +23,11 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. -  File: gst-libs.info, Node: I18N.LcMessagesMoFileVersion0 class-documentation, Next: I18N.LcMessagesMoFileVersion0 class-plurals, Up: I18N.LcMessagesMoFileVersion0 -3.21.1 I18N.LcMessagesMoFileVersion0 class: documentation ---------------------------------------------------------- +I18N.LcMessagesMoFileVersion0 class: documentation +-------------------------------------------------- fileFormatDescription The Format of GNU MO Files (excerpt of the GNU gettext manual) @@ -151,8 +150,8 @@  File: gst-libs.info, Node: I18N.LcMessagesMoFileVersion0 class-plurals, Next: I18N.LcMessagesMoFileVersion0-flushing the cache, Prev: I18N.LcMessagesMoFileVersion0 class-documentation, Up: I18N.LcMessagesMoFileVersion0 -3.21.2 I18N.LcMessagesMoFileVersion0 class: plurals ---------------------------------------------------- +I18N.LcMessagesMoFileVersion0 class: plurals +-------------------------------------------- initialize Initialize a table with the expressions computing the plurals for @@ -167,8 +166,8 @@  File: gst-libs.info, Node: I18N.LcMessagesMoFileVersion0-flushing the cache, Prev: I18N.LcMessagesMoFileVersion0 class-plurals, Up: I18N.LcMessagesMoFileVersion0 -3.21.3 I18N.LcMessagesMoFileVersion0: flushing the cache --------------------------------------------------------- +I18N.LcMessagesMoFileVersion0: flushing the cache +------------------------------------------------- flush Flush the cache and reread the catalog's metadata. @@ -181,8 +180,8 @@  File: gst-libs.info, Node: I18N.LcMessagesTerritoryDomain, Next: I18N.LcMonetary, Prev: I18N.LcMessagesMoFileVersion0, Up: I18N -3.22 I18N.LcMessagesTerritoryDomain -=================================== +I18N.LcMessagesTerritoryDomain +============================== Defined in namespace I18N Superclass: I18N.LcMessagesDomain @@ -197,8 +196,8 @@  File: gst-libs.info, Node: I18N.LcMessagesTerritoryDomain class-instance creation, Up: I18N.LcMessagesTerritoryDomain -3.22.1 I18N.LcMessagesTerritoryDomain class: instance creation --------------------------------------------------------------- +I18N.LcMessagesTerritoryDomain class: instance creation +------------------------------------------------------- primary: domain1 secondary: domain2 Answer an instance of the receiver that queries, in sequence, @@ -208,8 +207,8 @@  File: gst-libs.info, Node: I18N.LcMonetary, Next: I18N.LcMonetaryISO, Prev: I18N.LcMessagesTerritoryDomain, Up: I18N -3.23 I18N.LcMonetary -==================== +I18N.LcMonetary +=============== Defined in namespace I18N Superclass: I18N.LcNumeric @@ -226,8 +225,8 @@  File: gst-libs.info, Node: I18N.LcMonetary class-accessing, Next: I18N.LcMonetary-printing, Up: I18N.LcMonetary -3.23.1 I18N.LcMonetary class: accessing ---------------------------------------- +I18N.LcMonetary class: accessing +-------------------------------- category Answer the environment variable used to determine the default @@ -241,8 +240,8 @@  File: gst-libs.info, Node: I18N.LcMonetary-printing, Prev: I18N.LcMonetary class-accessing, Up: I18N.LcMonetary -3.23.2 I18N.LcMonetary: printing --------------------------------- +I18N.LcMonetary: printing +------------------------- print: aNumber on: aStream Print aNumber on aStream according to the receiver's formatting @@ -260,8 +259,8 @@  File: gst-libs.info, Node: I18N.LcMonetaryISO, Next: I18N.LcNumeric, Prev: I18N.LcMonetary, Up: I18N -3.24 I18N.LcMonetaryISO -======================= +I18N.LcMonetaryISO +================== Defined in namespace I18N Superclass: I18N.LcMonetary @@ -274,8 +273,8 @@  File: gst-libs.info, Node: I18N.LcMonetaryISO class-accessing, Up: I18N.LcMonetaryISO -3.24.1 I18N.LcMonetaryISO class: accessing ------------------------------------------- +I18N.LcMonetaryISO class: accessing +----------------------------------- selector Answer the selector that accesses the receiver when sent to a @@ -285,8 +284,8 @@  File: gst-libs.info, Node: I18N.LcNumeric, Next: I18N.LcPrintFormats, Prev: I18N.LcMonetaryISO, Up: I18N -3.25 I18N.LcNumeric -=================== +I18N.LcNumeric +============== Defined in namespace I18N Superclass: I18N.LcPrintFormats @@ -302,8 +301,8 @@  File: gst-libs.info, Node: I18N.LcNumeric class-accessing, Next: I18N.LcNumeric-printing, Up: I18N.LcNumeric -3.25.1 I18N.LcNumeric class: accessing --------------------------------------- +I18N.LcNumeric class: accessing +------------------------------- category Answer the environment variable used to determine the default @@ -317,8 +316,8 @@  File: gst-libs.info, Node: I18N.LcNumeric-printing, Prev: I18N.LcNumeric class-accessing, Up: I18N.LcNumeric -3.25.2 I18N.LcNumeric: printing -------------------------------- +I18N.LcNumeric: printing +------------------------ basicPrint: aNumber on: aStream Print aNumber on aStream according to the receiver's formatting @@ -333,8 +332,8 @@  File: gst-libs.info, Node: I18N.LcPrintFormats, Next: I18N.LcTime, Prev: I18N.LcNumeric, Up: I18N -3.26 I18N.LcPrintFormats -======================== +I18N.LcPrintFormats +=================== Defined in namespace I18N Superclass: I18N.LocaleConventions @@ -351,8 +350,8 @@  File: gst-libs.info, Node: I18N.LcPrintFormats-printing, Up: I18N.LcPrintFormats -3.26.1 I18N.LcPrintFormats: printing ------------------------------------- +I18N.LcPrintFormats: printing +----------------------------- ? anObject Answer how anObject must be printed according to the receiver's @@ -370,8 +369,8 @@  File: gst-libs.info, Node: I18N.LcTime, Next: I18N.Locale, Prev: I18N.LcPrintFormats, Up: I18N -3.27 I18N.LcTime -================ +I18N.LcTime +=========== Defined in namespace I18N Superclass: I18N.LcPrintFormats @@ -389,8 +388,8 @@  File: gst-libs.info, Node: I18N.LcTime class-accessing, Next: I18N.LcTime-printing, Up: I18N.LcTime -3.27.1 I18N.LcTime class: accessing ------------------------------------ +I18N.LcTime class: accessing +---------------------------- category Answer the environment variable used to determine the default @@ -404,8 +403,8 @@  File: gst-libs.info, Node: I18N.LcTime-printing, Next: I18N.LcTime-tests, Prev: I18N.LcTime class-accessing, Up: I18N.LcTime -3.27.2 I18N.LcTime: printing ----------------------------- +I18N.LcTime: printing +--------------------- print: aDateOrTimeOrArray on: aStream Print aDateOrTimeOrArray on aStream according to the receiver's @@ -448,8 +447,8 @@  File: gst-libs.info, Node: I18N.LcTime-tests, Prev: I18N.LcTime-printing, Up: I18N.LcTime -3.27.3 I18N.LcTime: tests -------------------------- +I18N.LcTime: tests +------------------ allFormatsExample Answer a long string that includes all the possible formats @@ -458,8 +457,8 @@  File: gst-libs.info, Node: I18N.Locale, Next: I18N.LocaleConventions, Prev: I18N.LcTime, Up: I18N -3.28 I18N.Locale -================ +I18N.Locale +=========== Defined in namespace I18N Superclass: I18N.LocaleData @@ -479,8 +478,8 @@  File: gst-libs.info, Node: I18N.Locale class-initialization, Next: I18N.Locale class-instance creation, Up: I18N.Locale -3.28.1 I18N.Locale class: initialization ----------------------------------------- +I18N.Locale class: initialization +--------------------------------- rootDirectory Answer the directory under which locale definition files are found. @@ -492,8 +491,8 @@  File: gst-libs.info, Node: I18N.Locale class-instance creation, Next: I18N.Locale-subobjects, Prev: I18N.Locale class-initialization, Up: I18N.Locale -3.28.2 I18N.Locale class: instance creation -------------------------------------------- +I18N.Locale class: instance creation +------------------------------------ default Answer an instance of the receiver that accesses the default @@ -514,8 +513,8 @@  File: gst-libs.info, Node: I18N.Locale-subobjects, Prev: I18N.Locale class-instance creation, Up: I18N.Locale -3.28.3 I18N.Locale: subobjects ------------------------------- +I18N.Locale: subobjects +----------------------- messages Answer the LcMessages object for the locale represented by the @@ -541,8 +540,8 @@  File: gst-libs.info, Node: I18N.LocaleConventions, Next: I18N.LocaleData, Prev: I18N.Locale, Up: I18N -3.29 I18N.LocaleConventions -=========================== +I18N.LocaleConventions +====================== Defined in namespace I18N Superclass: I18N.LocaleData @@ -558,8 +557,8 @@  File: gst-libs.info, Node: I18N.LocaleConventions class-accessing, Next: I18N.LocaleConventions-accessing, Up: I18N.LocaleConventions -3.29.1 I18N.LocaleConventions class: accessing ----------------------------------------------- +I18N.LocaleConventions class: accessing +--------------------------------------- ? anObject Query the default object, forwarding the message to it. @@ -583,8 +582,8 @@  File: gst-libs.info, Node: I18N.LocaleConventions-accessing, Prev: I18N.LocaleConventions class-accessing, Up: I18N.LocaleConventions -3.29.2 I18N.LocaleConventions: accessing ----------------------------------------- +I18N.LocaleConventions: accessing +--------------------------------- ? anObject This method's functionality should be implemented by subclasses of @@ -594,8 +593,8 @@  File: gst-libs.info, Node: I18N.LocaleData, Next: I18N.RTEAlternativeNode, Prev: I18N.LocaleConventions, Up: I18N -3.30 I18N.LocaleData -==================== +I18N.LocaleData +=============== Defined in namespace I18N Superclass: Object @@ -613,8 +612,8 @@  File: gst-libs.info, Node: I18N.LocaleData class-accessing, Next: I18N.LocaleData class-database, Up: I18N.LocaleData -3.30.1 I18N.LocaleData class: accessing ---------------------------------------- +I18N.LocaleData class: accessing +-------------------------------- category Answer `nil'. @@ -654,8 +653,8 @@  File: gst-libs.info, Node: I18N.LocaleData class-database, Next: I18N.LocaleData-accessing, Prev: I18N.LocaleData class-accessing, Up: I18N.LocaleData -3.30.2 I18N.LocaleData class: database --------------------------------------- +I18N.LocaleData class: database +------------------------------- defaults Answer the default territory-language and language-charset @@ -674,8 +673,8 @@  File: gst-libs.info, Node: I18N.LocaleData-accessing, Next: I18N.LocaleData-initialization, Prev: I18N.LocaleData class-database, Up: I18N.LocaleData -3.30.3 I18N.LocaleData: accessing ---------------------------------- +I18N.LocaleData: accessing +-------------------------- charset Return the charset supported by the receiver. @@ -714,8 +713,8 @@  File: gst-libs.info, Node: I18N.LocaleData-initialization, Prev: I18N.LocaleData-accessing, Up: I18N.LocaleData -3.30.4 I18N.LocaleData: initialization --------------------------------------- +I18N.LocaleData: initialization +------------------------------- id: anArray Private - Set which locale the receiver contains data for @@ -728,8 +727,8 @@  File: gst-libs.info, Node: I18N.RTEAlternativeNode, Next: I18N.RTEBinaryNode, Prev: I18N.LocaleData, Up: I18N -3.31 I18N.RTEAlternativeNode -============================ +I18N.RTEAlternativeNode +======================= Defined in namespace I18N Superclass: I18N.RunTimeExpression @@ -743,8 +742,8 @@  File: gst-libs.info, Node: I18N.RTEAlternativeNode class-compiling, Next: I18N.RTEAlternativeNode-computing, Up: I18N.RTEAlternativeNode -3.31.1 I18N.RTEAlternativeNode class: compiling ------------------------------------------------ +I18N.RTEAlternativeNode class: compiling +---------------------------------------- condition: cond ifTrue: trueNode ifFalse: falseNode Private - Create a node in the parse tree for the run-time @@ -754,8 +753,8 @@  File: gst-libs.info, Node: I18N.RTEAlternativeNode-computing, Prev: I18N.RTEAlternativeNode class-compiling, Up: I18N.RTEAlternativeNode -3.31.2 I18N.RTEAlternativeNode: computing ------------------------------------------ +I18N.RTEAlternativeNode: computing +---------------------------------- condition: condNode ifTrue: trueNode ifFalse: falseNode Initialize the children of the receiver and the conditional @@ -772,8 +771,8 @@  File: gst-libs.info, Node: I18N.RTEBinaryNode, Next: I18N.RTELiteralNode, Prev: I18N.RTEAlternativeNode, Up: I18N -3.32 I18N.RTEBinaryNode -======================= +I18N.RTEBinaryNode +================== Defined in namespace I18N Superclass: I18N.RunTimeExpression @@ -788,8 +787,8 @@  File: gst-libs.info, Node: I18N.RTEBinaryNode class-compiling, Next: I18N.RTEBinaryNode-compiling, Up: I18N.RTEBinaryNode -3.32.1 I18N.RTEBinaryNode class: compiling ------------------------------------------- +I18N.RTEBinaryNode class: compiling +----------------------------------- lhs: lhs op: op rhs: rhs Private - Create a node in the parse tree for the run-time @@ -799,8 +798,8 @@  File: gst-libs.info, Node: I18N.RTEBinaryNode-compiling, Next: I18N.RTEBinaryNode-computing, Prev: I18N.RTEBinaryNode class-compiling, Up: I18N.RTEBinaryNode -3.32.2 I18N.RTEBinaryNode: compiling ------------------------------------- +I18N.RTEBinaryNode: compiling +----------------------------- lhs Answer `lhs'. @@ -815,8 +814,8 @@  File: gst-libs.info, Node: I18N.RTEBinaryNode-computing, Prev: I18N.RTEBinaryNode-compiling, Up: I18N.RTEBinaryNode -3.32.3 I18N.RTEBinaryNode: computing ------------------------------------- +I18N.RTEBinaryNode: computing +----------------------------- lhs: lhsNode op: aSymbol rhs: rhsNode Initialize the children of the receiver and the operation to be @@ -833,8 +832,8 @@  File: gst-libs.info, Node: I18N.RTELiteralNode, Next: I18N.RTENegationNode, Prev: I18N.RTEBinaryNode, Up: I18N -3.33 I18N.RTELiteralNode -======================== +I18N.RTELiteralNode +=================== Defined in namespace I18N Superclass: I18N.RunTimeExpression @@ -848,8 +847,8 @@  File: gst-libs.info, Node: I18N.RTELiteralNode class-initializing, Next: I18N.RTELiteralNode-computing, Up: I18N.RTELiteralNode -3.33.1 I18N.RTELiteralNode class: initializing ----------------------------------------------- +I18N.RTELiteralNode class: initializing +--------------------------------------- parseFrom: aStream Parse a literal number from aStream and return a new node @@ -858,8 +857,8 @@  File: gst-libs.info, Node: I18N.RTELiteralNode-computing, Prev: I18N.RTELiteralNode class-initializing, Up: I18N.RTELiteralNode -3.33.2 I18N.RTELiteralNode: computing -------------------------------------- +I18N.RTELiteralNode: computing +------------------------------ n: value Set the value of the literal that the node represents @@ -874,8 +873,8 @@  File: gst-libs.info, Node: I18N.RTENegationNode, Next: I18N.RTEParameterNode, Prev: I18N.RTELiteralNode, Up: I18N -3.34 I18N.RTENegationNode -========================= +I18N.RTENegationNode +==================== Defined in namespace I18N Superclass: I18N.RunTimeExpression @@ -889,8 +888,8 @@  File: gst-libs.info, Node: I18N.RTENegationNode class-initializing, Next: I18N.RTENegationNode-computing, Up: I18N.RTENegationNode -3.34.1 I18N.RTENegationNode class: initializing ------------------------------------------------ +I18N.RTENegationNode class: initializing +---------------------------------------- child: aNode Answer a new node representing the logical negation of aNode @@ -899,8 +898,8 @@  File: gst-libs.info, Node: I18N.RTENegationNode-computing, Prev: I18N.RTENegationNode class-initializing, Up: I18N.RTENegationNode -3.34.2 I18N.RTENegationNode: computing --------------------------------------- +I18N.RTENegationNode: computing +------------------------------- child: value Set the child of which the receiver will compute the negation @@ -915,8 +914,8 @@  File: gst-libs.info, Node: I18N.RTEParameterNode, Next: I18N.RunTimeExpression, Prev: I18N.RTENegationNode, Up: I18N -3.35 I18N.RTEParameterNode -========================== +I18N.RTEParameterNode +===================== Defined in namespace I18N Superclass: I18N.RunTimeExpression @@ -929,8 +928,8 @@  File: gst-libs.info, Node: I18N.RTEParameterNode-computing, Up: I18N.RTEParameterNode -3.35.1 I18N.RTEParameterNode: computing ---------------------------------------- +I18N.RTEParameterNode: computing +-------------------------------- printOn: aStream Print a representation of the receiver on aStream @@ -942,8 +941,8 @@  File: gst-libs.info, Node: I18N.RunTimeExpression, Prev: I18N.RTEParameterNode, Up: I18N -3.36 I18N.RunTimeExpression -=========================== +I18N.RunTimeExpression +====================== Defined in namespace I18N Superclass: Object @@ -959,8 +958,8 @@  File: gst-libs.info, Node: I18N.RunTimeExpression class-compiling, Next: I18N.RunTimeExpression class-initializing, Up: I18N.RunTimeExpression -3.36.1 I18N.RunTimeExpression class: compiling ----------------------------------------------- +I18N.RunTimeExpression class: compiling +--------------------------------------- parseExpression: stream Private - Compile the expression in the stream @@ -978,8 +977,8 @@  File: gst-libs.info, Node: I18N.RunTimeExpression class-initializing, Next: I18N.RunTimeExpression class-instance creation, Prev: I18N.RunTimeExpression class-compiling, Up: I18N.RunTimeExpression -3.36.2 I18N.RunTimeExpression class: initializing -------------------------------------------------- +I18N.RunTimeExpression class: initializing +------------------------------------------ initialize Private - Initialize internal tables for the parser @@ -988,8 +987,8 @@  File: gst-libs.info, Node: I18N.RunTimeExpression class-instance creation, Next: I18N.RunTimeExpression-computing, Prev: I18N.RunTimeExpression class-initializing, Up: I18N.RunTimeExpression -3.36.3 I18N.RunTimeExpression class: instance creation ------------------------------------------------------- +I18N.RunTimeExpression class: instance creation +----------------------------------------------- on: aString Compile aString and answer a RunTimeExpression @@ -998,8 +997,8 @@  File: gst-libs.info, Node: I18N.RunTimeExpression-computing, Prev: I18N.RunTimeExpression class-instance creation, Up: I18N.RunTimeExpression -3.36.4 I18N.RunTimeExpression: computing ----------------------------------------- +I18N.RunTimeExpression: computing +--------------------------------- send: parameter This method's functionality should be implemented by subclasses of @@ -1012,8 +1011,8 @@  File: gst-libs.info, Node: XML, Next: Class index, Prev: I18N, Up: Top -4 XML -***** +XML +*** _by Thomas Gagne_ @@ -1028,8 +1027,8 @@  File: gst-libs.info, Node: Building a DOM from XML, Next: Building XML, Up: XML -4.1 Building a DOM from XML -=========================== +Building a DOM from XML +======================= If you're like me, the first thing you may be trying to do is build a Document Object Model (DOM) tree from some kind of XML input. Assuming @@ -1149,8 +1148,8 @@  File: gst-libs.info, Node: Building XML, Next: Using DTDs, Prev: Building a DOM from XML, Up: XML -4.2 Building XML -================ +Building XML +============ There's little reason to build an XML document if its not going to be processed by something down the road. Most XML tools require XML @@ -1212,7 +1211,7 @@ asXMLElement: tag value: aValue | n | - + n := XML Element tag: tag. aValue isNil ifFalse: [ n addNode: (XML Text @@ -1235,8 +1234,8 @@  File: gst-libs.info, Node: Using DTDs, Next: XSL Processing, Prev: Building XML, Up: XML -4.3 Using DTDs -============== +Using DTDs +========== What I didn't appreciate in my first XML project (this one) was how much error checking I was doing just to verify the format of incoming @@ -1264,7 +1263,7 @@ replyDoc := XML Document new. replyDoc addNode: (XML Element tag: 'response'). - + [ doc := XML XMLParser processDocumentString: (anIsdMessage message copyWithout: 0) asString ] on: Exception do: [ :ex | @@ -1303,8 +1302,8 @@  File: gst-libs.info, Node: XSL Processing, Next: Attributions, Prev: Using DTDs, Up: XML -4.4 XSL Processing -================== +XSL Processing +============== I spent a night the other week trying to figure out how to get VW's XSL libraries to do anything. I no longer need it now, but I did discover @@ -1317,7 +1316,7 @@ A code snippet for doing just that appears below. | rules xmlDoc htmlDoc | - + rules := XSL RuleDatabase new readFileNamed: 'paymentspending.xsl'. xmlDoc := XML XMLParser processDocumentInFilename: 'paymentspending.xml' @@ -1338,8 +1337,8 @@  File: gst-libs.info, Node: Attributions, Prev: XSL Processing, Up: XML -4.5 Attributions -================ +Attributions +============ Cincom, for supporting Smalltalk and the Smalltalk community by making an open-source version available. @@ -1353,136 +1352,114 @@ Class index *********** -[index] * Menu: -* BLOX.BArc: BLOX.BArc. (line 6) -* BLOX.BBalloon: BLOX.BBalloon. (line 6) -* BLOX.BBoundingBox: BLOX.BBoundingBox. (line 6) -* BLOX.BButton: BLOX.BButton. (line 6) -* BLOX.BButtonLike: BLOX.BButtonLike. (line 6) -* BLOX.BCanvas: BLOX.BCanvas. (line 6) -* BLOX.BCanvasObject: BLOX.BCanvasObject. (line 6) -* BLOX.BCheckMenuItem: BLOX.BCheckMenuItem. (line 6) -* BLOX.BColorButton: BLOX.BColorButton. (line 6) -* BLOX.BContainer: BLOX.BContainer. (line 6) -* BLOX.BDialog: BLOX.BDialog. (line 6) -* BLOX.BDropDown: BLOX.BDropDown. (line 6) -* BLOX.BDropDownEdit: BLOX.BDropDownEdit. (line 6) -* BLOX.BDropDownList: BLOX.BDropDownList. (line 6) -* BLOX.BEdit: BLOX.BEdit. (line 6) -* BLOX.BEmbeddedImage: BLOX.BEmbeddedImage. (line 6) -* BLOX.BEmbeddedText: BLOX.BEmbeddedText. (line 6) -* BLOX.BEventSet: BLOX.BEventSet. (line 6) -* BLOX.BEventTarget: BLOX.BEventTarget. (line 6) -* BLOX.BExtended: BLOX.BExtended. (line 6) -* BLOX.BForm: BLOX.BForm. (line 6) -* BLOX.BImage: BLOX.BImage. (line 6) -* BLOX.BLabel: BLOX.BLabel. (line 6) -* BLOX.BLine: BLOX.BLine. (line 6) -* BLOX.BList: BLOX.BList. (line 6) -* BLOX.Blox: BLOX.Blox. (line 6) -* BLOX.BMenu: BLOX.BMenu. (line 6) -* BLOX.BMenuBar: BLOX.BMenuBar. (line 6) -* BLOX.BMenuItem: BLOX.BMenuItem. (line 6) -* BLOX.BMenuObject: BLOX.BMenuObject. (line 6) -* BLOX.BOval: BLOX.BOval. (line 6) -* BLOX.BPolyline: BLOX.BPolyline. (line 6) -* BLOX.BPopupMenu: BLOX.BPopupMenu. (line 6) -* BLOX.BPopupWindow: BLOX.BPopupWindow. (line 6) -* BLOX.BPrimitive: BLOX.BPrimitive. (line 6) -* BLOX.BProgress: BLOX.BProgress. (line 6) -* BLOX.BRadioButton: BLOX.BRadioButton. (line 6) -* BLOX.BRadioGroup: BLOX.BRadioGroup. (line 6) -* BLOX.BRectangle: BLOX.BRectangle. (line 6) -* BLOX.BScrolledCanvas: BLOX.BScrolledCanvas. (line 6) -* BLOX.BSpline: BLOX.BSpline. (line 6) -* BLOX.BText: BLOX.BText. (line 6) -* BLOX.BTextAttributes: BLOX.BTextAttributes. (line 6) -* BLOX.BTextBindings: BLOX.BTextBindings. (line 6) -* BLOX.BTextTags: BLOX.BTextTags. (line 6) -* BLOX.BToggle: BLOX.BToggle. (line 6) -* BLOX.BTransientWindow: BLOX.BTransientWindow. (line 6) -* BLOX.BViewport: BLOX.BViewport. (line 6) -* BLOX.BWidget: BLOX.BWidget. (line 6) -* BLOX.BWindow: BLOX.BWindow. (line 6) -* BLOX.Gui: BLOX.Gui. (line 6) +* BLOX.BArc: BLOX.BArc. +* BLOX.BBalloon: BLOX.BBalloon. +* BLOX.BBoundingBox: BLOX.BBoundingBox. +* BLOX.BButton: BLOX.BButton. +* BLOX.BButtonLike: BLOX.BButtonLike. +* BLOX.BCanvas: BLOX.BCanvas. +* BLOX.BCanvasObject: BLOX.BCanvasObject. +* BLOX.BCheckMenuItem: BLOX.BCheckMenuItem. +* BLOX.BColorButton: BLOX.BColorButton. +* BLOX.BContainer: BLOX.BContainer. +* BLOX.BDialog: BLOX.BDialog. +* BLOX.BDropDown: BLOX.BDropDown. +* BLOX.BDropDownEdit: BLOX.BDropDownEdit. +* BLOX.BDropDownList: BLOX.BDropDownList. +* BLOX.BEdit: BLOX.BEdit. +* BLOX.BEmbeddedImage: BLOX.BEmbeddedImage. +* BLOX.BEmbeddedText: BLOX.BEmbeddedText. +* BLOX.BEventSet: BLOX.BEventSet. +* BLOX.BEventTarget: BLOX.BEventTarget. +* BLOX.BExtended: BLOX.BExtended. +* BLOX.BForm: BLOX.BForm. +* BLOX.BImage: BLOX.BImage. +* BLOX.BLabel: BLOX.BLabel. +* BLOX.BLine: BLOX.BLine. +* BLOX.BList: BLOX.BList. +* BLOX.Blox: BLOX.Blox. +* BLOX.BMenu: BLOX.BMenu. +* BLOX.BMenuBar: BLOX.BMenuBar. +* BLOX.BMenuItem: BLOX.BMenuItem. +* BLOX.BMenuObject: BLOX.BMenuObject. +* BLOX.BOval: BLOX.BOval. +* BLOX.BPolyline: BLOX.BPolyline. +* BLOX.BPopupMenu: BLOX.BPopupMenu. +* BLOX.BPopupWindow: BLOX.BPopupWindow. +* BLOX.BPrimitive: BLOX.BPrimitive. +* BLOX.BProgress: BLOX.BProgress. +* BLOX.BRadioButton: BLOX.BRadioButton. +* BLOX.BRadioGroup: BLOX.BRadioGroup. +* BLOX.BRectangle: BLOX.BRectangle. +* BLOX.BScrolledCanvas: BLOX.BScrolledCanvas. +* BLOX.BSpline: BLOX.BSpline. +* BLOX.BText: BLOX.BText. +* BLOX.BTextAttributes: BLOX.BTextAttributes. +* BLOX.BTextBindings: BLOX.BTextBindings. +* BLOX.BTextTags: BLOX.BTextTags. +* BLOX.BToggle: BLOX.BToggle. +* BLOX.BTransientWindow: BLOX.BTransientWindow. +* BLOX.BViewport: BLOX.BViewport. +* BLOX.BWidget: BLOX.BWidget. +* BLOX.BWindow: BLOX.BWindow. +* BLOX.Gui: BLOX.Gui. * I18N.BigEndianFileStream: I18N.BigEndianFileStream. - (line 6) -* I18N.EncodedStream: I18N.EncodedStream. (line 6) -* I18N.Encoder: I18N.Encoder. (line 6) +* I18N.EncodedStream: I18N.EncodedStream. +* I18N.Encoder: I18N.Encoder. * I18N.Encoders.ComposeUCS4BE: I18N.Encoders.ComposeUCS4BE. - (line 6) * I18N.Encoders.ComposeUCS4LE: I18N.Encoders.ComposeUCS4LE. - (line 6) * I18N.Encoders.FromUCS4: I18N.Encoders.FromUCS4. - (line 6) * I18N.Encoders.FromUTF7: I18N.Encoders.FromUTF7. - (line 6) -* I18N.Encoders.Iconv: I18N.Encoders.Iconv. (line 6) +* I18N.Encoders.Iconv: I18N.Encoders.Iconv. * I18N.Encoders.SplitUCS4BE: I18N.Encoders.SplitUCS4BE. - (line 6) * I18N.Encoders.SplitUCS4LE: I18N.Encoders.SplitUCS4LE. - (line 6) -* I18N.Encoders.ToUCS4: I18N.Encoders.ToUCS4. (line 6) -* I18N.Encoders.ToUTF7: I18N.Encoders.ToUTF7. (line 6) +* I18N.Encoders.ToUCS4: I18N.Encoders.ToUCS4. +* I18N.Encoders.ToUTF7: I18N.Encoders.ToUTF7. * I18N.FileStreamSegment: I18N.FileStreamSegment. - (line 6) * I18N.IncompleteSequenceError: I18N.IncompleteSequenceError. - (line 6) * I18N.InvalidCharsetError: I18N.InvalidCharsetError. - (line 6) * I18N.InvalidSequenceError: I18N.InvalidSequenceError. - (line 6) -* I18N.LcMessages: I18N.LcMessages. (line 6) +* I18N.LcMessages: I18N.LcMessages. * I18N.LcMessagesCatalog: I18N.LcMessagesCatalog. - (line 6) -* I18N.LcMessagesDomain: I18N.LcMessagesDomain. (line 6) +* I18N.LcMessagesDomain: I18N.LcMessagesDomain. * I18N.LcMessagesDummyDomain: I18N.LcMessagesDummyDomain. - (line 6) * I18N.LcMessagesMoFileVersion0: I18N.LcMessagesMoFileVersion0. - (line 6) * I18N.LcMessagesTerritoryDomain: I18N.LcMessagesTerritoryDomain. - (line 6) -* I18N.LcMonetary: I18N.LcMonetary. (line 6) -* I18N.LcMonetaryISO: I18N.LcMonetaryISO. (line 6) -* I18N.LcNumeric: I18N.LcNumeric. (line 6) -* I18N.LcPrintFormats: I18N.LcPrintFormats. (line 6) -* I18N.LcTime: I18N.LcTime. (line 6) -* I18N.Locale: I18N.Locale. (line 6) +* I18N.LcMonetary: I18N.LcMonetary. +* I18N.LcMonetaryISO: I18N.LcMonetaryISO. +* I18N.LcNumeric: I18N.LcNumeric. +* I18N.LcPrintFormats: I18N.LcPrintFormats. +* I18N.LcTime: I18N.LcTime. +* I18N.Locale: I18N.Locale. * I18N.LocaleConventions: I18N.LocaleConventions. - (line 6) -* I18N.LocaleData: I18N.LocaleData. (line 6) +* I18N.LocaleData: I18N.LocaleData. * I18N.RTEAlternativeNode: I18N.RTEAlternativeNode. - (line 6) -* I18N.RTEBinaryNode: I18N.RTEBinaryNode. (line 6) -* I18N.RTELiteralNode: I18N.RTELiteralNode. (line 6) -* I18N.RTENegationNode: I18N.RTENegationNode. (line 6) -* I18N.RTEParameterNode: I18N.RTEParameterNode. (line 6) +* I18N.RTEBinaryNode: I18N.RTEBinaryNode. +* I18N.RTELiteralNode: I18N.RTELiteralNode. +* I18N.RTENegationNode: I18N.RTENegationNode. +* I18N.RTEParameterNode: I18N.RTEParameterNode. * I18N.RunTimeExpression: I18N.RunTimeExpression. - (line 6) -* TCP.AbstractSocket: TCP.AbstractSocket. (line 6) +* TCP.AbstractSocket: TCP.AbstractSocket. * TCP.AbstractSocketImpl: TCP.AbstractSocketImpl. - (line 6) -* TCP.Datagram: TCP.Datagram. (line 6) -* TCP.DatagramSocket: TCP.DatagramSocket. (line 6) +* TCP.Datagram: TCP.Datagram. +* TCP.DatagramSocket: TCP.DatagramSocket. * TCP.DatagramSocketImpl: TCP.DatagramSocketImpl. - (line 6) -* TCP.ICMPSocketImpl: TCP.ICMPSocketImpl. (line 6) -* TCP.IPAddress: TCP.IPAddress. (line 6) -* TCP.MulticastSocket: TCP.MulticastSocket. (line 6) +* TCP.ICMPSocketImpl: TCP.ICMPSocketImpl. +* TCP.IPAddress: TCP.IPAddress. +* TCP.MulticastSocket: TCP.MulticastSocket. * TCP.MulticastSocketImpl: TCP.MulticastSocketImpl. - (line 6) -* TCP.OOBSocketImpl: TCP.OOBSocketImpl. (line 6) -* TCP.RawSocketImpl: TCP.RawSocketImpl. (line 6) -* TCP.ReadBuffer: TCP.ReadBuffer. (line 6) -* TCP.ServerSocket: TCP.ServerSocket. (line 6) -* TCP.Socket: TCP.Socket. (line 6) -* TCP.SocketAddress: TCP.SocketAddress. (line 6) -* TCP.SocketImpl: TCP.SocketImpl. (line 6) -* TCP.TCPSocketImpl: TCP.TCPSocketImpl. (line 6) -* TCP.UDPSocketImpl: TCP.UDPSocketImpl. (line 6) -* TCP.WriteBuffer: TCP.WriteBuffer. (line 6) +* TCP.OOBSocketImpl: TCP.OOBSocketImpl. +* TCP.RawSocketImpl: TCP.RawSocketImpl. +* TCP.ReadBuffer: TCP.ReadBuffer. +* TCP.ServerSocket: TCP.ServerSocket. +* TCP.Socket: TCP.Socket. +* TCP.SocketAddress: TCP.SocketAddress. +* TCP.SocketImpl: TCP.SocketImpl. +* TCP.TCPSocketImpl: TCP.TCPSocketImpl. +* TCP.UDPSocketImpl: TCP.UDPSocketImpl. +* TCP.WriteBuffer: TCP.WriteBuffer.  File: gst-libs.info, Node: Method index, Next: Cross-reference, Prev: Class index, Up: Top @@ -1490,2245 +1467,1139 @@ Method index ************ -[index] * Menu: * =: TCP.SocketAddress-accessing. - (line 6) * ? <1>: I18N.LocaleConventions-accessing. - (line 6) * ? <2>: I18N.LocaleConventions class-accessing. - (line 6) -* ? <3>: I18N.LcPrintFormats-printing. - (line 6) -* ? <4>: I18N.LcMessagesDomain-querying. - (line 6) -* ?: I18N.LcMessages-opening MO files. - (line 6) +* ? <3>: I18N.LcMessages-opening MO files. +* ? <4>: I18N.LcPrintFormats-printing. +* ?: I18N.LcMessagesDomain-querying. * accept: TCP.ServerSocket-accessing. - (line 6) -* accept_ <1>: TCP.ServerSocket-accessing. - (line 10) -* accept_: TCP.AbstractSocketImpl-socket operations. - (line 6) +* accept_ <1>: TCP.AbstractSocketImpl-socket operations. +* accept_: TCP.ServerSocket-accessing. * activate: BLOX.BWidget-widget protocol. - (line 6) * activateNext: BLOX.BWidget-widget protocol. - (line 21) * activatePrevious: BLOX.BWidget-widget protocol. - (line 26) * active: BLOX.Blox class-utility. - (line 6) * activeBackground: BLOX.BMenuObject-accessing. - (line 6) * activeBackground_: BLOX.BMenuObject-accessing. - (line 15) * activeForeground: BLOX.BMenuObject-accessing. - (line 24) * activeForeground_: BLOX.BMenuObject-accessing. - (line 29) * add_: BLOX.BMenuBar-accessing. - (line 6) -* add_afterIndex_ <1>: BLOX.BList-accessing. - (line 6) -* add_afterIndex_: BLOX.BDropDown-list box accessing. - (line 6) +* add_afterIndex_ <1>: BLOX.BDropDown-list box accessing. +* add_afterIndex_: BLOX.BList-accessing. * add_element_afterIndex_ <1>: BLOX.BList-accessing. - (line 11) * add_element_afterIndex_: BLOX.BDropDown-list box accessing. - (line 11) * addButton_receiver_index_: BLOX.BDialog-accessing. - (line 6) * addButton_receiver_message_: BLOX.BDialog-accessing. - (line 12) * addButton_receiver_message_argument_: BLOX.BDialog-accessing. - (line 17) -* addChild_ <1>: BLOX.BWidget-customization. - (line 6) -* addChild_ <2>: BLOX.BPopupWindow-geometry management. - (line 6) -* addChild_ <3>: BLOX.Blox-customization. - (line 6) +* addChild_ <1>: BLOX.Blox-customization. +* addChild_ <2>: BLOX.BWidget-customization. +* addChild_ <3>: BLOX.BPopupWindow-geometry management. * addChild_: BLOX.BCanvas-geometry management. - (line 6) * addEventSet_: BLOX.BEventTarget-intercepting events. - (line 6) * addLast_ <1>: BLOX.BList-accessing. - (line 19) * addLast_: BLOX.BDropDown-list box accessing. - (line 19) -* addLast_element_ <1>: BLOX.BList-accessing. - (line 24) -* addLast_element_: BLOX.BDropDown-list box accessing. - (line 24) +* addLast_element_ <1>: BLOX.BDropDown-list box accessing. +* addLast_element_: BLOX.BList-accessing. * 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. - (line 15) -* address <3>: TCP.DatagramSocket-accessing. - (line 6) -* address <4>: TCP.Datagram-accessing. - (line 6) -* address: TCP.AbstractSocket-accessing. - (line 6) +* address <1>: TCP.Datagram-accessing. +* address <2>: TCP.Socket-accessing. +* address <3>: TCP.AbstractSocket-accessing. +* address <4>: TCP.DatagramSocket-accessing. +* address: TCP.ServerSocket-accessing. * address_: TCP.Datagram-accessing. - (line 9) -* addressClass <1>: TCP.UDPSocketImpl class-implementation. - (line 6) -* addressClass <2>: TCP.TCPSocketImpl class-implementation. - (line 6) -* addressClass <3>: TCP.OOBSocketImpl class-implementation. - (line 6) -* addressClass <4>: TCP.IPAddress-accessing. - (line 6) -* addressClass <5>: TCP.ICMPSocketImpl class-implementation. - (line 6) -* addressClass <6>: TCP.AbstractSocketImpl-socket operations. - (line 11) -* addressClass: TCP.AbstractSocketImpl class-abstract. - (line 6) +* addressClass <1>: TCP.ICMPSocketImpl class-implementation. +* addressClass <2>: TCP.UDPSocketImpl class-implementation. +* addressClass <3>: TCP.TCPSocketImpl class-implementation. +* addressClass <4>: TCP.AbstractSocketImpl class-abstract. +* addressClass <5>: TCP.AbstractSocketImpl-socket operations. +* addressClass <6>: TCP.OOBSocketImpl class-implementation. +* addressClass: TCP.IPAddress-accessing. * addressFamily: TCP.SocketAddress class-accessing. - (line 6) * addressSize: TCP.IPAddress class-constants. - (line 6) * alignment: BLOX.BLabel-accessing. - (line 6) * alignment_: BLOX.BLabel-accessing. - (line 15) * allByName_: TCP.SocketAddress class-host name lookup. - (line 6) -* allFormatsExample: I18N.LcTime-tests. (line 6) +* allFormatsExample: I18N.LcTime-tests. * anyLocalAddress: TCP.SocketAddress class-accessing. - (line 10) -* asByteArray <1>: TCP.SocketAddress-accessing. - (line 13) -* asByteArray: TCP.IPAddress-accessing. - (line 10) +* asByteArray <1>: TCP.IPAddress-accessing. +* asByteArray: TCP.SocketAddress-accessing. * asPrimitiveWidget <1>: BLOX.BPrimitive-accessing. - (line 6) * asPrimitiveWidget <2>: BLOX.BMenuObject-accessing. - (line 34) * asPrimitiveWidget <3>: BLOX.Blox-widget protocol. - (line 6) * asPrimitiveWidget: BLOX.BExtended-accessing. - (line 6) * associationAt_ <1>: BLOX.BList-accessing. - (line 32) * associationAt_: BLOX.BDropDown-list box accessing. - (line 32) -* at_ <1>: I18N.LcMessagesDomain-querying. - (line 10) -* at_ <2>: BLOX.Blox class-utility. - (line 10) -* at_ <3>: BLOX.BList-accessing. - (line 37) -* at_ <4>: BLOX.BDropDown-list box accessing. - (line 37) -* at_: BLOX.BCanvas-widget protocol. - (line 6) +* at_ <1>: BLOX.BDropDown-list box accessing. +* at_ <2>: BLOX.BCanvas-widget protocol. +* at_ <3>: I18N.LcMessagesDomain-querying. +* at_ <4>: BLOX.Blox class-utility. +* at_: BLOX.BList-accessing. * at_cache_: TCP.SocketAddress class-accessing. - (line 13) * at_plural_with_: I18N.LcMessagesDomain-querying. - (line 14) * at_put_: I18N.LcMessagesDomain-querying. - (line 18) -* atEnd <1>: I18N.Encoders.ToUTF7-conversion. - (line 6) -* atEnd <2>: I18N.Encoders.SplitUCS4LE-stream operation. - (line 6) -* atEnd <3>: I18N.Encoders.SplitUCS4BE-stream operation. - (line 6) -* atEnd <4>: I18N.Encoders.Iconv-stream operation. - (line 6) -* atEnd <5>: I18N.Encoders.FromUTF7-converting. - (line 6) -* atEnd <6>: I18N.Encoder-stream operations. - (line 6) -* atEnd <7>: TCP.Socket-stream protocol. - (line 6) -* atEnd <8>: TCP.ReadBuffer-buffer handling. - (line 6) -* atEnd: TCP.AbstractSocket-stream protocol. - (line 6) +* atEnd <1>: I18N.Encoders.SplitUCS4BE-stream operation. +* atEnd <2>: I18N.Encoders.FromUTF7-converting. +* atEnd <3>: I18N.Encoders.Iconv-stream operation. +* atEnd <4>: TCP.ReadBuffer-buffer handling. +* atEnd <5>: TCP.Socket-stream protocol. +* atEnd <6>: TCP.AbstractSocket-stream protocol. +* atEnd <7>: I18N.Encoder-stream operations. +* atEnd <8>: I18N.Encoders.ToUTF7-conversion. +* atEnd: I18N.Encoders.SplitUCS4LE-stream operation. * atEndOfInput: I18N.Encoder-stream operations. - (line 11) * atMouse: BLOX.Blox class-utility. - (line 15) -* available <1>: TCP.Socket-stream protocol. - (line 9) -* available: TCP.AbstractSocket-accessing. - (line 11) -* backgroundColor <1>: BLOX.BTextAttributes-setting attributes. - (line 6) -* backgroundColor <2>: BLOX.BText-accessing. - (line 6) -* backgroundColor <3>: BLOX.BProgress-accessing. - (line 6) -* backgroundColor <4>: BLOX.BMenuObject-accessing. - (line 37) -* backgroundColor <5>: BLOX.BList-accessing. - (line 40) -* backgroundColor <6>: BLOX.BLabel-accessing. - (line 24) -* backgroundColor <7>: BLOX.BImage-accessing. - (line 6) -* backgroundColor <8>: BLOX.BForm-accessing. - (line 6) -* backgroundColor <9>: BLOX.BEdit-accessing. - (line 6) -* backgroundColor <10>: BLOX.BDropDown-accessing. - (line 6) -* backgroundColor <11>: BLOX.BCanvas-accessing. - (line 6) -* backgroundColor: BLOX.BButton-accessing. - (line 6) -* backgroundColor_ <1>: BLOX.BTextAttributes-setting attributes. - (line 12) -* backgroundColor_ <2>: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 6) -* backgroundColor_ <3>: BLOX.BText-accessing. - (line 11) -* backgroundColor_ <4>: BLOX.BProgress-accessing. - (line 11) -* backgroundColor_ <5>: BLOX.BMenuObject-accessing. - (line 42) -* backgroundColor_ <6>: BLOX.BList-accessing. - (line 45) -* backgroundColor_ <7>: BLOX.BLabel-accessing. - (line 29) -* backgroundColor_ <8>: BLOX.BImage-accessing. - (line 11) -* backgroundColor_ <9>: BLOX.BForm-accessing. - (line 11) -* backgroundColor_ <10>: BLOX.BEdit-accessing. - (line 11) -* backgroundColor_ <11>: BLOX.BDropDownList-accessing. - (line 6) -* backgroundColor_ <12>: BLOX.BDropDownEdit-accessing. - (line 6) -* backgroundColor_ <13>: BLOX.BDropDown-accessing. - (line 13) -* backgroundColor_ <14>: BLOX.BCanvas-accessing. - (line 11) -* backgroundColor_: BLOX.BButton-accessing. - (line 11) +* available <1>: TCP.AbstractSocket-accessing. +* available: TCP.Socket-stream protocol. +* backgroundColor <1>: BLOX.BDropDown-accessing. +* backgroundColor <2>: BLOX.BTextAttributes-setting attributes. +* backgroundColor <3>: BLOX.BButton-accessing. +* backgroundColor <4>: BLOX.BProgress-accessing. +* backgroundColor <5>: BLOX.BMenuObject-accessing. +* backgroundColor <6>: BLOX.BCanvas-accessing. +* backgroundColor <7>: BLOX.BForm-accessing. +* backgroundColor <8>: BLOX.BImage-accessing. +* backgroundColor <9>: BLOX.BList-accessing. +* backgroundColor <10>: BLOX.BEdit-accessing. +* backgroundColor <11>: BLOX.BLabel-accessing. +* backgroundColor: BLOX.BText-accessing. +* backgroundColor_ <1>: BLOX.BDropDownEdit-accessing. +* backgroundColor_ <2>: BLOX.BProgress-accessing. +* backgroundColor_ <3>: BLOX.BImage-accessing. +* backgroundColor_ <4>: BLOX.BTextAttributes class-instance-creation shortcuts. +* backgroundColor_ <5>: BLOX.BText-accessing. +* backgroundColor_ <6>: BLOX.BForm-accessing. +* backgroundColor_ <7>: BLOX.BList-accessing. +* backgroundColor_ <8>: BLOX.BTextAttributes-setting attributes. +* backgroundColor_ <9>: BLOX.BButton-accessing. +* backgroundColor_ <10>: BLOX.BLabel-accessing. +* backgroundColor_ <11>: BLOX.BDropDown-accessing. +* backgroundColor_ <12>: BLOX.BMenuObject-accessing. +* backgroundColor_ <13>: BLOX.BCanvas-accessing. +* backgroundColor_ <14>: BLOX.BEdit-accessing. +* backgroundColor_: BLOX.BDropDownList-accessing. * balloonDelayTime: BLOX.BBalloon class-accessing. - (line 6) * balloonDelayTime_: BLOX.BBalloon class-accessing. - (line 10) * basicAddChild_: BLOX.Blox-customization. - (line 13) * basicPrint_on_: I18N.LcNumeric-printing. - (line 6) * beep: BLOX.Blox class-utility. - (line 20) * between_and_do_: BLOX.BCanvas-widget protocol. - (line 10) * bindTo_port_: TCP.AbstractSocketImpl-socket operations. - (line 15) * black <1>: BLOX.BTextAttributes-colors. - (line 6) * black: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 10) * blank: BLOX.BImage-image management. - (line 6) -* blox <1>: BLOX.Gui-accessing. (line 6) -* blox: BLOX.BCanvasObject-accessing. - (line 6) -* blox_: BLOX.Gui-accessing. (line 9) +* blox <1>: BLOX.BCanvasObject-accessing. +* blox: BLOX.Gui-accessing. +* blox_: BLOX.Gui-accessing. * blue <1>: BLOX.BTextAttributes-colors. - (line 9) * blue: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 13) * borderWidth: BLOX.BWidget-accessing. - (line 6) * borderWidth_: BLOX.BWidget-accessing. - (line 14) -* boundingBox <1>: BLOX.BWidget-geometry management. - (line 6) -* boundingBox <2>: BLOX.BPolyline-accessing. - (line 6) -* boundingBox <3>: BLOX.BCanvasObject-accessing. - (line 9) -* boundingBox <4>: BLOX.BCanvas-widget protocol. - (line 15) +* boundingBox <1>: BLOX.BCanvas-widget protocol. +* boundingBox <2>: BLOX.BCanvasObject-accessing. +* boundingBox <3>: BLOX.BWidget-geometry management. +* boundingBox <4>: BLOX.BPolyline-accessing. * boundingBox: BLOX.BBoundingBox-accessing. - (line 6) * boundingBox_: BLOX.BWidget-geometry management. - (line 9) * bringToTop: BLOX.BWidget-widget protocol. - (line 31) -* bufferContents <1>: TCP.Socket-stream protocol. - (line 13) -* bufferContents: TCP.ReadBuffer-buffer handling. - (line 9) +* bufferContents <1>: TCP.ReadBuffer-buffer handling. +* bufferContents: TCP.Socket-stream protocol. * bufferSize <1>: TCP.DatagramSocketImpl-accessing. - (line 6) * bufferSize: TCP.DatagramSocket-accessing. - (line 9) -* bufferSize_ <1>: TCP.DatagramSocketImpl-accessing. - (line 9) -* bufferSize_: TCP.DatagramSocket-accessing. - (line 12) +* bufferSize_ <1>: TCP.DatagramSocket-accessing. +* bufferSize_: TCP.DatagramSocketImpl-accessing. * byName_: TCP.SocketAddress class-host name lookup. - (line 12) -* callback <1>: BLOX.BWindow-accessing. - (line 6) -* callback <2>: BLOX.BText-accessing. - (line 16) -* callback <3>: BLOX.BMenuObject-callback. - (line 6) -* callback <4>: BLOX.BList-widget protocol. - (line 6) -* callback <5>: BLOX.BEdit-accessing. - (line 16) -* callback <6>: BLOX.BDropDown-callbacks. - (line 6) -* callback <7>: BLOX.BButtonLike-accessing. - (line 6) -* callback: BLOX.BButton-accessing. - (line 16) -* callback_message_ <1>: BLOX.BWindow-accessing. - (line 10) -* callback_message_ <2>: BLOX.BToggle-accessing. - (line 6) -* callback_message_ <3>: BLOX.BText-accessing. - (line 20) -* callback_message_ <4>: BLOX.BRadioButton-accessing. - (line 6) +* callback <1>: BLOX.BText-accessing. +* callback <2>: BLOX.BWindow-accessing. +* callback <3>: BLOX.BEdit-accessing. +* callback <4>: BLOX.BDropDown-callbacks. +* callback <5>: BLOX.BButtonLike-accessing. +* callback <6>: BLOX.BMenuObject-callback. +* callback <7>: BLOX.BButton-accessing. +* callback: BLOX.BList-widget protocol. +* callback_message_ <1>: BLOX.BButton-accessing. +* callback_message_ <2>: BLOX.BDropDown-callbacks. +* callback_message_ <3>: BLOX.BRadioButton-accessing. +* callback_message_ <4>: BLOX.BWindow-accessing. * callback_message_ <5>: BLOX.BMenuObject-callback. - (line 10) -* callback_message_ <6>: BLOX.BList-widget protocol. - (line 10) -* callback_message_ <7>: BLOX.BEdit-accessing. - (line 20) +* callback_message_ <6>: BLOX.BText-accessing. +* callback_message_ <7>: BLOX.BButtonLike-accessing. * callback_message_ <8>: BLOX.BDropDownList-callbacks. - (line 6) -* callback_message_ <9>: BLOX.BDropDown-callbacks. - (line 10) -* callback_message_ <10>: BLOX.BButtonLike-accessing. - (line 10) -* callback_message_: BLOX.BButton-accessing. - (line 20) +* callback_message_ <9>: BLOX.BEdit-accessing. +* callback_message_ <10>: BLOX.BToggle-accessing. +* callback_message_: BLOX.BList-widget protocol. * 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. - (line 6) -* cap_ <1>: BLOX.BPolyline-accessing. - (line 15) -* cap_: BLOX.BLine-accessing. - (line 11) +* cap_ <1>: BLOX.BLine-accessing. +* cap_: BLOX.BPolyline-accessing. * category <1>: I18N.LocaleData class-accessing. - (line 6) -* category <2>: I18N.LcTime class-accessing. - (line 6) -* category <3>: I18N.LcNumeric class-accessing. - (line 6) -* category <4>: I18N.LcMonetary class-accessing. - (line 6) -* category: I18N.LcMessages class-accessing. - (line 6) -* center <1>: BLOX.BWindow-widget protocol. - (line 6) -* center <2>: BLOX.BTextAttributes-setting attributes. - (line 18) -* center <3>: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 16) +* category <2>: I18N.LcMonetary class-accessing. +* category <3>: I18N.LcTime class-accessing. +* category <4>: I18N.LcMessages class-accessing. +* category: I18N.LcNumeric class-accessing. +* center <1>: BLOX.BTextAttributes class-instance-creation shortcuts. +* center <2>: BLOX.BWindow-widget protocol. +* center <3>: BLOX.BBoundingBox-accessing. * center <4>: BLOX.BDialog-widget protocol. - (line 6) -* center: BLOX.BBoundingBox-accessing. - (line 9) +* center: BLOX.BTextAttributes-setting attributes. * center_extent_: BLOX.BBoundingBox-accessing. - (line 12) * centerIn_ <1>: BLOX.BWindow-widget protocol. - (line 9) * centerIn_: BLOX.BDialog-widget protocol. - (line 9) * charset: I18N.LocaleData-accessing. - (line 6) * charsInLine_: BLOX.BText-position & lines. - (line 6) * checkPeriod: TCP.AbstractSocket class-timed-out operations. - (line 6) * checkPeriod_: TCP.AbstractSocket class-timed-out operations. - (line 11) * child_ <1>: I18N.RTENegationNode-computing. - (line 6) * child_: I18N.RTENegationNode class-initializing. - (line 6) * child_height_ <1>: BLOX.BWidget-geometry management. - (line 12) -* child_height_ <2>: BLOX.BText-geometry management. - (line 6) -* child_height_ <3>: BLOX.BPopupWindow-geometry management. - (line 14) +* child_height_ <2>: BLOX.BPopupWindow-geometry management. +* child_height_ <3>: BLOX.BText-geometry management. * child_height_: BLOX.BCanvas-geometry management. - (line 13) -* child_heightOffset_ <1>: 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_ <1>: BLOX.BCanvas-geometry management. +* child_heightOffset_ <2>: BLOX.BWidget-geometry management. +* child_heightOffset_ <3>: BLOX.BText-geometry management. +* child_heightOffset_: BLOX.BPopupWindow-geometry management. * child_stretch_: BLOX.BWidget-geometry management. - (line 33) -* child_width_ <1>: BLOX.BWidget-geometry management. - (line 40) +* child_width_ <1>: BLOX.BPopupWindow-geometry management. * child_width_ <2>: BLOX.BText-geometry management. - (line 13) -* child_width_ <3>: BLOX.BPopupWindow-geometry management. - (line 21) +* child_width_ <3>: BLOX.BWidget-geometry management. * child_width_: BLOX.BCanvas-geometry management. - (line 19) -* child_widthOffset_ <1>: BLOX.BWidget-geometry management. - (line 51) -* child_widthOffset_ <2>: BLOX.BText-geometry management. - (line 16) -* child_widthOffset_ <3>: BLOX.BPopupWindow-geometry management. - (line 25) +* child_widthOffset_ <1>: BLOX.BText-geometry management. +* child_widthOffset_ <2>: BLOX.BPopupWindow-geometry management. +* child_widthOffset_ <3>: BLOX.BWidget-geometry management. * child_widthOffset_: BLOX.BCanvas-geometry management. - (line 22) * child_x_ <1>: BLOX.BWidget-geometry management. - (line 61) * child_x_ <2>: BLOX.BText-geometry management. - (line 20) * child_x_ <3>: BLOX.BPopupWindow-geometry management. - (line 28) * child_x_: BLOX.BCanvas-geometry management. - (line 25) -* child_xOffset_ <1>: BLOX.BWidget-geometry management. - (line 71) +* child_xOffset_ <1>: BLOX.BPopupWindow-geometry management. * child_xOffset_ <2>: BLOX.BText-geometry management. - (line 24) -* child_xOffset_ <3>: BLOX.BPopupWindow-geometry management. - (line 32) +* child_xOffset_ <3>: BLOX.BWidget-geometry management. * child_xOffset_: 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. - (line 35) * child_y_: BLOX.BCanvas-geometry management. - (line 32) -* child_yOffset_ <1>: BLOX.BWidget-geometry management. - (line 91) -* child_yOffset_ <2>: BLOX.BText-geometry management. - (line 31) -* child_yOffset_ <3>: BLOX.BPopupWindow-geometry management. - (line 39) +* child_yOffset_ <1>: BLOX.BText-geometry management. +* child_yOffset_ <2>: BLOX.BPopupWindow-geometry management. +* child_yOffset_ <3>: BLOX.BWidget-geometry management. * child_yOffset_: BLOX.BCanvas-geometry management. - (line 36) * childrenCount: BLOX.Blox-widget protocol. - (line 9) * childrenDo_: BLOX.Blox-widget protocol. - (line 12) * chooseColor_label_default_: BLOX.BDialog class-prompters. - (line 6) * chooseFileToOpen_label_default_defaultExtension_types_: BLOX.BDialog class-prompters. - (line 13) * chooseFileToSave_label_default_defaultExtension_types_: BLOX.BDialog class-prompters. - (line 36) * clearClipboard: BLOX.Blox class-utility. - (line 23) * clipboard: BLOX.Blox class-utility. - (line 26) * clipboard_: BLOX.Blox class-utility. - (line 29) * close <1>: TCP.Socket-stream protocol. - (line 16) * close: TCP.AbstractSocket-accessing. - (line 14) * closed: BLOX.BPolyline-accessing. - (line 21) * closed_: BLOX.BPolyline-accessing. - (line 24) * color <1>: BLOX.BColorButton-accessing. - (line 6) * color: BLOX.BCanvasObject-accessing. - (line 12) * color_ <1>: BLOX.BColorButton-accessing. - (line 9) * color_: BLOX.BCanvasObject-accessing. - (line 15) -* condition_ifTrue_ifFalse_ <1>: I18N.RTEAlternativeNode-computing. - (line 6) -* condition_ifTrue_ifFalse_: I18N.RTEAlternativeNode class-compiling. - (line 6) +* condition_ifTrue_ifFalse_ <1>: I18N.RTEAlternativeNode class-compiling. +* condition_ifTrue_ifFalse_: I18N.RTEAlternativeNode-computing. * connected: BLOX.BViewport-accessing. - (line 6) * connectTo_port_ <1>: TCP.SocketImpl-socket operations. - (line 6) * connectTo_port_: TCP.AbstractSocketImpl-accessing. - (line 6) -* contents <1>: BLOX.BText-accessing. - (line 25) -* contents <2>: BLOX.BEdit-accessing. - (line 25) -* contents: BLOX.BDialog-accessing. - (line 23) -* contents_ <1>: BLOX.BText-accessing. - (line 28) -* contents_ <2>: BLOX.BList-accessing. - (line 50) -* contents_ <3>: BLOX.BEdit-accessing. - (line 28) -* contents_ <4>: BLOX.BDropDown-list box accessing. - (line 40) -* contents_: BLOX.BDialog-accessing. - (line 27) +* contents <1>: BLOX.BEdit-accessing. +* contents <2>: BLOX.BDialog-accessing. +* contents: BLOX.BText-accessing. +* contents_ <1>: BLOX.BList-accessing. +* contents_ <2>: BLOX.BDialog-accessing. +* contents_ <3>: BLOX.BText-accessing. +* contents_ <4>: BLOX.BEdit-accessing. +* contents_: BLOX.BDropDown-list box accessing. * contents_elements_ <1>: BLOX.BList-accessing. - (line 54) * contents_elements_: BLOX.BDropDown-list box accessing. - (line 44) * copyInto_ <1>: BLOX.BEmbeddedImage-accessing. - (line 6) * copyInto_: BLOX.BCanvasObject-accessing. - (line 18) * copyObject: BLOX.BCanvasObject-accessing. - (line 23) * corner: BLOX.BBoundingBox-accessing. - (line 18) * corner_: BLOX.BBoundingBox-accessing. - (line 21) -* create <1>: BLOX.BWidget-customization. - (line 13) -* create <2>: BLOX.BExtended-customization. - (line 6) -* create: BLOX.BCanvasObject-widget protocol. - (line 6) +* create <1>: BLOX.BCanvasObject-widget protocol. +* create <2>: BLOX.BWidget-customization. +* create: BLOX.BExtended-customization. * createColor_green_blue_: BLOX.Blox class-utility. - (line 33) * createColor_magenta_yellow_: BLOX.Blox class-utility. - (line 38) * createColor_magenta_yellow_black_: BLOX.Blox class-utility. - (line 43) * createColor_saturation_value_: BLOX.Blox class-utility. - (line 48) * createCopy: BLOX.BCanvasObject-accessing. - (line 30) * createCopyInto_: BLOX.BCanvasObject-accessing. - (line 37) * created: BLOX.BCanvasObject-widget protocol. - (line 10) * createList: BLOX.BDropDown-flexibility. - (line 6) -* createLocalAddress <1>: TCP.SocketAddress class-initialization. - (line 6) -* createLocalAddress: TCP.IPAddress class-initialization. - (line 6) +* createLocalAddress <1>: TCP.IPAddress class-initialization. +* createLocalAddress: TCP.SocketAddress class-initialization. * createLoopbackHost <1>: TCP.SocketAddress class-initialization. - (line 10) * createLoopbackHost: TCP.IPAddress class-initialization. - (line 10) * createTextWidget: BLOX.BDropDown-flexibility. - (line 11) -* createUnknownAddress <1>: TCP.SocketAddress class-initialization. - (line 16) -* createUnknownAddress: TCP.IPAddress class-initialization. - (line 14) +* createUnknownAddress <1>: TCP.IPAddress class-initialization. +* createUnknownAddress: TCP.SocketAddress class-initialization. * currentColumn: BLOX.BText-position & lines. - (line 9) * currentLine: BLOX.BText-position & lines. - (line 13) * currentPosition: BLOX.BText-position & lines. - (line 17) * currentPosition_: BLOX.BText-position & lines. - (line 23) * cursor: BLOX.BWidget-accessing. - (line 22) * cursor_: BLOX.BWidget-accessing. - (line 28) * cyan <1>: BLOX.BTextAttributes-colors. - (line 12) * cyan: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 20) -* darkCyan <1>: BLOX.BTextAttributes-colors. - (line 15) -* darkCyan: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 23) +* darkCyan <1>: BLOX.BTextAttributes class-instance-creation shortcuts. +* darkCyan: BLOX.BTextAttributes-colors. * darkGreen <1>: BLOX.BTextAttributes-colors. - (line 18) * darkGreen: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 26) * darkMagenta <1>: BLOX.BTextAttributes-colors. - (line 21) * darkMagenta: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 29) -* data <1>: TCP.Datagram-accessing. - (line 12) -* data: BLOX.BEmbeddedImage-accessing. - (line 11) +* data <1>: BLOX.BEmbeddedImage-accessing. +* data: TCP.Datagram-accessing. * data_ <1>: TCP.Datagram-accessing. - (line 15) -* data_ <2>: TCP.Datagram class-instance creation. - (line 6) -* data_ <3>: BLOX.BImage-image management. - (line 9) +* data_ <2>: BLOX.BImage-image management. +* data_ <3>: TCP.Datagram class-instance creation. * data_: BLOX.BEmbeddedImage-accessing. - (line 16) * data_address_port_: TCP.Datagram class-instance creation. - (line 9) -* deepCopy <1>: BLOX.Blox-basic. (line 6) -* deepCopy: BLOX.BCanvasObject-accessing. - (line 42) -* default <1>: I18N.LocaleData class-accessing. - (line 9) -* default <2>: I18N.LocaleConventions class-accessing. - (line 9) -* default: I18N.Locale class-instance creation. - (line 6) +* deepCopy <1>: BLOX.BCanvasObject-accessing. +* deepCopy: BLOX.Blox-basic. +* default <1>: I18N.LocaleConventions class-accessing. +* default <2>: I18N.Locale class-instance creation. +* default: I18N.LocaleData class-accessing. * defaultAddressClass: TCP.AbstractSocket class-defaults. - (line 6) * defaultAddressClass_: TCP.AbstractSocket class-defaults. - (line 11) * defaultBufferSize: TCP.DatagramSocket class-accessing. - (line 6) * defaultBufferSize_: TCP.DatagramSocket class-accessing. - (line 9) * defaultDatagramSocketImplClass: TCP.SocketAddress class-accessing. - (line 18) * defaultDatagramSocketImplClass_: TCP.SocketAddress class-accessing. - (line 22) * defaultHeight: BLOX.BForm-accessing. - (line 16) * defaultHeight_: BLOX.BForm-accessing. - (line 22) -* defaultImplementationClass <1>: TCP.Socket class-accessing. - (line 6) +* defaultImplementationClass <1>: TCP.AbstractSocket class-defaults. * defaultImplementationClass <2>: TCP.DatagramSocket class-accessing. - (line 12) -* defaultImplementationClass: TCP.AbstractSocket class-defaults. - (line 16) +* defaultImplementationClass: TCP.Socket class-accessing. * defaultPortAt_: TCP.Socket class-well known ports. - (line 6) * defaultPortAt_ifAbsent_: TCP.Socket class-well known ports. - (line 10) * defaultPortAt_put_: TCP.Socket class-well known ports. - (line 14) * defaultQueueSize: TCP.ServerSocket class-instance creation. - (line 6) * defaultRawSocketImplClass: TCP.SocketAddress class-accessing. - (line 26) * defaultRawSocketImplClass_: TCP.SocketAddress class-accessing. - (line 30) * defaults: I18N.LocaleData class-database. - (line 6) * defaultStreamSocketImplClass: TCP.SocketAddress class-accessing. - (line 34) * defaultStreamSocketImplClass_: TCP.SocketAddress class-accessing. - (line 38) * defaultWidth: BLOX.BForm-accessing. - (line 28) * defaultWidth_: BLOX.BForm-accessing. - (line 34) * description <1>: I18N.InvalidSequenceError-accessing. - (line 6) * description <2>: I18N.InvalidCharsetError-accessing. - (line 6) * description: I18N.IncompleteSequenceError-accessing. - (line 6) -* destroy <1>: BLOX.BMenu-callback registration. - (line 23) -* destroy: BLOX.Blox-widget protocol. - (line 16) +* destroy <1>: BLOX.Blox-widget protocol. +* destroy: BLOX.BMenu-callback registration. * destroyed <1>: BLOX.BRadioGroup-widget protocol. - (line 6) -* destroyed <2>: BLOX.BImage-widget protocol. - (line 6) -* destroyed <3>: BLOX.BEdit-widget protocol. - (line 6) -* destroyed <4>: BLOX.BDialog-widget protocol. - (line 12) -* destroyed: BLOX.BCanvas-widget protocol. - (line 18) +* destroyed <2>: BLOX.BCanvas-widget protocol. +* destroyed <3>: BLOX.BDialog-widget protocol. +* destroyed <4>: BLOX.BEdit-widget protocol. +* destroyed: BLOX.BImage-widget protocol. * directory: BLOX.BImage class-small icons. - (line 6) * dispatchEvents: BLOX.Blox class-event dispatching. - (line 6) * dispatchEvents_: BLOX.Blox class-event dispatching. - (line 14) * displayHeight: BLOX.BImage-accessing. - (line 16) * displayHeight_: BLOX.BImage-accessing. - (line 22) * displayWidth: BLOX.BImage-accessing. - (line 28) * displayWidth_: BLOX.BImage-accessing. - (line 34) * dither: BLOX.BImage-image management. - (line 13) -* do_ <1>: BLOX.BList-accessing. - (line 59) -* do_ <2>: BLOX.BDropDown-list box accessing. - (line 49) -* do_: BLOX.BCanvas-widget protocol. - (line 22) +* do_ <1>: BLOX.BCanvas-widget protocol. +* do_ <2>: BLOX.BList-accessing. +* do_: BLOX.BDropDown-list box accessing. * domain_: I18N.LcMessages-opening MO files. - (line 11) * domain_localeDirectory_: I18N.LcMessages-opening MO files. - (line 16) * downArrow: BLOX.BImage class-arrows. - (line 6) * drawingArea: BLOX.Blox-widget protocol. - (line 19) * dropdown: BLOX.BDropDown-widget protocol. - (line 6) * droppedRows: BLOX.BDropDown-accessing. - (line 20) * droppedRows_: BLOX.BDropDown-accessing. - (line 24) * dropRectangle: BLOX.BDropDown-widget protocol. - (line 9) * effect: BLOX.BWidget-accessing. - (line 34) * effect_: BLOX.BWidget-accessing. - (line 46) * elements: BLOX.BList-accessing. - (line 62) -* elements_ <1>: BLOX.BList-accessing. - (line 66) -* elements_: BLOX.BDropDown-list box accessing. - (line 52) +* elements_ <1>: BLOX.BDropDown-list box accessing. +* elements_: BLOX.BList-accessing. * emacsLike: BLOX.BText class-accessing. - (line 6) * emacsLike_: BLOX.BText class-accessing. - (line 9) * empty <1>: BLOX.BMenu-callback registration. - (line 27) * empty: BLOX.BCanvas-widget protocol. - (line 25) * enabled: BLOX.Blox-widget protocol. - (line 26) * enabled_: BLOX.Blox-widget protocol. - (line 31) -* endAngle: BLOX.BArc-accessing. (line 6) -* endAngle_: BLOX.BArc-accessing. (line 10) +* endAngle: BLOX.BArc-accessing. +* endAngle_: BLOX.BArc-accessing. * ensureReadable <1>: TCP.OOBSocketImpl-implementation. - (line 9) * ensureReadable: TCP.AbstractSocketImpl-asynchronous operations. - (line 6) * ensureWriteable: TCP.AbstractSocketImpl-asynchronous operations. - (line 10) * events: BLOX.BTextAttributes-setting attributes. - (line 21) * events_ <1>: BLOX.BTextAttributes-setting attributes. - (line 25) * events_: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 32) * exclaim: BLOX.BImage class-icons. - (line 6) * exists: BLOX.Blox-widget protocol. - (line 36) -* extent <1>: BLOX.BWidget-geometry management. - (line 101) -* extent: BLOX.BBoundingBox-accessing. - (line 27) +* extent <1>: BLOX.BBoundingBox-accessing. +* extent: BLOX.BWidget-geometry management. * extent_ <1>: BLOX.BWidget-geometry management. - (line 104) * extent_: BLOX.BBoundingBox-accessing. - (line 30) * extraSpace: BLOX.BCanvas-widget protocol. - (line 28) * extraSpace_: BLOX.BCanvas-widget protocol. - (line 32) * file: BLOX.BImage class-small icons. - (line 9) * fileFormatDescription: I18N.LcMessagesMoFileVersion0 class-documentation. - (line 6) * fileName: I18N.FileStreamSegment-basic. - (line 6) * fileOp_: TCP.AbstractSocketImpl-socket operations. - (line 19) * fileOp_ifFail_: TCP.AbstractSocketImpl-socket operations. - (line 23) * fileOp_with_: TCP.AbstractSocketImpl-socket operations. - (line 27) * fileOp_with_ifFail_: TCP.AbstractSocketImpl-socket operations. - (line 31) * fileOp_with_with_: TCP.AbstractSocketImpl-socket operations. - (line 35) * fileOp_with_with_ifFail_: TCP.AbstractSocketImpl-socket operations. - (line 39) * fileOp_with_with_with_: TCP.AbstractSocketImpl-socket operations. - (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. - (line 12) +* fill <1>: TCP.ReadBuffer-buffer handling. +* fill: TCP.Socket-stream protocol. * fillBlock_: TCP.ReadBuffer-buffer handling. - (line 16) -* fillChord: BLOX.BArc-accessing. (line 14) +* fillChord: BLOX.BArc-accessing. * filledColor: BLOX.BProgress-accessing. - (line 16) * filledColor_: BLOX.BProgress-accessing. - (line 19) * fillFrom_extent_color_: BLOX.BImage-image management. - (line 22) * fillFrom_to_color_: BLOX.BImage-image management. - (line 26) * fillRectangle_color_: BLOX.BImage-image management. - (line 29) -* fillSlice: BLOX.BArc-accessing. (line 18) -* flush <1>: I18N.LocaleData class-accessing. - (line 13) -* flush <2>: I18N.Locale class-instance creation. - (line 10) -* flush <3>: I18N.LcMessagesMoFileVersion0-flushing the cache. - (line 6) -* flush <4>: I18N.LcMessagesDomain-handling the cache. - (line 6) -* flush <5>: I18N.Encoders.ToUTF7-conversion. - (line 9) -* flush <6>: I18N.Encoders.SplitUCS4LE-stream operation. - (line 9) -* flush <7>: I18N.Encoders.SplitUCS4BE-stream operation. - (line 9) -* flush <8>: I18N.Encoders.FromUTF7-converting. - (line 10) -* flush <9>: TCP.WriteBuffer-buffer handling. - (line 6) -* flush <10>: TCP.SocketAddress class-initialization. - (line 20) -* flush <11>: TCP.Socket-stream protocol. - (line 22) -* flush: TCP.AbstractSocket-accessing. - (line 17) +* fillSlice: BLOX.BArc-accessing. +* flush <1>: TCP.WriteBuffer-buffer handling. +* flush <2>: I18N.Encoders.FromUTF7-converting. +* flush <3>: I18N.LocaleData class-accessing. +* flush <4>: I18N.LcMessagesMoFileVersion0-flushing the cache. +* flush <5>: TCP.SocketAddress class-initialization. +* flush <6>: TCP.Socket-stream protocol. +* flush <7>: TCP.AbstractSocket-accessing. +* flush <8>: I18N.LcMessagesDomain-handling the cache. +* flush <9>: I18N.Locale class-instance creation. +* flush <10>: I18N.Encoders.ToUTF7-conversion. +* flush <11>: I18N.Encoders.SplitUCS4LE-stream operation. +* flush: I18N.Encoders.SplitUCS4BE-stream operation. * flushBlock_: TCP.WriteBuffer-buffer handling. - (line 9) -* font <1>: BLOX.BTextAttributes-setting attributes. - (line 29) -* font <2>: BLOX.BText-accessing. - (line 31) -* font <3>: BLOX.BList-accessing. - (line 70) -* font <4>: BLOX.BLabel-accessing. - (line 34) +* font <1>: BLOX.BEdit-accessing. +* font <2>: BLOX.BLabel-accessing. +* font <3>: BLOX.BText-accessing. +* font <4>: BLOX.BList-accessing. * font <5>: BLOX.BEmbeddedText-accessing. - (line 6) -* font <6>: BLOX.BEdit-accessing. - (line 31) -* font <7>: BLOX.BDropDown-accessing. - (line 28) +* font <6>: BLOX.BDropDown-accessing. +* font <7>: BLOX.BTextAttributes-setting attributes. * font: BLOX.BButton-accessing. - (line 25) -* font_ <1>: BLOX.BTextAttributes-setting attributes. - (line 48) -* font_ <2>: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 36) -* font_ <3>: BLOX.BText-accessing. - (line 50) -* font_ <4>: BLOX.BList-accessing. - (line 89) -* font_ <5>: BLOX.BLabel-accessing. - (line 53) -* font_ <6>: BLOX.BEmbeddedText-accessing. - (line 25) -* font_ <7>: BLOX.BEdit-accessing. - (line 50) -* font_ <8>: BLOX.BDropDownList-accessing. - (line 12) -* font_ <9>: BLOX.BDropDownEdit-accessing. - (line 11) -* font_ <10>: BLOX.BDropDown-accessing. - (line 50) -* font_: BLOX.BButton-accessing. - (line 44) +* font_ <1>: BLOX.BDropDownList-accessing. +* font_ <2>: BLOX.BEmbeddedText-accessing. +* font_ <3>: BLOX.BList-accessing. +* font_ <4>: BLOX.BTextAttributes class-instance-creation shortcuts. +* font_ <5>: BLOX.BTextAttributes-setting attributes. +* font_ <6>: BLOX.BButton-accessing. +* font_ <7>: BLOX.BDropDown-accessing. +* font_ <8>: BLOX.BDropDownEdit-accessing. +* font_ <9>: BLOX.BLabel-accessing. +* font_ <10>: BLOX.BEdit-accessing. +* font_: BLOX.BText-accessing. * fontHeight_: BLOX.Blox-widget protocol. - (line 40) * fonts: BLOX.Blox class-utility. - (line 53) * fontWidth_: BLOX.Blox-widget protocol. - (line 45) -* foregroundColor <1>: BLOX.BTextAttributes-setting attributes. - (line 67) -* foregroundColor <2>: BLOX.BText-accessing. - (line 69) -* foregroundColor <3>: BLOX.BProgress-accessing. - (line 22) -* foregroundColor <4>: BLOX.BMenuObject-accessing. - (line 47) -* foregroundColor <5>: BLOX.BList-accessing. - (line 108) -* foregroundColor <6>: BLOX.BLabel-accessing. - (line 72) -* foregroundColor <7>: BLOX.BImage-accessing. - (line 40) -* foregroundColor <8>: BLOX.BEdit-accessing. - (line 69) -* foregroundColor <9>: BLOX.BDropDown-accessing. - (line 72) -* foregroundColor <10>: BLOX.BCanvas-accessing. - (line 16) -* foregroundColor: BLOX.BButton-accessing. - (line 63) -* foregroundColor_ <1>: BLOX.BTextAttributes-setting attributes. - (line 73) -* foregroundColor_ <2>: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 54) -* foregroundColor_ <3>: BLOX.BText-accessing. - (line 74) -* foregroundColor_ <4>: BLOX.BProgress-accessing. - (line 27) -* foregroundColor_ <5>: BLOX.BMenuObject-accessing. - (line 52) +* foregroundColor <1>: BLOX.BButton-accessing. +* foregroundColor <2>: BLOX.BDropDown-accessing. +* foregroundColor <3>: BLOX.BMenuObject-accessing. +* foregroundColor <4>: BLOX.BEdit-accessing. +* foregroundColor <5>: BLOX.BImage-accessing. +* foregroundColor <6>: BLOX.BTextAttributes-setting attributes. +* foregroundColor <7>: BLOX.BText-accessing. +* foregroundColor <8>: BLOX.BLabel-accessing. +* foregroundColor <9>: BLOX.BCanvas-accessing. +* foregroundColor <10>: BLOX.BProgress-accessing. +* foregroundColor: BLOX.BList-accessing. +* foregroundColor_ <1>: BLOX.BText-accessing. +* foregroundColor_ <2>: BLOX.BDropDownList-accessing. +* foregroundColor_ <3>: BLOX.BDropDownEdit-accessing. +* foregroundColor_ <4>: BLOX.BImage-accessing. +* foregroundColor_ <5>: BLOX.BCanvas-accessing. * foregroundColor_ <6>: BLOX.BList-accessing. - (line 113) -* foregroundColor_ <7>: BLOX.BLabel-accessing. - (line 77) -* foregroundColor_ <8>: BLOX.BImage-accessing. - (line 45) -* foregroundColor_ <9>: BLOX.BEdit-accessing. - (line 74) -* foregroundColor_ <10>: BLOX.BDropDownList-accessing. - (line 31) -* foregroundColor_ <11>: BLOX.BDropDownEdit-accessing. - (line 30) -* foregroundColor_ <12>: BLOX.BDropDown-accessing. - (line 79) -* foregroundColor_ <13>: BLOX.BCanvas-accessing. - (line 21) -* foregroundColor_: BLOX.BButton-accessing. - (line 68) -* from: BLOX.BArc-accessing. (line 23) -* from_: BLOX.BArc-accessing. (line 26) -* from_to_: BLOX.BArc-accessing. (line 29) +* foregroundColor_ <7>: BLOX.BButton-accessing. +* foregroundColor_ <8>: BLOX.BProgress-accessing. +* foregroundColor_ <9>: BLOX.BTextAttributes class-instance-creation shortcuts. +* foregroundColor_ <10>: BLOX.BDropDown-accessing. +* foregroundColor_ <11>: BLOX.BMenuObject-accessing. +* foregroundColor_ <12>: BLOX.BTextAttributes-setting attributes. +* foregroundColor_ <13>: BLOX.BEdit-accessing. +* foregroundColor_: BLOX.BLabel-accessing. +* from: BLOX.BArc-accessing. +* from_: BLOX.BArc-accessing. +* from_to_: BLOX.BArc-accessing. * fromArray_: TCP.IPAddress class-instance creation. - (line 6) * fromBytes_: TCP.IPAddress class-instance creation. - (line 11) -* fromSockAddr_port_ <1>: TCP.SocketAddress class-abstract. - (line 6) -* fromSockAddr_port_: TCP.IPAddress class-instance creation. - (line 16) +* fromSockAddr_port_ <1>: TCP.IPAddress class-instance creation. +* fromSockAddr_port_: TCP.SocketAddress class-abstract. * fromString_ <1>: I18N.LocaleData class-accessing. - (line 16) -* fromString_ <2>: I18N.LocaleConventions class-accessing. - (line 13) -* fromString_ <3>: I18N.Locale class-instance creation. - (line 14) -* fromString_: TCP.IPAddress class-instance creation. - (line 21) +* fromString_ <2>: TCP.IPAddress class-instance creation. +* fromString_ <3>: I18N.LocaleConventions class-accessing. +* fromString_: I18N.Locale class-instance creation. * gamma: BLOX.BImage-accessing. - (line 50) * gamma_: BLOX.BImage-accessing. - (line 61) * get: TCP.Datagram-accessing. - (line 18) * getPeerName: TCP.SocketImpl-socket operations. - (line 10) * getSelection: BLOX.BText-accessing. - (line 79) * getSockName: TCP.AbstractSocketImpl-socket operations. - (line 51) * getThrough_: TCP.Datagram-accessing. - (line 23) * gnu: BLOX.BImage class-GNU. - (line 6) * gotoLine_end_: BLOX.BText-position & lines. - (line 29) * grayOut: BLOX.BCanvasObject-accessing. - (line 46) * green <1>: BLOX.BTextAttributes-colors. - (line 24) * green: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 58) * 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.BWidget-geometry management. +* height: BLOX.BWindow-widget protocol. * height_ <1>: BLOX.BWindow-widget protocol. - (line 16) * height_: BLOX.BWidget-geometry management. - (line 120) -* heightAbsolute <1>: BLOX.BWindow-widget protocol. - (line 19) -* heightAbsolute: BLOX.BWidget-geometry management. - (line 127) -* heightChild_ <1>: BLOX.BWidget-geometry management. - (line 131) +* heightAbsolute <1>: BLOX.BWidget-geometry management. +* heightAbsolute: BLOX.BWindow-widget protocol. +* heightChild_ <1>: BLOX.BPopupWindow-geometry management. * heightChild_ <2>: BLOX.BText-geometry management. - (line 34) -* heightChild_ <3>: BLOX.BPopupWindow-geometry management. - (line 42) +* heightChild_ <3>: BLOX.BWidget-geometry management. * heightChild_: BLOX.BCanvas-geometry management. - (line 39) * heightOffset: BLOX.BWidget-geometry management. - (line 141) * heightOffset_ <1>: BLOX.BWindow-widget protocol. - (line 23) * heightOffset_: BLOX.BWidget-geometry management. - (line 146) * heightPixels_: BLOX.BWidget-geometry management. - (line 154) * highlight_: BLOX.BList-widget protocol. - (line 18) * highlightBackground <1>: BLOX.BList-accessing. - (line 118) * highlightBackground: BLOX.BDropDown-accessing. - (line 86) -* highlightBackground_ <1>: BLOX.BList-accessing. - (line 123) -* highlightBackground_ <2>: BLOX.BDropDownList-accessing. - (line 37) -* highlightBackground_ <3>: BLOX.BDropDownEdit-accessing. - (line 35) -* highlightBackground_: BLOX.BDropDown-accessing. - (line 91) -* highlightForeground <1>: BLOX.BList-accessing. - (line 128) -* highlightForeground: BLOX.BDropDown-accessing. - (line 96) -* highlightForeground_ <1>: BLOX.BList-accessing. - (line 133) +* highlightBackground_ <1>: BLOX.BDropDown-accessing. +* highlightBackground_ <2>: BLOX.BDropDownEdit-accessing. +* highlightBackground_ <3>: BLOX.BDropDownList-accessing. +* highlightBackground_: BLOX.BList-accessing. +* highlightForeground <1>: BLOX.BDropDown-accessing. +* highlightForeground: BLOX.BList-accessing. +* highlightForeground_ <1>: BLOX.BDropDownEdit-accessing. * highlightForeground_ <2>: BLOX.BDropDownList-accessing. - (line 43) -* highlightForeground_ <3>: BLOX.BDropDownEdit-accessing. - (line 40) -* highlightForeground_: BLOX.BDropDown-accessing. - (line 101) +* highlightForeground_ <3>: BLOX.BDropDown-accessing. +* highlightForeground_: BLOX.BList-accessing. * horizontal: BLOX.BViewport-scrollbars. - (line 6) * horizontal_: BLOX.BViewport-scrollbars. - (line 10) * horizontalNeeded: BLOX.BViewport-scrollbars. - (line 14) * horizontalShown: BLOX.BViewport-scrollbars. - (line 18) * host: TCP.IPAddress-accessing. - (line 14) * iconify: BLOX.BWindow-widget protocol. - (line 26) * id: I18N.LocaleData-accessing. - (line 9) * id_: I18N.LocaleData-initialization. - (line 6) * id_on_: I18N.LcMessagesDomain class-opening MO files. - (line 6) * image_: BLOX.BImage-image management. - (line 33) * imageHeight: BLOX.BImage-image management. - (line 37) * imageWidth: BLOX.BImage-image management. - (line 44) * index <1>: BLOX.BList-accessing. - (line 138) * index: BLOX.BDropDownList-list box accessing. - (line 6) * index_: BLOX.BDropDown-list box accessing. - (line 56) -* indexAt_ <1>: BLOX.BText-position & lines. - (line 35) -* indexAt_: BLOX.BList-accessing. - (line 144) +* indexAt_ <1>: BLOX.BList-accessing. +* indexAt_: BLOX.BText-position & lines. * info: BLOX.BImage class-icons. - (line 9) -* initialize <1>: I18N.RunTimeExpression class-initializing. - (line 6) -* initialize <2>: I18N.LocaleData class-database. - (line 10) -* initialize <3>: I18N.LcMessagesMoFileVersion0 class-plurals. - (line 6) -* initialize <4>: I18N.Encoders.ToUTF7 class-initialization. - (line 6) -* initialize <5>: I18N.Encoders.FromUTF7 class-initialization. - (line 6) -* initialize <6>: I18N.EncodedStream class-initializing. - (line 6) -* initialize <7>: TCP.Socket class-well known ports. - (line 17) +* initialize <1>: I18N.Encoders.ToUTF7 class-initialization. +* initialize <2>: I18N.Encoders.FromUTF7 class-initialization. +* initialize <3>: I18N.EncodedStream class-initializing. +* initialize <4>: TCP.Socket class-well known ports. +* initialize <5>: BLOX.BLabel class-initialization. +* initialize <6>: TCP.DatagramSocket class-initialization. +* initialize <7>: I18N.LcMessagesMoFileVersion0 class-plurals. * initialize <8>: TCP.IPAddress class-initialization. - (line 18) -* initialize <9>: TCP.DatagramSocket class-initialization. - (line 6) -* initialize: BLOX.BLabel class-initialization. - (line 6) +* initialize <9>: I18N.LocaleData class-database. +* initialize: I18N.RunTimeExpression class-initializing. * initialize_ <1>: I18N.LocaleData-initialization. - (line 9) -* initialize_ <2>: BLOX.BWidget-customization. - (line 20) -* initialize_ <3>: BLOX.BEventSet-initializing. - (line 6) -* initialize_: BLOX.BBalloon-initializing. - (line 6) -* insertAtEnd_ <1>: BLOX.BText-inserting text. - (line 6) -* insertAtEnd_ <2>: BLOX.BEdit-widget protocol. - (line 13) -* insertAtEnd_: BLOX.BDropDownEdit-text accessing. - (line 6) +* initialize_ <2>: BLOX.BBalloon-initializing. +* initialize_ <3>: BLOX.BWidget-customization. +* initialize_: BLOX.BEventSet-initializing. +* insertAtEnd_ <1>: BLOX.BDropDownEdit-text accessing. +* insertAtEnd_ <2>: BLOX.BText-inserting text. +* insertAtEnd_: BLOX.BEdit-widget protocol. * insertAtEnd_attribute_: BLOX.BText-attributes. - (line 6) -* insertImage_: BLOX.BText-images. (line 6) -* insertImage_at_: BLOX.BText-images. (line 12) -* insertImageAtEnd_: BLOX.BText-images. (line 20) +* insertImage_: BLOX.BText-images. +* insertImage_at_: BLOX.BText-images. +* insertImageAtEnd_: BLOX.BText-images. * insertSelectedText_: BLOX.BText-inserting text. - (line 9) * insertText_ <1>: BLOX.BText-inserting text. - (line 14) * insertText_: BLOX.BEdit-widget protocol. - (line 16) * insertText_at_: BLOX.BText-inserting text. - (line 18) * insertText_attribute_: BLOX.BText-attributes. - (line 10) * insertTextSelection_: BLOX.BText-inserting text. - (line 24) * inset_: BLOX.BWidget-geometry management. - (line 160) * interface: TCP.MulticastSocket-instance creation. - (line 6) * interface_: TCP.MulticastSocket-instance creation. - (line 10) * invokeCallback <1>: BLOX.BWindow-accessing. - (line 18) * invokeCallback <2>: BLOX.BToggle-accessing. - (line 14) -* invokeCallback <3>: BLOX.BText-inserting text. - (line 28) -* invokeCallback <4>: BLOX.BMenuObject-callback. - (line 22) -* invokeCallback <5>: BLOX.BList-widget protocol. - (line 21) -* invokeCallback <6>: BLOX.BEdit-widget protocol. - (line 20) -* invokeCallback <7>: BLOX.BDropDownList-callbacks. - (line 14) -* invokeCallback <8>: BLOX.BDropDown-callbacks. - (line 15) -* invokeCallback <9>: BLOX.BCheckMenuItem-accessing. - (line 6) -* invokeCallback <10>: BLOX.BButtonLike-accessing. - (line 15) -* invokeCallback: BLOX.BButton-accessing. - (line 73) +* invokeCallback <3>: BLOX.BMenuObject-callback. +* invokeCallback <4>: BLOX.BEdit-widget protocol. +* invokeCallback <5>: BLOX.BDropDownList-callbacks. +* invokeCallback <6>: BLOX.BList-widget protocol. +* invokeCallback <7>: BLOX.BButton-accessing. +* invokeCallback <8>: BLOX.BButtonLike-accessing. +* invokeCallback <9>: BLOX.BDropDown-callbacks. +* invokeCallback <10>: BLOX.BCheckMenuItem-accessing. +* invokeCallback: BLOX.BText-inserting text. * invokeCallback_: BLOX.BDialog-widget protocol. - (line 16) -* ipMulticastIf <1>: TCP.UDPSocketImpl-multicasting. - (line 6) -* ipMulticastIf: TCP.MulticastSocketImpl-multicasting. - (line 6) +* ipMulticastIf <1>: TCP.MulticastSocketImpl-multicasting. +* ipMulticastIf: TCP.UDPSocketImpl-multicasting. * ipMulticastIf_ <1>: TCP.UDPSocketImpl-multicasting. - (line 10) * ipMulticastIf_: TCP.MulticastSocketImpl-multicasting. - (line 10) * isActive: BLOX.BWidget-widget protocol. - (line 36) * isCentered: BLOX.BTextAttributes-setting attributes. - (line 79) * isDigitAddress_: TCP.SocketAddress class-accessing. - (line 42) * isDropdownVisible: BLOX.BDropDown-widget protocol. - (line 17) * isEmpty: TCP.ReadBuffer-buffer handling. - (line 21) * isExternalStream: TCP.AbstractSocket-testing. - (line 6) * isFull: TCP.ReadBuffer-buffer handling. - (line 24) * isMapped: BLOX.BWindow-widget protocol. - (line 31) * isMulticast: TCP.IPAddress-accessing. - (line 19) * isOpen: TCP.AbstractSocket-accessing. - (line 20) * isPeerAlive: TCP.Socket-stream protocol. - (line 25) * isPosixLocale: I18N.LocaleData-accessing. - (line 12) * isSelected_: BLOX.BList-accessing. - (line 150) * isStruckout: BLOX.BTextAttributes-setting attributes. - (line 83) * isUnderlined: BLOX.BTextAttributes-setting attributes. - (line 87) -* isWindow <1>: BLOX.BWindow-widget protocol. - (line 34) -* isWindow: BLOX.Blox-widget protocol. - (line 50) +* isWindow <1>: BLOX.Blox-widget protocol. +* isWindow: BLOX.BWindow-widget protocol. * itemHeight: BLOX.BDropDown-flexibility. - (line 15) * items: BLOX.BCanvas-widget protocol. - (line 36) * join: BLOX.BPolyline-accessing. - (line 28) -* join_ <1>: TCP.UDPSocketImpl-multicasting. - (line 14) -* join_ <2>: TCP.MulticastSocketImpl-multicasting. - (line 14) -* join_ <3>: TCP.MulticastSocket-instance creation. - (line 14) -* join_: BLOX.BPolyline-accessing. - (line 34) +* join_ <1>: BLOX.BPolyline-accessing. +* join_ <2>: TCP.MulticastSocket-instance creation. +* join_ <3>: TCP.MulticastSocketImpl-multicasting. +* join_: TCP.UDPSocketImpl-multicasting. * justify: BLOX.BEmbeddedText-accessing. - (line 44) * justify_: BLOX.BEmbeddedText-accessing. - (line 47) -* label <1>: BLOX.BWindow-accessing. - (line 22) -* label <2>: BLOX.BMenuItem-accessing. - (line 6) -* label <3>: BLOX.BMenu-accessing. - (line 6) -* label <4>: BLOX.BLabel-accessing. - (line 82) -* label: BLOX.BButton-accessing. - (line 76) -* label_ <1>: BLOX.BWindow-accessing. - (line 29) -* label_ <2>: BLOX.BMenuItem-accessing. - (line 13) -* label_ <3>: BLOX.BMenu-accessing. - (line 13) -* label_ <4>: BLOX.BLabel-accessing. - (line 89) -* label_: BLOX.BButton-accessing. - (line 83) +* label <1>: BLOX.BButton-accessing. +* label <2>: BLOX.BMenu-accessing. +* label <3>: BLOX.BWindow-accessing. +* label <4>: BLOX.BMenuItem-accessing. +* label: BLOX.BLabel-accessing. +* label_ <1>: BLOX.BButton-accessing. +* label_ <2>: BLOX.BMenu-accessing. +* label_ <3>: BLOX.BMenuItem-accessing. +* label_ <4>: BLOX.BWindow-accessing. +* label_: BLOX.BLabel-accessing. * labelAt_ <1>: BLOX.BList-accessing. - (line 154) * labelAt_: BLOX.BDropDown-list box accessing. - (line 60) * labels: BLOX.BList-accessing. - (line 157) * labelsDo_ <1>: BLOX.BList-accessing. - (line 160) * labelsDo_: BLOX.BDropDown-list box accessing. - (line 63) * language: I18N.LocaleData-accessing. - (line 16) * language_: I18N.LocaleData class-accessing. - (line 20) * language_territory_: I18N.LocaleData class-accessing. - (line 23) * language_territory_charset_: I18N.LocaleData class-accessing. - (line 26) -* languageDirectory <1>: I18N.LocaleData-accessing. - (line 19) -* languageDirectory: I18N.LcMessages-accessing. - (line 6) +* languageDirectory <1>: I18N.LcMessages-accessing. +* languageDirectory: I18N.LocaleData-accessing. * languageDirectory_ <1>: I18N.LocaleData-accessing. - (line 23) * languageDirectory_: I18N.LcMessages-accessing. - (line 9) * languages: I18N.LocaleData class-database. - (line 13) -* leave_ <1>: TCP.UDPSocketImpl-multicasting. - (line 17) -* leave_ <2>: TCP.MulticastSocketImpl-multicasting. - (line 17) -* leave_: TCP.MulticastSocket-instance creation. - (line 17) +* leave_ <1>: TCP.MulticastSocketImpl-multicasting. +* leave_ <2>: TCP.MulticastSocket-instance creation. +* leave_: TCP.UDPSocketImpl-multicasting. * left_top_right_bottom_: BLOX.BWidget-geometry management. - (line 163) * leftArrow: BLOX.BImage class-arrows. - (line 9) * lhs: I18N.RTEBinaryNode-compiling. - (line 6) -* lhs_op_rhs_ <1>: I18N.RTEBinaryNode-computing. - (line 6) -* lhs_op_rhs_: I18N.RTEBinaryNode class-compiling. - (line 6) +* lhs_op_rhs_ <1>: I18N.RTEBinaryNode class-compiling. +* lhs_op_rhs_: I18N.RTEBinaryNode-computing. * lineAt_: BLOX.BText-position & lines. - (line 40) * lineFrom_extent_color_: BLOX.BImage-image management. - (line 51) * lineFrom_to_color_: BLOX.BImage-image management. - (line 55) * lineFrom_toX_color_: BLOX.BImage-image management. - (line 58) * lineFrom_toY_color_: BLOX.BImage-image management. - (line 62) * lineInside_color_: BLOX.BImage-image management. - (line 66) * listCallback: BLOX.BDropDown-flexibility. - (line 20) * listen_: TCP.AbstractSocketImpl-socket operations. - (line 55) * listSelectAt_: BLOX.BDropDown-flexibility. - (line 24) * listText: BLOX.BDropDown-flexibility. - (line 29) * local_port_: TCP.DatagramSocket class-instance creation. - (line 6) -* localAddress <1>: TCP.AbstractSocketImpl-accessing. - (line 10) -* localAddress: TCP.AbstractSocket-accessing. - (line 24) +* localAddress <1>: TCP.AbstractSocket-accessing. +* localAddress: TCP.AbstractSocketImpl-accessing. * localHostName: TCP.SocketAddress class-accessing. - (line 46) -* localPort <1>: TCP.AbstractSocketImpl-accessing. - (line 15) -* localPort: TCP.AbstractSocket-accessing. - (line 27) +* localPort <1>: TCP.AbstractSocket-accessing. +* localPort: TCP.AbstractSocketImpl-accessing. * loop: BLOX.BDialog-widget protocol. - (line 21) * loopbackHost: TCP.SocketAddress class-accessing. - (line 49) * loopbackTest: TCP.Socket class-tests. - (line 6) * loopbackTest_: TCP.Socket class-tests. - (line 10) * lower: BLOX.BCanvasObject-widget protocol. - (line 14) * magenta <1>: BLOX.BTextAttributes-colors. - (line 27) * magenta: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 61) * 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. - (line 6) +* map <1>: BLOX.BTransientWindow-widget protocol. +* map: BLOX.BWindow-widget protocol. * mapPoint_: BLOX.BCanvas-widget protocol. - (line 39) * menu_: BLOX.BWindow-accessing. - (line 36) * messages: I18N.Locale-subobjects. - (line 6) * microTest: TCP.Socket class-tests. - (line 15) * modalMap: BLOX.BWindow-widget protocol. - (line 40) * mode: BLOX.BList-accessing. - (line 163) * mode_: BLOX.BList-accessing. - (line 199) * monetary: I18N.Locale-subobjects. - (line 10) * monetaryIso: I18N.Locale-subobjects. - (line 14) * mousePointer: BLOX.Blox class-utility. - (line 57) * moveBy_: BLOX.BBoundingBox-accessing. - (line 36) * n_: I18N.RTELiteralNode-computing. - (line 6) * name: TCP.SocketAddress-accessing. - (line 20) * network: TCP.IPAddress-accessing. - (line 23) -* new <1>: I18N.LocaleData class-accessing. - (line 30) -* new <2>: TCP.IPAddress class-instance creation. - (line 63) -* new <3>: TCP.DatagramSocket class-instance creation. - (line 10) -* new <4>: TCP.AbstractSocketImpl class-socket creation. - (line 6) -* new <5>: TCP.AbstractSocket class-instance creation. - (line 6) -* new <6>: BLOX.BWindow class-instance creation. - (line 6) -* new <7>: BLOX.BWidget class-popups. - (line 6) -* new <8>: BLOX.BTransientWindow class-instance creation. - (line 6) -* new <9>: BLOX.BTextBindings class-instance creation. - (line 6) -* new <10>: BLOX.Blox class-instance creation. - (line 6) -* new <11>: BLOX.BEventSet class-initializing. - (line 6) -* new: BLOX.BCanvasObject class-instance creation. - (line 6) -* new_ <1>: TCP.AbstractSocket class-instance creation. - (line 9) -* new_ <2>: BLOX.BWindow class-instance creation. - (line 9) -* new_ <3>: BLOX.BTransientWindow class-instance creation. - (line 9) -* new_ <4>: BLOX.BMenuItem class-instance creation. - (line 6) -* new_ <5>: BLOX.Blox class-instance creation. - (line 9) -* new_ <6>: BLOX.BEventSet class-initializing. - (line 9) -* new_ <7>: BLOX.BDialog class-instance creation. - (line 6) -* new_ <8>: BLOX.BCheckMenuItem class-instance creation. - (line 6) -* new_: BLOX.BCanvasObject class-instance creation. - (line 9) +* new <1>: BLOX.BEventSet class-initializing. +* new <2>: BLOX.Blox class-instance creation. +* new <3>: TCP.AbstractSocketImpl class-socket creation. +* new <4>: TCP.IPAddress class-instance creation. +* new <5>: BLOX.BTransientWindow class-instance creation. +* new <6>: BLOX.BWidget class-popups. +* new <7>: I18N.LocaleData class-accessing. +* new <8>: TCP.DatagramSocket class-instance creation. +* new <9>: BLOX.BWindow class-instance creation. +* new <10>: BLOX.BCanvasObject class-instance creation. +* new <11>: TCP.AbstractSocket class-instance creation. +* new: BLOX.BTextBindings class-instance creation. +* new_ <1>: BLOX.BDialog class-instance creation. +* new_ <2>: BLOX.Blox class-instance creation. +* new_ <3>: BLOX.BWindow class-instance creation. +* new_ <4>: BLOX.BEventSet class-initializing. +* new_ <5>: TCP.AbstractSocket class-instance creation. +* new_ <6>: BLOX.BCanvasObject class-instance creation. +* new_ <7>: BLOX.BCheckMenuItem class-instance creation. +* new_ <8>: BLOX.BMenuItem class-instance creation. +* new_: BLOX.BTransientWindow class-instance creation. * new_contents_: BLOX.BEdit class-instance creation. - (line 6) * new_data_: BLOX.BImage class-instance creation. - (line 6) * new_image_: BLOX.BImage class-instance creation. - (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. - (line 6) -* 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. - (line 6) +* new_label_ <3>: BLOX.BButton class-instance creation. +* new_label_ <4>: BLOX.BLabel class-instance creation. +* new_label_: BLOX.BDialog class-instance creation. * new_label_prompt_: BLOX.BDialog class-instance creation. - (line 16) * new_size_: BLOX.BImage class-instance creation. - (line 15) * newPrimitive: BLOX.BExtended-customization. - (line 17) * newRawSocket: TCP.SocketAddress class-initialization. - (line 23) * newReadOnly_: BLOX.BText class-instance creation. - (line 6) -* next <1>: I18N.Encoders.ToUTF7-conversion. - (line 13) -* next <2>: I18N.Encoders.SplitUCS4LE-stream operation. - (line 13) -* next <3>: I18N.Encoders.SplitUCS4BE-stream operation. - (line 13) -* next <4>: I18N.Encoders.Iconv-stream operation. - (line 9) -* next <5>: I18N.Encoders.FromUTF7-converting. - (line 16) -* next <6>: I18N.Encoders.ComposeUCS4LE-stream operation. - (line 6) -* next <7>: I18N.Encoders.ComposeUCS4BE-stream operation. - (line 6) -* next <8>: I18N.Encoder-stream operations. - (line 17) -* next <9>: TCP.Socket-stream protocol. - (line 29) -* next <10>: TCP.DatagramSocketImpl-socket operations. - (line 6) -* next <11>: TCP.DatagramSocket-accessing. - (line 15) -* next: TCP.AbstractSocket-stream protocol. - (line 9) +* next <1>: I18N.Encoder-stream operations. +* next <2>: I18N.Encoders.ToUTF7-conversion. +* next <3>: I18N.Encoders.SplitUCS4LE-stream operation. +* next <4>: I18N.Encoders.FromUTF7-converting. +* next <5>: TCP.DatagramSocket-accessing. +* next <6>: I18N.Encoders.ComposeUCS4BE-stream operation. +* next <7>: I18N.Encoders.Iconv-stream operation. +* next <8>: TCP.DatagramSocketImpl-socket operations. +* next <9>: I18N.Encoders.SplitUCS4BE-stream operation. +* next <10>: I18N.Encoders.ComposeUCS4LE-stream operation. +* next <11>: TCP.AbstractSocket-stream protocol. +* next: TCP.Socket-stream protocol. * next_: TCP.Socket-stream protocol. - (line 33) * nextFrom_port_: TCP.DatagramSocket-direct operations. - (line 6) * nextHunk: TCP.Socket-stream protocol. - (line 37) * nextInput: I18N.Encoder-stream operations. - (line 21) -* nextPut_ <1>: TCP.Socket-stream protocol. - (line 41) +* nextPut_ <1>: TCP.DatagramSocket-accessing. * nextPut_ <2>: TCP.DatagramSocketImpl-socket operations. - (line 9) -* nextPut_ <3>: TCP.DatagramSocket-accessing. - (line 18) -* nextPut_ <4>: TCP.AbstractSocket-stream protocol. - (line 13) -* nextPut_ <5>: BLOX.BText-inserting text. - (line 31) -* nextPut_: BLOX.BEdit-widget protocol. - (line 23) +* nextPut_ <3>: BLOX.BText-inserting text. +* nextPut_ <4>: BLOX.BEdit-widget protocol. +* nextPut_ <5>: TCP.Socket-stream protocol. +* nextPut_: TCP.AbstractSocket-stream protocol. * nextPut_timeToLive_: TCP.MulticastSocket-instance creation. - (line 20) -* nextPutAll_ <1>: TCP.Socket-stream protocol. - (line 46) -* nextPutAll_ <2>: BLOX.BText-inserting text. - (line 34) -* nextPutAll_: BLOX.BEdit-widget protocol. - (line 26) -* nl <1>: BLOX.BText-inserting text. - (line 37) -* nl: BLOX.BEdit-widget protocol. - (line 29) +* nextPutAll_ <1>: BLOX.BText-inserting text. +* nextPutAll_ <2>: BLOX.BEdit-widget protocol. +* nextPutAll_: TCP.Socket-stream protocol. +* nl <1>: BLOX.BEdit-widget protocol. +* nl: BLOX.BText-inserting text. * notEmpty: TCP.ReadBuffer-buffer handling. - (line 27) * numberOfLines: BLOX.BText-position & lines. - (line 43) * numberOfStrings <1>: BLOX.BList-accessing. - (line 235) * numberOfStrings: BLOX.BDropDown-list box accessing. - (line 67) * numeric: I18N.Locale-subobjects. - (line 18) * object_address_port_: TCP.Datagram class-instance creation. - (line 13) * object_objectDumper_address_port_: TCP.Datagram class-instance creation. - (line 21) * on_ <1>: I18N.RunTimeExpression class-instance creation. - (line 6) * on_: TCP.ReadBuffer class-instance creation. - (line 6) * on_from_: I18N.EncodedStream class-instance creation. - (line 6) * on_from_to_ <1>: I18N.Encoder class-instance creation. - (line 6) * on_from_to_: I18N.EncodedStream class-instance creation. - (line 11) * on_to_: I18N.EncodedStream class-instance creation. - (line 16) * onAsciiKeyEventSend_to_: BLOX.BEventTarget-intercepting events. - (line 11) * onDestroySend_to_: BLOX.BEventTarget-intercepting events. - (line 16) * onFocusEnterEventSend_to_: BLOX.BEventTarget-intercepting events. - (line 20) * onFocusLeaveEventSend_to_: BLOX.BEventTarget-intercepting events. - (line 24) * onKeyEvent_send_to_: BLOX.BEventTarget-intercepting events. - (line 28) * onKeyEventSend_to_: BLOX.BEventTarget-intercepting events. - (line 43) * onKeyUpEventSend_to_: BLOX.BEventTarget-intercepting events. - (line 54) * onMouseDoubleEvent_send_to_: BLOX.BEventTarget-intercepting events. - (line 65) * onMouseDoubleEventSend_to_: BLOX.BEventTarget-intercepting events. - (line 70) * onMouseDownEvent_send_to_: BLOX.BEventTarget-intercepting events. - (line 76) * onMouseDownEventSend_to_: BLOX.BEventTarget-intercepting events. - (line 81) * onMouseEnterEventSend_to_: BLOX.BEventTarget-intercepting events. - (line 87) * onMouseLeaveEventSend_to_: BLOX.BEventTarget-intercepting events. - (line 91) * onMouseMoveEvent_send_to_: BLOX.BEventTarget-intercepting events. - (line 95) * onMouseMoveEventSend_to_: BLOX.BEventTarget-intercepting events. - (line 100) * onMouseTripleEvent_send_to_: BLOX.BEventTarget-intercepting events. - (line 105) * onMouseTripleEventSend_to_: BLOX.BEventTarget-intercepting events. - (line 110) * onMouseUpEvent_send_to_: BLOX.BEventTarget-intercepting events. - (line 116) * onMouseUpEventSend_to_: BLOX.BEventTarget-intercepting events. - (line 121) * onResizeSend_to_: BLOX.BEventTarget-intercepting events. - (line 127) * op: I18N.RTEBinaryNode-compiling. - (line 9) * optionAt_level_put_: TCP.AbstractSocketImpl-socket options. - (line 6) * optionAt_level_size_: TCP.AbstractSocketImpl-socket options. - (line 13) * origin: BLOX.BBoundingBox-accessing. - (line 42) * origin_: BLOX.BBoundingBox-accessing. - (line 45) * origin_corner_: BLOX.BBoundingBox-accessing. - (line 51) * origin_extent_: BLOX.BBoundingBox-accessing. - (line 59) -* outlineColor <1>: BLOX.BRectangle-accessing. - (line 6) -* outlineColor: BLOX.BPolyline-accessing. - (line 40) +* outlineColor <1>: BLOX.BPolyline-accessing. +* outlineColor: BLOX.BRectangle-accessing. * outlineColor_ <1>: BLOX.BRectangle-accessing. - (line 9) * outlineColor_: BLOX.BPolyline-accessing. - (line 44) * outOfBand: TCP.Socket-out-of-band data. - (line 6) -* outOfBandImplClass <1>: TCP.TCPSocketImpl-implementation. - (line 6) -* outOfBandImplClass: TCP.SocketImpl-abstract. - (line 6) +* outOfBandImplClass <1>: TCP.SocketImpl-abstract. +* outOfBandImplClass: TCP.TCPSocketImpl-implementation. * parent: BLOX.Blox-widget protocol. - (line 53) * parseExpression_: I18N.RunTimeExpression class-compiling. - (line 6) * parseFrom_: I18N.RTELiteralNode class-initializing. - (line 6) * parseOperand_: I18N.RunTimeExpression class-compiling. - (line 9) * parseOperator_: I18N.RunTimeExpression class-compiling. - (line 14) * pastEnd: TCP.ReadBuffer-buffer handling. - (line 31) * peek <1>: TCP.Socket-stream protocol. - (line 51) * peek <2>: TCP.DatagramSocketImpl-socket operations. - (line 12) * peek: TCP.DatagramSocket-accessing. - (line 21) -* peek_ <1>: TCP.DatagramSocketImpl-socket operations. - (line 15) -* peek_: TCP.DatagramSocket-accessing. - (line 24) +* peek_ <1>: TCP.DatagramSocket-accessing. +* peek_: TCP.DatagramSocketImpl-socket operations. * peekFor_: TCP.Socket-stream protocol. - (line 56) * platform: BLOX.Blox class-utility. - (line 66) * pluralExpressionFor_ifAbsent_: I18N.LcMessagesMoFileVersion0 class-plurals. - (line 10) * points: BLOX.BPolyline-accessing. - (line 48) * points_: BLOX.BPolyline-accessing. - (line 51) * popup: BLOX.BPopupMenu-widget protocol. - (line 6) -* popup_ <1>: BLOX.BWindow class-instance creation. - (line 13) -* popup_: BLOX.BWidget class-popups. - (line 15) -* port <1>: TCP.Socket-accessing. - (line 9) +* popup_ <1>: BLOX.BWidget class-popups. +* popup_: BLOX.BWindow class-instance creation. +* port <1>: TCP.DatagramSocket-accessing. * port <2>: TCP.ServerSocket-accessing. - (line 18) -* port <3>: TCP.DatagramSocket-accessing. - (line 28) +* port <3>: TCP.AbstractSocket-accessing. * port <4>: TCP.Datagram-accessing. - (line 30) -* port: TCP.AbstractSocket-accessing. - (line 30) -* port_ <1>: TCP.ServerSocket class-instance creation. - (line 11) +* port: TCP.Socket-accessing. +* port_ <1>: TCP.Datagram-accessing. * port_ <2>: TCP.DatagramSocket class-instance creation. - (line 14) -* port_: TCP.Datagram-accessing. - (line 33) +* port_: TCP.ServerSocket class-instance creation. * port_bindTo_: TCP.ServerSocket class-instance creation. - (line 15) * port_queueSize_: TCP.ServerSocket class-instance creation. - (line 19) -* port_queueSize_bindTo_ <1>: TCP.ServerSocket-initializing. - (line 6) -* port_queueSize_bindTo_: TCP.ServerSocket class-instance creation. - (line 23) +* port_queueSize_bindTo_ <1>: TCP.ServerSocket class-instance creation. +* port_queueSize_bindTo_: TCP.ServerSocket-initializing. * portCmdServer: TCP.Socket class-well known ports. - (line 20) * portDayTime: TCP.Socket class-well known ports. - (line 23) * portDiscard: TCP.Socket class-well known ports. - (line 26) * portDNS: TCP.Socket class-well known ports. - (line 29) * portEcho: TCP.Socket class-well known ports. - (line 32) * portExecServer: TCP.Socket class-well known ports. - (line 35) * portFinger: TCP.Socket class-well known ports. - (line 38) * portFTP: TCP.Socket class-well known ports. - (line 41) * portGopher: TCP.Socket class-well known ports. - (line 44) * portHTTP: TCP.Socket class-well known ports. - (line 47) * portLoginServer: TCP.Socket class-well known ports. - (line 50) * portNetStat: TCP.Socket class-well known ports. - (line 53) * portNNTP: TCP.Socket class-well known ports. - (line 56) * portPOP3: TCP.Socket class-well known ports. - (line 59) * portReserved: TCP.Socket class-well known ports. - (line 62) * portSMTP: TCP.Socket class-well known ports. - (line 65) * portSSH: TCP.Socket class-well known ports. - (line 68) * portSystat: TCP.Socket class-well known ports. - (line 71) * portTelnet: TCP.Socket class-well known ports. - (line 74) * portTimeServer: TCP.Socket class-well known ports. - (line 77) * portWhois: TCP.Socket class-well known ports. - (line 80) * pos_: BLOX.BWidget-geometry management. - (line 166) * posHoriz_: BLOX.BWidget-geometry management. - (line 170) -* posix <1>: I18N.LocaleData class-accessing. - (line 33) +* posix <1>: I18N.Locale class-instance creation. * posix <2>: I18N.LocaleConventions class-accessing. - (line 17) -* posix: I18N.Locale class-instance creation. - (line 18) +* posix: I18N.LocaleData class-accessing. * posVert_: BLOX.BWidget-geometry management. - (line 173) -* pressed <1>: BLOX.BColorButton-accessing. - (line 12) -* pressed: BLOX.BButtonLike-accessing. - (line 18) +* pressed <1>: BLOX.BButtonLike-accessing. +* pressed: BLOX.BColorButton-accessing. * primAccept_: TCP.ServerSocket-accessing. - (line 22) * primary_secondary_: I18N.LcMessagesTerritoryDomain class-instance creation. - (line 6) * primJoinLeave_option_: TCP.UDPSocketImpl-multicasting. - (line 20) -* print_on_ <1>: I18N.LcTime-printing. - (line 6) -* print_on_ <2>: I18N.LcPrintFormats-printing. - (line 10) -* print_on_ <3>: I18N.LcNumeric-printing. - (line 11) -* print_on_: I18N.LcMonetary-printing. - (line 6) +* print_on_ <1>: I18N.LcMonetary-printing. +* print_on_ <2>: I18N.LcNumeric-printing. +* print_on_ <3>: I18N.LcTime-printing. +* print_on_: I18N.LcPrintFormats-printing. * print_on_currency_parentheses_: I18N.LcMonetary-printing. - (line 11) * print_on_ifFull_ifDate_ifTime_: I18N.LcTime-printing. - (line 11) * print_time_format_on_: I18N.LcTime-printing. - (line 18) -* printOn_ <1>: I18N.RTEParameterNode-computing. - (line 6) -* printOn_ <2>: I18N.RTENegationNode-computing. - (line 9) -* printOn_ <3>: I18N.RTELiteralNode-computing. - (line 9) -* printOn_ <4>: I18N.RTEBinaryNode-computing. - (line 10) -* printOn_ <5>: I18N.RTEAlternativeNode-computing. - (line 10) -* printOn_ <6>: TCP.Socket-printing. (line 6) -* printOn_ <7>: TCP.IPAddress-printing. - (line 6) -* printOn_: TCP.AbstractSocket-printing. - (line 6) +* printOn_ <1>: I18N.RTENegationNode-computing. +* printOn_ <2>: I18N.RTEAlternativeNode-computing. +* printOn_ <3>: TCP.Socket-printing. +* printOn_ <4>: TCP.AbstractSocket-printing. +* printOn_ <5>: I18N.RTEBinaryNode-computing. +* printOn_ <6>: TCP.IPAddress-printing. +* printOn_ <7>: I18N.RTELiteralNode-computing. +* printOn_: I18N.RTEParameterNode-computing. * printString_: I18N.LcPrintFormats-printing. - (line 14) * producerConsumerTest: TCP.Socket class-tests. - (line 18) * protocol: TCP.AbstractSocketImpl class-abstract. - (line 10) * question: BLOX.BImage class-icons. - (line 12) * queueSize_: TCP.ServerSocket class-instance creation. - (line 27) * queueSize_bindTo_: TCP.ServerSocket class-instance creation. - (line 31) * raise: BLOX.BCanvasObject-widget protocol. - (line 20) * readBufferSize: TCP.Socket class-accessing. - (line 12) -* readBufferSize_ <1>: TCP.Socket-stream protocol. - (line 61) -* readBufferSize_: TCP.Socket class-accessing. - (line 15) +* readBufferSize_ <1>: TCP.Socket class-accessing. +* readBufferSize_: TCP.Socket-stream protocol. * receive_ <1>: TCP.DatagramSocketImpl-socket operations. - (line 19) * receive_: TCP.DatagramSocket-accessing. - (line 31) * receive_datagram_: TCP.DatagramSocketImpl-socket operations. - (line 23) * red <1>: BLOX.BTextAttributes-colors. - (line 30) * red: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 64) -* redraw <1>: BLOX.BEmbeddedText-accessing. - (line 51) +* redraw <1>: BLOX.BCanvasObject-widget protocol. * redraw <2>: BLOX.BEmbeddedImage-accessing. - (line 21) -* redraw: BLOX.BCanvasObject-widget protocol. - (line 26) +* redraw: BLOX.BEmbeddedText-accessing. * refuseTabs: BLOX.BText-inserting text. - (line 41) * registerEncoderFor_toUCS4_fromUCS4_: I18N.EncodedStream class-initializing. - (line 10) -* registerImage_: BLOX.BText-images. (line 26) -* release: BLOX.Blox-basic. (line 10) +* registerImage_: BLOX.BText-images. +* release: BLOX.Blox-basic. * 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. - (line 18) * remoteAddress <1>: TCP.AbstractSocketImpl-accessing. - (line 20) * remoteAddress: TCP.AbstractSocket-accessing. - (line 35) * remotePort <1>: TCP.AbstractSocketImpl-accessing. - (line 25) * remotePort: TCP.AbstractSocket-accessing. - (line 38) * remove: BLOX.BCanvasObject-widget protocol. - (line 31) * remove_: BLOX.BMenuBar-accessing. - (line 9) * removeAtIndex_ <1>: BLOX.BList-accessing. - (line 238) * removeAtIndex_: BLOX.BDropDown-list box accessing. - (line 70) * 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. - (line 33) * replaceSelection_: BLOX.BDropDownEdit-text accessing. - (line 10) * resizable: BLOX.BWindow-accessing. - (line 44) * resizable_: BLOX.BWindow-accessing. - (line 51) * rhs: I18N.RTEBinaryNode-compiling. - (line 12) * rightArrow: BLOX.BImage class-arrows. - (line 12) * rootDirectory: I18N.Locale class-initialization. - (line 6) * rootDirectory_: I18N.Locale class-initialization. - (line 9) * screenOrigin: BLOX.Blox class-utility. - (line 70) * screenResolution: BLOX.Blox class-utility. - (line 76) * screenSize: BLOX.Blox class-utility. - (line 80) * searchString_: BLOX.BText-inserting text. - (line 50) * select_: BLOX.BList-widget protocol. - (line 24) -* selectAll <1>: BLOX.BEdit-widget protocol. - (line 38) -* selectAll: BLOX.BDropDownEdit-text accessing. - (line 15) -* selectBackground <1>: BLOX.BText-accessing. - (line 83) -* selectBackground: BLOX.BEdit-accessing. - (line 79) +* selectAll <1>: BLOX.BDropDownEdit-text accessing. +* selectAll: BLOX.BEdit-widget protocol. +* selectBackground <1>: BLOX.BEdit-accessing. +* selectBackground: BLOX.BText-accessing. * selectBackground_ <1>: BLOX.BText-accessing. - (line 88) * selectBackground_: BLOX.BEdit-accessing. - (line 84) * selectForeground <1>: BLOX.BText-accessing. - (line 93) * selectForeground: BLOX.BEdit-accessing. - (line 89) * selectForeground_ <1>: BLOX.BText-accessing. - (line 98) * selectForeground_: BLOX.BEdit-accessing. - (line 94) -* selectFrom_to_ <1>: BLOX.BText-position & lines. - (line 46) -* selectFrom_to_ <2>: BLOX.BEdit-widget protocol. - (line 41) +* selectFrom_to_ <1>: BLOX.BEdit-widget protocol. +* selectFrom_to_ <2>: BLOX.BText-position & lines. * selectFrom_to_: BLOX.BDropDownEdit-text accessing. - (line 18) * selection <1>: BLOX.BEdit-widget protocol. - (line 48) * selection: BLOX.BDropDownEdit-text accessing. - (line 25) -* selectionRange <1>: BLOX.BEdit-widget protocol. - (line 52) -* selectionRange: BLOX.BDropDownEdit-text accessing. - (line 29) -* selector <1>: I18N.LocaleConventions class-accessing. - (line 20) -* selector <2>: I18N.LcTime class-accessing. - (line 10) -* selector <3>: I18N.LcNumeric class-accessing. - (line 10) -* selector <4>: I18N.LcMonetaryISO class-accessing. - (line 6) -* selector <5>: I18N.LcMonetary class-accessing. - (line 10) -* selector: I18N.LcMessages class-accessing. - (line 10) +* selectionRange <1>: BLOX.BDropDownEdit-text accessing. +* selectionRange: BLOX.BEdit-widget protocol. +* selector <1>: I18N.LcNumeric class-accessing. +* selector <2>: I18N.LcMonetaryISO class-accessing. +* selector <3>: I18N.LcTime class-accessing. +* selector <4>: I18N.LocaleConventions class-accessing. +* selector <5>: I18N.LcMessages class-accessing. +* selector: I18N.LcMonetary class-accessing. * send_ <1>: I18N.RunTimeExpression-computing. - (line 6) -* send_ <2>: I18N.RTEParameterNode-computing. - (line 9) -* send_ <3>: I18N.RTENegationNode-computing. - (line 12) +* send_ <2>: I18N.RTEAlternativeNode-computing. +* send_ <3>: I18N.RTEBinaryNode-computing. * send_ <4>: I18N.RTELiteralNode-computing. - (line 12) -* send_ <5>: I18N.RTEBinaryNode-computing. - (line 13) -* send_: I18N.RTEAlternativeNode-computing. - (line 13) +* send_ <5>: I18N.RTENegationNode-computing. +* send_: I18N.RTEParameterNode-computing. * send_to_port_: TCP.DatagramSocketImpl-socket operations. - (line 29) * sendTest: TCP.Socket class-tests. - (line 22) * sendTest_: TCP.Socket class-tests. - (line 25) * sendToBack: BLOX.BWidget-widget protocol. - (line 40) * setAttributes_from_to_: BLOX.BText-attributes. - (line 24) * setInitialSize: BLOX.BWidget-customization. - (line 29) * setToEnd: BLOX.BText-position & lines. - (line 52) * setVerticalLayout_: BLOX.BContainer-accessing. - (line 6) -* shallowCopy <1>: BLOX.Blox-basic. (line 14) -* shallowCopy: BLOX.BCanvasObject-accessing. - (line 49) +* shallowCopy <1>: BLOX.BCanvasObject-accessing. +* shallowCopy: BLOX.Blox-basic. * shouldCache <1>: I18N.LcMessagesMoFileVersion0-flushing the cache. - (line 9) * shouldCache: I18N.LcMessagesDomain-handling the cache. - (line 9) * show: BLOX.BCanvasObject-widget protocol. - (line 34) * show_: BLOX.BList-widget protocol. - (line 30) -* shown <1>: BLOX.BBalloon-accessing. - (line 6) -* shown: BLOX.BBalloon class-accessing. - (line 13) -* size <1>: BLOX.BList-accessing. - (line 245) -* size: BLOX.BDropDown-list box accessing. - (line 77) +* shown <1>: BLOX.BBalloon class-accessing. +* shown: BLOX.BBalloon-accessing. +* size <1>: BLOX.BDropDown-list box accessing. +* size: BLOX.BList-accessing. * smoothness: BLOX.BSpline-accessing. - (line 6) * smoothness_: BLOX.BSpline-accessing. - (line 10) -* socketType <1>: TCP.SocketImpl class-parameters. - (line 6) -* socketType <2>: TCP.RawSocketImpl class-parameters. - (line 6) -* socketType <3>: TCP.DatagramSocketImpl class-parameters. - (line 6) -* socketType: TCP.AbstractSocketImpl class-abstract. - (line 13) +* socketType <1>: TCP.AbstractSocketImpl class-abstract. +* socketType <2>: TCP.DatagramSocketImpl class-parameters. +* socketType <3>: TCP.RawSocketImpl class-parameters. +* socketType: TCP.SocketImpl class-parameters. * soError: TCP.AbstractSocketImpl-socket options. - (line 19) -* soLinger <1>: TCP.AbstractSocketImpl-socket options. - (line 22) -* soLinger: TCP.AbstractSocket-socket options. - (line 6) -* soLinger_ <1>: TCP.AbstractSocketImpl-socket options. - (line 27) -* soLinger_: TCP.AbstractSocket-socket options. - (line 12) +* soLinger <1>: TCP.AbstractSocket-socket options. +* soLinger: TCP.AbstractSocketImpl-socket options. +* soLinger_ <1>: TCP.AbstractSocket-socket options. +* soLinger_: TCP.AbstractSocketImpl-socket options. * soLingerOff: TCP.AbstractSocket-socket options. - (line 17) * soReuseAddr: TCP.AbstractSocketImpl-socket options. - (line 33) * soReuseAddr_: TCP.AbstractSocketImpl-socket options. - (line 42) * space <1>: BLOX.BText-inserting text. - (line 55) * space: BLOX.BEdit-widget protocol. - (line 58) -* species <1>: I18N.Encoders.ToUCS4-stream operation. - (line 6) -* species <2>: I18N.Encoders.Iconv-stream operation. - (line 12) -* species <3>: I18N.Encoders.FromUCS4-stream operation. - (line 6) -* species <4>: I18N.Encoder-stream operations. - (line 26) -* species: TCP.AbstractSocket-socket options. - (line 22) -* startAngle: BLOX.BArc-accessing. (line 32) -* startAngle_: BLOX.BArc-accessing. (line 36) +* species <1>: I18N.Encoders.Iconv-stream operation. +* species <2>: TCP.AbstractSocket-socket options. +* species <3>: I18N.Encoder-stream operations. +* species <4>: I18N.Encoders.FromUCS4-stream operation. +* species: I18N.Encoders.ToUCS4-stream operation. +* startAngle: BLOX.BArc-accessing. +* startAngle_: BLOX.BArc-accessing. * state <1>: BLOX.BWindow-widget protocol. - (line 63) -* state: BLOX.Blox-accessing. (line 6) +* state: BLOX.Blox-accessing. * state_ <1>: BLOX.BWindow-widget protocol. - (line 68) -* state_: BLOX.Blox-accessing. (line 17) +* state_: BLOX.Blox-accessing. * stop: BLOX.BImage class-icons. - (line 15) * stretch_: BLOX.BWidget-geometry management. - (line 176) * strikeout <1>: BLOX.BTextAttributes-setting attributes. - (line 91) * strikeout: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 67) * subnet: TCP.IPAddress-accessing. - (line 28) -* sweepAngle: BLOX.BArc-accessing. (line 40) -* sweepAngle_: BLOX.BArc-accessing. (line 44) +* sweepAngle: BLOX.BArc-accessing. +* sweepAngle_: BLOX.BArc-accessing. * tabStop: BLOX.BWidget-accessing. - (line 58) * tabStop_: BLOX.BWidget-accessing. - (line 72) * terminateMainLoop: BLOX.Blox class-event dispatching. - (line 25) * territories: I18N.LocaleData class-database. - (line 16) * territory: I18N.LocaleData-accessing. - (line 27) -* territoryDirectory <1>: I18N.LocaleData-accessing. - (line 30) -* territoryDirectory: I18N.LcMessages-accessing. - (line 13) -* territoryDirectory_ <1>: I18N.LocaleData-accessing. - (line 34) -* territoryDirectory_: I18N.LcMessages-accessing. - (line 17) -* text <1>: BLOX.BEmbeddedText-accessing. - (line 56) -* text <2>: BLOX.BDropDownList-accessing. - (line 49) -* text <3>: BLOX.BDropDownEdit-accessing-overrides. - (line 6) -* text <4>: BLOX.BDropDown-flexibility. - (line 34) -* text: BLOX.BBalloon-accessing. - (line 9) -* text_ <1>: BLOX.BEmbeddedText-accessing. - (line 59) -* text_ <2>: BLOX.BDropDownEdit-text accessing. - (line 35) -* text_ <3>: BLOX.BDropDown-flexibility. - (line 39) -* text_: BLOX.BBalloon-accessing. - (line 12) +* territoryDirectory <1>: I18N.LcMessages-accessing. +* territoryDirectory: I18N.LocaleData-accessing. +* territoryDirectory_ <1>: I18N.LcMessages-accessing. +* territoryDirectory_: I18N.LocaleData-accessing. +* text <1>: BLOX.BDropDownList-accessing. +* text <2>: BLOX.BDropDown-flexibility. +* text <3>: BLOX.BEmbeddedText-accessing. +* text <4>: BLOX.BBalloon-accessing. +* text: BLOX.BDropDownEdit-accessing-overrides. +* text_ <1>: BLOX.BBalloon-accessing. +* text_ <2>: BLOX.BEmbeddedText-accessing. +* text_ <3>: BLOX.BDropDownEdit-text accessing. +* text_: BLOX.BDropDown-flexibility. * time: I18N.Locale-subobjects. - (line 22) * timeout: TCP.AbstractSocket class-timed-out operations. - (line 15) * timeout_: TCP.AbstractSocket class-timed-out operations. - (line 20) -* timeToLive <1>: TCP.UDPSocketImpl-multicasting. - (line 23) -* timeToLive <2>: TCP.MulticastSocketImpl-multicasting. - (line 20) -* timeToLive: TCP.MulticastSocket-instance creation. - (line 23) +* timeToLive <1>: TCP.MulticastSocketImpl-multicasting. +* timeToLive <2>: TCP.MulticastSocket-instance creation. +* timeToLive: TCP.UDPSocketImpl-multicasting. * timeToLive_ <1>: TCP.UDPSocketImpl-multicasting. - (line 27) * timeToLive_ <2>: TCP.MulticastSocketImpl-multicasting. - (line 24) * timeToLive_: TCP.MulticastSocket-instance creation. - (line 26) -* to: BLOX.BArc-accessing. (line 48) -* to_: BLOX.BArc-accessing. (line 51) +* to: BLOX.BArc-accessing. +* to_: BLOX.BArc-accessing. * toggle: BLOX.BDropDown-widget protocol. - (line 20) * toplevel: BLOX.Blox-widget protocol. - (line 56) * translatorInformation: I18N.LcMessagesDomain-querying. - (line 21) * translatorInformationAt_: I18N.LcMessagesDomain-querying. - (line 25) * translatorInformationAt_at_: I18N.LcMessagesDomain-querying. - (line 28) * tweakedLoopbackTest: TCP.Socket class-tests. - (line 30) * udpLoopbackTest: TCP.Socket class-tests. - (line 37) -* underline <1>: BLOX.BTextAttributes-setting attributes. - (line 94) -* underline: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 70) +* underline <1>: BLOX.BTextAttributes class-instance-creation shortcuts. +* underline: BLOX.BTextAttributes-setting attributes. * unhighlight: BLOX.BList-widget protocol. - (line 34) * unknownAddress: TCP.SocketAddress class-accessing. - (line 53) * unmap: BLOX.BWindow-widget protocol. - (line 71) * unmapList: BLOX.BDropDown-widget protocol. - (line 23) * unselect_: BLOX.BList-widget protocol. - (line 37) * upArrow: BLOX.BImage class-arrows. - (line 15) -* update_ <1>: I18N.LocaleData class-accessing. - (line 37) -* update_ <2>: TCP.SocketAddress class-initialization. - (line 30) +* update_ <1>: TCP.SocketAddress class-initialization. +* update_ <2>: I18N.LocaleData class-accessing. * update_: BLOX.Blox class-event dispatching. - (line 32) * value <1>: BLOX.BToggle-accessing. - (line 17) * value <2>: BLOX.BRadioGroup-accessing. - (line 6) -* value <3>: BLOX.BRadioButton-accessing. - (line 14) -* value <4>: BLOX.BProgress-accessing. - (line 32) +* value <3>: BLOX.BProgress-accessing. +* value <4>: BLOX.BRadioButton-accessing. * value: BLOX.BCheckMenuItem-accessing. - (line 9) -* value_ <1>: I18N.RunTimeExpression-computing. - (line 10) -* value_ <2>: BLOX.BToggle-accessing. - (line 20) +* value_ <1>: BLOX.BCheckMenuItem-accessing. +* value_ <2>: BLOX.BRadioButton-accessing. * value_ <3>: BLOX.BRadioGroup-accessing. - (line 11) -* value_ <4>: BLOX.BRadioButton-accessing. - (line 18) -* value_ <5>: BLOX.BProgress-accessing. - (line 35) -* value_: BLOX.BCheckMenuItem-accessing. - (line 12) +* value_ <4>: I18N.RunTimeExpression-computing. +* value_ <5>: BLOX.BToggle-accessing. +* value_: BLOX.BProgress-accessing. * variable_: BLOX.BToggle-accessing. - (line 24) * version: TCP.IPAddress class-constants. - (line 9) * vertical: BLOX.BViewport-scrollbars. - (line 21) * vertical_: BLOX.BViewport-scrollbars. - (line 25) * verticalNeeded: BLOX.BViewport-scrollbars. - (line 28) * verticalShown: BLOX.BViewport-scrollbars. - (line 32) * waitForConnection: TCP.ServerSocket-accessing. - (line 26) * waitForException: TCP.AbstractSocketImpl-asynchronous operations. - (line 14) * white <1>: BLOX.BTextAttributes-colors. - (line 33) * white: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 73) * widget: BLOX.BEventSet-accessing. - (line 6) -* width <1>: BLOX.BWindow-widget protocol. - (line 75) -* width <2>: BLOX.BWidget-geometry management. - (line 182) -* width <3>: BLOX.BRectangle-accessing. - (line 12) -* width <4>: BLOX.BPolyline-accessing. - (line 60) +* width <1>: BLOX.BRectangle-accessing. +* width <2>: BLOX.BPolyline-accessing. +* width <3>: BLOX.BWidget-geometry management. +* width <4>: BLOX.BWindow-widget protocol. * width: BLOX.BLine-accessing. - (line 15) -* width_ <1>: BLOX.BWindow-widget protocol. - (line 79) -* width_ <2>: BLOX.BWidget-geometry management. - (line 194) -* width_ <3>: BLOX.BRectangle-accessing. - (line 15) -* width_ <4>: BLOX.BPolyline-accessing. - (line 64) -* width_: BLOX.BLine-accessing. - (line 18) +* width_ <1>: BLOX.BRectangle-accessing. +* width_ <2>: BLOX.BWindow-widget protocol. +* width_ <3>: BLOX.BLine-accessing. +* width_ <4>: BLOX.BWidget-geometry management. +* width_: BLOX.BPolyline-accessing. * width_height_ <1>: BLOX.BWindow-widget protocol. - (line 82) * width_height_: BLOX.BWidget-geometry management. - (line 201) -* widthAbsolute <1>: BLOX.BWindow-widget protocol. - (line 86) -* widthAbsolute: BLOX.BWidget-geometry management. - (line 205) +* widthAbsolute <1>: BLOX.BWidget-geometry management. +* widthAbsolute: BLOX.BWindow-widget protocol. * widthChild_ <1>: BLOX.BWidget-geometry management. - (line 209) -* widthChild_ <2>: BLOX.BText-geometry management. - (line 37) -* widthChild_ <3>: BLOX.BPopupWindow-geometry management. - (line 46) -* widthChild_: BLOX.BCanvas-geometry management. - (line 42) +* widthChild_ <2>: BLOX.BCanvas-geometry management. +* widthChild_ <3>: BLOX.BText-geometry management. +* widthChild_: BLOX.BPopupWindow-geometry management. * widthOffset: BLOX.BWidget-geometry management. - (line 219) -* widthOffset_ <1>: BLOX.BWindow-widget protocol. - (line 90) -* widthOffset_: BLOX.BWidget-geometry management. - (line 224) +* widthOffset_ <1>: BLOX.BWidget-geometry management. +* widthOffset_: BLOX.BWindow-widget protocol. * widthPixels_: BLOX.BWidget-geometry management. - (line 232) -* window <1>: BLOX.BWindow-widget protocol. - (line 93) -* window: BLOX.Blox-widget protocol. - (line 60) +* window <1>: BLOX.Blox-widget protocol. +* window: BLOX.BWindow-widget protocol. * with_with_with_with_: TCP.IPAddress class-instance creation. - (line 66) * withChildrenDo_: BLOX.Blox-widget protocol. - (line 64) * withFileDo_: I18N.FileStreamSegment-basic. - (line 9) * wrap: BLOX.BText-accessing. - (line 103) * wrap_: BLOX.BText-accessing. - (line 115) * writeBufferSize: TCP.Socket class-accessing. - (line 18) * writeBufferSize_ <1>: TCP.Socket-stream protocol. - (line 65) * writeBufferSize_: TCP.Socket class-accessing. - (line 21) -* x <1>: BLOX.BWindow-widget protocol. - (line 96) -* x: BLOX.BWidget-geometry management. - (line 238) -* x_ <1>: BLOX.BWindow-widget protocol. - (line 101) -* x_: BLOX.BWidget-geometry management. - (line 249) +* x <1>: BLOX.BWidget-geometry management. +* x: BLOX.BWindow-widget protocol. +* x_ <1>: BLOX.BWidget-geometry management. +* x_: BLOX.BWindow-widget protocol. * x_y_ <1>: BLOX.BWindow-widget protocol. - (line 105) * x_y_: BLOX.BWidget-geometry management. - (line 256) -* x_y_width_height_ <1>: BLOX.BWindow-widget protocol. - (line 109) -* x_y_width_height_: BLOX.BWidget-geometry management. - (line 260) +* x_y_width_height_ <1>: BLOX.BWidget-geometry management. +* x_y_width_height_: BLOX.BWindow-widget protocol. * xAbsolute <1>: BLOX.BWindow-widget protocol. - (line 113) * 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. - (line 50) -* xChild_: BLOX.BCanvas-geometry management. - (line 45) +* xChild_ <1>: BLOX.BText-geometry management. +* xChild_ <2>: BLOX.BWidget-geometry management. +* xChild_ <3>: BLOX.BCanvas-geometry management. +* xChild_: BLOX.BPopupWindow-geometry management. * xOffset: BLOX.BWidget-geometry management. - (line 277) -* xOffset_ <1>: BLOX.BWindow-widget protocol. - (line 118) -* xOffset_: BLOX.BWidget-geometry management. - (line 282) +* xOffset_ <1>: BLOX.BWidget-geometry management. +* xOffset_: BLOX.BWindow-widget protocol. * xPixels_: BLOX.BWidget-geometry management. - (line 290) * xRoot: BLOX.BWidget-geometry management. - (line 296) -* y <1>: BLOX.BWindow-widget protocol. - (line 121) -* y: BLOX.BWidget-geometry management. - (line 301) -* y_ <1>: BLOX.BWindow-widget protocol. - (line 126) -* y_: BLOX.BWidget-geometry management. - (line 312) +* y <1>: BLOX.BWidget-geometry management. +* y: BLOX.BWindow-widget protocol. +* y_ <1>: BLOX.BWidget-geometry management. +* y_: BLOX.BWindow-widget protocol. * yAbsolute <1>: BLOX.BWindow-widget protocol. - (line 130) * yAbsolute: BLOX.BWidget-geometry management. - (line 319) -* yChild_ <1>: BLOX.BWidget-geometry management. - (line 323) +* yChild_ <1>: BLOX.BCanvas-geometry management. * yChild_ <2>: BLOX.BText-geometry management. - (line 45) * yChild_ <3>: BLOX.BPopupWindow-geometry management. - (line 54) -* yChild_: BLOX.BCanvas-geometry management. - (line 49) -* yellow <1>: BLOX.BTextAttributes-colors. - (line 36) -* yellow: BLOX.BTextAttributes class-instance-creation shortcuts. - (line 76) +* yChild_: BLOX.BWidget-geometry management. +* yellow <1>: BLOX.BTextAttributes class-instance-creation shortcuts. +* yellow: BLOX.BTextAttributes-colors. * yOffset: BLOX.BWidget-geometry management. - (line 333) -* yOffset_ <1>: BLOX.BWindow-widget protocol. - (line 135) -* yOffset_: BLOX.BWidget-geometry management. - (line 338) +* yOffset_ <1>: BLOX.BWidget-geometry management. +* yOffset_: BLOX.BWindow-widget protocol. * yPixels_: BLOX.BWidget-geometry management. - (line 346) * yRoot: BLOX.BWidget-geometry management. - (line 352)  File: gst-libs.info, Node: Cross-reference, Prev: Method index, Up: Top @@ -3736,185 +2607,105 @@ Selector cross-reference ************************ -[index] * Menu: * [131: TCP.IPAddress class-instance creation. - (line 11) * accept: TCP.ServerSocket class-instance creation. - (line 6) * addChild_: BLOX.Blox-customization. - (line 13) * addEventSet_: BLOX.BEventSet class-initializing. - (line 9) * addMenuItemFor_notifying_: BLOX.BMenu-callback registration. - (line 17) -* at_ <1>: BLOX.BList-accessing. - (line 238) -* at_: BLOX.BDropDown-list box accessing. - (line 70) +* at_ <1>: BLOX.BDropDown-list box accessing. +* at_: BLOX.BList-accessing. * backgroundColor_: BLOX.Blox-creating children. - (line 6) -* basicAddChild_ <1>: BLOX.BPopupWindow-geometry management. - (line 6) -* basicAddChild_ <2>: BLOX.Blox-customization. - (line 6) -* basicAddChild_: BLOX.BCanvas-geometry management. - (line 6) +* basicAddChild_ <1>: BLOX.BCanvas-geometry management. +* basicAddChild_ <2>: BLOX.BPopupWindow-geometry management. +* basicAddChild_: BLOX.Blox-customization. * bevel: BLOX.BPolyline-accessing. - (line 34) * bottomCenter: BLOX.BLabel-accessing. - (line 6) * bottomLeft: BLOX.BLabel-accessing. - (line 6) * bottomRight: BLOX.BLabel-accessing. - (line 6) * butt <1>: BLOX.BPolyline-accessing. - (line 15) * butt: BLOX.BLine-accessing. - (line 6) * center <1>: BLOX.BLabel-accessing. - (line 6) -* center: BLOX.BEmbeddedText-accessing. - (line 47) +* center <2>: BLOX.BEmbeddedText-accessing. +* center: BLOX.BLabel-accessing. * char: BLOX.BText-accessing. - (line 103) * copy: BLOX.BCanvasObject-accessing. - (line 23) * copyObject: BLOX.BCanvasObject-accessing. - (line 23) -* create <1>: BLOX.BPolyline-accessing. - (line 51) -* create <2>: BLOX.BExtended-customization. - (line 6) +* create <1>: BLOX.BBoundingBox-accessing. +* create <2>: BLOX.BPolyline-accessing. +* create <3>: BLOX.BBoundingBox-accessing. +* create <4>: BLOX.BExtended-customization. * create: BLOX.BBoundingBox-accessing. - (line 12) * createLocalAddress: TCP.SocketAddress class-initialization. - (line 10) * destroy: BLOX.BWidget class-popups. - (line 6) * dispatch_: BLOX.BDialog-accessing. - (line 6) * dispatchEvents: BLOX.Blox class-event dispatching. - (line 6) * eventTest: BLOX.BEventTarget-intercepting events. - (line 43) * font <1>: BLOX.Blox-widget protocol. - (line 40) -* font: BLOX.BDropDown-flexibility. - (line 15) +* font <2>: BLOX.BDropDown-flexibility. +* font: BLOX.Blox-widget protocol. * fromString_ <1>: TCP.SocketAddress class-host name lookup. - (line 12) * fromString_: TCP.IPAddress-accessing. - (line 6) * height: BLOX.BWidget-geometry management. - (line 12) * height_ <1>: BLOX.BWidget-geometry management. - (line 12) -* height_: BLOX.Blox-creating children. - (line 6) +* height_ <2>: BLOX.Blox-creating children. +* height_: BLOX.BWidget-geometry management. * heightOffset_: BLOX.BWidget-geometry management. - (line 23) * initialize_: BLOX.BWidget-customization. - (line 29) * inset_: BLOX.BWidget-geometry management. - (line 146) * left: BLOX.BEmbeddedText-accessing. - (line 47) * leftCenter: BLOX.BLabel-accessing. - (line 6) * loopbackHost: TCP.IPAddress class-instance creation. - (line 21) * macintosh: BLOX.Blox class-utility. - (line 66) * make_: BLOX.Blox-creating children. - (line 15) * map: BLOX.BWindow-widget protocol. - (line 68) * miter: BLOX.BPolyline-accessing. - (line 34) * modalMap: BLOX.BDialog-widget protocol. - (line 21) * new_: BLOX.BWidget-customization. - (line 20) * newPrimitive: BLOX.BExtended-customization. - (line 6) * next: I18N.EncodedStream class-initializing. - (line 10) * none: BLOX.BText-accessing. - (line 103) * object_address_port_: TCP.Datagram-accessing. - (line 18) -* object_objectDumper_address_port_ <1>: TCP.Datagram-accessing. - (line 23) -* object_objectDumper_address_port_: TCP.Datagram class-instance creation. - (line 13) +* object_objectDumper_address_port_ <1>: TCP.Datagram class-instance creation. +* object_objectDumper_address_port_: TCP.Datagram-accessing. * onKeyEvent_send_to_: BLOX.BEventTarget-intercepting events. - (line 43) * print_time_format_on_: I18N.LcTime-printing. - (line 11) -* projecting <1>: BLOX.BPolyline-accessing. - (line 15) +* projecting <1>: BLOX.BLine-accessing. +* projecting <2>: BLOX.BPolyline-accessing. * projecting: BLOX.BLine-accessing. - (line 6) -* redraw <1>: BLOX.BPolyline-accessing. - (line 51) +* redraw <1>: BLOX.BBoundingBox-accessing. +* redraw <2>: BLOX.BPolyline-accessing. * redraw: BLOX.BBoundingBox-accessing. - (line 12) -* registerImage_: BLOX.BText-images. (line 6) +* registerImage_: BLOX.BText-images. * right: BLOX.BEmbeddedText-accessing. - (line 47) * rightCenter: BLOX.BLabel-accessing. - (line 6) * round <1>: BLOX.BPolyline-accessing. - (line 15) -* round: BLOX.BLine-accessing. - (line 6) +* round <2>: BLOX.BLine-accessing. +* round: BLOX.BPolyline-accessing. * state: BLOX.Blox-widget protocol. - (line 26) * state_: BLOX.Blox-widget protocol. - (line 31) * tabStop_: BLOX.BWidget-widget protocol. - (line 21) * terminateMainLoop: BLOX.Blox class-event dispatching. - (line 6) * topCenter: BLOX.BLabel-accessing. - (line 6) * topLeft: BLOX.BLabel-accessing. - (line 6) * toplevel: BLOX.Blox-widget protocol. - (line 60) * topRight: BLOX.BLabel-accessing. - (line 6) * unix: BLOX.Blox class-utility. - (line 66) * unmap: BLOX.BWindow-widget protocol. - (line 68) * width: BLOX.BWidget-geometry management. - (line 40) * width_ <1>: BLOX.BWidget-geometry management. - (line 40) -* width_: BLOX.Blox-creating children. - (line 6) +* width_ <2>: BLOX.Blox-creating children. +* width_: BLOX.BWidget-geometry management. * widthOffset_: BLOX.BWidget-geometry management. - (line 51) * windows: BLOX.Blox class-utility. - (line 66) * word: BLOX.BText-accessing. - (line 103) * x: BLOX.BWidget-geometry management. - (line 61) * x_: BLOX.BWidget-geometry management. - (line 61) * xOffset_: BLOX.BWidget-geometry management. - (line 71) * y: BLOX.BWidget-geometry management. - (line 81) * y_: BLOX.BWidget-geometry management. - (line 81) * yOffset_: BLOX.BWidget-geometry management. - (line 91) * {Blox: BLOX.Blox-creating children. - (line 6) diff -rNu smalltalk-2.1.9/doc/gst.1 smalltalk-2.1.10/doc/gst.1 --- smalltalk-2.1.9/doc/gst.1 2004-10-02 15:32:58.000000000 +0200 +++ smalltalk-2.1.10/doc/gst.1 2005-02-03 09:33:09.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.28. -.TH SMALLTALK "1" "October 2004" "Smalltalk version 2.1.8" "User Commands" +.TH SMALLTALK "1" "February 2005" "Smalltalk version 2.1.10" "User Commands" .SH NAME Smalltalk \- the GNU Smalltalk virtual machine .SH DESCRIPTION diff -rNu smalltalk-2.1.9/doc/gst.info smalltalk-2.1.10/doc/gst.info --- smalltalk-2.1.9/doc/gst.info 2004-10-02 15:32:20.000000000 +0200 +++ smalltalk-2.1.10/doc/gst.info 2005-02-02 15:11:06.000000000 +0100 @@ -1,13 +1,13 @@ -This is gst.info, produced by makeinfo version 4.7 from -/home/utente/devel-gst-stable/doc/gst-fixed.texi. +This is gst.info, produced by makeinfo version 4.6 from +/Users/bonzinip/devel/gst-stable/+build/doc/../../doc/gst-fixed.texi. INFO-DIR-SECTION GNU Smalltalk START-INFO-DIR-ENTRY * GNU Smalltalk: (gst). The GNU Smalltalk environment. END-INFO-DIR-ENTRY - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 16 September 2003. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 25 November 2004. Copyright (C) 1988, 1989, 1991, 1992, 1994, 1995, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. @@ -23,20 +23,16 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. -  File: gst.info, Node: Top, Up: (DIR) -GNU Smalltalk User's Guide -************************** -GNU Smalltalk User's Guide - This document describes installing and operating the GNU Smalltalk +This document describes installing and operating the GNU Smalltalk programming language. - This file documents GNU Smalltalk Version 2.1.9. It was last -updated on 16 September 2003. +This file documents GNU Smalltalk Version 2.1.10. It was last updated +on 25 November 2004. Copyright (C) 1988, 1989, 1991, 1992, 1994, 1995, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. @@ -52,7 +48,6 @@ There are no Cover Texts and no Invariant Sections; this text, along with its equivalent in the printed manual, constitutes the Title Page. - * Menu: @@ -186,8 +181,8 @@  File: gst.info, Node: Using GNU Smalltalk, Next: Features, Prev: Overview, Up: Top -1 Using GNU Smalltalk -********************* +Using GNU Smalltalk +******************* * Menu: @@ -202,8 +197,8 @@  File: gst.info, Node: Invocation, Next: Operation, Up: Using GNU Smalltalk -1.1 Command line arguments -========================== +Command line arguments +====================== GNU Smalltalk may be invoked via the following command: gst [ flags ... ] [ file ... ] @@ -220,7 +215,7 @@ "Major scavenging... done, used space = 51%" GNU Smalltalk Ready - + st> If you specify , that file will be read and executed and @@ -304,7 +299,7 @@ kernel definitions have been loaded, a new image file will be saved. -`-I --image-file ' +`-I FILE --image-file FILE' Use the image file named as the image file to load. Completely bypasses checking the file dates on the kernel files and standard image file. @@ -313,7 +308,7 @@ Produce a log of the compiled Smalltalk code to st-changes.st, in the current working directory. -`-L --log-file ' +`-L FILE --log-file FILE' Produce a log of the compiled Smalltalk code to the file named . @@ -349,8 +344,8 @@  File: gst.info, Node: Operation, Next: Syntax, Prev: Invocation, Up: Using GNU Smalltalk -1.2 Startup sequence -==================== +Startup sequence +================ When GNU Smalltalk is invoked, the first thing it does is choosing two paths, respectively the "image path" and the "kernel path". the image @@ -417,8 +412,8 @@  File: gst.info, Node: Syntax, Next: Test suite, Prev: Operation, Up: Using GNU Smalltalk -1.3 Syntax of GNU Smalltalk -=========================== +Syntax of GNU Smalltalk +======================= The language that GNU Smalltalk accepts is based on the "file out" syntax as shown in the "Green Book", also known as `Smalltalk-80: Bits @@ -426,13 +421,16 @@ GNU Smalltalk is described in the `libgst/gst.y' file, but a brief description may be in order: ! - executes the given statements immediately. For example, + +executes the given statements immediately. For example, 16rFFFF printNl ! - prints out the decimal value of hex `FFFF', followed by a newline. + +prints out the decimal value of hex `FFFF', followed by a newline. Smalltalk quitPrimitive ! - exits from the system. You can also type a `C-d' to exit from + +exits from the system. You can also type a `C-d' to exit from Smalltalk if it's reading statements from standard input. ! methodsFor: ! @@ -451,10 +449,10 @@ what category to file the methods in. !Float methodsFor: 'pi calculations'! - + radiusToArea ^self squared * Float pi ! - + radiusToCircumference ^self * 2 * Float pi ! ! @@ -479,13 +477,13 @@ More information on the implementation of the language can be found in the `Blue Book'; the relevant parts are also available online as HTML documents, at -`http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_imp_toc.html'. +.  File: gst.info, Node: Test suite, Next: Legal concerns, Prev: Syntax, Up: Using GNU Smalltalk -1.4 Running the test suite -========================== +Running the test suite +====================== GNU Smalltalk comes with a set of files that provides a simple regression test suite. @@ -505,8 +503,8 @@  File: gst.info, Node: Legal concerns, Prev: Test suite, Up: Using GNU Smalltalk -1.5 Licensing of GNU Smalltalk -============================== +Licensing of GNU Smalltalk +========================== Different parts of GNU Smalltalk comes under two licenses: the virtual machine and the development environment (compiler and browser) come @@ -555,8 +553,8 @@  File: gst.info, Node: Features, Next: Emacs, Prev: Using GNU Smalltalk, Up: Top -2 Features of GNU Smalltalk -*************************** +Features of GNU Smalltalk +************************* In this section, the features which are specific to GNU Smalltalk are described. These features include support for calling C functions from @@ -586,25 +584,25 @@  File: gst.info, Node: Memory access, Next: Namespaces, Up: Features -2.1 Memory accessing methods -============================ +Memory accessing methods +======================== GNU Smalltalk provides methods to query its own internal data structures. You may determine the real memory address of an object or the real memory address of the OOP table that points to a given object, by using messages to the `Memory' class, described below. - -- Method on Object: asOop + - Method on Object: asOop Returns the index of the OOP for anObject. This index is immume from garbage collection and is the same value used by default as an hash value for anObject (it is returned by Object's implementation of `hash' and `identityHash'). - -- Method on Integer: asObject + - Method on Integer: asObject Converts the given OOP _index_ (not address) back to an object. Fails if no object is associated to the given index. - -- Method on Integer: asObjectNoFail + - Method on Integer: asObjectNoFail Converts the given OOP _index_ (not address) back to an object. Returns nil if no object is associated to the given index. @@ -642,15 +640,15 @@  File: gst.info, Node: Namespaces, Next: Disk file-IO, Prev: Memory access, Up: Features -2.2 Namespaces -============== +Namespaces +========== [This section (and the implementation of namespaces in GNU Smalltalk) is based on the paper `Structured Symbolic Name Spaces in Smalltalk', by Augustin Mrazik.] -2.2.1 Introduction ------------------- +Introduction +------------ The standard Smalltalk-80 programming environment supports symbolic identification of objects in one global namespace--in the `Smalltalk' @@ -692,8 +690,8 @@ following text the symbolic name space will be called simply environment to make the text more clear. -2.2.2 Concepts --------------- +Concepts +-------- To support polymorphic symbolical identification several environments will be needed. The same name may be located concurrently in several @@ -744,8 +742,8 @@ lookups by a compiler searching for a variable and lookups via methods such as `#at:' and `#includesKey:'. -2.2.3 Syntax ------------- +Syntax +------ Global objects of an environment (local or inherited) may be referenced by their symbol used in the source code, e.g. @@ -788,8 +786,8 @@ The latter kind of literal (called a "variable binding") is also valid inside literal arrays. -2.2.4 Implementation --------------------- +Implementation +-------------- A superclass of `SystemDictionary' called `RootNamespace' has to be defined and many of the features of Smalltalk-80 SystemDictionaries will @@ -855,8 +853,8 @@ the environment is easier to use if evaluations ("doits") are parsed as if UndefinedObject's mother environment was _the current namespace_. -2.2.5 Using namespaces ----------------------- +Using namespaces +---------------- Using namespaces if often merely a matter of rewriting the loading script this way: @@ -911,8 +909,8 @@  File: gst.info, Node: Disk file-IO, Next: Object dumping, Prev: Namespaces, Up: Features -2.3 Disk file-IO primitive messages -=================================== +Disk file-IO primitive messages +=============================== Four classes (`FileDescriptor', `FileStream', `File', `Directory') allow you to create files and access the file system in a fully @@ -954,13 +952,14 @@ For example, FileStream fileIn: 'foo.st' ! - will cause `foo.st' to be loaded into GNU Smalltalk. + +will cause `foo.st' to be loaded into GNU Smalltalk.  File: gst.info, Node: Object dumping, Next: GC, Prev: Disk file-IO, Up: Features -2.4 The GNU Smalltalk ObjectDumper -================================== +The GNU Smalltalk ObjectDumper +============================== Another GNU Smalltalk-specific class, the `ObjectDumper' class, allows you to dump objects in a portable, endian-neutral, binary format. Note @@ -974,8 +973,8 @@  File: gst.info, Node: GC, Next: Security, Prev: Object dumping, Up: Features -2.5 Memory management in GNU Smalltalk -====================================== +Memory management in GNU Smalltalk +================================== The GNU Smalltalk virtual machine is equipped with a garbage collector, a facility that reclaims the space occupied by objects that are no @@ -1186,14 +1185,14 @@  File: gst.info, Node: Security, Next: Special objects, Prev: GC, Up: Features -2.6 Security in GNU Smalltalk -============================= +Security in GNU Smalltalk +=========================  File: gst.info, Node: Special objects, Next: Dynamic loading, Prev: Security, Up: Features -2.7 Special kinds of object -=========================== +Special kinds of object +======================= A few methods in Object support the creation of particular objects. This include: @@ -1211,14 +1210,14 @@ They are: - -- Method on Object: makeWeak + - Method on Object: makeWeak Marks the object so that it is considered weak in subsequent garbage collection passes. The garbage collector will consider dead an object which has references only inside weak objects, and will replace references to such an "almost-dead" object with nils, and then send the `mourn' message to the object. - -- Method on Object: makeEphemeron + - Method on Object: makeEphemeron Marks the object so that it is considered specially in subsequent garbage collection passes. Ephemeron objects are sent the message `mourn' when the first instance variable is not referenced or is @@ -1230,7 +1229,7 @@ example, finalization which is described below is implemented with ephemerons). - -- Method on Object: addToBeFinalized + - Method on Object: addToBeFinalized Marks the object so that, as soon as it becomes unreferenced, its `finalize' method is called. Before `finalize' is called, the VM implicitly removes the objects from the list of finalizable ones. @@ -1251,17 +1250,17 @@ loaded again, causing a segmentation violation as soon as they are accessed by the finalization method. - -- Method on Object: removeToBeFinalized + - Method on Object: removeToBeFinalized Removes the to-be-finalized mark from the object. As I noted above, the finalize code for the object does not have to do this explicitly. - -- Method on Object: finalize + - Method on Object: finalize This method is called by the VM when there are no more references to the object (or, of course, if it only has references inside weak objects). - -- Method on Object: isReadOnly + - Method on Object: isReadOnly This method answers whether the VM will refuse to make changes to the objects when methods like `become:', `basicAt:put:', and possibly `at:put:' too (depending on the implementation of the @@ -1270,19 +1269,19 @@ `instVarAt:put:'. Many objects (Characters, `nil', `true', `false', method literals) are read-only by default. - -- Method on Object: makeReadOnly: aBoolean + - Method on Object: makeReadOnly: aBoolean Changes the read-only or read-write status of the receiver to that indicated by `aBoolean'. - -- Method on Object: basicNewInFixedSpace + - Method on Object: basicNewInFixedSpace Same as `#basicNew', but the object won't move across garbage collections. - -- Method on Object: basicNewInFixedSpace: + - Method on Object: basicNewInFixedSpace: Same as `#basicNew:', but the object won't move across garbage collections. - -- Method on Object: makeFixed + - Method on Object: makeFixed Ensure that the receiver won't move across garbage collections. This can be used either if you decide after its creation that an object must be fixed, or if a class does not support using `#new' @@ -1319,8 +1318,8 @@  File: gst.info, Node: Dynamic loading, Next: Packages, Prev: Special objects, Up: Features -2.8 Dynamic loading -=================== +Dynamic loading +=============== The `DLD' class enhances the C callout mechanism to automatically look for unresolved functions in a series of program-specified libraries. To @@ -1346,8 +1345,8 @@  File: gst.info, Node: Packages, Prev: Dynamic loading, Up: Features -2.9 Packages -============ +Packages +======== Thanks to Andreas Klimas' insight, GNU Smalltalk now includes a powerful packaging system which allows one to file in components @@ -1388,7 +1387,7 @@ this: - + MyPackage @@ -1400,16 +1399,16 @@ Finish.st libmymodule yourDirectoryName - + Load.st Finish.st MyFile1.st MyFile2.st - + - + then people who install your package will only have to do @@ -1446,8 +1445,8 @@  File: gst.info, Node: Blox, Next: Smalltalk-in-Smalltalk, Up: Packages -2.9.1 Blox ----------- +Blox +---- Blox is a GUI building block tool kit. It is an abstraction on top of the a platform's native GUI toolkit that is common across all platforms. @@ -1519,8 +1518,8 @@  File: gst.info, Node: Smalltalk-in-Smalltalk, Next: Database, Prev: Blox, Up: Packages -2.9.2 The Smalltalk-in-Smalltalk library ----------------------------------------- +The Smalltalk-in-Smalltalk library +---------------------------------- The Smalltalk-in-Smalltalk library is a set of classes for looking at Smalltalk code, constructing models of Smalltalk classes that can later @@ -1581,8 +1580,8 @@  File: gst.info, Node: Database, Next: Locales, Prev: Smalltalk-in-Smalltalk, Up: Packages -2.9.3 Database connectivity ---------------------------- +Database connectivity +--------------------- GNU Smalltalk includes support for connecting to databases. Currently this support is limited to retrieving result sets from SQL selection @@ -1603,7 +1602,7 @@ and my password is `mypass'. | connection statement result | - + connection := Jdm MySQL JdmConnection on: (Jdm JdmConnectionSpec new initialize user: 'doe'; password: 'mypass'; @@ -1669,8 +1668,8 @@  File: gst.info, Node: Locales, Next: SUnit, Prev: Database, Up: Packages -2.9.4 Internationalization and localization support ---------------------------------------------------- +Internationalization and localization support +--------------------------------------------- Different countries and cultures have varying conventions for how to communicate. These conventions range from very simple ones, such as the @@ -1723,23 +1722,23 @@ Here is how `?' works for different classes: - -- Method on LcTime: ? aString + - Method on LcTime: ? aString Format a date, a time or a timestamp (`DateTime' object). - -- Method on LcNumber: ? aString + - Method on LcNumber: ? aString Format a number. - -- Method on LcMonetary: ? aString + - Method on LcMonetary: ? aString Format a monetary value together with its currency symbol. - -- Method on LcMonetaryISO: ? aString + - Method on LcMonetaryISO: ? aString Format a monetary value together with its ISO currency symbol. - -- Method on LcMessages: ? aString + - Method on LcMessages: ? aString Answer an `LcMessagesDomain' that retrieves translations from the specified file. - -- Method on LcMessagesDomain: ? aString + - Method on LcMessagesDomain: ? aString Retrieve the translation of the given string.(2) The package provides much more functionality, including more advanced @@ -1769,8 +1768,8 @@  File: gst.info, Node: SUnit, Next: Network support, Prev: Locales, Up: Packages -2.9.5 The SUnit testing package -------------------------------- +The SUnit testing package +------------------------- `SUnit' is a framework to write and perform test cases in Smalltalk, originarily written by the father of Extreme Programming(1), Kent Beck. @@ -1782,8 +1781,8 @@ description of its usage, excerpted from Kent Beck's paper in which he describes `SUnit'. -2.9.5.1 Where should you start? -............................... +Where should you start? +....................... Testing is one of those impossible tasks. You'd like to be absolutely complete, so you can be sure the software will work. On the other hand, @@ -1810,8 +1809,8 @@ * Override setUp to initialize the variables -2.9.5.2 How do you represent a single unit of testing? -...................................................... +How do you represent a single unit of testing? +.............................................. You can predict the results of sending a message to a fixture. You need to represent such a predictable situation somehow. The simplest way to @@ -1831,8 +1830,8 @@ fixture as a method._ Add a method to TestCase subclass, and stimulate the fixture in the method. -2.9.5.3 How do you test for expected results? -............................................. +How do you test for expected results? +..................................... If you're testing interactively, you check for expected results directly, by printing and inspecting your objects. Since tests are in @@ -1883,8 +1882,8 @@ If it runs to completion, the test worked. If you get a walkback, something went wrong. -2.9.5.4 How do you collect and run many different test cases? -............................................................. +How do you collect and run many different test cases? +..................................................... As soon as you have two test cases running, you'll want to run them both one after the other without having to execute two do it's. You could @@ -1922,8 +1921,8 @@  File: gst.info, Node: Network support, Next: XML, Prev: SUnit, Up: Packages -2.9.6 TCP, WebServer, NetClients --------------------------------- +TCP, WebServer, NetClients +-------------------------- GNU Smalltalk includes an almost complete abstraction of the TCP, UDP and IP protocols. Although based on the standard BSD sockets, this @@ -1946,7 +1945,7 @@ quick. The server is based on the GPL'ed WikiWorks project. For up to -date/more info go see `http://wiki.cs.uiuc.edu/VisualWorks/WikiWorks>'. +date/more info go see >. Many thanks go to the various people who had worked on the version on which the server is based: @@ -1977,8 +1976,8 @@  File: gst.info, Node: XML, Next: Minor packages, Prev: Network support, Up: Packages -2.9.7 An XML parser and object model for GNU Smalltalk ------------------------------------------------------- +An XML parser and object model for GNU Smalltalk +------------------------------------------------ The XML parser library for Smalltalk, loaded as package XML includes a validating XML parser and Document Object Model. This library is @@ -1989,8 +1988,8 @@  File: gst.info, Node: Minor packages, Prev: XML, Up: Packages -2.9.8 Minor packages --------------------- +Minor packages +-------------- Various other "minor" packages are provided, typically as examples of writing modules for GNU Smalltalk (*note Linking your libraries to the @@ -2002,8 +2001,8 @@  File: gst.info, Node: Emacs, Next: C and Smalltalk, Prev: Features, Up: Top -3 Smalltalk interface for GNU Emacs -*********************************** +Smalltalk interface for GNU Emacs +********************************* GNU Smalltalk comes with its own Emacs mode for hacking Smalltalk code. It also provides tools for interacting with a running Smalltalk system @@ -2018,8 +2017,8 @@  File: gst.info, Node: Autoloading, Next: Editing, Up: Emacs -3.1 Autoloading GNU Smalltalk mode -================================== +Autoloading GNU Smalltalk mode +============================== To cause Emacs to automatically go into Smalltalk mode when you edit a Smalltalk file (one with the extension `.st'), you need to add the @@ -2028,7 +2027,7 @@ (setq auto-mode-alist (append '(("\\.st\\'" . smalltalk-mode)) auto-mode-alist)) - + (autoload 'smalltalk-mode "smalltalk-mode.elc" "" t) where is the path to where the two Emacs Lisp files included @@ -2038,8 +2037,8 @@  File: gst.info, Node: Editing, Next: Interactor, Prev: Autoloading, Up: Emacs -3.2 Smalltalk editing mode -========================== +Smalltalk editing mode +====================== The GNU Smalltalk editing mode is there to assist you in editing your Smalltalk code. It tries to be smart about indentation and provides a @@ -2053,7 +2052,8 @@ | foo | foo := 3. ^foo squared ! - will confuse the Smalltalk editing mode, as this might also be a + +will confuse the Smalltalk editing mode, as this might also be a definition the binary operator `|', with second argument called . If you find yourself confused when editing this type of expression, put a dummy method name before the start of the expression, @@ -2067,8 +2067,8 @@  File: gst.info, Node: Interactor, Prev: Editing, Up: Emacs -3.3 Smalltalk interactor mode -============================= +Smalltalk interactor mode +========================= An interesting feature of Emacs Smalltalk is the Smalltalk interactor, which basically allows you run in GNU Emacs with Smalltalk files in one @@ -2155,8 +2155,8 @@  File: gst.info, Node: C and Smalltalk, Next: Tutorial, Prev: Emacs, Up: Top -4 Interoperability between C and GNU Smalltalk -********************************************** +Interoperability between C and GNU Smalltalk +******************************************** * Menu: @@ -2174,8 +2174,8 @@  File: gst.info, Node: External modules, Next: C callout, Up: C and Smalltalk -4.1 Linking your libraries to the virtual machine -================================================= +Linking your libraries to the virtual machine +============================================= A nice thing you can do with GNU Smalltalk is enhancing it with your own goodies. If they're written in Smalltalk only, no problem: getting them @@ -2272,8 +2272,8 @@  File: gst.info, Node: C callout, Next: C data types, Prev: External modules, Up: C and Smalltalk -4.2 Using the C callout mechanism -================================= +Using the C callout mechanism +============================= To use the C callout mechanism, you first need to inform Smalltalk about the C functions that you wish to call. You currently need to do this in @@ -2288,7 +2288,7 @@ functions needs to be established in your module. If you are writing an external Smalltalk module (which can look at Smalltalk objects and manipulate them), see *Note Linking your libraries to the virtual -machine: External modules.; if you are using function from a dynamically +machine: External modules; if you are using function from a dynamically loaded library, see *Note Dynamic loading::. Second, we need to define a method that will invoke these C functions @@ -2302,7 +2302,7 @@ withSelectorArgs: 'system: aString' returning: #int args: #(string)! - + SystemDictionary defineCFunc: 'getenv' withSelectorArgs: 'getenv: aString' returning: #string @@ -2379,7 +2379,7 @@ program by calling other public GNU Smalltalk functions (*note Smalltalk types::). - `' + `CTYPE' You can pass an instance of CType or one of its subclasses (*note C data types::). In this case the object will be sent `#narrow' before being returned: an example of this feature @@ -2513,8 +2513,8 @@  File: gst.info, Node: C data types, Next: Smalltalk types, Prev: C callout, Up: C and Smalltalk -4.3 The C data type manipulation system -======================================= +The C data type manipulation system +=================================== `CType' is a class used to represent C data types themselves (no storage, just the type). There are subclasses called things like @@ -2615,7 +2615,7 @@ unsigned char open; unsigned char active; }; - + struct audio_info { audio_prinfo_t play; audio_prinfo_t record; @@ -2644,7 +2644,7 @@ poolDictionaries: '' category: 'C interface-Audio' ! - + CStruct subclass: #AudioInfo declaration: #( (play #{AudioPrinfo} ) (record #{AudioPrinfo} ) @@ -2735,8 +2735,8 @@  File: gst.info, Node: Smalltalk types, Next: Smalltalk callin, Prev: C data types, Up: C and Smalltalk -4.4 Manipulating Smalltalk data from C -====================================== +Manipulating Smalltalk data from C +================================== GNU Smalltalk internally maps every object except Integers to a data structure named an "OOP" (which is not an acronym for anything, as far @@ -2772,46 +2772,46 @@ Here are those in the former group (Smalltalk to C); you can see that they all begin with `OOPTo': - -- Function: long OOPToInt (OOP) + - Function: long OOPToInt (OOP) This function assumes that the passed OOP is an Integer and returns the C `signed long' for that integer. - -- Function: long OOPToId (OOP) + - Function: long OOPToId (OOP) This function returns an unique identifier for the given OOP, valid until the OOP is garbage-collected. - -- Function: double OOPToFloat (OOP) + - Function: double OOPToFloat (OOP) This function assumes that the passed OOP is an Float and returns the C `double' for that integer. - -- Function: int OOPToBool (OOP) + - Function: int OOPToBool (OOP) This function returns a C integer which is true (i.e. `!= 0') if the given OOP is the `true' object, false (i.e. `== 0') otherwise. - -- Function: char OOPToChar (OOP) + - Function: char OOPToChar (OOP) This function assumes that the passed OOP is a Character and returns the C `char' for that integer. - -- Function: char *OOPToString (OOP) + - Function: char *OOPToString (OOP) This function assumes that the passed OOP is a String or ByteArray and returns a C null-terminated `char *' with the same contents. It is the caller's responsibility to free the pointer and to handle possible `NUL' characters inside the Smalltalk object. - -- Function: char *OOPToByteArray (OOP) + - Function: char *OOPToByteArray (OOP) This function assumes that the passed OOP is a String or ByteArray and returns a C `char *' with the same contents, without null-terminating it. It is the caller's responsibility to free the pointer. - -- Function: PTR OOPToCObject (OOP) + - Function: PTR OOPToCObject (OOP) This functions assumes that the passed OOP is a kind of CObject and returns a C `PTR' to the C data pointed to by the object. The caller should not free the pointer, nor assume anything about its size and contents, unless it exactly knows what it's doing. A `PTR' is a `void *' if supported, or otherwise a `char *'. - -- Function: long OOPToC (OOP) + - Function: long OOPToC (OOP) This functions assumes that the passed OOP is a String, a ByteArray, a CObject, or a built-in object (nil, true, false, character, integer). If the OOP is nil, it answers 0; else the @@ -2827,7 +2827,7 @@ they are not swept by a garbage collection (*note Incubator::). These functions all "end" with `ToOOP', except `cObjectToTypedOOP': - -- Function: OOP intToOOP (long) + - Function: OOP intToOOP (long) This object returns a Smalltalk Integer which contains the same value as the passed C `long'. Note that Smalltalk Integers are always signed and have a bit less of precision with respect to C @@ -2835,61 +2835,61 @@ unsigned) or 31 bits (if signed); on 64 bit machines, their precision is 62 bits (if unsigned) or 63 bits (if signed). - -- Function: OOP idToOOP (OOP) + - Function: OOP idToOOP (OOP) This function returns an OOP from a unique identifier returned by `OOPToId'. The OOP will be the same that was passed to `OOPToId' only if the original OOP has not been garbage-collected since the call to `OOPToId'. - -- Function: OOP floatToOOP (double) + - Function: OOP floatToOOP (double) This object returns a Smalltalk FloatD which contains the same value as the passed `double'. Unlike Integers, FloatDs have exactly the same precision as C doubles. - -- Function: OOP boolToOOP (int) + - Function: OOP boolToOOP (int) This object returns a Smalltalk Boolean which contains the same boolean value as the passed C `int'. That is, the returned OOP is the sole instance of either `False' or `True', depending on where the parameter is zero or not. - -- Function: OOP charToOOP (char) + - Function: OOP charToOOP (char) This object returns a Smalltalk Character which represents the same char as the passed C `char'. - -- Function: OOP classNameToOOP (char *) + - Function: OOP classNameToOOP (char *) This method returns the Smalltalk class (i.e. an instance of a subclass of Class) whose name is the given parameter. This method is slow; you can safely cache its result. - -- Function: OOP stringToOOP (char *) + - Function: OOP stringToOOP (char *) This method returns a String which maps to the given null-terminated C string, or the builtin object `nil' if the parameter points to address 0 (zero). - -- Function: OOP byteArrayToOOP (char *, int) + - Function: OOP byteArrayToOOP (char *, int) This method returns a ByteArray which maps to the bytes that the first parameters points to; the second parameter gives the size of the ByteArray. The builtin object `nil' is returned if the first parameter points to address 0 (zero). - -- Function: OOP symbolToOOP (char *) + - Function: OOP symbolToOOP (char *) This method returns a String which maps to the given null-terminated C string, or the builtin object `nil' if the parameter points to address 0 (zero). - -- Function: OOP cObjectToOOP (PTR) + - Function: OOP cObjectToOOP (PTR) This method returns a CObject which maps to the given C pointer, or the builtin object `nil' if the parameter points to address 0 (zero). The returned value has no precise CType assigned. To assign one, use `cObjectToTypedOOP'. - -- Function: OOP cObjectToTypedOOP (PTR, OOP) + - Function: OOP cObjectToTypedOOP (PTR, OOP) This method returns a CObject which maps to the given C pointer, or the builtin object `nil' if the parameter points to address 0 (zero). The returned value has the second parameter as its type; to get possible types you can use `typeNameToOOP'. - -- Function: OOP typeNameToOOP (char *) + - Function: OOP typeNameToOOP (char *) All this method actually does is evaluating its parameter as Smalltalk code; so you can, for example, use it in any of these ways: @@ -2910,16 +2910,16 @@ To avoid garbage collection of such object, you can use these functions, which access a separate registry: - -- Function: void registerOOP (OOP) + - Function: void registerOOP (OOP) Puts the given OOP in the registry. If you register an object multiple times, you will need to unregister it the same number of times. You may want to register objects returned by Smalltalk call-ins. - -- Function: void unregisterOOP (OOP) + - Function: void unregisterOOP (OOP) Removes an occurrence of the given OOP from the registry. - -- Function: void registerOOPArray (OOP **, OOP **) + - Function: void registerOOPArray (OOP **, OOP **) Tells the garbage collector that an array of objects must be made part of the root set. The two parameters point indirectly to the base and the top of the array; that is, they are pointers to @@ -2930,14 +2930,14 @@ register an array multiple times, you will need to unregister it the same number of times. - -- Function: void unregisterOOPArray (OOP **) + - Function: void unregisterOOPArray (OOP **) Removes the array with the given base from the registry.  File: gst.info, Node: Smalltalk callin, Next: Object representation, Prev: Smalltalk types, Up: C and Smalltalk -4.5 Calls from C to Smalltalk -============================= +Calls from C to Smalltalk +========================= GNU Smalltalk provides seven different function calls that allow you to call Smalltalk methods in a different execution context than the current @@ -2955,7 +2955,7 @@ arguments for a 3-argument selector--see the description of the single functions for more information). - -- Function: OOP msgSend (OOP receiver, OOP selector, ...) + - Function: OOP msgSend (OOP receiver, OOP selector, ...) This function sends the given selector (should be a Symbol, otherwise nilOOP is returned) to the given receiver. The message arguments should also be OOPs (otherwise, an access violation @@ -2971,7 +2971,7 @@ intToOOP(2), nil); - -- Function: OOP strMsgSend (OOP receiver, char *selector, ...) + - Function: OOP strMsgSend (OOP receiver, char *selector, ...) This function is the same as above, but the selector is passed as a C string and is automatically converted to a Smalltalk symbol. @@ -2988,7 +2988,7 @@ intToOOP(2), nil); - -- Function: OOP vmsgSend (OOP receiver, OOP selector, OOP *args) + - Function: OOP vmsgSend (OOP receiver, OOP selector, OOP *args) This function is the same as msgSend, but accepts a pointer to the NULL-terminated list of arguments, instead of being a variable-arguments functions. Example: @@ -2997,13 +2997,13 @@ arguments[0] = intToOOP(2); arguments[1] = nil; /* ... some more code here ... */ - + shouldBeThreeOOP = vmProxy->vmsgSend( intToOOP(1), symbolToOOP("+"), arguments); - -- Function: OOP nvmsgSend (OOP receiver, OOP selector, OOP *args, int + - Function: OOP nvmsgSend (OOP receiver, OOP selector, OOP *args, int nargs) This function is the same as msgSend, but accepts an additional parameter containing the number of arguments to be passed to the @@ -3013,7 +3013,7 @@ OOP argument, shouldBeThreeOOP; argument = intToOOP(2); /* ... some more code here ... */ - + shouldBeThreeOOP = vmProxy->nvmsgSend( intToOOP(1), symbolToOOP("+"), @@ -3032,16 +3032,16 @@ /* 1 + 2 */ int shouldBeThree; vmProxy->msgSendf(&shouldBeThree, "%i %i + %i", 1, 2) - + /* aCollection includes: 'abc' */ OOP aCollection; int aBoolean; vmProxy->msgSendf(&aBoolean, "%b %o includes: %s", aCollection, "abc") - + /* 'This is a test' printNl -- in two different ways */ vmProxy->msgSendf(nil, "%v %s printNl", "This is a test"); vmProxy->msgSendf(nil, "%s %s printNl", "This is a test"); - + /* 'This is a test', ' ok?' */ char *str; vmProxy->msgSendf(&str, "%s %s , %s", "This is a test", " ok?"); @@ -3110,15 +3110,15 @@  File: gst.info, Node: Other C functions, Next: Using Smalltalk, Prev: Incubator, Up: C and Smalltalk -4.6 Other functions available to modules -======================================== +Other functions available to modules +==================================== In addition to the functions above, the `VMProxy' that is made available to modules contains entry-points for many functions that aid in developing GNU Smalltalk extensions in C. This node documents these functions and the macros that are defined by `libgst/gstpub.h'. - -- Function: void asyncSignal (OOP) + - Function: void asyncSignal (OOP) This functions accepts an OOP for a `Semaphore' object and signals that object so that one of the processes waiting on that semaphore is waken up. Since a Smalltalk call-in is not an atomic @@ -3133,14 +3133,14 @@ _Caution:_ This and the next one are the only functions in the `intepreterProxy' that can be called from within a signal handler. - -- Function: void asyncSignalAndUnregister (OOP) + - Function: void asyncSignalAndUnregister (OOP) This functions accepts an OOP for a `Semaphore' object and signals that object so that one of the processes waiting on that semaphore is waken up; the signal request will be processed as soon as the next message send is executed. The object is then removed from the registry. - -- Function: void syncWait (OOP) + - Function: void syncWait (OOP) This functions accepts an OOP for a `Semaphore' object and puts the current process to sleep, unless the semaphore has excess signals on it. Since a Smalltalk call-in is not an atomic operation, the @@ -3153,7 +3153,7 @@ `asyncSignal', in that it cannot be called from within a signal handler. - -- Function: OOP objectAlloc (OOP, int) + - Function: OOP objectAlloc (OOP, int) The `objectAlloc' function allocates an OOP for a newly created instance of the class whose OOP is passed as the first parameter; if that parameter is not a class the results are undefined (for @@ -3176,7 +3176,7 @@ The macros are(1): - -- Macro: mst_Object OOP_TO_OBJ (OOP) + - Macro: mst_Object OOP_TO_OBJ (OOP) Dereference a pointer to an OOP into a pointer to the actual object data (*note Object representation::). The result of `OOP_TO_OBJ' is not valid anymore if a garbage-collection happens; @@ -3185,44 +3185,44 @@ caling any of the "C to Smalltalk" functions (*note Smalltalk types::). - -- Macro: OOP OOP_CLASS (OOP) + - Macro: OOP OOP_CLASS (OOP) Return the OOP for the class of the given object. For example, `OOP_CLASS(proxy->stringToOOP("Wonderful GNU Smalltalk"))' is the `String' class, as returned by `classNameToOOP("String")'. - -- Macro: mst_Boolean IS_INT (OOP) + - Macro: mst_Boolean IS_INT (OOP) Return a Boolean indicating whether or not the OOP is an Integer object; the value of SmallInteger objects is encoded directly in the OOP, not separately in a `mst_Object' structure. It is not safe to use `OOP_TO_OBJ' and `OOP_CLASS' if `isInt' returns false. - -- Macro: mst_Boolean IS_OOP (OOP) + - Macro: mst_Boolean IS_OOP (OOP) Return a Boolean indicating whether or not the OOP is a `real' object (and not a SmallInteger). It is safe to use `OOP_TO_OBJ' and `OOP_CLASS' only if `IS_OOP' returns true. - -- Macro: mst_Boolean ARRAY_OOP_AT (mst_Object, int) + - Macro: mst_Boolean ARRAY_OOP_AT (mst_Object, int) Access the character given in the second parameter of the given Array object. Note that this is necessary because of the way `mst_Object' is defined, which prevents `indexedOOP' from working. - -- Macro: mst_Boolean STRING_OOP_AT (mst_Object, int) + - Macro: mst_Boolean STRING_OOP_AT (mst_Object, int) Access the character given in the second parameter of the given String or ByteArray object. Note that this is necessary because of the way `mst_Object' is defined, which prevents `indexedByte' from working. - -- Macro: mst_Boolean INDEXED_WORD (, int) + - Macro: mst_Boolean INDEXED_WORD (SOME-OBJECT-TYPE, int) Access the given indexed instance variable in a `variableWordSubclass'. The first parameter must be a structure declared as described in *Note Object representation::). - -- Macro: mst_Boolean INDEXED_BYTE (, int) + - Macro: mst_Boolean INDEXED_BYTE (SOME-OBJECT-TYPE, int) Access the given indexed instance variable in a `variableByteSubclass'. The first parameter must be a structure declared as described in *Note Object representation::). - -- Macro: mst_Boolean INDEXED_OOP (, int) + - Macro: mst_Boolean INDEXED_OOP (SOME-OBJECT-TYPE, int) Access the given indexed instance variable in a `variableSubclass'. The first parameter must be a structure declared as described in *Note Object representation::). @@ -3237,8 +3237,8 @@  File: gst.info, Node: Object representation, Next: Incubator, Prev: Smalltalk callin, Up: C and Smalltalk -4.7 Manipulating instances of your own Smalltalk classes from C -=============================================================== +Manipulating instances of your own Smalltalk classes from C +=========================================================== Although GNU Smalltalk's library exposes functions to deal with instances of the most common base class, it's likely that, sooner or @@ -3263,7 +3263,7 @@ classVariableNames: '' poolDictionaries: '' category: 'SQL-C interface' - + SQLAction subclass: #SQLRequest instanceVariableNames: 'returnedRows' classVariableNames: '' @@ -3312,29 +3312,29 @@ |-- SQLRequest | `-- SQLUpdateQuery `-- SQLObjectCreation */ - + #define ST_SQLACTION_HEADER \ OBJ_HEADER; \ OOP database; \ OOP request /* no semicolon */ - + #define ST_SQLREQUEST_HEADER \ ST_SQLACTION_HEADER; \ OOP returnedRows /* no semicolon */ - + typedef struct st_SQLAction { ST_SQLACTION_HEADER; } *SQLAction; - + typedef struct st_SQLRequest { ST_SQLREQUEST_HEADER; } *SQLRequest; - + typedef struct st_SQLObjectCreation { ST_SQLACTION_HEADER; OOP newDBObject; } *SQLObjectCreation; - + typedef struct st_SQLUpdateQuery { ST_SQLREQUEST_HEADER; OOP numUpdatedRows; @@ -3370,9 +3370,9 @@ vmProxy->oopToString(action->request); query_completed_callback, /* Callback function */ oop); /* Passed to the callback */ - + ... - + /* Imagine that invoke_sql_query runs asynchronously and calls this when the job is done. */ void @@ -3385,13 +3385,13 @@ SQLUpdateQuery query; OOP rows; OOP cObject; - + /* Free the memory allocated by oopToString */ free(request); - + if (OOP_CLASS (oop) == sqlActionClass) return; - + if (OOP_CLASS (oop) == sqlObjectCreationClass) { SQLObjectCreation oc; @@ -3408,7 +3408,7 @@ if (OOP_CLASS (oop) == sqlUpdateQueryClass) query->numReturnedRows = vmProxy->intToOOP (result->count); } - + } Note that the result of `OOP_TO_OBJ' is not valid anymore if a @@ -3426,8 +3426,8 @@  File: gst.info, Node: Using Smalltalk, Prev: Other C functions, Up: C and Smalltalk -4.8 Using the Smalltalk environment as an extension library -=========================================================== +Using the Smalltalk environment as an extension library +======================================================= If you are reading this chapter because you are going to write extensions to GNU Smalltalk, this section won't probably interest you. @@ -3452,7 +3452,7 @@ result = 0; else if (result == 0) gst_top_level_loop(); - + exit(result); } @@ -3501,8 +3501,8 @@  File: gst.info, Node: Incubator, Next: Other C functions, Prev: Object representation, Up: C and Smalltalk -4.9 Incubator support -===================== +Incubator support +================= The incubator concept provides a mechanism to protect newly created objects from being accidentally garbage collected before they can be @@ -3525,15 +3525,15 @@ that is linking with `libgst.a'. Such a program has much finer control to the incubator. The interface provides the following operations: - -- Macro: void INC_ADD_OOP (OOP anOOP) + - Macro: void INC_ADD_OOP (OOP anOOP) Adds a new object to the protected set. - -- Macro: inc_ptr INC_SAVE_POINTER () + - Macro: inc_ptr INC_SAVE_POINTER () Retrieves the current incubator pointer. Think of the incubator as a stack, and this operation returns the current stack pointer for later use (restoration) with the incRestorePointer function. - -- Macro: void INC_RESTORE_POINTER (inc_ptr ptr) + - Macro: void INC_RESTORE_POINTER (inc_ptr ptr) Sets (restores) the incubator pointer to the given pointer value. Typically, when you are within a function which allocates more than @@ -3559,7 +3559,7 @@ desc->argTypes[i - 1] = _gst_classify_type_symbol(ARRAY_AT(argsOOP, i), false); } - + return (_gst_alloc_oop(desc)); `desc' is originally allocated via `newInstanceWith' and `allocOOP', @@ -3574,16 +3574,16 @@ OOP descOOP; IncPtr ptr; - + incPtr = INC_SAVE_POINTER(); desc = (_gst_cfunc_descriptor) new_instance_with (cFuncDescriptorClass, numArgs); descOOP = _gst_alloc_oop(desc); INC_ADD_OOP (descOOP); - + desc->cFunction = _gst_cobject_new (funcAddr); // 1 INC_ADD_OOP (desc->cFunction); - + desc->cFunctionName = _gst_string_new (funcName); // 2 /* since none of the rest of the function (or the functions it calls) * allocates any storage, we don't have to add desc->cFunctionName @@ -3591,14 +3591,14 @@ * to be completely safe against changes to the implementations of * the functions called from this function. */ - + desc->numFixedArgs = FROM_INT (numArgs); desc->returnType = _gst_classify_type_symbol (returnTypeOOP, true); for (i = 1; i <= numArgs; i++) { desc->argTypes[i - 1] = _gst_classify_type_symbol(ARRAY_AT(argsOOP, i), false); } - + return (_gst_alloc_oop(desc)); Note that it is permissible for two or more functions to cooperate @@ -3616,8 +3616,8 @@  File: gst.info, Node: Tutorial, Next: Future, Prev: C and Smalltalk, Up: Top -5 Tutorial -********** +Tutorial +******** What this manual presents This document provides a tutorial introduction to the Smalltalk @@ -3653,8 +3653,8 @@  File: gst.info, Node: Getting started, Next: Some classes, Prev: Tutorial, Up: Tutorial -5.1 Getting started -=================== +Getting started +=============== * Menu: @@ -3667,15 +3667,15 @@  File: gst.info, Node: Starting Smalltalk, Next: Saying hello, Prev: Getting started, Up: Getting started -5.1.1 Starting up Smalltalk ---------------------------- +Starting up Smalltalk +--------------------- Assuming that GNU Smalltalk has been installed on your system, starting it is as simple as: $ gst the system loads in Smalltalk, and displays a startup banner like: GNU Smalltalk ready - + st> You are now ready to try your hand at Smalltalk! By the way, when @@ -3685,8 +3685,8 @@  File: gst.info, Node: Saying hello, Next: What happened, Prev: Starting Smalltalk, Up: Getting started -5.1.2 Saying hello ------------------- +Saying hello +------------ An initial exercise is to make Smalltalk say "hello" to you. Type in the following line (`printNl' is a upper case N and a lower case L): @@ -3705,8 +3705,8 @@  File: gst.info, Node: What happened, Next: Doing math, Prev: Saying hello, Up: Getting started -5.1.3 What actually happened ----------------------------- +What actually happened +---------------------- The front-line Smalltalk interpreter gathers all text until a '!' character and executes it. So the actual Smalltalk code executed was: @@ -3751,8 +3751,8 @@  File: gst.info, Node: Doing math, Next: Math in Smalltalk, Prev: What happened, Up: Getting started -5.1.4 Doing math ----------------- +Doing math +---------- A similar piece of code prints numbers: 1234 printNl ! @@ -3788,8 +3788,8 @@  File: gst.info, Node: Math in Smalltalk, Prev: Doing math, Up: Getting started -5.1.5 Math in Smalltalk ------------------------ +Math in Smalltalk +----------------- In this case, what happened was that the object `9' (an Integer), received a `+' message with an argument of `7' (also an Integer). The @@ -3816,8 +3816,8 @@  File: gst.info, Node: Some classes, Next: The hierarchy, Prev: Getting started, Up: Tutorial -5.2 Using some of the Smalltalk classes -======================================= +Using some of the Smalltalk classes +=================================== This chapter has examples which need a place to hold the objects they create. The following line creates such a place; for now, treat it as @@ -3838,8 +3838,8 @@  File: gst.info, Node: Arrays, Next: Sets, Prev: Some classes, Up: Some classes -5.2.1 An array in Smalltalk ---------------------------- +An array in Smalltalk +--------------------- An array in Smalltalk is similar to an array in any other language, although the syntax may seem peculiar at first. To create an array @@ -3855,15 +3855,18 @@ For instance: (x at: 1) printNl ! - which prints: + +which prints: nil The slots of an array are initially set to "nothing" (which Smalltalk calls `nil'). Let's set the first slot to the number 99: x at: 1 put: 99 ! - and now make sure the 99 is actually there: + +and now make sure the 99 is actually there: (x at: 1) printNl ! - which then prints out: + +which then prints out: 99 These examples show how to manipulate an array. They also show the @@ -3886,15 +3889,18 @@ There is quite a bit of sanity checking built into an array. The request 6 at: 1 - fails with an error; 6 is an integer, and can't be indexed. Further, + +fails with an error; 6 is an integer, and can't be indexed. Further, x at: 21 - fails with an error, because the array we created only has room for -20 objects. + +fails with an error, because the array we created only has room for 20 +objects. Finally, note that the object stored in an array is just like any other object, so we can do things like: ((x at: 1) + 1) printNl ! - which (assuming you've been typing in the examples) will print 100. + +which (assuming you've been typing in the examples) will print 100. ---------- Footnotes ---------- @@ -3911,8 +3917,8 @@  File: gst.info, Node: Sets, Next: Dictionaries, Prev: Arrays, Up: Some classes -5.2.2 A set in Smalltalk ------------------------- +A set in Smalltalk +------------------ We're done with the array we've been using, so we'll assign something new to our `x' variable. Note that we don't need to do anything @@ -3922,7 +3928,8 @@ finds that it is running low on memory. So, to get our new object, simply do: x := Set new ! - which creates an empty set. To view its contents, do: + +which creates an empty set. To view its contents, do: x printNl ! The kind of object is printed out (i.e., `Set'), and then the @@ -3950,7 +3957,8 @@ trouble, but for now let's continue with our set. Type either version of the example, and make sure that we've added 5, 7, and "foo": x printNl ! - we'll see that it now contains our data: + +we'll see that it now contains our data: Set (5 'foo' 7) What if we add something twice? No problem--it just stays in the @@ -3991,8 +3999,8 @@  File: gst.info, Node: Dictionaries, Next: Smalltalk dictionary, Prev: Sets, Up: Some classes -5.2.3 Dictionaries ------------------- +Dictionaries +------------ A dictionary is a special kind of collection. With a regular array, you must index it with integers. With dictionaries, you can index it @@ -4023,16 +4031,18 @@ We can also ask a dictionary to print itself: x printNl ! - which prints: + +which prints: Dictionary (1->'One' 2->'Two' 'One'->1 'Two'->2 ) - where the first member of each pair is the key, and the second the + +where the first member of each pair is the key, and the second the value.  File: gst.info, Node: Smalltalk dictionary, Next: Closing thoughts, Prev: Dictionaries, Up: Some classes -5.2.4 Smalltalk dictionary --------------------------- +Smalltalk dictionary +-------------------- If you'll remember from the beginning of the chapter, we started out by saying: @@ -4082,8 +4092,8 @@  File: gst.info, Node: Closing thoughts, Prev: Smalltalk dictionary, Up: Some classes -5.2.5 Closing thoughts ----------------------- +Closing thoughts +---------------- You've seen how Smalltalk provides you with some very powerful data structures. You've also seen how Smalltalk itself uses these same @@ -4102,8 +4112,8 @@  File: gst.info, Node: The hierarchy, Next: Creating classes, Prev: Some classes, Up: Tutorial -5.3 The Smalltalk class hierarchy -================================= +The Smalltalk class hierarchy +============================= When programming in Smalltalk, you sometimes need to create new kinds of objects, and define what various messages will do to these objects. @@ -4121,8 +4131,8 @@  File: gst.info, Node: Class Object, Next: Animals, Prev: The hierarchy, Up: The hierarchy -5.3.1 Class `Object' --------------------- +Class `Object' +-------------- Smalltalk organizes all of its classes as a tree hierarchy. At the very top of this hierarchy is class Object. Following somewhere below @@ -4141,8 +4151,8 @@  File: gst.info, Node: Animals, Next: But why, Prev: Class Object, Up: The hierarchy -5.3.2 Animals -------------- +Animals +------- Imagine that we have three kinds of objects, representing Animals, Parrots, and Pigs. Our messages will be eat, sing, and snort. Our @@ -4222,8 +4232,8 @@  File: gst.info, Node: But why, Prev: Animals, Up: The hierarchy -5.3.3 The bottom line of the class hierarchy --------------------------------------------- +The bottom line of the class hierarchy +-------------------------------------- The goal of the class hierarchy is to allow you to organize objects into a relationship which allows a particular object to inherit the @@ -4244,8 +4254,8 @@  File: gst.info, Node: Creating classes, Next: Creating subclasses, Prev: The hierarchy, Up: Tutorial -5.4 Creating a new class of objects -=================================== +Creating a new class of objects +=============================== With the basic techniques presented in the preceding chapters, we're ready do our first real Smalltalk program. In this chapter we will @@ -4264,7 +4274,8 @@ examples. To save the current state of GNU Smalltalk, type: ObjectMemory snapshot: 'myimage.im' ! - and from your shell, to later restart Smalltalk from this "snapshot": + +and from your shell, to later restart Smalltalk from this "snapshot": $ gst -I myimage.im Such a snapshot currently takes a little more than a megabyte, and @@ -4285,8 +4296,8 @@  File: gst.info, Node: A new class, Next: Documenting the class, Prev: Creating classes, Up: Creating classes -5.4.1 Creating a new class --------------------------- +Creating a new class +-------------------- Guess how you create a new class? This should be getting monotonous by now--by sending a message to an object. The way we create our first @@ -4316,8 +4327,8 @@  File: gst.info, Node: Documenting the class, Next: Defining methods, Prev: A new class, Up: Creating classes -5.4.2 Documenting the class ---------------------------- +Documenting the class +--------------------- The next step is to associate a description with the class. You do this by sending a message to the new class: @@ -4336,17 +4347,17 @@  File: gst.info, Node: Defining methods, Next: Instance methods, Prev: Documenting the class, Up: Creating classes -5.4.3 Defining a method for the class -------------------------------------- +Defining a method for the class +------------------------------- We have created a class, but it isn't ready to do any work for us--we have to define some messages which the class can process first. We'll start at the beginning by defining methods for instance creation: !Account class methodsFor: 'instance creation'! - + new | r | - + r := super new. r init. ^r @@ -4436,8 +4447,8 @@  File: gst.info, Node: Instance methods, Next: A look at our object, Prev: Defining methods, Up: Creating classes -5.4.4 Defining an instance method ---------------------------------- +Defining an instance method +--------------------------- We need to define the `init' method for our Account objects, so that our `new' method defined above will work. Here's the Smalltalk code: @@ -4474,8 +4485,8 @@  File: gst.info, Node: A look at our object, Next: Moving money around, Prev: Instance methods, Up: Creating classes -5.4.5 Looking at our Account ----------------------------- +Looking at our Account +---------------------- Let's create an instance of class Account: Smalltalk at: #a put: (Account new) ! @@ -4527,8 +4538,8 @@  File: gst.info, Node: Moving money around, Next: Next coming, Prev: A look at our object, Up: Creating classes -5.4.6 Moving money around -------------------------- +Moving money around +------------------- We can now create accounts, and look at them. As it stands, though, our balance will always be 0--what a tragedy! Our final methods will @@ -4553,8 +4564,8 @@  File: gst.info, Node: Next coming, Prev: Moving money around, Up: Creating classes -5.4.7 What's next? ------------------- +What's next? +------------ We now have a generic concept, an "Account". We can create them, check their balance, and move money in and out of them. They provide a good @@ -4565,8 +4576,8 @@  File: gst.info, Node: Creating subclasses, Next: Code blocks (I), Prev: Creating classes, Up: Tutorial -5.5 Two Subclasses for the Account Class -======================================== +Two Subclasses for the Account Class +==================================== This chapter continues from the previous chapter in demonstrating how one creates classes and subclasses in Smalltalk. In this chapter we @@ -4584,8 +4595,8 @@  File: gst.info, Node: The Savings class, Next: The Checking class, Prev: Creating subclasses, Up: Creating subclasses -5.5.1 The Savings class ------------------------ +The Savings class +----------------- We create the Savings class as a subclass of Account. It holds money, just like an Account, but has an additional property that we will @@ -4626,7 +4637,7 @@ ! clearInterest | oldinterest | - + oldinterest := interest. interest := 0. ^oldinterest @@ -4677,8 +4688,8 @@  File: gst.info, Node: The Checking class, Next: Writing checks, Prev: The Savings class, Up: Creating subclasses -5.5.2 The Checking class ------------------------- +The Checking class +------------------ Our second subclass of Account represents a checking account. We will keep track of two facets: @@ -4713,8 +4724,8 @@  File: gst.info, Node: Writing checks, Prev: The Checking class, Up: Creating subclasses -5.5.3 Writing checks --------------------- +Writing checks +-------------- We will finish this chapter by adding a method for spending money through our checkbook. The mechanics of taking a message and updating @@ -4724,10 +4735,10 @@ checknum := number. checksleft := checkcount ! - + writeCheck: amount | num | - + num := checknum. checknum := checknum + 1. checksleft := checksleft - 1. @@ -4769,8 +4780,8 @@  File: gst.info, Node: Code blocks (I), Next: Code blocks (II), Prev: Creating subclasses, Up: Tutorial -5.6 Code blocks -=============== +Code blocks +=========== The Account/Saving/Checking example from the last chapter has several deficiencies. It has no record of the checks and their values. Worse, @@ -4787,8 +4798,8 @@  File: gst.info, Node: Conditions, Next: Iteration, Prev: Code blocks (I), Up: Code blocks (I) -5.6.1 Conditions and decision making ------------------------------------- +Conditions and decision making +------------------------------ Let's first add some code to keep you from writing too many checks. We will simply update our current method for the Checking class; if you @@ -4797,7 +4808,7 @@ !Checking methodsFor: 'spending'! writeCheck: amount | num | - + (checksleft < 1) ifTrue: [ ^self error: 'Out of checks' ]. num := checknum. @@ -4863,8 +4874,8 @@  File: gst.info, Node: Iteration, Prev: Conditions, Up: Code blocks (I) -5.6.2 Iteration and collections -------------------------------- +Iteration and collections +------------------------- Now that we have some sanity checking in place, it remains for us to keep a log of the checks we write. We will do so by adding a @@ -4920,19 +4931,19 @@ !Checking methodsFor: 'spending'! writeCheck: amount | num | - + "Sanity check that we have checks left in our checkbook" (checksleft < 1) ifTrue: [ ^self error: 'Out of checks' ]. - + "Make sure we've never used this check number before" num := checknum. (history includesKey: num) ifTrue: [ ^self error: 'Duplicate check number' ]. - + "Record the check number and amount" history at: num put: amount. - + "Update our next checknumber, checks left, and balance" checknum := checknum + 1. checksleft := checksleft - 1. @@ -5050,8 +5061,8 @@  File: gst.info, Node: Code blocks (II), Next: Debugging, Prev: Code blocks (I), Up: Tutorial -5.7 Code blocks, part two -========================= +Code blocks, part two +===================== In the last chapter, we looked at how code blocks could be used to build conditional expressions, and how you could iterate across all @@ -5079,8 +5090,8 @@  File: gst.info, Node: Integer loops, Next: Intervals, Prev: Code blocks (II), Up: Code blocks (II) -5.7.1 Integer loops -------------------- +Integer loops +------------- Integer loops are constructed by telling a number to drive the loop. Try this example to count from 1 to 20: @@ -5095,8 +5106,8 @@  File: gst.info, Node: Intervals, Next: Invoking code blocks, Prev: Integer loops, Up: Code blocks (II) -5.7.2 Intervals ---------------- +Intervals +--------- It is also possible to represent a range of numbers as a standalone object. This allows you to represent a range of numbers as a single @@ -5115,8 +5126,8 @@  File: gst.info, Node: Invoking code blocks, Prev: Intervals, Up: Code blocks (II) -5.7.3 Invoking code blocks --------------------------- +Invoking code blocks +-------------------- Let us revisit the checking example and add a method for scanning only checks over a certain amount. This would allow our user to find "big" @@ -5202,8 +5213,8 @@  File: gst.info, Node: Debugging, Next: More subclassing, Prev: Code blocks (II), Up: Tutorial -5.8 When Things Go Bad -====================== +When Things Go Bad +================== So far we've been working with examples which work the first time. If you didn't type them in correctly, you probably received a flood of @@ -5225,8 +5236,8 @@  File: gst.info, Node: Simple errors, Next: Nested calls, Prev: Debugging, Up: Debugging -5.8.1 A Simple Error --------------------- +A Simple Error +-------------- First, let's take a look at a typical error. Type: 7 plus: 1 ! @@ -5256,8 +5267,8 @@  File: gst.info, Node: Nested calls, Next: Looking at objects, Prev: Simple errors, Up: Debugging -5.8.2 Nested Calls ------------------- +Nested Calls +------------ Type the following lines: Smalltalk at: #x put: (Dictionary new) ! @@ -5300,7 +5311,7 @@ ...look for key... (keyNotFound) ifTrue: [ ^(errCodeBlock value) ] ... - + at: key ^self at: key ifAbsent: [^self error: 'key not found'] @@ -5314,8 +5325,8 @@  File: gst.info, Node: Looking at objects, Prev: Nested calls, Up: Debugging -5.8.3 Looking at Objects ------------------------- +Looking at Objects +------------------ When you are chasing an error, it is often helpful to examine the instance variables of your objects. While strategic calls to `printNl' @@ -5356,8 +5367,8 @@  File: gst.info, Node: More subclassing, Next: Streams, Prev: Debugging, Up: Tutorial -5.9 Coexisting in the Class Hierarchy -===================================== +Coexisting in the Class Hierarchy +================================= The early chapters of this tutorial discussed classes in one of two ways. The "toy" classes we developed were rooted at Object; the @@ -5386,8 +5397,8 @@  File: gst.info, Node: The existing hierarchy, Next: Playing with Arrays, Prev: More subclassing, Up: More subclassing -5.9.1 The Existing Class Hierarchy ----------------------------------- +The Existing Class Hierarchy +---------------------------- To discuss where a new class might go, it is helpful to have a map of the current classes. The following is the basic class hierarchy of GNU @@ -5577,8 +5588,8 @@  File: gst.info, Node: Playing with Arrays, Next: New kinds of Numbers, Prev: The existing hierarchy, Up: More subclassing -5.9.2 Playing with Arrays -------------------------- +Playing with Arrays +------------------- Imagine that you need an array, but alas you need that if an index is out of bounds, it returns nil. You could modify the Smalltalk @@ -5590,18 +5601,18 @@ classVariableNames: '' poolDictionaries: '' category: nil ! - + !NiledArray methodsFor: 'bounds checking'! boundsCheck: index ^(index < 1) | (index > (self basicSize)) ! ! - + !NiledArray methodsFor: 'basic'! at: index ^(self boundsCheck: index) ifTrue: [ nil ] ifFalse: [ super at: index ] - + ! at: index put: val ^(self boundsCheck: index) @@ -5672,8 +5683,8 @@  File: gst.info, Node: New kinds of Numbers, Next: Inheritance and Polymorphism, Prev: Playing with Arrays, Up: More subclassing -5.9.3 Adding a New Kind of Number ---------------------------------- +Adding a New Kind of Number +--------------------------- If we were programming an application which did a large amount of complex math, we could probably manage it with a number of two-element @@ -5720,14 +5731,14 @@ real: r imaginary: i ^(super new) setReal: r setImag: i ! ! - + !Complex methodsFor: 'creating--private'! setReal: r setImag: i realpart := r. imagpart := i. ^self ! ! - + !Complex methodsFor: 'basic'! real ^realpart @@ -5735,7 +5746,7 @@ imaginary ^imagpart ! ! - + !Complex methodsFor: 'math'! + val ^Complex real: (realpart + val real) @@ -5756,9 +5767,9 @@ i := ((imagpart * val real) - (realpart * val imaginary)). ^Complex real: r / d imaginary: i / d ! ! - + !Complex methodsFor: 'comparison'! - + = val ^(realpart = val real) & (imagpart = val imaginary) ! @@ -5774,7 +5785,7 @@ <= val ^self shouldNotImplement ! ! - + !Complex methodsFor: 'printing'! printOn: aStream aStream nextPut: $(. @@ -5801,8 +5812,8 @@  File: gst.info, Node: Inheritance and Polymorphism, Prev: New kinds of Numbers, Up: More subclassing -5.9.4 Inheritance and Polymorphism ----------------------------------- +Inheritance and Polymorphism +---------------------------- This is a good time to look at what we've done with the two previous examples at a higher level. With the NiledArray class, we inherited @@ -5847,8 +5858,8 @@  File: gst.info, Node: Streams, Next: Behind the scenes, Prev: More subclassing, Up: Tutorial -5.10 Smalltalk Streams -====================== +Smalltalk Streams +================= Our examples have used a mechanism extensively, even though we haven't discussed it yet. The Stream class provides a framework for a number @@ -5871,8 +5882,8 @@  File: gst.info, Node: The output stream, Next: Your own stream, Prev: Streams, Up: Streams -5.10.1 The Output Stream ------------------------- +The Output Stream +----------------- The examples in this book all work because they write their output to the `Transcript' stream. Each class implements the `printOn:' method, @@ -5899,8 +5910,8 @@  File: gst.info, Node: Your own stream, Next: Files, Prev: The output stream, Up: Streams -5.10.2 Your Own Stream ----------------------- +Your Own Stream +--------------- Unlike a pipe you might create in C, the underlying storage of a Stream is under your control. Thus, a Stream can provide an anonymous buffer @@ -5981,8 +5992,8 @@  File: gst.info, Node: Files, Next: Dynamic Strings, Prev: Your own stream, Up: Streams -5.10.3 Files ------------- +Files +----- Streams can also operate on files. If you wanted to dump the file `/etc/passwd' to your terminal, you could create a stream on the file, @@ -6001,8 +6012,8 @@  File: gst.info, Node: Dynamic Strings, Prev: Files, Up: Streams -5.10.4 Dynamic Strings ----------------------- +Dynamic Strings +--------------- Streams provide a powerful abstraction for a number of data structures. Concepts like current position, writing the next position, and @@ -6038,8 +6049,8 @@  File: gst.info, Node: Behind the scenes, Next: And now, Prev: Streams, Up: Tutorial -5.11 Some nice stuff from the Smalltalk innards -=============================================== +Some nice stuff from the Smalltalk innards +========================================== Just like with everything else, you'd probably end up asking yourself: how's it done? So here's this chapter, just to wheten your appetite... @@ -6054,8 +6065,8 @@  File: gst.info, Node: Inside Arrays, Next: Two flavors of equality, Prev: Behind the scenes, Up: Behind the scenes -5.11.1 How Arrays Work ----------------------- +How Arrays Work +--------------- Smalltalk provides a very adequate selection of predefined classes from which to choose. Eventually, however, you will find the need to code a @@ -6269,8 +6280,8 @@  File: gst.info, Node: Two flavors of equality, Next: Why is #new there?!?, Prev: Inside Arrays, Up: Behind the scenes -5.11.2 Two flavors of equality ------------------------------- +Two flavors of equality +----------------------- As first seen in chapter two, Smalltalk keys its dictionary with things like #word, whereas we generally use 'word'. The former, as it turns @@ -6338,8 +6349,8 @@  File: gst.info, Node: Why is #new there?!?, Next: Performance, Prev: Two flavors of equality, Up: Behind the scenes -5.11.3 The truth about metaclasses ----------------------------------- +The truth about metaclasses +--------------------------- Everybody, sooner or later, looks for the implementation of the `#new' method in Object class. To their surprise, they don't find it; if @@ -6355,13 +6366,13 @@ st> Set superclass! HashedCollection - + st> HashedCollection superclass! Collection - + st> Collection superclass! Object - + st> Object superclass! nil @@ -6369,13 +6380,13 @@ st> #(1 2 3) class! Array - + st> '123' class! String - + st> Set class! Set class - + st> Set class class! Metaclass @@ -6384,7 +6395,7 @@ st> ^Set class superclass! Collection class - + st> ^Collection class superclass! Object class @@ -6413,10 +6424,10 @@ st> ^Class superclass! ClassDescription - + st> ^ClassDescription superclass! Behavior - + st> ^Behavior superclass! Object @@ -6482,8 +6493,8 @@  File: gst.info, Node: Performance, Prev: Why is #new there?!?, Up: Behind the scenes -5.11.4 The truth of Smalltalk performance ------------------------------------------ +The truth of Smalltalk performance +---------------------------------- Everybody says Smalltalk is slow, yet this is not completely true for at least three reasons. First, most of the time in graphical @@ -6585,8 +6596,8 @@  File: gst.info, Node: And now, Next: The syntax, Prev: Behind the scenes, Up: Tutorial -5.12 Some final words -===================== +Some final words +================ The question is always how far to go in one document. At this point, you know how to create classes. You know how to use inheritance, @@ -6641,8 +6652,8 @@  File: gst.info, Node: The syntax, Prev: And now, Up: Tutorial -5.13 A Simple Overview of Smalltalk Syntax -========================================== +A Simple Overview of Smalltalk Syntax +===================================== Smalltalk's power comes from its treatment of objects. In this document, we've mostly avoided the issue of syntax by using strictly @@ -6663,10 +6674,12 @@ means zero or more; [ ... ]+ - means one or more. + +means one or more. ... | ... [ | ... ]* - means that one of the variants must be chosen. Characters in double + +means that one of the variants must be chosen. Characters in double quotes refer to the literal characters. Most elements may be separated by white space; where this is not legal, the elements are presented without white space between them. @@ -6724,7 +6737,7 @@ precedence. myvar at: 2 + 3 put: 4 mybool ifTrue: [ ^ 2 / 4 roundup ] - + (myvar at: (2 + 3) put: (4)) (mybool ifTrue: ([ ^ (2 / (4 roundup)) ])) @@ -6828,8 +6841,8 @@  File: gst.info, Node: Future, Prev: Tutorial, Up: Top -6 Future directions for GNU Smalltalk -************************************* +Future directions for GNU Smalltalk +*********************************** Presented below is the set of tasks that I feel need to be performed to make GNU Smalltalk a more fully functional, viable system. They are @@ -6869,152 +6882,152 @@  Tag Table: -Node: Top1020 -Node: Overview5941 -Node: Using GNU Smalltalk8661 -Node: Invocation9229 -Node: Operation15281 -Ref: Operation-Footnote-118335 -Ref: Operation-Footnote-218503 -Node: Syntax18723 -Node: Test suite21552 -Node: Legal concerns22253 -Ref: Legal concerns-Footnote-124725 -Node: Features24808 -Node: Memory access26317 -Node: Namespaces28716 -Ref: Namespaces-Footnote-141404 -Ref: Namespaces-Footnote-241617 -Node: Disk file-IO41657 -Node: Object dumping44002 -Node: GC44589 -Ref: GC-Footnote-155863 -Ref: GC-Footnote-256227 -Ref: GC-Footnote-356617 -Ref: GC-Footnote-456850 -Node: Security56905 -Node: Special objects57051 -Node: Dynamic loading62214 -Node: Packages63420 -Ref: Packages-Footnote-166657 -Node: Blox66773 -Ref: Blox-Footnote-170058 -Node: Smalltalk-in-Smalltalk70216 -Ref: Smalltalk-in-Smalltalk-Footnote-173232 -Node: Database73284 -Node: Locales76854 -Ref: Locales-Footnote-181178 -Ref: Locales-Footnote-281264 -Node: SUnit81439 -Ref: SUnit-Footnote-187929 -Node: Network support88171 -Ref: Network support-Footnote-190492 -Node: XML90593 -Node: Minor packages91087 -Node: Emacs91585 -Node: Autoloading92082 -Node: Editing92748 -Node: Interactor93735 -Node: C and Smalltalk98203 -Node: External modules99014 -Ref: External modules-Footnote-1103043 -Ref: External modules-Footnote-2103089 -Node: C callout103273 -Node: C data types112470 -Ref: C data types-Footnote-1121409 -Ref: C data types-Footnote-2121475 -Node: Smalltalk types121611 -Node: Smalltalk callin131121 -Node: Other C functions138895 -Ref: Other C functions-Footnote-1144402 -Node: Object representation144625 -Node: Using Smalltalk151870 -Node: Incubator154923 -Node: Tutorial160140 -Node: Getting started161900 -Node: Starting Smalltalk162333 -Node: Saying hello162876 -Ref: Saying hello-Footnote-1163434 -Node: What happened163658 -Ref: What happened-Footnote-1165264 -Ref: What happened-Footnote-2165563 -Node: Doing math165848 -Node: Math in Smalltalk167264 -Node: Some classes168415 -Node: Arrays169206 -Ref: Arrays-Footnote-1171681 -Ref: Arrays-Footnote-2172066 -Node: Sets172169 -Node: Dictionaries175206 -Node: Smalltalk dictionary176633 -Ref: Smalltalk dictionary-Footnote-1178463 -Ref: Smalltalk dictionary-Footnote-2178645 -Node: Closing thoughts178703 -Node: The hierarchy179719 -Node: Class Object180502 -Node: Animals181421 -Node: But why184290 -Node: Creating classes185307 -Node: A new class187256 -Ref: A new class-Footnote-1188368 -Node: Documenting the class188535 -Node: Defining methods189242 -Ref: Defining methods-Footnote-1193714 -Node: Instance methods194007 -Ref: Instance methods-Footnote-1195406 -Node: A look at our object195627 -Node: Moving money around197830 -Node: Next coming198588 -Node: Creating subclasses199035 -Node: The Savings class199794 -Ref: The Savings class-Footnote-1203458 -Ref: The Savings class-Footnote-2203776 -Node: The Checking class204036 -Node: Writing checks205338 -Node: Code blocks (I)207367 -Node: Conditions207983 -Ref: Conditions-Footnote-1211127 -Node: Iteration211348 -Ref: Iteration-Footnote-1219476 -Node: Code blocks (II)220000 -Ref: Code blocks (II)-Footnote-1220855 -Node: Integer loops221254 -Node: Intervals221757 -Node: Invoking code blocks222443 -Ref: Invoking code blocks-Footnote-1226096 -Node: Debugging226218 -Node: Simple errors227156 -Node: Nested calls228455 -Node: Looking at objects230942 -Ref: Looking at objects-Footnote-1232221 -Node: More subclassing232304 -Node: The existing hierarchy233632 -Ref: The existing hierarchy-Footnote-1239305 -Node: Playing with Arrays239452 -Ref: Playing with Arrays-Footnote-1243324 -Node: New kinds of Numbers243867 -Node: Inheritance and Polymorphism248681 -Node: Streams250951 -Node: The output stream252068 -Ref: The output stream-Footnote-1253003 -Node: Your own stream253096 -Node: Files256645 -Node: Dynamic Strings257331 -Node: Behind the scenes258963 -Node: Inside Arrays259557 -Ref: Inside Arrays-Footnote-1268475 -Ref: Inside Arrays-Footnote-2268552 -Ref: Inside Arrays-Footnote-3268613 -Ref: Inside Arrays-Footnote-4268771 -Ref: Inside Arrays-Footnote-5268851 -Node: Two flavors of equality269010 -Node: Why is #new there?!?271797 -Ref: Why is #new there?!?-Footnote-1276765 -Node: Performance276835 -Ref: Performance-Footnote-1281455 -Ref: Performance-Footnote-2281536 -Node: And now281645 -Node: The syntax284260 -Node: Future292487 +Node: Top1036 +Node: Overview5869 +Node: Using GNU Smalltalk8589 +Node: Invocation9153 +Node: Operation15194 +Ref: Operation-Footnote-118240 +Ref: Operation-Footnote-218408 +Node: Syntax18628 +Node: Test suite21453 +Node: Legal concerns22146 +Ref: Legal concerns-Footnote-124610 +Node: Features24693 +Node: Memory access26198 +Node: Namespaces28586 +Ref: Namespaces-Footnote-141206 +Ref: Namespaces-Footnote-241419 +Node: Disk file-IO41459 +Node: Object dumping43794 +Node: GC44373 +Ref: GC-Footnote-155639 +Ref: GC-Footnote-256003 +Ref: GC-Footnote-356393 +Ref: GC-Footnote-456626 +Node: Security56681 +Node: Special objects56819 +Node: Dynamic loading61964 +Node: Packages63162 +Ref: Packages-Footnote-166411 +Node: Blox66527 +Ref: Blox-Footnote-169800 +Node: Smalltalk-in-Smalltalk69958 +Ref: Smalltalk-in-Smalltalk-Footnote-172962 +Node: Database73014 +Node: Locales76577 +Ref: Locales-Footnote-180883 +Ref: Locales-Footnote-280969 +Node: SUnit81144 +Ref: SUnit-Footnote-187558 +Node: Network support87800 +Ref: Network support-Footnote-190109 +Node: XML90210 +Node: Minor packages90692 +Node: Emacs91178 +Node: Autoloading91671 +Node: Editing92334 +Node: Interactor93311 +Node: C and Smalltalk97771 +Node: External modules98578 +Ref: External modules-Footnote-1102599 +Ref: External modules-Footnote-2102645 +Node: C callout102829 +Node: C data types112020 +Ref: C data types-Footnote-1120961 +Ref: C data types-Footnote-2121027 +Node: Smalltalk types121163 +Node: Smalltalk callin130640 +Node: Other C functions138437 +Ref: Other C functions-Footnote-1143917 +Node: Object representation144140 +Node: Using Smalltalk151442 +Node: Incubator154492 +Node: Tutorial159728 +Node: Getting started161484 +Node: Starting Smalltalk161909 +Node: Saying hello162445 +Ref: Saying hello-Footnote-1162991 +Node: What happened163215 +Ref: What happened-Footnote-1164809 +Ref: What happened-Footnote-2165108 +Node: Doing math165393 +Node: Math in Smalltalk166797 +Node: Some classes167936 +Node: Arrays168719 +Ref: Arrays-Footnote-1171170 +Ref: Arrays-Footnote-2171555 +Node: Sets171658 +Node: Dictionaries174679 +Node: Smalltalk dictionary176090 +Ref: Smalltalk dictionary-Footnote-1177908 +Ref: Smalltalk dictionary-Footnote-2178090 +Node: Closing thoughts178148 +Node: The hierarchy179152 +Node: Class Object179927 +Node: Animals180834 +Node: But why183691 +Node: Creating classes184696 +Node: A new class186635 +Ref: A new class-Footnote-1187735 +Node: Documenting the class187902 +Node: Defining methods188597 +Ref: Defining methods-Footnote-1193067 +Node: Instance methods193360 +Ref: Instance methods-Footnote-1194747 +Node: A look at our object194968 +Node: Moving money around197159 +Node: Next coming197905 +Node: Creating subclasses198340 +Node: The Savings class199091 +Ref: The Savings class-Footnote-1202748 +Ref: The Savings class-Footnote-2203066 +Node: The Checking class203326 +Node: Writing checks204616 +Node: Code blocks (I)206643 +Node: Conditions207251 +Ref: Conditions-Footnote-1210388 +Node: Iteration210609 +Ref: Iteration-Footnote-1218745 +Node: Code blocks (II)219269 +Ref: Code blocks (II)-Footnote-1220116 +Node: Integer loops220515 +Node: Intervals221006 +Node: Invoking code blocks221680 +Ref: Invoking code blocks-Footnote-1225321 +Node: Debugging225443 +Node: Simple errors226373 +Node: Nested calls227660 +Node: Looking at objects230140 +Ref: Looking at objects-Footnote-1231407 +Node: More subclassing231490 +Node: The existing hierarchy232810 +Ref: The existing hierarchy-Footnote-1238471 +Node: Playing with Arrays238618 +Ref: Playing with Arrays-Footnote-1242493 +Node: New kinds of Numbers243036 +Node: Inheritance and Polymorphism247868 +Node: Streams250126 +Node: The output stream251233 +Ref: The output stream-Footnote-1252154 +Node: Your own stream252247 +Node: Files255782 +Node: Dynamic Strings256454 +Node: Behind the scenes258072 +Node: Inside Arrays258656 +Ref: Inside Arrays-Footnote-1267560 +Ref: Inside Arrays-Footnote-2267637 +Ref: Inside Arrays-Footnote-3267698 +Ref: Inside Arrays-Footnote-4267856 +Ref: Inside Arrays-Footnote-5267936 +Node: Two flavors of equality268095 +Node: Why is #new there?!?270868 +Ref: Why is #new there?!?-Footnote-1275867 +Node: Performance275937 +Ref: Performance-Footnote-1280543 +Ref: Performance-Footnote-2280624 +Node: And now280733 +Node: The syntax283338 +Node: Future291561  End Tag Table diff -rNu smalltalk-2.1.9/doc/stamp-1 smalltalk-2.1.10/doc/stamp-1 --- smalltalk-2.1.9/doc/stamp-1 2004-10-02 15:32:20.000000000 +0200 +++ smalltalk-2.1.10/doc/stamp-1 2005-02-03 09:33:09.000000000 +0100 @@ -1,4 +1,4 @@ -@set UPDATED 31 March 2004 -@set UPDATED-MONTH March 2004 -@set EDITION 2.1.9 -@set VERSION 2.1.9 +@set UPDATED 2 February 2005 +@set UPDATED-MONTH February 2005 +@set EDITION 2.1.10 +@set VERSION 2.1.10 diff -rNu smalltalk-2.1.9/doc/stamp-2 smalltalk-2.1.10/doc/stamp-2 --- smalltalk-2.1.9/doc/stamp-2 2004-10-02 15:32:58.000000000 +0200 +++ smalltalk-2.1.10/doc/stamp-2 2005-02-03 09:33:09.000000000 +0100 @@ -1,4 +1,4 @@ -@set UPDATED 9 January 2004 -@set UPDATED-MONTH January 2004 -@set EDITION 2.1.9 -@set VERSION 2.1.9 +@set UPDATED 2 February 2005 +@set UPDATED-MONTH February 2005 +@set EDITION 2.1.10 +@set VERSION 2.1.10 diff -rNu smalltalk-2.1.9/doc/stamp-vti smalltalk-2.1.10/doc/stamp-vti --- smalltalk-2.1.9/doc/stamp-vti 2004-10-02 15:32:19.000000000 +0200 +++ smalltalk-2.1.10/doc/stamp-vti 2005-02-03 09:33:09.000000000 +0100 @@ -1,4 +1,4 @@ -@set UPDATED 16 September 2003 -@set UPDATED-MONTH September 2003 -@set EDITION 2.1.9 -@set VERSION 2.1.9 +@set UPDATED 25 November 2004 +@set UPDATED-MONTH November 2004 +@set EDITION 2.1.10 +@set VERSION 2.1.10 diff -rNu smalltalk-2.1.9/doc/vers-base.texi smalltalk-2.1.10/doc/vers-base.texi --- smalltalk-2.1.9/doc/vers-base.texi 2004-10-02 15:32:20.000000000 +0200 +++ smalltalk-2.1.10/doc/vers-base.texi 2005-02-02 15:11:07.000000000 +0100 @@ -1,4 +1,4 @@ -@set UPDATED 31 March 2004 -@set UPDATED-MONTH March 2004 -@set EDITION 2.1.9 -@set VERSION 2.1.9 +@set UPDATED 2 February 2005 +@set UPDATED-MONTH February 2005 +@set EDITION 2.1.10 +@set VERSION 2.1.10 diff -rNu smalltalk-2.1.9/doc/vers-gst.texi smalltalk-2.1.10/doc/vers-gst.texi --- smalltalk-2.1.9/doc/vers-gst.texi 2004-10-02 15:32:19.000000000 +0200 +++ smalltalk-2.1.10/doc/vers-gst.texi 2005-02-02 15:11:06.000000000 +0100 @@ -1,4 +1,4 @@ -@set UPDATED 16 September 2003 -@set UPDATED-MONTH September 2003 -@set EDITION 2.1.9 -@set VERSION 2.1.9 +@set UPDATED 25 November 2004 +@set UPDATED-MONTH November 2004 +@set EDITION 2.1.10 +@set VERSION 2.1.10 diff -rNu smalltalk-2.1.9/doc/vers-libs.texi smalltalk-2.1.10/doc/vers-libs.texi --- smalltalk-2.1.9/doc/vers-libs.texi 2004-10-02 15:32:58.000000000 +0200 +++ smalltalk-2.1.10/doc/vers-libs.texi 2005-02-02 15:11:08.000000000 +0100 @@ -1,4 +1,4 @@ -@set UPDATED 9 January 2004 -@set UPDATED-MONTH January 2004 -@set EDITION 2.1.9 -@set VERSION 2.1.9 +@set UPDATED 2 February 2005 +@set UPDATED-MONTH February 2005 +@set EDITION 2.1.10 +@set VERSION 2.1.10 diff -rNu smalltalk-2.1.9/examples/Makefile.in smalltalk-2.1.10/examples/Makefile.in --- smalltalk-2.1.9/examples/Makefile.in 2004-10-02 15:29:47.000000000 +0200 +++ smalltalk-2.1.10/examples/Makefile.in 2005-02-03 09:30:44.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -38,6 +38,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ subdir = examples DIST_COMMON = README $(dist_examplemodules_DATA) $(noinst_HEADERS) \ @@ -63,13 +64,21 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = -am__installdirs = "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(examplemodulesdir)" +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(pkglibdir)" \ + "$(DESTDIR)$(examplemodulesdir)" pkglibLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(pkglib_LTLIBRARIES) gdbm_la_DEPENDENCIES = @@ -84,15 +93,13 @@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/gdbm.Plo ./$(DEPDIR)/md5.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/re.Plo ./$(DEPDIR)/regex.Plo COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ +LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(gdbm_la_SOURCES) $(md5_la_SOURCES) $(regex_la_SOURCES) DIST_SOURCES = $(gdbm_la_SOURCES) $(md5_la_SOURCES) \ @@ -228,6 +235,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -314,7 +323,7 @@ test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)" @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \ $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \ else :; fi; \ @@ -322,8 +331,8 @@ uninstall-pkglibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ - p="`echo $$p | sed -e 's|^.*/||'`"; \ + @set -x; list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \ done @@ -358,24 +367,21 @@ @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: @@ -392,7 +398,7 @@ test -z "$(examplemodulesdir)" || $(mkdir_p) "$(DESTDIR)$(examplemodulesdir)" @list='$(dist_examplemodules_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(dist_examplemodulesDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(examplemodulesdir)/$$f'"; \ $(dist_examplemodulesDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(examplemodulesdir)/$$f"; \ done @@ -400,7 +406,7 @@ uninstall-dist_examplemodulesDATA: @$(NORMAL_UNINSTALL) @list='$(dist_examplemodules_DATA)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(examplemodulesdir)/$$f'"; \ rm -f "$(DESTDIR)$(examplemodulesdir)/$$f"; \ done @@ -506,7 +512,7 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" diff -rNu smalltalk-2.1.9/examples/gdbm.c smalltalk-2.1.10/examples/gdbm.c --- smalltalk-2.1.9/examples/gdbm.c 2003-05-27 19:41:20.000000000 +0200 +++ smalltalk-2.1.10/examples/gdbm.c 2005-02-02 15:03:54.000000000 +0100 @@ -7,7 +7,7 @@ /*********************************************************************** * - * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002 + * Copyright 1988,89,90,91,92,94,95,99,2000,2001,2002,2005 * Free Software Foundation, Inc. * Written by Steve Byrne. * @@ -33,8 +33,7 @@ #include "config.h" #include "gstpub.h" #include - -#include +#include /* GDBM_FILE gdbm_open(name, block_size, flags, mode, fatal_func); diff -rNu smalltalk-2.1.9/gnu-smalltalk.spec smalltalk-2.1.10/gnu-smalltalk.spec --- smalltalk-2.1.9/gnu-smalltalk.spec 2004-10-02 15:31:55.000000000 +0200 +++ smalltalk-2.1.10/gnu-smalltalk.spec 2005-02-03 09:32:07.000000000 +0100 @@ -2,7 +2,7 @@ Summary: GNU Smalltalk Name: gst -Version: 2.1.9 +Version: 2.1.10 Release: 1 Source: ftp://ftp.gnu.org/gnu/smalltalk/smalltalk-%{version}.tar.gz Copyright: GPL diff -rNu smalltalk-2.1.9/gtk/Makefile.in smalltalk-2.1.10/gtk/Makefile.in --- smalltalk-2.1.9/gtk/Makefile.in 2004-10-02 15:29:49.000000000 +0200 +++ smalltalk-2.1.10/gtk/Makefile.in 2005-02-03 09:30:44.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -40,6 +40,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ EXTRA_PROGRAMS = testplacer$(EXEEXT) sizeof$(EXEEXT) enums$(EXEEXT) @HAVE_GTK_TRUE@noinst_PROGRAMS = enums$(EXEEXT) sizeof$(EXEEXT) @@ -67,12 +68,19 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(pkglibdir)" pkglibLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(pkglib_LTLIBRARIES) @@ -96,16 +104,13 @@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/enums.Po ./$(DEPDIR)/gst-gtk.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/placer.Plo ./$(DEPDIR)/sizeof.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/testplacer.Po COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ +LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(dist_gst_gtk_la_SOURCES) $(nodist_enums_SOURCES) \ $(nodist_sizeof_SOURCES) $(testplacer_SOURCES) @@ -240,6 +245,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -337,7 +344,7 @@ test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)" @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \ $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \ else :; fi; \ @@ -345,8 +352,8 @@ uninstall-pkglibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ - p="`echo $$p | sed -e 's|^.*/||'`"; \ + @set -x; list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \ done @@ -394,24 +401,21 @@ @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: @@ -532,7 +536,7 @@ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -591,7 +595,7 @@ .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS clean-pkglibLTLIBRARIES \ - ctags distclean distclean-compile distclean-generic \ + ctags dist-hook distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-exec install-exec-am install-info \ diff -rNu smalltalk-2.1.9/i18n/Makefile.am smalltalk-2.1.10/i18n/Makefile.am --- smalltalk-2.1.9/i18n/Makefile.am 2003-05-27 19:41:18.000000000 +0200 +++ smalltalk-2.1.10/i18n/Makefile.am 2004-11-25 15:19:17.000000000 +0100 @@ -20,9 +20,9 @@ INCLUDES = -I$(top_srcdir)/libgst -I$(top_srcdir)/lib-src -stamp-classes: GetText.st Load.st Locale.st \ -Numbers.st Times.st Collation.st Sets.st \ -Expression.st +$(srcdir)/stamp-classes: \ +GetText.st Load.st Locale.st Expression.st \ +Numbers.st Times.st Collation.st Sets.st @echo Updating $@ @sed -n "s/.*'\([^']*\.st\)'.*/\1/p" $(srcdir)/Load.st>$@ diff -rNu smalltalk-2.1.9/i18n/Makefile.in smalltalk-2.1.10/i18n/Makefile.in --- smalltalk-2.1.9/i18n/Makefile.in 2004-10-02 15:29:50.000000000 +0200 +++ smalltalk-2.1.10/i18n/Makefile.in 2005-02-03 09:30:45.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -38,6 +38,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ subdir = i18n DIST_COMMON = $(dist_noinst_DATA) $(srcdir)/Makefile.am \ @@ -63,12 +64,19 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(pkglibdir)" pkglibLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(pkglib_LTLIBRARIES) @@ -81,15 +89,13 @@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/i18n.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/localcharset.Plo COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ +LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(i18n_la_SOURCES) DIST_SOURCES = $(i18n_la_SOURCES) @@ -222,6 +228,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -305,7 +313,7 @@ test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)" @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \ $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \ else :; fi; \ @@ -313,8 +321,8 @@ uninstall-pkglibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ - p="`echo $$p | sed -e 's|^.*/||'`"; \ + @set -x; list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \ done @@ -343,24 +351,21 @@ @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: @@ -475,7 +480,7 @@ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -546,9 +551,9 @@ uninstall-info-am uninstall-local uninstall-pkglibLTLIBRARIES -stamp-classes: GetText.st Load.st Locale.st \ -Numbers.st Times.st Collation.st Sets.st \ -Expression.st +$(srcdir)/stamp-classes: \ +GetText.st Load.st Locale.st Expression.st \ +Numbers.st Times.st Collation.st Sets.st @echo Updating $@ @sed -n "s/.*'\([^']*\.st\)'.*/\1/p" $(srcdir)/Load.st>$@ diff -rNu smalltalk-2.1.9/kernel/Directory.st smalltalk-2.1.10/kernel/Directory.st --- smalltalk-2.1.9/kernel/Directory.st 2003-05-27 19:41:19.000000000 +0200 +++ smalltalk-2.1.10/kernel/Directory.st 2004-11-25 15:19:18.000000000 +0100 @@ -113,6 +113,10 @@ "Answer the name of a file named `fileName' which resides in a directory named `directory'." directory isEmpty ifTrue: [ ^fileName ]. + (fileName at: 1) = self pathSeparator + ifTrue: [ ^fileName ]. + (self pathSeparator = $\ and: [ fileName size >= 2 and: [ + (fileName at: 2) = $: ]]) ifTrue: [ ^fileName ]. ^(directory at: directory size) = self pathSeparator ifTrue: [ directory, fileName ] ifFalse: [ '%1%2%3' diff -rNu smalltalk-2.1.9/kernel/Makefile.am smalltalk-2.1.10/kernel/Makefile.am --- smalltalk-2.1.9/kernel/Makefile.am 2003-05-27 19:41:18.000000000 +0200 +++ smalltalk-2.1.10/kernel/Makefile.am 2004-11-25 15:19:18.000000000 +0100 @@ -1,5 +1,5 @@ -stamp-classes: \ +$(srcdir)/stamp-classes: \ Array.st CompildMeth.st LookupTable.st RunArray.st\ ArrayColl.st CompiledBlk.st Magnitude.st Semaphore.st\ Association.st ContextPart.st MappedColl.st SeqCollect.st\ @@ -27,7 +27,6 @@ HashedColl.st FileDescr.st FloatD.st FloatE.st\ FloatQ.st URL.st VarBinding.st RecursionLock.st\ BindingDict.st AbstNamespc.st - @echo Updating $@ @echo timestamp >$@ diff -rNu smalltalk-2.1.9/kernel/Makefile.in smalltalk-2.1.10/kernel/Makefile.in --- smalltalk-2.1.9/kernel/Makefile.in 2004-10-02 15:29:50.000000000 +0200 +++ smalltalk-2.1.10/kernel/Makefile.in 2005-02-03 09:30:45.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -34,6 +34,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ subdir = kernel DIST_COMMON = $(dist_noinst_DATA) $(srcdir)/Makefile.am \ @@ -59,10 +60,11 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = @@ -194,6 +196,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -324,7 +328,7 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -386,7 +390,7 @@ uninstall-info-am -stamp-classes: \ +$(srcdir)/stamp-classes: \ Array.st CompildMeth.st LookupTable.st RunArray.st\ ArrayColl.st CompiledBlk.st Magnitude.st Semaphore.st\ Association.st ContextPart.st MappedColl.st SeqCollect.st\ @@ -414,7 +418,6 @@ HashedColl.st FileDescr.st FloatD.st FloatE.st\ FloatQ.st URL.st VarBinding.st RecursionLock.st\ BindingDict.st AbstNamespc.st - @echo Updating $@ @echo timestamp >$@ # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -rNu smalltalk-2.1.9/kernel/PkgLoader.st smalltalk-2.1.10/kernel/PkgLoader.st --- smalltalk-2.1.9/kernel/PkgLoader.st 2003-10-21 20:44:43.000000000 +0200 +++ smalltalk-2.1.10/kernel/PkgLoader.st 2005-02-02 15:36:07.000000000 +0100 @@ -8,7 +8,7 @@ "====================================================================== | -| Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +| Copyright 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc. | Written by Paolo Bonzini. | | This file is part of the GNU Smalltalk class library. @@ -178,18 +178,63 @@ callouts isNil ifTrue: [ callouts := Set new ]. ^callouts! +baseDirs: baseDirs + "Resolve the names in the package according to the base directories + in baseDirs, which depend on where the packages.xml is found: + the three possible places are 1) the system kernel directory's parent + directory, 2) the local kernel directory's parent directory, 3) the + local image directory (in order of decreasing priority). + + For a packages.xml found in the system kernel directory's parent + directory, all three directories are searched. For a packages.xml + found in the local kernel directory's parent directory, only + directories 2 and 3 are searched. For a packages.xml directory in + the local image directory, instead, only directory 3 is searched." + + | found | + files := self findBaseDirs: baseDirs for: self files. + fileIns := self findBaseDirs: baseDirs for: self fileIns. + builtFiles := self findBaseDirs: baseDirs for: self builtFiles. + + found := nil. + baseDirs + do: [ :dir || name | + name := Directory append: self directory to: dir. + (Directory exists: name) ifTrue: [ found := name ] ]. + directory := found. + + ^files notNil & fileIns notNil & builtFiles notNil & directory notNil +! + +findBaseDirs: baseDirs for: aCollection + "Resolve the names in aCollection according to the base directories + in baseDirs, and return the collection with the full filenames, or + nil if no directory was found for one or more file in aCollection." + ^aCollection collect: [ :fileName || name | + name := self findBaseDirs: baseDirs forFile: fileName. + name isNil ifTrue: [ ^nil ] ifFalse: [ name ]] +! + +findBaseDirs: baseDirs forFile: fileName + "Try appending 'self directory' and fileName to each of the directory + in baseDirs, and return the path to the first tried filename that exists. + Return nil if no directory is found that contains the file." + | name | + baseDirs do: [ :dir | + name := Directory append: self directory to: dir. + name := Directory append: fileName to: name. + (File exists: name) ifTrue: [ ^name ] ]. + ^nil +! + + directory "Answer the base directory from which to load the package." ^directory! -directory: dir forBaseDir: baseDir - "Set the base directory from which to load the package to dir. - If dir is a relative directory, store an absolute path composed - from the (already absolute) baseDir and from dir." - (dir size = 1 or: [ - ((dir at: 1) ~= $/) & ((dir at: 1) ~= $\) & (dir includes: $:) not]) - ifTrue: [ directory := baseDir, '/', dir ] - ifFalse: [ directory := dir ]! ! +directory: dir + "Set the base directory from which to load the package to dir." + directory := dir! ! !PackageLoader class methodsFor: 'accessing'! @@ -264,7 +309,16 @@ ! refreshDependencies - "Reload the `packages.xml' file in the image and kernel directories" + "Reload the `packages.xml' file in the image and kernel directories. + The three possible places are 1) the system kernel directory's parent + directory, 2) the local kernel directory's parent directory, 3) the + local image directory (in order of decreasing priority). + + For a packages.xml found in the system kernel directory's parent + directory, all three directories are searched. For a packages.xml + found in the local kernel directory's parent directory, only + directories 2 and 3 are searched. For a packages.xml directory in + the local image directory, instead, only directory 3 is searched." | state | LoadDate isNil ifFalse: [ self stillValid ifTrue: [ ^self ] @@ -274,13 +328,15 @@ Packages := LookupTable new. self processPackageFile: self systemPackageFileName - baseDirectory: Directory systemKernel, '/..'. + baseDirectories: { + Directory systemKernel, '/..'. Directory kernel, '/..'. + Directory image }. self processPackageFile: self packageFileName - baseDirectory: Directory kernel, '/..'. + baseDirectories: { Directory kernel, '/..'. Directory image }. self processPackageFile: self localPackageFileName - baseDirectory: Directory image. + baseDirectories: { Directory image }. ! ! @@ -436,7 +492,7 @@ ] ensure: [ file close ] ! -processPackageFile: fileName baseDirectory: baseDir +processPackageFile: fileName baseDirectories: baseDirs "Private - Process the XML source in the packages file, creating Package objects along the way." @@ -468,14 +524,12 @@ tag = 'filein' ifTrue: [ package fileIns add: cdata ] ifFalse: [ tag = 'prereq' ifTrue: [ package prerequisites add: cdata ] ifFalse: [ tag = 'module' ifTrue: [ package modules add: cdata ] ifFalse: [ - tag = 'directory' ifTrue: [ - package directory: cdata forBaseDir: baseDir. - (Directory name: package directory) exists - ifTrue: [ Packages at: package name put: package ] - ] ifFalse: [ + tag = 'directory' ifTrue: [ package directory: cdata ] ifFalse: [ tag = 'name' ifTrue: [ package name: cdata ] ifFalse: [ tag = 'library' ifTrue: [ package libraries add: cdata ] ifFalse: [ - tag = 'disabled-package' ifTrue: [ Packages removeKey: package name ifAbsent: [] ] ifFalse: [ + tag = 'package' ifTrue: [ + (package baseDirs: baseDirs) + ifTrue: [ Packages at: package name put: package ]] ifFalse: [ tag = 'built-file' ifTrue: [ package builtFiles add: cdata ] ifFalse: [ tag = 'callout' ifTrue: [ package callouts add: cdata ]]]]]]]]]]. cdata := nil. diff -rNu smalltalk-2.1.9/lib-src/Makefile.am smalltalk-2.1.10/lib-src/Makefile.am --- smalltalk-2.1.9/lib-src/Makefile.am 2003-12-13 10:33:23.000000000 +0100 +++ smalltalk-2.1.10/lib-src/Makefile.am 2005-02-03 09:29:07.000000000 +0100 @@ -8,7 +8,7 @@ strspell.c signalx.c ltdl.c noinst_HEADERS = \ - obstack.h poll.h getopt.h md5.h ansidecl.h strspell.h \ + obstack.h poll_.h getopt.h md5.h ansidecl.h strspell.h \ mathl.h trigl.h avltrees.h rbtrees.h trigl.c sincosl.c \ signalx.h socketx.h ltdl.h diff -rNu smalltalk-2.1.9/lib-src/Makefile.in smalltalk-2.1.10/lib-src/Makefile.in --- smalltalk-2.1.9/lib-src/Makefile.in 2004-10-02 15:29:52.000000000 +0200 +++ smalltalk-2.1.10/lib-src/Makefile.in 2005-02-03 09:30:46.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -37,15 +37,16 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ subdir = lib-src DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in acosl.c alloca.c asinl.c atanl.c ceill.c \ - cosl.c dup2.c expl.c floorl.c frexpl.c ftruncate.c \ - getdtablesize.c getpagesize.c ldexpl.c logl.c memcmp.c \ - memmove.c mkstemp.c obstack.c obstack.h poll.c putenv.c sinl.c \ - sqrtl.c strdup.c strerror.c strsignal.c strstr.c strtoul.c \ - tanl.c + $(srcdir)/Makefile.in $(srcdir)/poll_.h acosl.c alloca.c \ + asinl.c atanl.c ceill.c cosl.c dup2.c expl.c floorl.c frexpl.c \ + ftruncate.c getdtablesize.c getpagesize.c ldexpl.c logl.c \ + memcmp.c memmove.c mkstemp.c obstack.c obstack.h poll.c \ + putenv.c sinl.c sqrtl.c strdup.c strerror.c strsignal.c \ + strstr.c strtoul.c tanl.c ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/config/align.m4 \ $(top_srcdir)/config/bold.m4 $(top_srcdir)/config/codeset.m4 \ @@ -67,12 +68,13 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = +CONFIG_CLEAN_FILES = poll.h LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = library_la_DEPENDENCIES = @LTLIBOBJS@ @LTALLOCA@ $(am__DEPENDENCIES_1) @@ -82,33 +84,13 @@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/acosl.Plo $(DEPDIR)/alloca.Plo \ -@AMDEP_TRUE@ $(DEPDIR)/asinl.Plo $(DEPDIR)/atanl.Plo \ -@AMDEP_TRUE@ $(DEPDIR)/ceill.Plo $(DEPDIR)/cosl.Plo \ -@AMDEP_TRUE@ $(DEPDIR)/dup2.Plo $(DEPDIR)/expl.Plo \ -@AMDEP_TRUE@ $(DEPDIR)/floorl.Plo $(DEPDIR)/frexpl.Plo \ -@AMDEP_TRUE@ $(DEPDIR)/ftruncate.Plo \ -@AMDEP_TRUE@ $(DEPDIR)/getdtablesize.Plo \ -@AMDEP_TRUE@ $(DEPDIR)/getpagesize.Plo $(DEPDIR)/ldexpl.Plo \ -@AMDEP_TRUE@ $(DEPDIR)/logl.Plo $(DEPDIR)/memcmp.Plo \ -@AMDEP_TRUE@ $(DEPDIR)/memmove.Plo $(DEPDIR)/mkstemp.Plo \ -@AMDEP_TRUE@ $(DEPDIR)/obstack.Plo $(DEPDIR)/poll.Plo \ -@AMDEP_TRUE@ $(DEPDIR)/putenv.Plo $(DEPDIR)/sinl.Plo \ -@AMDEP_TRUE@ $(DEPDIR)/sqrtl.Plo $(DEPDIR)/strdup.Plo \ -@AMDEP_TRUE@ $(DEPDIR)/strerror.Plo $(DEPDIR)/strsignal.Plo \ -@AMDEP_TRUE@ $(DEPDIR)/strstr.Plo $(DEPDIR)/strtoul.Plo \ -@AMDEP_TRUE@ $(DEPDIR)/tanl.Plo ./$(DEPDIR)/avltrees.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/getopt.Plo ./$(DEPDIR)/getopt1.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/ltdl.Plo ./$(DEPDIR)/md5.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/qsort.Plo ./$(DEPDIR)/rbtrees.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/signalx.Plo ./$(DEPDIR)/strspell.Plo COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ +LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(library_la_SOURCES) DIST_SOURCES = $(library_la_SOURCES) @@ -241,6 +223,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -280,7 +264,7 @@ strspell.c signalx.c ltdl.c noinst_HEADERS = \ - obstack.h poll.h getopt.h md5.h ansidecl.h strspell.h \ + obstack.h poll_.h getopt.h md5.h ansidecl.h strspell.h \ mathl.h trigl.h avltrees.h rbtrees.h trigl.c sincosl.c \ signalx.h socketx.h ltdl.h @@ -378,24 +362,21 @@ @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: @@ -506,7 +487,7 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" diff -rNu smalltalk-2.1.9/lib-src/poll.h smalltalk-2.1.10/lib-src/poll.h --- smalltalk-2.1.9/lib-src/poll.h 2004-02-15 11:34:04.000000000 +0100 +++ smalltalk-2.1.10/lib-src/poll.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,69 +0,0 @@ -/******************************** -*- C -*- **************************** - * - * Header for poll(2) emulation - * - * - ***********************************************************************/ - -/*********************************************************************** - * - * Copyright 2001, 2002 Free Software Foundation, Inc. - * Written by Paolo Bonzini. - * - * This file is part of GNU Smalltalk. - * - * GNU Smalltalk 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. - * - * GNU Smalltalk 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 - * GNU Smalltalk; see the file COPYING. If not, write to the Free Software - * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - ***********************************************************************/ - -#ifndef GST_POLL_H -#define GST_POLL_H - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#ifdef HAVE_POLL - -/* use vendor poll(2) environment */ -#include - -#else - -/* fake a poll(2) environment */ -#define POLLIN 0x0001 /* any readable data available */ -#define POLLPRI 0x0002 /* OOB/Urgent readable data */ -#define POLLOUT 0x0004 /* file descriptor is writeable */ -#define POLLERR 0x0008 /* some poll error occurred */ -#define POLLHUP 0x0010 /* file descriptor was "hung up" */ -#define POLLNVAL 0x0020 /* requested events "invalid" */ -#define POLLRDNORM 0x0040 -#define POLLRDBAND 0x0080 -#define POLLWRNORM 0x0100 -#define POLLWRBAND 0x0200 -struct pollfd -{ - int fd; /* which file descriptor to poll */ - short events; /* events we are interested in */ - short revents; /* events found on return */ -}; - -#endif - -#ifndef INFTIM -#define INFTIM (-1) /* poll infinite */ -#endif - -#endif /* GST_POLL_H */ diff -rNu smalltalk-2.1.9/lib-src/poll_.h smalltalk-2.1.10/lib-src/poll_.h --- smalltalk-2.1.9/lib-src/poll_.h 1970-01-01 01:00:00.000000000 +0100 +++ smalltalk-2.1.10/lib-src/poll_.h 2004-11-25 15:19:18.000000000 +0100 @@ -0,0 +1,69 @@ +/******************************** -*- C -*- **************************** + * + * Header for poll(2) emulation + * + * + ***********************************************************************/ + +/*********************************************************************** + * + * Copyright 2001, 2002 Free Software Foundation, Inc. + * Written by Paolo Bonzini. + * + * This file is part of GNU Smalltalk. + * + * GNU Smalltalk 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. + * + * GNU Smalltalk 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 + * GNU Smalltalk; see the file COPYING. If not, write to the Free Software + * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + ***********************************************************************/ + +#ifndef GST_POLL_H +#define GST_POLL_H + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef HAVE_POLL + +/* use vendor poll(2) environment */ +#include + +#else + +/* fake a poll(2) environment */ +#define POLLIN 0x0001 /* any readable data available */ +#define POLLPRI 0x0002 /* OOB/Urgent readable data */ +#define POLLOUT 0x0004 /* file descriptor is writeable */ +#define POLLERR 0x0008 /* some poll error occurred */ +#define POLLHUP 0x0010 /* file descriptor was "hung up" */ +#define POLLNVAL 0x0020 /* requested events "invalid" */ +#define POLLRDNORM 0x0040 +#define POLLRDBAND 0x0080 +#define POLLWRNORM 0x0100 +#define POLLWRBAND 0x0200 +struct pollfd +{ + int fd; /* which file descriptor to poll */ + short events; /* events we are interested in */ + short revents; /* events found on return */ +}; + +#endif + +#ifndef INFTIM +#define INFTIM (-1) /* poll infinite */ +#endif + +#endif /* GST_POLL_H */ diff -rNu smalltalk-2.1.9/libgst/ChangeLog smalltalk-2.1.10/libgst/ChangeLog --- smalltalk-2.1.9/libgst/ChangeLog 2004-09-05 15:15:24.000000000 +0200 +++ smalltalk-2.1.10/libgst/ChangeLog 2005-02-02 14:43:36.000000000 +0100 @@ -1,3 +1,29 @@ +2005-02-02 Paolo Bonzini + + * libgst/alloc.c (NO_MALLOC_OVERRIDE): New define. + (malloc, realloc, free, calloc): Define only if NO_MALLOC_OVERRIDE + is not defined. + (morecore): Do not use the system heap (sbrk) if NO_MALLOC_OVERRIDE + is defined. + +2004-12-20 Paolo Bonzini + + * libgst/sysdep.h (O_NONBLOCK): Unused, remove. + +2004-11-25 Paolo Bonzini + + * libgst/oop.c: Catch more errors out of mprotect. + +2004-11-25 Paolo Bonzini + + * libgst/alloc.h: Use char for the type of large.data + in struct heap_block. + +2004-11-03 Paolo Bonzini + + * lib-src/poll_.h: New name of... + * lib-src/poll.h: ... this removed file. + 2004-09-05 Paolo Bonzini * libgst/lib.c: Backport parameter passing fixes from 2.2. diff -rNu smalltalk-2.1.9/libgst/Makefile.am smalltalk-2.1.10/libgst/Makefile.am --- smalltalk-2.1.9/libgst/Makefile.am 2004-06-25 20:35:46.000000000 +0200 +++ smalltalk-2.1.10/libgst/Makefile.am 2005-02-02 17:03:30.000000000 +0100 @@ -17,7 +17,7 @@ # This switch is not included in libtool 1.4, but it is included in # libtool 1.5; I have plugged it back in libtool 1.4, so that it is # upwards compatible. -LIBTOOL = @LIBTOOL@ --tag disable-shared +LIBTOOL = @LIBTOOL@ --tag=disable-shared LEX_OUTPUT_ROOT = lex.yy ## CFLAGS=-O0 -g diff -rNu smalltalk-2.1.9/libgst/Makefile.in smalltalk-2.1.10/libgst/Makefile.in --- smalltalk-2.1.9/libgst/Makefile.in 2004-10-02 15:29:53.000000000 +0200 +++ smalltalk-2.1.10/libgst/Makefile.in 2005-02-03 09:30:46.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -39,6 +39,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = genprims$(EXEEXT) subdir = libgst @@ -66,12 +67,19 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) @@ -89,26 +97,13 @@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/alloc.Plo ./$(DEPDIR)/byte.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/callin.Plo ./$(DEPDIR)/cint.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/comp.Plo ./$(DEPDIR)/dict.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/events.Plo ./$(DEPDIR)/genpr-parse.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/genpr-scan.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/gst-parse.Plo ./$(DEPDIR)/heap.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/input.Plo ./$(DEPDIR)/interp.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/lex.Plo ./$(DEPDIR)/lib.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/mpz.Plo ./$(DEPDIR)/oop.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/opt.Plo ./$(DEPDIR)/print.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/save.Plo ./$(DEPDIR)/str.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/sym.Plo ./$(DEPDIR)/sysdep.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/tree.Plo ./$(DEPDIR)/xlat.Plo COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ +LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS) LTLEXCOMPILE = $(LIBTOOL) --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS) @@ -202,7 +197,7 @@ # This switch is not included in libtool 1.4, but it is included in # libtool 1.5; I have plugged it back in libtool 1.4, so that it is # upwards compatible. -LIBTOOL = @LIBTOOL@ --tag disable-shared +LIBTOOL = @LIBTOOL@ --tag=disable-shared LIGHTNING_MAIN_FALSE = @LIGHTNING_MAIN_FALSE@ LIGHTNING_MAIN_TRUE = @LIGHTNING_MAIN_TRUE@ LN_S = @LN_S@ @@ -254,6 +249,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -384,7 +381,7 @@ test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ @@ -392,8 +389,8 @@ uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - p="`echo $$p | sed -e 's|^.*/||'`"; \ + @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done @@ -455,24 +452,21 @@ @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< .l.c: @@ -497,7 +491,7 @@ test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" @list='$(include_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ done @@ -505,7 +499,7 @@ uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ rm -f "$(DESTDIR)$(includedir)/$$f"; \ done @@ -614,15 +608,15 @@ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." - -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) - -rm -f gst-parse.c - -rm -f genpr-scan.c -rm -f genpr-parse.c + -rm -f genpr-scan.c + -rm -f gst-parse.c + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ diff -rNu smalltalk-2.1.9/libgst/alloc.c smalltalk-2.1.10/libgst/alloc.c --- smalltalk-2.1.9/libgst/alloc.c 2004-08-21 20:45:06.000000000 +0200 +++ smalltalk-2.1.10/libgst/alloc.c 2005-02-02 14:44:28.000000000 +0100 @@ -7,7 +7,7 @@ /*********************************************************************** * - * Copyright 2002, 2003 Free Software Foundation, Inc. + * Copyright 2002, 2003, 2004, 2005 Free Software Foundation, Inc. * Written by Paolo Bonzini. Ideas based on Mike Haertel's malloc. * * This file is part of GNU Smalltalk. @@ -32,6 +32,19 @@ /* Define to provide a log of memory allocations on stderr. */ /* #define LOG_MEMORY_OPERATIONS */ +/* MinGW32 and MacOS X have problems redefining malloc and friends. In this + case, we use a completely separate area than the one used by the system + malloc and we don't cause trouble. + + For MacOS X, these problems only show up when using readline: readline + will use the system malloc because of Mach-O's unique two-level namespaces + "feature", and as you can imagine we have some problems when we try to use + *our* routine to reallocate memory that readline has allocated. Even + if we did not try reallocating readline memory, we would not have a way + to free it. */ +#if defined __MSVCRT__ || defined __MACH__ +#define NO_MALLOC_OVERRIDE +#endif #define SMALL2FREE(B, N) ((heap_freeobj*)(((char *)(B)->vSmall.data) + (N)*(B)->size)) @@ -646,13 +659,25 @@ morecore (size_t size) { heap just_allocated_heap = NULL; - static heap current_extra_heap = NULL; + + /* _gst_heap_sbrk is actually the same as sbrk as long as + current_heap is NULL. But we cannot do that unless we + can replace malloc (which we cannot do on MacOS X, see above). */ + static heap current_heap = NULL; + +#ifdef NO_MALLOC_OVERRIDE + if (current_heap == NULL) + { + just_allocated_heap = _gst_heap_create (MMAP_AREA_SIZE); + if (!just_allocated_heap) + return (NULL); + current_heap = just_allocated_heap; + } +#endif for (;;) { - /* _gst_heap_sbrk is actually the same as sbrk as long as - current_extra_heap is NULL. */ - char *ptr = _gst_heap_sbrk (current_extra_heap, size); + char *ptr = _gst_heap_sbrk (current_heap, size); if (ptr != (PTR) -1) { @@ -660,8 +685,8 @@ { /* Oops, we have to align to a page. */ int missed = pagesize - ((long) ptr & (pagesize - 1)); - _gst_heap_sbrk (current_extra_heap, -size + missed); - ptr = _gst_heap_sbrk (current_extra_heap, size); + _gst_heap_sbrk (current_heap, -size + missed); + ptr = _gst_heap_sbrk (current_heap, size); } if (ptr != (PTR) -1) @@ -679,18 +704,12 @@ if (!just_allocated_heap) return (NULL); - current_extra_heap = just_allocated_heap; + current_heap = just_allocated_heap; } } -/* MinGW32 has problems redefining malloc and friends. It's not - a problem: since sbrk is not present there, we end up using a - completely separate area than the one used by the system malloc - and we don't cause trouble. */ - -#ifndef __MSVCRT__ - +#ifndef NO_MALLOC_OVERRIDE static heap_data default_heap; static int default_heap_init; @@ -765,7 +784,7 @@ #endif _gst_mem_free(&default_heap, block); } -#endif /* !__MSVCRT__ */ +#endif /* !NO_MALLOC_OVERRIDE */ char * xstrdup (const char *str) diff -rNu smalltalk-2.1.9/libgst/alloc.h smalltalk-2.1.10/libgst/alloc.h --- smalltalk-2.1.9/libgst/alloc.h 2004-08-21 14:50:03.000000000 +0200 +++ smalltalk-2.1.10/libgst/alloc.h 2004-11-25 15:19:18.000000000 +0100 @@ -54,8 +54,9 @@ struct { struct heap_block *next; /* Next block in freelist */ } free; - struct { - long double data[1]; /* Give appropriate alignment */ + union { + long double align; /* Give appropriate alignment */ + char data[1]; } large; } var; } diff -rNu smalltalk-2.1.9/libgst/oop.c smalltalk-2.1.10/libgst/oop.c --- smalltalk-2.1.9/libgst/oop.c 2004-08-21 20:39:35.000000000 +0200 +++ smalltalk-2.1.10/libgst/oop.c 2004-11-25 15:19:18.000000000 +0100 @@ -846,7 +846,7 @@ page = (char *) fault_address - ((long) fault_address & (getpagesize() - 1)); errno = 0; if (_gst_mem_protect (page, getpagesize(), PROT_READ | PROT_WRITE) == -1 && - (errno == ENOMEM || errno == EFAULT)) + (errno == ENOMEM || errno == EFAULT || errno == EACCES || errno == EINVAL)) { #if defined (MMAN_DEBUGGING) printf ("Plain old segmentation violation -- address = %p\n", page); diff -rNu smalltalk-2.1.9/libgst/sysdep.h smalltalk-2.1.10/libgst/sysdep.h --- smalltalk-2.1.9/libgst/sysdep.h 2003-05-27 19:41:15.000000000 +0200 +++ smalltalk-2.1.10/libgst/sysdep.h 2004-12-20 16:48:08.000000000 +0100 @@ -46,19 +46,6 @@ #define TIMER_REAL SIGALRM #define TIMER_PROCESS SIGVTALRM -#ifndef O_NONBLOCK -#ifdef O_NDELAY -#define O_NONBLOCK O_NDELAY -#else -#ifdef FNDELAY -#define O_NONBLOCK FNDELAY -#else -#warning Non-blocking I/O could not be enabled -#define O_NONBLOCK 0 -#endif -#endif -#endif - #ifndef HAVE_SYS_MMAN_H #define PROT_READ 0x1 /* Page can be read. */ #define PROT_WRITE 0x2 /* Page can be written. */ diff -rNu smalltalk-2.1.9/lightning/Makefile.in smalltalk-2.1.10/lightning/Makefile.in --- smalltalk-2.1.9/lightning/Makefile.in 2004-10-02 15:29:55.000000000 +0200 +++ smalltalk-2.1.10/lightning/Makefile.in 2005-02-03 09:30:47.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -34,6 +34,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ subdir = lightning DIST_COMMON = $(dist_noinst_HEADERS) $(srcdir)/Makefile.am \ @@ -59,10 +60,11 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = asm.h core.h fp.h funcs.h SOURCES = @@ -196,6 +198,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -376,7 +380,7 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: diff -rNu smalltalk-2.1.9/lightning/asm-common.h smalltalk-2.1.10/lightning/asm-common.h --- smalltalk-2.1.9/lightning/asm-common.h 2003-12-13 11:11:23.000000000 +0100 +++ smalltalk-2.1.10/lightning/asm-common.h 2004-11-25 15:19:18.000000000 +0100 @@ -88,22 +88,22 @@ typedef long _sl; typedef unsigned long _ul; -#define _UC(X) ((_uc )(X)) -#define _US(X) ((_us )(X)) -#define _UI(X) ((_ui )(X)) -#define _SL(X) ((_sl )(X)) -#define _UL(X) ((_ul )(X)) - +#define _jit_UC(X) ((_uc )(X)) +#define _jit_US(X) ((_us )(X)) +#define _jit_UI(X) ((_ui )(X)) +#define _jit_SL(X) ((_sl )(X)) +#define _jit_UL(X) ((_ul )(X)) # define _PUC(X) ((_uc *)(X)) # define _PUS(X) ((_us *)(X)) # define _PUI(X) ((_ui *)(X)) # define _PSL(X) ((_sl *)(X)) # define _PUL(X) ((_ul *)(X)) -#define _B(B) _UL(((*_jit.x.uc_pc++)= _UC((B)& 0xff))) -#define _W(W) _UL(((*_jit.x.us_pc++)= _US((W)&0xffff))) -#define _I(I) _UL(((*_jit.x.ui_pc++)= _UI((I) ))) -#define _L(L) _UL(((*_jit.x.ul_pc++)= _UL((L) ))) +#define _jit_B(B) _jit_UL(((*_jit.x.uc_pc++)= _jit_UC((B)& 0xff))) +#define _jit_W(W) _jit_UL(((*_jit.x.us_pc++)= _jit_US((W)&0xffff))) +#define _jit_I(I) _jit_UL(((*_jit.x.ui_pc++)= _jit_UI((I) ))) +#define _jit_L(L) _jit_UL(((*_jit.x.ul_pc++)= _jit_UL((L) ))) +#define _jit_I_noinc(I) _jit_UL(((*_jit.x.ui_pc)= _jit_UI((I) ))) #define _MASK(N) ((unsigned)((1<<(N)))-1) #define _siP(N,I) (!((((unsigned)(I))^(((unsigned)(I))<<1))&~_MASK(N))) @@ -111,15 +111,15 @@ #define _suiP(N,I) (_siP(N,I) | _uiP(N,I)) #ifndef _ASM_SAFETY -#define _ck_s(W,I) (_UL(I) & _MASK(W)) -#define _ck_u(W,I) (_UL(I) & _MASK(W)) -#define _ck_su(W,I) (_UL(I) & _MASK(W)) -#define _ck_d(W,I) (_UL(I) & _MASK(W)) +#define _ck_s(W,I) (_jit_UL(I) & _MASK(W)) +#define _ck_u(W,I) (_jit_UL(I) & _MASK(W)) +#define _ck_su(W,I) (_jit_UL(I) & _MASK(W)) +#define _ck_d(W,I) (_jit_UL(I) & _MASK(W)) #else -#define _ck_s(W,I) (_siP(W,I) ? (_UL(I) & _MASK(W)) : JITFAIL( "signed integer `"#I"' too large for "#W"-bit field")) -#define _ck_u(W,I) (_uiP(W,I) ? (_UL(I) & _MASK(W)) : JITFAIL("unsigned integer `"#I"' too large for "#W"-bit field")) -#define _ck_su(W,I) (_suiP(W,I) ? (_UL(I) & _MASK(W)) : JITFAIL( "integer `"#I"' too large for "#W"-bit field")) -#define _ck_d(W,I) (_siP(W,I) ? (_UL(I) & _MASK(W)) : JITFAIL( "displacement `"#I"' too large for "#W"-bit field")) +#define _ck_s(W,I) (_siP(W,I) ? (_jit_UL(I) & _MASK(W)) : JITFAIL( "signed integer `"#I"' too large for "#W"-bit field")) +#define _ck_u(W,I) (_uiP(W,I) ? (_jit_UL(I) & _MASK(W)) : JITFAIL("unsigned integer `"#I"' too large for "#W"-bit field")) +#define _ck_su(W,I) (_suiP(W,I) ? (_jit_UL(I) & _MASK(W)) : JITFAIL( "integer `"#I"' too large for "#W"-bit field")) +#define _ck_d(W,I) (_siP(W,I) ? (_jit_UL(I) & _MASK(W)) : JITFAIL( "displacement `"#I"' too large for "#W"-bit field")) #endif #define _s0P(I) ((I)==0) diff -rNu smalltalk-2.1.9/lightning/core-common.h smalltalk-2.1.10/lightning/core-common.h --- smalltalk-2.1.9/lightning/core-common.h 2003-12-13 11:11:23.000000000 +0100 +++ smalltalk-2.1.10/lightning/core-common.h 2004-11-25 15:19:18.000000000 +0100 @@ -45,14 +45,24 @@ struct jit_local_state jitl; } jit_state; +#ifdef jit_init +static jit_state _jit = jit_init (); +#else static jit_state _jit; +#endif #define JIT_NOREG (-1) +#define JIT_R0 JIT_R(0) +#define JIT_R1 JIT_R(1) +#define JIT_R2 JIT_R(2) +#define JIT_V0 JIT_V(0) +#define JIT_V1 JIT_V(1) +#define JIT_V2 JIT_V(2) #define _jitl _jit.jitl #define jit_get_ip() (*(jit_code *) &_jit.x.pc) -#define jit_set_ip(ptr) (_jit.x.pc = (jit_insn *) ptr, jit_get_ip()) +#define jit_set_ip(ptr) (_jit.x.pc = (ptr), jit_get_ip ()) #define jit_get_label() (_jit.x.pc) #define jit_forward() (_jit.x.pc) @@ -70,18 +80,18 @@ */ typedef union jit_code { char *ptr; - void (*vptr)(); - char (*cptr)(); - unsigned char (*ucptr)(); - short (*sptr)(); - unsigned short (*usptr)(); - int (*iptr)(); - unsigned int (*uiptr)(); - long (*lptr)(); - unsigned long (*ulptr)(); - void * (*pptr)(); - float (*fptr)(); - double (*dptr)(); + void (*vptr)(void); + char (*cptr)(void); + unsigned char (*ucptr)(void); + short (*sptr)(void); + unsigned short (*usptr)(void); + int (*iptr)(void); + unsigned int (*uiptr)(void); + long (*lptr)(void); + unsigned long (*ulptr)(void); + void * (*pptr)(void); + float (*fptr)(void); + double (*dptr)(void); } jit_code; #ifndef jit_fill_delay_after @@ -138,16 +148,24 @@ #define jit_subci_ul(d, rs, is) jit_subci_l((d), (rs), (is)) #define jit_subcr_ul(d, s1, s2) jit_subcr_l((d), (s1), (s2)) #define jit_subxi_ui(d, rs, is) jit_subxi_i((d), (rs), (is)) +#define jit_subxi_ul(d, rs, is) jit_subxi_l((d), (rs), (is)) #define jit_subxr_ui(d, s1, s2) jit_subxr_i((d), (s1), (s2)) +#define jit_subxr_ul(d, s1, s2) jit_subxr_i((d), (s1), (s2)) #define jit_xori_ul(d, rs, is) jit_xori_l((d), (rs), (is)) #define jit_xorr_ul(d, s1, s2) jit_xorr_l((d), (s1), (s2)) #define jit_addr_p(d, s1, s2) jit_addr_ul((d), (s1), (s2)) #define jit_addi_p(d, rs, is) jit_addi_ul((d), (rs), (long) (is)) #define jit_movr_p(d, rs) jit_movr_ul((d), (rs)) -#define jit_movi_p(d, is) jit_movi_ul((d), (long) (is)) #define jit_subr_p(d, s1, s2) jit_subr_ul((d), (s1), (s2)) #define jit_subi_p(d, rs, is) jit_subi_ul((d), (rs), (long) (is)) +#define jit_rsbi_p(d, rs, is) jit_rsbi_ul((d), (rs), (long) (is)) + +#ifndef jit_movi_p +#define jit_movi_p(d, is) (jit_movi_ul((d), (long) (is)), _jit.x.pc) +#endif + +#define jit_patch(pv) jit_patch_at ((pv), (_jit.x.pc)) #ifndef jit_addci_i #define jit_addci_i(d, rs, is) jit_addi_i((d), (rs), (is)) @@ -190,26 +208,21 @@ #define jit_subi_l(d, rs, is) jit_addi_l((d), (rs), -(is)) #define jit_subci_i(d, rs, is) jit_addci_i((d), (rs), -(is)) #define jit_subci_l(d, rs, is) jit_addci_l((d), (rs), -(is)) +#define jit_rsbr_f(d, s1, s2) jit_subr_f((d), (s2), (s1)) +#define jit_rsbr_d(d, s1, s2) jit_subr_d((d), (s2), (s1)) #define jit_rsbr_i(d, s1, s2) jit_subr_i((d), (s2), (s1)) #define jit_rsbr_l(d, s1, s2) jit_subr_l((d), (s2), (s1)) +#define jit_rsbr_p(d, s1, s2) jit_subr_p((d), (s2), (s1)) /* Unary */ #define jit_notr_c(d, rs) jit_xori_c((d), (rs), 255) #define jit_notr_uc(d, rs) jit_xori_c((d), (rs), 255) #define jit_notr_s(d, rs) jit_xori_s((d), (rs), 65535) #define jit_notr_us(d, rs) jit_xori_s((d), (rs), 65535) - -#if SIZEOF_LONG != 4 -#define jit_notr_i(d, rs) jit_xori_i((d), (rs), 0xFFFFFFFF) -#define jit_notr_ui(d, rs) jit_xori_i((d), (rs), 0xFFFFFFFF) -#define jit_notr_l(d, rs) jit_xori_l((d), (rs), 0xFFFFFFFFFFFFFFFFL) -#define jit_notr_ul(d, rs) jit_xori_l((d), (rs), 0xFFFFFFFFFFFFFFFFL) -#else -#define jit_notr_i(d, rs) jit_xori_i((d), (rs), 0xFFFFFFFFL) -#define jit_notr_ui(d, rs) jit_xori_i((d), (rs), 0xFFFFFFFFL) -#define jit_notr_l(d, rs) jit_xori_i((d), (rs), 0xFFFFFFFFL) -#define jit_notr_ul(d, rs) jit_xori_i((d), (rs), 0xFFFFFFFFL) -#endif +#define jit_notr_i(d, rs) jit_xori_i((d), (rs), ~0) +#define jit_notr_ui(d, rs) jit_xori_i((d), (rs), ~0) +#define jit_notr_l(d, rs) jit_xori_l((d), (rs), ~0L) +#define jit_notr_ul(d, rs) jit_xori_l((d), (rs), ~0L) #ifndef jit_extr_c_ui #define jit_extr_c_ui(d, rs) jit_andi_ui((d), (rs), 0xFF) @@ -224,23 +237,43 @@ #define jit_extr_s_i(d, rs) (jit_lshi_i((d), (rs), 16), jit_rshi_i((d), (d), 16)) #endif +#ifdef jit_addi_l /* sizeof(long) != sizeof(int) */ +#ifndef jit_extr_c_l +#define jit_extr_c_l(d, rs) (jit_lshi_l((d), (rs), 56), jit_rshi_l((d), (d), 56)) +#endif +#ifndef jit_extr_s_l +#define jit_extr_s_l(d, rs) (jit_lshi_l((d), (rs), 48), jit_rshi_l((d), (d), 48)) +#endif +#ifndef jit_extr_i_l +#define jit_extr_i_l(d, rs) (jit_lshi_l((d), (rs), 32), jit_rshi_l((d), (d), 32)) +#endif +#ifndef jit_extr_c_ul +#define jit_extr_c_ul(d, rs) jit_andi_l((d), (rs), 0xFF) +#endif +#ifndef jit_extr_s_ul +#define jit_extr_s_ul(d, rs) jit_andi_l((d), (rs), 0xFFFF) +#endif +#ifndef jit_extr_i_ul +#define jit_extr_i_ul(d, rs) jit_andi_l((d), (rs), 0xFFFFFFFFUL) +#endif +#endif +#define jit_extr_c_s(d, rs) jit_extr_c_i((d), (rs)) +#define jit_extr_c_us(d, rs) jit_extr_c_ui((d), (rs)) +#define jit_extr_uc_s(d, rs) jit_extr_uc_i((d), (rs)) +#define jit_extr_uc_us(d, rs) jit_extr_uc_ui((d), (rs)) #define jit_extr_uc_i(d, rs) jit_extr_c_ui((d), (rs)) #define jit_extr_uc_ui(d, rs) jit_extr_c_ui((d), (rs)) #define jit_extr_us_i(d, rs) jit_extr_s_ui((d), (rs)) #define jit_extr_us_ui(d, rs) jit_extr_s_ui((d), (rs)) - -#ifndef jit_extr_i_ul -#ifdef jit_addi_l /* sizeof(long) != sizeof(int) */ -#define jit_extr_i_ul(d, rs) jit_andi_ui((d), (rs), 0xFF) -#else /* sizeof(long) == sizeof(int) */ -#define jit_extr_i_ul(d, rs) jit_movr_i(d, rs) -#endif /* sizeof(long) == sizeof(int) */ -#endif - +#define jit_extr_uc_l(d, rs) jit_extr_c_ul((d), (rs)) +#define jit_extr_uc_ul(d, rs) jit_extr_c_ul((d), (rs)) +#define jit_extr_us_l(d, rs) jit_extr_s_ul((d), (rs)) +#define jit_extr_us_ul(d, rs) jit_extr_s_ul((d), (rs)) #define jit_extr_ui_l(d, rs) jit_extr_i_ul((d), (rs)) #define jit_extr_ui_ul(d, rs) jit_extr_i_ul((d), (rs)) + /* NTOH/HTON is not mandatory for big endian architectures */ #ifndef jit_ntoh_ui /* big endian */ #define jit_ntoh_ui(d, rs) ((d) == (rs) ? (void)0 : jit_movr_i((d), (rs))) @@ -259,7 +292,7 @@ #define jit_pushr_p(rs) jit_pushr_ul(rs) #define jit_popr_p(rs) jit_popr_ul(rs) -#define jit_prepare(nint) jitfp_prepare((nint), 0, 0) +#define jit_prepare(nint) jit_prepare_i((nint)) #define jit_pusharg_c(rs) jit_pusharg_i(rs) #define jit_pusharg_s(rs) jit_pusharg_i(rs) #define jit_pusharg_uc(rs) jit_pusharg_i(rs) @@ -396,10 +429,17 @@ #define jit_retval_c(rd) jit_retval_i((rd)) #define jit_retval_s(rd) jit_retval_i((rd)) +/* This was a bug, but we keep it. */ +#define jit_retval(rd) jit_retval_i ((rd)) + #ifndef jit_finish #define jit_finish(sub) jit_calli(sub) #endif +#ifndef jit_finishr +#define jit_finishr(reg) jit_callr(reg) +#endif + #ifndef jit_prolog #define jit_prolog(numargs) #endif @@ -420,15 +460,15 @@ #define jit_getarg_ul(reg, ofs) jit_extr_uc_ul((reg), (ofs)) #define jit_getarg_us(reg, ofs) jit_extr_us_ul((reg), (ofs)) #else -#define jit_getarg_c(reg, ofs) jit_ldxi_c((reg), JIT_FP, (ofs)); -#define jit_getarg_uc(reg, ofs) jit_ldxi_uc((reg), JIT_FP, (ofs)); -#define jit_getarg_s(reg, ofs) jit_ldxi_s((reg), JIT_FP, (ofs)); -#define jit_getarg_us(reg, ofs) jit_ldxi_us((reg), JIT_FP, (ofs)); -#define jit_getarg_i(reg, ofs) jit_ldxi_i((reg), JIT_FP, (ofs)); -#define jit_getarg_ui(reg, ofs) jit_ldxi_ui((reg), JIT_FP, (ofs)); -#define jit_getarg_l(reg, ofs) jit_ldxi_l((reg), JIT_FP, (ofs)); -#define jit_getarg_ul(reg, ofs) jit_ldxi_ul((reg), JIT_FP, (ofs)); -#define jit_getarg_p(reg, ofs) jit_ldxi_p((reg), JIT_FP, (ofs)); +#define jit_getarg_c(reg, ofs) jit_ldxi_c((reg), JIT_FP, (ofs)); +#define jit_getarg_uc(reg, ofs) jit_ldxi_uc((reg), JIT_FP, (ofs)); +#define jit_getarg_s(reg, ofs) jit_ldxi_s((reg), JIT_FP, (ofs)); +#define jit_getarg_us(reg, ofs) jit_ldxi_us((reg), JIT_FP, (ofs)); +#define jit_getarg_i(reg, ofs) jit_ldxi_i((reg), JIT_FP, (ofs)); +#define jit_getarg_ui(reg, ofs) jit_ldxi_ui((reg), JIT_FP, (ofs)); +#define jit_getarg_l(reg, ofs) jit_ldxi_l((reg), JIT_FP, (ofs)); +#define jit_getarg_ul(reg, ofs) jit_ldxi_ul((reg), JIT_FP, (ofs)); +#define jit_getarg_p(reg, ofs) jit_ldxi_p((reg), JIT_FP, (ofs)); #endif #endif @@ -482,6 +522,14 @@ #define jit_rshi_ul(d, rs, is) jit_rshi_ui((d), (rs), (is)) #define jit_rshr_ul(d, s1, s2) jit_rshr_ui((d), (s1), (s2)) +/* Sign/Zero extension */ +#define jit_extr_c_l(d, rs) jit_extr_c_i(d, rs) +#define jit_extr_c_ul(d, rs) jit_extr_c_ui(d, rs) +#define jit_extr_s_l(d, rs) jit_extr_s_i(d, rs) +#define jit_extr_s_ul(d, rs) jit_extr_s_ui(d, rs) +#define jit_extr_i_l(d, rs) jit_movr_i(d, rs) +#define jit_extr_i_ul(d, rs) jit_movr_i(d, rs) + /* Unary */ #define jit_movi_l(d, rs) jit_movi_i((d), (rs)) #define jit_movr_l(d, rs) jit_movr_i((d), (rs)) diff -rNu smalltalk-2.1.9/lightning/fp-common.h smalltalk-2.1.10/lightning/fp-common.h --- smalltalk-2.1.9/lightning/fp-common.h 2003-12-13 11:11:23.000000000 +0100 +++ smalltalk-2.1.10/lightning/fp-common.h 2004-11-25 15:19:18.000000000 +0100 @@ -29,232 +29,58 @@ * ***********************************************************************/ -struct jit_fp { - char kind; - char subkind; - union { - struct { - int displ; - char reg1; - char reg2; - } addr; - union { - double number; - long split[sizeof(double) / sizeof(long)]; - } imm; - struct { - struct jit_fp *lhs, *rhs; - } ops; - } d; -}; - -#ifdef jit_trunc - -enum { JIT_NULL, /* unused */ - - JIT_CMP, JIT_FLOOR, JIT_CEIL, JIT_ROUND, JIT_TRUNC, /* integer */ - - JIT_XI, JIT_ADD, JIT_XR, JIT_SUB, /* subkinds */ - JIT_I, JIT_MUL, JIT_R, JIT_DIV, - JIT_INT, - - JIT_ABS, JIT_SIN, JIT_COS, JIT_TAN, JIT_ATN, /* functions */ - JIT_EXP, JIT_LOG, JIT_NEG, JIT_SQRT, - - JIT_OP, JIT_FN, JIT_LD, JIT_IMM }; /* kinds */ - -/* Declarations */ - -static void _jit_emit(jit_state *, struct jit_fp *, - int, int, int, int) JIT_UNUSED; -static struct jit_fp *_jit_op(struct jit_fp *, int, - struct jit_fp *, struct jit_fp *) JIT_UNUSED; -static struct jit_fp *_jit_ld(struct jit_fp *, int, - int, int) JIT_UNUSED; -static struct jit_fp *_jit_fn(struct jit_fp *, int, - struct jit_fp *) JIT_UNUSED; -static struct jit_fp *_jit_imm(struct jit_fp *, double) JIT_UNUSED; - -/* Internal function to walk the tree */ - -void -_jit_emit(jit_state *jit, struct jit_fp *head, - int store_kind, int store1, int store2, int reg0) -{ -#define _jit (*jit) - switch (head->kind) { - case JIT_OP: - _jit_emit(jit, head->d.ops.lhs, JIT_NULL, 0, 0, reg0); - _jit_emit(jit, head->d.ops.rhs, JIT_NULL, 0, 0, reg0 + 1); - switch (head->subkind) { - case JIT_ADD: jit_add_two(reg0); break; - case JIT_SUB: jit_sub_two(reg0); break; - case JIT_MUL: jit_mul_two(reg0); break; - case JIT_DIV: jit_div_two(reg0); break; - } - break; - - case JIT_IMM: -#ifdef JIT_LONG_IS_INT - jit_fpimm(reg0, head->d.imm.split[0], head->d.imm.split[1]); -#else - jit_fpimm(reg0, head->d.imm.split[0]); -#endif - break; - - case JIT_FN: - _jit_emit(jit, head->d.ops.lhs, JIT_NULL, 0, 0, reg0); - switch (head->subkind) { - case JIT_ABS: jit_abs(reg0); break; -#ifdef JIT_TRANSCENDENTAL - case JIT_SIN: jit_sin(reg0); break; - case JIT_SQRT: jit_sqrt(reg0); break; - case JIT_COS: jit_cos(reg0); break; - case JIT_TAN: jit_tan(reg0); break; - case JIT_ATN: jit_atn(reg0); break; - case JIT_EXP: jit_exp(reg0); break; - case JIT_LOG: jit_log(reg0); break; - case JIT_NEG: jit_neg(reg0); break; -#endif - } - break; - - case JIT_LD: - switch (head->subkind) { - case JIT_INT: jit_exti_d(reg0, head->d.addr.reg1); break; - case JIT_XI: jit_ldxi_f(reg0, head->d.addr.reg1, head->d.addr.displ); break; - case JIT_XR: jit_ldxr_f(reg0, head->d.addr.reg1, head->d.addr.reg2); break; - case JIT_XI | 1: jit_ldxi_d(reg0, head->d.addr.reg1, head->d.addr.displ); break; - case JIT_XR | 1: jit_ldxr_d(reg0, head->d.addr.reg1, head->d.addr.reg2); break; -#ifndef JIT_RZERO - case JIT_I: jit_ldi_f(reg0, head->d.addr.displ); break; - case JIT_R: jit_ldr_f(reg0, head->d.addr.reg1); break; - case JIT_I | 1: jit_ldi_d(reg0, head->d.addr.displ); break; - case JIT_R | 1: jit_ldr_d(reg0, head->d.addr.reg1); break; -#endif - } - break; - } - - switch (store_kind) { - case JIT_FLOOR: jit_floor(store1, reg0); break; - case JIT_CEIL: jit_ceil(store1, reg0); break; - case JIT_TRUNC: jit_trunc(store1, reg0); break; - case JIT_ROUND: jit_round(store1, reg0); break; - case JIT_CMP: jit_cmp(store1, store2, reg0); break; - case JIT_XI: jit_stxi_f(store2, store1, reg0); break; - case JIT_XR: jit_stxr_f(store2, store1, reg0); break; - case JIT_XI | 1: jit_stxi_d(store2, store1, reg0); break; - case JIT_XR | 1: jit_stxr_d(store2, store1, reg0); break; -#ifndef JIT_RZERO - case JIT_I: jit_sti_f(store2, reg0); break; - case JIT_R: jit_str_f(store2, reg0); break; - case JIT_I | 1: jit_sti_d(store2, reg0); break; - case JIT_R | 1: jit_str_d(store2, reg0); break; - case JIT_NULL: break; -#endif - } -#undef _jit -} - -/* Internal functions to build the tree */ - -struct jit_fp * -_jit_op(struct jit_fp *where, int which, - struct jit_fp *op1, struct jit_fp *op2) -{ - where->kind = JIT_OP; - where->subkind = which; - where->d.ops.lhs = op1; - where->d.ops.rhs = op2; - return (where); -} - -struct jit_fp * -_jit_ld(struct jit_fp *where, int which, int op1, int op2) -{ - where->kind = JIT_LD; - where->subkind = which; - switch (which & ~1) { - case JIT_XI: where->d.addr.reg1 = op1; - case JIT_I: where->d.addr.displ = op2; break; - case JIT_XR: where->d.addr.reg2 = op2; - case JIT_INT: - case JIT_R: where->d.addr.reg1 = op1; break; - } - return (where); -} - -struct jit_fp * -_jit_fn(struct jit_fp *where, int which, struct jit_fp *op1) -{ - where->kind = JIT_FN; - where->subkind = which; - where->d.ops.lhs = op1; - return (where); -} - -struct jit_fp * -_jit_imm(struct jit_fp *where, double number) -{ - where->kind = JIT_IMM; - where->d.imm.number = number; - return (where); -} - -#define jitfp_begin(buf) (_jit.fp = (buf), --_jit.fp) -#define jitfp_add(op1, op2) _jit_op(++_jit.fp, JIT_ADD, (op1), (op2)) -#define jitfp_sub(op1, op2) _jit_op(++_jit.fp, JIT_SUB, (op1), (op2)) -#define jitfp_mul(op1, op2) _jit_op(++_jit.fp, JIT_MUL, (op1), (op2)) -#define jitfp_div(op1, op2) _jit_op(++_jit.fp, JIT_DIV, (op1), (op2)) -#define jitfp_imm(imm) _jit_imm(++_jit.fp, (imm)) -#define jitfp_exti_d(reg1) _jit_ld(++_jit.fp, JIT_INT, (reg1), 0) -#define jitfp_ldxi_f(reg1, imm) _jit_ld(++_jit.fp, JIT_XI, (reg1), (long)(imm)) -#define jitfp_ldxr_f(reg1, reg2) _jit_ld(++_jit.fp, JIT_XR, (reg1), (reg2)) -#define jitfp_ldxi_d(reg1, imm) _jit_ld(++_jit.fp, JIT_XI | 1, (reg1), (long)(imm)) -#define jitfp_ldxr_d(reg1, reg2) _jit_ld(++_jit.fp, JIT_XR | 1, (reg1), (reg2)) -#define jitfp_abs(op1) _jit_fn(++_jit.fp, JIT_ABS, (op1)) -#define jitfp_sqrt(op1) _jit_fn(++_jit.fp, JIT_SQRT, (op1)) -#define jitfp_neg(op1) _jit_fn(++_jit.fp, JIT_NEG, (op1)) -#define jitfp_stxi_f(imm, reg1, op1) _jit_emit(&_jit, (op1), JIT_XI, (reg1), (long)(imm), 0) -#define jitfp_stxr_f(reg1, reg2, op2) _jit_emit(&_jit, (op1), JIT_XR, (reg1), (reg2), 0) -#define jitfp_stxi_d(imm, reg1, op1) _jit_emit(&_jit, (op1), JIT_XI | 1, (reg1), (long)(imm), 0) -#define jitfp_stxr_d(reg1, reg2, op2) _jit_emit(&_jit, (op1), JIT_XR | 1, (reg1), (reg2), 0) -#define jitfp_cmp(regle, regge, op1) _jit_emit(&_jit, (op1), JIT_CMP, regle, regge, 0) -#define jitfp_floor(reg1, op1) _jit_emit(&_jit, (op1), JIT_FLOOR, reg1, 0, 0) -#define jitfp_ceil(reg1, op1) _jit_emit(&_jit, (op1), JIT_CEIL, reg1, 0, 0) -#define jitfp_trunc(reg1, op1) _jit_emit(&_jit, (op1), JIT_TRUNC, reg1, 0, 0) -#define jitfp_round(reg1, op1) _jit_emit(&_jit, (op1), JIT_ROUND, reg1, 0, 0) - - -#ifdef JIT_TRANSCENDENTAL -#define jitfp_sin(op1) _jit_fn(++_jit.fp, JIT_SIN, (op1)) -#define jitfp_cos(op1) _jit_fn(++_jit.fp, JIT_COS, (op1)) -#define jitfp_tan(op1) _jit_fn(++_jit.fp, JIT_TAN, (op1)) -#define jitfp_atn(op1) _jit_fn(++_jit.fp, JIT_ATN, (op1)) -#define jitfp_exp(op1) _jit_fn(++_jit.fp, JIT_EXP, (op1)) -#define jitfp_log(op1) _jit_fn(++_jit.fp, JIT_LOG, (op1)) -#endif +#define JIT_FPR0 JIT_FPR(0) +#define JIT_FPR1 JIT_FPR(1) +#define JIT_FPR2 JIT_FPR(2) +#define JIT_FPR3 JIT_FPR(3) +#define JIT_FPR4 JIT_FPR(4) +#define JIT_FPR5 JIT_FPR(5) #ifdef JIT_RZERO -#define jitfp_ldi_f(imm) _jit_ld(++_jit.fp, JIT_XI, JIT_RZERO, (long)(imm)) -#define jitfp_ldr_f(reg1) _jit_ld(++_jit.fp, JIT_XR, JIT_RZERO, (reg1)) -#define jitfp_ldi_d(imm) _jit_ld(++_jit.fp, JIT_XI | 1, JIT_RZERO, (long)(imm)) -#define jitfp_ldr_d(reg1) _jit_ld(++_jit.fp, JIT_XR | 1, JIT_RZERO, (reg1)) -#define jitfp_sti_f(imm, op1) _jit_emit(&_jit, (op1), JIT_XI, JIT_RZERO, (long)(imm), 0) -#define jitfp_str_f(reg1, op1) _jit_emit(&_jit, (op1), JIT_XR, JIT_RZERO, (reg1), 0) -#define jitfp_sti_d(imm, op1) _jit_emit(&_jit, (op1), JIT_XI | 1, JIT_RZERO, (long)(imm), 0) -#define jitfp_str_d(reg1, op1) _jit_emit(&_jit, (op1), JIT_XR | 1, JIT_RZERO, (reg1), 0) -#else -#define jitfp_ldi_f(imm) _jit_ld(++_jit.fp, JIT_I, 0, (long)(imm)) -#define jitfp_ldr_f(reg1) _jit_ld(++_jit.fp, JIT_R, 0, (reg1)) -#define jitfp_ldi_d(imm) _jit_ld(++_jit.fp, JIT_I | 1, 0, (long)(imm)) -#define jitfp_ldr_d(reg1) _jit_ld(++_jit.fp, JIT_R | 1, 0, (reg1)) -#define jitfp_sti_f(imm, op1) _jit_emit(&_jit, (op1), JIT_I, 0, (long)(imm), 0) -#define jitfp_str_f(reg1, op1) _jit_emit(&_jit, (op1), JIT_R, 0, (reg1), 0) -#define jitfp_sti_d(imm, op1) _jit_emit(&_jit, (op1), JIT_I | 1, 0, (long)(imm), 0) -#define jitfp_str_d(reg1, op1) _jit_emit(&_jit, (op1), JIT_R | 1, 0, (reg1), 0) +#ifndef jit_ldi_f +#define jit_ldi_f(rd, is) jit_ldxi_f((rd), JIT_RZERO, (is)) +#define jit_sti_f(id, rs) jit_stxi_f((id), JIT_RZERO, (rs)) +#define jit_ldi_d(rd, is) jit_ldxi_d((rd), JIT_RZERO, (is)) +#define jit_sti_d(id, rs) jit_stxi_d((id), JIT_RZERO, (rs)) +#endif + +#ifndef jit_ldr_f +#define jit_ldr_f(rd, rs) jit_ldxr_f((rd), JIT_RZERO, (rs)) +#define jit_str_f(rd, rs) jit_stxr_f((rd), JIT_RZERO, (rs)) +#define jit_ldr_d(rd, rs) jit_ldxr_d((rd), JIT_RZERO, (rs)) +#define jit_str_d(rd, rs) jit_stxr_d((rd), JIT_RZERO, (rs)) +#endif #endif - +#ifndef jit_addr_f +#define jit_addr_f(rd,s1,s2) jit_addr_d(rd,s1,s2) +#define jit_subr_f(rd,s1,s2) jit_subr_d(rd,s1,s2) +#define jit_mulr_f(rd,s1,s2) jit_mulr_d(rd,s1,s2) +#define jit_divr_f(rd,s1,s2) jit_divr_d(rd,s1,s2) +#define jit_movr_f(rd,rs) jit_movr_d(rd,rs) +#define jit_abs_f(rd,rs) jit_abs_d(rd,rs) +#define jit_negr_f(rd,rs) jit_negr_d(rd,rs) +#define jit_sqrt_f(rd,rs) jit_sqrt_d(rd,rs) +#define jit_extr_f_d(rs, rd) +#define jit_extr_d_f(rs, rd) +#define jit_extr_i_f(rd, rs) jit_extr_i_d(rd, rs) +#define jit_roundr_f_i(rd, rs) jit_roundr_d_i(rd, rs) +#define jit_floorr_f_i(rd, rs) jit_floorr_d_i(rd, rs) +#define jit_ceilr_f_i(rd, rs) jit_ceilr_d_i(rd, rs) +#define jit_truncr_f_i(rd, rs) jit_truncr_d_i(rd, rs) +#define jit_ltr_f(d, s1, s2) jit_ltr_d(d, s1, s2) +#define jit_ler_f(d, s1, s2) jit_ler_d(d, s1, s2) +#define jit_eqr_f(d, s1, s2) jit_eqr_d(d, s1, s2) +#define jit_ner_f(d, s1, s2) jit_ner_d(d, s1, s2) +#define jit_ger_f(d, s1, s2) jit_ger_d(d, s1, s2) +#define jit_gtr_f(d, s1, s2) jit_gtr_d(d, s1, s2) +#define jit_unltr_f(d, s1, s2) jit_unltr_d(d, s1, s2) +#define jit_unler_f(d, s1, s2) jit_unler_d(d, s1, s2) +#define jit_uneqr_f(d, s1, s2) jit_uneqr_d(d, s1, s2) +#define jit_ltgtr_f(d, s1, s2) jit_ltgtr_d(d, s1, s2) +#define jit_unger_f(d, s1, s2) jit_unger_d(d, s1, s2) +#define jit_ungtr_f(d, s1, s2) jit_ungtr_d(d, s1, s2) +#define jit_ordr_f(d, s1, s2) jit_ordr_d(d, s1, s2) +#define jit_unordr_f(d, s1, s2) jit_unordr_d(d, s1, s2) +#define jit_retval_f(rs) jit_retval_d(rs) #endif diff -rNu smalltalk-2.1.9/lightning/funcs-common.h smalltalk-2.1.10/lightning/funcs-common.h --- smalltalk-2.1.9/lightning/funcs-common.h 2003-12-13 11:11:23.000000000 +0100 +++ smalltalk-2.1.10/lightning/funcs-common.h 2004-11-25 15:19:18.000000000 +0100 @@ -33,16 +33,22 @@ #define __lightning_funcs_common_h #include +#include -static int jit_fail(char *, char*, int, char *) JIT_UNUSED; +static int jit_fail(const char *, const char*, int, const char *) JIT_UNUSED; int -jit_fail(char *msg, char *file, int line, char *function) +jit_fail(const char *msg, const char *file, int line, const char *function) { fprintf(stderr, "%s: In function `%s':\n", file, function); fprintf(stderr, "%s:%d: %s\n", file, line, msg); abort(); - return 0; } + +#ifndef jit_start_pfx +#define jit_start_pfx() ( (jit_insn*)0x4) +#define jit_end_pfx() ( (jit_insn*)0x0) +#endif + #endif /* __lightning_funcs_common_h */ diff -rNu smalltalk-2.1.9/lightning/i386/asm.h smalltalk-2.1.10/lightning/i386/asm.h --- smalltalk-2.1.9/lightning/i386/asm.h 2003-12-13 11:11:23.000000000 +0100 +++ smalltalk-2.1.10/lightning/i386/asm.h 2004-11-25 15:19:18.000000000 +0100 @@ -43,6 +43,7 @@ typedef _uc jit_insn; +#ifndef LIGHTNING_DEBUG #define _b00 0 #define _b01 1 #define _b10 2 @@ -87,6 +88,15 @@ #define _ESI 0x46 #define _EDI 0x47 +#define _ST0 0 +#define _ST1 1 +#define _ST2 2 +#define _ST3 3 +#define _ST4 4 +#define _ST5 5 +#define _ST6 6 +#define _ST7 7 + #define _rS(R) ((R)>>4) #define _rN(R) ((R)&0x7) #define _r0P(R) ((R)==0) @@ -103,11 +113,11 @@ /*** ASSEMBLER ***/ -#define _OFF4(D) (_UL(D) - _UL(_jit.x.pc)) +#define _OFF4(D) (_jit_UL(D) - _jit_UL(_jit.x.pc)) #define _CKD8(D) _ck_d(8, ((_uc) _OFF4(D)) ) -#define _D8(D) (_B(0), ((*(_PUC(_jit.x.pc)-1))= _CKD8(D))) -#define _D32(D) (_L(0), ((*(_PUL(_jit.x.pc)-1))= _OFF4(D))) +#define _D8(D) (_jit_B(0), ((*(_PUC(_jit.x.pc)-1))= _CKD8(D))) +#define _D32(D) (_jit_L(0), ((*(_PUL(_jit.x.pc)-1))= _OFF4(D))) #ifndef _ASM_SAFETY # define _M(M) (M) @@ -127,8 +137,8 @@ # define _noESP(I,OK) (((I)==_ESP) ? JITFAIL("illegal index register: %esp") : (OK)) #endif -#define _Mrm(Md,R,M) _B((_M(Md)<<6)|(_r(R)<<3)|_m(M)) -#define _SIB(Sc,I, B) _B((_s(Sc)<<6)|(_i(I)<<3)|_b(B)) +#define _Mrm(Md,R,M) _jit_B((_M(Md)<<6)|(_r(R)<<3)|_m(M)) +#define _SIB(Sc,I, B) _jit_B((_s(Sc)<<6)|(_i(I)<<3)|_b(B)) #define _SCL(S) ((((S)==1) ? _b00 : \ (((S)==2) ? _b01 : \ @@ -137,14 +147,14 @@ /* memory subformats - urgh! */ -#define _r_D( R, D ) (_Mrm(_b00,_rN(R),_b101 ) ,_L((long)(D))) +#define _r_D( R, D ) (_Mrm(_b00,_rN(R),_b101 ) ,_jit_L((long)(D))) #define _r_0B( R, B ) (_Mrm(_b00,_rN(R),_r4(B)) ) #define _r_0BIS(R, B,I,S) (_Mrm(_b00,_rN(R),_b100 ),_SIB(_SCL(S),_r4(I),_r4(B)) ) -#define _r_1B( R, D,B ) (_Mrm(_b01,_rN(R),_r4(B)) ,_B((long)(D))) -#define _r_1BIS(R, D,B,I,S) (_Mrm(_b01,_rN(R),_b100 ),_SIB(_SCL(S),_r4(I),_r4(B)),_B((long)(D))) -#define _r_4B( R, D,B ) (_Mrm(_b10,_rN(R),_r4(B)) ,_L((long)(D))) -#define _r_4IS( R, D,I,S) (_Mrm(_b00,_rN(R),_b100 ),_SIB(_SCL(S),_r4(I),_b101 ),_L((long)(D))) -#define _r_4BIS(R, D,B,I,S) (_Mrm(_b10,_rN(R),_b100 ),_SIB(_SCL(S),_r4(I),_r4(B)),_L((long)(D))) +#define _r_1B( R, D,B ) (_Mrm(_b01,_rN(R),_r4(B)) ,_jit_B((long)(D))) +#define _r_1BIS(R, D,B,I,S) (_Mrm(_b01,_rN(R),_b100 ),_SIB(_SCL(S),_r4(I),_r4(B)),_jit_B((long)(D))) +#define _r_4B( R, D,B ) (_Mrm(_b10,_rN(R),_r4(B)) ,_jit_L((long)(D))) +#define _r_4IS( R, D,I,S) (_Mrm(_b00,_rN(R),_b100 ),_SIB(_SCL(S),_r4(I),_b101 ),_jit_L((long)(D))) +#define _r_4BIS(R, D,B,I,S) (_Mrm(_b10,_rN(R),_b100 ),_SIB(_SCL(S),_r4(I),_r4(B)),_jit_L((long)(D))) #define _r_DB( R, D,B ) ((_s0P(D) && (B != _EBP) ? _r_0B (R, B ) : (_s8P(D) ? _r_1B( R,D,B ) : _r_4B( R,D,B )))) #define _r_DBIS(R, D,B,I,S) ((_s0P(D) ? _r_0BIS(R, B,I,S) : (_s8P(D) ? _r_1BIS(R,D,B,I,S) : _r_4BIS(R,D,B,I,S)))) @@ -161,38 +171,38 @@ /* _format Opcd ModR/M dN(rB,rI,Sc) imm... */ -#define _d16() ( _B(0x66 ) ) -#define _O( OP ) ( _B( OP ) ) -#define _Or( OP,R ) ( _B( (OP)|_r(R)) ) -#define _OO( OP ) ( _B((OP)>>8), _B( (OP) ) ) -#define _OOr( OP,R ) ( _B((OP)>>8), _B( (OP)|_r(R)) ) -#define _Os( OP,B ) ( _s8P(B) ? _B(((OP)|_b10)) : _B(OP) ) -#define _sW( W ) ( _s8P(W) ? _B(W):_W(W) ) -#define _sL( L ) ( _s8P(L) ? _B(L):_L(L) ) -#define _O_W( OP ,W ) ( _O ( OP ) ,_W(W) ) +#define _d16() ( _jit_B(0x66 ) ) +#define _O( OP ) ( _jit_B( OP ) ) +#define _Or( OP,R ) ( _jit_B( (OP)|_r(R)) ) +#define _OO( OP ) ( _jit_B((OP)>>8), _jit_B( (OP) ) ) +#define _OOr( OP,R ) ( _jit_B((OP)>>8), _jit_B( (OP)|_r(R)) ) +#define _Os( OP,B ) ( _s8P(B) ? _jit_B(((OP)|_b10)) : _jit_B(OP) ) +#define _sW( W ) ( _s8P(W) ? _jit_B(W):_jit_W(W) ) +#define _sL( L ) ( _s8P(L) ? _jit_B(L):_jit_L(L) ) +#define _O_W( OP ,W ) ( _O ( OP ) ,_jit_W(W) ) #define _O_D8( OP ,D ) ( _O ( OP ) ,_D8(D) ) #define _O_D32( OP ,D ) ( _O ( OP ) ,_D32(D) ) #define _OO_D32( OP ,D ) ( _OO ( OP ) ,_D32(D) ) #define _Os_sW( OP ,W ) ( _Os ( OP,W) ,_sW(W) ) #define _Os_sL( OP ,L ) ( _Os ( OP,L) ,_sL(L) ) -#define _O_W_B( OP ,W,B) ( _O ( OP ) ,_W(W),_B(B)) -#define _Or_B( OP,R ,B ) ( _Or ( OP,R) ,_B(B) ) -#define _Or_W( OP,R ,W ) ( _Or ( OP,R) ,_W(W) ) -#define _Or_L( OP,R ,L ) ( _Or ( OP,R) ,_L(L) ) +#define _O_W_B( OP ,W,B) ( _O ( OP ) ,_jit_W(W),_jit_B(B)) +#define _Or_B( OP,R ,B ) ( _Or ( OP,R) ,_jit_B(B) ) +#define _Or_W( OP,R ,W ) ( _Or ( OP,R) ,_jit_W(W) ) +#define _Or_L( OP,R ,L ) ( _Or ( OP,R) ,_jit_L(L) ) #define _O_Mrm( OP ,MO,R,M ) ( _O ( OP ),_Mrm(MO,R,M ) ) #define _OO_Mrm( OP ,MO,R,M ) ( _OO ( OP ),_Mrm(MO,R,M ) ) -#define _O_Mrm_B( OP ,MO,R,M ,B ) ( _O ( OP ),_Mrm(MO,R,M ) ,_B(B) ) -#define _O_Mrm_W( OP ,MO,R,M ,W ) ( _O ( OP ),_Mrm(MO,R,M ) ,_W(W) ) -#define _O_Mrm_L( OP ,MO,R,M ,L ) ( _O ( OP ),_Mrm(MO,R,M ) ,_L(L) ) -#define _OO_Mrm_B( OP ,MO,R,M ,B ) ( _OO ( OP ),_Mrm(MO,R,M ) ,_B(B) ) +#define _O_Mrm_B( OP ,MO,R,M ,B ) ( _O ( OP ),_Mrm(MO,R,M ) ,_jit_B(B) ) +#define _O_Mrm_W( OP ,MO,R,M ,W ) ( _O ( OP ),_Mrm(MO,R,M ) ,_jit_W(W) ) +#define _O_Mrm_L( OP ,MO,R,M ,L ) ( _O ( OP ),_Mrm(MO,R,M ) ,_jit_L(L) ) +#define _OO_Mrm_B( OP ,MO,R,M ,B ) ( _OO ( OP ),_Mrm(MO,R,M ) ,_jit_B(B) ) #define _Os_Mrm_sW(OP ,MO,R,M ,W ) ( _Os ( OP,W),_Mrm(MO,R,M ),_sW(W) ) #define _Os_Mrm_sL(OP ,MO,R,M ,L ) ( _Os ( OP,L),_Mrm(MO,R,M ),_sL(L) ) #define _O_r_X( OP ,R ,MD,MB,MI,MS ) ( _O ( OP ),_r_X( R ,MD,MB,MI,MS) ) #define _OO_r_X( OP ,R ,MD,MB,MI,MS ) ( _OO ( OP ),_r_X( R ,MD,MB,MI,MS) ) -#define _O_r_X_B( OP ,R ,MD,MB,MI,MS,B ) ( _O ( OP ),_r_X( R ,MD,MB,MI,MS) ,_B(B) ) -#define _O_r_X_W( OP ,R ,MD,MB,MI,MS,W ) ( _O ( OP ),_r_X( R ,MD,MB,MI,MS) ,_W(W) ) -#define _O_r_X_L( OP ,R ,MD,MB,MI,MS,L ) ( _O ( OP ),_r_X( R ,MD,MB,MI,MS) ,_L(L) ) -#define _OO_r_X_B( OP ,R ,MD,MB,MI,MS,B ) ( _OO ( OP ),_r_X( R ,MD,MB,MI,MS) ,_B(B) ) +#define _O_r_X_B( OP ,R ,MD,MB,MI,MS,B ) ( _O ( OP ),_r_X( R ,MD,MB,MI,MS) ,_jit_B(B) ) +#define _O_r_X_W( OP ,R ,MD,MB,MI,MS,W ) ( _O ( OP ),_r_X( R ,MD,MB,MI,MS) ,_jit_W(W) ) +#define _O_r_X_L( OP ,R ,MD,MB,MI,MS,L ) ( _O ( OP ),_r_X( R ,MD,MB,MI,MS) ,_jit_L(L) ) +#define _OO_r_X_B( OP ,R ,MD,MB,MI,MS,B ) ( _OO ( OP ),_r_X( R ,MD,MB,MI,MS) ,_jit_B(B) ) #define _Os_r_X_sW(OP ,R ,MD,MB,MI,MS,W ) ( _Os ( OP,W),_r_X( R ,MD,MB,MI,MS),_sW(W) ) #define _Os_r_X_sL(OP ,R ,MD,MB,MI,MS,L ) ( _Os ( OP,L),_r_X( R ,MD,MB,MI,MS),_sL(L) ) #define _O_X_B( OP ,MD,MB,MI,MS,B ) ( _O_r_X_B( OP ,0 ,MD,MB,MI,MS ,B) ) @@ -331,10 +341,10 @@ #define CALLsm(D,B,I,S) _O_r_X (0xff ,_b010 ,(int)(D),B,I,S ) -#define CBW() _O (0x98 ) -#define CLC() _O (0xf8 ) -#define CLTD() _O (0x99 ) -#define CMC() _O (0xf5 ) +#define CBW_() _O (0x98 ) +#define CLC_() _O (0xf8 ) +#define CLTD_() _O (0x99 ) +#define CMC_() _O (0xf5 ) #define CMPBrr(RS, RD) _O_Mrm (0x38 ,_b11,_r1(RS),_r1(RD) ) @@ -356,7 +366,7 @@ #define CMPLim(IM, MD, MB, MI, MS) _O_r_X_L (0x81 ,_b111 ,MD,MB,MI,MS ,IM ) -#define CWD() _O (0x99 ) +#define CWD_() _O (0x99 ) #define CMPXCHGBrr(RS,RD) _OO_Mrm (0x0fb0 ,_b11,_r1(RS),_r1(RD) ) @@ -390,7 +400,7 @@ #define ENTERii(W, B) _O_W_B (0xc8 ,_su16(W),_su8(B)) -#define HLT() _O (0xf4 ) +#define HLT_() _O (0xf4 ) #define IDIVBr(RS) _O_Mrm (0xf6 ,_b11,_b111 ,_r1(RS) ) @@ -434,7 +444,7 @@ #define INCLm(MD,MB,MI,MS) _O_r_X (0xff ,_b000 ,MD,MB,MI,MS ) -#define INVD() _OO (0x0f08 ) +#define INVD_() _OO (0x0f08 ) #define INVLPGm(MD, MB, MI, MS) _OO_r_X (0x0f01 ,_b111 ,MD,MB,MI,MS ) @@ -514,9 +524,9 @@ #define JMPsm(D,B,I,S) _O_r_X (0xff ,_b100 ,(int)(D),B,I,S ) -#define LAHF() _O (0x9f ) +#define LAHF_() _O (0x9f ) #define LEALmr(MD, MB, MI, MS, RD) _O_r_X (0x8d ,_r4(RD) ,MD,MB,MI,MS ) -#define LEAVE() _O (0xc9 ) +#define LEAVE_() _O (0xc9 ) #define LMSWr(RS) _OO_Mrm (0x0f01 ,_b11,_b110,_r4(RS) ) @@ -556,6 +566,20 @@ #define MOVLir(IM, R) _Or_L (0xb8,_r4(R) ,IM ) #define MOVLim(IM, MD, MB, MI, MS) _O_X_L (0xc7 ,MD,MB,MI,MS ,IM ) +#define MOVZBLrr(RS, RD) _OO_Mrm (0x0fb6 ,_b11,_r1(RD),_r1(RS) ) +#define MOVZBLmr(MD, MB, MI, MS, RD) _OO_r_X (0x0fb6 ,_r1(RD) ,MD,MB,MI,MS ) +#define MOVZBWrr(RS, RD) _wOO_Mrm (0x0fb6 ,_b11,_r2(RD),_r2(RS) ) +#define MOVZBWmr(MD, MB, MI, MS, RD) _wOO_r_X (0x0fb6 ,_r2(RD) ,MD,MB,MI,MS ) +#define MOVZWLrr(RS, RD) _OO_Mrm (0x0fb7 ,_b11,_r1(RD),_r1(RS) ) +#define MOVZWLmr(MD, MB, MI, MS, RD) _OO_r_X (0x0fb7 ,_r1(RD) ,MD,MB,MI,MS ) + +#define MOVSBLrr(RS, RD) _OO_Mrm (0x0fbe ,_b11,_r1(RD),_r1(RS) ) +#define MOVSBLmr(MD, MB, MI, MS, RD) _OO_r_X (0x0fbe ,_r1(RD) ,MD,MB,MI,MS ) +#define MOVSBWrr(RS, RD) _wOO_Mrm (0x0fbe ,_b11,_r2(RD),_r2(RS) ) +#define MOVSBWmr(MD, MB, MI, MS, RD) _wOO_r_X (0x0fbe ,_r2(RD) ,MD,MB,MI,MS ) +#define MOVSWLrr(RS, RD) _OO_Mrm (0x0fbf ,_b11,_r1(RD),_r1(RS) ) +#define MOVSWLmr(MD, MB, MI, MS, RD) _OO_r_X (0x0fbf ,_r1(RD) ,MD,MB,MI,MS ) + #define MULBr(RS) _O_Mrm (0xf6 ,_b11,_b100 ,_r1(RS) ) #define MULBm(MD,MB,MI,MS) _O_r_X (0xf6 ,_b100 ,MD,MB,MI,MS ) @@ -577,7 +601,7 @@ #define NEGLm(MD,MB,MI,MS) _O_r_X (0xf7 ,_b011 ,MD,MB,MI,MS ) -#define NOP() _O (0x90 ) +#define NOP_() _O (0x90 ) #define NOTBr(RD) _O_Mrm (0xf6 ,_b11,_b010 ,_r1(RD) ) @@ -616,11 +640,11 @@ #define POPLm(MD,MB,MI,MS) _O_r_X (0x8f ,_b000 ,MD,MB,MI,MS ) -#define POPA() _wO (0x61 ) -#define POPAD() _O (0x61 ) +#define POPA_() _wO (0x61 ) +#define POPAD_() _O (0x61 ) -#define POPF() _wO (0x9d ) -#define POPFD() _O (0x9d ) +#define POPF_() _wO (0x9d ) +#define POPFD_() _O (0x9d ) #define PUSHWr(R) _wOr (0x50,_r2(R) ) @@ -632,13 +656,13 @@ #define PUSHLi(IM) _Os_sL (0x68 ,IM ) -#define PUSHA() _wO (0x60 ) -#define PUSHAD() _O (0x60 ) +#define PUSHA_() _wO (0x60 ) +#define PUSHAD_() _O (0x60 ) -#define PUSHF() _O (0x9c ) -#define PUSHFD() _wO (0x9c ) +#define PUSHF_() _O (0x9c ) +#define PUSHFD_() _wO (0x9c ) -#define RET() _O (0xc3 ) +#define RET_() _O (0xc3 ) #define RETi(IM) _O_W (0xc2 ,_su16(IM)) @@ -698,7 +722,7 @@ JITFAIL ("source register must be CL" ) ) -#define SAHF() _O (0x9e ) +#define SAHF_() _O (0x9e ) #define SALBir SHLBir @@ -881,7 +905,7 @@ JITFAIL ("source register must be CL" ) ) -#define STC() _O (0xf9 ) +#define STC_() _O (0xf9 ) #define SUBBrr(RS, RD) _O_Mrm (0x28 ,_b11,_r1(RS),_r1(RD) ) @@ -957,16 +981,70 @@ #define XORLir(IM, RD) _Os_Mrm_sL (0x81 ,_b11,_b110 ,_r4(RD) ,IM ) #define XORLim(IM, MD, MB, MI, MS) _Os_r_X_sL (0x81 ,_b110 ,MD,MB,MI,MS ,IM ) +/* x87 instructions -- yay, we found a use for octal constants :-) */ + +#define ESCmi(D,B,I,S,OP) _O_r_X(0xd8|(OP >> 3), (OP & 7), D,B,I,S) +#define ESCri(RD,OP) _O_Mrm(0xd8|(OP >> 3), _b11, (OP & 7), RD) +#define ESCrri(RS,RD,OP) ((RS) == _ST0 ? ESCri(RD,(OP|040)) \ + : (RD) == _ST0 ? ESCri(RS,OP) \ + : JITFAIL ("coprocessor instruction without st0")) + +#define FLDSm(D,B,I,S) ESCmi(D,B,I,S,010) /* fld m32real */ +#define FILDLm(D,B,I,S) ESCmi(D,B,I,S,030) /* fild m32int */ +#define FLDLm(D,B,I,S) ESCmi(D,B,I,S,050) /* fld m64real */ +#define FILDWm(D,B,I,S) ESCmi(D,B,I,S,070) /* fild m16int */ +#define FSTSm(D,B,I,S) ESCmi(D,B,I,S,012) /* fst m32real */ +#define FISTLm(D,B,I,S) ESCmi(D,B,I,S,032) /* fist m32int */ +#define FSTLm(D,B,I,S) ESCmi(D,B,I,S,052) /* fst m64real */ +#define FISTWm(D,B,I,S) ESCmi(D,B,I,S,072) /* fist m16int */ +#define FSTPSm(D,B,I,S) ESCmi(D,B,I,S,013) /* fstp m32real */ +#define FISTPLm(D,B,I,S) ESCmi(D,B,I,S,033) /* fistp m32int */ +#define FSTPLm(D,B,I,S) ESCmi(D,B,I,S,053) /* fstp m64real */ +#define FISTPWm(D,B,I,S) ESCmi(D,B,I,S,073) /* fistp m16int */ +#define FLDTm(D,B,I,S) ESCmi(D,B,I,S,035) /* fld m80real */ +#define FILDQm(D,B,I,S) ESCmi(D,B,I,S,075) /* fild m64int */ +#define FSTPTm(D,B,I,S) ESCmi(D,B,I,S,037) /* fstp m80real */ +#define FISTPQm(D,B,I,S) ESCmi(D,B,I,S,077) /* fistp m64int */ + +#define FADDrr(RS,RD) ESCrri(RS,RD,000) +#define FMULrr(RS,RD) ESCrri(RS,RD,001) +#define FSUBrr(RS,RD) ESCrri(RS,RD,004) +#define FSUBRrr(RS,RD) ESCrri(RS,RD,005) +#define FDIVrr(RS,RD) ESCrri(RS,RD,006) +#define FDIVRrr(RS,RD) ESCrri(RS,RD,007) + +#define FLDr(RD) ESCri(RD,010) +#define FXCHr(RD) ESCri(RD,011) +#define FFREEr(RD) ESCri(RD,050) +#define FSTr(RD) ESCri(RD,052) +#define FSTPr(RD) ESCri(RD,053) +#define FCOMr(RD) ESCri(RD,002) +#define FCOMPr(RD) ESCri(RD,003) +#define FCOMIr(RD) ESCri(RD,036) +#define FCOMIPr(RD) ESCri(RD,076) +#define FUCOMr(RD) ESCri(RD,054) +#define FUCOMPr(RD) ESCri(RD,055) +#define FUCOMIr(RD) ESCri(RD,035) +#define FUCOMIPr(RD) ESCri(RD,075) +#define FADDPr(RD) ESCri(RD,060) +#define FMULPr(RD) ESCri(RD,061) +#define FSUBPr(RD) ESCri(RD,064) +#define FSUBRPr(RD) ESCri(RD,065) +#define FDIVPr(RD) ESCri(RD,066) +#define FDIVRPr(RD) ESCri(RD,067) + +#define FNSTSWr(RD) ((RD == _AX || RD == _EAX) ? _OO (0xdfe0) \ + : JITFAIL ("AX or EAX expected")) /* N byte NOPs */ -#define _NOPi(N) ((( (N) >= 8) ? (_B(0x8d),_B(0xb4),_B(0x26),_L(0x00),_B(0x90)) : (void) 0), \ - (( ((N)&7) == 7) ? (_B(0x8d),_B(0xb4),_B(0x26),_L(0x00)) : \ - ( ((N)&7) == 6) ? (_B(0x8d),_B(0xb6),_L(0x00)) : \ - ( ((N)&7) == 5) ? (_B(0x90),_B(0x8d),_B(0x74),_B(0x26),_B(0x00)) : \ -/* leal 0(,%esi), %esi */ ( ((N)&7) == 4) ? (_B(0x8d),_B(0x74),_B(0x26),_B(0x00)) : \ -/* leal (,%esi), %esi */ ( ((N)&7) == 3) ? (_B(0x8d),_B(0x76),_B(0x00)) : \ -/* movl %esi, %esi */ ( ((N)&7) == 2) ? (_B(0x89),_B(0xf6)) : \ - ( ((N)&7) == 1) ? (_B(0x90)) : \ +#define NOPi(N) ((( (N) >= 8) ? (_jit_B(0x8d),_jit_B(0xb4),_jit_B(0x26),_jit_L(0x00),_jit_B(0x90)) : (void) 0), \ + (( ((N)&7) == 7) ? (_jit_B(0x8d),_jit_B(0xb4),_jit_B(0x26),_jit_L(0x00)) : \ + ( ((N)&7) == 6) ? (_jit_B(0x8d),_jit_B(0xb6),_jit_L(0x00)) : \ + ( ((N)&7) == 5) ? (_jit_B(0x90),_jit_B(0x8d),_jit_B(0x74),_jit_B(0x26),_jit_B(0x00)) : \ +/* leal 0(,%esi), %esi */ ( ((N)&7) == 4) ? (_jit_B(0x8d),_jit_B(0x74),_jit_B(0x26),_jit_B(0x00)) : \ +/* leal (,%esi), %esi */ ( ((N)&7) == 3) ? (_jit_B(0x8d),_jit_B(0x76),_jit_B(0x00)) : \ +/* movl %esi, %esi */ ( ((N)&7) == 2) ? (_jit_B(0x89),_jit_B(0xf6)) : \ + ( ((N)&7) == 1) ? (_jit_B(0x90)) : \ ( ((N)&7) == 0) ? 0 : \ JITFAIL(".align argument too large"))) @@ -979,4 +1057,6 @@ /* [2] "Intel Architecture Software Developer's Manual Volume 2: Instruction Set Reference", */ /* Intel Corporation 1997. */ +#endif #endif /* __lightning_asm_h */ + diff -rNu smalltalk-2.1.9/lightning/i386/core.h smalltalk-2.1.10/lightning/i386/core.h --- smalltalk-2.1.9/lightning/i386/core.h 2003-12-13 11:11:23.000000000 +0100 +++ smalltalk-2.1.10/lightning/i386/core.h 2004-11-25 15:19:18.000000000 +0100 @@ -34,16 +34,15 @@ #ifndef __lightning_core_h #define __lightning_core_h -#define JIT_R0 _EAX -#define JIT_R1 _ECX -#define JIT_R2 _EDX -#define JIT_V0 _EBX -#define JIT_V1 _ESI -#define JIT_V2 _EDI #define JIT_FP _EBP #define JIT_SP _ESP #define JIT_RET _EAX +#define JIT_R_NUM 3 +#define JIT_V_NUM 3 +#define JIT_R(i) (_EAX + (i)) +#define JIT_V(i) ((i) == 0 ? _EBX : _ESI + (i) - 1) + struct jit_local_state { int framesize; int argssize; @@ -74,16 +73,22 @@ (rs == forced) ? op : (PUSHLr(forced), MOVLrr(rs, forced), op, POPLr(forced))) /* For LT, LE, ... */ +#define jit_replace8(d, op) \ + (jit_check8(d) \ + ? (MOVLir(0, d), op(d)) \ + : (PUSHLr(_EAX), MOVLir(0, _EAX), op(_EAX), MOVLrr(_EAX, (d)), POPLr(_EAX))) + #define jit_bool_r(d, s1, s2, op) \ - (CMPLrr(s2, s1), op, ANDLir(1, d)) + (CMPLrr(s2, s1), jit_replace8(d, op)) #define jit_bool_i(d, rs, is, op) \ - (CMPLir(is, rs), op, ANDLir(1, d)) + (CMPLir(is, rs), jit_replace8(d, op)) /* When CMP with 0 can be replaced with TEST */ -#define jit_bool_i0(d, rs, is, op, op0) \ - ( ((is) != 0 ? (CMPLir(is, rs), op) : (TESTLrr(rs, rs), op0)), \ - ANDLir(1, d)) +#define jit_bool_i0(d, rs, is, op, op0) \ + ((is) != 0 \ + ? (CMPLir(is, rs), jit_replace8(d, op)) \ + : (TESTLrr(rs, rs), jit_replace8(d, op0))) /* For BLT, BLE, ... */ #define jit_bra_r(s1, s2, op) (CMPLrr(s2, s1), op, _jit.x.pc) @@ -95,19 +100,14 @@ /* Used to implement ldc, stc, ... */ #define jit_check8(rs) ( (rs) <= _EBX ) -#define jit_reg8(rs) ( ((rs) & _BH) | _AL ) +#define jit_reg8(rs) ( ((rs) == _SI || (rs) == _DI) ? _AL : ((rs) & _BH) | _AL ) #define jit_reg16(rs) ( ((rs) & _BH) | _AX ) -#define jit_movbmr(sd, sb, si, ss, d, ext) \ - ((jit_check8(d) \ - ? MOVBmr(sd, sb, si, ss, jit_reg8(d)) \ - : MOVWmr(sd, sb, si, ss, jit_reg16(d))), ext) - /* In jit_replace below, _EBX is dummy */ -#define jit_movbrm(rs, dd, db, di, ds) \ - (jit_check8(rs) \ - ? MOVBrm(jit_reg8(rs), dd, db, di, ds) \ - : jit_replace(_EBX, rs, _EAX, MOVBrm(_AL, dd, db, di, ds))) +#define jit_movbrm(rs, dd, db, di, ds) \ + (jit_check8(rs) \ + ? MOVBrm(jit_reg8(rs), dd, db, di, ds) \ + : jit_replace(_EBX, rs, _EAX, MOVBrm(_AL, dd, db, di, ds))) /* Reduce arguments of XOR/OR/TEST */ #define jit_reduce_(op) op @@ -213,25 +213,11 @@ #define jit_muli_i(d, rs, is) jit_op_ ((d), (rs), IMULLir((is), (d)) ) #define jit_mulr_i(d, s1, s2) jit_opr_((d), (s1), (s2), IMULLrr((s1), (d)), IMULLrr((s2), (d)) ) -#define jit_muli_ui(d, rs, is) jit_op_ ((d), (rs), IMULLir((is), (d)) ) -#define jit_mulr_ui(d, s1, s2) jit_opr_((d), (s1), (s2), IMULLrr((s1), (d)), IMULLrr((s2), (d)) ) /* As far as low bits are concerned, signed and unsigned multiplies are - * exactly the same. */ -#ifdef not_needed -#undef jit_muli_i -#undef jit_muli_ui - -#define jit_muli_ui(d, rs, is) \ - ((d) == _EDX ? ( PUSHLr(_EAX), MOVLir((is), _EAX), MULLr(rs), MOVLrr(_EAX, _EDX), POPLr(_EAX) ) : \ - ((d) == _EAX ? (PUSHLr(_EDX), MOVLir((is), _EAX), MULLr(rs), POPLr(_EDX) ) : \ - (PUSHLr(_EDX), PUSHLr(_EAX), MOVLir((is), _EAX), MULLr(rs), MOVLrr(_EAX, (d)), POPLr(_EAX), POPLr(_EDX) ))) - -#define jit_mulr_ui(d, s1, s2) \ - ((d) == _EDX ? ( PUSHLr(_EAX), jit_mulr_ui_((s1), (s2)), MOVLrr(_EAX, _EDX), POPLr(_EAX) ) : \ - ((d) == _EAX ? (PUSHLr(_EDX), jit_mulr_ui_((s1), (s2)), POPLr(_EDX) ) : \ - (PUSHLr(_EDX), PUSHLr(_EAX), jit_mulr_ui_((s1), (s2)), MOVLrr(_EAX, (d)), POPLr(_EAX), POPLr(_EDX) ))) -#endif /* not_needed */ + exactly the same. */ +#define jit_muli_ui(d, rs, is) jit_op_ ((d), (rs), IMULLir((is), (d)) ) +#define jit_mulr_ui(d, s1, s2) jit_opr_((d), (s1), (s2), IMULLrr((s1), (d)), IMULLrr((s2), (d)) ) #define jit_hmuli_i(d, rs, is) \ ((d) == _EDX ? ( PUSHLr(_EAX), jit_muli_i_((is), (rs)), POPLr(_EAX) ) : \ @@ -278,10 +264,13 @@ /* The += allows for stack pollution */ -#define jitfp_prepare(ni,nf,nd) ((void) (_jitl.argssize += (ni) + (nf) + 2*(nd))) +#define jit_prepare_i(ni) (_jitl.argssize += (ni)) +#define jit_prepare_f(nf) (_jitl.argssize += (nf)) +#define jit_prepare_d(nd) (_jitl.argssize += 2 * (nd)) #define jit_pusharg_i(rs) PUSHLr(rs) #define jit_finish(sub) (jit_calli((sub)), ADDLir(4 * _jitl.argssize, JIT_SP), _jitl.argssize = 0) -#define jit_retval(rd) ((void) ( (rd) == _EAX ? 0 : MOVLrr(_EAX, (rd)) )) +#define jit_finishr(reg) (jit_callr((reg)), ADDLir(4 * _jitl.argssize, JIT_SP), _jitl.argssize = 0) +#define jit_retval_i(rd) jit_movr_i ((rd), _EAX) #define jit_arg_c() ((_jitl.framesize += sizeof(int)) - sizeof(int)) #define jit_arg_uc() ((_jitl.framesize += sizeof(int)) - sizeof(int)) @@ -300,34 +289,36 @@ #define jit_negr_i(d, rs) jit_opi_((d), (rs), NEGLr(d), (XORLrr((d), (d)), SUBLrr((rs), (d))) ) #define jit_negr_l(d, rs) jit_opi_((d), (rs), NEGLr(d), (XORLrr((d), (d)), SUBLrr((rs), (d))) ) -#define jit_movr_i(d, rs) MOVLrr((rs), (d)) +#define jit_movr_i(d, rs) ((rs) == (d) ? 0 : MOVLrr((rs), (d))) #define jit_movi_i(d, is) ((is) ? MOVLir((is), (d)) : XORLrr ((d), (d)) ) +#define jit_movi_p(d, is) (MOVLir((is), (d)), _jit.x.pc) +#define jit_patch_movi(pa,pv) (*_PSL((pa) - 4) = _jit_SL((pv))) #define jit_ntoh_ui(d, rs) jit_op_((d), (rs), BSWAPLr(d)) #define jit_ntoh_us(d, rs) jit_op_((d), (rs), RORWir(8, d)) /* Boolean */ -#define jit_ltr_i(d, s1, s2) jit_bool_r((d), (s1), (s2), SETLr(jit_reg8(d)) ) -#define jit_ler_i(d, s1, s2) jit_bool_r((d), (s1), (s2), SETLEr(jit_reg8(d)) ) -#define jit_gtr_i(d, s1, s2) jit_bool_r((d), (s1), (s2), SETGr(jit_reg8(d)) ) -#define jit_ger_i(d, s1, s2) jit_bool_r((d), (s1), (s2), SETGEr(jit_reg8(d)) ) -#define jit_eqr_i(d, s1, s2) jit_bool_r((d), (s1), (s2), SETEr(jit_reg8(d)) ) -#define jit_ner_i(d, s1, s2) jit_bool_r((d), (s1), (s2), SETNEr(jit_reg8(d)) ) -#define jit_ltr_ui(d, s1, s2) jit_bool_r((d), (s1), (s2), SETBr(jit_reg8(d)) ) -#define jit_ler_ui(d, s1, s2) jit_bool_r((d), (s1), (s2), SETBEr(jit_reg8(d)) ) -#define jit_gtr_ui(d, s1, s2) jit_bool_r((d), (s1), (s2), SETAr(jit_reg8(d)) ) -#define jit_ger_ui(d, s1, s2) jit_bool_r((d), (s1), (s2), SETAEr(jit_reg8(d)) ) - -#define jit_lti_i(d, rs, is) jit_bool_i0((d), (rs), (is), SETLr(jit_reg8(d)), SETSr(jit_reg8(d)) ) -#define jit_lei_i(d, rs, is) jit_bool_i ((d), (rs), (is), SETLEr(jit_reg8(d)) ) -#define jit_gti_i(d, rs, is) jit_bool_i ((d), (rs), (is), SETGr(jit_reg8(d)) ) -#define jit_gei_i(d, rs, is) jit_bool_i0((d), (rs), (is), SETGEr(jit_reg8(d)), SETNSr(jit_reg8(d)) ) -#define jit_eqi_i(d, rs, is) jit_bool_i0((d), (rs), (is), SETEr(jit_reg8(d)), SETEr(jit_reg8(d)) ) -#define jit_nei_i(d, rs, is) jit_bool_i0((d), (rs), (is), SETNEr(jit_reg8(d)), SETNEr(jit_reg8(d)) ) -#define jit_lti_ui(d, rs, is) jit_bool_i0((d), (rs), (is), SETBr(jit_reg8(d)), XORLrr((d), (d)) ) -#define jit_lei_ui(d, rs, is) jit_bool_i0((d), (rs), (is), SETBEr(jit_reg8(d)), SETEr(jit_reg8(d)) ) -#define jit_gti_ui(d, rs, is) jit_bool_i0((d), (rs), (is), SETAr(jit_reg8(d)), SETNEr(jit_reg8(d)) ) -#define jit_gei_ui(d, rs, is) jit_bool_i0((d), (rs), (is), SETAEr(jit_reg8(d)), INCLr((d)) ) +#define jit_ltr_i(d, s1, s2) jit_bool_r((d), (s1), (s2), SETLr ) +#define jit_ler_i(d, s1, s2) jit_bool_r((d), (s1), (s2), SETLEr ) +#define jit_gtr_i(d, s1, s2) jit_bool_r((d), (s1), (s2), SETGr ) +#define jit_ger_i(d, s1, s2) jit_bool_r((d), (s1), (s2), SETGEr ) +#define jit_eqr_i(d, s1, s2) jit_bool_r((d), (s1), (s2), SETEr ) +#define jit_ner_i(d, s1, s2) jit_bool_r((d), (s1), (s2), SETNEr ) +#define jit_ltr_ui(d, s1, s2) jit_bool_r((d), (s1), (s2), SETBr ) +#define jit_ler_ui(d, s1, s2) jit_bool_r((d), (s1), (s2), SETBEr ) +#define jit_gtr_ui(d, s1, s2) jit_bool_r((d), (s1), (s2), SETAr ) +#define jit_ger_ui(d, s1, s2) jit_bool_r((d), (s1), (s2), SETAEr ) + +#define jit_lti_i(d, rs, is) jit_bool_i0((d), (rs), (is), SETLr, SETSr ) +#define jit_lei_i(d, rs, is) jit_bool_i ((d), (rs), (is), SETLEr ) +#define jit_gti_i(d, rs, is) jit_bool_i ((d), (rs), (is), SETGr ) +#define jit_gei_i(d, rs, is) jit_bool_i0((d), (rs), (is), SETGEr, SETNSr ) +#define jit_eqi_i(d, rs, is) jit_bool_i0((d), (rs), (is), SETEr, SETEr ) +#define jit_nei_i(d, rs, is) jit_bool_i0((d), (rs), (is), SETNEr, SETNEr ) +#define jit_lti_ui(d, rs, is) jit_bool_i ((d), (rs), (is), SETBr ) +#define jit_lei_ui(d, rs, is) jit_bool_i0((d), (rs), (is), SETBEr, SETEr ) +#define jit_gti_ui(d, rs, is) jit_bool_i0((d), (rs), (is), SETAr, SETNEr ) +#define jit_gei_ui(d, rs, is) jit_bool_i0((d), (rs), (is), SETAEr, INCLr ) /* Jump */ #define jit_bltr_i(label, s1, s2) jit_bra_r((s1), (s2), JLm(label, 0,0,0) ) @@ -353,10 +344,10 @@ #define jit_bgei_i(label, rs, is) jit_bra_i0((rs), (is), JGEm(label,0,0,0), JNSm(label,0,0,0) ) #define jit_beqi_i(label, rs, is) jit_bra_i0((rs), (is), JEm(label, 0,0,0), JEm(label, 0,0,0) ) #define jit_bnei_i(label, rs, is) jit_bra_i0((rs), (is), JNEm(label,0,0,0), JNEm(label,0,0,0) ) -#define jit_blti_ui(label, rs, is) jit_bra_i ((rs), (is), JLm(label, 0,0,0) ) -#define jit_blei_ui(label, rs, is) jit_bra_i0((rs), (is), JLEm(label,0,0,0), JEm(label, 0,0,0) ) -#define jit_bgti_ui(label, rs, is) jit_bra_i0((rs), (is), JGm(label, 0,0,0), JNEm(label,0,0,0) ) -#define jit_bgei_ui(label, rs, is) jit_bra_i ((rs), (is), JGEm(label,0,0,0) ) +#define jit_blti_ui(label, rs, is) jit_bra_i ((rs), (is), JBm(label, 0,0,0) ) +#define jit_blei_ui(label, rs, is) jit_bra_i0((rs), (is), JBEm(label,0,0,0), JEm(label, 0,0,0) ) +#define jit_bgti_ui(label, rs, is) jit_bra_i0((rs), (is), JAm(label, 0,0,0), JNEm(label,0,0,0) ) +#define jit_bgei_ui(label, rs, is) jit_bra_i ((rs), (is), JAEm(label,0,0,0) ) #define jit_boaddi_i(label, rs, is) (ADDLir((is), (rs)), JOm(label,0,0,0), _jit.x.pc) #define jit_bosubi_i(label, rs, is) (SUBLir((is), (rs)), JOm(label,0,0,0), _jit.x.pc) #define jit_boaddi_ui(label, rs, is) (ADDLir((is), (rs)), JCm(label,0,0,0), _jit.x.pc) @@ -367,35 +358,36 @@ #define jit_jmpi(label) (JMPm( ((unsigned long) (label)), 0, 0, 0), _jit.x.pc) #define jit_calli(label) (CALLm( ((unsigned long) (label)), 0, 0, 0), _jit.x.pc) +#define jit_callr(reg) (CALLsr(reg)) #define jit_jmpr(reg) JMPsr(reg) -#define jit_patch(jump_pc) (*_PSL((jump_pc) - 4) = _SL(_jit.x.pc - (jump_pc))) -#define jit_ret() (POPLr(_EDI), POPLr(_ESI), POPLr(_EBX), POPLr(_EBP), RET()) +#define jit_patch_at(jump_pc,v) (*_PSL((jump_pc) - 4) = _jit_SL((v) - (jump_pc))) +#define jit_ret() (POPLr(_EDI), POPLr(_ESI), POPLr(_EBX), POPLr(_EBP), RET_()) /* Memory */ -#define jit_ldi_c(d, is) jit_movbmr((is), 0, 0, 0, (d), jit_extr_c_i((d), (d))) -#define jit_ldr_c(d, rs) jit_movbmr(0, (rs), 0, 0, (d), jit_extr_c_i((d), (d))) -#define jit_ldxr_c(d, s1, s2) jit_movbmr(0, (s1), (s2), 1, (d), jit_extr_c_i((d), (d))) -#define jit_ldxi_c(d, rs, is) jit_movbmr((is), (rs), 0, 0, (d), jit_extr_c_i((d), (d))) - -#define jit_ldi_uc(d, is) jit_movbmr((is), 0, 0, 0, (d), jit_extr_uc_ui((d), (d))) -#define jit_ldr_uc(d, rs) jit_movbmr(0, (rs), 0, 0, (d), jit_extr_uc_ui((d), (d))) -#define jit_ldxr_uc(d, s1, s2) jit_movbmr(0, (s1), (s2), 1, (d), jit_extr_uc_ui((d), (d))) -#define jit_ldxi_uc(d, rs, is) jit_movbmr((is), (rs), 0, 0, (d), jit_extr_uc_ui((d), (d))) - -#define jit_sti_c(id, rs) jit_movbrm((rs), (id), 0, 0, 0) -#define jit_str_c(rd, rs) jit_movbrm((rs), 0, (rd), 0, 0) -#define jit_stxr_c(d1, d2, rs) jit_movbrm((rs), 0, (d1), (d2), 1) -#define jit_stxi_c(id, rd, rs) jit_movbrm((rs), (id), (rd), 0, 0) - -#define jit_ldi_s(d, is) (MOVWmr((is), 0, 0, 0, jit_reg16(d)), jit_extr_s_i((d), (d))) -#define jit_ldr_s(d, rs) (MOVWmr(0, (rs), 0, 0, jit_reg16(d)), jit_extr_s_i((d), (d))) -#define jit_ldxr_s(d, s1, s2) (MOVWmr(0, (s1), (s2), 1, jit_reg16(d)), jit_extr_s_i((d), (d))) -#define jit_ldxi_s(d, rs, is) (MOVWmr((is), (rs), 0, 0, jit_reg16(d)), jit_extr_s_i((d), (d))) - -#define jit_ldi_us(d, is) (XORLrr((d), (d)), MOVWmr((is), 0, 0, 0, jit_reg16(d))) -#define jit_ldr_us(d, rs) (XORLrr((d), (d)), MOVWmr(0, (rs), 0, 0, jit_reg16(d))) -#define jit_ldxr_us(d, s1, s2) (XORLrr((d), (d)), MOVWmr(0, (s1), (s2), 1, jit_reg16(d))) -#define jit_ldxi_us(d, rs, is) (XORLrr((d), (d)), MOVWmr((is), (rs), 0, 0, jit_reg16(d))) +#define jit_ldi_c(d, is) MOVSBLmr((is), 0, 0, 0, (d)) +#define jit_ldr_c(d, rs) MOVSBLmr(0, (rs), 0, 0, (d)) +#define jit_ldxr_c(d, s1, s2) MOVSBLmr(0, (s1), (s2), 1, (d)) +#define jit_ldxi_c(d, rs, is) MOVSBLmr((is), (rs), 0, 0, (d)) + +#define jit_ldi_uc(d, is) MOVZBLmr((is), 0, 0, 0, (d)) +#define jit_ldr_uc(d, rs) MOVZBLmr(0, (rs), 0, 0, (d)) +#define jit_ldxr_uc(d, s1, s2) MOVZBLmr(0, (s1), (s2), 1, (d)) +#define jit_ldxi_uc(d, rs, is) MOVZBLmr((is), (rs), 0, 0, (d)) + +#define jit_sti_c(id, rs) jit_movbrm((rs), (id), 0, 0, 0) +#define jit_str_c(rd, rs) jit_movbrm((rs), 0, (rd), 0, 0) +#define jit_stxr_c(d1, d2, rs) jit_movbrm((rs), 0, (d1), (d2), 1) +#define jit_stxi_c(id, rd, rs) jit_movbrm((rs), (id), (rd), 0, 0) + +#define jit_ldi_s(d, is) MOVSWLmr((is), 0, 0, 0, (d)) +#define jit_ldr_s(d, rs) MOVSWLmr(0, (rs), 0, 0, (d)) +#define jit_ldxr_s(d, s1, s2) MOVSWLmr(0, (s1), (s2), 1, (d)) +#define jit_ldxi_s(d, rs, is) MOVSWLmr((is), (rs), 0, 0, (d)) + +#define jit_ldi_us(d, is) MOVZWLmr((is), 0, 0, 0, (d)) +#define jit_ldr_us(d, rs) MOVZWLmr(0, (rs), 0, 0, (d)) +#define jit_ldxr_us(d, s1, s2) MOVZWLmr(0, (s1), (s2), 1, (d)) +#define jit_ldxi_us(d, rs, is) MOVZWLmr((is), (rs), 0, 0, (d)) #define jit_sti_s(id, rs) MOVWrm(jit_reg16(rs), (id), 0, 0, 0) #define jit_str_s(rd, rs) MOVWrm(jit_reg16(rs), 0, (rd), 0, 0) @@ -413,9 +405,9 @@ #define jit_stxi_i(id, rd, rs) MOVLrm((rs), (id), (rd), 0, 0) /* Extra */ -#define jit_nop() NOP() +#define jit_nop() NOP_() #define _jit_alignment(pc, n) (((pc ^ _MASK(4)) + 1) & _MASK(n)) -#define jit_align(n) _NOPi(_jit_alignment(_UL(_jit.x.pc), (n))) +#define jit_align(n) NOPi(_jit_alignment(_jit_UL(_jit.x.pc), (n))) #endif /* __lightning_core_h */ diff -rNu smalltalk-2.1.9/lightning/i386/fp.h smalltalk-2.1.10/lightning/i386/fp.h --- smalltalk-2.1.9/lightning/i386/fp.h 2003-12-13 11:11:23.000000000 +0100 +++ smalltalk-2.1.10/lightning/i386/fp.h 2004-11-25 15:19:18.000000000 +0100 @@ -7,7 +7,7 @@ /*********************************************************************** * - * Copyright 2000, 2001, 2002 Free Software Foundation, Inc. + * Copyright 2000, 2001, 2002, 2004 Free Software Foundation, Inc. * Written by Paolo Bonzini. * * This file is part of GNU lightning. @@ -33,78 +33,160 @@ #ifndef __lightning_asm_fp_h #define __lightning_asm_fp_h -#define ESCmi(D,B,I,S,OP) _O_r_X(0xd8|(OP & 7), (OP >> 3), D,B,I,S) - -#define FLDSm(D,B,I,S) ESCmi(D,B,I,S,001) /* fld m32real */ -#define FILDLm(D,B,I,S) ESCmi(D,B,I,S,003) /* fild m32int */ -#define FLDLm(D,B,I,S) ESCmi(D,B,I,S,005) /* fld m64real */ -#define FILDWm(D,B,I,S) ESCmi(D,B,I,S,007) /* fild m16int */ -#define FSTSm(D,B,I,S) ESCmi(D,B,I,S,021) /* fst m32real */ -#define FISTLm(D,B,I,S) ESCmi(D,B,I,S,023) /* fist m32int */ -#define FSTLm(D,B,I,S) ESCmi(D,B,I,S,025) /* fst m64real */ -#define FISTWm(D,B,I,S) ESCmi(D,B,I,S,027) /* fist m16int */ -#define FSTPSm(D,B,I,S) ESCmi(D,B,I,S,031) /* fstp m32real */ -#define FISTPLm(D,B,I,S) ESCmi(D,B,I,S,033) /* fistp m32int */ -#define FSTPLm(D,B,I,S) ESCmi(D,B,I,S,035) /* fstp m64real */ -#define FISTPWm(D,B,I,S) ESCmi(D,B,I,S,037) /* fistp m16int */ -#define FLDTm(D,B,I,S) ESCmi(D,B,I,S,053) /* fld m80real */ -#define FILDQm(D,B,I,S) ESCmi(D,B,I,S,057) /* fild m64int */ -#define FSTPTm(D,B,I,S) ESCmi(D,B,I,S,073) /* fstp m80real */ -#define FISTPQm(D,B,I,S) ESCmi(D,B,I,S,077) /* fistp m64int */ - - -#define jit_add_two(reg0) _OO(0xdec1) /* faddp */ -#define jit_sub_two(reg0) _OO(0xdee9) /* fsubp */ -#define jit_mul_two(reg0) _OO(0xdec9) /* fmulp */ -#define jit_div_two(reg0) _OO(0xdef9) /* fdivp */ - -#define jit_abs(reg0) _OO(0xd9e1) /* fabs */ -#define jit_sqr(reg0) _OO(0xdcc8) /* fmul st */ -#define jit_sqrt(reg0) _OO(0xd9fa) /* fsqrt */ - -#define jit_exti_d(reg0, rs) (PUSHLr((rs)), FILDLm(0, _ESP, 0, 0), POPLr((rs))) - -#define jit_neg(reg0) _OO(0xd9e0) /* fchs */ - -#define jit_ldxr_f(reg0, s1, s2) FLDSm(0, (s1), (s2), 1) -#define jit_ldxi_f(reg0, rs, is) FLDSm((is), (rs), 0, 0) -#define jit_ldxr_f(reg0, s1, s2) FLDSm(0, (s1), (s2), 1) -#define jit_ldxi_d(reg0, rs, is) FLDLm((is), (rs), 0, 0) -#define jit_ldxr_d(reg0, s1, s2) FLDLm(0, (s1), (s2), 1) -#define jit_ldi_f(reg0, is) FLDSm((is), 0, 0, 0) -#define jit_ldr_f(reg0, rs) FLDSm(0, (rs), 0, 0) -#define jit_ldi_d(reg0, is) FLDLm((is), 0, 0, 0) -#define jit_ldr_d(reg0, rs) FLDLm(0, (rs), 0, 0) -#define jit_stxi_f(id, rd, reg0) FSTPSm((id), (rd), 0, 0) -#define jit_stxr_f(d1, d2, reg0) FSTPSm(0, (d1), (d2), 1) -#define jit_stxi_d(id, rd, reg0) FSTPLm((id), (rd), 0, 0) -#define jit_stxr_d(d1, d2, reg0) FSTPLm(0, (d1), (d2), 1) -#define jit_sti_f(id, reg0) FSTPSm((id), 0, 0, 0) -#define jit_str_f(rd, reg0) FSTPSm(0, (rd), 0, 0) -#define jit_sti_d(id, reg0) FSTPLm((id), 0, 0, 0) -#define jit_str_d(rd, reg0) FSTPLm(0, (rd), 0, 0) - -#define jit_fpimm(reg0, first, second) \ - (PUSHLi(second), \ - PUSHLi(first), \ - FLDLm(0, _ESP, 0, 0), \ - ADDLir(8, _ESP)) - +/* We really must map the x87 stack onto a flat register file. In practice, + we can provide something sensible and make it work on the x86 using the + stack like a file of eight registers. + + We use six or seven registers so as to have some freedom + for floor, ceil, round, (and log, tan, atn and exp). + + Not hard at all, basically play with FXCH. FXCH is mostly free, + so the generated code is not bad. Of course we special case when one + of the operands turns out to be ST0. + + Here are the macros that actually do the trick. */ + +#define JIT_FPR_NUM 6 +#define JIT_FPR(i) (i) + +#define jit_fxch(rs, op) (((rs) != 0 ? FXCHr(rs) : 0), \ + op, ((rs) != 0 ? FXCHr(rs) : 0)) + +#define jit_fp_unary(rd, s1, op) \ + ((rd) == (s1) ? jit_fxch ((rd), op) \ + : (rd) == 0 ? (FSTPr (0), FLDr ((s1)-1), op) \ + : (FLDr ((s1)), op, FSTPr ((rd)))) + +#define jit_fp_binary(rd, s1, s2, op, opr) \ + ((rd) == (s1) ? \ + ((s2) == 0 ? opr(0, (rd)) \ + : (s2) == (s1) ? jit_fxch((rd), op(0, 0)) \ + : jit_fxch((rd), op((s2), 0))) \ + : (rd) == (s2) ? jit_fxch((s1), opr(0, (rd) == 0 ? (s1) : (rd))) \ + : (FLDr (s1), op(0, (s2)+1), FSTPr((rd)+1))) + +#define jit_addr_d(rd,s1,s2) jit_fp_binary((rd),(s1),(s2),FADDrr,FADDrr) +#define jit_subr_d(rd,s1,s2) jit_fp_binary((rd),(s1),(s2),FSUBrr,FSUBRrr) +#define jit_mulr_d(rd,s1,s2) jit_fp_binary((rd),(s1),(s2),FMULrr,FMULrr) +#define jit_divr_d(rd,s1,s2) jit_fp_binary((rd),(s1),(s2),FDIVrr,FDIVRrr) + +#define jit_abs_d(rd,rs) jit_fp_unary ((rd), (rs), _OO (0xd9e1)) +#define jit_negr_d(rd,rs) jit_fp_unary ((rd), (rs), _OO (0xd9e0)) +#define jit_sqrt_d(rd,rs) jit_fp_unary ((rd), (rs), _OO (0xd9fa)) + +/* - moves: + + move FPR0 to FPR3 + FST ST3 + + move FPR3 to FPR0 + FXCH ST3 + FST ST3 + + move FPR3 to FPR1 + FLD ST1 + FST ST4 Stack is rotated, so FPRn becomes STn+1 */ + +#define jit_movr_d(rd,s1) \ + ((s1) == (rd) ? 0 \ + : (s1) == 0 ? FSTr ((rd)) \ + : (rd) == 0 ? (FXCHr ((s1)), FSTr ((s1))) \ + : (FLDr ((s1)), FSTr ((rd)+1))) + +/* - loads: + + load into FPR0 + FSTP ST0 + FLD [FUBAR] + + load into FPR3 + FSTP ST3 Save old st0 into destination register + FLD [FUBAR] + FXCH ST3 Get back old st0 + + (and similarly for immediates, using the stack) */ + +#define jit_movi_f(rd,immf) \ + (_O (0x68), \ + *((float *) _jit.x.pc) = (float) immf, \ + _jit.x.uc_pc += sizeof (float), \ + jit_ldr_f((rd), _ESP), \ + ADDLir(4, _ESP)) + +union jit_double_imm { + double d; + int i[2]; +}; + +#define jit_movi_d(rd,immd) \ + (_O (0x68), \ + _jit.x.uc_pc[4] = 0x68, \ + ((union jit_double_imm *) (_jit.x.uc_pc + 5))->d = (double) immd, \ + *((int *) _jit.x.uc_pc) = ((union jit_double_imm *) (_jit.x.uc_pc + 5))->i[1], \ + _jit.x.uc_pc += 9, \ + jit_ldr_d((rd), _ESP), \ + ADDLir(8, _ESP)) + +#define jit_ldi_f(rd, is) \ + ((rd) == 0 ? (FSTPr (0), FLDSm((is), 0, 0, 0)) \ + : (FLDSm((is), 0, 0, 0), FSTPr ((rd) + 1))) + +#define jit_ldi_d(rd, is) \ + ((rd) == 0 ? (FSTPr (0), FLDLm((is), 0, 0, 0)) \ + : (FLDLm((is), 0, 0, 0), FSTPr ((rd) + 1))) + +#define jit_ldr_f(rd, rs) \ + ((rd) == 0 ? (FSTPr (0), FLDSm(0, (rs), 0, 0)) \ + : (FLDSm(0, (rs), 0, 0), FSTPr ((rd) + 1))) + +#define jit_ldr_d(rd, rs) \ + ((rd) == 0 ? (FSTPr (0), FLDLm(0, (rs), 0, 0)) \ + : (FLDLm(0, (rs), 0, 0), FSTPr ((rd) + 1))) + +#define jit_ldxi_f(rd, rs, is) \ + ((rd) == 0 ? (FSTPr (0), FLDSm((is), (rs), 0, 0)) \ + : (FLDSm((is), (rs), 0, 0), FSTPr ((rd) + 1))) + +#define jit_ldxi_d(rd, rs, is) \ + ((rd) == 0 ? (FSTPr (0), FLDLm((is), (rs), 0, 0)) \ + : (FLDLm((is), (rs), 0, 0), FSTPr ((rd) + 1))) + +#define jit_ldxr_f(rd, s1, s2) \ + ((rd) == 0 ? (FSTPr (0), FLDSm(0, (s1), (s2), 1)) \ + : (FLDSm(0, (s1), (s2), 1), FSTPr ((rd) + 1))) + +#define jit_ldxr_d(rd, s1, s2) \ + ((rd) == 0 ? (FSTPr (0), FLDLm(0, (s1), (s2), 1)) \ + : (FLDLm(0, (s1), (s2), 1), FSTPr ((rd) + 1))) + +#define jit_extr_i_d(rd, rs) (PUSHLr((rs)), \ + ((rd) == 0 ? (FSTPr (0), FILDLm(0, _ESP, 0, 0)) \ + : (FILDLm(0, _ESP, 0, 0), FSTPr ((rd) + 1))), \ + POPLr((rs))) + +#define jit_stxi_f(id, rd, rs) jit_fxch ((rs), FSTSm((id), (rd), 0, 0)) +#define jit_stxr_f(d1, d2, rs) jit_fxch ((rs), FSTSm(0, (d1), (d2), 1)) +#define jit_stxi_d(id, rd, rs) jit_fxch ((rs), FSTLm((id), (rd), 0, 0)) +#define jit_stxr_d(d1, d2, rs) jit_fxch ((rs), FSTLm(0, (d1), (d2), 1)) +#define jit_sti_f(id, rs) jit_fxch ((rs), FSTSm((id), 0, 0, 0)) +#define jit_str_f(rd, rs) jit_fxch ((rs), FSTSm(0, (rd), 0, 0)) +#define jit_sti_d(id, rs) jit_fxch ((rs), FSTLm((id), 0, 0, 0)) +#define jit_str_d(rd, rs) jit_fxch ((rs), FSTLm(0, (rd), 0, 0)) /* Assume round to near mode */ -#define jit_floor(rd, reg0) \ - jit_floor2((rd), ((rd) == _EDX ? _EAX : _EDX)) +#define jit_floorr_d_i(rd, rs) \ + (FLDr (rs), jit_floor2((rd), ((rd) == _EDX ? _EAX : _EDX))) -#define jit_ceil(rd, reg0) \ - jit_ceil2((rd), ((rd) == _EDX ? _EAX : _EDX)) +#define jit_ceilr_d_i(rd, rs) \ + (FLDr (rs), jit_ceil2((rd), ((rd) == _EDX ? _EAX : _EDX))) -#define jit_trunc(rd, reg0) \ - jit_trunc2((rd), ((rd) == _EDX ? _EAX : _EDX)) +#define jit_truncr_d_i(rd, rs) \ + (FLDr (rs), jit_trunc2((rd), ((rd) == _EDX ? _EAX : _EDX))) #define jit_calc_diff(ofs) \ FISTLm(ofs, _ESP, 0, 0), \ FILDLm(ofs, _ESP, 0, 0), \ - _OO(0xdee9), /* fsubp */ \ + FSUBRPr(1), \ FSTPSm(4+ofs, _ESP, 0, 0) \ /* The real meat */ @@ -151,55 +233,115 @@ POPLr(aux)) /* the easy one */ -#define jit_round(rd, reg0) \ - (PUSHLr(_EAX), \ - FISTPLm(0, _ESP, 0, 0), \ +#define jit_roundr_d_i(rd, rs) \ + (PUSHLr(_EAX), \ + jit_fxch ((rs), FISTPLm(0, _ESP, 0, 0)), \ POPLr((rd))) -#define jit_cmp(le, ge, reg0) ( \ - ((le) == _EAX || (ge) == _EAX ? 0 : PUSHLr(_EAX)), \ - _OO(0xd8d0), /* fcom st(0) */ \ - _d16(), _OO(0xdfe0), /* fnstsw ax */ \ - TESTBir(0x40, _AH), \ - MOVBir(0, ((le) & 15) | 0x10), \ - MOVBir(0, ((ge) & 15) | 0x10), \ - JZSm(_jit.x.pc + 12, 0, 0, 0), \ - _OO(0xd9e4), /* ftst */ /* 2 */ \ - _d16(), _OO(0xdfe0), /* fnstsw ax */ /* 3 */ \ - SAHF(), /* 1 */ \ - SETLEr( ((le) & 15) | 0x10), /* 3 */ \ - SETGEr( ((ge) & 15) | 0x10), /* 3 */ \ - ANDLir( 1, (le)), \ - ANDLir( 1, (ge)), \ - ((le) == _EAX || (ge) == _EAX ? 0 : POPLr(_EAX)) ) - -#define jitfp_getarg_f(ofs) jitfp_ldxi_f(JIT_FP,(ofs)) -#define jitfp_getarg_d(ofs) jitfp_ldxi_d(JIT_FP,(ofs)) -#define jitfp_pusharg_d(op1) (jit_subi_i(JIT_SP,JIT_SP,sizeof(double)), jitfp_str_d(JIT_SP,(op1))) -#define jitfp_pusharg_f(op1) (jit_subi_i(JIT_SP,JIT_SP,sizeof(float)), jitfp_str_f(JIT_SP,(op1))) -#define jitfp_retval(op1) _jit_emit(&_jit, (op1), JIT_NULL, 0, 0, 0) - -#ifdef JIT_TRANSCENDENTAL -#define jit_sin(reg0) _OO(0xd9fe) /* fsin */ -#define jit_cos(reg0) _OO(0xd9ff) /* fcos */ -#define jit_tan(reg0) (_OO(0xd9f2), /* fptan */ \ - _OO(0xddd8)) /* fstp st */ -#define jit_atn(reg0) (_OO(0xd9e8), /* fld1 */ \ - _OO(0xd9f3)) /* fpatan */ -#define jit_exp(reg0) (_OO(0xd9ea), /* fldl2e */ \ - _OO(0xdec9), /* fmulp */ \ - _OO(0xd9c0), /* fld st */ \ - _OO(0xd9fc), /* frndint */ \ - _OO(0xdce9), /* fsubr */ \ - _OO(0xd9c9), /* fxch st(1) */ \ - _OO(0xd9f0), /* f2xm1 */ \ - _OO(0xd9e8), /* fld1 */ \ - _OO(0xdec1), /* faddp */ \ - _OO(0xd9fd), /* fscale */ \ - _OO(0xddd9)) /* fstp st(1) */ -#define jit_log(reg0) (_OO(0xd9ed), /* fldln2 */ \ - _OO(0xd9c9), /* fxch st(1) */ \ - _OO(0xd9f1)) /* fyl2x */ +#define jit_fp_test(d, s1, s2, n, _and, res) \ + (((s1) == 0 ? FUCOMr((s2)) : (FLDr((s1)), FUCOMPr((s2) + 1))), \ + ((d) != _EAX ? MOVLrr(_EAX, (d)) : 0), \ + FNSTSWr(_EAX), \ + SHRLir(n, _EAX), \ + ((_and) ? ANDLir((_and), _EAX) : MOVLir(0, _EAX)), \ + res, \ + ((d) != _EAX ? _O (0x90 + ((d) & 7)) : 0)) /* xchg */ + +#define jit_fp_btest(d, s1, s2, n, _and, cmp, res) \ + (((s1) == 0 ? FUCOMr((s2)) : (FLDr((s1)), FUCOMPr((s2) + 1))), \ + PUSHLr(_EAX), \ + FNSTSWr(_EAX), \ + SHRLir(n, _EAX), \ + ((_and) ? ANDLir ((_and), _EAX) : 0), \ + ((cmp) ? CMPLir ((cmp), _AL) : 0), \ + POPLr(_EAX), \ + res ((d), 0, 0, 0)) + +#define jit_nothing_needed(x) + +/* After FNSTSW we have 1 if <, 40 if =, 0 if >, 45 if unordered. Here + is how to map the values of the status word's high byte to the + conditions. + + < = > unord valid values condition + gt no no yes no 0 STSW & 45 == 0 + lt yes no no no 1 STSW & 45 == 1 + eq no yes no no 40 STSW & 45 == 40 + unord no no no yes 45 bit 2 == 1 + + ge no yes no no 0, 40 bit 0 == 0 + unlt yes no no yes 1, 45 bit 0 == 1 + ltgt yes no yes no 0, 1 bit 6 == 0 + uneq no yes no yes 40, 45 bit 6 == 1 + le yes yes no no 1, 40 odd parity for STSW & 41 + ungt no no yes yes 0, 45 even parity for STSW & 41 + + unle yes yes no yes 1, 40, 45 STSW & 45 != 0 + unge no yes yes yes 0, 40, 45 STSW & 45 != 1 + ne yes no yes yes 0, 1, 45 STSW & 45 != 40 + ord yes yes yes no 0, 1, 40 bit 2 == 0 + + lt, le, ungt, unge are actually computed as gt, ge, unlt, unle with + the operands swapped; it is more efficient this way. */ + +#define jit_gtr_d(d, s1, s2) jit_fp_test((d), (s1), (s2), 8, 0x45, SETZr (_AL)) +#define jit_ger_d(d, s1, s2) jit_fp_test((d), (s1), (s2), 9, 0, SBBBir (-1, _AL)) +#define jit_unler_d(d, s1, s2) jit_fp_test((d), (s1), (s2), 8, 0x45, SETNZr (_AL)) +#define jit_unltr_d(d, s1, s2) jit_fp_test((d), (s1), (s2), 9, 0, ADCBir (0, _AL)) +#define jit_ltr_d(d, s1, s2) jit_fp_test((d), (s2), (s1), 8, 0x45, SETZr (_AL)) +#define jit_ler_d(d, s1, s2) jit_fp_test((d), (s2), (s1), 9, 0, SBBBir (-1, _AL)) +#define jit_unger_d(d, s1, s2) jit_fp_test((d), (s2), (s1), 8, 0x45, SETNZr (_AL)) +#define jit_ungtr_d(d, s1, s2) jit_fp_test((d), (s2), (s1), 9, 0, ADCBir (0, _AL)) +#define jit_eqr_d(d, s1, s2) jit_fp_test((d), (s1), (s2), 8, 0x45, (CMPBir (0x40, _AL), SETEr (_AL))) +#define jit_ner_d(d, s1, s2) jit_fp_test((d), (s1), (s2), 8, 0x45, (CMPBir (0x40, _AL), SETNEr (_AL))) +#define jit_ltgtr_d(d, s1, s2) jit_fp_test((d), (s1), (s2), 15, 0, SBBBir (-1, _AL)) +#define jit_uneqr_d(d, s1, s2) jit_fp_test((d), (s1), (s2), 15, 0, ADCBir (0, _AL)) +#define jit_ordr_d(d, s1, s2) jit_fp_test((d), (s1), (s2), 11, 0, SBBBir (-1, _AL)) +#define jit_unordr_d(d, s1, s2) jit_fp_test((d), (s1), (s2), 11, 0, ADCBir (0, _AL)) + +#define jit_bgtr_d(d, s1, s2) jit_fp_btest((d), (s1), (s2), 8, 0x45, 0, JZm) +#define jit_bger_d(d, s1, s2) jit_fp_btest((d), (s1), (s2), 9, 0, 0, JNCm) +#define jit_bunler_d(d, s1, s2) jit_fp_btest((d), (s1), (s2), 8, 0x45, 0, JNZm) +#define jit_bunltr_d(d, s1, s2) jit_fp_btest((d), (s1), (s2), 9, 0, 0, JCm) +#define jit_bltr_d(d, s1, s2) jit_fp_btest((d), (s2), (s1), 8, 0x45, 0, JZm) +#define jit_bler_d(d, s1, s2) jit_fp_btest((d), (s2), (s1), 9, 0, 0, JNCm) +#define jit_bunger_d(d, s1, s2) jit_fp_btest((d), (s2), (s1), 8, 0x45, 0, JNZm) +#define jit_bungtr_d(d, s1, s2) jit_fp_btest((d), (s2), (s1), 9, 0, 0, JCm) +#define jit_beqr_d(d, s1, s2) jit_fp_btest((d), (s1), (s2), 8, 0x45, 0x40, JZm) +#define jit_bner_d(d, s1, s2) jit_fp_btest((d), (s1), (s2), 8, 0x45, 0x40, JNZm) +#define jit_bltgtr_d(d, s1, s2) jit_fp_btest((d), (s1), (s2), 15, 0, 0, JNCm) +#define jit_buneqr_d(d, s1, s2) jit_fp_btest((d), (s1), (s2), 15, 0, 0, JCm) +#define jit_bordr_d(d, s1, s2) jit_fp_btest((d), (s1), (s2), 11, 0, 0, JNCm) +#define jit_bunordr_d(d, s1, s2) jit_fp_btest((d), (s1), (s2), 11, 0, 0, JCm) + +#define jit_getarg_f(rd, ofs) jit_ldxi_f((rd), JIT_FP,(ofs)) +#define jit_getarg_d(rd, ofs) jit_ldxi_d((rd), JIT_FP,(ofs)) +#define jit_pusharg_d(rs) (jit_subi_i(JIT_SP,JIT_SP,sizeof(double)), jit_str_d(JIT_SP,(rs))) +#define jit_pusharg_f(rs) (jit_subi_i(JIT_SP,JIT_SP,sizeof(float)), jit_str_f(JIT_SP,(rs))) +#define jit_retval_d(op1) jit_movr_d(0, (op1)) + + +#if 0 +#define jit_sin() _OO(0xd9fe) /* fsin */ +#define jit_cos() _OO(0xd9ff) /* fcos */ +#define jit_tan() (_OO(0xd9f2), /* fptan */ \ + FSTPr(0)) /* fstp st */ +#define jit_atn() (_OO(0xd9e8), /* fld1 */ \ + _OO(0xd9f3)) /* fpatan */ +#define jit_exp() (_OO(0xd9ea), /* fldl2e */ \ + FMULPr(1), /* fmulp */ \ + _OO(0xd9c0), /* fld st */ \ + _OO(0xd9fc), /* frndint */ \ + _OO(0xdce9), /* fsubr */ \ + FXCHr(1), /* fxch st(1) */ \ + _OO(0xd9f0), /* f2xm1 */ \ + _OO(0xd9e8), /* fld1 */ \ + _OO(0xdec1), /* faddp */ \ + _OO(0xd9fd), /* fscale */ \ + FSTPr(1)) /* fstp st(1) */ +#define jit_log() (_OO(0xd9ed), /* fldln2 */ \ + FXCHr(1), /* fxch st(1) */ \ + _OO(0xd9f1)) /* fyl2x */ #endif #endif /* __lightning_asm_h */ diff -rNu smalltalk-2.1.9/lightning/i386/funcs.h smalltalk-2.1.10/lightning/i386/funcs.h --- smalltalk-2.1.9/lightning/i386/funcs.h 2003-12-13 11:11:23.000000000 +0100 +++ smalltalk-2.1.10/lightning/i386/funcs.h 2004-11-25 15:19:18.000000000 +0100 @@ -34,6 +34,58 @@ #ifndef __lightning_funcs_h #define __lightning_funcs_h -#define jit_flush_code(dest, end) +#ifdef __linux__ +#include +#include +#endif + +static void +jit_flush_code(void *dest, void *end) +{ + /* On the x86, the PROT_EXEC bits are not handled by the MMU. + However, the kernel can emulate this by setting the code + segment's limit to the end address of the highest page + whose PROT_EXEC bit is set. + + Linux kernels that do so and that disable by default the + execution of the data and stack segment are becoming more + and more common (Fedora, for example), so we implement our + jit_flush_code as an mprotect. */ +#ifdef __linux__ + static unsigned long prev_page = 0, prev_length = 0; + int page, length; +#ifdef PAGESIZE + const int page_size = PAGESIZE; +#else + static int page_size = -1; + if (page_size == -1) + page_size = sysconf (_SC_PAGESIZE); +#endif + + page = (long) dest & ~(page_size - 1); + length = ((char *) end - (char *) page + page_size - 1) & ~(page_size - 1); + + /* Simple-minded attempt at optimizing the common case where a single + chunk of memory is used to compile multiple functions. */ + if (page >= prev_page && page + length <= prev_page + prev_length) + return; + + mprotect ((void *) page, length, PROT_READ | PROT_WRITE | PROT_EXEC); + + /* See if we can extend the previously mprotect'ed memory area towards + higher addresses: the starting address remains the same as before. */ + if (page >= prev_page && page <= prev_page + prev_length) + prev_length = page + length - prev_page; + + /* See if we can extend the previously mprotect'ed memory area towards + lower addresses: the highest address remains the same as before. */ + else if (page < prev_page && page + length <= prev_page + prev_length) + prev_length += prev_page - page, prev_page = page; + + /* Nothing to do, replace the area. */ + else + prev_page = page, prev_length = length; +#endif +} #endif /* __lightning_funcs_h */ diff -rNu smalltalk-2.1.9/lightning/lightning.h smalltalk-2.1.10/lightning/lightning.h --- smalltalk-2.1.9/lightning/lightning.h 2003-06-09 09:36:06.000000000 +0200 +++ smalltalk-2.1.10/lightning/lightning.h 2004-11-25 15:19:18.000000000 +0100 @@ -39,7 +39,6 @@ #endif #include -#include #ifndef LIGHTNING_DEBUG #include @@ -48,11 +47,9 @@ #include #include #include +#include #include - -#ifdef jit_cmp #include -#endif #ifndef JIT_R0 #error GNU lightning does not support the current target diff -rNu smalltalk-2.1.9/lightning/ppc/asm.h smalltalk-2.1.10/lightning/ppc/asm.h --- smalltalk-2.1.9/lightning/ppc/asm.h 2003-12-13 11:11:23.000000000 +0100 +++ smalltalk-2.1.10/lightning/ppc/asm.h 2004-11-25 15:19:18.000000000 +0100 @@ -61,6 +61,7 @@ typedef unsigned int jit_insn; +#ifndef LIGHTNING_DEBUG #define _cr0 0 #define _cr1 1 #define _cr2 2 @@ -76,22 +77,23 @@ #define _so 3 #define _un 3 -#define _d16(D) (_ck_d(16,(_UL(D)-_UL(_jit.x.pc))) & ~3) -#define _d26(D) (_ck_d(26,(_UL(D)-_UL(_jit.x.pc))) & ~3) +#define _d16(D) (_ck_d(16,(_jit_UL(D)-_jit_UL(_jit.x.pc))) & ~3) +#define _d26(D) (_ck_d(26,(_jit_UL(D)-_jit_UL(_jit.x.pc))) & ~3) /* primitive instruction forms [1, Section A.4] */ -#define _FB( OP, BD,AA,LK ) _I((_u6(OP)<<26)| _d26(BD)| (_u1(AA)<<1)|_u1(LK)) -#define _FBA( OP, BD,AA,LK ) _I((_u6(OP)<<26)| (_u26(BD)&~3)| (_u1(AA)<<1)|_u1(LK)) -#define _BB( OP,BO,BI, BD,AA,LK ) _I((_u6(OP)<<26)|(_u5(BO)<<21)|(_u5(BI)<<16)| _d16(BD)| (_u1(AA)<<1)|_u1(LK)) -#define _D( OP,RD,RA, DD ) _I((_u6(OP)<<26)|(_u5(RD)<<21)|(_u5(RA)<<16)| _s16(DD) ) -#define _Du( OP,RD,RA, DD ) _I((_u6(OP)<<26)|(_u5(RD)<<21)|(_u5(RA)<<16)| _u16(DD) ) -#define _Ds( OP,RD,RA, DD ) _I((_u6(OP)<<26)|(_u5(RD)<<21)|(_u5(RA)<<16)| _su16(DD) ) -#define _X( OP,RD,RA,RB, XO,RC ) _I((_u6(OP)<<26)|(_u5(RD)<<21)|(_u5(RA)<<16)|( _u5(RB)<<11)| (_u10(XO)<<1)|_u1(RC)) -#define _XL( OP,BO,BI, XO,LK ) _I((_u6(OP)<<26)|(_u5(BO)<<21)|(_u5(BI)<<16)|( _u5(00)<<11)| (_u10(XO)<<1)|_u1(LK)) -#define _XFX( OP,RD, SR,XO ) _I((_u6(OP)<<26)|(_u5(RD)<<21)| (_u10(SR)<<11)| (_u10(XO)<<1)|_u1(00)) -#define _XO( OP,RD,RA,RB,OE,XO,RC ) _I((_u6(OP)<<26)|(_u5(RD)<<21)|(_u5(RA)<<16)|( _u5(RB)<<11)|(_u1(OE)<<10)|( _u9(XO)<<1)|_u1(RC)) -#define _M( OP,RS,RA,SH,MB,ME,RC ) _I((_u6(OP)<<26)|(_u5(RS)<<21)|(_u5(RA)<<16)|( _u5(SH)<<11)|(_u5(MB)<< 6)|( _u5(ME)<<1)|_u1(RC)) +#define _FB( OP, BD,AA,LK ) (_jit_I_noinc((_u6(OP)<<26)| _d26(BD)| (_u1(AA)<<1)|_u1(LK)), _jit.x.pc++, 0) +#define _FBA( OP, BD,AA,LK ) _jit_I((_u6(OP)<<26)| (_u26(BD)&~3)| (_u1(AA)<<1)|_u1(LK)) +#define _BB( OP,BO,BI, BD,AA,LK ) (_jit_I_noinc((_u6(OP)<<26)|(_u5(BO)<<21)|(_u5(BI)<<16)| _d16(BD)| (_u1(AA)<<1)|_u1(LK)), _jit.x.pc++, 0) +#define _D( OP,RD,RA, DD ) _jit_I((_u6(OP)<<26)|(_u5(RD)<<21)|(_u5(RA)<<16)| _s16(DD) ) +#define _Du( OP,RD,RA, DD ) _jit_I((_u6(OP)<<26)|(_u5(RD)<<21)|(_u5(RA)<<16)| _u16(DD) ) +#define _Ds( OP,RD,RA, DD ) _jit_I((_u6(OP)<<26)|(_u5(RD)<<21)|(_u5(RA)<<16)| _su16(DD) ) +#define _X( OP,RD,RA,RB, XO,RC ) _jit_I((_u6(OP)<<26)|(_u5(RD)<<21)|(_u5(RA)<<16)|( _u5(RB)<<11)| (_u10(XO)<<1)|_u1(RC)) +#define _XL( OP,BO,BI, XO,LK ) _jit_I((_u6(OP)<<26)|(_u5(BO)<<21)|(_u5(BI)<<16)|( _u5(00)<<11)| (_u10(XO)<<1)|_u1(LK)) +#define _XFX( OP,RD, SR,XO ) _jit_I((_u6(OP)<<26)|(_u5(RD)<<21)| (_u10(SR)<<11)| (_u10(XO)<<1)|_u1(00)) +#define _XO( OP,RD,RA,RB,OE,XO,RC ) _jit_I((_u6(OP)<<26)|(_u5(RD)<<21)|(_u5(RA)<<16)|( _u5(RB)<<11)|(_u1(OE)<<10)|( _u9(XO)<<1)|_u1(RC)) +#define _M( OP,RS,RA,SH,MB,ME,RC ) _jit_I((_u6(OP)<<26)|(_u5(RS)<<21)|(_u5(RA)<<16)|( _u5(SH)<<11)|(_u5(MB)<< 6)|( _u5(ME)<<1)|_u1(RC)) + /* special purpose registers (form XFX) [1, Section 8.2, page 8-138] */ @@ -121,7 +123,7 @@ #define Bi(BD) _FB (18, BD, 0, 0) #define BAi(BD) _FBA (18, BD, 1, 0) -#define BLi(BD) _FB (18, BD, 0, 1) +#define BLi(BD) _FB (18, BD, 0, 1) #define BLAi(BD) _FBA (18, BD, 1, 1) #define BCiii(BO,BI,BD) _BB (16, BO, BI, BD, 0, 0) @@ -313,10 +315,10 @@ #define MOVEIri(R,I) (_siP(16,I) ? LIri(R,I) : \ MOVEIri2(R, _HI(I), _LO(I)) ) -#define SUBIrri(RD,RA,IM) ADDIrri(RD,RA,-_L((IM))) /* [1, Section F.2.1] */ -#define SUBISrri(RD,RA,IM) ADDISrri(RD,RA,-_L((IM))) -#define SUBICrri(RD,RA,IM) ADDICrri(RD,RA,-_L((IM))) -#define SUBIC_rri(RD,RA,IM) ADDIC_rri(RD,RA,-_L((IM))) +#define SUBIrri(RD,RA,IM) ADDIrri(RD,RA,-_LO((IM))) /* [1, Section F.2.1] */ +#define SUBISrri(RD,RA,IM) ADDISrri(RD,RA,-_LO((IM))) +#define SUBICrri(RD,RA,IM) ADDICrri(RD,RA,-_LO((IM))) +#define SUBIC_rri(RD,RA,IM) ADDIC_rri(RD,RA,-_LO((IM))) #define SUBrrr(RD,RA,RB) SUBFrrr(RD,RB,RA) /* [1, Section F.2.2] */ #define SUBOrrr(RD,RA,RB) SUBFOrrr(RD,RB,RA) @@ -350,17 +352,21 @@ #define CLRRWIrri(RA,RS,N) RLWINMrriii(RA, RS, 0, 0, 31-(N)) #define CLRLSLWIrrii(RA,RS,B,N) RLWINMrriii(RA, RS, N, (B)-(N), 31-(N)) + /* 9 below inverts the branch condition and the branch prediction. - * This has an incestuous knowledge of the fact that register 26 - * is used as auxiliary!!! */ -#define BC_EXT(A, C, D) (_siP(16, _UL(D)-_UL(_jit.x.pc)) \ + * This has an incestuous knowledge of JIT_AUX */ +#define BC_EXT(A, C, D) (_siP(16, _jit_UL(D)-_jit_UL(_jit.x.pc)) \ ? BCiii((A), (C), (D)) \ - : (BCiii((A)^9, (C), _jit.x.pc+5), LISri(26,_HI(D)), ORIrri(26,26,_LO(D)), \ - MTLRr(26), BLR() )) + : (BCiii((A)^9, (C), _jit.x.pc+5), \ + LISri(JIT_AUX,_HI(D)), \ + ORIrri(JIT_AUX,JIT_AUX,_LO(D)), \ + MTLRr(JIT_AUX), BLR() )) -#define B_EXT(D) (_siP(16, _UL(D)-_UL(_jit.x.pc)) \ +#define B_EXT(D) (_siP(16, _jit_UL(D)-_jit_UL(_jit.x.pc)) \ ? Bi((D)) \ - : (LISri(26,_HI(D)), ORIrri(26,26,_LO(D)), MTLRr(26), BLR()) ) + : (LISri(JIT_AUX,_HI(D)), \ + ORIrri(JIT_AUX,JIT_AUX,_LO(D)), \ + MTLRr(JIT_AUX), BLR()) ) #define BTii(C,D) BC_EXT(12, C, D) /* [1, Table F-5] */ #define BFii(C,D) BC_EXT( 4, C, D) @@ -379,7 +385,7 @@ #define BLTLRi(CR) BCLRii(12, ((CR)<<2)+0) /* [1, Table F-10] */ -#define BLELRi(CR) BCLRii( 4 ((CR)<<2)+1) +#define BLELRi(CR) BCLRii( 4, ((CR)<<2)+1) #define BEQLRi(CR) BCLRii(12, ((CR)<<2)+2) #define BGELRi(CR) BCLRii( 4, ((CR)<<2)+0) #define BGTLRi(CR) BCLRii(12, ((CR)<<2)+1) @@ -405,7 +411,7 @@ #define BNULRLi(CR) BCLRLii( 4, ((CR)<<2)+3) #define BLTCTRi(CR) BCCTRii(12, ((CR)<<2)+0) /* [1, Table F-10] */ -#define BLECTRi(CR) BCCTRii( 4 ((CR)<<2)+1) +#define BLECTRi(CR) BCCTRii( 4, ((CR)<<2)+1) #define BEQCTRi(CR) BCCTRii(12, ((CR)<<2)+2) #define BGECTRi(CR) BCCTRii( 4, ((CR)<<2)+0) #define BGTCTRi(CR) BCCTRii(12, ((CR)<<2)+1) @@ -511,7 +517,7 @@ #define BNUi(D) BNUii(0,D) #define BLTLii(C,D) BCLiii(12, ((C)<<2)+0, D) /* [1, Table F-??] */ -#define BLELii(C,D) BCLiii( 4 ((C)<<2)+1, D) +#define BLELii(C,D) BCLiii( 4, ((C)<<2)+1, D) #define BEQLii(C,D) BCLiii(12, ((C)<<2)+2, D) #define BGELii(C,D) BCLiii( 4, ((C)<<2)+0, D) #define BGTLii(C,D) BCLiii(12, ((C)<<2)+1, D) @@ -583,10 +589,53 @@ #define LArx(RD,RB,RA) LArrr(RD,RB,RA) -#define _LO(I) (_UL(I) & _MASK(16)) -#define _HI(I) (_UL(I) >> (16)) +#define _LO(I) (_jit_UL(I) & _MASK(16)) +#define _HI(I) (_jit_UL(I) >> (16)) +#define _A(OP,RD,RA,RB,RC,XO,RCx) _jit_I((_u6(OP)<<26)|(_u5(RD)<<21)|(_u5(RA)<<16)|( _u5(RB)<<11)|_u5(RC)<<6|(_u5(XO)<<1)|_u1(RCx)) +#define LFDrri(RD,RA,imm) _D(50,RD,RA,imm) +#define LFDUrri(RD,RA,imm) _D(51,RD,RA,imm) +#define LFDUxrrr(RD,RA,RB) _X(31,RD,RA,RB,631,0) +#define LFDxrrr(RD,RA,RB) _X(31,RD,RA,RB,599,0) + +#define LFSrri(RD,RA,imm) _D(48,RD,RA,imm) +#define LFSUrri(RD,RA,imm) _D(49,RD,RA,imm) +#define LFSUxrrr(RD,RA,RB) _X(31,RD,RA,RB,567,0) +#define LFSxrrr(RD,RA,RB) _X(31,RD,RA,RB,535,0) + +#define STFDrri(RS,RA,imm) _D(54,RS,RA,imm) +#define STFDUrri(RS,RA,imm) _D(55,RS,RA,imm) +#define STFDUxrrr(RS,RA,RB) _X(31,RS,RA,RB,759,0) +#define STFDxrrr(RS,RA,RB) _X(31,RS,RA,RB,727,0) + +#define STFSrri(RS,RA,imm) _D(52,RS,RA,imm) +#define STFSUrri(RS,RA,imm) _D(53,RS,RA,imm) +#define STFSUxrrr(RS,RA,RB) _X(31,RS,RA,RB,695,0) +#define STFSxrrr(RS,RA,RB) _X(31,RS,RA,RB,663,0) +#define STFIWXrrr(RS,RA,RB) _X(31,RS,RA,RB,983,0) + +#define FADDDrrr(RD,RA,RB) _A(63,RD,RA,RB,0,21,0) +#define FADDSrrr(RD,RA,RB) _A(59,RD,RA,RB,0,21,0) +#define FSUBDrrr(RD,RA,RB) _A(63,RD,RA,RB,0,20,0) +#define FSUBSrrr(RD,RA,RB) _A(59,RD,RA,RB,0,20,0) +#define FMULDrrr(RD,RA,RC) _A(63,RD,RA,0,RC,25,0) +#define FMULSrrr(RD,RA,RC) _A(59,RD,RA,0,RC,25,0) +#define FDIVDrrr(RD,RA,RB) _A(63,RD,RA,RB,0,18,0) +#define FDIVSrrr(RD,RA,RB) _A(59,RD,RA,RB,0,25,0) +#define FSQRTDrr(RD,RB) _A(63,RD,0,RB,0,22,0) +#define FSQRTSrr(RD,RB) _A(59,RD,0,RB,0,22,0) +#define FSELrrrr(RD,RA,RB,RC) _A(63,RD,RA,RB,RC,23,0) +#define FCTIWrr(RD,RB) _X(63,RD,0,RB,14,0) +#define FCTIWZrr(RD,RB) _X(63,RD,0,RB,15,0) +#define FRSPrr(RD,RB) _X(63,RD,0,RB,12,0) +#define FABSrr(RD,RB) _X(63,RD,0,RB,264,0) +#define FNABSrr(RD,RB) _X(63,RD,0,RB,136,0) +#define FNEGrr(RD,RB) _X(63,RD,0,RB,40,0) +#define FMOVErr(RD,RB) _X(63,RD,0,RB,72,0) +#define FCMPOrrr(CR,RA,RB) _X(63,_u3((CR)<<2),RA,RB,32,0) +#define FCMPUrrr(CR,RA,RB) _X(63,_u3((CR)<<2),RA,RB,0,0) +#define MTFSFIri(CR,IMM) _X(63,_u5((CR)<<2),0,_u5((IMM)<<1),134,0) /*** References: * @@ -594,4 +643,5 @@ */ +#endif #endif /* __ccg_asm_ppc_h */ diff -rNu smalltalk-2.1.9/lightning/ppc/core.h smalltalk-2.1.10/lightning/ppc/core.h --- smalltalk-2.1.9/lightning/ppc/core.h 2003-12-13 11:11:23.000000000 +0100 +++ smalltalk-2.1.10/lightning/ppc/core.h 2004-11-25 15:19:18.000000000 +0100 @@ -36,20 +36,24 @@ #define __lightning_core_h struct jit_local_state { - int nextarg_put; /* Next r3-r8 reg. to be written */ - int nextarg_putfp; /* Next r3-r8 reg. to be written */ - int nextarg_get; /* Next r20-r25 reg. to be read */ + int nextarg_puti; /* number of integer args */ + int nextarg_putf; /* number of float args */ + int nextarg_putd; /* number of double args */ + int nextarg_geti; /* Next r20-r25 reg. to be read */ + int nextarg_getd; /* The FP args are picked up from FPR1 -> FPR10 */ + int nbArgs; /* Number of arguments for the prolog */ }; #define JIT_SP 1 #define JIT_RET 3 -#define JIT_R0 9 -#define JIT_R1 10 -#define JIT_R2 30 /* using r8 would limit argument passing */ -#define JIT_V0 29 -#define JIT_V1 28 -#define JIT_V2 27 -#define JIT_AUX 26 /* for 32-bit operands & shift counts */ +#define JIT_R_NUM 3 +#define JIT_V_NUM 7 +#define JIT_R(i) (9+(i)) +#define JIT_V(i) (31-(i)) +#define JIT_AUX JIT_V(JIT_V_NUM) /* for 32-bit operands & shift counts */ + +#define jit_pfx_start() (_jit.jitl.trampolines) +#define jit_pfx_end() (_jit.jitl.free) /* If possible, use the `small' instruction (rd, rs, imm) * else load imm into r26 and use the `big' instruction (rd, rs, r26) @@ -58,6 +62,9 @@ #define jit_chk_imu(imm, small, big) (_uiP(16,(imm)) ? (small) : (MOVEIri(JIT_AUX, imm), (big)) ) #define jit_chk_imu15(imm, small, big) (_uiP(15,(imm)) ? (small) : (MOVEIri(JIT_AUX, imm), (big)) ) +#define jit_big_ims(imm, big) (MOVEIri(JIT_AUX, imm), (big)) +#define jit_big_imu(imm, big) (MOVEIri(JIT_AUX, imm), (big)) + /* Helper macros for branches */ #define jit_s_brai(rs, is, jmp) (jit_chk_ims (is, CMPWIri(rs, is), CMPWrr(rs, JIT_AUX)), jmp, _jit.x.pc) #define jit_s_brar(s1, s2, jmp) ( CMPWrr(s1, s2), jmp, _jit.x.pc) @@ -87,38 +94,48 @@ MULLWrrr(31, 31, JIT_AUX), SUBrrr((rs), (rs), JIT_AUX), \ MFLRr(31)) -/* Emit a 2-instruction MOVEI, even if a 1-instruction one is possible - * (it is a rare case for branches, and a fixed sequence of instructions - * is easier to patch). */ -#define jit_movei(reg, imm) (LISri(reg,_HI(imm)), ORIrri((reg),(reg),_LO(imm))) - /* Patch a movei instruction made of a LIS at lis_pc and an ORI at ori_pc. */ -#define jit_patch_movei(lis_pc, ori_pc) \ - (*(lis_pc) &= ~_MASK(16), *lis_pc |= _HI(_jit.x.pc), \ - *(ori_pc) &= ~_MASK(16), *ori_pc |= _LO(_jit.x.pc)) \ +#define jit_patch_movei(lis_pc, ori_pc, dest) \ + (*(lis_pc) &= ~_MASK(16), *(lis_pc) |= _HI(dest), \ + *(ori_pc) &= ~_MASK(16), *(ori_pc) |= _LO(dest)) \ /* Patch a branch instruction */ -#define jit_patch_branch(jump_pc) \ +#define jit_patch_branch(jump_pc,pv) \ (*(jump_pc) &= ~_MASK(16) | 3, \ - *(jump_pc) |= (_UL(_jit.x.pc) - _UL(jump_pc)) & _MASK(16)) + *(jump_pc) |= (_jit_UL(pv) - _jit_UL(jump_pc)) & _MASK(16)) +#define jit_patch_ucbranch(jump_pc,pv) \ + (*(jump_pc) &= ~_MASK(26) | 3, \ + (*(jump_pc) |= (_jit_UL((pv)) - _jit_UL(jump_pc)) & _MASK(26))) + +#define _jit_b_encoding (18 << 26) #define _jit_blr_encoding ((19 << 26) | (20 << 21) | (00 << 16) | (00 << 11) | (16 << 1)) +#define _jit_is_ucbranch(a) (((*(a) & (63<<26)) == _jit_b_encoding)) -#define jit_patch(jump_pc) ( \ +#define jit_patch_at(jump_pc, value) ( \ ((*(jump_pc - 1) & ~1) == _jit_blr_encoding) \ - ? jit_patch_movei(((jump_pc) - 4), ((jump_pc) - 3)) \ - : jit_patch_branch((jump_pc) - 1)) - + ? jit_patch_movei(((jump_pc) - 4), ((jump_pc) - 3), (value)) \ + : ( _jit_is_ucbranch((jump_pc) - 1) \ + ? jit_patch_ucbranch((jump_pc) - 1, (value)) \ + : jit_patch_branch((jump_pc) - 1, (value)))) + +#define jit_patch_movi(movi_pc, val) \ + jit_patch_movei((movi_pc) - 2, (movi_pc) - 1, (val)) + +#define jit_arg_c() (_jitl.nextarg_geti--) +#define jit_arg_i() (_jitl.nextarg_geti--) +#define jit_arg_l() (_jitl.nextarg_geti--) +#define jit_arg_p() (_jitl.nextarg_geti--) +#define jit_arg_s() (_jitl.nextarg_geti--) +#define jit_arg_uc() (_jitl.nextarg_geti--) +#define jit_arg_ui() (_jitl.nextarg_geti--) +#define jit_arg_ul() (_jitl.nextarg_geti--) +#define jit_arg_us() (_jitl.nextarg_geti--) + +/* Check Mach-O-Runtime documentation: Must skip GPR(s) whenever "corresponding" FPR is used */ +#define jit_arg_f() (_jitl.nextarg_geti-- ,_jitl.nextarg_getd++) +#define jit_arg_d() (_jitl.nextarg_geti-=2,_jitl.nextarg_getd++) -#define jit_arg_c() (_jitl.nextarg_get--) -#define jit_arg_i() (_jitl.nextarg_get--) -#define jit_arg_l() (_jitl.nextarg_get--) -#define jit_arg_p() (_jitl.nextarg_get--) -#define jit_arg_s() (_jitl.nextarg_get--) -#define jit_arg_uc() (_jitl.nextarg_get--) -#define jit_arg_ui() (_jitl.nextarg_get--) -#define jit_arg_ul() (_jitl.nextarg_get--) -#define jit_arg_us() (_jitl.nextarg_get--) #define jit_addi_i(d, rs, is) jit_chk_ims((is), ADDICrri((d), (rs), (is)), ADDrrr((d), (rs), JIT_AUX)) #define jit_addr_i(d, s1, s2) ADDrrr((d), (s1), (s2)) #define jit_addci_i(d, rs, is) jit_chk_ims((is), ADDICrri((d), (rs), (is)), ADDCrrr((d), (rs), JIT_AUX)) @@ -159,11 +176,12 @@ #define jit_bosubi_ui(label, rs, is) (jit_chk_ims ((is), SUBICri((rs), (rs), is), SUBCrr((rs), JIT_AUX)), MCRXRi(0), BEQi((label)), _jit.x.pc) #define jit_boaddr_ui(label, s1, s2) ( ADDCrr((s1), (s1), (s2)), MCRXRi(0), BEQi((label)), _jit.x.pc) #define jit_bosubr_ui(label, s1, s2) ( SUBCrr((s1), (s1), (s2)), MCRXRi(0), BEQi((label)), _jit.x.pc) -#define jit_calli(label) (jit_movei(JIT_AUX, (label)), MTLRr(JIT_AUX), BLRL(), _jit.x.pc) -#define jit_divi_i(d, rs, is) jit_chk_ims(1111111, 0, DIVWrrr ((d), (rs), JIT_AUX)) -#define jit_divi_ui(d, rs, is) jit_chk_imu(1111111, 0, DIVWUrrr((d), (rs), JIT_AUX)) -#define jit_divr_i(d, s1, s2) DIVWrrr ((d), (s1), (s2)) -#define jit_divr_ui(d, s1, s2) DIVWUrrr((d), (s1), (s2)) +#define jit_calli(label) (jit_movi_p(JIT_AUX, (label)), MTCTRr(JIT_AUX), BCTRL(), _jitl.nextarg_puti = _jitl.nextarg_putf = _jitl.nextarg_putd = 0, _jit.x.pc) +#define jit_callr(reg) (MTCTRr(reg), BCTRL()) +#define jit_divi_i(d, rs, is) jit_big_ims((is), DIVWrrr ((d), (rs), JIT_AUX)) +#define jit_divi_ui(d, rs, is) jit_big_imu((is), DIVWUrrr((d), (rs), JIT_AUX)) +#define jit_divr_i(d, s1, s2) DIVWrrr ((d), (s1), (s2)) +#define jit_divr_ui(d, s1, s2) DIVWUrrr((d), (s1), (s2)) #define jit_eqi_i(d, rs, is) (jit_chk_ims((is), SUBIrri(JIT_AUX, (rs), (is)), SUBrrr(JIT_AUX, (rs), JIT_AUX)), SUBFICrri((d), JIT_AUX, 0), ADDErrr((d), (d), JIT_AUX)) #define jit_eqr_i(d, s1, s2) (SUBrrr(JIT_AUX, (s1), (s2)), SUBFICrri((d), JIT_AUX, 0), ADDErrr((d), (d), JIT_AUX)) #define jit_extr_c_i(d, rs) EXTSBrr((d), (rs)) @@ -176,8 +194,8 @@ #define jit_gti_ui(d, rs, is) jit_ubooli ((d), (rs), (is), _gt) #define jit_gtr_i(d, s1, s2) jit_sboolr ((d), (s1), (s2), _gt) #define jit_gtr_ui(d, s1, s2) jit_uboolr ((d), (s1), (s2), _gt) -#define jit_hmuli_i(d, rs, is) jit_chk_ims(1111111, 0, MULHWrrr ((d), (rs), JIT_AUX)) -#define jit_hmuli_ui(d, rs, is) jit_chk_imu(1111111, 0, MULHWUrrr((d), (rs), JIT_AUX)) +#define jit_hmuli_i(d, rs, is) jit_big_ims((is), MULHWrrr ((d), (rs), JIT_AUX)) +#define jit_hmuli_ui(d, rs, is) jit_big_imu((is), MULHWUrrr((d), (rs), JIT_AUX)) #define jit_hmulr_i(d, s1, s2) MULHWrrr ((d), (s1), (s2)) #define jit_hmulr_ui(d, s1, s2) MULHWUrrr((d), (s1), (s2)) #define jit_jmpi(label) (B_EXT((label)), _jit.x.pc) @@ -197,16 +215,18 @@ #define jit_ler_i(d, s1, s2) jit_sboolr2((d), (s1), (s2), _gt ) #define jit_ler_ui(d, s1, s2) jit_uboolr2((d), (s1), (s2), _gt ) #define jit_lshi_i(d, rs, is) SLWIrri((d), (rs), (is)) -#define jit_lshr_i(d, s1, s2) (ANDIrri(JIT_AUX, (s2), 31), SLWrrr ((d), (s1), JIT_AUX)) +#define jit_lshr_i(d, s1, s2) (ANDI_rri(JIT_AUX, (s2), 31), SLWrrr ((d), (s1), JIT_AUX)) #define jit_lti_i(d, rs, is) jit_sbooli ((d), (rs), (is), _lt ) #define jit_lti_ui(d, rs, is) jit_ubooli ((d), (rs), (is), _lt ) #define jit_ltr_i(d, s1, s2) jit_sboolr ((d), (s1), (s2), _lt ) #define jit_ltr_ui(d, s1, s2) jit_uboolr ((d), (s1), (s2), _lt ) -#define jit_modi_i(d, rs, is) _jit_mod(jit_divi_i (31, (rs), JIT_AUX), (is)) -#define jit_modi_ui(d, rs, is) _jit_mod(jit_divi_ui(31, (rs), JIT_AUX), (irs)) +#define jit_modi_i(d, rs, is) _jit_mod(jit_divi_i (31, (rs), JIT_AUX), (rs), (is)) +#define jit_modi_ui(d, rs, is) _jit_mod(jit_divi_ui(31, (rs), JIT_AUX), (rs), (is)) #define jit_modr_i(d, s1, s2) (DIVWrrr(JIT_AUX, (s1), (s2)), MULLWrrr(JIT_AUX, JIT_AUX, (s2)), SUBrrr((d), (s1), JIT_AUX)) #define jit_modr_ui(d, s1, s2) (DIVWUrrr(JIT_AUX, (s1), (s2)), MULLWrrr(JIT_AUX, JIT_AUX, (s2)), SUBrrr((d), (s1), JIT_AUX)) #define jit_movi_i(d, is) MOVEIri((d), (is)) +#define jit_movi_p(d, is) (LISri((d), _HI((is))),ORIrri((d),(d),_LO((is))),_jit.x.pc) + #define jit_movr_i(d, rs) MRrr((d), (rs)) #define jit_muli_i(d, rs, is) jit_chk_ims ((is), MULLIrri((d), (rs), (is)), MULLWrrr((d), (rs), JIT_AUX)) #define jit_muli_ui(d, rs, is) jit_chk_imu15((is), MULLIrri((d), (rs), (is)), MULLWrrr((d), (rs), JIT_AUX)) @@ -218,17 +238,19 @@ #define jit_ori_i(d, rs, is) jit_chk_imu((is), ORIrri((d), (rs), (is)), ORrrr((d), (rs), JIT_AUX)) #define jit_orr_i(d, s1, s2) ORrrr((d), (s1), (s2)) #define jit_popr_i(rs) (LWZrm((rs), 0, 1), ADDIrri(1, 1, 4)) -#define jitfp_prepare(numi, numf, numd) (_jitl.nextarg_put = 3 + (numi) + (numf) + 2*(numd)) +#define jit_prepare_i(numi) (_jitl.nextarg_puti = numi) +#define jit_prepare_f(numf) (_jitl.nextarg_putf = numf) +#define jit_prepare_d(numd) (_jitl.nextarg_putd = numd) #define jit_prolog(n) _jit_prolog(&_jit, (n)) #define jit_pushr_i(rs) STWUrm((rs), -4, 1) -#define jit_pusharg_i(rs) (--_jitl.nextarg_put, MRrr(_jitl.nextarg_put, (rs))) -#define jit_ret() jit_jmpr(31) -#define jit_retval(rd) MRrr((rd), 3) +#define jit_pusharg_i(rs) (--_jitl.nextarg_puti, MRrr((3 + _jitl.nextarg_putd * 2 + _jitl.nextarg_putf + _jitl.nextarg_puti), (rs))) +#define jit_ret() _jit_epilog(&_jit) +#define jit_retval_i(rd) MRrr((rd), 3) #define jit_rsbi_i(d, rs, is) jit_chk_ims((is), SUBFICrri((d), (rs), (is)), SUBFCrrr((d), (rs), JIT_AUX)) #define jit_rshi_i(d, rs, is) SRAWIrri((d), (rs), (is)) #define jit_rshi_ui(d, rs, is) SRWIrri ((d), (rs), (is)) -#define jit_rshr_i(d, s1, s2) (ANDIrrr(JIT_AUX, (s2), 31), SRAWrrr ((d), (s1), JIT_AUX)) -#define jit_rshr_ui(d, s1, s2) (ANDIrrr(JIT_AUX, (s2), 31), SRWrrr ((d), (s1), JIT_AUX)) +#define jit_rshr_i(d, s1, s2) (ANDI_rri(JIT_AUX, (s2), 31), SRAWrrr ((d), (s1), JIT_AUX)) +#define jit_rshr_ui(d, s1, s2) (ANDI_rri(JIT_AUX, (s2), 31), SRWrrr ((d), (s1), JIT_AUX)) #define jit_stxi_c(id, rd, rs) jit_chk_ims((id), STBrm((rs), (id), (rd)), STBrx((rs), (rd), JIT_AUX)) #define jit_stxi_i(id, rd, rs) jit_chk_ims((id), STWrm((rs), (id), (rd)), STWrx((rs), (rd), JIT_AUX)) #define jit_stxi_s(id, rd, rs) jit_chk_ims((id), STHrm((rs), (id), (rd)), STHrx((rs), (rd), JIT_AUX)) @@ -237,8 +259,8 @@ #define jit_stxr_s(d1, d2, rs) STHrx((rs), (d1), (d2)) #define jit_subr_i(d, s1, s2) SUBrrr((d), (s1), (s2)) #define jit_subcr_i(d, s1, s2) SUBCrrr((d), (s1), (s2)) -#define jit_subxi_i(d, rs, is) jit_chk_ims(111111111, 0, SUBErrr((d), (rs), JIT_AUX)) -#define jit_subxr_i(d, s1, s2) SUBErrr((d), (s1), (s2)) +#define jit_subxi_i(d, rs, is) jit_big_ims((is), SUBErrr((d), (rs), JIT_AUX)) +#define jit_subxr_i(d, s1, s2) SUBErrr((d), (s1), (s2)) #define jit_xori_i(d, rs, is) jit_chk_imu((is), XORIrri((d), (rs), (is)), XORrrr((d), (rs), JIT_AUX)) #define jit_xorr_i(d, s1, s2) XORrrr((d), (s1), (s2)) @@ -261,8 +283,8 @@ * 0x01234567 _HA << 16 = 0x01230000 _LA = 0x00004567 _HA << 16 + LA = 0x01234567 * 0x89abcdef _HA << 16 = 0x89ac0000 _LA = 0xffffcdef _HA << 16 + LA = 0x89abcdef */ -#define _HA(addr) ((_UL(addr) >> 16) + (_US(_UL(addr)) >> 15)) -#define _LA(addr) (_UL(addr) - (_HA(addr) << 16)) +#define _HA(addr) ((_jit_UL(addr) >> 16) + (_jit_US(_jit_UL(addr)) >> 15)) +#define _LA(addr) (_jit_UL(addr) - (_HA(addr) << 16)) #define jit_ldi_c(rd, is) (LISri(JIT_AUX, _HA(is)), jit_ldxi_c((rd), JIT_AUX, _LA(is))) #define jit_sti_c(id, rs) (LISri(JIT_AUX, _HA(id)), jit_stxi_c(_LA(id), JIT_AUX, (rs))) diff -rNu smalltalk-2.1.9/lightning/ppc/fp.h smalltalk-2.1.10/lightning/ppc/fp.h --- smalltalk-2.1.9/lightning/ppc/fp.h 2003-12-13 11:11:23.000000000 +0100 +++ smalltalk-2.1.10/lightning/ppc/fp.h 2004-11-25 15:19:18.000000000 +0100 @@ -35,70 +35,177 @@ #ifndef __lightning_asm_fp_h #define __lightning_asm_fp_h -#if 0 -/* dummy for now */ +#define JIT_FPR_NUM 6 +#define JIT_FPR(i) (8+(i)) -#define jit_add_two(reg0) FADDrrr(13 - (reg0), 13 - (reg0), 12 - (reg0)) -#define jit_sub_two(reg0) FSUBrrr(13 - (reg0), 13 - (reg0), 12 - (reg0)) -#define jit_mul_two(reg0) FMULrrr(13 - (reg0), 13 - (reg0), 12 - (reg0)) -#define jit_div_two(reg0) FDIVrrr(13 - (reg0), 13 - (reg0), 12 - (reg0)) - -#define jit_abs(reg0) FABSr(13 - (reg0)) -#define jit_sqrt(reg0) FSQRTr(13 - (reg0)) -#define jit_neg(reg0) FNEGr(13 - (reg0)) - -#define jit_ldxi_f(reg0, rs, is) 0 -#define jit_ldxr_f(reg0, s1, s2) 0 -#define jit_ldxi_d(reg0, rs, is) 0 -#define jit_ldxr_d(reg0, s1, s2) 0 -#define jit_ldi_f(reg0, is) 0 -#define jit_ldr_f(reg0, rs) 0 -#define jit_ldi_d(reg0, is) 0 -#define jit_ldr_d(reg0, rs) 0 -#define jit_stxi_f(id, rd, reg0) 0 -#define jit_stxr_f(d1, d2, reg0) 0 -#define jit_stxi_d(id, rd, reg0) 0 -#define jit_stxr_d(d1, d2, reg0) 0 -#define jit_sti_f(id, reg0) 0 -#define jit_str_f(rd, reg0) 0 -#define jit_sti_d(id, reg0) 0 -#define jit_str_d(rd, reg0) 0 +#define JIT_FPFR 0 /* Make space for 1 or 2 words, store address in REG */ -#define jit_data(REG, D1) (_FBA (18, 8, 0, 1), _L(D1), MFLRr(REG)) -#define jit_data2(REG, D1, D2) (_FBA (18, 12, 0, 1), _L(D1), _L(D2), MFLRr(REG)) +#define jit_data(REG, D1) (_FBA (18, 8, 0, 1), _jit_L(D1), MFLRr(REG)) -#define jit_fpimm(reg0, first, second) \ - (jit_data2(JIT_AUX, (first), (second)), \ - jit_ldxi_d((reg0), JIT_AUX, 0)) - -#define jit_floor(rd, reg0) jit_call_fp((rd), (reg0), floor) -#define jit_ceil(rd, reg0) jit_call_fp((rd), (reg0), ceil) - -#define jit_call_fp(rd, reg0, fn) \ - jit_fail(#fn " not supported", __FILE__, __LINE__, __FUNCTION__) -/* pass reg0 as first parameter of rd - bl fn - mr r3, rd */ - -#define jit_trunc(rd, reg0) (jit_data((rd), 0), \ - FCTIWZrr(13 - (reg0), 13 - (reg0)), \ - STFIWXrrr(13 - (reg0), 0, (rd)), \ - LWZrm((rd), 0, (rd))) - -#define jit_round(rd, reg0) (jit_data((rd), 0), \ - FCTIWrr(13 - (reg0), 13 - (reg0)), \ - STFIWXrrr(13 - (reg0), 0, (rd)), \ - LWZrm((rd), 0, (rd))) - -#define jit_cmp(le, ge, reg0) (FCMPOirr(7, 13 - (reg0), 0), \ - CRORiii(28 + _gt, 28 + _gt, 28 + _eq), \ - CRORiii(28 + _lt, 28 + _lt, 28 + _eq), \ - MFCRr((ge)), \ - EXTRWIrrii((le), (ge), 1, 28 + _lt), \ - EXTRWIrrii((ge), (ge), 1, 28 + _gt)) - -#endif +#define jit_addr_d(rd,s1,s2) FADDDrrr((rd),(s1),(s2)) +#define jit_subr_d(rd,s1,s2) FSUBDrrr((rd),(s1),(s2)) +#define jit_mulr_d(rd,s1,s2) FMULDrrr((rd),(s1),(s2)) +#define jit_divr_d(rd,s1,s2) FDIVDrrr((rd),(s1),(s2)) + +#define jit_addr_f(rd,s1,s2) FADDSrrr((rd),(s1),(s2)) +#define jit_subr_f(rd,s1,s2) FSUBSrrr((rd),(s1),(s2)) +#define jit_mulr_f(rd,s1,s2) FMULSrrr((rd),(s1),(s2)) +#define jit_divr_f(rd,s1,s2) FDIVSrrr((rd),(s1),(s2)) + +#define jit_movr_d(rd,rs) ( (rd) == (rs) ? 0 : FMOVErr((rd),(rs))) +#define jit_movi_d(reg0,d) do { \ + double _v = (d); \ + _FBA (18, 12, 0, 1); \ + memcpy(_jit.x.uc_pc, &_v, sizeof (double)); \ + _jit.x.uc_pc += sizeof (double); \ + MFLRr (JIT_AUX); \ + jit_ldxi_d((reg0), JIT_AUX, 0); \ + } while(0) + + +#define jit_movr_f(rd,rs) ( (rd) == (rs) ? 0 : FMOVErr((rd),(rs))) +#define jit_movi_f(reg0,f) do { \ + float _v = (f); \ + _FBA (18, 8, 0, 1); \ + memcpy(_jit.x.uc_pc, &_v, sizeof (float)); \ + _jit.x.uc_pc += sizeof (float); \ + MFLRr (JIT_AUX); \ + jit_ldxi_f((reg0), JIT_AUX, 0); \ + } while(0) + + +#define jit_abs_d(rd,rs) FABSrr((rd),(rs)) +#define jit_negr_d(rd,rs) FNEGrr((rd),(rs)) +#define jit_sqrt_d(rd,rs) FSQRTDrr((rd),(rs)) + + +#define jit_ldxi_f(reg0, rs, is) (_siP(16,(is)) ? LFSrri((reg0),(rs),(is)) : (MOVEIri(JIT_AUX,(is)),LFSxrrr((reg0),(rs),JIT_AUX))) +#define jit_ldxi_d(reg0, rs, is) (_siP(16,(is)) ? LFDrri((reg0),(rs),(is)) : (MOVEIri(JIT_AUX,(is)),LFDxrrr((reg0),(rs),JIT_AUX))) +#define jit_ldxr_f(reg0, s1, s2) LFSxrrr((reg0),(s1),(s2)) +#define jit_ldxr_d(reg0, s1, s2) LFDxrrr((reg0),(s1),(s2)) +#define jit_ldi_f(reg0, is) (_siP(16,(is)) ? LFSrri((reg0),0,(is)) : (MOVEIri(JIT_AUX,(is)),LFSrri((reg0),JIT_AUX,0))) +#define jit_ldi_d(reg0, is) (_siP(16,(is)) ? LFDrri((reg0),0,(is)) : (MOVEIri(JIT_AUX,(is)),LFDrri((reg0),JIT_AUX,0))) +#define jit_ldr_f(reg0, rs) LFSrri((reg0),(rs),0) +#define jit_ldr_d(reg0, rs) LFDrri((reg0),(rs),0) +#define jit_stxi_f(id, rd, reg0) (_siP(16,(id)) ? STFSrri((reg0),(rd),(id)) : (MOVEIri(JIT_AUX,(id)),STFSrri((reg0),(rd),JIT_AUX))) +#define jit_stxi_d(id, rd, reg0) (_siP(16,(id)) ? STFDrri((reg0),(rd),(id)) : (MOVEIri(JIT_AUX,(id)),STFDrri((reg0),(rd),JIT_AUX))) +#define jit_stxr_f(d1, d2, reg0) STFSxrrr((reg0),(d1),(d2)) +#define jit_stxr_d(d1, d2, reg0) STFDxrrr((reg0),(d1),(d2)) +#define jit_sti_f(id, reg0) (_siP(16,(id)) ? STFSrri((reg0),0,(id)) : (MOVEIri(JIT_AUX,(id)),STFSrri((reg0),JIT_AUX,0))) +#define jit_sti_d(id, reg0) (_siP(16,(id)) ? STFDrri((reg0),0,(id)) : (MOVEIri(JIT_AUX,(id)),STFDrri((reg0),JIT_AUX,0))) +#define jit_str_f(rd, reg0) STFSrri((reg0),(rd),0) +#define jit_str_d(rd, reg0) STFDrri((reg0),(rd),0) + +#define jit_fpboolr(d, s1, s2, rcbit) ( \ + FCMPOrrr(_cr0,(s1),(s2)), \ + MFCRr((d)), \ + EXTRWIrrii((d), (d), 1, (rcbit))) + +#define jit_fpboolr_neg(d, s1, s2,rcbit) ( \ + FCMPOrrr(_cr0,(s1),(s2)), \ + MFCRr((d)), \ + EXTRWIrrii((d), (d), 1, (rcbit)), \ + XORIrri((d), (d), 1)) + +#define jit_fpboolur(d, s1, s2, rcbit) ( \ + FCMPUrrr(_cr0,(s1),(s2)), \ + MFCRr((d)), \ + EXTRWIrrii((d), (d), 1, (rcbit))) + +#define jit_fpboolur_neg(d, s1, s2,rcbit) ( \ + FCMPUrrr(_cr0,(s1),(s2)), \ + MFCRr((d)), \ + EXTRWIrrii((d), (d), 1, (rcbit)), \ + XORIrri((d), (d), 1)) + +#define jit_fpboolur_or(d, s1, s2, bit1, bit2) (\ + FCMPUrrr(_cr0,(s1),(s2)), \ + CRORiii((bit1), (bit1), (bit2)), \ + MFCRr((d)), \ + EXTRWIrrii((d), (d), 1, (bit1))) + +#define jit_gtr_d(d, s1, s2) jit_fpboolr ((d),(s1),(s2),_gt) +#define jit_ger_d(d, s1, s2) jit_fpboolr_neg((d),(s1),(s2),_lt) +#define jit_ltr_d(d, s1, s2) jit_fpboolr ((d),(s1),(s2),_lt) +#define jit_ler_d(d, s1, s2) jit_fpboolr_neg((d),(s1),(s2),_gt) +#define jit_eqr_d(d, s1, s2) jit_fpboolr ((d),(s1),(s2),_eq) +#define jit_ner_d(d, s1, s2) jit_fpboolr_neg((d),(s1),(s2),_eq) +#define jit_unordr_d(d, s1, s2) jit_fpboolur ((d),(s1),(s2),_un) +#define jit_ordr_d(d, s1, s2) jit_fpboolur_neg((d),(s1),(s2),_un) +#define jit_unler_d(d, s1, s2) jit_fpboolur_neg ((d), (s1), (s2), _gt) +#define jit_unltr_d(d, s1, s2) jit_fpboolur_or ((d), (s1), (s2), _un, _lt) +#define jit_unger_d(d, s1, s2) jit_fpboolur_neg ((d), (s1), (s2), _lt) +#define jit_ungtr_d(d, s1, s2) jit_fpboolur_or ((d), (s1), (s2), _un, _gt) +#define jit_ltgtr_d(d, s1, s2) jit_fpboolur_or ((d), (s1), (s2), _gt, _lt) +#define jit_uneqr_d(d, s1, s2) jit_fpboolur_or ((d), (s1), (s2), _un, _eq) + +#define jit_fpbr(d, s1, s2, rcbit) ( \ + FCMPOrrr(_cr0,(s1),(s2)), \ + BTii ((rcbit), (d))) + +#define jit_fpbr_neg(d, s1, s2,rcbit) ( \ + FCMPOrrr(_cr0,(s1),(s2)), \ + BFii ((rcbit), (d))) + +#define jit_fpbur(d, s1, s2, rcbit) ( \ + FCMPUrrr(_cr0,(s1),(s2)), \ + BTii ((rcbit), (d))) + +#define jit_fpbur_neg(d, s1, s2,rcbit) ( \ + FCMPUrrr(_cr0,(s1),(s2)), \ + BFii ((rcbit), (d))) + +#define jit_fpbur_or(d, s1, s2, bit1, bit2) ( \ + FCMPUrrr(_cr0,(s1),(s2)), \ + CRORiii((bit1), (bit1), (bit2)), \ + BTii ((bit1), (d))) + +#define jit_bgtr_d(d, s1, s2) jit_fpbr ((d),(s1),(s2),_gt) +#define jit_bger_d(d, s1, s2) jit_fpbr_neg((d),(s1),(s2),_lt) +#define jit_bltr_d(d, s1, s2) jit_fpbr ((d),(s1),(s2),_lt) +#define jit_bler_d(d, s1, s2) jit_fpbr_neg((d),(s1),(s2),_gt) +#define jit_beqr_d(d, s1, s2) jit_fpbr ((d),(s1),(s2),_eq) +#define jit_bner_d(d, s1, s2) jit_fpbr_neg((d),(s1),(s2),_eq) +#define jit_bunordr_d(d, s1, s2) jit_fpbur ((d),(s1),(s2),_un) +#define jit_bordr_d(d, s1, s2) jit_fpbur_neg((d),(s1),(s2),_un) +#define jit_bunler_d(d, s1, s2) jit_fpbur_neg ((d), (s1), (s2), _gt) +#define jit_bunltr_d(d, s1, s2) jit_fpbur_or ((d), (s1), (s2), _un, _lt) +#define jit_bunger_d(d, s1, s2) jit_fpbur_neg ((d), (s1), (s2), _lt) +#define jit_bungtr_d(d, s1, s2) jit_fpbur_or ((d), (s1), (s2), _un, _gt) +#define jit_bltgtr_d(d, s1, s2) jit_fpbur_or ((d), (s1), (s2), _gt, _lt) +#define jit_buneqr_d(d, s1, s2) jit_fpbur_or ((d), (s1), (s2), _un, _eq) + +#define jit_getarg_f(rd, ofs) jit_movr_f((rd),(ofs)) +#define jit_getarg_d(rd, ofs) jit_movr_d((rd),(ofs)) +#define jit_pusharg_d(rs) (_jitl.nextarg_putd--,jit_movr_d((_jitl.nextarg_putf+_jitl.nextarg_putd+1), (rs))) +#define jit_pusharg_f(rs) (_jitl.nextarg_putf--,jit_movr_f((_jitl.nextarg_putf+_jitl.nextarg_putd+1), (rs))) +#define jit_retval_d(op1) jit_movr_d(1, (op1)) +#define jit_retval_f(op1) jit_movr_f(1, (op1)) + + +#define jit_floorr_d_i(rd,rs) (MTFSFIri(7,3), \ + FCTIWrr(7,(rs)), \ + MOVEIri(JIT_AUX,-4), \ + STFIWXrrr(7,JIT_SP,JIT_AUX), \ + LWZrm((rd),-4,JIT_SP)) + +#define jit_ceilr_d_i(rd,rs) (MTFSFIri(7,2), \ + FCTIWrr(7,(rs)), \ + MOVEIri(JIT_AUX,-4), \ + STFIWXrrr(7,JIT_SP,JIT_AUX), \ + LWZrm((rd),-4,JIT_SP)) + +#define jit_roundr_d_i(rd,rs) (MTFSFIri(7,0), \ + FCTIWrr(7,(rs)), \ + MOVEIri(JIT_AUX,-4), \ + STFIWXrrr(7,JIT_SP,JIT_AUX), \ + LWZrm((rd),-4,JIT_SP)) + +#define jit_truncr_d_i(rd,rs) (FCTIWZrr(7,(rs)), \ + MOVEIri(JIT_AUX,-4), \ + STFIWXrrr(7,JIT_SP,JIT_AUX), \ + LWZrm((rd),-4,JIT_SP)) #endif /* __lightning_asm_h */ diff -rNu smalltalk-2.1.9/lightning/ppc/funcs.h smalltalk-2.1.10/lightning/ppc/funcs.h --- smalltalk-2.1.9/lightning/ppc/funcs.h 2003-12-13 11:11:23.000000000 +0100 +++ smalltalk-2.1.10/lightning/ppc/funcs.h 2004-11-25 15:19:18.000000000 +0100 @@ -7,7 +7,7 @@ /*********************************************************************** * - * Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + * Copyright 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. * Written by Paolo Bonzini. * * This file is part of GNU lightning. @@ -65,17 +65,17 @@ break; } - start -= ((long) start) & (cache_line_size - 1); - end -= ((long) end) & (cache_line_size - 1); + start = (void *) (((long) start) & ~(cache_line_size - 1)); + end = (void *) (((long) end) & ~(cache_line_size - 1)); /* Force data cache write-backs */ - for (ddest = start; ddest <= (char *) end; ddest += cache_line_size) { + for (ddest = (char *) start; ddest <= (char *) end; ddest += cache_line_size) { __asm__ __volatile__ ("dcbst 0,%0" : : "r"(ddest)); } __asm__ __volatile__ ("sync" : : ); /* Now invalidate the instruction cache */ - for (idest = start; idest <= (char *) end; idest += cache_line_size) { + for (idest = (char *) start; idest <= (char *) end; idest += cache_line_size) { __asm__ __volatile__ ("icbi 0,%0" : : "r"(idest)); } __asm__ __volatile__ ("isync" : : ); @@ -85,75 +85,78 @@ #define _jit (*jit) -/* Emit a trampoline for a function. - * Upon entrance to the trampoline: - * - R0 = return address for the function - * - LR = address where the real code for the function lies - * - R3-R8 = parameters - * After jumping to the address pointed to by R10: - * - LR = address where the epilog lies (the function must return there) - * - R25-R20 = parameters (order is reversed, 1st argument is R25) - */ -static jit_insn * -_jit_trampoline(jit, n) - register jit_state *jit; - register int n; +static void +_jit_epilog(jit_state *jit) { - static jit_insn trampolines[200]; - static jit_insn *p_trampolines[6], *free = trampolines; - jit_insn *trampo; - int i, ofs, frame_size; - - if (!p_trampolines[n]) { - _jit.x.pc = trampo = p_trampolines[n] = free; - - frame_size = 24 + (6 + n) * 4; /* r26..r31 + args */ - frame_size += 15; /* the stack must be quad-word */ - frame_size &= ~15; /* aligned */ - - STWUrm(1, -frame_size, 1); /* stwu r1, -x(r1) */ - - for (ofs = frame_size - (6 + n) * 4, i = 26 - n; i <= 31; ofs += 4, i++) { - STWrm(i, ofs, 1); /* stw rI, ofs(r1) */ - } - STWrm(0, ofs+4, 1); /* stw r0, x(r1) */ - for (i = 0; i < n; i++) { - MRrr(25-i, 3+i); /* save parameters in r25..r20 */ - } - BLRL(); /* blrl */ - LWZrm(0, ofs+4, 1); /* lwz r0, x(r1) (ret.addr.) */ - MTLRr(0); /* mtspr LR, r0 */ - - for (ofs = frame_size - (6 + n) * 4, i = 26 - n; i <= 31; ofs += 4, i++) { - LWZrm(i, ofs, 1); /* lwz rI, ofs(r1) */ - } - ADDIrri(1, 1, frame_size); /* addi r1, r1, x */ - BLR(); /* blr */ - - jit_flush_code(trampo, _jit.x.pc); - free = _jit.x.pc; - } + int n = _jitl.nbArgs; + int frame_size, ofs; + int first_saved_reg = JIT_AUX - n; + int num_saved_regs = 32 - first_saved_reg; + + frame_size = 24 + 32 + num_saved_regs * 4; /* r24..r31 + args */ + frame_size += 15; /* the stack must be quad-word */ + frame_size &= ~15; /* aligned */ - return p_trampolines[n]; +#ifdef _CALL_DARWIN + LWZrm(0, frame_size + 8, 1); /* lwz r0, x+8(r1) (ret.addr.) */ +#else + LWZrm(0, frame_size + 4, 1); /* lwz r0, x+4(r1) (ret.addr.) */ +#endif + MTLRr(0); /* mtspr LR, r0 */ + + ofs = frame_size - num_saved_regs * 4; + LMWrm(first_saved_reg, ofs, 1); /* lmw rI, ofs(r1) */ + ADDIrri(1, 1, frame_size); /* addi r1, r1, x */ + BLR(); /* blr */ } +/* Emit a prolog for a function. + Upon entrance to the trampoline: + - LR = address where the real code for the function lies + - R3-R8 = parameters + Upon finishing the trampoline: + - R0 = return address for the function + - R25-R20 = parameters (order is reversed, 1st argument is R25) + + The +32 in frame_size computation is to accound for the parameter area of + a function frame. + + On PPC the frame must have space to host the arguments of any callee. + However, as it currently stands, the argument to jit_trampoline (n) is + the number of arguments of the caller we generate. Therefore, the + callee can overwrite a part of the stack (saved register area when it + flushes its own parameter on the stack. The addition of a constant + offset = 32 is enough to hold eight 4 bytes arguments. This is less + than perfect but is a reasonable work around for now. + Better solution must be investigated. */ static void -_jit_prolog(jit, n) - register jit_state *jit; - register int n; +_jit_prolog(jit_state *jit, int n) { - register jit_insn *save_pc, *trampo; + int frame_size; + int ofs, i; + int first_saved_reg = JIT_AUX - n; + int num_saved_regs = 32 - first_saved_reg; + + _jitl.nextarg_geti = JIT_AUX - 1; + _jitl.nextarg_getd = 1; + _jitl.nbArgs = n; + + frame_size = 24 + 32 + num_saved_regs * 4; /* r27..r31 + args */ + frame_size += 15; /* the stack must be quad-word */ + frame_size &= ~15; /* aligned */ - save_pc = _jit.x.pc; - trampo = _jit_trampoline(jit, n); - _jit.x.pc = save_pc; - - _jitl.nextarg_get = 25; MFLRr(0); - MOVEIri(10, trampo); - MTLRr(10); - BLRL(); /* blrl */ - MFLRr(31); /* mflr r31 */ + STWUrm(1, -frame_size, 1); /* stwu r1, -x(r1) */ + + ofs = frame_size - num_saved_regs * 4; + STMWrm(first_saved_reg, ofs, 1); /* stmw rI, ofs(r1) */ +#ifdef _CALL_DARWIN + STWrm(0, frame_size + 8, 1); /* stw r0, x+8(r1) */ +#else + STWrm(0, frame_size + 4, 1); /* stw r0, x+4(r1) */ +#endif + for (i = 0; i < n; i++) + MRrr(JIT_AUX-1-i, 3+i); /* save parameters below r24 */ } #undef _jit diff -rNu smalltalk-2.1.9/lightning/sparc/asm.h smalltalk-2.1.10/lightning/sparc/asm.h --- smalltalk-2.1.9/lightning/sparc/asm.h 2003-12-13 11:11:23.000000000 +0100 +++ smalltalk-2.1.10/lightning/sparc/asm.h 2004-11-25 15:19:18.000000000 +0100 @@ -49,11 +49,12 @@ typedef unsigned int jit_insn; -#define _d30(BD) ((_UL(BD) - _UL(_jit.x.pc))>>2) +#ifndef LIGHTNING_DEBUG +#define _d30(BD) ((_jit_UL(BD) - _jit_UL(_jit.x.pc))>>2) #define _d22(BD) _ck_d(22, _d30(BD)) -#define _HI(I) (_UL(I) >> (10)) -#define _LO(I) (_UL(I) & _MASK(10)) +#define _HI(I) (_jit_UL(I) >> (10)) +#define _LO(I) (_jit_UL(I) & _MASK(10)) /* register names */ @@ -69,18 +70,21 @@ /* instruction formats -- Figure 5-1, page 44 in */ /* SPARC International, "The SPARC Architecture Manual, Version 8", Prentice-Hall, 1992. */ -#define _0i(RD, OP2, IMM) _I((0<<30)| (_u5(RD)<<25)|(_u3(OP2)<<22)| _u22(IMM)) -#define _0( A, CC, OP2, DSP) _I((0<<30)|(_u1(A)<<29)|(_u4(CC)<<25)|(_u3(OP2)<<22)| _d22(DSP)) -#define _0d( A, CC, OP2, DSP) _I((0<<30)|(_u1(A)<<29)|(_u4(CC)<<25)|(_u3(OP2)<<22)| _u22(DSP)) - -#define _1( DSP) _I((1<<30)| _d30(DSP)) - -#define _2( RD, OP3, RS1, I, ASI, RS2) _I((2<<30)| (_u5(RD)<<25)|(_u6(OP3)<<19)|(_u5(RS1)<<14)|(_u1(I)<<13)|(_u8(ASI)<<5)|_u5 (RS2)) -#define _2i(RD, OP3, RS1, I, IMM) _I((2<<30)| (_u5(RD)<<25)|(_u6(OP3)<<19)|(_u5(RS1)<<14)|(_u1(I)<<13)| _s13(IMM)) -#define _2f(RD, OP3, RS1, OPF, RS2) _I((2<<30)| (_u5(RD)<<25)|(_u6(OP3)<<19)|(_u5(RS1)<<14)| (_u9(OPF)<<5)|_u5 (RS2)) +#define _0i(RD, OP2, IMM) _jit_I((0<<30)| (_u5(RD)<<25)|(_u3(OP2)<<22)| _u22(IMM)) +#define _0( A, CC, OP2, DSP) _jit_I((0<<30)|(_u1(A)<<29)|(_u4(CC)<<25)|(_u3(OP2)<<22)| _d22(DSP)) +#define _0d( A, CC, OP2, DSP) _jit_I((0<<30)|(_u1(A)<<29)|(_u4(CC)<<25)|(_u3(OP2)<<22)| _u22(DSP)) -#define _3( RD, OP3, RS1, I, ASI, RS2) _I((3<<30)| (_u5(RD)<<25)|(_u6(OP3)<<19)|(_u5(RS1)<<14)|(_u1(I)<<13)|(_u8(ASI)<<5)|_u5 (RS2)) -#define _3i(RD, OP3, RS1, I, IMM) _I((3<<30)| (_u5(RD)<<25)|(_u6(OP3)<<19)|(_u5(RS1)<<14)|(_u1(I)<<13)| _s13(IMM)) +#define _1( DSP) _jit_I((1<<30)| _d30(DSP)) + +#define _2( RD, OP3, RS1, I, ASI, RS2) _jit_I((2<<30)| (_u5(RD)<<25)|(_u6(OP3)<<19)|(_u5(RS1)<<14)|(_u1(I)<<13)|(_u8(ASI)<<5)|_u5 (RS2)) +#define _2i(RD, OP3, RS1, I, IMM) _jit_I((2<<30)| (_u5(RD)<<25)|(_u6(OP3)<<19)|(_u5(RS1)<<14)|(_u1(I)<<13)| _s13(IMM)) +#define _2f(RD, OP3, RS1, OPF, RS2) _jit_I((2<<30)| (_u5(RD)<<25)|(_u6(OP3)<<19)|(_u5(RS1)<<14)| (_u9(OPF)<<5)|_u5 (RS2)) + +#define _3( RD, OP3, RS1, I, ASI, RS2) _jit_I((3<<30)| (_u5(RD)<<25)|(_u6(OP3)<<19)|(_u5(RS1)<<14)|(_u1(I)<<13)|(_u8(ASI)<<5)|_u5 (RS2)) +#define _3i(RD, OP3, RS1, I, IMM) _jit_I((3<<30)| (_u5(RD)<<25)|(_u6(OP3)<<19)|(_u5(RS1)<<14)|(_u1(I)<<13)| _s13(IMM)) + +#define _FP1(RD, RS1, OPF, RS2) _2f((RD), 52, (RS1), (OPF), (RS2)) +#define _FP2(RD, RS1, OPF, RS2) _2f((RD), 53, (RS1), (OPF), (RS2)) /* basic instructions [Section B, page 87] */ @@ -300,4 +304,80 @@ #define WRii(IMM, RD) WRrii(0, (IMM), (RD)) #define WRri(RS2, RD) WRrri(0, (RS2), (RD)) +#define LDFSRx(RS1, RS2) _3 (0, 33, (RS1), 0, 0, (RS2)) +#define LDFSRm(RS1, IMM) _3i (0, 33, (RS1), 1, (IMM)) +#define STFSRx(RD1, RD2) _3 (0, 37, (RD1), 0, 0, (RD2)) +#define STFSRm(RD, IMM) _3i (0, 37, (RD), 1, (IMM)) + +#define FITODrr(FRS, FRD) _FP1((FRD), 0, 200, (FRS)) +#define FITOSrr(FRS, FRD) _FP1((FRD), 0, 196, (FRS)) +#define FDTOIrr(FRS, FRD) _FP1((FRD), 0, 210, (FRS)) +#define FSTOIrr(FRS, FRD) _FP1((FRD), 0, 209, (FRS)) +#define FSTODrr(FRS, FRD) _FP1((FRD), 0, 201, (FRS)) +#define FDTOSrr(FRS, FRD) _FP1((FRD), 0, 198, (FRS)) +#define FMOVSrr(FRS, FRD) _FP1((FRD), 0, 1, (FRS)) +#define FNEGSrr(FRS, FRD) _FP1((FRD), 0, 5, (FRS)) +#define FABSSrr(FRS, FRD) _FP1((FRD), 0, 9, (FRS)) +#define FMOVDrr(FRS, FRD) _FP1((FRD), 0, 2, (FRS)) +#define FNEGDrr(FRS, FRD) _FP1((FRD), 0, 6, (FRS)) +#define FABSDrr(FRS, FRD) _FP1((FRD), 0, 10, (FRS)) +#define FSQRTDrr(FRS, FRD) _FP1((FRD), 0, 42, (FRS)) +#define FSQRTSrr(FRS, FRD) _FP1((FRD), 0, 41, (FRS)) + +#define FADDSrrr(FRS1, FRS2, FRD) _FP1((FRD), (FRS1), 65, (FRS2)) +#define FSUBSrrr(FRS1, FRS2, FRD) _FP1((FRD), (FRS1), 69, (FRS2)) +#define FMULSrrr(FRS1, FRS2, FRD) _FP1((FRD), (FRS1), 73, (FRS2)) +#define FDIVSrrr(FRS1, FRS2, FRD) _FP1((FRD), (FRS1), 77, (FRS2)) + +#define FADDDrrr(FRS1, FRS2, FRD) _FP1((FRD), (FRS1), 66, (FRS2)) +#define FSUBDrrr(FRS1, FRS2, FRD) _FP1((FRD), (FRS1), 70, (FRS2)) +#define FMULDrrr(FRS1, FRS2, FRD) _FP1((FRD), (FRS1), 74, (FRS2)) +#define FDIVDrrr(FRS1, FRS2, FRD) _FP1((FRD), (FRS1), 78, (FRS2)) + +#define FCMPSrr(FRS1, FRS2) _FP2(0, (FRS1), 81, (FRS2)) +#define FCMPDrr(FRS1, FRS2) _FP2(0, (FRS1), 82, (FRS2)) + +#define LDFxr(RS1, RS2, RD) _3 ((RD), 32, (RS1), 0, 0, (RS2)) +#define LDFmr(RS1, IMM, RD) _3i ((RD), 32, (RS1), 1, (IMM)) +#define LDDFxr(RS1, RS2, RD) _3 ((RD), 35, (RS1), 0, 0, (RS2)) +#define LDDFmr(RS1, IMM, RD) _3i ((RD), 35, (RS1), 1, (IMM)) +#define STFrx(RS, RD1, RD2) _3 ((RS), 36, (RD1), 0, 0, (RD2)) +#define STFrm(RS, RD1, IMM) _3i ((RS), 36, (RD1), 1, (IMM)) +#define STDFrx(RS, RD1, RD2) _3 ((RS), 39, (RD1), 0, 0, (RD2)) +#define STDFrm(RS, RD1, IMM) _3i ((RS), 39, (RD1), 1, (IMM)) + +#define FBNi(DISP) _0 (0, 0, 6, (DISP)) +#define FBN_Ai(DISP) _0 (1, 0, 6, (DISP)) +#define FBNEi(DISP) _0 (0, 1, 6, (DISP)) +#define FBNE_Ai(DISP) _0 (1, 1, 6, (DISP)) +#define FBLGi(DISP) _0 (0, 2, 6, (DISP)) +#define FBLG_Ai(DISP) _0 (1, 2, 6, (DISP)) +#define FBULi(DISP) _0 (0, 3, 6, (DISP)) +#define FBUL_Ai(DISP) _0 (1, 3, 6, (DISP)) +#define FBLi(DISP) _0 (0, 4, 6, (DISP)) +#define FBL_Ai(DISP) _0 (1, 4, 6, (DISP)) +#define FBUGi(DISP) _0 (0, 5, 6, (DISP)) +#define FBUG_Ai(DISP) _0 (1, 5, 6, (DISP)) +#define FBGi(DISP) _0 (0, 6, 6, (DISP)) +#define FBG_Ai(DISP) _0 (1, 6, 6, (DISP)) +#define FBUi(DISP) _0 (0, 7, 6, (DISP)) +#define FBU_Ai(DISP) _0 (1, 7, 6, (DISP)) +#define FBAi(DISP) _0 (0, 8, 6, (DISP)) +#define FBA_Ai(DISP) _0 (1, 8, 6, (DISP)) +#define FBEi(DISP) _0 (0, 9, 6, (DISP)) +#define FBE_Ai(DISP) _0 (1, 9, 6, (DISP)) +#define FBUEi(DISP) _0 (0, 10, 6, (DISP)) +#define FBUE_Ai(DISP) _0 (1, 10, 6, (DISP)) +#define FBGEi(DISP) _0 (0, 11, 6, (DISP)) +#define FBGE_Ai(DISP) _0 (1, 11, 6, (DISP)) +#define FBUGEi(DISP) _0 (0, 12, 6, (DISP)) +#define FBUGE_Ai(DISP) _0 (1, 12, 6, (DISP)) +#define FBLEi(DISP) _0 (0, 13, 6, (DISP)) +#define FBLE_Ai(DISP) _0 (1, 13, 6, (DISP)) +#define FBULEi(DISP) _0 (0, 14, 6, (DISP)) +#define FBULE_Ai(DISP) _0 (1, 14, 6, (DISP)) +#define FBOi(DISP) _0 (0, 15, 6, (DISP)) +#define FBO_Ai(DISP) _0 (1, 15, 6, (DISP)) + +#endif #endif /* __ccg_asm_sparc_h */ diff -rNu smalltalk-2.1.9/lightning/sparc/core.h smalltalk-2.1.10/lightning/sparc/core.h --- smalltalk-2.1.9/lightning/sparc/core.h 2003-12-13 11:11:23.000000000 +0100 +++ smalltalk-2.1.10/lightning/sparc/core.h 2004-11-25 15:19:18.000000000 +0100 @@ -33,14 +33,13 @@ #ifndef __lightning_core_h #define __lightning_core_h -#define JIT_R0 _Rl(0) -#define JIT_R1 _Rl(1) -#define JIT_R2 _Rl(2) -#define JIT_V0 _Rl(3) -#define JIT_V1 _Rl(4) -#define JIT_V2 _Rl(5) +#define JIT_R_NUM 3 +#define JIT_V_NUM 6 +#define JIT_R(i) ((i) ? _Rl((i) - 1) : _Rg(2)) +#define JIT_V(i) _Rl((i)+2) + #define JIT_BIG _Rg(1) /* %g1 used to make 32-bit operands */ -#define JIT_BIG2 _Rg(2) /* %g2 used to make 32-bit compare operands */ +#define JIT_BIG2 _Ro(7) /* %o7 used to make 32-bit compare operands */ #define JIT_SP _Ro(6) #define JIT_RZERO _Rg(0) #define JIT_RET _Ri(0) @@ -94,57 +93,37 @@ #define jit_prepare_y(rs, is) (SRArir(rs, 31, JIT_BIG), WRri(JIT_BIG, _y), NOP(), NOP(), NOP(), _jit.x.pc -= jit_immsize(is)) #define jit_clr_y(rs, is) ( WRri(0, _y), NOP(), NOP(), NOP(), _jit.x.pc -= jit_immsize(is)) -/* How many instruction are needed by `set imm, %l6' */ -#define jit_immsize(imm) (_siP(13, (imm)) ? 0 : \ - ((imm) & 0x3ff ? 2 : 1)) +#define jit_modr(jit_div, jit_mul, d, s1, s2) \ + (jit_div (JIT_BIG, s1, s2), \ + jit_mul (JIT_BIG, JIT_BIG, s2), \ + jit_subr_i (d, s1, JIT_BIG)) + +#define jit_modi(jit_divi, jit_muli, jit_divr, jit_mulr, d, rs, is) \ + (_siP(13,(imm)) \ + ? (jit_divi (JIT_BIG, rs, is), \ + jit_muli (JIT_BIG, JIT_BIG, is), \ + jit_subr_i (d, rs, JIT_BIG)) \ + : (SETir ((is), JIT_BIG2), \ + jit_modr (jit_divr, jit_mulr, d, rs, JIT_BIG2))) + +/* How many instruction are needed to put imm in a register. */ +#define jit_immsize(imm) (!(imm) ? 0 : \ + (!_siP((imm), 13) && ((imm) & 0x3ff) ? 2 : 1)) /* branch instructions return the address of the *delay* instruction -- this * is just a helper macro that makes jit_patch more readable. */ -#define jit_patch_(jump_pc) \ +#define jit_patch_(jump_pc,pv) \ (*jump_pc &= ~_MASK(22), \ - *jump_pc |= ((_UL(_jit.x.pc) - _UL(jump_pc)) >> 2) & _MASK(22)) - -/* helper macros for remainder -- it is said that _rem and _urem - * trash the output registers - * - * jit_modr jit_modi - *----------------------------------------------------------------------------- - * mov %o0, %l7 mov %o0, %l7 ! save o0 - * mov s1, %o0 mov rs, %o0 - * mov %o1, %l6 ! save o1 - * mov s2, %o1 - * save %sp, -96, %sp save %sp, -96, %sp ! switch window - * mov %i1, %o1 set is, %o1 ! transfer/set divisor - * call f ! call the function - * mov %i0, %o0 mov %i0, %o0 ! transfer dividend - * mov %o0, %i0 mov %o0, %i0 ! transfer result - * restore restore ! switch to old window - * mov %o0, d mov %o0, d ! store result - * mov %l7, %o0 mov %o0, %l7 ! restore o0 - * mov %l6, %o1 ! restore o1 - */ -#define jit_mod(d, rs, f, before_save, set_o1, at_end) ( \ - MOVrr(_Ro(0), _Rl(7)), \ - MOVrr(rs, _Ro(0)), \ - before_save, \ - SAVErir(JIT_SP, -96, JIT_SP), \ - set_o1, \ - CALLi( (unsigned long) f), \ - MOVrr(_Ri(0), _Ro(0)), \ - MOVrr(_Ro(0), _Ri(0)), \ - RESTORE(), \ - MOVrr(_Ro(0), d), \ - MOVrr(_Rl(7), _Ro(0)), \ - at_end) \ - -#define jit_modi(d, rs, is, f) jit_mod(d, s1, f, 0, SETir((is), _Ro(1)), 0) -#define jit_modr(d, s1, s2, f) jit_mod(d, s1, f, (MOVrr(_Ro(1), _Rl(6)), MOVrr(s2, _Ro(1)), MOVrr(_Ri(1), _Ro(1)), MOVrr(_Rl(6), _Ro(1)) )) - - + *jump_pc |= ((_jit_UL((pv)) - _jit_UL(jump_pc)) >> 2) & _MASK(22)) +#define jit_patch_set(sethi_pc, or_pc, dest) \ + (*(sethi_pc) &= ~_MASK(22), *(sethi_pc) |= _HI(dest), \ + *(or_pc) &= ~_MASK(13), *(or_pc) |= _LO(dest)) \ +#define jit_patch_movi(movi_pc, val) \ + jit_patch_set((movi_pc) - 2, (movi_pc) - 1, (val)) #define jit_arg_c() (_jitl.nextarg_get++) #define jit_arg_i() (_jitl.nextarg_get++) @@ -196,10 +175,12 @@ #define jit_boaddr_ui(label, s1, s2) ( ADDCCrrr((s1), (s2), (s1)), BCSi((label)), NOP(), _jit.x.pc - 1) #define jit_bosubr_ui(label, s1, s2) ( SUBCCrrr((s1), (s2), (s1)), BCSi((label)), NOP(), _jit.x.pc - 1) #define jit_calli(label) (CALLi(label), NOP(), _jit.x.pc - 1) -#define jit_divi_i(d, rs, is) (jit_prepare_y((rs), (is)), jit_chk_imm((is), SDIVrir((rs), (is), (d)), SDIVrrr((rs), JIT_BIG, (d))) ) -#define jit_divi_ui(d, rs, is) (jit_clr_y((rs)), (is)), jit_chk_imm((is), UDIVrir((rs), (is), (d)), UDIVrrr((rs), JIT_BIG, (d))) ) -#define jit_divr_i(d, s1, s2) (jit_prepare_y((s1), 3), SDIVrrr((s1), (s2), (d))) -#define jit_divr_ui(d, s1, s2) (jit_clr_y((s1), 3), UDIVrrr((s1), (s2), (d))) +#define jit_callr(reg) (CALLx((reg), 0), NOP()) + +#define jit_divi_i(d, rs, is) (jit_prepare_y((rs), 0x12345678), SETir((is), JIT_BIG), SDIVrrr((rs), JIT_BIG, (d)) ) +#define jit_divi_ui(d, rs, is) (jit_clr_y((rs), 0x12345678), SETir((is), JIT_BIG), UDIVrrr((rs), JIT_BIG, (d)) ) +#define jit_divr_i(d, s1, s2) (jit_prepare_y((s1), 0), SDIVrrr((s1), (s2), (d))) +#define jit_divr_ui(d, s1, s2) (jit_clr_y((s1), 0), UDIVrrr((s1), (s2), (d))) #define jit_eqi_i(d, rs, is) jit_chk_imm((is), \ (SUBCCrir((rs), (is), (d)), ADDXCCrir((d), -1, JIT_BIG), SUBXrir(0,-1,(d))),\ jit_eqr_i(d, rs, JIT_BIG)) @@ -242,11 +223,12 @@ #define jit_lti_ui(d, rs, is) jit_booli ((d), (rs), (is), BLUi(_jit.x.pc + 3) ) #define jit_ltr_i(d, s1, s2) jit_boolr ((d), (s1), (s2), BLi(_jit.x.pc + 3) ) #define jit_ltr_ui(d, s1, s2) jit_boolr ((d), (s1), (s2), BLUi(_jit.x.pc + 3) ) -#define jit_modi_i(d, rs, is) jit_modi((d), (rs), (is), _rem) -#define jit_modi_ui(d, rs, is) jit_modi((d), (rs), (is), _urem) -#define jit_modr_i(d, s1, s2) jit_modr((d), (s1), (s2), _rem) -#define jit_modr_ui(d, s1, s2) jit_modr((d), (s1), (s2), _urem) +#define jit_modi_i(d, rs, is) jit_modi(jit_divi_i, jit_muli_i, jit_divr_i, jit_mulr_i, (d), (rs), (is)) +#define jit_modi_ui(d, rs, is) jit_modi(jit_divi_ui, jit_muli_ui, jit_divr_ui, jit_mulr_ui, (d), (rs), (is)) +#define jit_modr_i(d, s1, s2) jit_modr(jit_divr_i, jit_mulr_i, (d), (s1), (s2)) +#define jit_modr_ui(d, s1, s2) jit_modr(jit_divr_ui, jit_mulr_ui, (d), (s1), (s2)) #define jit_movi_i(d, is) SETir((is), (d)) +#define jit_movi_p(d, is) (SETir2(_HI((is)), _LO((is)), (d)), _jit.x.pc) #define jit_movr_i(d, rs) MOVrr((rs), (d)) #define jit_muli_i(d, rs, is) jit_chk_imm((is), SMULrir((rs), (is), (d)), SMULrrr((rs), JIT_BIG, (d))) #define jit_muli_ui(d, rs, is) jit_chk_imm((is), UMULrir((rs), (is), (d)), UMULrrr((rs), JIT_BIG, (d))) @@ -255,14 +237,14 @@ #define jit_nop() NOP() #define jit_ori_i(d, rs, is) jit_chk_imm((is), ORrir((rs), (is), (d)), ORrrr((rs), JIT_BIG, (d))) #define jit_orr_i(d, s1, s2) ORrrr((s1), (s2), (d)) -#define jit_patch(delay_pc) jit_patch_ ( ((delay_pc) - 1) ) +#define jit_patch_at(delay_pc, pv) jit_patch_ (((delay_pc) - 1) , (pv)) #define jit_popr_i(rs) (LDmr(JIT_SP, 0, (rs)), ADDrir(JIT_SP, 8, JIT_SP)) -#define jitfp_prepare(numargs, nf, nd) (_jitl.nextarg_put = (numargs)) -#define jit_prolog(numargs) (SAVErir(JIT_SP, -96, JIT_SP), _jitl.nextarg_get = _Ri(0)) +#define jit_prepare_i(num) (_jitl.nextarg_put += (num)) +#define jit_prolog(numargs) (SAVErir(JIT_SP, -120, JIT_SP), _jitl.nextarg_get = _Ri(0)) #define jit_pushr_i(rs) (STrm((rs), JIT_SP, -8), SUBrir(JIT_SP, 8, JIT_SP)) #define jit_pusharg_i(rs) (--_jitl.nextarg_put, MOVrr((rs), _Ro(_jitl.nextarg_put))) #define jit_ret() (RET(), RESTORE()) -#define jit_retval(rd) MOVrr(_Ro(0), (rd)) +#define jit_retval_i(rd) MOVrr(_Ro(0), (rd)) #define jit_rshi_i(d, rs, is) SRArir((rs), (is), (d)) #define jit_rshi_ui(d, rs, is) SRLrir((rs), (is), (d)) #define jit_rshr_i(d, r1, r2) SRArrr((r1), (r2), (d)) diff -rNu smalltalk-2.1.9/lightning/sparc/fp.h smalltalk-2.1.10/lightning/sparc/fp.h --- smalltalk-2.1.9/lightning/sparc/fp.h 2003-12-13 11:11:23.000000000 +0100 +++ smalltalk-2.1.10/lightning/sparc/fp.h 2004-11-25 15:19:18.000000000 +0100 @@ -7,7 +7,7 @@ /*********************************************************************** * - * Copyright 2000, 2001, 2002 Free Software Foundation, Inc. + * Copyright 2000, 2001, 2002, 2004 Free Software Foundation, Inc. * Written by Paolo Bonzini. * * This file is part of GNU lightning. @@ -35,129 +35,188 @@ #ifndef __lightning_asm_fp_h #define __lightning_asm_fp_h -#if 0 +#include -/* dummy for now */ +#define JIT_FPR_NUM 6 +#define JIT_FPR(i) (30-(i)*2) +#define JIT_FPTMP 18 + +#define jit_addr_f(rd,s1,s2) FADDSrrr((s1), (s2), (rd)) +#define jit_subr_f(rd,s1,s2) FSUBSrrr((s1), (s2), (rd)) +#define jit_mulr_f(rd,s1,s2) FMULSrrr((s1), (s2), (rd)) +#define jit_divr_f(rd,s1,s2) FDIVSrrr((s1), (s2), (rd)) + +#define jit_addr_d(rd,s1,s2) FADDDrrr((s1), (s2), (rd)) +#define jit_subr_d(rd,s1,s2) FSUBDrrr((s1), (s2), (rd)) +#define jit_mulr_d(rd,s1,s2) FMULDrrr((s1), (s2), (rd)) +#define jit_divr_d(rd,s1,s2) FDIVDrrr((s1), (s2), (rd)) + +#define jit_movr_f(rd,rs) FMOVSrr((rs), (rd)) +#define jit_abs_d(rd,rs) FABSSrr((rs), (rd)) +#define jit_negr_d(rd,rs) FNEGSrr((rs), (rd)) +#define jit_sqrt_d(rd,rs) FSQRTSrr((rs), (rd)) +#define jit_movr_d(rd,rs) FMOVDrr((rs), (rd)) +#define jit_abs_f(rd,rs) FABSDrr((rs), (rd)) +#define jit_negr_f(rd,rs) FNEGDrr((rs), (rd)) +#define jit_sqrt_f(rd,rs) FSQRTDrr((rs), (rd)) +#define jit_extr_f_d(rs, rd) FSTODrr((rs), (rd)) +#define jit_extr_d_f(rs, rd) FDTOSrr((rs), (rd)) + +#define jit_movi_f(rd,immf) \ + do { \ + float _v = (immf); \ + _1(_jit.x.pc + 3), LDFmr(_Ro(7), 8, (rd)); \ + memcpy(_jit.x.uc_pc, &_v, sizeof (float)); \ + _jit.x.uc_pc += sizeof (float); \ + } while(0) + +#define jit_movi_d(rd,immd) \ + do { \ + double _v = (immd); \ + if ((long)_jit.x.pc & 4) NOP(); \ + _1(_jit.x.pc + 4); \ + LDDFmr(_Ro(7), 8, (rd)); \ + memcpy(_jit.x.uc_pc, &_v, sizeof (double)); \ + _jit.x.uc_pc += sizeof (double); \ + } while(0) + + +#define jit_ldxi_f(rd, rs, is) jit_chk_imm((is), LDFmr((rs), (is), (rd)), LDFxr((rs), JIT_BIG, (rd))) +#define jit_ldxi_d(rd, rs, is) jit_chk_imm((is), LDDFmr((rs), (is), (rd)), LDDFxr((rs), JIT_BIG, (rd))) +#define jit_ldxr_f(rd, s1, s2) LDFxr((s1), (s2), (rd)) +#define jit_ldxr_d(rd, s1, s2) LDDFxr((s1), (s2), (rd)) +#define jit_stxi_f(id, rd, rs) jit_chk_imm((id), STFrm((rs), (rd), (id)), STFrx((rs), (rd), JIT_BIG)) +#define jit_stxi_d(id, rd, rs) jit_chk_imm((id), STDFrm((rs), (rd), (id)), STDFrx((rs), (rd), JIT_BIG)) +#define jit_stxr_f(d1, d2, rs) STFrx((rs), (d1), (d2)) +#define jit_stxr_d(d1, d2, rs) STDFrx((rs), (d1), (d2)) + +#define jit_truncr_f_i(rd, rs) ( \ + _1(_jit.x.pc + 3), \ + FSTOIrr((rs), JIT_FPTMP), \ + NOP(), \ + STFrm(JIT_FPTMP, _Ro(7), 8), \ + LDmr(_Ro(7), 8, (rd))) + +#define jit_truncr_d_i(rd, rs) ( \ + _1(_jit.x.pc + 3), \ + FDTOIrr((rs), JIT_FPTMP), \ + NOP(), \ + STFrm(JIT_FPTMP, _Ro(7), 8), \ + LDmr(_Ro(7), 8, (rd))) + +#define jit_extr_i_d(rd, rs) (_1 (_jit.x.pc + 3), NOP(), NOP(), STrm((rs), _Ro(7), 8), LDFmr(_Ro(7), 8, (rd)), FITODrr((rd), (rd))) +#define jit_extr_i_f(rd, rs) (_1 (_jit.x.pc + 3), NOP(), NOP(), STrm((rs), _Ro(7), 8), LDFmr(_Ro(7), 8, (rd)), FITOSrr((rd), (rd))) + +#define jit_do_round_f(rd, rs, fixup, mode) do { \ + jit_movi_f (JIT_FPTMP, fixup); \ + _1(_jit.x.pc + 4); \ + SETHIir(_HI(mode << 29), JIT_BIG); \ + NOP(); \ + NOP(); \ + STFSRm(_Ro(7), 8); /* store fsr */ \ + LDmr(_Ro(7), 8, rd); \ + XORrrr(rd, JIT_BIG, JIT_BIG); /* adjust mode */ \ + STrm(JIT_BIG, _Ro(7), 12); \ + LDFSRm(_Ro(7), 12); /* load fsr */ \ + FADDSrrr ((rs), JIT_FPTMP, JIT_FPTMP); \ + LDFSRm(_Ro(7), 8); \ + FSTOIrr(JIT_FPTMP, JIT_FPTMP); \ + STFrm(JIT_FPTMP, _Ro(7), 8); \ + LDmr(_Ro(7), 8, (rd)); \ + ADDCCrrr ((rd), (rd), 0); \ + SUBXrrr ((rd), 0, (rd)); \ + } while (0); + +#define jit_do_round_d(rd, rs, fixup, mode) do { \ + jit_movi_d (JIT_FPTMP, fixup); \ + _1(_jit.x.pc + 4); \ + SETHIir(_HI(mode << 29), JIT_BIG); \ + NOP(); \ + NOP(); \ + STFSRm(_Ro(7), 8); /* store fsr */ \ + LDmr(_Ro(7), 8, rd); \ + XORrrr(rd, JIT_BIG, JIT_BIG); /* adjust mode */ \ + STrm(JIT_BIG, _Ro(7), 12); \ + LDFSRm(_Ro(7), 12); /* load fsr */ \ + FADDDrrr ((rs), JIT_FPTMP, JIT_FPTMP); \ + LDFSRm(_Ro(7), 8); \ + FDTOIrr(JIT_FPTMP, JIT_FPTMP); \ + STFrm(JIT_FPTMP, _Ro(7), 8); \ + LDmr(_Ro(7), 8, (rd)); \ + ADDCCrrr ((rd), (rd), 0); \ + SUBXrrr ((rd), 0, (rd)); \ + } while (0); + +#define jit_roundr_f_i(rd, rs) do { \ + jit_movi_f (JIT_FPTMP, 0.5); \ + FADDSrrr ((rs), JIT_FPTMP, JIT_FPTMP); \ + jit_truncr_f_i ((rd), JIT_FPTMP); \ + ADDCCrrr ((rd), (rd), 0); \ + SUBXrrr ((rd), 0, (rd)); \ + } while (0) + +#define jit_roundr_d_i(rd, rs) do { \ + jit_movi_d (JIT_FPTMP, 0.5); \ + FADDDrrr ((rs), JIT_FPTMP, JIT_FPTMP); \ + jit_truncr_d_i ((rd), JIT_FPTMP); \ + ADDCCrrr ((rd), (rd), 0); \ + SUBXrrr ((rd), 0, (rd)); \ + } while (0) + +#define jit_ceilr_f_i(rd, rs) \ + jit_do_round_f ((rd), (rs), 1.0f - FLT_EPSILON, 3) + +#define jit_ceilr_d_i(rd, rs) \ + jit_do_round_d ((rd), (rs), 1.0 - DBL_EPSILON, 3) + +#define jit_floorr_f_i(rd, rs) \ + jit_do_round_f ((rd), (rs), FLT_EPSILON, 2) + +#define jit_floorr_d_i(rd, rs) \ + jit_do_round_d ((rd), (rs), DBL_EPSILON, 2) + +#define jit_ltr_d(d, s1, s2) (FCMPDrr ((s1), (s2)), FBLi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_ltr_f(d, s1, s2) (FCMPSrr ((s1), (s2)), FBLi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_ler_d(d, s1, s2) (FCMPDrr ((s1), (s2)), FBLEi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_ler_f(d, s1, s2) (FCMPSrr ((s1), (s2)), FBLEi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_eqr_d(d, s1, s2) (FCMPDrr ((s1), (s2)), FBEi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_eqr_f(d, s1, s2) (FCMPSrr ((s1), (s2)), FBEi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_ner_d(d, s1, s2) (FCMPDrr ((s1), (s2)), FBNEi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_ner_f(d, s1, s2) (FCMPSrr ((s1), (s2)), FBNEi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_ger_d(d, s1, s2) (FCMPDrr ((s1), (s2)), FBGEi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_ger_f(d, s1, s2) (FCMPSrr ((s1), (s2)), FBGEi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_gtr_d(d, s1, s2) (FCMPDrr ((s1), (s2)), FBGi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_gtr_f(d, s1, s2) (FCMPSrr ((s1), (s2)), FBGi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_unltr_d(d, s1, s2) (FCMPDrr ((s1), (s2)), FBULi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_unltr_f(d, s1, s2) (FCMPSrr ((s1), (s2)), FBULi(_jit.x.pc + 3), MOVir (1, (d), MOVir (0, (d))) +#define jit_unler_d(d, s1, s2) (FCMPDrr ((s1), (s2)), FBULEi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_unler_f(d, s1, s2) (FCMPSrr ((s1), (s2)), FBULEi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_uneqr_d(d, s1, s2) (FCMPDrr ((s1), (s2)), FBUEi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_uneqr_f(d, s1, s2) (FCMPSrr ((s1), (s2)), FBUEi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_ltgtr_d(d, s1, s2) (FCMPDrr ((s1), (s2)), FBLGi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_ltgtr_f(d, s1, s2) (FCMPSrr ((s1), (s2)), FBLGi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_unger_d(d, s1, s2) (FCMPDrr ((s1), (s2)), FBUGEi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_unger_f(d, s1, s2) (FCMPSrr ((s1), (s2)), FBUGEi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_ungtr_d(d, s1, s2) (FCMPDrr ((s1), (s2)), FBUGi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_ungtr_f(d, s1, s2) (FCMPSrr ((s1), (s2)), FBUGi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_ordr_d(d, s1, s2) (FCMPDrr ((s1), (s2)), FBOi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_ordr_f(d, s1, s2) (FCMPSrr ((s1), (s2)), FBOi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_unordr_d(d, s1, s2) (FCMPDrr ((s1), (s2)), FBUi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) +#define jit_unordr_f(d, s1, s2) (FCMPSrr ((s1), (s2)), FBUi(_jit.x.pc + 3), MOVir (1, (d)), MOVir (0, (d))) + +#define jit_prepare_f(num) (_jitl.nextarg_put += (num)) +#define jit_prepare_d(num) (_jitl.nextarg_put += 2 * (num)) + +#define jit_arg_f() (_jitl.nextarg_get++) +#define jit_arg_d() (_jitl.nextarg_get += _jitl.nextarg_get & 1, _jitl.nextarg_get += 2, _jitl.nextarg_get - 2) -#define _FP1(RD, RS1, OPF, RS2) _2f((RD), 52, (RS1), (OPF), (RS2)) -#define _FP2(RD, RS1, OPF, RS2) _2f((RD), 53, (RS1), (OPF), (RS2)) +#define jit_getarg_f(rd, ofs) (STrm(ofs, _Ri(6), -24), LDFmr (_Ri(6), -24, (rd))) +#define jit_getarg_d(rd, ofs) (STDrm(ofs, _Ri(6), -24), LDDFmr (_Ri(6), -24, (rd))) -#define FITODrr(FRS, FRD) _FP1((FRD), 0, 200, (FRS)) -#define FDTOIrr(FRS, FRD) _FP1((FRD), 0, 210, (FRS)) -#define FSTODrr(FRS, FRD) _FP1((FRD), 0, 201, (FRS)) -#define FDTOSrr(FRS, FRD) _FP1((FRD), 0, 198, (FRS)) -#define FMOVSrr(FRS, FRD) _FP1((FRD), 0, 1, (FRS)) -#define FNEGSrr(FRS, FRD) _FP1((FRD), 0, 5, (FRS)) -#define FABSSrr(FRS, FRD) _FP1((FRD), 0, 9, (FRS)) -#define FSQRTDrr(FRS, FRD) _FP1((FRD), 0, 74, (FRS)) - -#define FADDDrrr(FRS1, FRS2, FRD) _FP1((FRD), (FRS1), 66, (FRS2)) -#define FSUBDrrr(FRS1, FRS2, FRD) _FP1((FRD), (FRS1), 70, (FRS2)) -#define FMULDrrr(FRS1, FRS2, FRD) _FP1((FRD), (FRS1), 82, (FRS2)) -#define FDIVDrrr(FRS1, FRS2, FRD) _FP1((FRD), (FRS1), 86, (FRS2)) - -#define FCMPDrr(FRS1, FRS2) _FP2(0, (FRS1), 82, (FRS2)) - -#define LDFxr(RS1, RS2, RD) _3 ((RD), 32, (RS1), 0, 0, (RS2)) -#define LDFmr(RS1, IMM, RD) _3i ((RD), 32, (RS1), 1, (IMM)) -#define LDDFxr(RS1, RS2, RD) _3 ((RD), 35, (RS1), 0, 0, (RS2)) -#define LDDFmr(RS1, IMM, RD) _3i ((RD), 35, (RS1), 1, (IMM)) -#define STFrx(RS, RD1, RD2) _3 ((RS), 36, (RD1), 0, 0, (RD2)) -#define STFrm(RS, RD1, IMM) _3i ((RS), 36, (RD1), 1, (IMM)) -#define STDFrx(RS, RD1, RD2) _3 ((RS), 39, (RD1), 0, 0, (RD2)) -#define STDFrm(RS, RD1, IMM) _3i ((RS), 39, (RD1), 1, (IMM)) - -#define FBNi(DISP) _0 (0, 0, 6, (DISP)) -#define FBN_Ai(DISP) _0 (1, 0, 6, (DISP)) -#define FBNEi(DISP) _0 (0, 1, 6, (DISP)) -#define FBNE_Ai(DISP) _0 (1, 1, 6, (DISP)) -#define FBLGi(DISP) _0 (0, 2, 6, (DISP)) -#define FBLG_Ai(DISP) _0 (1, 2, 6, (DISP)) -#define FBULi(DISP) _0 (0, 3, 6, (DISP)) -#define FBUL_Ai(DISP) _0 (1, 3, 6, (DISP)) -#define FBLi(DISP) _0 (0, 4, 6, (DISP)) -#define FBL_Ai(DISP) _0 (1, 4, 6, (DISP)) -#define FBUGi(DISP) _0 (0, 5, 6, (DISP)) -#define FBUG_Ai(DISP) _0 (1, 5, 6, (DISP)) -#define FBGi(DISP) _0 (0, 6, 6, (DISP)) -#define FBG_Ai(DISP) _0 (1, 6, 6, (DISP)) -#define FBUi(DISP) _0 (0, 7, 6, (DISP)) -#define FBU_Ai(DISP) _0 (1, 7, 6, (DISP)) -#define FBAi(DISP) _0 (0, 8, 6, (DISP)) -#define FBA_Ai(DISP) _0 (1, 8, 6, (DISP)) -#define FBEi(DISP) _0 (0, 9, 6, (DISP)) -#define FBE_Ai(DISP) _0 (1, 9, 6, (DISP)) -#define FBUEi(DISP) _0 (0, 10, 6, (DISP)) -#define FBUE_Ai(DISP) _0 (1, 10, 6, (DISP)) -#define FBGEi(DISP) _0 (0, 11, 6, (DISP)) -#define FBGE_Ai(DISP) _0 (1, 11, 6, (DISP)) -#define FBUGEi(DISP) _0 (0, 12, 6, (DISP)) -#define FBUGE_Ai(DISP) _0 (1, 12, 6, (DISP)) -#define FBLEi(DISP) _0 (0, 13, 6, (DISP)) -#define FBLE_Ai(DISP) _0 (1, 13, 6, (DISP)) -#define FBULEi(DISP) _0 (0, 14, 6, (DISP)) -#define FBULE_Ai(DISP) _0 (1, 14, 6, (DISP)) -#define FBOi(DISP) _0 (0, 15, 6, (DISP)) -#define FBO_Ai(DISP) _0 (1, 15, 6, (DISP)) - -#define FSKIPUG() _0d (1, 13, 6, 2) /* fble,a .+8 */ -#define FSKIPUL() _0d (1, 11, 6, 2) /* fbge,a .+8 */ - -#define jit_add_two(reg0) FADDDrrr(30 - (reg0) * 2, 28 - (reg0) * 2, 30 - (reg0) * 2) -#define jit_sub_two(reg0) FSUBDrrr(30 - (reg0) * 2, 28 - (reg0) * 2, 30 - (reg0) * 2) -#define jit_mul_two(reg0) FMULDrrr(30 - (reg0) * 2, 28 - (reg0) * 2, 30 - (reg0) * 2) -#define jit_div_two(reg0) FDIVDrrr(30 - (reg0) * 2, 28 - (reg0) * 2, 30 - (reg0) * 2) - -#define jit_abs(reg0) FABSSrr(30 - (reg0) * 2, 30 - (reg0) * 2) -#define jit_neg(reg0) FNEGSrr(30 - (reg0) * 2, 30 - (reg0) * 2) -#define jit_sqrt(reg0) FSQRTDrr(30 - (reg0) * 2, 30 - (reg0) * 2) - -#define jit_fpimm(reg0, first, second) \ - (_1(4), NOP(), _L(first), _L(second), \ - jit_ldxi_d((reg0), _Ro(7), 8)) - -#define jit_ldxi_f(reg0, rs, is) (jit_chk_imm((is), LDFmr((rs), (is), 30 - (reg0) * 2), LDFxr((rs), JIT_BIG, 30 - (reg0) * 2)), FSTODrr(30 - (reg0) * 2, 30 - (reg0) * 2)) -#define jit_ldxi_d(reg0, rs, is) jit_chk_imm((is), LDDFmr((rs), (is), 30 - (reg0) * 2), LDDFxr((rs), JIT_BIG, 30 - (reg0) * 2)) -#define jit_ldxr_f(reg0, s1, s2) (LDFxr((s1), (s2), 30 - (reg0) * 2), FSTODrr(30 - (reg0) * 2, 30 - (reg0) * 2)) -#define jit_ldxr_d(reg0, s1, s2) LDDFxr((s1), (s2), 30 - (reg0) * 2) -#define jit_stxi_f(id, rd, reg0) (FDTOSrr(30 - (reg0) * 2, 30 - (reg0) * 2), jit_chk_imm((id), STFrm(30 - (reg0) * 2, (rd), (id)), STFrx(30 - (reg0) * 2, (rd), JIT_BIG))) -#define jit_stxi_d(id, rd, reg0) jit_chk_imm((id), STDFrm(30 - (reg0) * 2, (rd), (id)), STDFrx(30 - (reg0) * 2, (rd), JIT_BIG)) -#define jit_stxr_f(d1, d2, reg0) (FDTOSrr(30 - (reg0) * 2, 30 - (reg0) * 2), STFrx (30 - (reg0) * 2, (d1), (d2))) -#define jit_stxr_d(d1, d2, reg0) STDFrx(30 - (reg0) * 2, (d1), (d2)) - - -#define jit_do_round(mode, rd, freg) ( \ - _1(3), \ - SETHIir(_HI(mode << 29), JIT_BIG), \ - NOP(), \ - STFSRm(_Ro(7), 8), /* store fsr */ \ - LDmr(_Ro(7), 8, rd), \ - XORrrr(rd, JIT_BIG, JIT_BIG), /* adjust mode */ \ - STrm(JIT_BIG, _Ro(7), 8), \ - LDFSRm(_Ro(7), 8), /* load fsr */ \ - FDTOIrr(freg, freg), /* truncate */ \ - STrm(rd, _Ro(7), 8), /* load old fsr */ \ - LDFSRm(_Ro(7), 8), \ - STFrm(freg, _Ro(7), 8), /* store truncated value */ \ - LDmr(_Ro(7), 8, rd)) /* load it into rd */ - - -/* call delay slot data ,--- call lands here */ -#define jit_exti_d(reg0, rs) (_1(3), NOP(), NOP(), STrm((rs), _Ro(7), 8), LDFmr(_Ro(7), 8, 30 - (reg0) * 2), FITODrr(30 - (reg0) * 2, 30 - (reg0) * 2)) -#define jit_round(rd, reg0) (_1(3), FDTOIrr(30 - (reg0) * 2, 30 - (reg0) * 2), NOP(), STFrm(30 - (reg0) * 2, _Ro(7), 8), LDmr(_Ro(7), 8, (rd))) -#define jit_floor(rd, reg0) jit_do_round(3, (rd), (30 - (reg0) * 2)) -#define jit_ceil(rd, reg0) jit_do_round(2, (rd), (30 - (reg0) * 2)) -#define jit_trunc(rd, reg0) jit_do_round(1, (rd), (30 - (reg0) * 2)) - -static double jit_zero = 0.0; - -#define jit_cmp(le, ge, reg0) (SETHIir(_HI(_UL(&jit_zero)), (le)), \ - LDDFmr((le), _LO(_UL(&jit_zero)), 28 - (reg0) * 2), \ - FCMPDrr(30 - (reg0) * 2, 28 - (reg0) * 2), \ - MOVir(0, (le)), MOVir(0, (ge)), \ - FSKIPUL(), MOVir(1, (ge)), \ - FSKIPUG(), MOVir(1, (le))) +#define jit_pusharg_f(rs) (STFrm((rs), _Ri(6), -24), --_jitl.nextarg_put, LDmr (_Ri(6), -24, _Ro(_jitl.nextarg_put))) +#define jit_pusharg_d(rs) (STDFrm((rs), _Ri(6), -24), _jitl.nextarg_put -= 2, LDmr (_Ri(6), -24, _Ro(_jitl.nextarg_put))) -#endif +#define jit_retval_f(rs) jit_movr_f(0, rs) +#define jit_retval_d(rs) jit_movr_d(0, rs) #endif /* __lightning_asm_fp_h */ diff -rNu smalltalk-2.1.9/packages.xml smalltalk-2.1.10/packages.xml --- smalltalk-2.1.9/packages.xml 2004-10-02 15:39:10.000000000 +0200 +++ smalltalk-2.1.10/packages.xml 2005-02-03 09:44:36.000000000 +0100 @@ -1,4 +1,4 @@ - + @@ -11,7 +11,7 @@ ChangeLog -<@GTK_DISABLED@package> + GTK GtkDecl.st gst-gtk @@ -20,7 +20,7 @@ Structs.st Enums.st Funcs.st - Libs.st + Libs.st GtkDecl.st GtkImpl.st MoreFuncs.st @@ -33,7 +33,7 @@ example_eventbox.st example_hello.st example_tictactoe.st - + BloxTK diff -rNu smalltalk-2.1.9/packages.xml.in smalltalk-2.1.10/packages.xml.in --- smalltalk-2.1.9/packages.xml.in 2004-10-02 15:39:01.000000000 +0200 +++ smalltalk-2.1.10/packages.xml.in 2004-11-25 15:19:19.000000000 +0100 @@ -20,7 +20,7 @@ Structs.st Enums.st Funcs.st - Libs.st + Libs.st GtkDecl.st GtkImpl.st MoreFuncs.st diff -rNu smalltalk-2.1.9/sigsegv/Makefile.in smalltalk-2.1.10/sigsegv/Makefile.in --- smalltalk-2.1.9/sigsegv/Makefile.in 2004-10-02 15:25:32.000000000 +0200 +++ smalltalk-2.1.10/sigsegv/Makefile.in 2005-02-03 09:32:35.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -33,6 +33,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ DIST_COMMON = README $(am__configure_deps) \ $(srcdir)/../config/config.guess \ @@ -62,7 +63,7 @@ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = depcomp = @@ -157,6 +158,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -410,15 +413,17 @@ || exit 1; \ fi; \ done - list='$(SUBDIRS)'; for subdir in $$list; do \ + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ - || mkdir "$(distdir)/$$subdir" \ + || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="../$(top_distdir)" \ - distdir="../$(distdir)/$$subdir" \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ @@ -429,15 +434,15 @@ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir - $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2 + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir - $(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir @@ -450,7 +455,7 @@ $(am__remove_distdir) dist dist-all: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then @@ -459,11 +464,11 @@ distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - ;;\ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ - bunzip2 -c $(distdir).tar.bz2 | $(AMTAR) xf - ;;\ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(AMTAR) xf - ;;\ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ @@ -544,7 +549,7 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @@ -611,13 +616,14 @@ distclean-generic distclean-hdr distclean-libtool \ distclean-recursive distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-generic \ - mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am uninstall-info-am + install install-am install-data install-data-am \ + install-data-hook install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic maintainer-clean-recursive \ + mostlyclean mostlyclean-generic mostlyclean-libtool \ + mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am uninstall-info-am all-am: all-next diff -rNu smalltalk-2.1.9/sigsegv/aclocal.m4 smalltalk-2.1.10/sigsegv/aclocal.m4 --- smalltalk-2.1.9/sigsegv/aclocal.m4 2004-10-02 15:25:26.000000000 +0200 +++ smalltalk-2.1.10/sigsegv/aclocal.m4 2005-02-03 09:32:29.000000000 +0100 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.8.5 -*- Autoconf -*- +# generated automatically by aclocal 1.9.2 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 # Free Software Foundation, Inc. @@ -33,14 +33,14 @@ # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. -AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.8"]) +AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.8.5])]) + [AM_AUTOMAKE_VERSION([1.9.2])]) # AM_AUX_DIR_EXPAND @@ -108,7 +108,7 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003 Free Software Foundation, Inc. +# Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -145,8 +145,8 @@ fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]) + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) fi])]) # serial 7 -*- Autoconf -*- @@ -319,7 +319,8 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 +# Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -355,27 +356,21 @@ else continue fi - grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue @@ -430,7 +425,7 @@ # This macro actually does too much some checks are only needed if # your package does certain things. But this isn't really a big deal. -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -506,7 +501,6 @@ AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) -AM_MISSING_PROG(AMTAR, tar) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl @@ -515,7 +509,9 @@ AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl - +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], @@ -758,13 +754,21 @@ # this.) AC_DEFUN([AM_PROG_MKDIR_P], [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # Keeping the `.' argument allows $(mkdir_p) to be used without - # argument. Indeed, we sometimes output rules like + # We used to keeping the `.' as first argument, in order to + # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. - # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more - # expensive solution, as it forces Make to start a sub-shell.) - mkdir_p='mkdir -p -- .' + # where $(somedir) is conditionally defined. However this is wrong + # for two reasons: + # 1. if the package is installed by a user who cannot write `.' + # make install will fail, + # 2. the above comment should most certainly read + # $(mkdir_p) $(DESTDIR)$(somedir) + # so it does not work when $(somedir) is undefined and + # $(DESTDIR) is not. + # To support the latter case, we have to write + # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), + # so the `.' trick is pointless. + mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as @@ -930,6 +934,114 @@ INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004 Free Software Foundation, Inc. + +# This program 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 program 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 this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 1 + + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + m4_include([../config/bold.m4]) m4_include([../config/fault.m4]) m4_include([../config/getpagesize.m4]) diff -rNu smalltalk-2.1.9/sigsegv/configure smalltalk-2.1.10/sigsegv/configure --- smalltalk-2.1.9/sigsegv/configure 2004-10-02 15:25:30.000000000 +0200 +++ smalltalk-2.1.10/sigsegv/configure 2005-02-03 09:32:37.000000000 +0100 @@ -278,7 +278,7 @@ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. -if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then @@ -459,7 +459,7 @@ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP build build_cpu build_vendor build_os host host_cpu host_vendor host_os PLATFORM EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB LIBTOOL HAVE_SIGSEGV_RECOVERY HAVE_STACK_OVERFLOW_RECOVERY CFG_HEURISTICS CFG_SIGNALS CFG_FAULT CFG_STACKVMA CFG_LEAVE CFG_HANDLER FAULT_CONTEXT FAULT_CONTEXT_INCLUDE RELOCATABLE LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP build build_cpu build_vendor build_os host host_cpu host_vendor host_os PLATFORM EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB LIBTOOL HAVE_SIGSEGV_RECOVERY HAVE_STACK_OVERFLOW_RECOVERY CFG_HEURISTICS CFG_SIGNALS CFG_FAULT CFG_STACKVMA CFG_LEAVE CFG_HANDLER FAULT_CONTEXT FAULT_CONTEXT_INCLUDE RELOCATABLE LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1540,7 +1540,7 @@ { echo; echo "${term_bold}Build Tools:${term_norm}"; } >& 6 -am__api_version="1.8" +am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: @@ -1692,13 +1692,21 @@ fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # Keeping the `.' argument allows $(mkdir_p) to be used without - # argument. Indeed, we sometimes output rules like + # We used to keeping the `.' as first argument, in order to + # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. - # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more - # expensive solution, as it forces Make to start a sub-shell.) - mkdir_p='mkdir -p -- .' + # where $(somedir) is conditionally defined. However this is wrong + # for two reasons: + # 1. if the package is installed by a user who cannot write `.' + # make install will fail, + # 2. the above comment should most certainly read + # $(mkdir_p) $(DESTDIR)$(somedir) + # so it does not work when $(somedir) is undefined and + # $(DESTDIR) is not. + # To support the latter case, we have to write + # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), + # so the `.' trick is pointless. + mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as @@ -1842,9 +1850,6 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -AMTAR=${AMTAR-"${am_missing_run}tar"} - install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user @@ -1937,6 +1942,13 @@ # We need awk for the "check" target. The system "awk" is bad on # some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + @@ -3565,10 +3577,10 @@ fi done done -SED=$lt_cv_path_SED fi +SED=$lt_cv_path_SED echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 @@ -3709,6 +3721,15 @@ *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 @@ -3795,30 +3816,26 @@ lt_cv_deplibs_check_method=pass_all ;; -bsdi4*) +bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; -cygwin* | mingw* | pw32*) - # win32_libid is a shell function defined in ltmain.sh +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='win32_libid' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump'. + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) - # this will be overwritten by pass_all, but leave it in just in case - lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' - lt_cv_file_magic_cmd='/usr/bin/file -L' - case "$host_os" in - rhapsody* | darwin1.[012]) - lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System` - ;; - *) # Darwin 1.3 on - lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' - ;; - esac lt_cv_deplibs_check_method=pass_all ;; @@ -3861,38 +3878,18 @@ ;; irix5* | irix6* | nonstopux*) - case $host_os in - irix5* | nonstopux*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" - ;; - *) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" - ;; + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; esac - lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux*) - # linux always uses pass_all now, this code is the old way (tm) - case $host_cpu in - alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh*) - lt_cv_deplibs_check_method=pass_all ;; - *) - # glibc up to 2.1.1 does not perform some relocations on ARM - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; - esac lt_cv_deplibs_check_method=pass_all - lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; netbsd*) @@ -3914,19 +3911,14 @@ ;; openbsd*) - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else - lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' - lt_cv_file_magic_test_file=/shlib/libc.so lt_cv_deplibs_check_method=pass_all ;; @@ -3936,7 +3928,6 @@ solaris*) lt_cv_deplibs_check_method=pass_all - lt_cv_file_magic_test_file=/lib/libc.so ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) @@ -4016,7 +4007,7 @@ ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 4019 "configure"' > conftest.$ac_ext + echo '#line 4010 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -4577,7 +4568,7 @@ echo $ECHO_N "(cached) $ECHO_C" >&6 else i=0 - testring="ABCD" + teststring="ABCD" case $build_os in msdosdjgpp*) @@ -4612,20 +4603,34 @@ lt_cv_sys_max_cmd_len=8192; ;; + netbsd* | freebsd* | openbsd* | darwin* ) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for *BSD + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + ;; + *) # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while (test "X"`$CONFIG_SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \ - = "XX$testring") >/dev/null 2>&1 && - new_result=`expr "X$testring" : ".*" 2>&1` && + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` - testring=$testring$testring + teststring=$teststring$teststring done - testring= + teststring= # Add a significant safety factor because C++ compilers can tack on massive # amounts of additional arguments before passing them to the linker. # It appears as though 1/2 is a usable value. @@ -4686,6 +4691,13 @@ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; +linux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDGIRSTW]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + fi + ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; @@ -5185,6 +5197,8 @@ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi +cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` + # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) @@ -5460,11 +5474,11 @@ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:5463: $lt_compile\"" >&5) + (eval echo "\"\$as_me:5477: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:5467: \$? = $ac_status" >&5 + echo "$as_me:5481: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -5571,6 +5585,16 @@ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case "$cc_basename" in + xlc*) + lt_prog_compiler_pic='-qnocommon' + lt_prog_compiler_wl='-Wl,' + ;; + esac + ;; mingw* | pw32* | os2*) # This hack is so that the source file can tell whether it is being @@ -5693,11 +5717,11 @@ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:5696: $lt_compile\"" >&5) + (eval echo "\"\$as_me:5720: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:5700: \$? = $ac_status" >&5 + echo "$as_me:5724: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -5744,13 +5768,6 @@ mkdir out printf "$lt_simple_compile_test_code" > conftest.$ac_ext - # According to Tom Tromey, Ian Lance Taylor reported there are C compilers - # that will create temporary files in the current directory regardless of - # the output directory. Thus, making CWD read-only will cause this test - # to fail, enabling locking or at least warning the user not to do parallel - # builds. - chmod -w . - lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. @@ -5760,11 +5777,11 @@ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:5763: $lt_compile\"" >&5) + (eval echo "\"\$as_me:5780: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:5767: \$? = $ac_status" >&5 + echo "$as_me:5784: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -5976,7 +5993,7 @@ ;; linux*) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_cmds="$tmp_archive_cmds" supports_anon_versioning=no @@ -6264,7 +6281,7 @@ ld_shlibs=no ;; - bsdi4*) + bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; @@ -6278,7 +6295,7 @@ # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. - shrext=".dll" + shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. @@ -6290,52 +6307,52 @@ ;; darwin* | rhapsody*) - if test "$GXX" = yes ; then - archive_cmds_need_lc=no case "$host_os" in - rhapsody* | darwin1.[012]) - allow_undefined_flag='-undefined suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag='-flat_namespace -undefined suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag='-flat_namespace -undefined suppress' - ;; - 10.*) - allow_undefined_flag='-undefined dynamic_lookup' - ;; - esac - fi - ;; + rhapsody* | darwin1.[012]) + allow_undefined_flag='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; esac - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then - lt_int_apple_cc_single_mod=yes - fi - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_cmds='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - else - archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - fi - module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's - if test "X$lt_int_apple_cc_single_mod" = Xyes ; then - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - else - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - fi - module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='-all_load $convenience' + whole_archive_flag_spec='' link_all_deplibs=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else - ld_shlibs=no + case "$cc_basename" in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs=no + ;; + esac fi ;; @@ -6480,6 +6497,7 @@ hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else @@ -6734,7 +6752,7 @@ library_names_spec= libname_spec='lib$name' soname_spec= -shrext=".so" +shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= @@ -6831,7 +6849,7 @@ shlibpath_var=LIBRARY_PATH ;; -bsdi4*) +bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -6847,7 +6865,7 @@ cygwin* | mingw* | pw32*) version_type=windows - shrext=".dll" + shrext_cmds=".dll" need_version=no need_lib_prefix=no @@ -6912,7 +6930,7 @@ soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH - shrext='$(test .$module = .yes && echo .so || echo .dylib)' + shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)' # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. if test "$GCC" = yes; then sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` @@ -6995,7 +7013,7 @@ need_version=no case "$host_cpu" in ia64*) - shrext='.so' + shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH @@ -7010,7 +7028,7 @@ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) - shrext='.sl' + shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH @@ -7021,7 +7039,7 @@ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) - shrext='.sl' + shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH @@ -7090,6 +7108,12 @@ # before this can be enabled. hardcode_into_libs=yes + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, @@ -7099,6 +7123,18 @@ dynamic_linker='GNU/Linux ld.so' ;; +knetbsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -7108,7 +7144,7 @@ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi @@ -7157,7 +7193,7 @@ os2*) libname_spec='$name' - shrext=".dll" + shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' @@ -7259,8 +7295,8 @@ echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var " || \ - test "X$hardcode_automatic"="Xyes" ; then + test -n "$runpath_var" || \ + test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && @@ -7926,7 +7962,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext <&5 @@ -8334,7 +8333,7 @@ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. -if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # The names of the tagged configurations supported by this script. available_tags= @@ -8425,7 +8424,7 @@ libext="$libext" # Shared library suffix (normally ".so"). -shrext='$shrext' +shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" @@ -14587,7 +14586,6 @@ s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t -s,@AMTAR@,$AMTAR,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t @@ -14596,6 +14594,9 @@ s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t +s,@AMTAR@,$AMTAR,;t t +s,@am__tar@,$am__tar,;t t +s,@am__untar@,$am__untar,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t @@ -15265,27 +15266,21 @@ else continue fi - grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue diff -rNu smalltalk-2.1.9/sigsegv/src/Makefile.in smalltalk-2.1.10/sigsegv/src/Makefile.in --- smalltalk-2.1.9/sigsegv/src/Makefile.in 2004-10-02 15:34:06.000000000 +0200 +++ smalltalk-2.1.10/sigsegv/src/Makefile.in 2005-02-03 09:32:34.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -37,6 +37,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ subdir = src DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ @@ -55,7 +56,7 @@ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = sigsegv.h LTLIBRARIES = $(noinst_LTLIBRARIES) @@ -68,11 +69,11 @@ am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ +LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libsigsegv_la_SOURCES) DIST_SOURCES = $(libsigsegv_la_SOURCES) @@ -148,6 +149,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -381,7 +384,7 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @@ -443,7 +446,7 @@ install install-am install-data install-data-am \ install-data-local install-exec install-exec-am install-info \ install-info-am install-man install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ + installcheck-am installdirs installdirs-local maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am uninstall-local diff -rNu smalltalk-2.1.9/sigsegv/tests/Makefile.in smalltalk-2.1.10/sigsegv/tests/Makefile.in --- smalltalk-2.1.9/sigsegv/tests/Makefile.in 2004-10-02 15:25:33.000000000 +0200 +++ smalltalk-2.1.10/sigsegv/tests/Makefile.in 2005-02-03 09:32:35.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -36,6 +36,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = sigsegv1$(EXEEXT) sigsegv2$(EXEEXT) \ stackoverflow1$(EXEEXT) stackoverflow2$(EXEEXT) @@ -55,7 +56,7 @@ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = PROGRAMS = $(noinst_PROGRAMS) @@ -80,11 +81,11 @@ am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ +LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = sigsegv1.c sigsegv2.c stackoverflow1.c stackoverflow2.c DIST_SOURCES = sigsegv1.c sigsegv2.c stackoverflow1.c stackoverflow2.c @@ -159,6 +160,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -442,7 +445,7 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" diff -rNu smalltalk-2.1.9/snprintfv/Makefile.am smalltalk-2.1.10/snprintfv/Makefile.am --- smalltalk-2.1.9/snprintfv/Makefile.am 2003-12-13 10:19:30.000000000 +0100 +++ smalltalk-2.1.10/snprintfv/Makefile.am 2004-11-25 15:19:19.000000000 +0100 @@ -29,14 +29,7 @@ ACLOCAL_AMFLAGS = -I ../config AUTOMAKE_OPTIONS = gnits -dist-hook: -if SUBDIR_SNPRINTFV - rm -rf $(distdir)/doc $(distdir)/tests SUBDIRS = snprintfv -else -SUBDIRS = snprintfv doc tests -endif - DIST_SUBDIRS = $(SUBDIRS) MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure config.h.in \ diff -rNu smalltalk-2.1.9/snprintfv/Makefile.in smalltalk-2.1.10/snprintfv/Makefile.in --- smalltalk-2.1.9/snprintfv/Makefile.in 2004-10-02 15:25:20.000000000 +0200 +++ smalltalk-2.1.10/snprintfv/Makefile.in 2005-02-02 14:52:10.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -36,13 +36,19 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ DIST_COMMON = README $(am__configure_deps) $(dist_aclocal_DATA) \ - $(dist_noinst_SCRIPTS) $(srcdir)/Makefile.am \ - $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(top_srcdir)/configure AUTHORS COPYING COPYING.DOC ChangeLog \ - INSTALL NEWS THANKS TODO compile config.guess config.sub \ - depcomp install-sh ltmain.sh missing mkinstalldirs + $(dist_noinst_SCRIPTS) $(srcdir)/../config/config.guess \ + $(srcdir)/../config/config.sub $(srcdir)/../config/install-sh \ + $(srcdir)/../config/ltmain.sh $(srcdir)/../config/missing \ + $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/config.h.in $(top_srcdir)/configure \ + ../config/compile ../config/config.guess \ + ../config/config.rpath ../config/config.sub ../config/depcomp \ + ../config/elisp-comp ../config/install-sh ../config/ltmain.sh \ + ../config/missing AUTHORS COPYING COPYING.DOC ChangeLog \ + INSTALL NEWS THANKS TODO ltmain.sh subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/libtool-tags.m4 \ @@ -52,7 +58,7 @@ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = SCRIPTS = $(dist_noinst_SCRIPTS) @@ -64,6 +70,12 @@ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(aclocaldir)" dist_aclocalDATA_INSTALL = $(INSTALL_DATA) DATA = $(dist_aclocal_DATA) @@ -163,6 +175,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -195,8 +209,7 @@ target_alias = @target_alias@ ACLOCAL_AMFLAGS = -I ../config AUTOMAKE_OPTIONS = gnits -@SUBDIR_SNPRINTFV_FALSE@SUBDIRS = snprintfv doc tests -@SUBDIR_SNPRINTFV_TRUE@SUBDIRS = snprintfv +SUBDIRS = snprintfv DIST_SUBDIRS = $(SUBDIRS) MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure config.h.in \ stamp-h.in @@ -274,7 +287,7 @@ test -z "$(aclocaldir)" || $(mkdir_p) "$(DESTDIR)$(aclocaldir)" @list='$(dist_aclocal_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(dist_aclocalDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(aclocaldir)/$$f'"; \ $(dist_aclocalDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(aclocaldir)/$$f"; \ done @@ -282,7 +295,7 @@ uninstall-dist_aclocalDATA: @$(NORMAL_UNINSTALL) @list='$(dist_aclocal_DATA)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(aclocaldir)/$$f'"; \ rm -f "$(DESTDIR)$(aclocaldir)/$$f"; \ done @@ -446,34 +459,33 @@ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ - || mkdir "$(distdir)/$$subdir" \ + || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="../$(top_distdir)" \ - distdir="../$(distdir)/$$subdir" \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" distdir="$(distdir)" \ - dist-hook -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir - $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2 + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir - $(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir @@ -486,7 +498,7 @@ $(am__remove_distdir) dist dist-all: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then @@ -495,11 +507,11 @@ distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - ;;\ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ - bunzip2 -c $(distdir).tar.bz2 | $(AMTAR) xf - ;;\ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(AMTAR) xf - ;;\ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ @@ -583,7 +595,7 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -659,9 +671,6 @@ uninstall-dist_aclocalDATA uninstall-info-am -dist-hook: -@SUBDIR_SNPRINTFV_TRUE@ rm -rf $(distdir)/doc $(distdir)/tests - # Makefile.am ends here # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -rNu smalltalk-2.1.9/snprintfv/aclocal.m4 smalltalk-2.1.10/snprintfv/aclocal.m4 --- smalltalk-2.1.9/snprintfv/aclocal.m4 2004-10-02 15:25:12.000000000 +0200 +++ smalltalk-2.1.10/snprintfv/aclocal.m4 2005-02-02 14:51:22.000000000 +0100 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.8.5 -*- Autoconf -*- +# generated automatically by aclocal 1.9.2 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 # Free Software Foundation, Inc. @@ -33,14 +33,14 @@ # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. -AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.8"]) +AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.8.5])]) + [AM_AUTOMAKE_VERSION([1.9.2])]) # AM_AUX_DIR_EXPAND @@ -142,7 +142,7 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003 Free Software Foundation, Inc. +# Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -179,8 +179,8 @@ fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]) + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) fi])]) # serial 7 -*- Autoconf -*- @@ -353,7 +353,8 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 +# Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -389,27 +390,21 @@ else continue fi - grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue @@ -479,7 +474,7 @@ # This macro actually does too much some checks are only needed if # your package does certain things. But this isn't really a big deal. -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -555,7 +550,6 @@ AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) -AM_MISSING_PROG(AMTAR, tar) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl @@ -564,7 +558,9 @@ AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl - +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], @@ -847,13 +843,21 @@ # this.) AC_DEFUN([AM_PROG_MKDIR_P], [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # Keeping the `.' argument allows $(mkdir_p) to be used without - # argument. Indeed, we sometimes output rules like + # We used to keeping the `.' as first argument, in order to + # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. - # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more - # expensive solution, as it forces Make to start a sub-shell.) - mkdir_p='mkdir -p -- .' + # where $(somedir) is conditionally defined. However this is wrong + # for two reasons: + # 1. if the package is installed by a user who cannot write `.' + # make install will fail, + # 2. the above comment should most certainly read + # $(mkdir_p) $(DESTDIR)$(somedir) + # so it does not work when $(somedir) is undefined and + # $(DESTDIR) is not. + # To support the latter case, we have to write + # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), + # so the `.' trick is pointless. + mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as @@ -1019,6 +1023,114 @@ INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004 Free Software Foundation, Inc. + +# This program 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 program 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 this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 1 + + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + m4_include([../config/libtool-tags.m4]) m4_include([../config/libtool.m4]) m4_include([../config/ltdl.m4]) diff -rNu smalltalk-2.1.9/snprintfv/compile smalltalk-2.1.10/snprintfv/compile --- smalltalk-2.1.9/snprintfv/compile 2003-12-13 10:19:29.000000000 +0100 +++ smalltalk-2.1.10/snprintfv/compile 1970-01-01 01:00:00.000000000 +0100 @@ -1,99 +0,0 @@ -#! /bin/sh - -# Wrapper for compilers which do not understand `-c -o'. - -# Copyright 1999, 2000 Free Software Foundation, Inc. -# Written by Tom Tromey . -# -# This program 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 program 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 this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Usage: -# compile PROGRAM [ARGS]... -# `-o FOO.o' is removed from the args passed to the actual compile. - -prog=$1 -shift - -ofile= -cfile= -args= -while test $# -gt 0; do - case "$1" in - -o) - # configure might choose to run compile as `compile cc -o foo foo.c'. - # So we do something ugly here. - ofile=$2 - shift - case "$ofile" in - *.o | *.obj) - ;; - *) - args="$args -o $ofile" - ofile= - ;; - esac - ;; - *.c) - cfile=$1 - args="$args $1" - ;; - *) - args="$args $1" - ;; - esac - shift -done - -if test -z "$ofile" || test -z "$cfile"; then - # If no `-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # `.c' file was seen then we are probably linking. That is also - # ok. - exec "$prog" $args -fi - -# Name of file we expect compiler to create. -cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'` - -# Create the lock directory. -# Note: use `[/.-]' here to ensure that we don't use the same name -# that we are using for the .o file. Also, base the name on the expected -# object file name, since that is what matters with a parallel build. -lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d -while true; do - if mkdir $lockdir > /dev/null 2>&1; then - break - fi - sleep 1 -done -# FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir $lockdir; exit 1" 1 2 15 - -# Run the compile. -"$prog" $args -status=$? - -if test -f "$cofile"; then - mv "$cofile" "$ofile" -fi - -rmdir $lockdir -exit $status diff -rNu smalltalk-2.1.9/snprintfv/config.guess smalltalk-2.1.10/snprintfv/config.guess --- smalltalk-2.1.9/snprintfv/config.guess 2003-12-13 10:19:30.000000000 +0100 +++ smalltalk-2.1.10/snprintfv/config.guess 1970-01-01 01:00:00.000000000 +0100 @@ -1,1388 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -timestamp='2003-05-09' - -# This file 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 of the License, or -# (at your option) any later version. -# -# This program 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 this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit 0 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit 0 ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit 0;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit 0 ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit 0;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit 0 ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit 0 ;; - DRS?6000:UNIX_SV:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7 && exit 0 ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit 0 ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit 0 ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && exit 0 - echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit 0 ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit 0 ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit 0 ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit 0 ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit 0 ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit 0 ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit 0 ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit 0 ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit 0 ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit 0 ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit 0 ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit 0 ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 - echo rs6000-ibm-aix3.2.5 - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit 0 ;; - *:AIX:*:[45]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit 0 ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit 0 ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit 0 ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit 0 ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit 0 ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - # avoid double evaluation of $set_cc_for_build - test -n "$CC_FOR_BUILD" || eval $set_cc_for_build - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 - echo unknown-hitachi-hiuxwe2 - exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit 0 ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit 0 ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit 0 ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit 0 ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit 0 ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit 0 ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit 0 ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit 0 ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit 0 ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit 0 ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit 0 ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - *:UNICOS/mp:*:*) - echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:FreeBSD:*:*|*:GNU/FreeBSD:*:*) - # Determine whether the default compiler uses glibc. - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #if __GLIBC__ >= 2 - LIBC=gnu - #else - LIBC= - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} - exit 0 ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - x86:Interix*:3*) - echo i586-pc-interix3 - exit 0 ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit 0 ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit 0 ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit 0 ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - *:GNU:*:*) - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; - arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 - ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit 0 ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit 0 ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit 0 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit 0 ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit 0 ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #ifdef __INTEL_COMPILER - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit 0 ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit 0 ;; - i*86:*:5:[78]*) - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit 0 ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit 0 ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit 0 ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit 0 ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit 0 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit 0 ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit 0 ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit 0 ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit 0 ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit 0 ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit 0 ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit 0 ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit 0 ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit 0 ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit 0 ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit 0 ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit 0 ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Darwin:*:*) - case `uname -p` in - *86) UNAME_PROCESSOR=i686 ;; - powerpc) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit 0 ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit 0 ;; - NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit 0 ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit 0 ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit 0 ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit 0 ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit 0 ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit 0 ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit 0 ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit 0 ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff -rNu smalltalk-2.1.9/snprintfv/config.sub smalltalk-2.1.10/snprintfv/config.sub --- smalltalk-2.1.9/snprintfv/config.sub 2003-12-13 10:19:29.000000000 +0100 +++ smalltalk-2.1.10/snprintfv/config.sub 1970-01-01 01:00:00.000000000 +0100 @@ -1,1492 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. - -timestamp='2003-05-09' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file 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 of the License, or -# (at your option) any later version. -# -# This program 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 this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit 0;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k \ - | m32r | m68000 | m68k | m88k | mcore \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64vr | mips64vrel \ - | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | msp430 \ - | ns16k | ns32k \ - | openrisc | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xscale | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ - | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* \ - | m32r-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | msp430-* \ - | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ - | xtensa-* \ - | ymp-* \ - | z8k-*) - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - crds | unos) - basic_machine=m68k-crds - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nv1) - basic_machine=nv1-cray - os=-unicosmp - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - or32 | or32-*) - basic_machine=or32-unknown - os=-coff - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2) - basic_machine=i686-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic4x | c4x*) - basic_machine=tic4x-unknown - os=-coff - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv9 | sparcv9b) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-ibm) - os=-aix - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff -rNu smalltalk-2.1.9/snprintfv/configure smalltalk-2.1.10/snprintfv/configure --- smalltalk-2.1.9/snprintfv/configure 2004-10-02 15:25:17.000000000 +0200 +++ smalltalk-2.1.10/snprintfv/configure 2005-02-02 14:52:06.000000000 +0100 @@ -461,7 +461,7 @@ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT SNV_CURRENT SNV_REVISION SNV_AGE build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP CPP LIBTOOL SUBDIR_SNPRINTFV_TRUE SUBDIR_SNPRINTFV_FALSE INSTALL_SNPRINTFV_TRUE INSTALL_SNPRINTFV_FALSE installed_libsnprintfv CONVENIENCE_SNPRINTFV_TRUE CONVENIENCE_SNPRINTFV_FALSE convenience_libsnprintfv LIBSNPRINTFVC_PRINT_FLOATS INSTALL_LTDL_TRUE INSTALL_LTDL_FALSE CONVENIENCE_LTDL_TRUE CONVENIENCE_LTDL_FALSE LIBADD_DL LTLIBOBJS INCLUDES ac_aux_dir LIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT SNV_CURRENT SNV_REVISION SNV_AGE build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP CPP LIBTOOL SUBDIR_SNPRINTFV_TRUE SUBDIR_SNPRINTFV_FALSE INSTALL_SNPRINTFV_TRUE INSTALL_SNPRINTFV_FALSE installed_libsnprintfv CONVENIENCE_SNPRINTFV_TRUE CONVENIENCE_SNPRINTFV_FALSE convenience_libsnprintfv LIBSNPRINTFVC_PRINT_FLOATS INSTALL_LTDL_TRUE INSTALL_LTDL_FALSE CONVENIENCE_LTDL_TRUE CONVENIENCE_LTDL_FALSE LIBADD_DL LTLIBOBJS INCLUDES ac_aux_dir LIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1491,7 +1491,7 @@ ac_config_headers="$ac_config_headers config.h" ac_aux_dir= -for ac_dir in ../config; do +for ac_dir in ../config $srcdir/../config; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" @@ -1507,8 +1507,8 @@ fi done if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../config" >&5 -echo "$as_me: error: cannot find install-sh or install.sh in ../config" >&2;} + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../config $srcdir/../config" >&5 +echo "$as_me: error: cannot find install-sh or install.sh in ../config $srcdir/../config" >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" @@ -1524,7 +1524,7 @@ enable_subdir=no fi; -am__api_version="1.8" +am__api_version="1.9" # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: @@ -1676,13 +1676,21 @@ fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # Keeping the `.' argument allows $(mkdir_p) to be used without - # argument. Indeed, we sometimes output rules like + # We used to keeping the `.' as first argument, in order to + # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. - # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more - # expensive solution, as it forces Make to start a sub-shell.) - mkdir_p='mkdir -p -- .' + # where $(somedir) is conditionally defined. However this is wrong + # for two reasons: + # 1. if the package is installed by a user who cannot write `.' + # make install will fail, + # 2. the above comment should most certainly read + # $(mkdir_p) $(DESTDIR)$(somedir) + # so it does not work when $(somedir) is undefined and + # $(DESTDIR) is not. + # To support the latter case, we have to write + # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), + # so the `.' trick is pointless. + mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as @@ -1826,9 +1834,6 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -AMTAR=${AMTAR-"${am_missing_run}tar"} - install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user @@ -1921,6 +1926,13 @@ # We need awk for the "check" target. The system "awk" is bad on # some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + @@ -3688,7 +3700,7 @@ ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 3691 "configure"' > conftest.$ac_ext + echo '#line 3703 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -5608,11 +5620,11 @@ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:5611: $lt_compile\"" >&5) + (eval echo "\"\$as_me:5623: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:5615: \$? = $ac_status" >&5 + echo "$as_me:5627: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -5841,11 +5853,11 @@ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:5844: $lt_compile\"" >&5) + (eval echo "\"\$as_me:5856: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:5848: \$? = $ac_status" >&5 + echo "$as_me:5860: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -5908,11 +5920,11 @@ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:5911: $lt_compile\"" >&5) + (eval echo "\"\$as_me:5923: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:5915: \$? = $ac_status" >&5 + echo "$as_me:5927: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -8074,7 +8086,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -15640,8 +15647,6 @@ # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "snprintfv/Makefile" ) CONFIG_FILES="$CONFIG_FILES snprintfv/Makefile" ;; - "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; - "tests/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "snprintfv/compat.h" ) CONFIG_COMMANDS="$CONFIG_COMMANDS snprintfv/compat.h" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; @@ -15741,7 +15746,6 @@ s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t -s,@AMTAR@,$AMTAR,;t t s,@install_sh@,$install_sh,;t t s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t @@ -15750,6 +15754,9 @@ s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@am__leading_dot@,$am__leading_dot,;t t +s,@AMTAR@,$AMTAR,;t t +s,@am__tar@,$am__tar,;t t +s,@am__untar@,$am__untar,;t t s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t s,@MAINT@,$MAINT,;t t @@ -16435,27 +16442,21 @@ else continue fi - grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue diff -rNu smalltalk-2.1.9/snprintfv/configure.ac smalltalk-2.1.10/snprintfv/configure.ac --- smalltalk-2.1.9/snprintfv/configure.ac 2004-02-13 10:02:29.000000000 +0100 +++ smalltalk-2.1.10/snprintfv/configure.ac 2004-11-25 15:19:19.000000000 +0100 @@ -28,7 +28,7 @@ AC_INIT(snprintfv, 1.1, bonzini@gnu.org) AC_CONFIG_SRCDIR(snprintfv/printf.h) AC_CONFIG_HEADERS(config.h) -AC_CONFIG_AUX_DIRS(../config) +AC_CONFIG_AUX_DIR(../config) AC_ARG_ENABLE(subdir, [ --enable-subdir used in a package, libltdl+texinfo+testsuite stripped], , @@ -358,10 +358,6 @@ AC_SUBST(ac_aux_dir) AC_CONFIG_FILES(Makefile snprintfv/Makefile) -if test "x${enable_subdir-no}" = xno; then - AC_CONFIG_FILES(doc/Makefile tests/Makefile) -fi - AC_OUTPUT dnl configure.ac ends here diff -rNu smalltalk-2.1.9/snprintfv/depcomp smalltalk-2.1.10/snprintfv/depcomp --- smalltalk-2.1.9/snprintfv/depcomp 2003-12-13 10:19:29.000000000 +0100 +++ smalltalk-2.1.10/snprintfv/depcomp 1970-01-01 01:00:00.000000000 +0100 @@ -1,464 +0,0 @@ -#! /bin/sh - -# depcomp - compile a program generating dependencies as side-effects -# Copyright 1999, 2000 Free Software Foundation, Inc. - -# This program 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 program 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 this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Alexandre Oliva . - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi -# `libtool' can also be set to `yes' or `no'. - -if test -z "$depfile"; then - base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` - dir=`echo "$object" | sed 's,/.*$,/,'` - if test "$dir" = "$object"; then - dir= - fi - # FIXME: should be _deps on DOS. - depfile="$dir.deps/$base" -fi - -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. - "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the `deleted header file' problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. - tr ' ' ' -' < "$tmpdepfile" | -## Some versions of gcc put a space before the `:'. On the theory -## that the space means something, we add a space to the output as -## well. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like `#:fec' to the end of the - # dependency line. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> $depfile - echo >> $depfile - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> $depfile - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. This file always lives in the current directory. - # Also, the AIX compiler puts `$object:' at the start of each line; - # $object doesn't have directory information. - stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` - tmpdepfile="$stripped.u" - outname="$stripped.o" - if test "$libtool" = yes; then - "$@" -Wc,-M - else - "$@" -M - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - - if test -f "$tmpdepfile"; then - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -icc) - # Must come before tru64. - - # Intel's C compiler understands `-MD -MF file'. However - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^[^:]*: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" - rm -f "$tmpdepfile" - ;; - -tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in `foo.d' instead, so we check for that too. - # Subdirectories are respected. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - tmpdepfile1="$dir.libs/$base.lo.d" - tmpdepfile2="$dir.libs/$base.d" - "$@" -Wc,-MD - else - tmpdepfile1="$dir$base.o.d" - tmpdepfile2="$dir$base.d" - "$@" -MD - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" - exit $stat - fi - - if test -f "$tmpdepfile1"; then - tmpdepfile="$tmpdepfile1" - else - tmpdepfile="$tmpdepfile2" - fi - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a space and a tab in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for `:' - # in the target name. This is to cope with DOS-style filenames: - # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. - "$@" $dashmflag | - sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - "$@" || exit $? - # Remove any Libtool call - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no - for arg in "$@"; do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift ;; - # Strip any option that makedepend may not understand. Remove - # the object too, otherwise makedepend will parse it as a source file. - -*|$object) - ;; - *) - set fnord "$@" "$arg"; shift ;; - esac - done - obj_suffix="`echo $object | sed 's/^.*\././'`" - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test $1 != '--mode=compile'; do - shift - done - shift - fi - - # Remove `-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - "$@" -E | - sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - "$@" || exit $? - IFS=" " - for arg - do - case "$arg" in - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 diff -rNu smalltalk-2.1.9/snprintfv/install-sh smalltalk-2.1.10/snprintfv/install-sh --- smalltalk-2.1.9/snprintfv/install-sh 2003-12-13 10:19:29.000000000 +0100 +++ smalltalk-2.1.10/snprintfv/install-sh 1970-01-01 01:00:00.000000000 +0100 @@ -1,294 +0,0 @@ -#!/bin/sh -# -# install - install a program, script, or datafile -# -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd=$cpprog - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd=$stripprog - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "$0: no input file specified" >&2 - exit 1 -else - : -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d "$dst" ]; then - instcmd=: - chmodcmd="" - else - instcmd=$mkdirprog - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f "$src" ] || [ -d "$src" ] - then - : - else - echo "$0: $src does not exist" >&2 - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "$0: no destination specified" >&2 - exit 1 - else - : - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d "$dst" ] - then - dst=$dst/`basename "$src"` - else - : - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' - ' -IFS="${IFS-$defaultIFS}" - -oIFS=$IFS -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS=$oIFS - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp=$pathcomp$1 - shift - - if [ ! -d "$pathcomp" ] ; - then - $mkdirprog "$pathcomp" - else - : - fi - - pathcomp=$pathcomp/ -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd "$dst" && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename "$dst"` - else - dstfile=`basename "$dst" $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename "$dst"` - else - : - fi - -# Make a couple of temp file names in the proper directory. - - dsttmp=$dstdir/#inst.$$# - rmtmp=$dstdir/#rm.$$# - -# Trap to clean up temp files at exit. - - trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 - trap '(exit $?); exit' 1 2 13 15 - -# Move or copy the file name to the temp name - - $doit $instcmd "$src" "$dsttmp" && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && - -# Now remove or move aside any old file at destination location. We try this -# two ways since rm can't unlink itself on some systems and the destination -# file might be busy for other reasons. In this case, the final cleanup -# might fail but the new file should still install successfully. - -{ - if [ -f "$dstdir/$dstfile" ] - then - $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || - $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || - { - echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 - (exit 1); exit - } - else - : - fi -} && - -# Now rename the file to the real destination. - - $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" - -fi && - -# The final little trick to "correctly" pass the exit status to the exit trap. - -{ - (exit 0); exit -} diff -rNu smalltalk-2.1.9/snprintfv/missing smalltalk-2.1.10/snprintfv/missing --- smalltalk-2.1.9/snprintfv/missing 2003-12-13 10:19:29.000000000 +0100 +++ smalltalk-2.1.10/snprintfv/missing 1970-01-01 01:00:00.000000000 +0100 @@ -1,336 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. -# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc. -# Originally by Fran,cois Pinard , 1996. - -# This program 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 program 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 this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=: - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -case "$1" in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case "$1" in - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch]" - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing 0.4 - GNU automake" - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - - aclocal*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case "$f" in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. - You can get \`$1Help2man' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` - test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if [ ! -f y.tab.h ]; then - echo >y.tab.h - fi - if [ ! -f y.tab.c ]; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if [ ! -f lex.yy.c ]; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` - fi - if [ -f "$file" ]; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit 1 - fi - ;; - - makeinfo) - if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then - # We have makeinfo, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` - fi - touch $file - ;; - - tar) - shift - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - fi - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case "$firstarg" in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case "$firstarg" in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequirements for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 diff -rNu smalltalk-2.1.9/snprintfv/mkinstalldirs smalltalk-2.1.10/snprintfv/mkinstalldirs --- smalltalk-2.1.9/snprintfv/mkinstalldirs 2003-12-13 10:19:29.000000000 +0100 +++ smalltalk-2.1.10/snprintfv/mkinstalldirs 1970-01-01 01:00:00.000000000 +0100 @@ -1,111 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman -# Created: 1993-05-16 -# Public domain - -errstatus=0 -dirmode="" - -usage="\ -Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." - -# process command line arguments -while test $# -gt 0 ; do - case $1 in - -h | --help | --h*) # -h for help - echo "$usage" 1>&2 - exit 0 - ;; - -m) # -m PERM arg - shift - test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } - dirmode=$1 - shift - ;; - --) # stop option processing - shift - break - ;; - -*) # unknown option - echo "$usage" 1>&2 - exit 1 - ;; - *) # first non-opt arg - break - ;; - esac -done - -for file -do - if test -d "$file"; then - shift - else - break - fi -done - -case $# in - 0) exit 0 ;; -esac - -case $dirmode in - '') - if mkdir -p -- . 2>/dev/null; then - echo "mkdir -p -- $*" - exec mkdir -p -- "$@" - fi - ;; - *) - if mkdir -m "$dirmode" -p -- . 2>/dev/null; then - echo "mkdir -m $dirmode -p -- $*" - exec mkdir -m "$dirmode" -p -- "$@" - fi - ;; -esac - -for file -do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case $pathcomp in - -*) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - else - if test ! -z "$dirmode"; then - echo "chmod $dirmode $pathcomp" - lasterr="" - chmod "$dirmode" "$pathcomp" || lasterr=$? - - if test ! -z "$lasterr"; then - errstatus=$lasterr - fi - fi - fi - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# End: -# mkinstalldirs ends here diff -rNu smalltalk-2.1.9/snprintfv/snprintfv/Makefile.in smalltalk-2.1.10/snprintfv/snprintfv/Makefile.in --- smalltalk-2.1.9/snprintfv/snprintfv/Makefile.in 2004-10-02 15:25:20.000000000 +0200 +++ smalltalk-2.1.10/snprintfv/snprintfv/Makefile.in 2005-02-02 14:52:09.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -38,6 +38,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ subdir = snprintfv DIST_COMMON = $(am__include_HEADERS_DIST) $(am__noinst_HEADERS_DIST) \ @@ -49,10 +50,17 @@ $(top_srcdir)/../config/ltdl.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkgincludedir)" +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" \ + "$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkgincludedir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = @@ -67,26 +75,15 @@ libsnprintfvc_la-custom.lo libsnprintfvc_la-dl-no.lo libsnprintfvc_la_OBJECTS = $(am_libsnprintfvc_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp +depcomp = $(SHELL) $(top_srcdir)/../config/depcomp am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/custom.Plo ./$(DEPDIR)/dl-yes.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/filament.Plo ./$(DEPDIR)/format.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/libsnprintfvc_la-custom.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/libsnprintfvc_la-dl-no.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/libsnprintfvc_la-filament.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/libsnprintfvc_la-format.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/libsnprintfvc_la-mem.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/libsnprintfvc_la-printf.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/libsnprintfvc_la-stream.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/ltdl.Plo ./$(DEPDIR)/mem.Plo \ -@AMDEP_TRUE@ ./$(DEPDIR)/printf.Plo ./$(DEPDIR)/stream.Plo COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ +LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libsnprintfv_la_SOURCES) $(libsnprintfvc_la_SOURCES) DIST_SOURCES = $(libsnprintfv_la_SOURCES) $(libsnprintfvc_la_SOURCES) @@ -186,6 +183,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -320,7 +319,7 @@ test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ @@ -328,8 +327,8 @@ uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ - p="`echo $$p | sed -e 's|^.*/||'`"; \ + @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done @@ -382,193 +381,71 @@ @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -libsnprintfvc_la-filament.o: filament.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-filament.o -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-filament.Tpo" -c -o libsnprintfvc_la-filament.o `test -f 'filament.c' || echo '$(srcdir)/'`filament.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-filament.Tpo" "$(DEPDIR)/libsnprintfvc_la-filament.Po"; else rm -f "$(DEPDIR)/libsnprintfvc_la-filament.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='filament.c' object='libsnprintfvc_la-filament.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-filament.Po' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-filament.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-filament.o `test -f 'filament.c' || echo '$(srcdir)/'`filament.c - -libsnprintfvc_la-filament.obj: filament.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-filament.obj -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-filament.Tpo" -c -o libsnprintfvc_la-filament.obj `if test -f 'filament.c'; then $(CYGPATH_W) 'filament.c'; else $(CYGPATH_W) '$(srcdir)/filament.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-filament.Tpo" "$(DEPDIR)/libsnprintfvc_la-filament.Po"; else rm -f "$(DEPDIR)/libsnprintfvc_la-filament.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='filament.c' object='libsnprintfvc_la-filament.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-filament.Po' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-filament.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-filament.obj `if test -f 'filament.c'; then $(CYGPATH_W) 'filament.c'; else $(CYGPATH_W) '$(srcdir)/filament.c'; fi` - libsnprintfvc_la-filament.lo: filament.c -@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-filament.lo -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-filament.Tpo" -c -o libsnprintfvc_la-filament.lo `test -f 'filament.c' || echo '$(srcdir)/'`filament.c; \ +@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-filament.lo -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-filament.Tpo" -c -o libsnprintfvc_la-filament.lo `test -f 'filament.c' || echo '$(srcdir)/'`filament.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-filament.Tpo" "$(DEPDIR)/libsnprintfvc_la-filament.Plo"; else rm -f "$(DEPDIR)/libsnprintfvc_la-filament.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='filament.c' object='libsnprintfvc_la-filament.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-filament.Plo' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-filament.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-filament.lo `test -f 'filament.c' || echo '$(srcdir)/'`filament.c - -libsnprintfvc_la-format.o: format.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-format.o -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-format.Tpo" -c -o libsnprintfvc_la-format.o `test -f 'format.c' || echo '$(srcdir)/'`format.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-format.Tpo" "$(DEPDIR)/libsnprintfvc_la-format.Po"; else rm -f "$(DEPDIR)/libsnprintfvc_la-format.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='format.c' object='libsnprintfvc_la-format.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-format.Po' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-format.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-format.o `test -f 'format.c' || echo '$(srcdir)/'`format.c - -libsnprintfvc_la-format.obj: format.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-format.obj -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-format.Tpo" -c -o libsnprintfvc_la-format.obj `if test -f 'format.c'; then $(CYGPATH_W) 'format.c'; else $(CYGPATH_W) '$(srcdir)/format.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-format.Tpo" "$(DEPDIR)/libsnprintfvc_la-format.Po"; else rm -f "$(DEPDIR)/libsnprintfvc_la-format.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='format.c' object='libsnprintfvc_la-format.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-format.Po' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-format.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-format.obj `if test -f 'format.c'; then $(CYGPATH_W) 'format.c'; else $(CYGPATH_W) '$(srcdir)/format.c'; fi` +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-filament.lo `test -f 'filament.c' || echo '$(srcdir)/'`filament.c libsnprintfvc_la-format.lo: format.c -@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-format.lo -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-format.Tpo" -c -o libsnprintfvc_la-format.lo `test -f 'format.c' || echo '$(srcdir)/'`format.c; \ +@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-format.lo -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-format.Tpo" -c -o libsnprintfvc_la-format.lo `test -f 'format.c' || echo '$(srcdir)/'`format.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-format.Tpo" "$(DEPDIR)/libsnprintfvc_la-format.Plo"; else rm -f "$(DEPDIR)/libsnprintfvc_la-format.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='format.c' object='libsnprintfvc_la-format.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-format.Plo' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-format.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-format.lo `test -f 'format.c' || echo '$(srcdir)/'`format.c - -libsnprintfvc_la-printf.o: printf.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-printf.o -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-printf.Tpo" -c -o libsnprintfvc_la-printf.o `test -f 'printf.c' || echo '$(srcdir)/'`printf.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-printf.Tpo" "$(DEPDIR)/libsnprintfvc_la-printf.Po"; else rm -f "$(DEPDIR)/libsnprintfvc_la-printf.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='printf.c' object='libsnprintfvc_la-printf.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-printf.Po' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-printf.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-printf.o `test -f 'printf.c' || echo '$(srcdir)/'`printf.c - -libsnprintfvc_la-printf.obj: printf.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-printf.obj -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-printf.Tpo" -c -o libsnprintfvc_la-printf.obj `if test -f 'printf.c'; then $(CYGPATH_W) 'printf.c'; else $(CYGPATH_W) '$(srcdir)/printf.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-printf.Tpo" "$(DEPDIR)/libsnprintfvc_la-printf.Po"; else rm -f "$(DEPDIR)/libsnprintfvc_la-printf.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='printf.c' object='libsnprintfvc_la-printf.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-printf.Po' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-printf.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-printf.obj `if test -f 'printf.c'; then $(CYGPATH_W) 'printf.c'; else $(CYGPATH_W) '$(srcdir)/printf.c'; fi` +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-format.lo `test -f 'format.c' || echo '$(srcdir)/'`format.c libsnprintfvc_la-printf.lo: printf.c -@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-printf.lo -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-printf.Tpo" -c -o libsnprintfvc_la-printf.lo `test -f 'printf.c' || echo '$(srcdir)/'`printf.c; \ +@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-printf.lo -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-printf.Tpo" -c -o libsnprintfvc_la-printf.lo `test -f 'printf.c' || echo '$(srcdir)/'`printf.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-printf.Tpo" "$(DEPDIR)/libsnprintfvc_la-printf.Plo"; else rm -f "$(DEPDIR)/libsnprintfvc_la-printf.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='printf.c' object='libsnprintfvc_la-printf.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-printf.Plo' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-printf.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-printf.lo `test -f 'printf.c' || echo '$(srcdir)/'`printf.c - -libsnprintfvc_la-mem.o: mem.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-mem.o -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-mem.Tpo" -c -o libsnprintfvc_la-mem.o `test -f 'mem.c' || echo '$(srcdir)/'`mem.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-mem.Tpo" "$(DEPDIR)/libsnprintfvc_la-mem.Po"; else rm -f "$(DEPDIR)/libsnprintfvc_la-mem.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mem.c' object='libsnprintfvc_la-mem.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-mem.Po' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-mem.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-mem.o `test -f 'mem.c' || echo '$(srcdir)/'`mem.c - -libsnprintfvc_la-mem.obj: mem.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-mem.obj -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-mem.Tpo" -c -o libsnprintfvc_la-mem.obj `if test -f 'mem.c'; then $(CYGPATH_W) 'mem.c'; else $(CYGPATH_W) '$(srcdir)/mem.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-mem.Tpo" "$(DEPDIR)/libsnprintfvc_la-mem.Po"; else rm -f "$(DEPDIR)/libsnprintfvc_la-mem.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mem.c' object='libsnprintfvc_la-mem.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-mem.Po' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-mem.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-mem.obj `if test -f 'mem.c'; then $(CYGPATH_W) 'mem.c'; else $(CYGPATH_W) '$(srcdir)/mem.c'; fi` +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-printf.lo `test -f 'printf.c' || echo '$(srcdir)/'`printf.c libsnprintfvc_la-mem.lo: mem.c -@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-mem.lo -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-mem.Tpo" -c -o libsnprintfvc_la-mem.lo `test -f 'mem.c' || echo '$(srcdir)/'`mem.c; \ +@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-mem.lo -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-mem.Tpo" -c -o libsnprintfvc_la-mem.lo `test -f 'mem.c' || echo '$(srcdir)/'`mem.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-mem.Tpo" "$(DEPDIR)/libsnprintfvc_la-mem.Plo"; else rm -f "$(DEPDIR)/libsnprintfvc_la-mem.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mem.c' object='libsnprintfvc_la-mem.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-mem.Plo' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-mem.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-mem.lo `test -f 'mem.c' || echo '$(srcdir)/'`mem.c - -libsnprintfvc_la-stream.o: stream.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-stream.o -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-stream.Tpo" -c -o libsnprintfvc_la-stream.o `test -f 'stream.c' || echo '$(srcdir)/'`stream.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-stream.Tpo" "$(DEPDIR)/libsnprintfvc_la-stream.Po"; else rm -f "$(DEPDIR)/libsnprintfvc_la-stream.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stream.c' object='libsnprintfvc_la-stream.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-stream.Po' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-stream.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-stream.o `test -f 'stream.c' || echo '$(srcdir)/'`stream.c - -libsnprintfvc_la-stream.obj: stream.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-stream.obj -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-stream.Tpo" -c -o libsnprintfvc_la-stream.obj `if test -f 'stream.c'; then $(CYGPATH_W) 'stream.c'; else $(CYGPATH_W) '$(srcdir)/stream.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-stream.Tpo" "$(DEPDIR)/libsnprintfvc_la-stream.Po"; else rm -f "$(DEPDIR)/libsnprintfvc_la-stream.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stream.c' object='libsnprintfvc_la-stream.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-stream.Po' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-stream.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-stream.obj `if test -f 'stream.c'; then $(CYGPATH_W) 'stream.c'; else $(CYGPATH_W) '$(srcdir)/stream.c'; fi` +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-mem.lo `test -f 'mem.c' || echo '$(srcdir)/'`mem.c libsnprintfvc_la-stream.lo: stream.c -@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-stream.lo -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-stream.Tpo" -c -o libsnprintfvc_la-stream.lo `test -f 'stream.c' || echo '$(srcdir)/'`stream.c; \ +@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-stream.lo -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-stream.Tpo" -c -o libsnprintfvc_la-stream.lo `test -f 'stream.c' || echo '$(srcdir)/'`stream.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-stream.Tpo" "$(DEPDIR)/libsnprintfvc_la-stream.Plo"; else rm -f "$(DEPDIR)/libsnprintfvc_la-stream.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stream.c' object='libsnprintfvc_la-stream.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-stream.Plo' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-stream.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-stream.lo `test -f 'stream.c' || echo '$(srcdir)/'`stream.c - -libsnprintfvc_la-custom.o: custom.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-custom.o -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-custom.Tpo" -c -o libsnprintfvc_la-custom.o `test -f 'custom.c' || echo '$(srcdir)/'`custom.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-custom.Tpo" "$(DEPDIR)/libsnprintfvc_la-custom.Po"; else rm -f "$(DEPDIR)/libsnprintfvc_la-custom.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='custom.c' object='libsnprintfvc_la-custom.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-custom.Po' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-custom.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-custom.o `test -f 'custom.c' || echo '$(srcdir)/'`custom.c - -libsnprintfvc_la-custom.obj: custom.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-custom.obj -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-custom.Tpo" -c -o libsnprintfvc_la-custom.obj `if test -f 'custom.c'; then $(CYGPATH_W) 'custom.c'; else $(CYGPATH_W) '$(srcdir)/custom.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-custom.Tpo" "$(DEPDIR)/libsnprintfvc_la-custom.Po"; else rm -f "$(DEPDIR)/libsnprintfvc_la-custom.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='custom.c' object='libsnprintfvc_la-custom.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-custom.Po' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-custom.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-custom.obj `if test -f 'custom.c'; then $(CYGPATH_W) 'custom.c'; else $(CYGPATH_W) '$(srcdir)/custom.c'; fi` +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-stream.lo `test -f 'stream.c' || echo '$(srcdir)/'`stream.c libsnprintfvc_la-custom.lo: custom.c -@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-custom.lo -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-custom.Tpo" -c -o libsnprintfvc_la-custom.lo `test -f 'custom.c' || echo '$(srcdir)/'`custom.c; \ +@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-custom.lo -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-custom.Tpo" -c -o libsnprintfvc_la-custom.lo `test -f 'custom.c' || echo '$(srcdir)/'`custom.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-custom.Tpo" "$(DEPDIR)/libsnprintfvc_la-custom.Plo"; else rm -f "$(DEPDIR)/libsnprintfvc_la-custom.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='custom.c' object='libsnprintfvc_la-custom.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-custom.Plo' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-custom.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-custom.lo `test -f 'custom.c' || echo '$(srcdir)/'`custom.c - -libsnprintfvc_la-dl-no.o: dl-no.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-dl-no.o -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-dl-no.Tpo" -c -o libsnprintfvc_la-dl-no.o `test -f 'dl-no.c' || echo '$(srcdir)/'`dl-no.c; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-dl-no.Tpo" "$(DEPDIR)/libsnprintfvc_la-dl-no.Po"; else rm -f "$(DEPDIR)/libsnprintfvc_la-dl-no.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dl-no.c' object='libsnprintfvc_la-dl-no.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-dl-no.Po' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-dl-no.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-dl-no.o `test -f 'dl-no.c' || echo '$(srcdir)/'`dl-no.c - -libsnprintfvc_la-dl-no.obj: dl-no.c -@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-dl-no.obj -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-dl-no.Tpo" -c -o libsnprintfvc_la-dl-no.obj `if test -f 'dl-no.c'; then $(CYGPATH_W) 'dl-no.c'; else $(CYGPATH_W) '$(srcdir)/dl-no.c'; fi`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-dl-no.Tpo" "$(DEPDIR)/libsnprintfvc_la-dl-no.Po"; else rm -f "$(DEPDIR)/libsnprintfvc_la-dl-no.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dl-no.c' object='libsnprintfvc_la-dl-no.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-dl-no.Po' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-dl-no.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-dl-no.obj `if test -f 'dl-no.c'; then $(CYGPATH_W) 'dl-no.c'; else $(CYGPATH_W) '$(srcdir)/dl-no.c'; fi` +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-custom.lo `test -f 'custom.c' || echo '$(srcdir)/'`custom.c libsnprintfvc_la-dl-no.lo: dl-no.c -@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-dl-no.lo -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-dl-no.Tpo" -c -o libsnprintfvc_la-dl-no.lo `test -f 'dl-no.c' || echo '$(srcdir)/'`dl-no.c; \ +@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libsnprintfvc_la-dl-no.lo -MD -MP -MF "$(DEPDIR)/libsnprintfvc_la-dl-no.Tpo" -c -o libsnprintfvc_la-dl-no.lo `test -f 'dl-no.c' || echo '$(srcdir)/'`dl-no.c; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsnprintfvc_la-dl-no.Tpo" "$(DEPDIR)/libsnprintfvc_la-dl-no.Plo"; else rm -f "$(DEPDIR)/libsnprintfvc_la-dl-no.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dl-no.c' object='libsnprintfvc_la-dl-no.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libsnprintfvc_la-dl-no.Plo' tmpdepfile='$(DEPDIR)/libsnprintfvc_la-dl-no.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-dl-no.lo `test -f 'dl-no.c' || echo '$(srcdir)/'`dl-no.c +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsnprintfvc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsnprintfvc_la-dl-no.lo `test -f 'dl-no.c' || echo '$(srcdir)/'`dl-no.c mostlyclean-libtool: -rm -f *.lo @@ -584,7 +461,7 @@ test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" @list='$(include_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ done @@ -592,7 +469,7 @@ uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ rm -f "$(DESTDIR)$(includedir)/$$f"; \ done @@ -601,7 +478,7 @@ test -z "$(pkgincludedir)" || $(mkdir_p) "$(DESTDIR)$(pkgincludedir)" @list='$(nodist_pkginclude_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(nodist_pkgincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgincludedir)/$$f'"; \ $(nodist_pkgincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgincludedir)/$$f"; \ done @@ -609,7 +486,7 @@ uninstall-nodist_pkgincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nodist_pkginclude_HEADERS)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgincludedir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgincludedir)/$$f"; \ done @@ -618,7 +495,7 @@ test -z "$(pkgincludedir)" || $(mkdir_p) "$(DESTDIR)$(pkgincludedir)" @list='$(pkginclude_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(pkgincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgincludedir)/$$f'"; \ $(pkgincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgincludedir)/$$f"; \ done @@ -626,7 +503,7 @@ uninstall-pkgincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(pkginclude_HEADERS)'; for p in $$list; do \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgincludedir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgincludedir)/$$f"; \ done @@ -734,14 +611,14 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ diff -rNu smalltalk-2.1.9/tcp/ChangeLog smalltalk-2.1.10/tcp/ChangeLog --- smalltalk-2.1.9/tcp/ChangeLog 2003-11-03 16:41:52.000000000 +0100 +++ smalltalk-2.1.10/tcp/ChangeLog 2004-12-20 16:48:08.000000000 +0100 @@ -1,3 +1,11 @@ +2004-12-20 Paolo Bonzini + + * tcp/tcp.c (O_NONBLOCK): Add here from sysdep.h. + +2004-11-26 Paolo Bonzini + + * tcp/SocketAddress.st: fix typo in #newRawSocket. + 2003-11-03 Paolo Bonzini * tcp/Buffers.st: force a buffer fill before triggering diff -rNu smalltalk-2.1.9/tcp/Makefile.am smalltalk-2.1.10/tcp/Makefile.am --- smalltalk-2.1.9/tcp/Makefile.am 2003-05-27 19:41:19.000000000 +0200 +++ smalltalk-2.1.10/tcp/Makefile.am 2004-11-25 15:19:19.000000000 +0100 @@ -3,7 +3,7 @@ dist_noinst_DATA = stamp-classes -stamp-classes: \ +$(srcdir)/stamp-classes: \ SocketAddress.st Datagram.st AbstractSocketImpl.st\ IPSocketImpl.st Sockets.st Tests.st\ init.st cfuncs.st TCP.st\ diff -rNu smalltalk-2.1.9/tcp/Makefile.in smalltalk-2.1.10/tcp/Makefile.in --- smalltalk-2.1.9/tcp/Makefile.in 2004-10-02 15:29:56.000000000 +0200 +++ smalltalk-2.1.10/tcp/Makefile.in 2005-02-03 09:30:47.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -37,6 +37,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ subdir = tcp DIST_COMMON = $(dist_noinst_DATA) $(srcdir)/Makefile.am \ @@ -62,12 +63,19 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(pkglibdir)" pkglibLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(pkglib_LTLIBRARIES) @@ -77,14 +85,13 @@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/tcp.Plo COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ +LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) -LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(tcp_la_SOURCES) DIST_SOURCES = $(tcp_la_SOURCES) @@ -217,6 +224,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -295,7 +304,7 @@ test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)" @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ - f="`echo $$p | sed -e 's|^.*/||'`"; \ + f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \ $(LIBTOOL) --mode=install $(pkglibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \ else :; fi; \ @@ -303,8 +312,8 @@ uninstall-pkglibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ - p="`echo $$p | sed -e 's|^.*/||'`"; \ + @set -x; list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$p"; \ done @@ -332,24 +341,21 @@ @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: @@ -463,7 +469,7 @@ clean-generic: distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -533,7 +539,7 @@ uninstall-pkglibLTLIBRARIES -stamp-classes: \ +$(srcdir)/stamp-classes: \ SocketAddress.st Datagram.st AbstractSocketImpl.st\ IPSocketImpl.st Sockets.st Tests.st\ init.st cfuncs.st TCP.st\ diff -rNu smalltalk-2.1.9/tcp/SocketAddress.st smalltalk-2.1.10/tcp/SocketAddress.st --- smalltalk-2.1.9/tcp/SocketAddress.st 2003-05-27 19:41:19.000000000 +0200 +++ smalltalk-2.1.10/tcp/SocketAddress.st 2004-11-26 18:13:16.000000000 +0100 @@ -89,7 +89,7 @@ and interfaces for the protocol family represented by the receiver (for example, the C protocol family PF_INET for the IPAddress class) Ordinary user programs usually have no need to use this method." - ^self new: defaultRawSocketImplClass new + ^DatagramSocket new: defaultRawSocketImplClass new ! ! !SocketAddress class methodsFor: 'initialization'! diff -rNu smalltalk-2.1.9/tcp/tcp.c smalltalk-2.1.10/tcp/tcp.c --- smalltalk-2.1.9/tcp/tcp.c 2003-05-27 19:41:19.000000000 +0200 +++ smalltalk-2.1.10/tcp/tcp.c 2004-12-20 16:48:08.000000000 +0100 @@ -57,6 +57,19 @@ #include #endif +#ifndef O_NONBLOCK +#ifdef O_NDELAY +#define O_NONBLOCK O_NDELAY +#else +#ifdef FNDELAY +#define O_NONBLOCK FNDELAY +#else +#warning Non-blocking I/O could not be enabled +#define O_NONBLOCK 0 +#endif +#endif +#endif + #ifndef ntohl #if WORDS_BIGENDIAN #define ntohl(x) (x) diff -rNu smalltalk-2.1.9/tests/Makefile.in smalltalk-2.1.10/tests/Makefile.in --- smalltalk-2.1.9/tests/Makefile.in 2004-10-02 15:29:57.000000000 +0200 +++ smalltalk-2.1.10/tests/Makefile.in 2005-02-03 09:30:47.000000000 +0100 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.8.5 from Makefile.am. +# Makefile.in generated by automake 1.9.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -34,6 +34,7 @@ NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : +build_triplet = @build@ host_triplet = @host@ subdir = tests DIST_COMMON = $(dist_noinst_DATA) $(srcdir)/Makefile.am \ @@ -59,10 +60,11 @@ $(top_srcdir)/config/strtoul.m4 \ $(top_srcdir)/config/symbolset.m4 \ $(top_srcdir)/config/tcltk.m4 $(top_srcdir)/config/version.m4 \ + $(top_srcdir)/config/wlong-double.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(mkdir_p) +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = @@ -194,6 +196,8 @@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ @@ -495,7 +499,7 @@ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: - -rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" diff -rNu smalltalk-2.1.9/unsupported/Profile.st smalltalk-2.1.10/unsupported/Profile.st --- smalltalk-2.1.9/unsupported/Profile.st 2003-05-27 19:41:26.000000000 +0200 +++ smalltalk-2.1.10/unsupported/Profile.st 2005-02-02 17:14:51.000000000 +0100 @@ -1,9 +1,48 @@ -FileStream fileIn: 'PerfMonitor.st'! +Bag subclass: #IdentityBag + instanceVariableNames: '' + classVariableNames: '' + poolDictionaries: '' + category: '' -PerfMonitor initialize! +!IdentityBag methodsFor: 'private'! -"FileStream fileIn: 'examples/printHier.st'!" -"FileStream fileIn: 'examples/mem-usage.st'!" -FileStream fileIn: 'tstCPT.st'! +dictionaryClass + ^IdentityDictionary! ! -PerfMonitor print! + +!BlockClosure methodsFor: 'profiling'! + +profile + | s profProcess workProcess results | + s := Semaphore new. + results := IdentityBag new. + workProcess := self newProcess. + profProcess := [ + workProcess resume. + [ + (Delay forMilliseconds: 5) wait. + workProcess isTerminated + ] whileFalse: [ + results add: workProcess suspendedContext method. + ]. + s signal + ] forkAt: Processor highIOPriority. + s wait. + ^results sortedByCount +! ! + +[ + | n c hash | + + n := 20000. + + hash := LookupTable new: n * 2. + 1 to: n do: [ :each | + hash at: (each printString: 16) put: 1 + ]. + + c := 0. + n to: 1 by: -1 do: [ :each | + (hash includesKey: each printString) ifTrue: [ c := c + 1] + ]. +] profile do: [ :each | each printNl ]!