$Id: History,v 1.1370 2024-01-01 04:06:59 phil Exp $ The Macro Implementation of SNOBOL4 in C (CSNOBOL4) history ** 2.3.2 (tag REL_2_3_2) 12/31/2023 (123123!): configure: update to version 2.3.2 for Jan 1, 2024 release 60th anniversary of 1/1/1964 JACM article https://dl.acm.org/doi/10.1145/321203.321207 In Honor of Mike Radow, a SNOBOL4 fan, who died 1/19/2023. 9/2/2023: lib/snolib/host.h: fix HOST(4,...) formatting 1/18/2023: lib/snolib/host.h: fix HOST_SNOPATH_DIR documentation, add intro. 1/3/2023: fix use of setuputil.sno from non-distribution directories on Windoze (problem found by Fred Smith) config/win32/config.h: default SNOBOL_BASE to C:\SNOBOL4 compose INCLUDE_DIR path pkg/win32/install.bat: default SNOLIB to C:\SNOBOL4 install include/{str,module,handle}.h 1/3/2023: fixes for gcc-11 w/ -Wall (gcc-12 too) lib/hash.c: add FALLTHROUGH comments lib/{init,stream}.c: update FALL to FALLTHROUGH lib/bsd/popen.c: add pragmae for spurrious clobbered warning 1/3/2023: configure: emit ADD_SNOBOL4_C_CFLAGS Makefile2.m4: add ADD_SNOBOL4_C_CFLAGS my local-config now contains: ADD_CFLAGS([-Wwrite-strings -Werror -Wextra]) ADD_SNOBOL4_C_CFLAGS([-Wno-unused-parameter]) lib/snolib/file.c: add a missing "(void) nargs;" 11/21/2022: doc/snobol4load.3.pea: add module.h, fix SNOBOL4_MODULE found by Fred Smith 7/20/2022: doc/snobol4cmd.1.pea: note that -h displays descr size. 4/4/2022: Makefile2.m4: make timing.out depend on snobol4, instead of tested MAY help parallel make failure (running tests twice in parallel)? 4/4/2022: test/bench.sno: comment out remaining TTY output 4/4/2022: Makefile2.m4: make *_modules depend on snobol4 BUT parallel make still fails *** 2.3.1 (tag REL_2_3_1) 3/31/2022: configure: change version to 2.3.1 3/31/2022: doc/snolib.3.pea: update 3/31/2022: include/snotypes.h: fix 32-bit compilation! reported by Neil Rowe *** 2.3 (tag REL_2_3) 3/25/2022: LOTS: switch to regressive.org for web & mail configure: change version to 2.3 2/14/2022: configure: change version to 2.2.2+ 2/14/2022: EXPERIMENTAL: allow 64-bit V field on LP64 for Dani Richard configure: add --xxl (defines VFLD_T as unsigned long) v311.sil: [PLB132] use PCOMP for SIZLMT tests include/snotypes.h: add comment for 64-bit v field lib/snolib/handle.c: use VFLD_T for handle_datatype_t 1/26/2022: doc/snobol4func.1.pea: Fix description of COPY. 12/8/2021: pkg/win32/maketar.bat: add "if exist" before rmdir *** 2.2.2 (tag REL_2_2_2) 12/8/2021: configure: change version to 2.2.2 12/8/2021: include/msvc/vars.h: add $v to VARS (v between a and z) 12/4/2021: COPYRIGHT, README: Update Copyright years 11/20/2021: lib/snolib/getstring.c: add nmgetstring (check for, return NULL) include/load.h: add nmgetstring prototype Use nmgetstring in places checking for NULL before OR after (may cure some SMALL memory leaks (after a malloc failure?) lib/snolib/file.c, modules/digest/digest.c modules/ffi/ffi.c, modules/sqlite3/sqlite3mod.c modules/time/time.c 11/18/2021: configure: add support for DragonFly (reported by Harald Arnesen) *** 2.2.2-pre1 (tag REL_2_2_2_PRE1) 11/17/2021: configure: change version to 2.2.2-pre1 7/7/2021: doc/snobol4func.1.pea: improve TRACE function info 6/10/2021: INSTALL: note parallel make fails (suggested by hacksaw) remove note about "time" package requirement 2/28/2021: Makefile2.m4: add (back) man directory creation (reported by Rafal M. Sulejman) 2/6/2021: modules/ffi/ffi.c: fix for Solus Linux (reported by Neil Rowe) 1/25/2021: configure/check: honor CPPFLAGS environment variable (set by FreeBSD ports framework with USE=readline) 1/24/2021: configure: add --without-lib{edit,readline} 1/14/2021: .cvsignore file additions update TODO.soon 1/10/2021: snolib/ezio.sno: avoid ENDFILE(null) 1/1/2021! snolib/setuputil.sno: add help to usage message (12/18/2020) Makefile2.m4: add debug_modules (12/21/2020) 12/23/2020: lib/snolib/file.c, pml.h: add FILE_LIB_FIND 12/20/2020: lib/init.c: add -z to usage 12/19/2020: INSTALL: Add --with(out)-docs *** 2.2.1 (tag REL_2_2_1) 12/19/2020: Makefile2.m4: use ../../snobol4 in RUNMAKE, flush PATH caused heartburn under cygwin? 12/18/2020: configure: display bad option; add --with-docs to help output MAN_COMPRESS to config.sno update to version 2.2.1 (51 years since SNOBOL4 v3.7) Makefile2.m4: define/use INSTALL_MAN_PAGES macro snolib/setuputil.sno: honor MAN_COMPRESS config/win32/linux-mingw.sh: update SNOBOL4 for new Makefile.mod config/win32/mingw.mak: comments 12/17/2020: configure: add --with-docs, so symmetric for FreeBSD ports 12/16/2020: doc/snobol4.1.pea: add snobol4load doc/snobol4load.3.pea: clean up, add snopea to example doc/snopea.7.pea: add \= snolib/snopea.sno: add \= snolib/setuputil.sno: add snopea docs for modulename.sno output 12/15/2020: configure: check for compressed man pages Makefile2.m4: man page compression remove lint savage GENERATED_DOCS don't install load.txt Makefile: cleanup, add comments 12/14/2020: doc/snobol4load.3.pea (new), from load.txt doc/Makefile: add snobol4load.3 12/13/2020: configure: add --without-docs, remove SNOBIN Makefile2.m4: honor INSTALL_DOCS 12/12/2020: Makefile2.m4: pass -N/-I to module makes in SNOBOL4 modules/Makefile.mod: default SNOBOL4 to snobol, remove INC 12/12/2020: Makefile: clean removes module .dll files add install_notiming setuputil.sno: honor -v for test modules/Makefile.mod: test_verbose (test w/ -v) run snobol4 from PATH add/use IN remove SNOBOL4 from IN make OUT/debug depend on IN modules/*/Makefile: add test_verbose modules/base64/test.sno: remove /dev/tty output configure Makefile2.m4: use for loop for module actions pass PATH in for snobol4 binary flush MODULES_GENERATED copy xsnobol4 to snobol4 before module tests add install_notiming 12/10/2020: Makefile2.m4: create relative links, per FreeBSD port 12/5/2020: modules/fork/fork.c, modules/sprintf/sprintf.c: fix NAME line *** 2.2 (tag REL_2_2) 12/5/2020: configure, lib/snolib/host.h: change version to 2.2 11/30/2020: timing: add /bin/kenv for smbios on FreeBSD 11/27/2020: lib/openssl/tlsio_obj.c: TLS1_3_VERSION not in 1.1.0 found by Harald Arnesen on OpenBSD w/ LibreSSL 11/26/2020: snolib/{http,tcp,url}.sno: add https URL support lib/io.c: allow binary read less than full recl Thanks to Burkhard Meißner! lib/openssl/tlsio_obj.c: remove SSL_VERIFY_FAIL_IF_NO_PEER_CERT (for server use?) 11/25/2020: modules/com/com.cpp: turn off DEBUG try (again) to quiet format warnings *** 2.2-pre3 (tag REL_2_2_PRE3) 11/22/2020: configure: change version to 2.2-pre3 doc/snobol4io.1.pea: verify verbiage 11/21/2020: lib/compio_obj.c: fix compression level lib/io.c: comments, disable recl warning 11/20/2020: doc/snobol4io.1.pea: add /tls modules/digest/digest.c: add docs for snobol4digest.3 11/19/2020: Add inet "verify" option for TLS tlsio_obj.c: add SSL_CTX_set_options, SSL_CTX_set_min_proto_version, optional: SSL_CTX_set_verify 11/18/2020: LOTS: Quash -Wextra warnings configure: add -Wno-unused-parameter 11/17/2020: Implement TLS I/O Makefile2.m4: add TLSIO_OBJ_C default, tlsio_obj.o rule configure: check for openssl/bio.h & ssl.h, enable TLS_IO include/inet.h: add argument names include/io_obj.h: add tlsio_open() lib/io.c: add tlsio_open call if TLS_IO defined lib/stdio_obj.c: switch to str.h lib/bsd/inet(6).c: fix inet_socket args lib/dummy/inet.c: fix tcp/udp_socket flags arg lib/openssl/tls_io.c (new) 11/15/2020: Eliminate module warnings: modules/base64/base64.c modules/ffi/ffi.c modules/sqlite3/sqlite3mod.c modules/time/time.c 11/15/2020: Make it possible to configure to use MacPorts libraries INSTALL: update Makefile2.m4: add ADD_SNOBOL4_LDFLAGS macro, add CONFIG_CPPFLAGS, LDFLAGS variables define CONFIG_{C,CPP,LD}FLAGS for host.o configure: add --add-snobol4-ldflags to use ADD_SNOBOL4_LDFLAGS convert most ADD_LDFLAGS to ADD_SNOBOL4_LDFLAGS export LDFLAGS for config/check config/check: use LDFLAGS environment variable include/module.h: eliminate warning from DECLARE_MODULE host.[ch]: add HOST_CONFIG_{C,CPP,LD}FLAGS module/dirs/dirs.c, module/stat/stat.c: eliminate unused variables snolib/setuputil.sno: fetch, use HOST_CONFIG_{C,CPP,LD}FLAGS 11/14/2020: modules/zlib (new) configure: add zlib module 11/14/2020: modules/sqlite3/sqlite3mod.c: use sqlite3_prepare for old sqlite 11/13/2020: modules/digest: revamp using EVP, digest lookup by name makes SHA3 algorithms available tweak to build on OpenSSL older than 1.1.0 configure: tweak to build on OpenSSL older than 1.1.0 11/12/2020: configure: test for SHA512 in libcrypto for digest module modules/digest (new): MD5, SHA{1,224,256,384,512} modules/*/Makefile: add debug modules/Makefile.mod: add debug target 11/12/2020: lib/compio_obj.c, lib/io.c: Implement compression level (digit after compression option) Makefile2.m4: fix "make install" problem reported by Phillip Thomas snolib/setuputil.sno: copy lines bracketed by *=snobol4 and *=cut doc/snobol4func.1.pea: document EXTERNAL_{DATATYPE,MODULE_{NAME,PATH}} doc/snobol4io.1.pea: document compression options 11/11/2020: Implement compressed file I/O as an I/O object layer configure: detect libz, bzip2, lzma libraries lib/compio_obj.c (new) lib/io.c: add file compression make ioo_close public include/compio_obj.h (new) include/io_obj.h: add ioo_close 11/11/2020: lib/loadx.c: keep lib name & path, add EXTERNAL_MODULE_{NAME,PATH} pml.h: add EXTERNAL_MODULE_{NAME,PATH} 11/10/2020: modules/fork/fork.c: add GETPID, GETPPID lib/bsd/inet.c: fix typo 11/10/2020: snolib/setuputil.sno: Fix for MSYS2 configure: define IMPORT/EXPORT on Cygwin/MSYS 11/10/2020: Revamp module ABI once again! Create SNOBOL4_MODULE macro, no more mod_xxx.c Create module_instance_private Makefile.m4: remove MOD_SUPPORT_SRC install modules/random/test.sno configure: remove MOD_SUPPORT_SRC config/win32/config.sno: remove MOD_SUPPORT_SRC include/handle.h: remove new_handle include/lib.h: add module(_instance)_{init,cleanup} include/module.h: add get_module_instance method replace htlist with module_instance_private add SNOBOL4_MODULE macro lib/loadx.c: EXTERNAL_DATATYPE returns module|type pass original name/path to libopen, save as name check oslib pointers for dups lib/snolib/handle.c: add module_instance_private remove new_handle add handle_cleanup_tables snolib/setuputil.c: remove MOD_SUPPORT_SRC 11/8/2020: Revamp module ABI, again; create EXTERNAL_DATATYPE pml.h: add EXTERNAL_DATATYPE include/handle.h: new_handle2: take modinst again include/lib.h: add handle_table_name include/module.h: remove unused prev from struct lib lib/loadx.c: do os_find_symbol for "module" add EXTERNAL_DATATYPE lib/stdio_obj.c: put 'b' second for glibc 2.9 thru 21 fmemopen lib/bsd/load.c: put in crock for module lookup (time to kill it?) lib/snolib/handle.c: debug to stderr new_handle2: take modinst again add handle_table_name module_(instance_){init,cleanup} no longer SNOLOAD_ABI module/lots/module.c: add SNOBOL4_MODULE invocations pick presentable table names modules/com/com.cpp: change INTEGER to EXTERNAL in LOAD calls modules/dirs/dirs.c: change INTEGER to EXTERNAL in LOAD calls modules/random/random.c: try /dev/urandom before /dev/random shift usec or nsec up to cover high order bits pkg/win32/install.bat: "C:\Program Files\SNOBOL4 snolib/sdb.sno: don't display RETVAL on FRETURN 11/6/2020: configure: Try treating MSYS same as CYGWIN 11/6/2020: include/lib.h: fix find_snolib_directory *** 2.2-pre2 (tag REL_2_2_PRE2) 11/6/2020: configure: change version to 2.2-pre2 11/6/2020: Try to find library directory on Windows Makefile2.m4: add DIRNAME_C, dirname.o rule (not (yet?) used) configure: comment out dirname test (for now?) config/djgpp/Makefile: add dirname.o rule (not (yet?) used) config/win32/config.h: add HAVE_FIND_SNOLIB_DIRECTORY add NEED_DIRNAME (MSVC) add HAVE_DIRNAME, HAVE_GETOPT (MINGW) config/win32/mingw.mak: add lib/win32/dirname.c, lib/win32/findlib.c config/win32/ntmsvc.mak: add dirname.{c,obj} findlib.{c,obj} include/lib.h: add NEED_DIRNAME/dirname HAVE_FIND_SNOLIB_DIR/find_snolib_dir lib/init.c: pass argv[0] to pathinit, add HAVE_FIND_SNOLIB_DIR/find_snolib_dir 11/5/2020: Move birthtime & nsec ugliness to configure script configure: set STAT_CFLAGS modules/stat/stat.c: just depend on st_{a,c,m,birth}time(nsec) defines 11/2/2020: config.h: SNOLIB_BASE "C:\Program Files\SNOBOL4" pkg/win32/README.win32: ditto INSTALL: update 11/2/2020: config/vms/config.h: flush PML_NDBM lib/win32/sys.c: comments lib/win32/exists.c: remove UTF-16 comments *** 2.2-pre1 (tag REL_2_2_PRE1) 10/31/2020: configure: change version to 2.2-pre1 10/31/2020: modules/Makefile.mod: make build depend on ../../config.sno 10/30/2020: Makefile: add tested to M2TARGETS doc/Makefile: add snobol4json.3[.html] snolib/utf.sno: use CHAR; make RUNE check for UTF-16 surrogate range snolib/json.sno: implement \Uxxxxxxxx change functions names to JSON_{EN,DE}CODE add documentation accept "null" test/json1.{sno,ref}: add \U test change function names add null tests 10/30/2020: test/loaderr.sno: add library args to LOADs (unloading "self" is fatal on FreeBSD 3.2!) 10/29/2020: Remove all use of make -C (missing in FreeBSD 3.2!)!! Makefile, Makefile.m4, configure 10/28/2020: Makefile: cleanup remove config.sno 10/27/2020: Makefile, Makefile2.m4: use $(MAKE) -C doc .... 10/27/2020: snolib/json.sno: use own hex conversions, so can test test/tests.in: add json1.sno test/json1.{sno,ref} (new): test program for json.sno 10/27/2020: config/win32/ntmsvc.mak: detect x64, use C99 long long conversions 10/26/2020: configure: back to generated build_modules list 10/26/2020: Makefile2.m4: remove sleep.o sdbm*.o rules 10/26/2020: config/win32/config.h: changed SNOLIB_BASE to C:\Program Files\CSNOBOL4 pkg/win32/README.win32: update base 10/25/2020: modules/stat/stat.c: fetch OpenBSD birthtime (zero in OBSD 6.8?!) 10/25/2020: Implement setup.sno test command Makefile: add test_modules lib/snolib/handle.c: debug ifdefs modules/Makefile.mod: add SETUPOPT for debug use setup.sno test command! modules/dirs/test.sno: create & check table modules/sqlite3/setup.sno: add tests entry modules/sqlite3/sqlite3.mod: remove stmt handles!! test.sno: just check type_str modules/sqlite3/setup.sno: add tests entry modules/time/test.sno: fix sleep test to run faster (most of the time) /generic/sleep.c: sleep a whole second if any fration given /test2.sno: copied from tests/time.sno modules/*/*.ref (new) snolib/cmp.sno (new) snolib/setuputil.sno: add "test" command (for posix) test/tests.in: turned off random.sno 10/24/2020: configure: Solaris make doesn't have ?= 10/24/2020: include/load.h: "module" now a pointer include/module.h (new): move module ABI here, add module_init function lib/snolib/mod_gcc.c, mod_win32.cpp: export module pointer. lib/snolib/handle.c: add module_init function modules/dirs/dirs.c modules/ffi/ffi.c modules/ndbm/ndbm.c modules/sqlite3/sqlite3mod.c modules/stcl/stcl.c module now a pointer 10/24/2020: configure: rename MOD_SUPPORT to MOD_SUPPORT_C Makefile2.m4: install MOD_SUPPORT_C in INCLUDE_DIR snolib/setuputil.sno: use MOD_SUPPORT_C, look in INCLUDE_DIR 10/23/2020: modules/random/random.c: use inttypes.h, if available configure: check for inttypes.h if stdint not available (FreeBSD 4.9) 10/23/2020: cpuid.c: gcc 2.95.4 (FreeBSD 4.9) doesn't define __GNUC_PATCHLEVEL__(!) 10/23/2020: Include if available for ssize_t (FreeBSD 4.9!) include/lib.h (if getline needed) lib/io.c lib/auxil/bufio_obj.c lib/auxil/getline.c lib/auxil/memio_obj.c lib/bsd/ptyio_obj.c lib/dummy/ptyio_obj.c lib/posix/memio_obj.c lib/win32/inetio_obj.c lib/win32/ptyio_obj.c modules/base64/base64.c 10/23/2020: Makefile2.m4, configure: back to MODULES_GENERATED 10/22/2020: modules/base64/base64.c: remove debug configure: fix a few echo redirects Makefile2.m4: tested: build_modules modules/stat/test.c: add ST_TYPE_STR modules/stat/stat.c: fix S_IFSOCK 10/22/2020: modules/Makefile.mod: remove .so output/dependency (wrong when dynamic library isn't a .so file) 10/20/2020: turn off tests/sleep.sno tests/ndbm.sno modules/time/time.sno: copy of sleep.sno 10/20/2020: Makefile2 => modules/X/Makefile => modules/Makefile.mod configure: output {build,clean,install,test}_modules to config.m4 modules/Makefile.mod (new): common makefile, has test target modules/*/Makefile: invoke ../Makefile.mod modules/{base64,dirs,logic,ndbm,sprintf,stat}/test.sno (new) 10/20/2020: Add FILE_NEWER (for use by setuptil.sno) pml.h: add FILE_NEWER include/lib.h: newer Makefile2.m4: newer.o config/win32/{mingw,ntmsvc}.mak: newer.o(bj) config/djgpp/Makefile: newer.o lib/generic/newer.c (new): newer function lib/snolib/file.c: FILE_NEWER function 10/20/2020: configure: deal with OSX stat st_Xtimespec modules/stat/stat.c: use config.sno STAT_CFLAGS 10/20/2020: add snolib/json.sno 10/20/2020: add base64 configure modules/base64/base64.c modules/base64/setup.sno modules/base64/funcs.sno 10/19/2020: rename mod_msvc.cpp to mod_win32.cpp config/win32/linux-mingw.sh config/win32/config.sno 10/19/2020: modules/stat/stat.c: swap to ifdef __CYGWIN__ lib/break.c: register for cleanup on first malloc 10/18/2020: flush mentions of __P lib/auxil/getopt.c lib/bsd/inet.c lib/bsd/inet6.c lib/djgpp/osinit.c lib/dummy/inet.c lib/dummy/ptyio_obj.c lib/win32/inetio_obj.c 10/18/2020: modules/stat/stat.c: try to deal with Cygwin/Apple birth time mess 10/18/2020: one more import/export go-around Makefile2.m4: add -DSNOBOL4 to MYCPPFLAGS main.c: flush SNOBOL4_PROVIDER config/vms/descrip.mms: define SNOBOL4 config/win32/borland.mak: add -DSNOBOL4 to CFLAGS config/win32/config.h: use ifndef SNOBOL4 for IMPORT action config/win32/mingw.mak: add -DSNOBOL4 to CFLAGS add IMPLIB comment, SETUPFLAGS config/win32/ntmsvc.mak: add -DSNOBOL4 to CFLAGS include/load.h: use SNOBOL4 to select SNOLOAD_API IMPORT vs EXPORT include/snobol4.h: use SNOBOL4 & SHARED to select SNOBOL4_API behav. lib/init: flush SNOBOL4_PROVIDER lib/snolib/getstring.c: include comments, flush SNOLOAD_API_PROVIDER lib/snolib/retstring.c: flush SNOLOAD_API_PROVIDER 10/18/2020: configure: test for, use GNU C visibility for SO build! 10/18/2020: API cleanup include/snotypes.h: moved LOAD_PROTO here (avoid internal use of load.h) include/load.h: moved LOAD_PROTO define/use SNOLOAD_API instead of SNOEXP look at SNOLOAD_API_PROVIDER instead of lack of DYNAMIC include/handle.h: use SNOLOAD_API lib/break.c: use pmlret_t, remove static lib/init.c: update include comments lib/loadx.c, pml.c: remove load.h lib/{bsd,dummy,vms,hpux}/load.c: trim includes, use const lib/snolib/[gr]etstring.c: SNOLOAD_API_PROVIDER, SNOLOAD_API mod_*.c(pp): include comments, config.h 10/18/2020: include/snobol4.h: SNOBOL4_API macro, noop if not PROVIDER && SHARED main.c: use SNOBOL4_API 10/18/2020: lib/init.c: strdup -u argument 10/18/2020: more VAR declarations (only statics left are in VMS code?) lib/init.c lib/loadx.c lib/generic/popen.c lib/posix/dynamic.c lib/snolib/handle.c 10/17/2020: include/handle.h: add sizes, reserved bytes modules/stat/stat.c: st_atimensec predefined on NetBSD 9 add ST_BTIME 10/17/2020: gcc 9.3-win32 include/lib.h, lib/{msdos,vms,win32}/tty.c: tty_read lib/win32/inetio_obj.c: inetio_open 10/17/2020: gcc 9.3 write-string warnings main.c: ni_argv (crock) include/io_obj.h: fname include/stdio_obj.h: stdio_wrap {std,pipe,pty}io_open lib/io.c: io_open_funcs lib/stdio_obj.c: stdio_wrap, {std,pipe}io_open lib/{bsd,win32}/ptyio_obj.c: ptyio_open 10/17/2020: More const char * include/load.h: io_fname include/snobol4.h: io_output_string (name) lib/io.c: io_input_string (name), io_fname (EXPORT it) 10/17/2020: Clean compile with -Wwrite-string (const paranoia) globals.h: snolib_base include/lib.h: io_add_lib_dir, strjoin include/snobol4.h: io_input_{file,string} lib/init.c: p lib/io.c: lots lib/str.c: strjoin 10/17/2020: Another module go-round; instantiate module in support file include/load.h: moved struct module to handle.h include/handle.h: struct module here wrapped support stuff in "ifdef MODULE_SUPPORT" modules/LOTS: removed MODULE invocations lib/snolib/mod_xxx: add module, use MODULE_INIT, MODULE_CLEANUP 10/17/2020: Clean up some g++ complaints basic tests pass w/ -fpermissive & w/o -Werror punted on modules (need to pick API for helpers) configure: guard around setting _GNU_SOURCE include/snotypes.h: cast DESCR SPEC sizes to int include/stdio_obj.h: put enum last_direction at top level include/syntab.h: const char * include/io_obj.h: io_write take const char * include/lib.h: io_lib_find take const char * lib/date.c: cast int to enum lib/io.c: io_write, ioo_write, io_lib_find, trypath take const char * lib/pml.c: const char * lib/bsd/inet6.c: true => yes lib/snolib/serv.c: const char * lib/win32/ptyio_obj.c: ptyio_write take const char * lib/win32/inetio_obj.c: inetio_write take const char * lib/stdio_obj.c: stdio_write take const char * lib/auxil/bufio_obj.c: bufio_write take const char * lib/auxil/memio_obj.c: memio_write take const char * gendata.sno: output constant strings as char* not char[] 10/17/2020: Add cleanup routines modules/dirs/dirs.c modules/ffi/ffi.c modules/sqlite3/sqlite3mod.c modules/stcl/stcl.c (add new_obj too!) Makefile2.m4: remove ancient dummy environ.o from OBJS snolib/setuputil.sno: add setup.sources() modules/com/com.cpp: add MODULE(), add new_obj (use new_handle2) 10/16/2020: First cut at releasing handles configure: set MOD_SUPPORT in config.sno config/win32/config.sno: set MOD_SUPPORT include/h.h: define TLS as VAR lib/snolib/handle.c: add new_handle2 (takes release, module ptr) add handle_cleanup for cleanup complain once if old new_handle called include/load.h: add struct module, MODULE modules/*/*.c: add MODULE invocations modules/ndbm/ndbm.c: use new_handle2, add ndbm_cleanup snolib/setuputil.sno: ugly mashing to include MOD_SUPPORT 10/16/2020: COPYING: update Copyright dates! configure: more gcc doc quotes, include URLs lib/posix/term.c: dup stderr so cleanup from DLL doesn't close fd 2 include/load.h: add pmlret_t, new_handle2 lib/snolib/LOTS: use (pm)lret_t 10/15/2020: lib/io.c, include/io_obj.h: move FL_INCLUDE to io_obj.h 10/14/2020: lib/io.c: add FL_INCLUDE flag, free include file file struct 10/14/2020: lib/io.c: use mstrdup in io_include (wrapper for io_include2) lib/init.c: free snolib_{local,v{ers,lib,local}}, fclose termin 10/14/2020: Implement reg_cleanup for shared library cleanup lib/init.c: add reg_cleanup, cleanup lib/endex.c: call cleanup if SHARED include/lib.h: add reg_cleanup, cleanup lib/loadx.c: register for cleanup, unload all functions 10/14/2020: include/lib.h: add freeparm extern include/macros.h: add FREEPARM v311.sil: [PLB131] call FREEPARM lib/init.c: add freeparm function 10/14/2020: lib/auxil/memio_obj.c: close: free buffer, return TRUE 10/13/2020: MSVC VAR support include/h.h: include msvc/vars.h include/msvc/vars.h: surprisingly reasonable/easy! 10/13/2020: Implement zeroing VAR variables in SHARED lib builds data_init.c: include str.h, invoke ZERO_VARS to do the work include/gcc/vars.h (new): put VAR into own section with gcc-like compilers, include goo for OSX include/h.h: include gcc/vars.h in SHARED build with "gcc" lib/msdos/mstime.c: fix non-zero initializer 10/13/2020: lib/io.c, lib/stdio_obj.c: use globals.h 10/12/2020: Makefile: Solaris m4 doesn't have -I; not needed 10/12/2020: flush NO_STATIC_VARS, replace with VAR declaration globals.h (new): declare all globals using VAR include/h.h: default VAR to empty (could be TLS or __attr__(section)) gendata.sno: output VAR main.c: declare all globals include/vars.h: removed 32 other .c files 10/12/2020: config/win32/mingw.mak: DLL/tests tested. 10/11/2020: configure: fix ICC check 10/11/2020: config/win32/mingw.mak: tweak to build snobol4.dll (not tested!) config/win32/ntmsvc.mak: first swipe at DLL build (not run) 10/11/2020: turn off shell timing of genc.sno run interferes with DYLD_LIBRARY_PATH on MacOS 10.15? (was just looking for a reason to kill it, it only mattered in ancient days when getrusage wasn't widely available, and clock tick size was often a a result of divination) Turns out to be a feature (System Integrity Protection) timing: comment out time timing.sno: add, check CHECK_TIMING setting 10/11/2020: shared library cleanup Makefile: use SO_CFLAGS instead of -fPIC Makefile2.m4: use SNOBOL4_LDFLAGS use SO_EXT from configure instead of .so add rule to make tlib test configure: put -rdynamic in SNOBOL4_LDFLAGS define DYNAMIC in DL_CFLAGS main.c: define SNOBOL4_PROVIDER for snobol4.h include/load.h: honor DYNAMIC define add iunit/xunit arg names include/snobol4.h: check SNOBOL4_PROVIDER instead of DYNAMIC remove many io functions (KISS), explain UNITx lib/init.c: define SNOBOL4_PROVIDER for snobol4.h 10/10/2020: config/win32/ntmsvc.mak: missing a few $(SRCDIR)s 10/10/2020: lib/auxil/memio_obj.c: fix tlib.c: test output to TERMINAL main.c: add -b to non-interactive init 10/10/2020: Second round of shared library fun Makefile: just define SHARED Makefile2.m4: no MAINFLAGS main.c: add snobol4_init, snobol4_init_ni, snobol4_run ssnobol4.c: need stdio.h, h.h config/win32/config.h: comment include/lib.h: move stuff to snobol4.h include/snobol4.h: stuff from lib.h lib/endex.c: s/ENDEX_LONGJMP/SHARED/ lib/init.c: s/stdinc/std_includes/ init_args takes interactive argument create signal_init, call from io_init (instead of SIL INIT) lib/io.c: s/MEM_IO/SHARED/ fix io_memfile EXPORT io_input_string tlib.c (new): demo/test 10/10/2020: Experiment to build libsnobol4.so No lines of code changed! Makefile: rules to make so/Makefile2 (creates private config.m4) runs it to make shared_library Makefile2.m4: split out rule (run in submake) for build.o added rules to make shared library, ssnobol4 executable using it added missing $(SRCDIR): MYCPPFLAGS, top level files configure: add missing $(SRCDIR) prefixes ssnobol4.c: one line main program to invoke shared library! 10/10/2020: lib/snolib/handle.c: hand out handle numbers sequentially 10/10/2020: lib/posix/memio_obj.c: memio_open using POSIX fmemopen include/io_obj.h, lib/auxil/memio_obj.c: make memio_open take dir lib/io.c: pass dir to memio_open, fix some comments 10/8/2020: lib/djgpp/osinit.c: add export of relstring 10/8/2020: configure: note ILP32, funny programming models 10/8/2020: snolib/sdb.sno: add SDB.RETVAL (can't concatenate DATA types) 10/8/2020: test/tests.in: add factor.sno, alis.sno test/factor.{sno,ref}: from green book (via DEC-10,VAX ports) test/alis.{sno,ref}: from green book (via DEC-10 port) Execution time in green book was 5159ms time on 2017 vintage Intel i5 was 2.429ms (2124x faster) 10/8/2020: fixes for OpenIndiana (illumos/OpenSolaris 11) configure: change HAVE_ to NEED_ check if can use lib/posix/pty.c add CLOSEFROM_IN_STDLIB_H use config/check for finite config/win32/config.h: update lib/posix/pty.c (new): forkpty from FreeBSD include/libpty.h (new): forkpty prototype Makefile2.m4: add rule for pty.o include/lib.h: use NEED_ defines lib/init.c: use NEED_GETOPT_EXTERNS define lib/bsd/ptyio_obj.c: use CLOSEFROM_IN_STDLIB_H 10/7/2020: config/win32/config.h: add NTDDI_VERSION and _WIN32_WINNT again lib/bsd/inet6.c: moved _WIN32_WINNT lib/win32/ptyio_obj.c: moved NTDDI_VERSION and _WIN32_WINNT again 10/7/2020: configure: define (s)size_t if needed config/win32/config.h: use WS2 socklen_t 10/7/2020: config/win32/{ntmsvc,mingw}.mak: winsock ipv6 comment configure: fix readline module include/macros.h: convert MOVBLK from bcopy to memmove lib/{io,str}.c lib/ansi/sp{cint,real}.c lib/bsd/inet(6).c lib/c99/spcint.c lib/generic/sp{cint,real}.c lib/snolib/getstring.c lib/win32/inet.c: convert bcopy to memcpy 10/6/2020: lib/win32/execute.c: Windows runtime implements execl config/win32/{ntmsvc,mingw}.mak: use lib/win32/execute.c 10/6/2020: v311.sil: [PLB130] implement handling for type "M" (malloc'ed linked string) in LNKFNC. Calls relstring after variable generated. include/lib.h: add relstring include/macros.h: RELSTRING wrapper for relstring include/load.h: add RETSTR2_FREE, RETSTR_FREE: call retstring_free add extern/export for retstring_free lib/retstring.c: flush static retbuf[len] vars: add retstring_free which returns string via type "M" retstring also returns via type "M" (unless RETSTRING_STATIC) add relstring function called back on type "M" after interning include/vars.h: flush retbuf[len] 10/5/2020: lib/{io,stdio_obj}.c: try pulling ^C handling down removed ioo_clearerr -- flush?? 10/5/2020: config/win32/config.h: always define HAVE_FSEEKO 10/4/2020: config/win32/mingw.mak: use windres to compile manifest.rc take TOOLCHAIN prefix config/win32/ntmsvc.mak: use rc to compile manifest.rc config/win32/manifest.rc (new) Manifest file necessary to get Windows version (upto latest version binary manifested for) config/win32/linux-mingw.sh: pass TOOLCHAIN lib/win32/sys.c: restore build, server, add back break, ansify lib/bsd/dynamic.c: ansify 10/4/2020: configure: just set _GNU_SOURCE if glibc detected modules/ffi/ffi.c: remove _GNU_SOURCE __USE_GNU parms.h: move config.h back to top parms.h, include/macros.h: move ieeefp.h include to parms.h 10/3/2020: configure: remove --force-memmove from help move module support checks together fix -Werror= for gcc 4.1.2 set {NDBM,TIME,RANDOM}_CFLAGS in config.sno fix getrusage removed clock_gettime for runtime (user+sys) pull glibc check up, set _GNU_SOURCE if found config/check: honor CHECK_OUT CHANGES: update, organize modules/ndbm/setup.sno: honor NDBM_CFLAGS modules/random/setup.sno: honor RANDOM_CFLAGS modules/time/setup.sno: honor TIME_CFLAGS 10/2/2020: configure: --without-modules 10/2/2020: lib/win32/inet.c: VERY last file to ansify? (leaving ancient dummy files) 10/2/2020: Make configure fussier about checking for functions configure: If gcc/icc/clang set -Werror -Wimplicit-function-declartion Fix glibc check for Ubuntu Fix glibc 2.1 check (not to hop on 2.11) 10/2/2020: Makefile2.m4 configure pml.h: cleanup/simplify: no more --force-pml, snolib.a, NO_PML_X removed: lib/{bsd,generic,posix,win32}/sleep.c 10/2/2020: more ansification! data_init.c gensyn.sno include/snotypes.h lib/init.c lib/io.c lib/ordvst.c lib/realst.c lib/ansi/spreal.c lib/auxil/getopt.c lib/bsd/inet.c lib/win32/inetio_obj.c lib/win32/ptyio_obj.c 10/1/2020: lib/bsd/inet6.c: ansify lib/win32/inetio_obj.c: turn off SO_OPENTYPE (added 1999/05/02!) add comments 10/1/2020: configure: fix memmove test, put first include/str.h: guard all function redefines 10/1/2020: yet ANOTHER bash at load include/lib.h: os_unload_function, stash ptr to os_find_symbol lib/loadx.c: call os_unload function with stash ptr from os_find_symbol lib/{bsd,dummy,hpux,next,unix98,vms,win32}/load.c: rake again bsd no longer keeps function list 10/1/2020: config/win32/mingw.mak: add IMPLIB variable 9/30/2020: time module: make TV_USEC int again, add TV_NSEC! 9/30/2020: one more bash at load lib/loadx.c: maintain lib & func structs include/lib.h: os_(un)load_library, os_find_symbol lib/{bsd,dummy,hpux,next,unix98,vms,win32}/load.c: rake 9/30/2020: new config/makerulesdep config/win32/mingw.mak: use makerulesdep to generate rules(!!) 9/30/2020: configure: use -MM for dependency generation 9/29/2020: mingw attempt to get fractional seconds (failed) config/win32/config.h: use timspec_get w/ MSVC getpid() in unistd.h on mingw in process.h on msvc getopt() in unistd.h on mingw config/win32/linux-mingw.sh: try using -lpthread modules/{time,random}/setup.sno: ldflags from config.sno 9/29/2020: HAVE_CLOCK_GETTIME_REALTIME configure modules/time/time.c modules/random/random.c 9/29/2020: Final(?) pml_find cleanup include/load.h lib/hpux/load.c lib/win32/load.c 9/28/2020: configure: detect clock_gettime(CLOCK_REALTIME,&ts) and timespec_get(&ts, TIME_UTC) modules/random/random.c, modules/time/time.c: use timespec (need a .h file to paper it over) GETTIMEOFDAY TV_USEC can be a REAL! 9/28/2020: config/win32/mingw.mak: improve module builds 9/28/2020: config/djgpp/Makefile: always include loadx.o 9/28/2020: ansify next dir (one file, for a (hopefully) dead interface) lib/next/load.c: ansify, convert to os_load Makefile2.m4: always include loadx.o configure: never need to add loadx.o 9/28/2020: ansify hpux dir (one file, for a (hopefully) dead interface) lib/hpux/load.c: ansify, convert to os_load 9/28/2020: ansify vms(!) files, convert to os_load config/vms/descrip.mms: add loadx lib/vms/*.c: convert to ansi, os_load 9/28/2020: Cross compile for Windows/MINGW under Linux NOTE!!! Binaries not tested. Will have funny CC name! (new) config/win32/linux-mingw.sh config/win32/mingw.mak: add overrides for cross-compile lib/win32/ptyio_obj.c, configure: moved cygwin WIN32_WINNT, NTDDI_VERSION defines 9/28/2020: snolib/setup.sno: prefetch HOST vars (allow override by config.sno) modules/*/setup.sno: remove unneeded setup.sno include 9/28/2020: timing: add /etc/os-release (for arch) 9/27/2020: doc/snobol4.1.pea: add SNOBOL4UNBUFFERED 9/27/2020: CHANGES: update with changes since 2.1.6 9/27/2020: configure: install cygwin libsnobol4.a in a versioned dir 9/27/2020: Clobber // comment by compiling with -stc=c90 lib/bsd/inet6.c include/io_obj.h lib/bsd/ptyio_obj.c 9/27/2020: Remove old cygwin COM crockery config/win32/config.h modules/com/com.cpp configure 9/27/2020: First pass at ANSIfication Assumes all systems have string.h, stdlib.h Too many files to name. 9/26/2020: modules/stat/funcs.sno: missing comment chars!!!! 9/26/2020: Make cygwin w/ gcc 10 happy: configure: add HAVE_GETOPT[_EXTERNS] include/lib.h: add getopt() lib/init.c: honor HAVE_GETOPT_EXTERNS, remove getopt() modules/time/time.c: define magic for strptime, tm_gmtoff 9/26/2020: lib/io.c: FL_KEEPEOL, fix io_mkfile2 to preseve flags. include/io_obj.h, lib/io.c, lib/stdio_obj.c: FL_KEEPEOL 9/26/2020: doc/snobol4io.1.pea: update for 2.2, add tcp/udp flags. 9/26/2020: mingw compile cleanup (under Linux!) config/win32/mingw.mak: enable warnings, add depend, clean config/win32/config.h: wrap fseeko/ftello in ifndef __MINGW32__ add HAVE_STRFTIME lib/io.c: use SIGINT_EOF_CHECK instead of _MSC_VER lib/win32/sys.c: quiet DWORD formatting complaints lib/win32/inet.c: caught bindresvport usage error 9/26/2020: timing: check for systeminfo.exe! modules/random/random.c: use GETPID_IN_PROCESS_H expect getpid() to be available!! 9/26/2020: bufio/ptyio cleanup: include/bufio_obj.h: comments lib/auxil/bufio_obj.c: read_raw == 0 no longer EOF lib/win32/inetio_obj.c: read_raw return -1 on EOF lib/win32/ptyio_obj.c: flush flags, free buffer 9/25/2020: configure: comments for debugging win32/ptyio lib/auxil/bufio_obj.c: DEBUG_BUFIO_{READ_RAW,GETLINE} lib/win32/ptyio_obj.c: working? timing: look for smbios on Solaris 9/24/2020: lib/auxil/bufio_obj.c: fix memory corruption lib/win32/ptyio_obj.c: version with threads (broken) 9/22/2020: bsdtsort.c lib/{io,realst,str}.c lib/bsd/inet[6].c lib/snolib/serv.c lib/win32/{exists,inet}.c modules/ndbm/sdbm/dbe.c: cast ctype args to unsigned char 9/21/2020: Cleanup: configure: detect getline, or use auxil version fix missing g++ test under cygwin Makefile2.m4: auxil/getline.c (if needed) include/lib.h: add getline (if needed) lib/auxil/getline.c: fix! lib/win32/{inet,pty}io_obj.c: s/XXXio_read /XXXio_getline / config/win32/{ntmsvc,mingw}.mak: use auxil/getline.c config/djgpp/Makefile: use auxil/getline.c 9/21/2020: Another I/O Overhaul: Remove record length limits from text I/O. v311.sil: [PLB129] Add VLRECL (variable length record length(!)) as default/TERMINAL input record length. io_read will poke address of malloc'ed buffer into IOSP, and must generate variable (and copy) each line. config/win32/config.h: add SIGINT_EOF_CHECK include/io_obj.h: add linebuf, linebufsize, io_getline removed io_read. Update MSVC comments. Use C99 designated initializers when detected available. Add comments for inet_parse include/lib.h: add names/comments for tty_mode, tty_read args include/units.h: add NUNITS, comments lib/io.c: moved NUNITS to units.h add, use ioo_getline; remove ioo_read io_close frees io_linebuf use SIGINT_EOF_CHECK define call ioo_read_raw directly for FL_BINARY read io_openi: issue warning if recl given outside binary mode lib/stdio_obj.c: remove stdio_read; add stdio_getline, stdio_read_setup remove direct read/write/lseek for FL_UNBUF use setvbuf _IONBF for FL_UNBUF replace pipeio_read NULL define w/ pipeio_getline lib/auxil/bufio_obj.c: replace bufio_read w/ bufio_getline remove abort from bufio_write; remove bufio_read_raw lib/auxil/memio_obj.c: memio_seek call SUPER.io_seek to invalidate buf if opened in FL_APPEND(!!), preset pos to len lib/bsd/ptyio_obj.c: replace ptyio_read w/ ptyio_getline lib/generic/popen.c: retuen FILE pointer!!! lib/vms/tty.c: add ttyio_obj comment snolib/http.sno: add HTTP.MODE argument to HTTP.OPEN test/longrec.ref: include full record!!! test/tests.in: obsolete breakline.sno, k.sno tests!!! (new) lib/auxil/getline.c: for them that don't 9/19/2020: config/djgpp/config.h: add sock_t 9/19/2020: Conditionally ansify for MSVC: lib/init.c: SIGFUNC_ARG[_DECL] lib/ordvst.c: ordvst_cmp 9/19/2020: include/io_obj.h: default io_off_t lib/io.c, lib/stdio_obj.c, lib/auxil/memio_obj.c: use io_off_t config/win32/config.h: define io_off_t 9/19/2020: lib/win32/mstime.c: fix(?) HIGHMS config/win32/config.h: clean up(?) lib/auxil/memio.h: use bufio config/win32/ntmsvc.mak: moved BITFIELDS_SAME_TYPE to win32/config.h 9/16/2020: configure: fix for ptyio_obj.c cleanup new file headers 9/16/2020: include/io_obj.h: make nomatch extern lib/io.c: declare nomatch 9/16/2020: lib/io_stdio.c: handle line breaking for full-record size lines new: test/k.{in,sno} 9/16/2020: Clean compilation under MINGW w/ WS2, WS1, or NOTA Conditionalize ptyio as well config/win32/config.h config/win32/{mingw,ntmsvc}.mak lib/io.c lib/init.c lib/stdio_obj.c lib/bsd/inet6.c lib/dummy/inet.c lib/snolib/delete.c lib/auxil/bindresvport.c lib/win32/{exists,inet,inetio_obj,ptyio_obj}.c 9/15/2020: renamed all/pty.c to all/ptyio_obj.c split win32/inetio_obj.c from win32/inet.c Begin WS2 conditionalization include/inet.h: add close_socket, SETSOCKOPT_ARG_CAST config/win32/config.h: remove HAVE_WINSOCK_H config/win32/ntmsvc.mak: add WINSOCK conditionals lib/win32/ptyio_obj.c: dynamic lookup of C{reate,lose}PseudoConsole lib/endex.c: need inet.h for inet_cleanup lib/auxil/bindresvport.c: conditionalize for WS2 lib/io.c: remove ISOPEN lib/bsd/inet6.c: start of WS2 support 9/14/2020: config/djgpp/Makefile: use gmake ifdef lib/win32/inet.c: refactoring, use inet.h config/win32/config.h: add sock_t, remove isnan include/lib.h: move {tc,ud}p_socket, flags to inet.h include/inet.h (new) include/vars.h: rename wsock_init to wsock_init_done lib/io.c: use inet.h, silence strncpy complaints w/ memcpy lib/stdio_obj.c: use inet.h lib/bsd/inet.c: use inet.h lib/bsd/inet6.c: use inet.h, sock_t, remove inet_close lib/dummy/inet.c: remove inet_close, use inet.h 9/14/2020: modules: add .cvsignore files doc: update .cvsignore test: add .cvsignore 9/14/2020: lib/auxil.c/bufio_obj.c: fully populate methods (io_write and io_read raw print message and abort) io_close frees buffer do eof tracking, add MINBUFLEN include/bufio_obj.h: add eof member include/io_obj.h: add io_name to io_ops, MAKE_OPS for error messages lib/win32/inet.c: remove eof (now handled in bufio) and many methods call bufio close lib/win32/pty.c: convert to bufio, add command, make command_line call bufio close 9/13/2020: Windows compilation fixes. inetio seems to be working! Try updating djgpp/Makefile 9/13/2020: MSVC doesn't like io.h, rename to io_obj.h 9/13/2020: Another hack attack (or three): lib/init.c: Implement -U option, SNOBOL4UNBUFFERED doc/snobol4cmd.1.pea: Document -U SNOBOL4UNBUFFERED include/stdio_obj.h: stdio_wrap takes path lib/stdio_obj.c: honor unbuffer_all, have stdio_wrap take path lib/io.c: add inetio_open, pass path to stdio_wrap lib/bsd/pty.c: pass path to stdio_wrap include/lib.h: convert {tcp,udp}_open to _socket, remove inet_close lib/bsd/inet(6).c: convert {tcp,udp}_open to ..._socket lib/dummy/inet.c: convert {tcp,udp}_open to ..._socket lib/win32/inet.c: implement as inetio_open (io_obj provider) include/io.h: add inetio_open lib/auxil/memio_obj.c: cleanup header comments 9/13/2020: LOOOONG overdue OO refactoring of I/O (lamented as badly needed & last attempted in 2002) Makefile2.m4: add FISATTY, STDIO_OBJ, fix PTY_C config/win32/config.h: fix isnan, fake ftello/fseeko, add ssize_t include/lib.h: fisatty no longer takes fname lib/io.c: reduced by 20% (chars) 18% (lines) lib/bsd/pty.c: convert from forkexecpty to io_obj lib/bsd/tty.c: removed fisatty lib/dummy/pty.c: convert from forkexecpty to io_obj lib/dummy/tty.c: remove fname arg from fisatty lib/msdos/tty.c: remove fname arg from fisatty lib/posix/tty.c: remove fisatty lib/vms/tty.c: remove fname arg from fisatty lib/win32/tty.c: remove fname arg from fisatty new: include/io.h: OO base class/API lib/stdio_obj.c include/stdio_obj.h: most I/O code here lib/auxil/bufio_obj.c include/bufio_obj.h: helper for reading lines lib/auxil/memio_obj.c: memory based I/O w/o fmemopen lib/generic/fisatty.c: generic code moved from lib/many/tty.c lib/win32/pty.c: compiles, not tested 9/11/2020: lib/io.c: expand mode storage, add comments lib/vms/osopen.c: fix /dev/null 8/20/2020: new: lib/{bsd,dummy}/pty.c include/lib.h: add forkexecpty, waitpty lib/io.c: use forkexecpty, waitpty config/win32/{mingw,ntmsvc}.mak configure: add PTY_C=lib/bsd/pty.c Makefile2.m4: add PTY_C=lib/dummy/pty.c 8/17/2020: man page fixes configure: move strftime test genc.sno: handle RCALL single return label with if 8/13/2020: sdb.sh: handle lack of /tmp (Android) 8/12/2020: lib/snolib/serv.c: try to quell gcc9 truncation complaint 8/11/2020: configure: check for strftime, set HAVE_STRFTIME lib/date.c: use HAVE_STRFTIME -- reduce gcc space complaints modules/time/time.c: use HAVE_STRFTIME lib/snolib/host.c: enlarge buffer to make gcc happy 8/11/2020: Cleanup for Android: timing: search PATH for getprop config/check: check for /tmp (Android) configure: check for closefrom try checking for libncursesw for readline include/lib.h: add closefrom, getdtablesize lib/bsd/closefrom.c: closefrom using getdtablesize lib/posix/getdtablesize.c: getdtablesize using sysconf lib/dummy/getdtablesize.c: dummy getdtablesize Makefile2.m4: add closefrom.o getdtablesize.o rules 8/10/2020: timing: add stuff for version, hw & clock on Android **************** release 2.1.6 (CVS tag REL_2_1_6) 8/9/2020: configure: update for version 2.1.6 8/8/2020: tests/{tests.in,setexit7.{sno,ref}}: add &FATALLIMIT test 8/8/2020: modules/ffi/funcs.sno: credit Fred Weigel in AUTHOR section 8/8/2020: v311.sil: [PLB128] add &FATALLIMIT enables trapping some otherwise fatal errors for sdb procs: new labels/functions for FATALLIMIT snolib/sdb.sno: use &FATALLIMIT to trap some fatal errors doc/snobol4error.1.pea: note trapable fatal errors! doc/snobol4ext.1.pea: remove "ERRTEXT can be traced" doc/snobol4key.1.pea: add &FATAL, &FATALLIMIT test/{a,diag1,diag2,dump}.ref: add &FATALLIMIT test/blocks/dump.ref: add &FATALLIMIT 7/28/2020: doc/sdb.1.pea: Add =break for bt/run Fix what description Add a bug (cannot trap fatal errors) 7/7/2020: pkg/win32/README.win32: add doc directory mention. 7/6/2020: INSTALL: update Windows info 7/4/2020: pkg/win32/README.win32: fix SNOLIB (was SNODIR) config/win32/ntmsvc.mak: runinstall 7/2/2020: doc/snobol4.1.pea: add ezio link **************** release 2.1.5 (CVS tag REL_2_1_5) 7/2/2020: configure: update for version 2.1.5 7/2/2020: More Win10 cleanup: make more batch scripts work! config/win32/ modules.bat: clean up, add readline format.bat: clean up ntmsvc.mak: remove snobol4.exp snolib4.lib lib/win32/sys.c: cleanup, again pkg/win32/ README.win32: s/zip/tar/ sdb.bat: fix, support run command timing.bat: run in temp dir; fix/cleanup; add systeminfo snolib/setuputil.sno: add win.msc clean command parms.h: move config.h include **************** release 2.1.4 (CVS tag REL_2_1_4) 7/1/2020: configure: update for version 2.1.4 7/1/2020: Updates for build on Windows 10: new pkg/win32/maketar.bat: make tarball removed: pkg/win32/makezip.sh config/win32/config.h: ifndef isnan config/win32/format.bat: create snopea.1.html config/win32/mingw.mak: add all, cpuid.exe config/win32/modules.bat: explicit snobol4.exe config/win32/ntmsvc.mak: add clean, tar lib/win32/sys.c: version lib/win32/tty.c: needs malloc.h (now available) on 64 bits modules/random/Makefile: fix INC, dependencies modules/random/random.c: fix typedefs, make bsd_random uint32_t pkg/win32/install.bat: comment out load.doc, use "call" snolib/setuputil.sno: remove destdir for win.msc install 6/28/2020: CHANGES, README: tiny tweaks TODO.soon: add doc/html/man ideas for setuputils **************** release 2.1.3 (CVS tag REL_2_1_3) 6/25/2020: configure: update for version 2.1.3 6/23/2020: doc/snopea.7.pea: tweak L format example **************** release 2.1.2 (CVS tag REL_2_1_2) 6/21/2020: configure: update for version 2.1.2 6/21/2020: Makefile2.m4: quote tab for INSTALL_SYSTEM (seen on cygwin) 6/21/2020: Makefile2.m4: install snobol4ezio.3 man page doc/Makefile: note generated list in two places! 6/21/2020: configure: test for g++ for cygwin COM module **************** release 2.1.1 (CVS tag REL_2_1_1) 6/20/2020: doc/Makefile: remove $(TXT) from $(ALL) nroff and/or -ms not always available! configure: update for version 2.1.1 **************** release 2.1 (CVS tag REL_2_1) 6/20/2020: README, CHANGES, configure: update for version 2.1 6/20/2020: modules/stat/funcs.sno: add ST_TYPE_STR TODO.soon: update 6/20/2020: snolib/ezio.sno: improve snopea embedded documentation 6/9/2020: doc/snobol4io.1.pea: document 'E' and 'X' 6/8/2020: include/macros.h: Use S4_EXTERN on _NORET 6/7/2020: Implement I/O 'X' (eXclusive) and 'E' (closE on ExEc) depends on stdio support (FreeBSD 10, glibc 2.7) lib/io.c, lib/bsd/inet[6].c, lib/win32/inet.c, include/lib.h README: John Willis Update TODO.soon 6/7/2020: 1000th version of History file!! new snolib/ezio.sno: easy to use I/O functions Makefile: make snobol4ezio manual pages doc/snobol4io.1.pea: reference snobol4ezio(3) man page 2/18/2020: doc/snobol4func.1.pea: note STOPTR extension doc/snobol4pea.7.pea: tweaks; add perlpodspec link 2/17/2020: modules/stcl/stcl.c: improve documentation 2/13/2020: doc/snobol4func.1.pea: formatting fix 2/8/2020: doc/snobol4.1.pea doc/snobol4op.1.pea: add unary operator table to snobol4op(1) Makefile2.m4: always do doc directory make 2/7/2020: Makefile2.m4: use GENERATED_DOCS_DOCDIR3 for installs v311.sil, globals, test/labelcode.{sno,ref}, test/tests.in, doc/snobol4func.1.pea: add LABELCODE function (ala SITBOL LABEL()) modules/time/time.c: quash glibc 2.20+ warning 2/6/2020 doc/snobol4func.1.pea: more history corrections 2/4/2020 lib/snolib/host.h: add snopea doc for snobol4host(3) doc/snobol4func.1.pea: reference snobol4host(3) doc/Makefile: commands to create snobol4host.3[.html] 02/02/2020!!! snolib/sdb.sno: add .sdb_history file need to keep history over "run" commands if nothing else! doc/sdb.1.pea: document .sdb_history, /tmp files 02/01/2020 configure: try /usr/lib/tclConfig.sh as default TCONF 01/25/2020 doc/snobol4func.1.pea: note more extensions from SPITBOL 360 01/24/2020 configure: fix for build with libreadline doc/snobol4func.1.pea: update HOST() output! 01/24/2020 Add run command! snolib/sdb.sno: add run command! sdb.sh: support run command via temporary file! doc/sdb.1.pea: add run command, /tmp file bug 01/21/2020 FreeBSD 12: configure: check for readline.h in /usr/include/edit modules/readline/setup.sno: use READLINE_INCLUDE 01/12/2020 modules/sqlite3/sqlite3dbm.sno: more doc fixes 11/22/2019 modules/sqlite3/sqlite3dbm.sno: fix documentation 10/13/2019 doc/snobol4blocks.1.pea: fix text configure: check for C99 modules/random/random.c: use HAVE_STDINT_H to help compilation on Solaris 5.7! reported by John Willis 8/2/2019 timing: add lscpu 6/15/2019: modules/ffi/ffi.c: switch from (SUSv2) to (C99) 3/22/2019 modules/dirs/dirs.c: fix SEEKDIR doc text 3/6/2019 cpuid.c: decode cpuid model number 1/22/2018 modules/stat/funcs.sno: fix ATIMENS paste-o 1/7/2018 timing: fix emerge command (thanks to Mateusz Grotek) 12/30/2017 doc/sdb.1.pea: document .sdbinit 12/23/2017 snolib/sdb.sno: make "s" mean "step" again prevent "source" loops 12/22/2017 snolib/sdb.sno: add save command (and function) from start of run doc/sdb.1.pea: document "save" and "source" doc/snobol4.1.pea: mention BLOCKS/SNOBOL4B up top 12/21/2017 doc/sdb.1.pea: document that "list" takes LABEL_OR_STATEMENT_NUMBER snolib/sdb.sno: add source command (it nests!) 11/19/2017: snolib/sdb.sno: start of work for "run" command Read commands from .sdbinit file Modifications to watch/break @NUMBER Start of "run" command (output commands to restore breakpoints) 9/7/2017: snolib/sdb.sno: add missing comma to SDB.TRAP.VARS pkg/win32/timing.bat: changes from 11/14/2016 11/18/2016: modules/ffi/ffi.c: fix RTLD_NEXT paste-o configure: fix help output tabbing 10/22/2016: configure, modules/readline/readline.sno Supply dummy READLINE() for sdb reported by many(?) 10/13/2016: doc/snobol4blocks.1.pea new URL for asa2pdf 7/1/2016: timing: /sys/class/dmi/id/{sys_vendor,product_name} 2/26/2016: doc/snobol4func.1.pea: fix DATE(2) description reported by Laurence G. Battin 2/23/2016: modules/ffi/ffi.c: handle no RTLD_NEXT (Cygwin) reported by Laurence G. Battin 11/29/2015: modules/ffi/ffi.c: fix FFI_DLSYM Fix submitted by Fred Weigel in February! doc/snobol4cmd.1.pea: Add -B doc/snobol4io.1.pea: Document 'K' 11/8/2015: doc/snopea.7.pea: add perlpod link 8/18/2015: lib/win32/sys.c: add Win8.1, Win10 8/4/2015: include/lib.h: add inet routines lib/io.c: implement experimental 'K' (breaK) flag for Phillip Thomas lib/win32/inet.c: support breakline test/tests.in: add breakline.sno test/breakline.{sno,ref}: breakline tests 4/7/2015: lib/break.c: allow breakpoint table expansion for Fred Weigel 4/6/2015: modules/random/random.c: kill warning for gcc 4.8.2 History: fix 2015 dates! 3/31/2015: lib/io.c: check for NULL fp in io_print_str (reported by Fred Weigel) 3/30/2015: snolib/sdb.sno: create, use SDB.VALUE for what, args 1/12/2015: DJGPP updates (from Burkhard Meissner) config/djgpp/Makefile: remove module files, add loadx.o config/djgpp/config.h: add defines lib/djgpp/osinit.c: DXE_EXPORT (__dpmi_int) 1/11/2015: Makefile2.m4: NDBM_C typo (thanks to Burkhard Meissner) 1/10/2015: doc/snobol4key.1.pea: note Traceable keywords. 1/8/2015: doc/snobol4key.1.pea: fix snobol4error refs modules/readline/readline.c: add comma in SEE ALSO 1/6/2015: INSTALL: mention development packages configure: warn when falling back to sdbm fix "Using" check for sqlite3 amalgamation sources in modules/sqlite3 1/5/2015: configure: AIX flags & comments, add SNOLIB_LOCAL Makefile2.m4: use SNOLIB_LOCAL snolib/sdb.sno: FREEZE SDB.SCALAR 1/4/2015: snolib/sdb.sno: add SDB.SCALAR: table of datatypes safe to display lib/io.c: io_ecomp() -- check for NULL pointer test/{ndbm,random,sleep,time}.sno: use ../modules/... for includes configure: update to 2.0+ add missing quote doc/snobol4cmd.1.pea: update -I description modules/random/random.c, lib/io.c: try fixing icc warning configure: removed some ancient stuff, add icc support lib/snolib/host.[ch]: add HOST_CC_IS config/win32/config.h: add HOST_CC_IS Solaris fixes, thanks to Mark R Riordan: include/lib.h: add loadable_function_t for os_load() (SunCC warning) lib/{unix98,win32}/load.c: use loadable_function_t * test/run.sh: avoid ksh-ism (export VAR=var) Makefile: pass make spotless down to doc/Makefile doc/Makefile: add make spotless (remove porting.txt) 1/3/2015: lib/init.c: always add ".", before processing options doc/snobol4.1.pea: update search path description modules/stcl/stcl.c: remove debug printf 1/2/2015: v311.sil: another PCOMP! doc/snobol4io.1.pea: ``terminal'' test/base.{sno,ref} (new): test basename.sno test/tests.in: add base.sno Makefile2.m4: add snobol4op to GENERATED_DOCS_DOCDIR1 doc/snobol4func.1.pea: fix typo **************** release 2.0 (CVS tag REL_2_0) 1/1/2015: configure: set SO_LD for Solaris/cc; quit if SO_LD not set fix SNOLIB= value override SNOLIB in RUNSETUP (problem seen by Phillip Thomas) update version to 2.0 snolib/basename.sno: revised (idea thanks to Phillip Thomas) lib/init.c: move "." first in search path snolib/snopea.sno: output

before

    ; htext; output endlist in 'para' doc/snobol4.1.pea: fix search list order, made "DIRECTORY SEARCH LIST" a section add more spacing in characters table snolib/setuputil.sno: use basename.sno fix windoze setuputil path README, COPYRIGHT, snolib/sdb.sno: update Copyright date 12/31/2014: README: update INSTALL: ran ispell configure: append -VERSION to DOC_DIR doc/snobol4blocks.1.pea: fix, add link lib/init.c: fix missing newline (thanks to Phillip Thomas) 12/30/2014: doc/snobol4.1.pea: add snobol4{readline,sqlite3dbm}(3) refs doc/snobol4func.1.pea: fontify! snolib/snopea.sno,doc/snopea.7.pea: add L<> doc/snobol4[blocks].1.pea: use L<> Makefile2.m4: remove modules/setuputil.sno (spotted by Jonathan Kaye, Harald Arnesen) *** 2.0-rc3 (tag REL_2_0_RC3) 12/30/2014: genc.sno: add INCDEC to generate ++/-- doc/snobol4func.1.pea: fill in remaining empty spots. README, CHANGES: update configure: update to 2.0-rc3 12/29/2014: README: update configure: fix bindresvport_sa detection on OpenBSD 5.6 timing: grep for VBOX, bios0: in dmesg.boot doc/load.txt: add lret_t v311.sil: [PLB125] two more PCOMPs died when dynamic region straddled 2G line on OpenBSD!! modules/sqlite3/sqlite3dbm.sno: fix docs doc/{sdb,snobol4{blocks,cmd,ctrl,func}}.1.pea: ran ispell 12/28/2014: configure: check for TCL_VERSION remove test for HAVE_FSTAT INSTALL, CHANGES: update doc/snobol4op.1.pea (new) doc/snobol4blocks.1.pea: update doc/snobol4.1.pea: update for snobol4op(1) doc/Makefile: add snobol4op snolib/setuputil.sno: update support comment snolib/snopea.sno: force paragraph before table doc/snobol4io.1.pea: fix table, ran ispell 12/27/2014: snolib/setuputil.sno: win: install one file at a time, html files config/win32/modules.bat: add random, add -v config/win32/ntmsvc.mak: add docs, move -DBITFIELDS... back config/win32/format.bat: format .pea files config/win32/config.h: BITFIELDS_SAME_TYPE moved back to makefile pkg/win32/install.bat: install modules last, check if dirs exist install snopea.in as lib\snopeacmd.sno install snopea.bat pkg/win32/timing.bat: add -x pkg/win32/snopea.bat (new) lib/init.c: add -x to usage 12/26/2014: modules/ffi/ffi.c: add =ecode doc/snobol4.1.pea: fix snobol4stcl 12/25/2014: config/win32/mingw.mak: clean out old stuff, conditionalize sqlite config/win32/ntmsvc.mak: clean out more old stuff config/win32/borland.mak: clean out more old stuff config/win32/config.h: define HOST_SHARED_OBJ_SUBDIR pkg/win32/install.bat: fix modules/setuputil.sno: fix for windows install make.bat: pass %1 Makefile2.m4,configure,doc/Makefile: moved setuputil.sno to snolib snolib/setuputil.sno: change path tests 12/24/2014: README, INSTALL: update config/win32/{mingw.mak,config.h}: add -shared-libgcc config/win32/ntmsvc.mak: if EXISTS config/modules.bat: add sqlite3 (test for sqlite3.c) modules/com/com.cpp: fix handle handling snolib/snopea.sno: don't need repl.sno modules/{dirs/dirs.c,fork/fork.c,ndbm/ndbm.c,readline/readline.c, sqlite3/sqlite3mod.c,stcl/stcl.c}: lret_t **** NOTE!! changed handle.h API/ABI!!! 12/23/2014: lib/init.c: create, use, export snolib_vers lib/snolib/host.[ch]: HOST_SNOLIB_VERS modules/setuputil.sno: use HOST_SNOLIB_VERS process -d and -v pkg/win32/install.bat: put snobol4.lib in %SNOVER% config/win32/{mingw,ntmsvc}.mak: kill cygwin config.{h,sno} configure: output INSTALL_SYSDEP on cygwin to install libsnobol4.a Makefile2.m4: use INSTALL_SYSDEP include/handle.h: make snohandle_t a descr add LA_HANDLE/RETHANDLE new_handle() takes table name fix handle lookup on 32 bit system lib/snolib/handle.c: return handles as EXTERN types new_handle() takes table name module/{dir/dirs.c,ffi/ffi.c,ndbm/ndm.c,sqlite3/sqlite3mod.c, stcl/stcl.c}: use LA_HANDLE/RETHANDLE pass table name to new_handle() module/ffi/funcs.sno: use unique to generate vars to hold handles lib/io.o: try fixing iNTEL C warnings (reported by Clem Cole) lib/auxil/bindresvport.c: musl libc broken (reported by Harald Arnesen) 12/22/2014: modules/setuputil.sno: wrap copy dest in quotes pkg/win32/install.bat: cleanup, set SNOLIB modules/stcl/stcl.c: one more try to get rid of warning! 12/21/2014: configure, Makefile2.m4: s/SNOLIB_VER/SNOLIB/ snolib/snopea.sno: tweak headers, links for snopea doc/snobol4.1.pea: ref snopea(1) & snopea(7) doc/snobol4func.1.pea: add entries for some standard functions! clean up (most) question marks about extensions modules/logic/funcs.sno: add missing =ecode doc/snobol4ctrl.1.pea: tweaks modules/dirs/dirs.c: use =item modules/logic/readline.c: add missing =ecode modules/setuputil.sno: honor DESTDIR implement install for win.msc Makefile: cleanup *_modules, add printenv Makefile2.m4: add printenv pkg/win32/install.bat: use copy /y & modules.bat install config/win32/modules.bat: take command argument snolib/{logic,ndbm,random,readline,stcl,time}.sno: removed 12/20/2014: snolib/snopea.sno: output .IP for empty =item use HOST_VERSION_DATE doc/snobol4io.1.pea: cleanup modules/setuputil.sno: update BUGS lib/snolib/host.[ch]: add HOST_VERSION_DATE *** 2.0-rc2 (tag REL_2_0_RC2) 12/20/2014: doc/snobol4key.1.pea: made it real. doc/snobol4ctrl.1.pea: made it real. doc/snobol4ext.1.pea: moved stuff to other pages. doc/snobol4error.1.pea: ref snobol4cmd(1), remove =break doc/snobol4func.1.pea: add first entries! doc/snobol4.1.pea: remove =break, moved stuff into snobol4io(1) modules/sprintf/sprintf.c: fix man page title line doc/snobol4io.1.pea: cleaned up. snolib/snopea.sno: force paragraph before =item configure: update version to 2.0-rc2 12/19/2014: modules/sqlite3/setup.sno: detect amalgamation sources modules/sqlite3/sqlite3mod.c (renamed) modules/setuputil.sno: add mingw, remove nologo config/win32/modules.bat: use %TOP% config/win32/config.h: cleanup config/win32/ntmsvc.mak: cleanup, removed module files config/win32/mingw.mak: removed PML files, make modules config/win32/snobol4.vcxproj: removed module files modules/stat/funcs.sno: fix comment/docs. pkg/win32/install.bat: update doc/snobol4.1.pea: snobol4func(1) ref 12/18/2014: config/win32/{config.h,ntmsvc.mak}: disable PML_{TIME,RANDOM,COM,NDBM} remove logic.obj, sleep.obj define HAVE_SDBM_H modules/stat/stat.c: ifdef st_atimensec config/win32/config.sno: fix sleep path, add sdbm files modules/setuputil.sno: /LIBPATH include/load.h: define lret_t (required in windows DLLs) modules/*/*.c: use lret_t Makefile2.m4: remove obsolete option for com.cpp configure: ditch HAVE_FILE_NSEC, tweak cygwin LDFLAGS output to config.sno for COM module modules/dirs/win32/dirent.[ch]: utilities for win32 modules/com/com.cpp (moved from snolib/win32): add COM_DL modules/com/setup.sno (new) config/win32/config.sno: set DIRS_{INCLUDE,FILES} modules/dirs/setup.sno: use DIRS_{INCLUDE,FILES} config/win32/modules.bat (new) 12/17/2014: README, INSTALL: update for 2.0 12/16/2014: man page tweaks configure, Makefile2.m4: install HTML in $PREFIX/share/doc/snobol4 12/15/2014: modules/stcl/stcl.c: clean up warning (reported by Clem Cole) lib/snolib/{atan,exp,tan}.c: propogate REAL_ISFINITE (Clem again) *** 2.0-rc1 (tag REL_2_0_RC1) 12/14/2014: CHANGES: Updated configure: update version to 2.0-rc1 12/13/14! include/lib.h, lib/{init.c,io.c,snolib/host.[ch]}: HOST_SNO{LIB_{BASE,LOCAL,V{LIB,LOCAL}},PATH_DIR} configure: define SHARED_OBJ_SUBDIR lib/snolib/host.[ch]: HOST_SHARED_OBJ_SUBDIR modules/setuputil.sno: use HOST_{SHARED_OBJ_SUBDIR,LIB_V{LIB,LOCAL}} snolib/repl.sno: replace pattern w/ EVAL(expr) snolib/snopea.sno: crock to detect man pages, and turn into links! add =link and =anchor doc/snobol4.1.pea: use =link & =anchor 12/12/2014: configure: fix config.sno MAN3DIR Makefile: add M2TARGETS, timing.out, build_all Makefile2.m4: remove obsolete man files, add build_all revert to always timing on "make" test/bench.sno: tweak ending conditions 12/11/2014: doc/snobol4blocks.1.pea: fonts, cleanup snolib/snopea.sno: fix html \' modules/setuputil.sno: clean -- remove extras man pages install .sno & man files (extras too!) modules/*/Makefile: ../../snobol4, remove -b modules/sqlite3/sqlite3dbm.sno: rename SQL3DBM_ERRMSG, flush CLEARERR configure: output MAN3DIR in config.sno Makefile2.m4: use setup.sno install create local/shared Changed "dynload" to "shared" 12/10/2014: lib/init.c: usage: fix -b, add -N/-I doc/snobol4cmd.1.pea: add -N Makefile2.m4: install snobol4cmd.1 snolib/sdb.sno: fix "info"; allow "ignore bkpt" use built-in INTEGER() doc/sdb.1.pea: document "ignore" change doc/snobol4{ctrl,func,key}.1.pea reference snobol4ext(1) 12/9/2014: Makefile2.m4: add snobol4{func,blocks,key,ctrl} doc/Makefile: add snobol4{func,blocks,key,ctrl} doc/snobol4func.1.pea (new): list of functions doc/snobol4blocks.1.pea (new): blocks extension doc/snobol4key.1.pea (new): list of keywords doc/snobol4ctrl.1.pea (new): list of keywords doc/snolib.3 (removed) doc/snolib.3.pea (new) 12/8/2014: doc/snobol4.1.pea: fixes Makefile: add rule for "with"; remove callgraph from DISP modules/ndbm/ndbm.c: tweak documentation 12/7/2014: snolib/snopea.sno: add missing escapes to html charpats doc/sdb.1.pea: clean up doc/snopea.7.pea: clean up doc/snobol4.1.pea split out snobol4cmd doc/snobol4cmd.1.pea split out of snobol4.1.pea 12/6/2014: snolib/snopea.sno: add =nitem, =table/=row/=etable put CSNOBOL4(B) version in headers output & doc/snopea.pea: document =nitem, =table/=row/=etable snopea.in: infer output format from output filename renamed doc/*.pea to doc/*.sect.pea *.sect.html doc/Makefile: explicit rules new: doc/snobol4.1.pea doc/snobol4ext.1.pea doc/snobol4io.1.pea removed old doc/snobol4.1 moved lib/snolib/readline.c to modules/readline/ configure: make readline a module modules/readline/setup.sno (new) modules/readline/readline.c: add pea docs removed old doc/snobol4readline.3 doc/Makefile: removed snobol4readline Makefile2.m4: adjust READLINE_C, remove an --format option 12/5/2014: Makefile: add callgraph to GENERATED doc/Makefile: use explicit rules GENERATED files depend on ../snobol4 doc/snobol4.1: move error codes to snobol4error(1) doc/snobol4error.pea (new): from snobol4.1 Makefile2.m4: install config.sno modules/sqlite3/{sqlite3.c,funcs.sno}: add pea docs v311.sil: Fix compilation withut BLOCKS: commented out unused R_R_N (nested .IFs don't work) snolib/snopea.sno: fix HTML =item formatting doc/man2pea.sno: char mapping; handle .br, .IP 12/4/2014: Makefile: {clean,build}_modules shorthands Makefile2.m4: add rule for snopea.7, move GENERATED_DOCS up add sdb.1 to GENERATED_DOCS add $(SNOPEA) shorthand sed BINDIR/VERS into snopea.in configure: output, use $(RUNSETUP) shorthand doc/Makefile: flush test, output snopea.7 as snopea-format.{html,ps,pdf} Add SNOPEA=, use -N make snopea-format.7 a symlink add txt, html to ALL modules/setuputil.sno: fix extras handling, check for =pea lines snolib/snopea.sno: cleanup html charpat, complain on open errors add subsect, new special chars doc/snopea.pea: add subsect, special characters doc/sdb.pea: snopea version of sdb man page doc/sdb.1 (deleted) doc/man2pea.sno: handle SS, TP snopea.in (was snopea) 12/3/2014: Makefile: clean up more generated doc files snopea, doc/snopea.pea, modules/LOTS: don't bold parens in man page refs snolib/snopea.sno, doc/snopea.pea: add =break modules/ndbm/ndbm.c: add pea docs modules/random/random.c: add pea docs modules/stcl/stcl.c: add pea docs modules/time/funcs.sno: add pea docs doc/snobol4{dbm,random,tcl,time}.3: deleted doc/Makefile: remove snobol4{dbm,random,tcl,time} Makefile2.m4: fix modules/snobol4setup.3.html remove snobol4{dbm,random,tcl,time}.3 install snopea script install snopea.7 page configure: output MAN7DIR 12/2/2014: Makefile: config.m4 config.h config.sno version.h version: configure COPYRIGHT, README, snolib/sdb.sno: update copyright date, use utf 12/1/2014: snolib/snopea.sno: cleanup & add oline "command" doc/snobol4tcl.3: fix typo doc/man2pea.sno: comment 11/30/2014: doc/snobol4dbm.3: mention snobol4sqlite3dbm(3) doc/snobol4tcl.3: reference wish(1) man page doc/man2pea.sno: a start moved (copied & removed) files to modules/ snolib/{fork,logic,ndbm,random,sprintf,stcl,time}.c sdbm directory 11/29/2014: modules/setuputil.sno: process 'extras' w/ snopea modules/sqlite3/sqlite3dbm.sno: add snopea docs modules/sqlite3/setup.sno: add extras = sqlite3dbm.sno 11/27/2014: config/win32/config.sno (new) config/win32/{config.h,ntmsvc.mak}: tweakage for MSC modules/stat/stat.c: tweak for MSC configure: add HAVE_FILE_NSEC 11/26/2014: modules/sqlite3/{sqlite3dbm,testdbm}.sno: DBM interface, test modules/sqlite3/sqlite3.c: ifdef DEBUG 11/25/2014: many: replace =pod with =pea modules/logic/funcs.sno: add documentation Makefile2.m4: generated docs 11/23/2014: snopea, modules/dirs/dirs.c, modules/ffi/ffi.c, modules/stat/funcs.sno: use \- in man page header 11/21/2014: snolib/snopea.sno: disable hyphenation after .SH 11/20/2014: snolib/snopea.sno: implement character mappings doc/snopea.7: tweak snopea: use HOST_xxx constants 11/19/2014: doc/snobol4.1: document -b change, -x option doc/snobol4dbm.3: fix spelling doc/snopea.pea (new): snopea(7) man page doc/Makefile: add stuff for snopea(7) 11/18/2014: snopea: flush single letter opts, some renaming modules/setuputil.sno: make html man pages snolib/snopea.sno: configure: output MODULES_HTML MODULES_MAN Makefile2.m4: use MODULES_MAN 11/17/2014: snopea: add argument processing snolib/snopea.sno: add lsep for
    , fix html fonts 11/15/2014: lib/init.c: add -x to force banner timing: use -x lib/snolib/{fork,sprintf}.c: head1 -> head LOTS: replace =head1 w/ =sect snolib/snopea.sno: first cut at HTML output 11/13/2014: Makefile2.m4: install depends on modules/snobol4setup.3 add rule for modules/snobol4setup.3 install modules/snobol4setup.3 install modules/*/*.3 11/12/2014: lib/init.c: no banner if source file on command line -b always cancels banner snopea: remove -b 11/11/2014: modules/ffi/{ffi.c,funcs.sno}: tweak doc snopea (new): program to run snopea 11/10/2014: snolib/snopea.sno: made into an include file modules/setuputil.sno: call snopea() if pod seen configure: use SNOPATH, add ../../snolib to setup.sno modules/ffi/ffi.c: more POD doc/Makefile: force old-style bolding (no escapes) turned off ps, pdf, html 11/9/2014: lib/snolib/{fork,sprintf}.c: add POD doc 11/8/2014: modules/setuputil.sno: add POD doc modules/dirs/dirs.c: fix documentation snolib/snopea.sno: use basename, add =bull, =code, =ecode snolib/basename.sno (new) 11/7/2014: snolib/snopea.sno (new): tiny "POD" formatter modules/setuputil.sno: add pre.sno, pass POD documentation first cut at msc commands modules/ffi/{ffi.c,funcs.sno}: add documentation modules/stat/funcs.sno: add documentation modules/stat/stat.c: add block device modules/dirs/dirs.c: add POD docs config/win32/config.h: more tweaking for mingw lib/win32/tty.c: include malloc.h under mingw 11/2/2014: modules/ffi/{ffi.c,funcs.sno,test.sno,test2.sno}: PREP takes one arg fix ffi.c for Linux modules/setuputil.sno: fix config.h check configure: fix cygwin --out-implib 11/1/2014: configure: tweak messages, add SO_XXX for Cygwin config/win32/config.h: fix CC collision config/win32/mingw.mak: define CC on command line modules/ffi/{ffi.c,setup.sno,test.sno,test2.sno}: FFI interface!! configure: detect ffi, try making libsnobol4export.a on cygwin config/win32/mingw.mak: try making libsnobol4export.a 10/22/2014: modules/sqlite3/sqlite3.c: fix typo, floating point tweaks 10/21/2014: main.c: display MODIFIED_BANNER if defined 10/20/2014: Makefile2.m4: snolib cleanup lib/snolib/fork.c: WAITPID cleanup lib/snolib/readline.c: add free() 10/19/2014: configure: add fork module auto-detect Tcl on MacOS lib/snolib/fork.c: add WAITPID() modules/fork/setup.sno: new 10/18/2014: Makefile2.m4: removed time.o sleep.o logic.o random.o sprintf.o from snolib.a configure: ADD_OBJS([logic.o random.o time.o sleep.o]) if --force-pml add sprintf module config/win32/config.h: first cut at MSC, Borland flags modules/sprintf/setup.sno: new 10/16/2014: modules/setuputil.sno: auto-detect distribution builds configure: flush dbuild test/run.sh: show search path lib/snolib/{delete,exit,getenv,host,ndbm, readline,rename,sprintf,stcl}.c: use mgetstring, free 10/16/2014: configure: check for timegm; fix missing "c"; add SETUP_SYS lib/snolib/time.c: add TIMEGM() lib/snolib/host.[ch]: add HOST_SETUP_SYS config/win32/config.h: alias for timegm, add HAVE_TIMEGM add SETUP_SYS, SO_LD, DL_LD modules/setuputil.sno: use HOST_OBJ_EXT, HOST_SETUP_SYS 10/14/2014: lib/snolib/ndbm.c: fix day one error in LOAD() comment (now being used to generate ndbm.sno)!! Misbehavior spotted by Rafal Sulejman 10/13/2014: Makefile: cleanup for modules directories add "with" as configure output remove configure dependancy (runs constantly when newer than with) Makefile2.m4: explictly pass -N to test/run.sh test/run.sh: remove -N (explicitly passed by Makefile2) v311.sil,procs: remove unused blocks code/functions bsdtsort.c: quiet clang 3.3 warnings configure: fix ndbm loadable w/ sdbm sdbm.c: save errno for dbm_error 10/12/2014: Makefile2.m4: install MODULES_{INCLUDE,LOADABLE} 10/11/2014: modules: dirs logic ndbm random sqlite3 stat stcl time (only a year after code was written!) too many changes to mention. -N option -INCLUDE no longer implicitly searches local dir (must be in path) Tested on FreeBSD 10.0, Ubuntu 12.04.05, MacOS 10.7.5 10/8/2014: Makefile2.m4: install handle.h configure: use -rdynamic on ELF systems; add -fPIC to SO_LDFLAGS 3/17/2014: configure: check for lstat(), define HAVE_LSTAT 2/22/2014: configure: check for isfinite(); define HAVE_ISFINITE include/macros.h: check HAVE_ISFINITE "finite" gives warning on MacOS 10.9 (reported by Clem Cole) 1/18/2014: v311.sil: [PLB124] fix "FUNCTION" TRACE() (problem reported by Dani Richard) test/tests.in: add trfunc.sno test/trfunc.{sno,ref}: new: tests for TRACE 1/1/2014: configure: quiet warnings for "alignof" 12/24/2013: Makefile2.m4: install str.h configure: add OBJECT_EXT config/{win32,vms,djgpp}/config.h: add OBJECT_EXT lib/snolib/host.[ch]: add OBJECT_EXT, HOST_OBJ_EXT lib/snolib/{logic,random,time}.c: add LOAD() comments 12/22/2013: configure: switch to --without-blocks 11/9/2013: snolib/wrapper.sno: add INT32, INT64 configure: use -fPIC 11/4/2013: pml.h: BREAKPOINT() was under ifdef PML_RANDOM 11/3/2013: Makefile2.m4: add INSTALL_BIN_FLAGS configure: use "check" for bindresvport[_sa]() clear INSTALL_BIN_FLAGS on MacOS add '-undefined dynamic_lookup' on MacOS lib/win32/com.cpp: fix a paste-o 10/28/2013: configure: fix manpath default display 10/27/2013: v311.sil: [PLB123] Add &COMPNO (ala SITBOL/SNOBOL4B) snolib/sdb.sno: use &COMPNO lib/io.c: flush unused variable 10/26/2013: v311.sil: [PLB122] Fix paste-o for single letter 'R' trace 10/22/2013: Merge from BR_1_5_PLUS_BLOCKS (see below) === merged from BR_1_5_PLUS_BLOCKS 10/17/2013: v311.sil: [PLB121] Clean up PRINT/EJECT carriage control Implement ASCII Carriage Control if CC(unit) < 0 lib/io.c: Implement ASCII Carriage Control if CC(unit) < 0 add findfile() function; do multiple writes in fastpr {acm44[01],mts1{44,6[46]},reg,tree[12]}.ref: update 10/15/2013: v311.sil: [PLB119] fix BCHAR() -- was writing into const string clean up warning FORMATs, report file & line [PLB120] change DI_8 to DI_DSC for 64-bit systems! test/blocks/bc.{sno,ref}: test BCHAR test/blocks.in: add blocks/bc.sno 10/13/2013: test/blocks.in: tweak dump test test/blocks/dump.ref: update lib/io.c: supply missing argument to io_print_str()! 10/12/2013: test/blocks.in: blocks/mts16[246].sno blocks/mts16[246].{sno,ref} lib/str.c: remove divide from movblk2 10/11/2013: Working better! v311.sil: [PLB118] replace MOVBLK with MOVBLK2 in BLAND genc.sno: add MOVBLK2 include/macros.h: add MOVBLK2 include/lib.h: add movblk2 lib/str.c: add movblk2 test/blocks.in: blocks/{box,acm443a,mts145,tree1,tree2} test/test.in.sh: (new) take BASE from environment test/blocks/{box,mts14[35],tree[12]}.ref (new) test/blocks/{mts145,tree}.sno (new) 10/11/2013: On branch BR_1_5_PLUS_BLOCKS SNOBOL4B (SNOBOL4 with BLOCKS) thanks to Mike Alexander new: procs.blocks genc.sno: Make macros used by BLOCKS macros into functions. Add --with NAME flag, process .IF[E] NAME / .FI Add notes about clearing F&V from reading PDP-10 macros Read procs.blocks if --with BLOCKS selected BLOCKS macros: CYC IF{DEF,FIT,MERGE,PHY,REP,ST,CONT} MAX, MERGSP, NN, RELS, SWAP, TRL, FASTPR Makefile: add "with" bsdtsort.c: make hash unsigned, do rotate configure: add --with-blocks, write "with" file (if changed) gendata.sno: Add --with flag, process .IF NAME / .FI Process data defns before end of code (for BLOCKS) gensyn.sno: Add --with flag, process .IF NAME / .FI globals: add BLOCKS related globals main.c: change name to CSNOBOL4B under ifdef BLOCKS syntax.tbl: add blocks binary operator tables: BBIOPTB and BSBIPTB v311.sil: [BLOCKS] add BLOCKS code [PLB117] add -[NO]BLOCKS to dis/enable blocks operators lib.h: add io_fastpr(), mergsp() macros.h: renamed INSERT macro to X_INSERT; add FASTPR, MERGSP macros lib/init.c: add -B option to toggle blocks lib/io.c: io_printf(): add %A %L %V test/blocks.in: list of blocks tests test/test.{dump,err,genc,opt,reg,trace}.sh: handle test with dir name test/blocks/ (new) test/blocks/{ab,acm4{39,40,41,42,43,43a,43b}, block{0,0n,1,1b,1b}, box,dump,image,reg,tree mts14{2,3,4}.{sno,ref} ==== end merge from BR_1_5_PLUS_BLOCKS 10/15/2013: configure: check double alignment; disable bitfields if strict (would pad descriptor to 16 bytes). 10/11/2013: tag TAG_1_5_PLUS branch BR_1_5_PLUS_BLOCKS 10/8/2013: make.bat, pkg/win32/{sdb,timing}.bat: wrap batch file variable expansions in double quotes replace NL with CRLF configure: check for ELF the same way on all BSD systems 10/6/2013: configure: check for BASEDIR/share/man (Reported by Mike Greenberg) 10/3/2013: timing: force display of /sys/devices/..../name path configure: add CFLAGS_LONGLONG 10/2/2013: configure: update to version 1.5+ 10/1/2013: config/win32/ntmsvc.mak: add SNOBOL4_C_CFLAGS pkg/win32/makezip.sh: make SNOBOL4 upper case configure: check for long long, output SIZEOF_{INT,REAL}_T include/macros.h: handle SIZEOF_INT_T != SIZEOF_REAL_T in DCMP lib/pair.c: include equ.h for DCMP() config/win32/config.h: add SIZEOF_{INT,REAL}_T **************** release 1.5 (CVS tag REL_1_5) 10/1/2013: configure: update version to 1.5 9/27/2013: conf/win32/config.h: comments on _WIN64 ifdef Makefile: took cpuid out of "make cleanmostly" remove *.exe in "make clean" make.bat: (new) got tired of typing makefile path for VS lib/snolib/random.c: forgo use of [s]size_t for VS add pragma to disable warning on VS doc/snobol4.1: update HOST() example 9/26/2013: snolib/sdb.sno: make sure &INPUT enabled before trying to read!! found trying to debug genc.sno (for SNOBOL4B) doc/snobol4.1: fix documentation for "-PLUSOPS" configure, lib/snolib/random.c: ditched HAVE_DEV_RANDOM pick up DEV_RANDOM, if defined 9/25/2013: Makefile2.m4, configure, sdb.sh: fix sdb.sno path params.h: fix snobol4.c compilation! 9/24/2013: Makefile2.m4: put SNOBOL4_C_FLAGS after CFLAGS straighten out(?) SNOLIB_xxx paths install docs at version top level configure: enable -Wall for gcc, set SNOBOL4_C_FLAGS like w/ clang OPT=-O3 w/ clang straighten out(?) SNOLIB_xxx paths timing: clean up dmesg.boot (e)grep find/run lspci -v on linux for any VM info flush ref to config.guess find /sys/devices/...../model files lib/init.c: fix strjoin() calls for K&R C fix VER/lib path (found on Windows!) lib/snolib/random.c: enhance comment .cvsignore: add version sdb.sh: remove listfile on exit trap pkg/win32/install.bat: COPYRIGHT, CHANGES, README, fix README.win32 take SNOBASE as optional argument pkg/win32/makezip.sh (new) 9/23/2013: v311.sil: [PLB116] use SMAXINT config/win32/config.h: add ifdef _WIN64, USE_MEMMOVE, USE_MEMSET config/win32/ntmsvc.mak: remove bcopy, bzero include/str.h: add ifdef USE_MEMSET include/snotypes.h: define SMAXINT, use (unsigned INT_T)1 configure: save INITIAL_CFLAGS enable warnings for problems found by clang detect clang, disable warnings for SIL code issues pml.h, lib/dump.c, lib/{dump,bsd/inet6,posix/tty}.c fix nits to quiet clang include/macros.h: fix nit found by gcc w/ -Wparens enabled lib/{io,snolib/serv,unix98/load}.c: fix bugs found by clang warnings pkg/win32/sdb.bat: add LIBDIR, comments, RCS-Id 9/22/2013: lib/io.c, lib/init.c: make UINTCL a counter for VC10 ^C handling ditched DEF_SNOPATH; build using SNOLIB for base add io_show_path() -- command line option -z include/lib.h: add io_show_path() pkg/win32/README.win32 (new) pkg/win32/install.bat: install README.win32 configure: ditch DEF_SNOPATH, add SNOLIB_BASE config/win32/config.h: ditch DEF_SNOPATH, define SNOLIB_BASE doc/snobol4.1: update 9/20/2013: lib/io.c: try to clear EOF condition from ^C in VC10 9/19/2013: lib/init.c: re-arm SIGINT handler for Win32/VC10 *** 1.5-rc3 (tag REL_1_5_RC3) 9/19/2013: configure: update to 1.5-rc3 CHANGES: update lib/init.c: usage() displays built-in SNOPATH setting doc/snobol4.1: update doc/snobol4tcl.3: update date lib/io.c: moved "mode" string creation to of io_fopen2() 9/18/2013: Makefile: use HAVE_CONFIG_H w/ tsort recurse to make tsort, so isnobol4.c doesn't depend on tsort or config.h!! bsdsort.c: use HAVE_CONFIG_H INSTALL: update doc/sdb.1: update doc/snobol4.1: update lib/init.c: don't raise "User Interrupt" if &ERRLIMIT is zero. snolib/sdb.sno: comment configure: remove old comments 9/17/2013: lib/init.c: Set UINTCL on SIGINT except if in compiler snolib/sdb.sno: detect and ignore ^C in readline() Makefile: bsdtsort requires config.h to build/run correctly on 64bits bsdsort.c: need config.h to get include file ifdefs 9/16/2013: config/win32/config.h: add "lib" to default SNOPATH pkg/win32/sdb.bat: add \lib\ to sdb.sno path 9/15/2013: configure: --with-tcl= now requires path to tclConfig.sh fix forkpty check on OSX INSTALL: document --with-tcl= lib/io.c: fix compilation without PTYs 9/14/2013: configure: check for forkpty lib/io.c: add support for ||ptycommand unionize variant data 9/13/2013: configure: check for clock_getcpuclockid() lib/posix2001/mstime.c: use clock_getcpuclockid() pkg/win32/install.bat: moved from config dir, updated, enhanced config/win32/config.h: have SNOLIB_DIR include drive name snolib/sdb.sno: cleanup 9/12/2013: snolib/sdb.sno: fix watchpoints, use SCONTINUE for ^C (again) v311.sil: [PLB114] pulled LASTFILE/LINE & USRINT checks to top of INIT [PLB115] single letter trace types (ala SPITBOL) test/t.{sno,ref} (new): test single letter trace types test/tests.in: add t.sno 9/11/2013: snolib/sdb.sno: cleanup; "silent" command now works next steps only once 9/10/2013: snolib/sdb.sno: cleanup 9/5/2013: snolib/sdb.sno: upto 25x faster!! enable STCOUNT trace ONLY when needed!! use BREAKPOINT() (&STNO trace) use FNCLEVEL trace for finish/next 9/3/2013: configure: create version file Makefile: note version file 9/2/2013: test/keytrace.{sno,ref}: test STOPTR and reenable config/win32/snobol4.vcxproj: add break.c snolib/sdb.sno: flush VARS0 8/31/2013: snolib/sdb.sno: get rid of CONS on first trap line (was failing?) set SDB.INTERRUPT on ^C instead of STEP_COUNT move SDB.TRAP.EXIT entry up clean up SETEXIT_HANDLER doc/sdb.1: add "what" command v311.sil: [PLB113] fix keyword trace output I broke in 2005 (in [PLB90]) add chk_break() call -- fires STNO KEYWORD trace lib/break.c (new): chk_break() and BREAKPOINT() Makefile2.m4: add break.c config/{djgpp/Makefile,vms/descrip.mms}: add break.c config/win32/{borland,mingw,ntmsvc}.mak: add break.c pml.h: add BREAKPOINT() function include/lib.h: add chk_break() test/tests.in: add keytrace.sno test/keytrace.{sno,ref}: test KEYWORD tracing, incl. BREAKPOINT() 8/30/2013: v311.sil: [PLB112] save/restore &LAST{FILE,LINE} in TRPHND restore saved &LINE at GOTL3 (ABORT handler) test/setexit.{sno,ref}: output &LAST{NO,FILE,LINE} test/setexit6.{sno,ref}: setexit.sno w/ STCOUNT trace test/tests.in: add setexit6 snolib/sdb.sno: output date as well as version test/bench.sno: drop max time to 60s (from 120s) *** 1.5-rc2 (tag REL_1_5_RC2) 8/29/2013: configure: test for rl_copy_keymap() -- missing on NetBSD/OSX update for 1.5-rc2 *** 1.5-rc1 (tag REL_1_5_RC2) 8/27/2013: lib/unix98/load.c: fix missing return value (found by clang) test/tests.in: add atn.sno test/atn.{sno,ref}: new test CHANGES: updated README: add Fred Weigel to credits doc/sdb.1: credit Fred Weigel for DDT 8/26/2013: snolib/sdb.sno: add "what" command v311.sil: [PLB111] check for null value in LABEL() pkg/win32/{sdb,timing}.bat: use %~dp0 to get SNODIR pkg/win32/timing.bat: use start for ^C trapping lib/posix2001/mstime.c: fall back to getrusage() flush unused variable 8/25/2013: CHANGES: updated README: updated for 1.5 snolib/sdb.sno: updated copyright doc/snobol4.1: update with 1.5 changes, all error numbers configure: update to 1.5rc1 doc/sdb.1: mention error catching, ^C pkg/win32/{sdb,timing}.bat: use SYSTEMDRIVE 8/24/2013: lib/init.c: fatal error if -L file doesn't exist allow list to stdout w/ -l - test/setexit4.{sno,ref}: test END trap after error test/setexit5.{sno,ref}: test [F]RETURN from error handler test/tests.in: add setexit[45] 8/23/2013: snolib/sdb.sno: allow continue after error trap ^C (step once) v311.sil: [PLB110] fix continue from END after an error fix duplicate END2 label procs: add END0 test/diag1.ref: adjust 8/22/2013: init.c: if SETEXIT handler set, set UINTCL on SIGINT (^C) v311.sil: [PLB109] Implement "User Interrupt" (SIGINT) handling Set &LAST{NO,FILE,LINE} in XITHND Allow new errors to overwrite old return information procs: add USRINT, remove XITERR snolib/sdb.sno: cleanup, use SETEXIT() snobol4.1: add missing .TP 8/16/2013: timing: add "END" lib/init.c: explicitly init lib path with "." lib/io.c: fix some memory leaks no longer need to try include locally first pkg/win32/timing.bat: add "running benchmark:" and "END" 8/15/2013: config/win32/snobol4.vcxproj: add loadx.c config/win32/ntmsvc.mak: fix cpuid build 8/14/2013: configure: check for POSIX-2001 clock_gettime(CLOCK_PROCESS_CPUTIME_ID) config/check: add -r and -d options (also honor CHECK_DEBUG) lib/posix2001/mstime.c: get precise runtime on Linux timing.sno: add PREC() INT() functions Makefile2.m4: make separate tested target Makefile: have make clean remove tested config/win32/ntmsvc.mak: fix loadx.obj, add cpuid.exe lib/win32/osopen.c: fix /dev/null, unbuffer /dev/tty pkg/win32/sdb.bat: script to run sdb! pkg/win32/timing.bat: script to run timing!! timing.sno: don't look for shell time on windows 8/13/2013: COPYRIGHT, README: update copyright for 2013 timing: run test/bench.sno test/genc.sno: frozen version of 1.4.1 genc for regression test test/test.genc.sh: test script for genc test/tests.in: add genc test test/{callgraph,genc,proc.h,static.h}.ref: genc test outputs test/bench.sno: frozen benchmark 1.4.1 genc; loops for accuracy test/v311.sil, test/globals, test/procs: 1.4.1 files for timing, genc test/{nqueens,sudoku}.{sno,ref}: from berstis.com test/tests.in: add nqueens,sudoku 8/7/2013: doc/snobol4tcl.3: update example code v311.sil: [PLB108] Add &MAXINT lib/snolib/host.c: moved BPS to include/snotypes.h include/snotypes.h: add BPS, MAXINT test/maxint.{sno,ref}: test &MAXINT test/tests.in: add maxint configure: drop down to 15 digits precision for double formatting better safe than sorry. 15 is all Perl prints! test/float2.{sno,ref}: add more tests 8/6/2013: lib/snolib/stcl.c: fix for Tcl 8.6 problem found by Michael Richter 8/4/2013: v311.sil: [PLB107] Display avg ns. per statement Add &STEXEC -- total statements executed &GCTIME -- total time in GC timing.sno: update for ns. 8/1/2013: v311.sil: [PLB106] add &PI 7/31/2013: test/float.{sno,ref}: output PI test/pow.{sno,ref}: output only rational numbers test/float2.{sno,ref}: test for double precision formatting test/digits.{sno,ref}: test for &DIGITS &LCASE &UCASE test/spit.sno: truncate PI string test/tests.in: add float2, digits data_init.c: add DIGITS v311.sil: [PLB105] add &DIGITS 7/6/2013: Discovered 64-bit doubles are never output with full precision, Thanks to Phillip Thomas configure: define REALST_FORMAT when double precision in use lib/realst.c: add REALST_FORMAT lib/ansi/spreal.c: use real_t 7/5/2013: timing: tweak lsb_release usage for Beaglebone "Angstrom" 12/3/2012: lib/win32/sys.c: add WinServer2012 7/8/2012: configure: OpenBSD MIPS requires sys/types.h before socket.h (reported by Anonymous) 4/24/2012: doc/snobol4.1: document default INPUT record length (suggested by John McHugh) 3/9/2012: snolib/dynamic.sno: use HOST(HOST_INCLUDE_DIR) 3/6/2012: lib/loadx.c: include stdlib.h lib/io.c: avoid rl_keymap_discard() call rl_initialize() if no rl_keymap_discard() available works on OS X 10.4 (but not NetBSD 5.1?) configure: check libedit for readline() 3/4/2012: include/lib.h: add strjoin() lib/str.c: add strjoin() lib/loadx.c: try bare path + DL_EXT lib/unix98/load.c: if path contaisn no DIR_SEP, try ./path 2/29/2012: configure: set HAVE_RL_SET_KEYMAP lib/io.c: check HAVE_RL_SET_KEYMAP (OS X comes with NetBSD editline) 2/24/2012: configure: replace HAVE_READLINE with COMPILER_READLINE lib/io.c: honor COMPILER_READLINE gendata.sno: add REAL op genc.sno: fix many ops; set LIVE if no success label v311.sil: [PLB104] safety check KSt/sec division; use REAL constants flush SPDLDR; increase PMSTACK to 8000, ISTACK to 4000 lib/init.c: increase NDYNAMIC to 512K, flush SPDLDR 2/23/2012: doc/snobol4random.3: fix typo, enhance SRANDOMDEV entry. v311.sil: [PLB103] Report K Statements/sec 2/18/2012: Makefile2.m4: install INCLUDE_H files in INCLUDE_DIR 2/17/2012: lib/unix98/load.c: add missing return configure: put SNOLIB_DIR/local (w/ version) before SNOLIB_BASE/local 2/15/2012: Use loadx/os_load for Win32 config/win32/{borland,mingw,ntmsvc}.mak: add loadx.c lib/loadx.c: add comment lib/win32/load.c: convert to os_load() API lib/init.c: Add def_snopath 2/15/2012: lib/loadx.c (new): O/S independant load(), callx(); uses "lib_find" Makefile2.m4: add LOADX_C, loadx.o rule configure: add loadx.o when using unix98/load.c timing.sno: output KStatements/sec include/lib.h: add mspec2str(), os_load() lib/str.c: add mspec2str(), strjoin() lib/unix98/load.c: implement os_load() 2/14/2012: v311.sil: [PLB102] Add -HIDE for sdb snolib/sdb.sno: use -HIDE pml.h, lib/snolib/file.c: add FILE_ISDIR, FILE_ABSPATH, use mgetstring test/tests.in: add file.sno, hide.sno test/file.{sno,ref} (new): test FILE, FILE_ISDIR, FILE_ABSPATH load.h: add RETPRED(bool) test/run.sh: set enviroment variables inside a subshell lib/init.c: add pathinit(): called after options, before io_preload() test/hide.{sno,ref} (new): test -HIDE 2/13/2012: tests/run.sh: remove bogus shifts 2/12/2012: doc/snobol4.1: update for SNOPATH, -I, -L test/tests.in: add include path, preload tests tests/run.sh: handle command line, environment args tests/include{2,3,4}.{sno,ref}: include path tests tests/preload{1,2,3,4}.{sno,ref}: preload tests test/aa/aa.sno: include test file test/bb/bb.sno: include test file test/pa/preload.sno: preload test file test/pb/preload.sno: preload test file 2/10/2012: lib/io.c: move preload code to io_preload() lib/init.c: call io_preload() include/lib.h: declare io_preload() 2/9/2012: configure: drop DEF_SNOBOL_PRELOAD_PATH lib/init.c: default SNOBOL_PRELOAD_PATH from SNOPATH append PRELOAD_FILENAME to dir names in SNOBOL_PRELOAD_PATH lib/io.c: use abspath() function include/lib.h: add prototypes for isdir() and abspath() lib/generic/exists.c: add isdir() and abspath() lib/win32/exists.c: add isdir() and abspath() 2/2/2012: v311.sil: [PLB101] only modify function entry if LOAD succeeds o test/tests.in: add loaderr.sno test/loaderr.{sno,ref}: test load failure 2/2/2012: configure: add DEF_SNOBOL_PRELOAD_PATH lib/init.c: new preload code: SNOBOL_PRELOAD_PATH env var -L FILE preloads a file (search SNOPATH) sdb.sh: use -L for sdb.sno 1/22/2012: configure: add INCLUDE_DIR, DEF_SNOPATH, version 1.5- lib/io.c: add lib dirs; io_add_lib_{dir,path}, io_lib_find include/lib.h: io_add_lib_{dir,path}, io_lib_find lib/init.c: set up lib path: honor SNOPATH, -I option lib/snolib/host.[ch]: add HOST_DEF_SNOPATH, HOST_INCLUDE_DIR **************** rerelease 1.4.1 (CVS tag REL_1_4_1bis) 1/22/2012: include/snotypes.h: flush uint_t (Solaris sys/types.h has uint_t) lib/generic/expops.c: flush uint_t; use unsigned INT_T **************** release 1.4.1 (CVS tag REL_1_4_1) 1/19/2012: include/snotypes.h: add uint_t for expops.c lib/generic/expops.c: use uint_t fix Solaris Studio warning lib/snolib/ndbm.c: include stdlib for strtol() Makefile: add cpuid Makefile2.m4: have cpuid depend on cpuid.c, use CC cpuid.c: update for Solaris Studio, report compiler versions configure: check for finite() in ieeefp.h on Solaris use CFLAGS on size check include/macros.h: check for FINITE_IN_IEEEFP_H 1/18/2012: configure: cleanup/fix socket tests (again) README: add Anonymous 1/16/2012: configure: rework socket library tests for Solaris simplify socklen_t check Makefile: remove sdb in make clean .cvsignore: add version.h snolib/dynamic.c: use DSEP, add DYNAMIC.DEBUG variable 1/15/2012: configure: detect glibc on Ubuntu, set HAVE_GLIBC lib/snolib/time.c: test for HAVE_GLIBC, check datatypes, lengths test/random.{sno,ref}: show avg*100 1/11/2012: doc/sdb.1: add readline references CHANGES: update 1/10/2012: Makefile: add all, sdb Makefile2.m4: add all, ALL install sdb as sdb-VERS, snobol4-VERS have sdb use snobol4-VERS make symlinks to sdb, snobol4 sdb.sh: add test/random.{sno,ref}: test RANDOM() tests.in: add random.sno 1/9/2012: Makefile2.m4: make sdb depend on configure snolib/sdb.sno: fix readline test! configure: fix typo doc/sdb.1: can't break on END label fix bolding on "next" 1/7/2012: configure: try to fix tcl search on ubuntu; update to v1.4+ doc/.cvsignore: add snobol4{random,tcl,time}.{0,html,ps,pdf} Makefile2.m4: install sdb.1 **************** release 1.4 (CVS tag REL_1_4) 1/6/2012: INSTALL, README: update for 1.4 release lib/snolib/readline.c: include stdlib.h for free() include/load.h: fix RETSTR_FREE() warning lib/auxil/bindresvport.c: fix VS10 warning doc/snobol4tcl.3: update date configure: fix gdbm support on cygwin, cleanup readline checks move LIBDIR under Tcl support update version to 1.4 **** tag REL_1_4_RC2 1/5/2012: load.h: add RETSTR_FREE() macro lib/snolib/random.c: add GCC pragma to disable -Wunused lib/snolib/readline.c: use RETSTR_FREE() configure: export CC and CFLAGS (if needed) for "check script Makefile2.m4: update timing.out advertisement 1/5/2012: configure: give error exit when MINGW detected to abort "make" config/win32/snobol4.vcxproj: add sleep.c lib/win32/sleep.c: fix includes for non-test compilation lib/generic/sleep.c: fix includes 1/4/2012: configure: look for nanosleep(); use posix/sleep.c; update to -rc2 config/win32/{borland,mingw,ntmsvc}.mak: add sleep config/win32/config.h: add HAVE_SLEEP doc/snobol4time.3: document sleep failure return include/lib.h: sleepf() returns int lib/{bsd,generic,win32}/sleep.c: return value lib/posix/sleep.c (new): use nanosleep test/sleep.{sno,ref} (new): test sleep test/tests.in: add sleep.sno pml.h: removed RANDOM prototypes doc/snobol4.1: remove RANDOM function doc/snobol4random.3 (new): document RANDOM functions doc/snobol4readline.3 (new): document READLINE functions doc/Makefile: use implicit rules, add snobol4r{andom,eadline} snolib/random.sno (new): load RANDOM functions snolib/readline.sno (new): load READLINE functions Makefile2.m4: add snobol4{random,readline,time}.3 lib/init.c: use %lu for sizes to avoid warnings (want %z) lib/snolib/time.c: fix features defines for Ubuntu 11.10 (glibc 2.13) 1/3/2012: config/check (new): do a test compile w/ include, code, libs configure: use config/check fix for COM libs on Windows 7 (thanks to Robert Shanley) add --without-com use db.h for dbm w/ DB_DBM_HSEARCH add checks for sleep.c snolib/readline.sno (new): readline prototypes snolib/sdb.sno: use readline.sno pml.h: removed readline prototypes lib/generic/execute.c: use NULL to keep gcc quiet Makefile2.m4: add SLEEP_C/sleep.o lib/snolib/time.c: use sleepf(real_t) for SLEEP() lib/bsd/sleep.c (new): implement sleepf using select lib/generic/sleep.c (new): implement sleepf using sleep lib/win32/sleep.c (new): implement sleepf using Sleep include/lib.h: add sleepf() doc/snobol4time.3: document SLEEP taking f.p. seconds timing: more release files 1/2/2012: configure: use LIBDIR in TCL_CONF_DIRS instead of /usr/lib detect MINGW uname cleanup lib/win32/sys.c: Add a cast, arm architecture cpuid.c: fix MSC defines 1/1/2012: snolib/sdb.sno: update copyright notice configure: flush ALTLIBDIR lib/snolib/time.c: cleanup: enums, error checks/returns lib/snolib/readline.c: fix warning lib/win32/sys.c: Add Win 8, show build on unknown systems lib/init.c: fix warning 12/31/2011: cpuid.c: rework for 64-bit Mac and Windows configure: quiet some compiler warnings, fix HWNAME display CHANGES: cleanup *** 1.4-rc1 12/30/2011: Update manual pages, CHANGES, COPYRIGHT, README New: doc/snobol4time.3, doc/sdb.3 12/29/2011: pml.h, lib/snolib/random.c: add SRANDOM, SRANDOMDEV default to srandom(1) for seed. v311.sil: [PLB100] SETEXIT returns old value doc/snobol4.1: Document ATAN, LN, SETEXIT. 12/28/2011: configure: use tclConfig.sh for Tcl configuration (Thanks to Michael Richter) 10/1/2011: cpuid.c: declare main as returning int configure: declare main as returning int, avoid exit() 9/24/2011: timing: look for acpi0: in dmesg.boot 9/23/2011: cpuid.c: Get Hypervisor info (name) only use PIC code on OSX ifdef body for x86[-64] Makefile: always compile cpuid timing: remove -fPIC, run cpuid if it exists 9/5/2011: cpuid.c: make PIC safe (for MacOS) with help from http://sam.zoy.org/blog/2007-04-13-shlib-with-non-pic-code-have-inlin timing: force -fPIC for cpuid compile (default on MacOS) 8/18/2011: configure: crock to look in /usr/lib/INSTSET-linux-gnu for gdbm_compat library for Ubuntu 11.04 6/19/2011: configure: look in /usr/include/tcl*.* for tcl.h problem reported by Michael Richter Fatal error if Tcl not found when --with-tcl given! doc/snobol4tcl.3: remove duplicated code from example program 6/1/2011: doc/snobol4tcl.3: remove FILES section (pasted from dbm page)! 5/25/2011: doc/snobol4.1: fixes from Mark Laster README: Add Mark Laster, update for 2011 COPYRIGHT: Update for 2011 TODO.soon: update (parity: removed one, added one) 2/16/2011: removed version.c, no longer used configure: put VERSION and VERSION_DATE in version.h output HAVE_SLEEP check for /dev/random, output HAVE_DEV_RANDOM main.c: include version.h Makefile: version.h create by configure Makefile2.m4: install version.h config/djgpp/Makefile, config/vms/descrip.mms, config/win32/{borland.mak,mingw.mak,ntmsvc.mak,snobol4.vcxproj}: flush version.c lib/snolib/time.c: check HAVE_SLEEP lib/snolib/random.c: fix a warning, try making win32 safe, always call into own [s]random() functions! config/win32/{borland.mak,mingw.mak,ntmsvc.mak,snobol4.vcxproj}: add atan, random 2/7/2011: lib/init.c: fix "-l" entry in usage message doc/snobol4.1: merge two >RACE entries update -l entry, URLs 2/2/2011: configure: fix readline test 1/30/2011: lib/snolib/time.c: add SLEEP() snolib/time.sno: add SLEEP() pml.h: add SLEEP configure: define VERSION & VERSION_DATE here output VERSION and VERSION_DATE into config.h output VERS into config.m4 append VERSION to default SNOLIB_DIR removed: version.c Makefile: remove pv Makefile2.m4: remove pv, version.c, version.o main.c: move version display in-line 1/29/2011: new sdb.sh: driver script for SDB debugger Makefile2.m4: create and install sdb from sdb.sh 1/24/2011: new snolib/random.c: FreeBSD random() function pml.h: add RANDOM Makefile2.m4: add random sdb.sno: cleanup 1/23/2011: v311.sil [PLB99] fix FUNCTION for referenced, but undefined functions Makefile2.m4: add atan to snolib pml.h: add ATAN, LN version.c: update to 1.3+ sdb.sno: get version from Id, use readline test/function.sno: test undefined, but referenced functions! 1/22/2011: configure: add --snolibdir= --without-readline configure, Makefile2.m4: add readline pml.h: readline, atan, ln new lib/snolib/readline.c: readline functions new lin/snolib/atan.c: arc tangent new snolib/sdb.sno sdb.sno: use readline! 1/21/2011: v311.sil [PLB98] SETEXIT cleanup; prohibit re-entry, trap at END test/diag1.{ref,sno}: update for SETEXIT test/diag2.ref: update for SETEXIT test/setexit.sno: update test/setexit2.{ref,sno}: test for END trap test/tests.in: add setexit2.sno test/time.{sno,ref}: test MKTIME w/ LOCALTIME 1/20/2011: v311.sil: [PLB97] implement SETEXIT/CONTINUE/SCONTINUE/ABORT globals, procs: add labels for SETEXIT lib/init.c: comment in signal handler test/setexit.{sno,ref}: SETEXIT test test/test.err.sh: test runner for programs that err out! test/tests.in: add SETEXIT test 12/22/2010: snolib/http.sno: 6/20/2009 fix broke it! add HTTP.CRLF!! cpuid.c: return 0 12/20/2010: lib/io.c: quiet gcc warnings, again snolib/time.sno: add STRPTIME pml.h: renamed STRPTIME to STRPTIME_ lib/snolib/time.c: fix STRPTIME_ 12/18/2010: lib/init.c, lib/io.c: -l flag takes listing file name pml.h, lib/snolib/time.c, snolib/time.sno, test/time.{ref,sno}: clean/tweak time to be more standards aligned configure: add time-related checks 12/16/2010: Add POSIX date/time handling; inspired by Rafal Sulejman new lib/snolib/time.c new snolib/time.sno Makefile2.m4: add time.o, TIME_C test/time.{sno,ref} 11/18/2010: Handle allocations of > 4GB -- reported by Howard Bussey include/lib.h: dynamic(size_t) lib/init.c: size_t ndynamic, pmstack, istack; getk takes size_t lib/{bsd,generic,posix}/dynamic.c: dynamic(size_t) 10/23/2010: doc/snobol4.1: fix incorrect usage of it's reported by Guido M. 9/28/2010: configure: fix search for "install" script reported by Noah Birnel 5/30/2010: config/win32/snobol4.vcxproj: VS10 Project thanks to Meir Livneh config/win32/ntmsvc.mak: comment tested w/ VS10 lib/win32/{osopen,load}.c: include string.h lib/sdbm/sdbm.c: if'ed out extern errno lib/auxil/bindresvport.c: only define EADDRINUSE if needed on Win32 README: Add Meir Livneh 5/24/2010: lib/posix/dynamic.c: prefer posix_ api for madvise latest CygWIN only supplies posix version lib/win32/sys.c: add server variable **************** re-release 1.3 (CVS tag REL_1_3bis) 5/19/2010: Makefile: add cpuid binary to disposables causes pain on CygWIN! **************** release 1.3 (CVS tag REL_1_3) (35th anniversary of SNOBOL4 v3.11 release) 5/19/2010: History: update for 1.3 version.c: update to 1.3 README: update to 1.3 Copyright: update year CHANGES: update for 1.3 release doc/snobol4.1: update for 1.3 5/15/2010: timing: try cpuid.c more freely 3/10/2010: timing: try compiling/running cpuid.c for CYGWIN/MINGW/SolX86 cpuid.c: fetch, print vendor and cpu model using cpuid instruction 2/27/2010: configure: defend against empty MACHINE variable 12/24/2009: timing: run lsb_release program, if found 12/22/2009: configure: be more careful about using /usr/lib64 timing: look for lsb-release before debian-version for Ubuntu look for lsb-release.d for RedHat/Fedora 11/10/2009: lib/win32/sys.c: put wProductType under ifdef HAVE_GETVERSIONEX, thanks to Dani Richard. Add Win7/WinServer2008R2 lib/win32/com.cpp: get rid of a VC 6.0 compiler complaint README: Add Dani Richard 8/29/2009: v311.sil: fix GC crash when COLLECT() called immediately after an "external" function. Reported by Laurence Battin. tests/collect.sno, test/collect2.ref: regression tests include/load.h: add SETRETVAL macro README: Add Lawrence 6/20/2009: fix http.sno (thanks to Burkhard Mesisner) to send entire request in one TCP segment was giving trouble under DJGPP+WatTCP 1/24/2009: fix MinGW compilation (thanks to Bruce Axtens) lib/win32/sys.c: use HAVE_GETVERSIONEX config/win32/mingw.mak: link with libstdc++ removed -fvtable-thunks -DNEED_COGETOBJECT config/win32/config.h: define HAVE_GETVERSIONEX README: Add Bruce 12/17/2008: lib/win32/com.cpp: fix for VS2003 compilation version.c: update to 1.2+ **************** release 1.2 (CVS tag REL_1_2) (15th anniversary of ALPHA1 release) 12/8/2008: History: update for 1.2 version.c: update to 1.2 README: update to 1.2 Copyright: update year CHANGES: update for 1.2 release doc/snobol4.1: update for 1.2 lib/win32/sys.c: detect WinServer2008 timing: output END_SYSTEM_PROFILER 4/25/2008: INSTALL: document --universal 3/13/2008: use $(MAKE) in "make pv" 1/18/2008 lib/win32/sys.c: detect WOW64 1/11/2008 timing: run system_profiler on Darwin 10/25/2007 snolib/utf.sno: fix UTFLEN() to handle zero 3/18/2006 lib/win32/sys.c: add amd64 3/6/2007 INSTALL: document --add-cflags configure: document --add-cflags --fast add & document --universal 1/7/2007 configure, Makefile2.m4: replace ADD_WARN with ADD_CFLAGS lp64 options ALWAYS need to be present! add --add-cflags option to configure 1/4/2007 timing: dump "machdep" sysctl, needed to find CPU model on MacIntel 10/3/2006 lib/bsd/inet6.c: remove INADDR_NONE define 6/26/2006 lib/snolib/host.[ch]: add comments, HOST_USER_EXTENSIONS new pkg/lsm 1/27/2006 lib/win32/com.cpp: add debug, have GET/PUT take arb arg (index) lists configure: 1/3 change: add snolib.bundle 1/2/2006 configure: uncomment SNOLIB_FILE for NeXT style load 12/24/2005 lib/win32/com.cpp: cleanup/fix? 12/23/2005 timing: HP-UX getconf CPU_CHIP_TYPE 12/22/2005 configure: output alternate LIBDIR choice INSTALL: update optimization discussion, mention CPUFlags repaginate 12/20/2005 lib/win32/com.cpp: check for BAD_HANDLE in retvariant lib/snolib/handle.c: allow redundant create_handle calls renamed handle_list to handle_table 12/12/2005 configure: look for libraries in /usr/lib64, if it exists add --force-sdbm INSTALL: add --force-sdbm 12/11/2005 lib/snolib/cos.c: fix comment (Thanks to Dave Feustel) timing: send "ln" errors to /dev/null (thanks to Devon) need to copy executable if hard link fails! version.c: update to 1.1+ **************** release 1.1 (CVS tag REL_1_1) (12th anniversary of ALPHA1 release) 12/9/2005 pkg/rpm/makerpm: use rpmbuild command attempt to be more eccumenical (Thanks to Rafal) pkg/solaris/prototype: add ndbm.sno stcl.sno dynamic.sno snolib.3 snobol4{dbm,tcl}.3 doc/snobol4.1: tweak HOST() description version.c: update to 1.1, return instead of exit() 12/8/2005 doc/snobol4.1: add SEE snobol4tcl (Thanks to Phillip Thomas) update date, HOST() example doc/snolib.3: add SEE snobol4dbm and snobol4tcl, cleanup. INSTALL: ran ispell, updated VMS info README: add snobol4tcl, snobol4dbm. repaginate 12/7/2005 INSTALL: update bsd/Makefile.freebsd bsd/Makefile.netbsd debian/copyright rpm/makerpm solaris/pkginfo: update for version 1.1 removed: rpm/snobol4-1.0-1.spec new: rpm/snobol4-1.1-1.spec 12/6/2005 configure: try to fix --mandir= new doc/snobol4tcl.3: STCL man page Makefile2.m4 doc/Makefile doc/snolib.3: update for snobol4tcl(3) lib/bsd/popen.c: include h.h for non-ansi compilation! 12/5/2005 lib/snolib/{stcl,handle}.c: include str.h to keep gcc4 quiet lib/io.c: try to keep gcc quiet snolib/ndbm.sno: add DBM_DELETE (thanks to Rafal) snolib/stcl.sno: add comments doc/.cvsignore: add snobol4dbm entries doc/snobol4dbm.3: improved CHANGES: updated test/popen2.sno: clean up 12/4/2005 lib/snolib/ndbm.c, snolib/ndbm.sno, pml.h, config/vms/config.h, doc/snobol4dbm.3: add DBM_ERROR, DBM_CLEARERR doc/Makefile: add snobol4dbm targets lib/win32/sys.c: fall back to OSVERSIONINFO lib/snolib/handle.c: bzero new hash tables! 12/3/2005 new snolib/stcl.sno snolib/ndbm.sno: do LOAD()ing define constants pml.h: remove PMPROTO lines for NDBM and STCL functions 12/2/2005 lib/init.c: ifdef -L usage message (thanks to Rafal) default preloading off (thanks to Rafal) Change preload filenames, add warnings lib/io.c: protect against overflow in io_printf() 12/1/2005 timing: show all emerge output (11/26 change) Test/clean up under VMS, turn on SDBM: config/vms/config.h: SNOLIB_DIR, NDBM defines config/vms/descrip.mms: add ndbm, handle, SDBM lib/init.c: missing return value add ifdef PRELOAD (off by default) use DIR_SEP include/load.h: turn off const in LA_STR_PTR() too much pain on VMS pml.h: use PMLPROC2 for NDBM functions Makefile2.m4: remove -L on test run (PRELOAD disabled) config/{djgpp,vms,win32}/config.h: add DIR_SEP, PATH_SEP lib/snolib/host.{h,sno}: add HOST_DIR_SEP, HOST_PATH_SEP lib/snolib/ndbm.c: fix: was using strtod() instead of strtol()!! 11/29/2005 INSTALL: document --double's failings configure: --longlong implies --double, as documented! note --double should probably be removed! test/test.trace.sh: handle very tiny F.P. numbers! 11/28/2005 lib/snolib/ndbm.c, pml.h: have DBM_OPEN take mode as STRING 11/25/2005 include/snotypes.h, include/macros.h: fix to make --longlong + --double work on OS X (only will work in combination) 11/22/2005 timing.sno: fix tabbing for DATE(2) configure: libtcl tweaks test/run.sh: fix failure exit data_init.c: remove space from COLSTR; add SPCSTR v311.sil: add SPCSP, output spaces explicitly (not in file:line) shorten "statement" to "stmt" test/{ftrace,spit,trace1,trace2}.ref: new reference output 11/21/2005 Makefile2.m4: add ADD_WARN() and WARN for C compiler warning options not to be included in HOST_COPT configure: add -add-warn= lib/win32/com.cpp: update for handle_handle_t 11/20/2005 configure: include leading dot on DL_EXT and SO_EXT snolib/dynamic.sno: don't need to add dot before DL_EXT 11/19/2005 timing.sno: use DATE(2) lib/snolib/ndbm.c: removed parse_mode() configure: send DL_ and SO_ params to config.h too for HOST() Makefile2.m4: flush dlparam.sno; pass CC and COPT to host.c lib/snolib/host.[ch]: add HOST_DL..., HOST_SO..., HOST_CC, HOST_COPT snolib/dynamic.sno: use HOST() instead of dlparam.sno now with optimization! 11/18/2005 configure: need -Ilib/sdbm to use SDBM (thanks Rafal!) lib/io.c: remove tty_setmode from io_flushall() endex -> io_finish -> io_closeall should do restore?! Was causing badness (restoring settings from bad data?) 11/16/2005 new: test/test.opt.sh: implement optional test test/run.sh: handle exit status 2 from optional test failure new: test/ndbm.{sno,ref} optional test for NDBM 11/15/2005 Makefile2.m4: install snobol4dbm.3 (thanks Rafal!) 11/14/2005 new: doc/snobol4dbm.3: DBM info doc/snobol4.1: reference snobol4dbm(3), new Burks URLs README: new Burks URLs 11/12/2005 timing: use HP-UX IA64 machinfo, add ENDCPUINFO CHANGES: updated doc/snolib.3: add dynamic.sno 11/11/2005 Makefile2.m4: run regressions without preloads 11/10/2005 v311.sil: decrement >RACE if positive init.c: experimental "preload" files keep count of files, append "-" if none -g sets >RACE to -1 (permanently on) -L to disable preloading configure: changed --without-tk to --with-tk 11/9/2005 lib/sdbm/sdbm{,_hash,_pair}.c: use config.h lib/sdbm/sdbm.c: use unistd.h if HAVE_UNISTD_H defined configure Makefile2.m4: use SDBM as last resort README: add money include/handle.h lib/snolib/{handle,ndbm,stcl}.c: revamp handles; users pass handle_handle_t * added SNOEXP() to handle.c routines 11/8/2005 snolib/wrapper.sno: add SYSPRED 11/7/2005 config/win32/ntmsvc.mak: define DUFF for SDBM lib/win32/sys.c: Add IA64, Longhorn (from MSDN) lib/snolib/stcl.c: cleanup, release handles 11/4/2005 config/win32/mingw.mak: add SDBM_OBJ config/djgpp/Makefile: add SDBM lib/sdbm/sdbm.c: if out old imports 11/2/2005 Makefile2: TEMP: have xsnobol4 depend on dlparam.sno configure: fix dynamic linking on OSF1/DU/Tru64, SunOS4/cc Makefile2: output dlparam.sno.tmp, do mv -f at end config/win32/borland.mak: add comment (behind the times) config/win32/mingw.mak config/win32/ntmsvc.mak: use SDBM lib/snolib/ndbm.c: allow use of SDBM new lib/sdbm/LOTS: Ozan Yigit's SDBM library 11/1/2005 new snolib/dynamic.sno: dynamic loadable module utilities configure: Tcl tweaks Makefile2.m4: use divert/undivert for ADD_xxx macros/values configure: update for HP-UX export symbols when dld'ing; add -fast 10/31/2005 snolib/wrapper.sno: fix, update 10/30/2005 configure: fix SunOS4 dlparams Makefile2.m4: dlparams.sno depends on Makefile2 10/29/2005 v311.sil: fix GC trace; was stomping on XCL. Use TEMPCL. configure: tweak Tcl configuration testing lib/snolib/stcl.c: add URLs timing: if no uname, run hostname if found run name w/ -n -rs and -m timing.sno: add DATE() output 10/28/2005 test/tests.in test/diag1.ref test/diag2.ref diag1/2 tests need "dump" filtering 10/27/2005 v311.sil timing.sno lib/init.c lib/io.c test/a.ref test/diag1.ref test/diag2.ref test/dump.ref doc/snobol4.1 implement GC trace (-g flag, >RACE) GC total time stats README, COPYRIGHT: update dates CHANGES: update 10/23/2005 new: test/diag1.ref test/diag1.sno test/diag2.ref test/diag2.sno add diags from VAX/VMS Macro SNOBOL4 (from SPITBOL?) v311.sil: fix backtracking w/ *opr [PLB91] new: test/unsc.sno test backtracking w/ *opr 10/22/2005 test/ftrace.ref test/spit.ref test/trace1.ref test/trace2.ref update for new trace output 10/21/2005 test/tests.in v311.sil new: test/func2.sno test/func2.ref Fix case folding of alternate function rentry label [PLB89] add test program v311.sil: prepend &FILE and &LINE to trace output! [PLB90] 6/14/2005 configure: set, export SO_ and DL_ defines Makefile2.m4: create, install dlparams.sno 6/5/2005 lib/init.c lib/io.c include/lib.h: add io_fname() Make non-existant initial command line file fatal again make sure lib.h has complete set of io.c entries 5/28/2005 lib/init.c: Make non-fatal for term_open() to fail!! regression tests were failing! 5/27/2005 Makefile: make all GENERATED files "precious" lib/io.c, lib/init.c, include/units.h, README: make MEM_IO work, based on work by Sudarshan Gaikaiwari Pull io_init() out to init.c renamed io_input() to io_input_file() new: io_memfile(), io_skip(), io_input_string(), io_setfile(), io_mkfile_noclose(), io_output_string(), io_attached(). 5/20/2005 new: .cvsignore doc/.cvsignore 1/3/2005 lib/win32/com.cpp: handle VT_DISPATCH in retvariant() 12/27/2004 doc/snobol4.1: fix typo/pasteo 12/14/2004 lib/snolib/getstring.c, include/load.h: add mgetstring() lib/win32/com.cpp: use mgetstring() 9/30/2004 test/clean.sh: remove *.dat. Thanks to Rafal Sulejman! 9/28/2004 configure, Makefile2.m4: install snolib.3 in MAN3DIR Noticed by Phillip Thomas 9/17/2004 configure: check for libgdbm_compat 9/14/2004 configure: cleanup ndbm; use USE_GDBM Makefile: config.{h,m4} depend on configure 9/12/2004 lib/snolib.c: include stdio.h first 9/8/2004 configure: fixes for cygwin, ndbm works 9/7/2004 configure, lib/snolib/ndbm.c: add HAVE_{,GDBM_{D,SL}ASH_}NDBM_H works on wide variety of platforms 9/6/2004 configure: add --without-ndbm new lib/snolib/ndbm.c: ndbm interface pml.h: add DBM_xxx functions Makefile2.m4: ndbm.o 9/2/2004 include/handle.h, lib/snolib/handle.c: return pointer value as handle lib/snolib/stcl.c: rationalize function names w/ Tcl_ names: TCL_{CREATE,DELETE}INTERP Add suite of OBJ(ect) related functions (not yet tested) pml.h: add STCL object functions 8/31/2004 configure: allow tcl .so's without .a's seen by Rafal M. Sulejman (from CVS source!) 8/30/2004 lib/io.c: treat all errors as non-fatal if !ISAFILE problem seen by Martin Waller w/ Windoze TCP 8/26/2004 lib/snolib/stcl.c: add back Tk under STCL_USE_TK configure: add --with-tcl and --without-tk use $INCDIR more Makefile2.m4: tweaks for stcl 8/24/2004 pml.h: add STCL under PML_STCL lib/snolib/stcl.c: cleanup lib/snolib/handle.c: fix handle search 8/23/2004 pml.h: rename COM_UNLOAD to COM_RELEASE configure: keep quiet in installer grep lib/win32/com.cpp: ifdef NEED_COGETOBJECT, rename COM_RELEASE lib/snolib/handle.c: made it work 8/21/2004 snolib/http.sno: add HTTP.RECL variable 8/20/2004 new: include/handle.h lib/snolib/handle.c manage handles lib/snolib/stcl.c, lib/win32/com.cpp: convert to use handles 8/19/2004 snolib/ftp.sno: fix a comment snolib/http.sno: add HTTP.POST() function configure: fix broken 6/4/2004 changes output $(DESTDIR) as prefix avoid AIX installer, add more names loop seperately for dir and install prog 8/12/2004 v311.sil, genc.sno, include/macros.h: Create new PCOMP[C] SIL operators for pointer comparison. On some versions of RedHat ES and Fedora Core, dynamic pointers can be negative! Thankfully Mark Emmer had found all the necessary places to change for SNOBOL4+ Sizes are still constrained to be positive signed ints. 7/19/2004 configure: update for CygWin 1.5.9(0.112/4/2) lib/win32/com.cpp: use USE_WCHAR_H, NEED_COGETOBJECT config/win32/mingw.mak: define NEED_COGETOBJECT 7/10/2004 configure, Makefile2.m4, lib/win32/com.cpp: Support COM under CygWin! 7/1/2004 config/win32/ntmsvc.mak: add COM lib/win32/com.cpp: fix for Visual Studio .NET 2003 (VC71) lib/win32/inet.c: tweak setsockopt() args 6/23/2004 new lib/snolib/stcl.c: start of attempt at Tcl/Tk interface 6/20/2004 pml.h: add COM_GETPROP, COM_PUTPROP, COM_UNLOAD 6/19/2004 new lib/win32/com.cpp: COM (OLE) Automation config/win32/mingw.mak: add COM pml.h: PML_COM support 6/4/2004 configure: Improvements suggested by Robin Kay . autoconf compatibility: Honor CC, CFLAGS, CPPFLAGS, LDFLAGS, DESTDIR environment variables. Don't use (Solaris/SysV) /usr/sbin/install -- it's (way) different. 5/31/2004 lib/bsd/inet6.c: NOTE: functions ignore "port" arg (OK, not used) INSTALL: fix 1.0 typos 3/3/2004 configure: attempt to fix pre-panther socklen_t lossage version.c: update to 1.0+ **************** release 1.0 (CVS tag REL_1_0) (11th anniversary of BETA1 release) 2/18/2004 doc/snobol4.1 doc/snolib.3: ran ispell, update dates, version README, INSTALL: ran ispell, update version Switched development from RCS to CVS Makefile: add syn.c to GENERATED; remove make tar pkg/{bsd,debian,rpm,solaris}: add packaging files History: cleanup add RCS tag names, versions 2/17/2004 lib/bsd/inet.c: add (const void *) cast for MSVC 2/16/2004 CHANGES: update configure: fix LP64_NATIVE 2/5/2004 COPYRIGHT, README: update copyright years include/dt.h: improve info for functions lib/io.c: implement MEM_IO; compiles, but not tested 2/3/2004 lib/{ansi,c99}/spcint.c: check for overflow configure: fix test for bsd/suspend.c (look for sigmask macro) 1/29/2004 doc/snobol4.1: fix SSET entry 1/11/2004 v311.sil: Fix argument processing for LOADed functions: if there are more actuals than formals, pass extras without conversion (was looking past end of formal list)! pml.h: no longer need (,) in HOST prototype (testing above fix) include/snotypes.h: Add BITFIELDS_SAME_TYPE gcc 3.3.1 (SuSE Linux) can't handle this! config/win32/ntmsvc.mak: set BITFIELDS_SAME_TYPE 1/6/2004 include/snotypes.h: make FFLD packable by MSVC config/win32/ntmsvc.mak: no longer need NO_BITFIELDS define 12/23/2003 configure: compile test program to get long/pointer sizes for LP64 and LP64_native checks 12/22/2003 timing: use gentoo "emerge" if present 12/18/2003 INSTALL: update win32 info config/win32/ntmsvc.mak: add last tested info 12/9/2003 Built and tested under WinXP using MS Visual Studio 2003 .NET include/lib.h: use EXPORT() on declarations include/load.h: SNOEXP() -- import or export, depending on build lib/win32/inet.c: handle missing SD_BOTH 11/15/2003 timing: add gentoo-release, *-release, move redhat to end 11/14/2003 lib/win32/inet.c: add true (from 8/9/2003) lib/ordvst.c: add consts config/vms/descrip.mms: add bindresport.obj tested w/ Compaq C V6.5-001 on OpenVMS Alpha V7.3-1 tested w/ hp C X6.6-329 (GEM 50DA7) for I64 on OpenVMS Alpha V7.3-1 tested under Cygwin, MINGW, DJGPP, AIX, IRIX, SunOS, Solaris, HP-UX 11/12/2003 configure: add sparc64 Makefile: fix for BSD parallel make, gmake on BSD Makefile2.m4: wrap regression in subshell for BSD parallel make 11/6/2003 doc/snobol4.1: add a bit more info on bidirectional "pipe" I/O 10/9/2003 removed doc/ports.txt 8/6/2003 doc/porting.ms: add SIL, fix sys.c and inet.c doc/snobol4.1: fix typo lib/bsd/inet6.c: add IEEE 1003.1g credit 7/29/2003 doc/snolib.3: improve a little doc/*.doc -> doc/*.txt README: add snolib.{3,0,ps,pdf} remove ports.doc s/.doc/.txt/ Makefile2.m4: remove mention of ports.doc install load.txt clean up timing.out requests -- send everything to stderr Makefile: cleanup INSTALL: load.txt, porting.txt. paypal 7/23/2003 new: doc/snolib.3 7/21/2003 doc/snobol4.1: add BUG: integer overflow not detected configure: FINITE_C and ISNAN_C not needed (were wrong too) 7/19/2003 doc/snobol4.1: document /udp!! 7/15/2003 new: test/popen(2).{ref,sno}: popen tests Makefile2.m4: make snobol4 depend on tests.in timing: tweak for FreeBSD/Alpha 7/14/2003 lib/snolib/{exp,tan}.c: RETFAIL if result is !finite 7/11/2003 doc/snobol4.1: talk about CASE & UTF-8 7/9/2003 include/lib.h lib/bsd/inet(6).c lib/io.c lib/win32/inet.c: add INETxxx flags/magic paths: broadcast reuseaddr dontroute oobinline keepalive nodelay 7/8/2003 CHANGES: update doc/snobol4.1: document 8th bit handling 7/7/2003 gensyn.sno: treat all bytes with 8th bit set as ALPHA on ASCII systems allows UTF-8 encoded characters, and national character sets to used in labels and identifiers! new: test/8bit2.{sno,ref}: 8bit id/label test 7/6/2003 INSTALL: update Win32 UDP info configure, Makefile2.m4: move SNOLIB_DEFINES, PREFIX, BINDIR, MANDIR, MAN1DIR, SNOLIB_DIR to configure seperate greps for socketpair 7/5/2003 README: update copyright dates, add logic.sno INSTALL: update timing e-mail address, add SNOBOL4 listserv info URL Makefile2.m4: add SNOLIB_FILES variable, add README to SNOLIB_FILES update timing e-mail address lib/djgpp/osinit.c: fix WATTCP compilation doc/snobol4.1: updated SEE ALSO 7/4/2003 COPYRIGHT: update year Makefile: removed SMALL_SNO commands INSTALL: update VMS and Win32 info, gcc/lp64 info config/vms/descrip.mms: fix DECC4 support add NEED_BCOPY,NEED_BZERO,SOCKLEN_INT,HAVE_UNIXIO_H config/vms/config.h: add SOCKLEN_INT ifdef lib/io.c: add unixio.h config/win32/config.h lib/ansi/spcint.c lib/bsd/inet.c lib/bsd/inet6.c lib/bsd/popen.c lib/djgpp/osinit.c lib/{c99,generic,longlong}/intspc.c lib/{dummy,hpux,next,unix98,win32}/load.c lib/generic/{execute,popen}.c lib/init.c lib/{posix,vms}/sys.c lib/{posix,vms,win32}/tty.c lib/snolib/retstring.c lib/snolib/system.c lib/vms/getredirect.c lib/vms/popen.c lib/vms/sys.c include/{bindresvport,macros,snotypes,str}.h: ran comdef 7/3/2003 configure: check netinet6/in6.h for HAVE_SOCKADDR_IN6 always set HAVE_SOCKADDR_IN6, for serv.c lib/snolib/serv.c: set sin*.sin*_family fields config/vms/descrip.mms: fix osopen source path vms7.3 TCP needs bindresvport.obj lib/vms/osopen.c: use str.h for strcmp main.c: comdef fix (leave spaces) include/vars.h: use HAVE_WINSOCK_H 6/26/2003 configure: defend against __vfork, look for popen() shell 6/25/2003 doc/snobol4.1: add inet6 for SERV_LISTEN() configure: check for paths.h, vfork lib/bsd/popen.c: use vfork.h 6/24/2003 doc/snobol4.1: document SERV_LISTEN(), update HOST() output, date add DIAGNOSTICS section, more AUTHORS lib/snolib/serv.c: update for inet6 6/22/2003 new: lib/bsd/popen.c configure: check for socketpair, use bsd popen.c Makefile2.m4: add popen doc/snobol4.1: document bidirectional pipes 6/21/2003 doc/snobol4.1: document /dev/tty and /dev/null magic 6/19/2003 doc/porting.ms: update new: lib/{msdos,vms}/osopen.c config/vms/{config.h,descrip.mms}: add OSDEP_OPEN, osopen.obj config/win32/{borland,mingw,ntmsvc}.mak: add osopen config/win32/config.h: OPDEP_OPEN include/lib.h: add osdep_open 6/18/2003 config/djgpp/config.h: SOCKLEN_T configure: flushed HAVE_STDARG_H doc/porting.ms: update 6/16/2003 lib/posix/tty.c: add VALID test new: lib/win32/term.c config/win32/{borland,mingw,ntmsvc}.mak: use win32/term.c 6/15/2003: timing: add hwinfo, sw_vers for Darwin/NS lib/win32/tty.c: works! config/win32/config.h: WIN32_LEAN_AND_MEAN, TTY_READ_RAW config/win32/{borland,mingw,ntmsvc}.mak: use win32/tty.c 6/8/2003: configure: always set SOCKLEN_T config/win32/borland.mak: cleanup; use config\win32 config/win32/ntmsvc.mak: cleanup config/win32/config.h: SOCKLEN_T genc.sno: remove config.h parms.h: include config.h, move system includes first lib/snolib/{delete,fork,host,sprintf}.c: move system includes first lib/snolib/system.c: use stdlib.h lib/auxil/bindresvport.c, lib/snolib/serv.c: use SOCKLEN_T 6/6/2003: configure: flushed $SYS, config.guess refs, pass HWNAME, OSNAME lib/generic/sys.c: flushed CONFIG_GUESS include/snotypes.h: flused SIL_FUNC_PROTO 6/5/2003 new: bindresvport.h configure: SOCKLEN_T lib/bsd/inet.c: use bindresvport.h, OLD_UCX_INCLUDES, netdb.h! lib/bsd/inet6.c: use bindresvport.h lib/auxil/bindresvport.h: use bindresvport.h, SOCKLEN_T config/vms/descrip.mms: only use OLD_UCX_INCLUDES on VAXC? move stuff to UCXDEFS use bsd/inet.c!! config/vms/config.h: add SOCKLEN_T 6/3/2003 config/{djgpp,win32}/config.h: NEED_SOCKLEN_T config/vms/descrip.mms: OLD_UCX_INCLUDES lib/auxil/bindresvport.c: OLD_UCX_INCLUDES 6/2/2003 configure: NEED_SOCKLEN_T, AUX_BINDRESVPORT, Tru64 v5 crap lib/auxil/bindresvport.c: use socklen_t again 6/1/2003 include/lib.h: remove bindresvport proto lib/bsd/inet.c: add bindresvport proto, NULL arg 5/31/2003 include/h.h: protect TRUE/FALSE, ran comdef lib/bsd/inet6.c: move bindresvport_sa decl 5/29/2003 configure: HAVE_SOCKADDR_IN6, NEED_BINDRESVPORT_SA include/snotypes.h: remove mstime() include/str.h: s/__/_/ lib/bsd/inet.c: NEED_BINDRESVPORT_SA lib/win32/inet.c: bindresvport() lib/{hash,pair,pat,top}.c: move STATIC ifdefs up to top lib/auxil/bindresvport.c: HAVE_SOCKADDR_IN6, HAVE_WINSOCK_H lib/djgpp/osinit.c: bindresvport config/vms/descrip.mms, include/lib.h: NEED_POPEN config/win32/{borland,mingw,ntmsvc}.mak: bindresvport.o(bj) config/djgpp/config.h: NEED_BINDRESVPORT config/djgpp/Makefile: bindresvport.o 5/23/2003 flushed dummy/rresvport.c config/vms/descrip.mms: UCXLIB, UCXOBJ, flush rresvport config/win32/{borland,mingw,ntmsvc}.mak: flush rresvport lib/vms/inet.c: punt on bindresvport() lib/win32/inet.c: punt on bindresvport() configure: define NEED_SOCKLEN_T 5/22/2003 configure, Makefile2.m4: use bindresvport[_sa]() instead of rresvport[_af]() new: lib/auxil/bindresvport.c lib/bsd/inet(6).c: switch from rresvport(_af) to bindresvport(_sa) 5/20/2003 new: lib/vms/load.c: first cut at VMS LOAD() support!! new: lib/bsd/inet6.c: use getaddrinfo() new: lib/auxil/rresvport_af.c configure: detect getaddrinfo(); use inet6.o test for ipv6 first, add string(s).h comments config/vms/descrip.mms: more cleanup, add load.c use native popen(), bzero(), bcopy(), unlink() use bsd/inet.c, posix/mstime.c compiles without implicit warnings w C 6.5 on VMS 7.3!! config/vms/config.h: add NEED_RRESVPORT_DECL, PML comment pml.h: use PMLFUNC2 for renamed functions include/lib.h: add getredirection(), popen(), pclose(), rresvport() lib/init.c: cleanup, remove dynamic() extern lib/io.c: remove externs for term_input(), {udp,tcp}_open(), popen() lib/vms/getredirect.c: cleanup: use stdlib.h, lib.h lib/vms/sys.c: use starlet.h for system prototypes lib/{dummy,vms}/tty.c: add tty_suspend() config/win32/config.h: add NEED_RRESVPORT_DECL config/djgpp/config.h: add HAVE_STRINGS_H Makefile2.m4: add rresvport_af.o, remove finite.o 5/17/2003 configure: more HP-UX/ia64 tuning INSTALL, config/vms/{config.h,descrip.mms} update for Compaq C V6.5-001 on OpenVMS Alpha V7.3-1 config/vms/descrip.mms, lib/io.c, doc/porting.ms: s/NO_OFF_T/NEED_OFF_T/ 5/16/2003 timing: add eval for debian 3.0 configure: more HP-UX/ia64 tuning INSTALL: update --longlong, explain ILP32 include --lp64 caveat for HP-UX config/{vms,win32}/config.h: HAVE_STRING_H lib/win32/sys.c: detect WinServer2003, Win95OSR2, Win98SE 5/15/2003 configure, include/str.h: handle HP-UX IA64 like PA-RISC rework string function handling add HAVE_STRING(S)_H s/USE_OWN/NEED/ 5/14/2003 lib/hpux/load.c: remove unused variables 5/5/2003 include/str.h: always use memcmp if ANSI_STRINGS (Solaris 2.4) 4/30/2003 configure: KERNEL_BITS fix for HP-UX 10 (and earlier) up maxmem for full optimization of data_init.c on AIX 4/24/2003 Cleanup misc ports; lib/{c99,generic,longlong}/spcint.c lib/generic/spreal.c: include stdio lib/{bsd,dummy,hpux,next}/load.c: include stdio.h and lib.h lib/{dummy,dos,vms,win32}/tty.c: include lib.h lib/{vms,win32}/exists.c: include stdio.h,h.h,snotypes.h,lib.h lib/{vms,win32}/inet.c: lib.h, use str.h for bcopy h.h: add NEED_CONST; Tru64 5.0 also has __STDC__ == 0 INSTALL: add --double and --longlong doc 4/23/2003 Second round of prototype changes (compilers other than gcc); Makefile: add static.h (generated by genc.sno) configure: fix strings.h test genc.sno: output static prototypes to static.h2; use ret_t upcase library call names v311.sil: upcase library routines which take descrs or specs rename ENFILE to ENDFIL to avoid Unix errno collision globals, procs: ENDFIL main.c: always include macros.h, for NORET; use NORET for BEGIN call include/macros.h: define macros for upcase versions of lib routines cast args, call functions; add NORET parms.h: remove NORET, include static.h include/snotypes.h: add ret_t include/str.h: protect index/rindex against multiple definitions lib/bal.c: use NORET lib/init.c: use NORET for SYSCUT() call lib/io.c: use NORET for UNDF() call; add comments lib/bsd/inet.c: reverse order of macros and snotypes (for NORET) lib/generic/execute.c: include unistd.h before stdio.h lib/snolib/host.c: include unistd.h before stdio.h 4/21/2003 include/snotypes.h: create ptr_t; use void * to avoid gcc3 warnings gendata.sno: use (ptr_t) instead of (char *) Start(!!) cleanup for -Wimplicit warnings; lib/unix98/load.c: include stdio.h, lib.h, RTLD_LAZY cleanup lib/{dummy,vms,win32}/tty.c: flush tty_{sav,restor}e include/lib.h: add {execute,exists,suspend,tcp,tty,term,sys,version}.c entries add io_sseek(), io_finish(), io_closeall(), io_findunit(), io_getfp(), io_mkfile(), apdsp() remove io functions declared by libret.h fix getbal() prototype (was bal, returning void!) fix pad(), reverse(), substr() return types fix unit types for io_{printf,endfile,backspace,rewind} lib/snolib/{chop,cos,delete,exp,log,ord,sin,sqrt,tan}.c: return type! lib/snolib/{exit,,sset}.c: include lib.h, stdio.h lib/snolib/file.c: include lib.h, stdio.h; rename entry point! lib/snolib/fork.c: add system headers, return type lib/snolib/host.c: add system headers, lib.h, stdio.h lib/snolib/findunit.c: include stdio.h, lib.h, add return type lib/snolib/serv.c: add system headers, lib.h, stdio.h, flushall arg lib/snolib/{rename,sprintf}.c: add stdio.h pml.h: rename FILE() entry point to FILE2() lib/date.c: include stdio.h, lib.g; fix Y2K bug w/ old date!! lib/posix/tty.c: include lib.h for proc_suspend() lib/stream.c: remove libret.h remove extra arg to clertb -- unused for almost 10 years!! include/syntab.h: move stream() declaration here from libret.h enable any(), clertb(), plugtb() prototypes remove extra arg from clertb()! lib/bal.c: include lib.h for getbal() prototype parms.h: add includes isnobol4.c compiles clean w/ -Wimplicit on RH7.3, FreeBSD4.7 lib/bsd/inet.c: add includes lib/init.c, main.c: include proc.h lib/io.c: include lib.h, proc.h; ignore HAVE_STDARG_H; use __STDC__ version.c: include lib.h new include/gen.h: generated (init) functions main.c: include lib.h, gen.h data_init.c: include gen.h genc.sno: output full prototypes to proc.h gensyn.sno: output include gen.h lib/{bsd,posix}/dynamic.c: include lib.h (et al) lib/generic/{expops,intspc}.c: include lib.h lib/{ansi,bsd,dummy,generic,msdos,posix,vms,win32}/mstime.c lib/{djgpp,generic,posix,vms,win32}/sys.c: lib.h &c lib/{hash,lexcmp,ordvst,pat,pair,pml,realst,replace,top,tree}.c {bsd,generic,posix}/suspend.c {posix,vms}/term.c generic/ex{ists,execute}.c: lib.h lib/snolib/getstring.c: load.h lib/snolib/retstring.c: load.h, stdio.h new include/str.h: string includes/prototypes include/h.h: remove index, bcmp defines include/macros.h: move bcmp, bcopy defines to str.h parms.h: use str.h lib/auxil/getopt.c,lib/djgpp/osinit.c,lib/bsd/inet.c, lib/{date,init,ordvst,pml,realst,str}.c, lib/snolib/{host,[gr]etstring,serv,sprintf}.c lib/{generic,posix,vms,win32}/sys.c, lib/{bsd,hpux,next,unix98,win32}/load.c: use str.h lib/{ansi,c99,generic,longlong}/{spcint,intspc}.c, lib/{generic,ansi}/spreal.c: lib.h str.h lib/generic/execute.c: unistd.h configure: only use strings.h if it contains both index and strcmp (GNU/Linux version is minimal) compiles cleanly (except isnobol4.c loops & snolib functions) w/ gcc -Wmissing-prototypes!! 1/13/2003 doc/load.doc: cleanup lib/next/load.c: use snolib.so on Darwin INSTALL: cleanup 1/12/2003 config/win32/config.h: add missing endif INSTALL: update cygwin info 10/29/2002 lib/snolib/logic.c: fix for AXP/VMS compilation lib/vms/sys.c: fix 8/20/2002 lib/djgpp/osinit.c: replace with Burkhard's version! (He says mine doesn't work) lib/io.c: only flag STD{IN,OUT,ERR}_FILENO's w/ NOCLOSE README: updated, added URL doc/snobol4.1: added http:// to URL 6/13/2002 genc.sno: pass CPP directives! (3/3/2002) 6/6/2002 v311.sil include/macros.h lib/init.c doc/snobol4.1: Add '-S' option for enlarging interpreter stack. ** 1% speed penalty for genc.sno ** timing.sno lib/snolib/host.[ch]: add HOST_ISTACK_SIZE 4/25/2002 configure, lib/next/load.c: add TRY_UNDERSCORE to next/load.c for Darwin 4/19/2002 lib/next/load.c: check NSLinkModule() return add comments 4/12/2002 lib/next/load.c: remove unused variable & label 4/2/2002 lib/snolib/host.h: fix comment typo 3/23/2002 include/h.h: add default {IM,EX}PORT macros include/load.h: add io_closeall, io_mkfile; use IMPORT macro lib/djgpp/osinit.c: add io_{findunit,closeall,getfp,mkfile} lib/io.c: use EXPORT macro for io_{findunit,closeall,getfp,mkfile} lib/snolib/[gr]etstring.c: use EXPORT macro config/win32/config.h: add IMPORT & EXPORT macro declarations 3/21/2002 Fixes for mingw build. lib/win32/inet.c: remove dangling saweol config/win32/mingw.mak: add a missing $ doc/porting.ms: add HAVE_OS_INIT README: add text from COPYRIGHT 3/20/2002 clean DJGPP build w/ DXE2, WATTCP. Tested DXE2. lib/djgpp/osinit.c: cleanup config/djgpp/Makefile: use install.bat config/djgpp/config.h: fix HAVE_OS_INIT config/win32/{borland,mingw,ntmsvc}.mak: add make SRCDIR, make install doc/load.doc: DJGPP/DXE2, dllwrap info new: config/install.bat 3/17/2002 load.h: add prototypes for getstring, retstring, io_findunit, io_getfp 3/16/2002 configure: make gcc -O3 the default, use -fno-inline-functions 3/15/2002 config/djgpp/Makefile: fix for WATTCP build add HAVE_{WATTCP,DXE2} add comments config/djgpp/config.h: add defines under HAVE_{WATTCP,DXE2} add FOLD_HOSTNAMES lib/djgpp/sys.c: add +DXE2 and +WATTCP to sys string lib/djgpp/osinit.c: add lib.h, comments lib/bsd/inet.c: change WATTCP_DOS to FOLD_HOSTNAMES 3/14/2002 configure: add --bindir= document --mandir= show --prefix default doc/load.doc: add ArnaudRecipes link 3/13/2002 version.c: version 0.99.44+ configure: add --mandir= Makefile2.m4: add MAN1DIR 3/12/2002 lib/init.c: fix VMS getredirection() call 3/9/2002 Makefile: sh clean.sh 3/8/2002 timing: show AIX memory/cache conf (thanks to info from http://www.fortran-2000.com/ArnaudRecipes/hardwareinfo.html) Makefile: add lint 3/6/2002 Makefile2.m4: add "lint" Makefile: remove *.ln **************** released 0.99.44 (RCS tag BETA8) 3/2/2002 version.c: update to 0.99.44 timing: do an ls -l of Entries file 3/1/2002 config/djgpp/Makefile: tested, make DXE loading optional config/djgpp/config.h: remove unneeded stuff! lib/djgpp/sys.c: HOST() support for DJGPP lib/vms/getredirect.c: defend against argc==0 v311.sil: remove an empty RCALL label list 2/28/2002 configure: force -n32 compiler IRIX 32-bit compilations 2/22/2002 genc.sno, v311.sil: XINCLD 3-way return to handle multiple includes lib/io.c: io_include() 3-way return defend against path overflow cleanup, add comments, type member include/libret.h: io_include_ret test/line.{ref,sno}: test multiple include handling new: test/include.{ref,sno}: test includes w/o -line 2/21/2002 configure: seperate -Wuninitialized from OPT lib/win32/inet.c: cleanup; read text past eol, handle CR lib/io.c: fix unix inet I/O 2/20/2002 install-sh: make cpprog the default doc/snobol4.1: add www.snobol4.org lib/init.c: fix -P 2/19/2002 new: COPYRIGHT 2/18/2002 configure: use -fomit-frame-pointer for --fast w/ gcc report glibc version to stderr, config.m4 default compilation includes -Wuninitialized always compile with -Wunused v311.sil: compile cleanly with gcc -Wunused; add entry labels where needed; add XECODE op removed unused labels and unused code!! include/macros.h: ENTRY() no longer drops a label! genc.sno, gendata.sno: use new XECODE op lib/unix98/load.c: only declare found: label if needed 2/16/2002 configure: add IRIX compiler flags; merge IRIX and IRIX64 check for /sbin/install Makefile: remove timdir.* in cleanmostly new lib/djgpp/osinit.c: djgpp os_init() lib/init.c: add os_init() call new config/djgpp/{config.h,Makefile} removed config/djgpp/ misc... 2/15/2002 config/win32/{borland,ntmsvc}.mak: clean up, bring in to sync config/win32/config.h: update lib/snolib/getenv.c: needs equ.h 2/14/2002 Makefile: go back to "cvs login" Compile under MINGW (Minimal GNU for Windoze) http://mingw.org config/win32/config.h: only define __STD__ if not defined add defines for popen, pclose no longer NEED_POPEN_DECL? lib/snolib/system.c: needs equ.h lib/win32/inet.c: remove BORLAND ifdef lib/win32/sys.c: add Win{98,ME,2K,XP}; display unknown platforms strip trailing spaces from szCSDVersion lib/win32/tty.c: add HANDLE casts config/win32/ntmsvc.mak: put -Iconfig\win32 first intspc moved to ansi/ add ord.obj removed lib/win32/popen.c, config/borland directory new config/win32/mingw.mak, config/win32/borland.mak 2/13/2002 timing: use /usr/bin/oslevel on AIX 2/12/2002 lib/snolib/host.[ch]: changed HOST_SYSTEM to HOST_SYSCMD lib/snolib/host.c: no longer need to set RETTYPE before RETINT() handle REAL and integers encoded as strings include/load.h: set RETTYPE in RETNULL lib/snolib/{delete,file,rename}.c: include equ.h for RETNULL doc/snobol4.1: HOST() changes CHANGES: HOST() changes 2/7/2002 snolib/{file,ftp,http,smtp,tcp,url}.sno: s/C-MAINBOL/CSNOBOL4/ doc/porting.ms: undocument DCMP_BYTES (never needed?) lib/init.c: display build date CHANGES: add -v INSTALL: update --no-gcc --lp64 2/6/2002 new install-sh (X11 install script) configure: find install program/script, set INSTALL Makefile2.m4: use INSTALL for make install 2/5/2002 configure: improve help/usage output deal with cc==gcc and --no-gcc lib/snolib/ord.c: fix comments; fail on null string lib/snolib/environ.c: include config.h lib/bsd/suspend.c lib/generic/suspend.c lib/posix/suspend.c: config.h new test/ord.{sno,ref} test ORD() function test/tests.in: add ord.sno 2/4/2002 configure: get along without config.guess add more non-gcc compiler opt(timizat)ions add --fast Use -O2 w/ SunOS4 cc (don't optimize data_init.c) timing: check if config.guess exists removed config.guess genc.sno: handle 3-way LEXCMP (used in SORT) Makefile2.m4: include h.h in build.c for non-ansi compilers cc-M: perform basename on object files 1/30/2002 configure: don't compile data_init.c w/ -O2 on Darwin add --double; add NO_BITFIELDS variable rework LP/LONGLONG/NO_BITFIELDS use ~(VFLD_T)0 for SIZLIM CHANGES, INSTALL: add --double genc.sno: flush D_RV() function, use pre-existing RV()! 1/28/2002 INSTALL: ran ispell, C-MAINBOL -> CSNOBOL4 README, History: C-MAINBOL -> CSNOBOL4 configure: output explicit OPT= if NO_OPT 1/27/2002 Makefile2.m4: install equ.h include/load.h: always set RETTYPE in RET{INT,REAL} macros lib/{chop,cos,exp,fork,findunit,log,serv,sin,sqrt,sset,tan,ord}.c: include equ.h doc/load.doc: describe LA_STR_{PTR,LEN} 1/26/2002 v311.sil: set MAXLNGTH to SIZLIM; increase FNLIST space to 40 slots CHANGES: mention MAXLNGTH lib/hash.c: defend against Sun compiler bug Makefile: fix spotless, comment cleanup options rename clean to cleanmostly rename distclean to clean replaced make tar; removed TAR, G1 (reuse G2) lib/snolib/logic.c: use pointers to const for inputs handle bases upto 36; no longer use strtol(), getstring() include/load.h: make LA_STR_PTR() return ptr to const config/vms/descrip.mms: add logic; move defines to config.h config/win32/ntmsvc.mak: add logic; move defines to config.h config/borland/borlandsnob.mak: add logic; mov defines to config.h config/djgpp/{borlandsnob.mak,mak1i.bat}: add logic new: config/{vms,borland,win32}/config.h 1/25/2002 doc/porting.ms: update vfld/NO_BITFIELDS; add SIZLIM data models include/snotypes.h: drop default SIZLIM back to 0x7fffffff configure: redefine SIZLIM to 0xffffffff if using 64-bit INT_T add --no-bitfields INSTALL: document --no-bitfields timing: move psrinfo to generic location (SunOS5 and Tru64 v5) new: test/test.dump.sh: massage MAXLNGTH output test/tests.in: use "dump" script for a.sno, dump.sno test/{a,dump}.sno: massage for "dump" test script 1/24/2002 genc.sno: rename ENTER to ENTRY, flush ';' and label avoid cast and parens for integers in SETAC avoid parens for simple constants for SETAC saves 4094 bytes in snobol4.c (7928 with yesterday's changes) include/macros.h: rename ENTER to ENTRY, output label Makefile: don't have Makefile2 depend on GENERATED files move GENERATED to before Makefile2 add "make tidy" 1/23/2002 timing: add psrinfo, sysDescr for OSF/1 use ARGS when running timing.sno doc/ports.doc: last of old reports! add new ones genc.sno: clean up output (snobol4.c is 3838 bytes smaller) 1/22/2002 lib/snolib/logic.c: cleanup v311.sil: make LABEL() honor case folding add experimental FUNCTION() predicate new: test/function.{sno,ref} test/tests.in: add function.sno test/label.{sno,ref}: update for case folding globals: add FUNCTN gensyn.sno: use ALPHA and ALPHANUM variables; fix ALPHANUM! doc/ports.doc: update! CHANGES: updated 1/21/2002 v311.sil: add LABEL() and VDIFFER() functions updated Table of Contents globals: add LABEL and VDIFFR doc/snobol4.1: document LABEL() and VDIFFER() do some bolding new: test/{label,viffer}.{sno,ref} test/tests.in: add label.sno, vdiffer.sno timing: if 00README.CVS exists, display CVS/Entries new snolib/logic.sno, lib/snolib/logic.c pml.h: add LOGIC (but not prototype) Makefile2.m4: fix install (VERS/pv) include/load.h: add LA_STR_{PTR,LEN} 1/20/2002 started logic.c 1/19/2002 Makefile2.m4: add star bars 1/18/2002 configure, INSTALL: add --no-opt gensyn.sno: shake off dust; use TERMINAL, SUBSTR() use CHARSET, own ORD() function to allow bootstrapping take input file from command line Makefile: pass right input file to gensyn.sno! doc/Makefile: rename porting.doc to porting.txt add ALL, PORTING variables make snobol4.pdf (by default) add "make porting" add "make clean" doc/snobol4.1: update LOAD(), charset discussions v311.sil: fix compiler syntax error pointer display fix internal error trying to compile " ()(" 1/17/2002 INSTALL: add more --add-opt= discussion CHANGES: updated timing: show History RCSID v311.sil: up hash table size to 8192, define shift factor (OBSFT) fix lexical comparison function optimizations; add to index test/lexcmp.{sno,ref}: new version -- test null strings lib/hash.c: Use Bob Jenkins' hash function; real assention value 5% decreases in genc.sno compile & run times 1/16/2002 Makefile: use $(CC) to build bsdtsort INSTALL: note OPT defaults to -O2 with gcc enhance --add-opt= and --opt= discussions ask for gifts 1/15/2002 configure: renamed autoconf to configure retabbed output to config.m4 explicitly added --debug option rework option processing; always m4 quote values add --add-define to usage add OPT variable; use -O2 for gcc Makefile: remove autoconf from kit rework tsort comments move tools to top added pkg to kit timing: check if FREQ is non-empty; check for 00README.CVS renamed lib/borland to lib/msdos config/borland/borlandsnob.mak: renamed lib/borland to lib/msdos config/win32/ntmsvc.mak: renamed lib/borland to lib/msdos doc/load.doc: update, mention dt.h 1/14/2002 Makefile: use find | xargs for "make clean"; catch CVS .# files lib/snolib/host.h: update comments for Catspaw functions snolib/spitbol.sno: add aliases for HOST() functions 1/13/2002 new: 00README.CVS new: bsdtsort.c Makefile: use bsdtsort Makefile2.m4: remove pv reference lib/unix98/load.c: remove NO_UNDERSCORE ifdef autoconf: set TRY_UNDERSCORE directly; set for darwin doc/snobol4.1: updated doc/load.doc: updated 1/12/2002 lib/init.c: take -d and -P in descriptors (again) add showk(), rework p() function make -v display just version README: add host.sno INSTALL: update 1/10/2002 autoconf: split generated/on lines 1/9/2002 new: lib/snolib/host.h -- HOST() function codes lib/snolib/host.c: use host.h, handle arbitrary string "codes" add pmstack, dynamic region size functions add char bits new: host.awk -- create host.sno from host.h timing, timing.sno: use host.sno, report GC's Makefile2.sno: add GENSNOLIB for host.sno installation lib/init.c: allow NDYNAMIC override, add PSSIZE, allow override accept 'm' suffix on region sizes accept -v for version globals for pmstack, dynamic region size functions 1/8/2002 doc/Makefile: use groff -Thtml 1/7/2002 test/tests.in: add crlf.sno test/crlf.{sno,ref}: program and data with CR/LF at end of line 1/6/2002 lib/io.c: toss CR's for DOS files transferred in BINARY mode or on Cygwin for files transferred in ASCII mode! Makefile: get tsort.sno from parent directory v311.sil, globals, procs: rename CON to CONCAT for Cygwin build timing: move cygwin EXT check to top; fix blank lines autoconf: add --no-inline; rework largefile code again: add USE_FLAGS Clean builds on: SunOS 4.1.4; Solaris 2.4, 2.5.1, 2.6, 7, 8 FreeBSD 3.4, 4.4; OSF1/DU/Tru64 3.2, 4.0; IRIX 6.2, 6.5 Darwin 5.1 (MacOS X); NetBSD/i386 1.5ZA; Cygwin 1.3.3 HP-UX 10.20, 11.0; AIX 4.3; RH Linux 5.1, 6.0, 7.0, 7.2 1/5/2002 timing: on HP-UX, try getconf MACHINE_MODEL if "model" cmd not found autoconf: use XBS5_LP64_OFF64_{C,LD}FLAGS on IRIX for --lp64 set XBS5_MODEL on AIX if using native compiler; LFS_CFLAGS is not supported. Don't try to turn on large file support under lp64 compilations. Save extra large file getconf values using ADD_OPT() allow --lp64 builds under AIX (not tested); set ARFLAGS Darwin: alias "GT" (conflicts with curses global?) Makefile2.m4: use ARFLAGS for AIX lp64 lib/ordvst.c: remove an old comment 1/4/2002 autoconf: canonicalize "using" messages to lowercase make LARGEFILE checks glibc aware, add --no-largefile back! update for Darwin (cc define __GNUC__ but not __gcc__) get right path for mach-o/dyld.h (dlopen available) add LDFLAGS for libdl add HAVE_STDARGS_H check -- Darwin varargs is broken? timing: remove CCVERS, show build.c contents grep for Id in timing, timing.sno clean up BSD sysctl, CPU display prefix Linux releasefile treat Darwin like BSD (use sysctl hw) timing.sno: removed Revision, add ERROR/WARNING prefixes display TERMINAL messages at end for WARNINGS/FATAL io.c: check HAVE_STDARGS_H (was USE_STDARGS_H) lib/ordvst.c: include stdlib.h before h.h for FreeBSD 3.4 lib/snolib/retstring.c: include stdlib.h before h.h for FreeBSD 3.4 1/3/2002 autoconf: define CONFIG_HOST, CONFIG_OPTIONS (only if non-null) lib/snolib/host.c: add CONFIG_HOST, CONFIG_OPTIONS, reorder 2xxx add integer constants (23xx range) Makefile: push SNOBOL4 variable down to Makefile2, add TSORT variable Makefile2.m4: add SNOBOL4 variable 1/1/2002 autoconf: disable largefile/getconf cleverness -- glibc getconf botch 12/31/2001 lib/dummy/mstime.c: add comment to use time() lib/io.c, lib/str.c: tweaks (casts) to work on sparc w/ --longlong Thank God It's Over 12/29/2001 lib/io.c: fix sset cast; tested SSET; use HAVE_FSEEKO (or lack thereof) autoconf: detect largefile support, always use it, define HAVE_FSEEKO detect SIGTSTP on Solaris 8 12/28/2001 wrote count-procs script 12/27/2001 genc.sno: make callgraph file tsort friendly Makefile: move tsort out to seperate command so we can detect errors from bogus tsort programs use new callgraph format v311.sil, procs: rearrange some code to avoid functionization eliminate procs (and loops): TRAC{1,4,6},STOPT1,RECOM{N,F,Q,T} INSTALL: add "Advanced configuration" section (information on local-config, local-defines) README: add chars.sno new: snolib/chars.sno: character sets 12/26/2001 CHANGES: update configure options lib/io.c: add %G v311.sil: use %G for us/stmt autoconf: LP64 comments, GETRUSAGE_BUG for openbsd, select suspend.c changed cygwin32 to cygwin, check sys/signal.h for sigset_t lib/{bsd,posix}/tty.c: fix bad return in find... add tty_invalidate, ran comdef keep "last" dev_t used lib/{endex,init,io,stream,posix/tty}.c: kill unused variables include/macros.h: fix cast in OFCHK() to kill warnings timing.sno: allow integer compile/execute time/avg 12/25/2001 config.guess: updated to latest Makefile2.m4: add suspend.o, SUSPEND_C Makefile: add .NOTPARALLEL lib/init.c: add suspend handler, remove tty_save() call lib/endex.c: remove tty_restore() call lib/posix/tty.c, lib/bsd/tty.c: keep state by device dev_t flush tty_save(), tty_restore() add tty_suspend() lib/snolib/serv.c: add SIGFUNC_T for fireman, casts for bzero() args lib/bsd/inet.c: cast bzero() args new: lib/posix/suspend.c: POSIX process suspension new: lib/bsd/suspend.c: BSD42 process suspension new: lib/generic/suspend.c: generic process suspension new: lib/dummy/suspend.c: dummy process suspension 12/21/2000 Makefile: don't need to pass SIL to Makefile2 lib/posix/tty.c: restrict recl to 0xff 12/20/2001 Makefile: consolidate .PRECIOUS lines, add data_init.h Makefile2.m4: create and compile build.c before linking host.c: add HOST(2001) ... HOST(2005) -- build variables include/load.h: handle const strings in RETSTR() 12/19/2001 INSTALL: updated autoconf: always define CONFIG_GUESS for HOST(2000) lib/snolib/host.c: add HOST(2000); display CONFIG_GUESS timing.sno: display HOST() and HOST(2000) 12/18/2001 timing: show Ids from genc.sno, v311.sil README: updated. Include snolib file information, web docs. lib/{ansi,borland,bsd,dummy,generic,posix,vms,win32}/mstime.c, v311.sil, timing, genc.sno, include/snotypes.h, test/test.trace.sh: Keep runtime as a REAL (adds range at loss of resolution) effects all contexts; TIME(), trace messages, stats messages report microseconds/stmt. Makefile, Makefile2.m4: moved data_init.o rule back to Makefile2! add comment on DATA_INIT_CFLAGS and local-config add $(SRCDIR) prefixes for $(SNOBOL4).c Makefile: removed charset.c from TAR data_init.c: merged in stuff from charset.c lib/init.c: add '+' to start of getopt() optstring for RH7. Linux Losers chose incompatible behavior as the DEFAULT!!! For "snobol4.c -b genc.sno --inline" getopt was picking up the '--' "option"!!! removed: charset.c -- merged into data_init.c 12/17/2001 Makefile2.m4, autoconf: add EXT variable for Cygwin test/tests.in: fix scanerr entry v311.sil: use CASECL to determine if compiler done at FTLEN2 ETMCL can be zero on fast systems with bad resolution! timing.sno: remove crock for zero execution times 12/16/2001 autoconf: check LONGLONG seperately for doubles, improve comments improved(?) getrusage() detection and comments only try LP64 on hppa*w architecture charset.c: was ASCII dependant. use just numeric constants timing.sno: crock for zero execution times 12/15/2001 snolib/wrapper.sno: update TODO, comment out tests Makefile: removed bugs dir from TAR list 12/14/2001 INSTALL: document --add-define= --longlong 12/13/2001 new: test/scanerr.{sno,ref} scanner error case tests test/tests.in: add scanerr new: config/djgpp/lots: build scripts for DOS/DJGPP from B.Meissner new: lib/djgpp/load.c: DXE based load from Burkhard Meissner lib/bsd/inet.c: flatten hostnames to upper case for WATTCP/DOS lib/win32/inet.c: borland ifdef/include's from Greg White 8/30/2000 new: Borland make/batch files from Greg White; config/borland/{borlandmake.bat,borlandsnob.mak} config/borland/{win95test,win95tlist}.bat new: snolib/wrapper.sno -- create wrappers for LOAD()ables lib/bsd/load.c lib/dummy/load.c lib/hpux/load.c lib/next/load.c lib/unix98/load.c lib/win32/load.c genc.sno: renamed link() to callx() to avoid unistd.h conflict Makefile: removed []'s carried over from Makefile2.m4 added "make generated" 12/12/2001 CHANGES: updated autoconf: fix Solaris, Linux include date, host, sys info in config.h timing: ls -l config.h 12/08/2001 Makefile, Makefile2.m4: move source generation up to Makefile allows clean cvs checkout to build (with existing binary) added "make spotless" 12/06/2001 include/load.h: RETSTR() takes single arg, handles NULL all RETxxx macros wrapped in do { ... } while(0) pml.h, Makefile2.m4: add ORD() to snolib.a, PML it doc/snobol4.1: add ORD() win32/mstime.c: fix Win9x NO_STATIC_VARS 12/05/2001 win32/mstime.c: fix Win9x version timing.sno: ignore zero shell time (cygwin) 12/04/2001 autoconf: create config.h, add --add-define= use longlong/c99 functions when --longlong given Makefile2.m4: flushed $(CONFIG_GUESS) $(SYSDEFS), install config.h generic/intspc.c: fix comment, add cast tested --longlong (on FreeBSD) data_init.c: include config.h (for INT_T) lib/io.c: use int_t for io_print unit lib/longlong/spcint.c: ad hoc implementation (untested) new: c99/spcint.c c99/intspc.c timing: display config.h contents 12/02/2001 LOTS: add 'ifdef HAVE_CONFIG_H/include "config.h"' (done using a SNOBOL4 program, of course!) 11/15/2001 split {ansi,generic}/convert.c into {ansi,generic}/{spcint,spreal}.c moved intspc.c to generic/ updated Makefile2.m4, config/vms/descrip.mms, config/win32/ntmsvc.mak add serv.sno to snolib/ 11/13/2001 lib/io.c: move osdep_open to top, move popen() to end 09/26/2001 lib/win32/inet.c: added wVersionRequested variable 08/16/2001 lib/snolib/serv.c: re-arm fireman at end of handler (to avoid zombie creation) 04/29/2001 doc/snobol4.1: document SSET() 04/26/2001 autoconf: fix long long, always set PML_SERV pml.h: add SERV_LISTEN (under ifdef PML_SERV) Makefile2.m4: add SERV_C, add serv.o to SNOLIB_OBJS 03/28/2001 timing: add SuSE-release 01/18/2001 autoconf: use win32/mstime.c under Cygwin 01/13/2001 autoconf: add --longlong include/macros.h: cast pointer args for bzero/bcopy to void * so that we can use 64-bit ints when pointers are only 32-bits include/snotypes.h: allow INT_T to be redefined (default to long) 01/04/2001 timing: add .exe EXTension if needed, for cygwin timing.sno: handle zero execution time (cygwin on win9x) autoconf: only add -ldl on SunOS (all flavors) 12/08/2000 timing: improved for OpenBSD 11/14/2000 autoconf: add --no-largefile, ARCH_OPT, add Id, options output config/vms/descrip.mms: make DEC C the default INSTALL: document VMS change, -lp64, --largefile, --no-largefile 11/07/2000 lib/ordvst.c: declare ordvst_cmp() to take void *'s lib/posix/term.c: add ifdef HAVE_UNISTD_H removed; lib/generic/term.c 11/06/2000 autoconf: major rework; disposed of ALL config/*.m4 files timing: run "file" command on executable 11/03/2000 new: config/64bit.m4 removed: config/{sony_news,ultrx-mips}.m4 (empty) config/{irix64,ultrasparc64,irix64}.m4: use 64bit.m4 lib/next/load.c: NextStep (and MacOS X) LOAD() support autoconf: figure out which load.c to use removed sunpro goo removed empty config files use $INCDIR in dynamic.c tests config/{bsd43,netbsd-alpha,nextstep3,osf1}.m4, config/skel.inc: remove all LOAD_C settings 10/28/2000 config.guess: add darwin (MacOS X), from www.darwinfo.org/pub/darwin/devel/config.guess autoconf: add darwin, help from Russ Urquhart 10/12/2000 timing: display CPU: line from /var/run/dmesg.boot on BSD systems 9/22/2000 timing: display mandrake-release file, add "break" 9/14/2000 autoconf: check for libsocket.so (in case SUNWarc not installed) 9/13/2000 autoconf: fix dynamic.c messages 8/23/2000 lib/generic/convert.c: fixed pasteo's thanks to "Greg White" 8/21/2000 autoconf: add NetBSD ELF check 8/15/2000 timing: display slackware, turbolinux, debian RELEASE files 8/14/2000 timing: display redhat-release, SuSe-release files 8/5/2000 Fix for FreeBSD 4.x; autoconf: check for /usr/include/sys/vadvise.h to select dynamic.c config/nextstep3.m4 config/osf1.m4 config/skel.inc: remove DYNAMIC_C timing: display machdep.tsc_freq on FreeBSD 7/25/2000 new file lib/snolib/serv.c autoconf: detect ELF on FreeBSD and add -export-symbolic, NO_UNDERSCORE add -export-symbolic on ELF Linux systems lib/unix98/load.c: add NO_UNDERSCORE 1/6/2000 config/ultrasparc64.m4: config for solaris7 64bit env (tested) autoconf: emit HAVE_STDLIB_H main.c lib/init.c lib/io.c lib/ordvst.c lib/{bsd,generic}/dynamic.c lib/{bsd,posix}/tty.c lib/generic/popen.c lib/{hpux,unix98,bsd}/load.c: use HAVE_STDLIB_H for malloc/getenv 12/17/99 timing: use psrinfo if available on suns 8/8/99 config/borland/build.bat: add sset config/vms/descrip.mms: add sset config/win32/ntmsvc.mak: add sset lib/vms/popen.c: add retlen cast (for Alpha) lib/vms/tty.c: remove trailing NULs 7/2/99 timing: use ./xsnobol4 (in case . not in user PATH) redirect sysctl stderr (some garbage on BSDI 4.0) autoconf: check for libdl in /shlib (for BSDI 4.0) 5/2/99 autoconf: add mtxinu43, check for missing finite() on hpux new: config/mtxinu43.m4, lib/hpux/finite.c 5/1/99 lib/win32/inet.c: add setsockopt, get_osfhandle, (short) casts 4/27/99 snolib/http.sno: request 8k record length lib/snolib/sset.c: use oof parameter to io_sseek lib/io.c: fixed io_findunit, io_sseek Makefile2.m4: add sset.o 4/16/99 config/vms/descrip.mms: fixes for AXP/DECC (not tested in 4 yrs?) 4/12/99 lib/win32/sys.c: fix osname() Makefile2.m4: set SHELL=/bin/sh 3/12/99 Add Experimental scaled SET interface; lib/io.c: add io_sseek() pml.h: add SSET new lib/snolib/sset.c 3/3/99 INSTALL: update for --prefix 2/26/99 Tested on FreeBSD 3.1 autoconf: look for getopt in unistd.h timing: look for sysctl in /sbin 2/2/99 Makefile2.m4: add SHELL=sh for IRIX 1/22/99 lib/win32/mstime.c: fix if(n)def NO_STATIC_VARS 1/14/99 lib/{win32,vms}/inet.c: removed HAVE_SOCKADDR_LEN 1/8/99 INSTALL: updates from John Refling Makefile2.m4: remove $(MANPATH) first (from John Refling) README: add John Refling! 12/31/98 updates from trying to make a FreeBSD "port"; autoconf: add --prefix Makefile: change "default" to "all" Makefile2.m4: use PREFIX 12/28/98 v311.sil, test/a.ref, test/dump.ref: fixed CASECL position 12/26/98 autoconf: add --largefile lib/io.c: use ftello/fseeko thruout (crock ifdef on _LARGEFILE_SOURCE) 12/23/98 lib/win32/sys.c: fix typo 12/19/98 lib/bsd/inet.c, autoconf: removed HAVE_SOCKADDR_LEN 12/18/98 autoconf: experiment: try setting _FILE_OFFSET_BITS to 64 on Solaris 2.6 for Phillip Thomas 12/17/98 config/vms/descrip.mms: tested, fixed 12/16/98 Makefile: add .depend dependancy! Makefile2.m4: removed HAVE_UNISTD_H variable add explicit rules for version.o main.o data.o syn.o autoconf: check stdlib.h for getopt() flushed HAVE_UNISTD_H variable prefer gcc on sun4u systems! config/bsd44.m4 config/ansi.m4 config/bsd43.m4 config/generic.m4 config/hpux-68k.m4 config/netbsd-alpha.m4 config/nextstep3.m4 config/osf1.m4 config/posix.m4 config/skel.inc config/ultrix-mips.m4: add $(SRCDIR) lib/bsd/mstime.c: set last_mstime! changed NO_GETRUSAGE_BUG to GETRUSAGE_BUG lib/date.c lib/generic/expops.c lib/unix98/load.c lib/realst.c lib/str.c lib/auxil/getopt.c lib/snolib/chop.c lib/snolib/cos.c lib/snolib/exp.c lib/snolib/log.c lib/snolib/sin.c lib/snolib/sqrt.c lib/snolib/tan.c: include system files first (to get __P) timing: make seperate symlink for snobol4 binary; remove .. prefix 12/14/98 config/vms/descrip.mms: use vms inet.c! config/win32/ntmsvc.mak: use win32 inet.c! new lib/vms/inet.c: VMS only version new lib/win32/inet.c: winsock version; call WSAInit/Cleanup include/vars.h: add wsock_init 12/12/98 timing: redir lsattr stderr to stdout (in case proc0 not found) avoid builtin "time" command if possible (for AIX4, OpenBSD) timing.sno: add "User" pattern for AIX4 Makefile: add "default"; AIX4 make was making all the targets! moved "clean", "realclean" from Makefile2 added "distclean" Makefile2.m4: moved "clean", "realclean" to Makefile autoconf: output libdl instead of -ldl config/osf1.m4: added -D_SOCKADDR_LEN 11/23/98 lib/io.c: pass mode to osdep_open() doc/porting.ms: update 11/09/98 config.guess: updated to new version added romp-ibm-aos autoconf: try use of dlopen() on 64-bit HP-UX genc.sno: process options Makefile2.m4: use genc.sno --inline option instead of inline.sno removed inline.sno from TAR files 11/02/98 lib/vms/mstime.c: use CLK_TCK if available 10/31/98 lib/bsd/mstime.c: avoid negative runtime deltas 10/22/98 README: updated 8/18/98 lib/win32/sys.c: add Win98 suppress version numbers on Win95/Win98 strip leading spaces from szCSDVersion 7/23/98 autoconf: added cygwin32 test 6/12/98 include/macros.h: change APDSP to call apdsp function after checking for non-zero length! lib/str.c: new apdsp function; call bcopy if above threshold (else do simple copy) 12% reduction in genc.sno compile time 7% reduction in genc.sno run time Made 060298.tar.gz; fetched by; Charles Wardell 5/30/98 Changes to allow building a Win32 DLL out of SNOBOL4; (under ifdef NO_STATIC_VARS) Makefile2.m4: add syn_init.{h,h2} data_init.c: include vars.h gendata.sno: bracket equ.h & res.h against multiple includes include BUFFERs in res struct; ifdef struct res decls gensyn.sno: output syn_init.h (included by generated syn.c) main.c: allocate vars struct; call init_syntab parms.h: include vars.h version.c: include vars.h; update to 0.99.4++ include/vars.h: new include file for static vars struct include/macros.h: ifdef math_error decl lib/{expops,endex,stream,date,ordvst,intspc,realst,init}.c: vars.h lib/{ansi,generic}/convert.c: include vars.h lib/win32/{load,mstime,tty}.c: keep static in vars.h storage lib/snolib/{host,retstring}.c: use vars.h 5/29/98 lib/io.c: moved all static vars to "struct iovars" for DLL'ification units array and indexing now hidden by INTERN and FINDUNIT ran comdef 5/6/98 autoconf: seperate --no-dynlib and --no-dlopen options 4/9/98 doc/ports.doc: updated 3/7/98 lib/bsd/inet.c: comments, ran comdef lib/win32/mstime.c: swap old & new in subtraction! 3/3/98 lib/win32/load.c: rework load path handling; try bare filename first, then prepend snolib dir lib/bsd/inet.c: define "unix" (for HP-UX, AIX) 3/2/98 doc/load.doc: talk about HP-UX and getstring() README: fix Steve Kibler's name! 3/1/98 config/vms/descrip.mms: add .ifdefs (for DEC_C, NO_TCP) INSTALL: document VMS MMS/MACRO= options 2/26/98 lib/hpux/load.c: keep seperate "lib" struct with refcounts Gave to Steve Kibler (Win32 DLL port) 2/24/98 2/15/98 INSTALL: updated 2/14/98 config/borland/build.bat: add exists.c genc.sno: check for zero integer divisor, use RMATH_ERROR() macro include/macros.h: add RMATH_ERROR(); calls finite() config/win32/ntmsvc.mak: add -Dfinite=_finite new lib/dummy/finite.c Makefile2.m4: add FINITE_C autoconf: add finite.o 2/13/98 config/win32/ntmsvc.mak: add exists.c 2/12/98 new lib/vms/unlink.c: use delete function! lib/io.c: fixed TTY_READ_COOKED (noeol arg, accept empty lines) lib/vms/popen.c: fixed typo lib/vms/sys.c: blows on VAX up unless debug puts() present? lib/vms/tty.c: fixed term/termlen swap config/vms/descrip.mms: updated (works on uVAX 3100 under VMS 6.1)! removed build.com 2/10/98 config/vms/{build.com,descrip.mms}: updated lib/stream.c: renamed index variable for VAX/VMS cpp lib/io.c: include res.h for VAX/VMS CC lib/bsd/inet.c: ifdef includes for VMS lib/vms/tty.c: fix typo lib/vms/popen.c: add new lib/vms/exists.c: check for file existance INSTALL: cleaned up VMS instructions 2/8/98 config/win32/ntmsvc.mak: add TTY_C TTY_DEFS NO_BITFIELDS vars lib/io.c: add /dev/tmpfile, OSDEP_FOPEN README: add L. Gene Battin 2/6/98 lib/bsd/inet.c: use winsock.h under USE_WINSOCK_H config/win32/ntmsvc.mak: USE_WINSOCK_H, use wsock32.lib 2/5/98 Makefile2.m4: move exists to snolib.a config/vms/descrip.mms, build.com: add exists 2/4/98 lib/dummy/rresvport.c: for NT lib/bsd/inet.c: use winsock2.h on NT lib/win32/tty.c: fix typos new config/win32/ntmsvc.mak: NMAKE file add -O2, remove -Za, define __STDC__ as zero to avoid losing non-ANSI extensions! define isnan as _isnan 2/2/98 lib/snolib/file.c: use exists() function lib/win32/load.c: use exists() function new lib/generic/exists.c, lib/win32/exists.c ntmsvc.bat: add -DUSE_STDARG_H, -DUSE_WINSOCK_H removed dump.{c,obj} Makefile2.m4: add exists.c, EXISTS_C lib/bsd/inet.c: add USE_WINSOCK_H ifdef (ugh) 1/28/98 Fixed up ntmsvc.bat with help from Bert Vincent add win32/rename.bat to fix truncated filenames new lib/win32/tty.c 1/27/98 lib/win32/sys.c: worked first try; made it better lib/win32/load.c: now compiles tested win32 popen-- works on NT 4.0 lib/bsd/inet.c: added NEED_SOCKADDR_LEN ifdef autoconf: add INCDIR; define NEED_SOCKADDR_LEN if needed 1/26/98 config/win32/ntmsvc.bat: removed some rem's, use new files! 1/5/98 new lib/win32/popen.c: use MSVC _popen() UNTESTED!! new lib/win32/load.c: use LoadLibrary() UNTESTED!! lib/win32/sys.c: use GetSystemInfo() for hw type use GetVersionEx for O/S lib/win32/mstime.c: use GetSystemTime() and SystemTimeToFileTime() if GetProcessTimes fails (only implemented on NT?) 12/23/97 include/h.h: add __P macro include/snotypes.h: add SIL_FUNC_PROTO macro include/syntab.h: add prototypes for functions in stream.h (if'ed out) lib/realst.c: declare void return lib/stream.c: fix accidental parameter removal? genc.sno: put silpath in top comment New include/lib.h: lib file prototypes (not used) 12/22/97 New lib/win32/sys.c, lib/win32/mstime.c: UNTESTED, UNUSED README: add David Feustel 12/21/97 New config/win32/tlist.bat New config/win32/nttest.bat David Feustel's WinNT reression test batch files 12/17/97 New config/win32/ntmsvc.bat: David Feustel's WinNT batch file using MS VC++ 5.0 12/10/97 Fixes from David Feustel's WinNT port; config/borland/build.bat: add missing files lib/io.c: added NEED_POPEN_DECL 12/5/97 doc/snobol4.1: fix typo (thanks to Phillip Thomas) Gave to David Feustel 12/3/97 for WinNT port (0-99-4xx.zip) Gave to Phillip Thomas 11/23? for tcp/findunit fixes 11/23/97: lib/init.c: catch SIGPIPE! lib/io.c: write newline directly if unbuffered Makefile2.m4: send test results to stdout 11/22/97: lib/bsd/inet.c: removed extra "int port" decl 11/21/97: Fix io_endfile() exhaustion reported by Phillip Thomas lib/io.c: io_closeall(); return status, free file blocks io_endfile(); call io_closeall(), even if no curr! 11/16/97: lib/generic/expops.c: use int_t in SIGN cast 11/8/97: doc/porting.doc: NO_UNBUF_RW Makefile2.m4: install .h files in snolib dir make hard link for snobol4-VERS touch snobol4 after hard link to ensure newer than snobol4.c 11/7/97: v311.sil: removed keyword tracing for &ERRTEXT didn't work (output as integer) neither SNOBOL4+ nor SPITBOL allow it 11/5/97: v311.sil: replace PROC with XPROC on merged scanner procs snolib/spitbol.sno: set &FULLSCAN = 1 gendata.sno: get input filename using HOST() functions genc.sno: get input filename using HOST() functions add missing "new" SIL op names to comments add new XPROC op Makefile2.m4: pass SIL file to genc, gendata on command line lib/dump.c: use X_BKSIZE() in dump_dyn() timing: link v311.sil into timdir, and pass on command line to genc.sno include/macros.h: check second character in LEXEQ() 11/4/97: lib/init.c: increase default dynamic space to 64K descrs Makefile2.m4: removed -d512k arg from SNOBOL4 command (could reduce workspace in 64bit environs) genc.sno: use X_BKSIZE and X_GETLTH macros include/macros: add X_BKSIZE and X_GETLTH macros 10/30/97: lib/pat.c: make inlinable parms.h: inline pat.c 8% reduction in genc.sno compile time v311.sil: catch bad data at PATBRA 10/29/97: lib/vms/{tty,getredirect,term}.c: flushed xxx_file hacks always use fgetname() 10/28/97: genc.sno: add IND before "hash()" v311.sil: merge scanner functions into SCIN1 globals, procs: removed scanner functions genc runtime reduced 15% avoids nasty mutual recursions, stack overflows atn.sno runtime reduced by 63%!! (2.7x faster) worst case (4096 char string) reduced 69% (4.8x faster) snocone self-compile runtime reduced 5% 10/27/97: lib/io.c: perform lseek() directly on unbuffered units config/hpux.m4: removed -Dconst (now done in h.h) snolib/ftp.sno: add mode arg to FTP.DATA.COMMAND add TCP.DATA.CLOSE function fix anon open error return 10/24/97: v311.sil: allow REALs in INTVAL for Stephen Del Rea (from SNOBOL4+) snolib/snobol4+.sno: removed CONVERT() calls snolib/url.sno: use file.sno for local files test/tests.in: add intval New snolib/file.sno: local file ops for URLs New test/intval.sno test/intval.ref tests 10/11/97: snolib/http.sno: add "Host: " to request 10/10/97: snolib/snobol4+.sno: accept REAL offset argument to SEEK()! lib/vms/sys.c: removed OSNAME, trim trailing spaces from version 10/10/97: snolib/snobol4+.sno: add SEEK() 10/5/97: New h/dt.h; struct definitions for SNOBOL4 datatypes include/h.h: define dummy const & volatile if __STDC__ == 0 lib/dump.c: use dt.h 10/3/97: lib/vms/sys.c: use SYS$GETSYIW to get architecture and VMS version lib/{bsd,dummy,posix,vms}/tty.c: add fname arg to fisatty lib/io.c: add FL_INPUT and FL_OUTPUT flags add fname arg to fisatty 10/1/97: New lib/borland/tty.c config/borland/build.bat: define TTY_READ_RAW, use borland/tty.c 9/30/97: Fixed (integer) math error handling; lib/init.c: declare math_error volatile include/macros.h: declare math_error extern volatile include/h.h: dummy out volatile on non-ansi compilers 9/29/97: doc/ports.doc: updated 9/27/97: gensyn.sno: set exit code if input file not found lib/realst.c: fixed comment doc/porting.ms: updated, merged, sorted ifdefs 9/26/97: lib/io.c: pass raw, keepeol flags to tty_read() add seperate TTY_READ_{RAW,COOKED} ifdefs lib/vms/tty.c: add back "raw" arg; support cooked reads (not used) add keepeol arg; use fgetname() to get fname for ASSIGN add TRMNOECHO (for cooked) config/vms/{build.com,descrip.mms}: TTY_READ_{RAW,COOKED} New: snolib/ftp.sno 9/25/97: lib/vms/tty.c: added SUCCESS() macro, NOFILTR flag, term[] mask lib/vms/popen.c: added SUCCESS() macro 9/24/97: autoconf: accept null string as an option for HPUX9 problem reported by Yuli Barcohen config/borland/build.bat: added lib/generic/popen.c lib/io.c: removed NO_POPEN ifdefs TTY_READ for binary only, pass fname lib/bsd/tty.c: removed "old" and "TTY_SAVE_RECL" lib/vms/tty.c: use filenames to assign tty channels lib/posix/tty.c: removed "old"; fixed recl saving lib/vms/term.c: add term_file, term_fd globals lib/vms/getredirect.c: add std{in,out}_file globals New: lib/dummy/popen.c: does nothing New: lib/generic/popen.c: uses system() 9/23/97: lib/generic/expops.c: check for overflow New: snolib/smtp.sno snolib/http.sno snolib/url.sno 9/22/97: config/vms/{descrip.mms,build.com}: add READ_TTY define lib/generic/expops.c: use repeated multiply for expint() lib/vms/tty.c: implement tty_read(), tested lib/vms/popen.c: tested. Now available in DEC C RTL?? 9/21/97: lib/io.c: add io_finish(); much tweaking; added TTY_READ ifdef call tty_close() even if FL_NOCLOSE set free source files when compiler finishes make "|xxx" open fail if NO_POPEN defined lib/endex.c: call io_finish() lib/vms/popen.c: replaced with version from Icon config/hpux-pa.m4: removed -mlong-calls per Yuli Barcohen timing: check for /bin/model 9/17/97: Makefile2.m4: made snobol4 precious lib/init.c: catch resource limit signals lib/io.c: use fgets() again in io_read(). Only getc() for last character, if needed. New: lib/vms/popen.c New: lib/vms/tty.c my crude attempt at noecho support config/vms/{descrip.mms,build.com}: add popen.c, use vms/tty.c 9/15/97: New: snolib/snobol4+.sno emulates SNOBOL4+ functions 9/13/97: New: snolib/{unique,fence,not}.sno from Peter Arno-Coppen New: snolib/spitbol.sno emulates SPITBOL I/O & functions snolib/bq.sno: use IO_FINDUNIT() 9/10/97: Makefile: replaced seperate 2nd level rules with one using $@ Makefile2.m4: added SH=sh for IRIX replaced TESTED with "snobol4" do all cmp's silently lib/stream.c: stream tweaking; do put outside loop, use for() 9/9/97: v311.sil: Call io_pad() to fix -LIST RIGHT lib/io.c: add io_pad() function gensyn.sno: CONTIN is always implicit action zero lib/stream.c: handle CONTIN quickly (no table lookup); CONTIN actions are taken for 97% of characters scanned while compiling genc.sno; Compile time reduced by 8% 9/7/97: Ran profiling (prof and tcov) lib/io.c: only tack on one space to compiler input v311.sil: have compiler use length returned by STREAD reduces genc.sno compile time by 65% an average of 1000 padding spaces were being added to each line using 1024 recl. reduced 10% below compile time for 80 char recl. Use input length for listings; -LIST RIGHT is dead. lib/top.c: allow inlining parms.h: inline top.c 9/3/97: config/vms/build.com, config/vms/descrip.mms: updated new file lib/vms/sys.c 9/2/97: v311.sil: Implemented fatal "Output error" problem reported by Phillip Thomas in June 1994! genc.sno: pass iokey to io_output(), add labels to ENFILE io.c: return status from io_output(), io_endfile() procs: add COMP6 8/29/97: lib/unix98.c: add TRY_UNDERSCORE ifdef, enable for FreeBSD added mode var, default to zero if RTLD_LAZY not defined 8/20/97: lib/realst.c: include stdio.h for SGI -n32 ABI 8/19/97: lib/io.c: removed unused vars, fixed typos autoconf: fixed irix64 comment 8/13/97: configure: check into RCS! Use ./autoconf 8/12/97: INSTALL: replaced autoconf references with configure timing: redirect sunmodel standard error output **************** version 0.99.4 (RCS tag BETA7) 8/11/97: version.c: upped to 0.99.4 CHANGES, README: updated doc/snobol4.1: updated date doc/load.doc: new sections on shared libraries, I/O functions doc/ports.doc: updated version numbers 8/10/97: timing.sno: calculate FACTOR before using it! use CHECKHZ()!! new test: any 8/8/97: doc/ports.doc: updated 8/6/97: Makefile: use ./configure Makefile2.m4: added configure to tar 8/5/97: v311.sil procs syntax.tbl: Code from SNOBOL4+ seperate syntax tables for BREAK(X) and SPAN simple index lookup for ANY/NOTANY lib/stream.c: new any() function 8/1/97: autoconf: general cleanup commented out irix64 detection (does not yet work) lib/stream.c: optimized clertb() -- 4% reduction in genc runtime!! 7/26/97: gensyn.sno: include h.h before syntab.h for non-ANSI compilers (sos4) sunmodel: use hostid on systems without openprom timing.sno: use REM to capture version number timing: removed "who am i" doc/ports.doc: updated 7/25/97: v311.sil: cleaned up clearing of compiler variables lib/auxil/bzero.c: zero blocks of "words" 7/18/97: autoconf: revamped gcc testing for Solaris/x86 7/16/97: doc/ports.doc: updated 7/11/97: autoconf: use CCVERS to output comments add --force-memmove; check for memmove in string.h if no bcopy(); define USE_MEMMOVE include/macros.h: added USE_MEMMOVE USE_MEMCMP ifdefs USE_MEMCMP not set; only necessary if DCMP_BYTES in use (rare) lib/bsd/inet.c: include macros.h for bcopy redefn INSTALL: document --force-memmove doc/ports.doc: updated 7/7/97: README CHANGES: updated for 0.99.4 7/6/97: init.c: deal with long arg vectors; created getargs() -- no static bufs lib/snolib/retstring.c: return long strings -- no static buf 7/5/97: autoconf: redirect grep output to /dev/null version.c: upped to ".3++" (pre .4 testing) doc/ports.doc: updated with "3++" timings 7/4/97: Makefile: made Makefile2 precious INSTALL: add --no-dlopen --no-dynlib doc/snobol4.1: add IO_FINDUNIT(), unit range, /dev/fd/n, dlopen(3) doc/porting.ms: add NO_FDOPEN 7/3/97: lib/io.c: add /dev/fd/ magic path, NO_FDOPEN ifdef add FL_NOCLOSE flag bit (but do fflush) have I/O close return status from (p|f)close have io_findunit() keep static finger Upped MAXUNIT to 256 lib/snolib/findunit.c: PML access to io_findunit() pml.h: add IO_FINDUNIT Makefile2.m4: add findunit.c new tests longline, longrec 7/2/97: v311.sil: upped CARDSZ to 1024 again. For David J Birnbaum 7/1/97: lib/io.c: soak up excess "record" data after newline in ASCII input (problem reported by David J Birnbaum) Return full recl's worth of data for EOL mode ASCII input used to return recl-1; replaced fgets() 6/23/97: timing: cat /proc/meminfo on linux 6/22/97: lib/io.c: have T mode I/O imply unbuffered (for tty prompts) lib/snolib/getstring.c: handle null string tested resp.sno (see spring 1985) Makefile2.m4: add SNOLIB_FILE variable autoconf: check for bcopy() and bzero() in string.h alter SNOLIB_FILE when using dynamic linking 6/21/97: timing: use HP-UX "model" command, if present doc/snobol4.1: updated exponent info 6/20/97: lib/aux/bcopy.c: use (long) for casts ports.doc: updated 6/19/97: autoconf: look for /lib/libdl (for Linux) gensyn.sno: removed letter D from EXP class lib/ansi/convert.c: removed extra strtod() arg lib/realst.c: expanded buffer use "g" format (but make sure output doesn't look like an int) will use exponentials if output smaller. eliminates trailing zeroes, inaccurate output; (ie; 1e12 output as 999999995904.000000, 1.e14 output as 100000000376832.000000) syntax.tbl: allow exponent's without fractions (ie; 1e5), like SPITBOL timing: cat /proc/cpuinfo (if present) on Linux dump hw sysctl info on BSD systems updated test output for realst change for; conv2.ref float.ref pow.ref space.ref spit.ref 5/27/97: lib/str.c: add spec2str() utility lib/bsd/load.c lib/unix98/load.c lib/dummy/load.c lib/hpux/load.c: make consistant; use spec2str, check for abs path clear V/F fields in function pointer autoconf: use hpux/load.c on HP's with dl.h 5/22/97: lib/bsd/load.c lib/unix98/load.c: fix "next" pointer setup new lib/hpux/load.c 5/21/97: gendata.sno gensyn.sno parms.h data_init.c v311.sil version.c Makefile2.m4 lib/ansi/convert.c lib/generic/convert.c lib/dump.c lib/endex.c lib/str.c lib/ordvst.c lib/init.c: Created "struct res" for resident data. All data now in named members, for easier debug. Expressions now legal in SIL ARRAY macro! flushed duplicate COPYSP decl. New machine generated res.h file. lib/stream.c: use isspace() in trimsp(). 5/20/97: genc.sno lib/endex.c include/macros.h parms.h: applied 10/10/96 tailcall depth stats changes all tailcalls use "BRANCH()" macro don't output PANIC() if LIVE not set 9% reduction in isnobol4.c size genc.sno include/macros.h: moved RSTSTK() to RETURN() macro "alt" variable never needed, no need to bracket/indent calls 5% reduction in isnobol4.c size 5/17/97: lib/str.c: TRIM tabs as well as spaces, like SPITBOL test/trim{0,1}.{sno.ref}: added tab tests 5/3/97: lib/unix98/load.c: check for name with _ prepended if not found (for NetBSD/pc532) 4/24/97: autoconf: added comments, $(SRCDIR) on XXX_C= lines 4/17/97: Makefile, Makefile2.m4: use mv -f throughout tested dlopen() on OSF/1, SGI 4/14/97: config/irix64.m4: ditch long long autoconf: check for libdl 4/13/97: new lib/unix98/load.c: load support using dlopen() autoconf: check for dlfcn.h, added --no-dlopen 4/5/97: doc/snobol4.1: document DATE() args autoconf, timing: added CCVERS for C Compiler version autoconf: new options --add-{cppflags,ldflags,objs,opt,srcs}= --opt= INSTALL: document new autoconf options 4/2/97: genc.sno, v311.sil, lib/date.c: support SPITBOL DATE() args doc/ports.doc: 486SX33 3/27/97: doc/snobol4.1: typo tweaks 3/7/97: doc/ports.doc: lots of new stuff from Rik Faith reformatted: removed "conf" column, added "opt" **************** version 0.99.3 (RCS tag BETA6) 2/12/97: autoconf: added sun4u and define __SPARCV9__ lib/bsd/dynamic.c: add vm_gc_advise() lib/generic/dynamic.c: add vm_gc_advise lib/io.c: default SNOLIB_DIR to "./" (for DOS) v311.sil: add calls to vm_gc_advise() version.c: upped version to 0.99.3 config/borland/build.bat: new version from Steve Kibler config/borland/README: updated doc/ports.doc: new ss2 timing diffall: take TAG arg README: upped version to 0.99.3 CHANGES: updated 12/25/96: autoconf: added openbsd config.guess: updated to latest (knows openbsd) doc/ports.doc: add openbsd/486, hpux7 12/10/96: README: mention SNOBOL4 list, new contributors lib/ansi/convert.c, lib/generic/convert.c: apply length limit. EVAL() can pass big strings! bug reported by p.a.coppen 12/07/96: second last TMRC open house in Bldg 20 init.c: mention "k" suffix in usage message, per skibler lib/auxil/getopt.c: reorder includes for borland 4.51, per skibler lib/dummy/tty.c: add h.h for FALSE, per skibler lib/generic/sys.c: fixed ANSI_STRINGS ifdef sense. ran comdef 12/04/96: autoconf: grep strings.h for "index" before using BSD functions **************** version 0.99.2 (RCS tag BETA5) 11/28/96: timing.sno: made NOTIME error non-fatal doc/ports.doc: added bsdi checked out on AIX 4.1.2 11/27/96: README: updated version INSTALL: ./autoconf genc.sno: renamed raise() to raise1() to avoid ANSI raise() function lib/str.c: raise() -> raise1() doc/ports.doc: added HP 720/HP-UX 9.05 version.c: upped version to 0.99.2 checked out on HP-UX 9.05, SunOS 5.4, SunOS 4.1.4 11/24/96: doc/ports.doc: new timings 11/19/96: CHANGES: updated 11/14/96: timing.sno: output $rev$ config/gcc.m4: removed obsolete(?) SNOBOL4_CFLAGS=$(SNOBOL4_C_CFLAGS) config/hpux.m4: changed -D_INCLUDE_POSIX_SOURCE to -D_HPUX_SOURCE 11/13/96: timing, timing.sno: output on genc.sno to stdout, stderr move stdout compare check out of timing.sno allow times +/-1, +/-5% autoconf: avoid gcc on hppa-hpux test/clean.sh: rm *.bin 11/12/96: autoconf: check for sys/ttyio.h, define USE_TTYIO lib/bsd/tty.c: add USE_TTYIO ifdef for Version 10 11/11/96: INSTALL: change tcp.c to inet.c 11/08/96: doc/ports.doc: Ultra 170E, 200MHz PPro 11/06/96: lib/io.c: export io_mkfile(), call io_closeall(), return a value add /udp magic path add {STDOUT,STDERR,TERMIN}_NAME defines add io_findunit(), io_getfp(), export io_closeall() for PML'ed I/O renamed FOPEN_NO_B to NO_FOPEN_B add comments (incl. "close hook" idea) lib/bsd/inet.c: make "priv" open for UDP fail use INADDR_NONE; define our own if none avail Makefile: add xsnobol4 tag, $(TARGET) doc/ports.doc: timing for 110Mhz SS5 11/05/96: doc/ports.doc: timing for netbsd/sparc on 4/110 clock speeds for A3000, 4/100 put allrcs, diffall, tagall under RCS 11/04/96: lib/io.c: fix "update I/O"; add "last" member to struct file and fseek() before direction changes test/tests.in: add update INSTALL: add c-mainbol-users-request addr fixed diffall to handle new files 10/30/96: autoconf: add option processing; --force-gcc, --no-gcc options add check for getopt in stdio.h; add getopt.o $(GETOPT_C) add comments on sgtty use use CCPATH more config/skel.inc, config/bsd43.m4: remove getopt.o $(GETOPT_C) doc/ports.doc: new P75, PPro175(!!) numbers doc/snobol4.1: fix typo checked out fresh copies of all files with old (two digit year) RCS Id's, for cleaner rcsdiffing INSTALL: talk more about what autoconf, Makefile2 do document autoconf options Makefile2.m4: remove old files in SNOLIB_DIR before installing new ones (thanks to Jerry Leichter) 10/29/96: config/hpux-pa.m4: add gcc -mlong-calls comments doc/ports.doc: got an Alpha model number **************** version 0.99.1 (RCS tag BETA4) 10/28/96: autoconf: fix c89 test, add isnan.o for m68k-hp-bsd config/bsd43.m4: remove isnan.o version.c: updated vdate doc/snobol4.1: updated date 10/27/96: lib/io.c: add USE_STDARG_H ifdefs (just in case) 10/26/96: Makefile2.m4: have io.o, load.o depend on $(MAKEFILE) use $(LD_PATH) for load.o INSTALL: no longer need to fuss with io.o, load.o autoconf: use generic/term.c if no unistd.h config/bsd43.m4: set LD_PATH, removed TERM_C timing: search PATH for uname lib/bsd/tty.c, lib/posix/tty.c: use tty_mode(stdin,0,0,0) for tty_save() AND tty_restore()!! lib/io.c: call tty_mode() in io_flushall if FL_TTY set 10/25/96: v311.sil: call io_flushall lib/io.c: add io_flushall, ran comdef, add comments add fp check in io_seek() include ctype.h lib/lexcmp.c: subtract lengths lib/bsd/inet.h: include ctype.h lib/snolib/host.c, lib/snolib/exit.c: call io_flushall autoconf: tweak *bsd* Makefile2.m4: add sunmodel to tar; add leading -'s in install config/bsd43.m4: add getopt, isnan doc/ports.doc: hp370/bsd43, pc532/netbsd include/macros.h: compare first char in LEXEQ macro NOTE: all timings for 0.99.1 include LEXEQ change tested on Mt. Xinu 4.3 10/24/96: INSTALL: updated new: sunmodel script timing: run sunmodel on SunOS, hinv on IRIX add cleanup trap Makefile2.m4: removed syn.c2 from GENERATED 10/23/96: new lib/generic/execute.c new lib/dummy/execute.c removed lib/dummy/execl.c lib/snolib/exit.c: use execute function Makefile2.m4: add execute.o EXECUTE_C, removed execl.o EXECL_C CHANGES: updated README: updated version.c: upped to 0.99.1 tested on SunOS 5.4, IRIX 5.2 10/22/96: new lib/bsd/tty.c new lib/bsd/tty.c new lib/dummy/tty.c lib/posix/tty.c: add USE_TERMIO lib/io.c: free include list at end of compilation new config/irix64.4 autoconf: use irix64.m4 on "IRIX64" add -lsocket if libsocket.a exists add -lnsl if libsocket.a exists and on "SunOS" use dummy/inet.c if no socket.h check for termios.h/termio.h/sgtty.h Makefile2.m4: mention ports.doc doc/porting.ms: updated doc/snobol4.1: fixed lq,rq 10/21/96: lib/io.c: pass recl to tty_mode; use fisatty, tty_close lib/posix/tty.c: add save list, tty_close, tty_mode recl arg add TTY_SAVE_RECL, TTY_RAW ifdefs doc/snobol4.1: updated 10/20/96: lib/io.c: fix so REWIND(5) works on stdin: clear fp->f in io_close lib/posix/tty.c: disable CR/LF translation, signal processing 10/19/96: v311.sil: add SPITBOL SET() function procs, globals: add SET lib/io.c: fix io_open[io] to allow rewind (set "head") add io_seek for SET() add /tcp magic path new lib/bsd/inet.c lib/dummy/inet.c 10/18/96 (my 35th birthday); lib/io.c: implement update, unbuffered, append, raw tty, noecho tty modes are per-unit! lib/posix/tty.c: POSIX.1 tty support lib/endex.c: call tty_restore() lib/init.c: call tty_save() Makefile2.m4: add tty.o TTY_C 10/17/96: hacked up a version to use gcc &&label construct and compile all of v311.sil as a monolithic function (no SYSCUT or UNDF entry points) benchmarked using genc.sno, snocone2.sno, atn.sno 10/15/96: v311.sil: use XCALLC for io_open[io] replace INPUT() 3'rd arg with options string pass options/format to io_open[io] get recl back from io_openi genc.sno: deprecated XOPEN[IO] lib/io.c: implement io_options, io_open[io] take new args implemented "terminal" mode 10/13/96: v311.sil: fixes from SNOBOL4+ to avoid "Internal Errors" on runout 10/12/96: v311.sil: fix error pointer again add COMPCL; don't show syntax errors after compilation done set &ERRTEXT with compilation error messages! 10/11/96: doc/ports.doc: updated v311.sil: don't crash on CODE() syntax errors 10/10/96: doc/ports.doc: updated 10/9/96 test/spit.sno: enabled ? at top level test/tests.in: removed ntrace.sno -- covered in spit.sno performed analysis of functions inlined looked at longjmp'ing out of deep tail-calls (analyzed tail-call depths) **************** version 0.99 (RCS tag BETA3) 10/7/96 TODO: updated CHANGES: updated INSTALL: wrote it doc/snobol4.1: updated doc/ports.doc: updated autoconf: fix CONFIG_GUESS; add netbsd-alpha, osf1-alpha add CCPATH (was GCCPATH) config/alpha.m4: split out from osf1.m4 config/gcc.m4: let autoconf do CC= new: config/netbsd-alpha.m4 config/osf1-alpha.m4 lib/bsd/load.c: undef N_SIZE for NetBSD lib/init.c: save signal number in SIGNCL v311.sil: display signam number (SIGNCL) from SYSCUT config.guess: latest version; added romp-ibm-aos Makefile: add spotless, install Makefile2.m4: add spotless, install tested on AOS/ACIS 4.3; NetBSD/Alpha 1.2 version.c: upped to 0.99 10/6/96 CHANGES: new INSTALL: empty place holder doc/porting.ms: updated Makefile2.m4: add CHANGES INSTALL to tar add syn.c, syn.c2 back to tar doc/ports.doc: updated tested on SunOS 4.1.3U1, 4.1.4, 5.4, 5.5; HP-UX 10.10; IRIX 5.2; AIX 4.1; OSF/1 3.2 **************** version 0.98.5 10/5/96 README: updated add bsplitu.c autoconf: ADD_OBJS/SRCS for bcopy, bzero flushed ANSI_STRINGS var; moved back to ADD_CPPFLAGS added SYSDEFS to sys.o (for -DOSNAME or -DHWNAME) Makefile2.m4: flushed ANSI_STRINGS var added SYSDEFS added rules for dummy files: execl.o getenv.o system.o worked on "make tar" use bsplitu in "make uu" config/skel.inc: removed ADD_OBJS/SRCS for bcopy, bzero lib/init.c: fix usage; show name, version, date, descr size new lib/dummy/{execl,getenv,system}.c doc/snobol4.1: updated 10/4/96 new lib/generic/sys.c, lib/posix/sys.c lib/snolib/host.c: use osname(), hwname() autoconf: check for ranlib, set RANLIB check for sys/utsname.h; set SYS_C add CONFIG_GUESS, HAVE_UNISTD_H, ANSI_STRINGS Makefile2.m4: add SYS_C, sys.o use CONFIG_GUESS, HAVE_UNISTD_H, ANSI_STRINGS config/skel.inc: removed -DANSI_STRINGS Makefile: add local-config comment to Makefile2 doc/porting.ms: updated v311.sil: more comment tweaking moved INCSTK to ICLBLK (sir.sno GC crashed compiler) increased FNLIST free space to 20 functions version.c: always include macros.h upped version to 0.98.5 10/2/96 doc/load.sno: add polymorphic args/returns include/load.h: add RETTYPE macro autoconf: add comments about local-config to generated config.m4 Makefile2.m4: add SNOLIB_SRCS for make depend; quote include for pv lib/init.c: round ndynamic, pmstack down to even number of descrs lib/pml.c: fix const pointer, rename PMLOAD to PMPROTO lib/snolib/host.c: use RETTYPE lib/snolib/exit.c: improve comments test/tests.in: add ntrace pml.h: add FILE() RENAME() DELETE(); changed PMLOAD to PMPROTO include/macros.h: removed D_XXX; declare ostack as global descr v311.sil: fixed space at end of FNLIST; upped STSIZE from 1000 to 1500 dynamic allocation slows OFCHK! 9/30/96 v311.sil: don't zap FILENM at XLATND in case only stmt is END! use getpmproto function lib/pml.c: made arrays const add getpmproto function include/path.h removed SNOLIB_A, SNOLIB_DIR defaults Makefile2.m4: fixed SNOLIB_A path add SNOLIB_DEFS (supply SNOLIB_DIR and SNOLIB_A values) add *.a to disposables **************** 0.98.4 9/29/96 v311.sil, procs, globals: renamed EXP to EXPOP renamed lib/{dummy,generic}/exp.c to lib/{dummy,generic}/expops.c autoconfig: include contents of local-config file, if any genc.sno: output '#define INLINING' param.h: add ifdef INLINING; inline hash.c pml.h: add HOST, EXIT, LOG, EXP, CHOP, SQRT, SIN, COS, TAN add NO_PML_{EXIT,HOST,REAL,TRIG}, ran comdef lib/hash.c: allow inlining lib/io.c: use HAVE_UNISTD_H, check for L_SET moved snolib/*.c to lib/snolib/ Makefile2.m4: add AUX_OBJS, AUX_SRCS, SNOLIB_A add SNOLIB_A to regular link add -r flag (back?) to make clean add warning for make realclean renamed exp.c to expops.c add rules to build snolib.a moved AUX_OBJS to snolib.a version.c: 0.98.4 9/28/96 doc/snobol4.1: ran ispell 9/27/96 doc/snobol4.1: updated doc/Makefile: use groff; add snobol4.html, snobol4.ps, porting.html doc/design.doc: updated 9/25/96 doc/snobol4.1: updated added sin.c, cos.c, tan.c, exp.c, log.c, sqrt.c, chop.c to snolib v311.sil: fixed autoload temp usage version.c: add snoname, made version strings "const" again Makefile2.m4: add RANLIB, compile pv with -I./include lib/init.c: added -h lib/io.c: check SNOLIB for INCLUDE files remove trailing NUL's in STPRNT when compiling plug NUL's with spaces in place Listings finally tamed? 9/24/96 lib/init.c: cleaned up usage message; fixed getk(), -p/-D alloc have math_catch & err_catch take int arg genc.sno: pass hash() two args lib/hash.c: take two args; added lots of comments tried different ascention calculations, no big wins Makefile2.m4: added DATA_INIT_CFLAGS removed unused symlinks config/posix.m4, config/irix.m4 timing: take snobol path and args timing.sno: get version, added CHECKHZ(), DIFF array add yet another time format for m68k-hpux8.0 indicate line number of diff failure handle blank line at end of diff include/snotypes.h: added VFLD_T lib/io.c: use strncpy, S_L for %v/%S in io_printf doc/ports.doc: updated config/osf1.m4: set NO_BITFIELDS, use double for FLOAT_T v311.sil: add autoload!! procs: add LOAD2 pml.c: add PMPROTO macro for autoload **************** version 0.98.3? 9/23/96 genc.sno: twiddle &INPUT (reduces some overhead) ports.doc: updated autoconf: (re)set CC when cc is gcc! show gcc version added HAVE_UNISTD_H define lib/init.c: cleanup, implemented -P (malloc pmstack) added getk(), -d takes bytes, k = 1024 v311.sil: removed PDLBLK (now malloced in init) dropped SPDLDZ back to 5000 tried doubling string hash table size (to 512) no big win (<2%); left it alone Makefile2.m4: updated -d arg 9/22/96 v311.sil: use MOVA for &LAST(FILE|LINE) for speed handle tabs in error pointer code, moved FILCHK include file & line in compiler error messages test/tests.in: add line.sno err.sno reverse.sno lib/io.c: trim STPRNT output while compiling doc/snobol4.1: updated Makefile2.m4: fixed make tar version.c: upped version to 0.98.3 9/21/96 v311.sil: added &PARM. fixed error number typos from yesterday. lib/init.c: added getparm() lib/date.c: use full julian year Makefile2.m4: removed vfprintf config/bsd43.m4 removed vfprintf deleted lib/auxil/vfprintf doc/snobol4.1: updated **************** version 0.98.2 9/19/96 & 9/20/96 v311.sil: canonicalized lines with two edit numbers fixed some comment typos don't increment &STCOUNT if &STLIMIT < 0 keep seperate stmt count for stats output add errors for bad INCLUDE, INCLUDE open error, missing END add &LINE &FILE and -LINE for real source line in errors use io_file to get initial (and subsequent filenms) add S4+ CTLADV proc, use for INCLUDE and LINE processing put all control card tests in a row add &LASTLINE &LASTFILE &ERRTEXT keywords changed formats; added file/line to errors lib/io.c: add NO_OFF_T, io_file removed quote removal in io_include implement conversions for io_printf for var/spec lib/init.c: implemented -M option for multifile input added SIGARG_T to SYSCUT prototype for picky compilers lib/lexcmp.c: fix for unequal string lengths by Keith Waclena README: added Keith Waclena test/tests.in: add lgt (by Keith Waclena) procs: add CTLADV, FILCHK, COMP1 genc.sno: put &TRIM = 1 back for SNOBOL4+, allow _ in args pass addrs to io_printf, no more hacks for floats config/hpux-pa.m4: add -D_INCLUDE_POSIX_SOURCE for non gcc builds config/vms/build.com, config/vms/descrip.mms: add NO_OFF_T, SUBSTR defs autoconf: added undefine hpux, interferes with include file names! param.h include/macros.h: declare cstack only once (in snobol4.c) cc-M: reworked for #line output (AIX) Makefile2.m4: make GENERATED files newer than G2 versions add comments, cleanup & quoting in kitting compile, use pv version.c: moved version, ifdef MAIN back (for VMS) upped version to 0.98.2 9/18/96 lib/auxil/getopt.c: fix ERR() for SUNpro (Sol2 fix) configure: fixed echo to stderr (Sol2 fix) doc/ports.doc: updated (new section for 0.98+) gendata.sno, genc.sno, gendep.sno: use TERMINAL, flush STDERR read SIL source from stdin Makefile2.m4: add SIL=, gendata.sno, genc.sno, gendep.sno read stdin timing: genc.sno takes SIL from stdin v311.sil: add REVERSE(), SUBSTR(), LEQ(), LGE(), LLE(), LLT(), LNE() globals: add REVERSE, SUBSTR, LEQ, LGE, LLE, LLT, LNE lib/str.c: support for REVERSE(), SUBSTR() test/tests.in: removed punch, added substr, lexcmp, space, space2 Makefile: renamed configure to autoconf **************** version 0.98.1 9/17/96 lib/tree.c: fixed INSERT (from SNOBOL4+) lib/dump.c: added dumpcode() added test/ops.sno now runs all GNAT SPITBOL programs version.c: use VERS/DATE, changed name to C-MAINBOL Makefile2.m4: Added VERS/VDATE (for version.c), use in make tar upped version to 0.98.1 9/12/96 v311.sil: add TERMINAL variable associations for input & output include/units.h: UNITT for TERMINAL input lib/posix/term.c, lib/generic/term.c, lib/vms/term.c: term_input() lib/io.c: use term_input() to setup UNITT lib/hash.c: only look at first and last four! Thanks Mark!! Makefile2.m4: add TERM_C/term.c/term.o config/bsd43.m4; use generic/term.c config/vms/build.com, config/vms/descrip.mms; add term.c/term.o 9/11/96 v311.sil: fix sort; edit [PLB31] added one MULTC too many 9/8/96 v311.sil: only case fold strings in FIELD (fix from SNOBOL4+) upped SPLDSZ to 10k for snocone.sno lib/init.c: parameters support (-u and --) used by "external" host.c lib/stream.c: use unsigned char in stream/plugtb; ANY/NOTANY/BREAK/BREAKX/SPAN with 8-bit bytes were causing PREVIOUS table to get trashed! Makefile2.m4: make both isnobol4.c and snobol4.c PRECIOUS 9/6/96 v311.sil: FREEZE()/THAW(), new table access code from SNOBOL4+ added -EXECUTE/-NOEXECUTE control cards ran untabify (skipped RCS History) moved all [edit] ids to column 64+ moved SORT to Arrays, Tables etc section include/snotyoes.h: add FRZN bit lib/ansi/convert.c, lib/generic/convert.c: strip leading spaces in spcint()/spreal() under SPITCL. Append terminator if using scanf() to detect if whole string was accepted (necessary for NUMERIC conversion) lib/init.c: updated usage(), added -n, parse up 'k' suffix on -d genc.sno: use FREEZE()/THAW(); 15% reduction in execute time! Makefile2.m4: added COPT, use -dk doc/snobol4.1: updated globals: updated **************** version 0.98 9/4/96 v311.sil: &STLIMIT < 0 means no limit, default to -1 always case fold control card keywords disable stats by default default listing off (was being hit by init.c) removed EXPCL; default SPITCL to on fixed SPITBOL ? operator at top level lib/init.c: make -p toggle SPITCL, removed LISTCL hack gen{c,data,dep,syn}.sno: remove refs to &STLIMIT (and &TRIM) inline.sno: fix comment typo gensyn.sno, syntab.h: output syn.c2; made acts const tried making syntab's const; fails for SNABTB genc.sno: quiet warnings from PLUSOPS AEQLIC usage lib/pml.c: fix ifdef STDC typo timing: add/subtract -s switches version.c: upped to vers to 0.98, added "ifdef MAIN" Makefile2.m4: remove .c2/h2 files, added syn.c to SRCS (for depend) changed .c.TMP to .c2 9/3/96 v311.sil: Add SPITBOL operators (under -PLUSOPS) from SNOBOL4+; embeded scan, assign, scan/replace, selection (comma), NUMERIC conversion. value tracing for pattern match assignment. allow multiple array/table accesses. syntax.tbl: added SPITBOL binop table, exponents on REALs gensyn.sno: upped STLIMIT, added EXP char class gendep.sno: fixed SPREAL, added SPCINT procs: updated timing: run config.guess gendata.sno: output data.h2 data.c2 equ.h2 data_init.h2 Makefile2.m4: cmp || cp for .h2/c2 files globals: added CMA configure: include config.guess output lib/init.c: added -p option test/run.sh: pass additional ARGS 8/31/96 v311.sil Add SPITBOL features with code from SNOBOL4+ and Minnesota SNOBOL4; CHAR(), RPAD()/LPAD(), BREAKX(), SORT()/RSORT(). lib/str.c: added pad() genc.sno: added VCOMPC and NANCHK macros, optimize three-way with three different labels handle boolean with no labels (for XCALLC) output braces around escaped code renamed global.procs to globals gendep.sno: handle %{ %}, XCALLC, RCOMP, NANCHK, upped &STLIMIT Makefile2.m4: added isnan, configure, config.guess, globals added lib/dummy/isnan.c updated procs, doc/snobol4.1 8/29/96 Tested on DS3100 (MIPS Ultrix -- 4.3 with a COFF) added config/ultrix-mips.m4 updated ports.doc, configure 8/25/96 Makefile: use new configure script configure: create config.m4 from thin air, using config.guess config.guess: GNU script 8/19/96 Makefile2.m4: renamed lib/aux/ to lib/auxil/ AUX is a reserved filename in DOS(?!) thanks to Mark Emmer genc.sno: added XCALLC, %{ %}, allow LC in arguments added -CASE 0 (try and win back some speed) v311.sno: added real VARVUP, VPXPTR (Thanks to Mark Emmer) procs: added VPXPTR str.c: added raise2 Makefile2.m4: leave test.out at top level! 7/28/95 timing: include config.m4 contents doc/snobol4.1: update &DUMP &ABEND and &CODE behaviors v311.sil: add VARVUP (copy of VARVAL for now) 5/15/95 hp4xx port (3/95 -pb): config/hpux-68k.m4 gendata.sno: cast values for D_V() updated ports.doc 3/15/85 config/nextstep3.m4 (Thanks to Leigh Smith) updated ports.doc added tests/rewind1 3/7/95 lib/io.c: struct unit: better rewind (Thanks to Leigh Smith) lib/pml.c: fix for nextstep compilation (Thanks to Leigh Smith) 2/10/95 lib/init.c, include/macros.h: implement [CLR_]MATH_ERROR() 2/3/95 genc.sno: port improvements from experimental version: SELBRA() omits redundant labels new PLUS() functions omits "+ 0" include "else" in DOCMP2 and DOBOOL generate SHORTN/FSHRTN in-line Net change in snobol4.c size: +35 chars include/macros.h: removed SHORTN/FSHRTN Makefile2.m4: Add -b flag to SNO 1/25/95 Makefile2.m4 config/{gcc,aix-rs6000,hpux,hpux-pa,skel.inc}.m4 new ADD_XXX m4 macros 1/24/95 lib/aux/getopt.c: fix endless comment Makefile2.m4: include CONFIG_CFLAGS in "make depend" **************** BETA2 patch2 version 0.91.2 (tag BETA2_patch2) 1/20/95 lib/io.c: check for std{in,out,err} before fclose() 1/13/95 config/borland/build.bat: added -DANSI_STRINGS lib/aux/getopt.c: include h.h (for index) 1/10/95 config/vms/build.com: use CFLAGS variable lib/io.c: hacks for "-", "/dev/stdin" and "/dev/stdout", cleanup genc.sno: generate return after endex call! timing.sno: added stmts/sec 1/7/95 Merged in DOS Port (using 32-bit Borland C++ 4.0) by Mark Emmer! lib/generic/convert.c: check for empty strings, changed ifdefs lib/init.c: ifdef SIGBUS new files: lib/borland/mstime.c config/borland/build.bat config/borland/snobol4.lnk Alpha fixes; don't need "long long" lib/intspc.c: use %ld lib/realst.c: use %lf lib/ordvst.c: declare malloc() as returning pointer 1/6/95 checked in 11/3/94 v311.sno, tests README, History: updated/fixed ** Tested on AXP OpenVMS and DECC (1/4/94); lib/init.c: fix VMS typo lib/aux/getopt.c: use stdio.h lib/vms/getredirect.c: use unixio.h with DECC include/h.h: add index/bcmp defines under ANSI_STRINGS new files: config/vms/descrip.mms config/vms/build.com ** Ported to AXP OSF/1 (1/5/94) -- has 64-bit integers!! Makefile2.m4; moved .PRECIOUS after first real target make TESTED depend snobol4.c Fix pointer/int sloppiness (sizeof(int) < sizeof(void*))!! gensyn.sno; cast pointers to int_t, move syntab.h include include/syntab.h; make put an int_t to hold pointers! include/macros.h; fix various stack macros casting to (int)!!! lib/stream.c; declare "tok" as "int_t" new files: config/osf1-alpha.h config/osf1-alpha-cc.h 11/3/94 lib/ansi/mstime.c: ansi only version doc/porting.ms: update for above config/ansi.m4: config to use ansi mstime function config/generic.m4: added a comment v311.sil: quick fix for local variable case folding test/tests.in test/local.{sno,ref} tests for local var case folding 9/14/94 timing, timing.sno: cleanup/improvements config/hpux-pa-cc.m4: new config for HPUX with native C compiler lib/date.c: tweak for VMS compilation (Martin Waller) charset.c: fix for SunOS5 SC3.0 compiler README: updated 9/13/94 timing: AFS doesn't allow hard links across directories (Rik Faith) 9/3/94 porting.ms, snobol4.1, load.doc, goals.doc, design.doc: ran ispell doc/Makefile: update for Solaris 2 9/2/94 README: fixed spellings! 8/8/94 lib/ordvst: got rid of a warning config/posix-cc.m4: new. used/tested on SunOS 5.3 config/sunos5.m4: now a symlink to posix.m4 charset.c: make ALPHA unsigned (for Sun SC3.0 compiler) 8/1/94 lib/ordvst.c: real code, thanks to Martin D. Waller!! README, TODO: updated test/a.ref, test/dump.ref: updated 7/24/94 lib/init.c: fix call to getredirect() (Thanks to Martin Waller) 7/7/95 v311.sil, global.procs: Added FAILG label so FAIL can be inlined. timing.sno: more tweaks for AIX config/aix-rs6000.m4: new file (thanks to Phillip Lee Thomas) Makefile2.m4: fixed awk command **************** BETA2 patch1 version 0.91.1 (RCS tag BETA2_patch1) 7/5/94 h.h: only define NULL if not already defined version.c: update for patch1 6/30/94 more cleanup of timing.sno, added start of diff tag line fixed bsd/load.c when space in pathname 6/29/94 version.c: clean up for non-ansi compilation timing.sno: Output bad diff results, loosten ms/stmt check **************** Second Beta release (RCS tag BETA2) version 0.91 6/24/94 Made isnobol4 the default Added label RTNL3G so RTNUL3 can be inlined Use register pointer to "res" in data_init.c Updated load.doc Use awk to reverse tsort input (instead of reverse on output) Fixed sense of DO_UFCHK! Updated ports.doc 6/23/94 Include both snobol4.c and isnobol4.c in kit Use register in data_init.c Implemented TRACE_DEPTH Ran "prof" profiling Inline pair.c!! 6/21/94 Cleaned up config/ dir. Removed all "cc" configs. Turned on -finline-functions by default Added Makefile2 rules for isnobol4.c Added SNOBOL4 variable 6/20/94 Fixed problem found by Phillip Thomas; Restart "card" processing after a semi. Allows comment and control lines after a semi. Created scripts for analysis of inlining results. 6/19/94 Added {generic,posix}-cc.m4 configs Use skel.inc in generic configs Added AUX_{SRC,OBJ}, PML_OBJ Played with inlining 6/17/94 Dropped compiler CARDSZ down to 132 for sane listings 6/15/94 Upped compiler CARDSZ and default input size from 80 to 1024. Created snolib/{breakx,lcmp,pad,sort,substr}.sno, {fork,system,sprintf}.c bsd/load.c; use PML before trying real load. use SNOLIB env var. 6/13/94 Prevent multiple inclusions trim include file names (after multiple inclusion test) 6/12/94 Implemented -INCLUDE/-COPY Use RETxxx macros in snolib 6/10/94 Added RETxxx macros to load.h 6/9/94 Gave WIPS talk at Boston Usenix Created configs for aix, linux, irix, sunos5 (all just include posix.m4) 6/6/94 Run timing script in regression test (runs genc)!! UFCHK no longer on by default 6/4/94 Created snolib (DELETE, FILE and RENAME functions) Call getredirect() under vms 6/3/94 Turned off output NUL translation after compiler runs Try PML if ld() fails in bsd/load.c 6/2/94 Created load.h LOAD_PROTO, LA_xxx macros Updated load.doc, sqrt.c Implemented "Poor Man's LOAD" for linked in functions!! Made REPLACE() 8-bit clean Fixed padding on input problem 6/1/94 Started man page Made 8-bit clean Implemented simple pipe open 5/31/94 Fixed/improved make tar; include "bugs" dir Updated porting.ms Added vms/getredirect.c Handle errors in genc.sno Avoid .h.new (for VMS) Updated ports.doc for LINUX Started on autoconfig script 5/30/94 Fixed hp*.m4 include path Updated ports.doc for hp710 5/29/94 Finished &LCASE &UCASE Fixed -CASE n 5/28/94 Updated ports.doc for HP, SGI, IBM Implemented -f option Added ; and ! as comment chars (per SITBOL) Added &LCASE, &UCASE 5/27/94 Allow external redefinition of HZ in generic/mstime.c Invalidate self pointer in lib/bsd/load.c unload() Changed types.h to snotypes.h to avoid include confusion on VMS?! 5/26/94 Supress padding once compliation is over Turned off &TRIM by default Caught more CASE sensitivities Accept either case for S/F gotos 5/25/94 moved Un*x version banner to version.c implemented case insensitivity -CASE/&CASE implemented DOBOOL() in genc for real 5/24/94 converted Makefile2, config files to use m4 5/23/94 cleaned up bsd load.c, for use on bsd44 systems added SIGFUNC_T to init.c, made default void **************** First Beta release (RCS tag BETA1) version 0.90 2/18/94 *** First Beta release (RCStag BETA1) updated README, late entry in ports.doc include tests in tar! 1/25/94 updated README, include TODO.soon in tar 1/24/94 improved porting.doc run regression test from Makefile2 added "make uu" 1/18/94 wrote porting.doc, put all doc files under RCS added getopt to Makefile2.cpp, generic.h 1/16/94 set exit code on fatal errors (including when execution aborted due to -NOERRORS) 1/8/94 output UNIXF UNIXF2 at startup make 'LEFT' default listing side output error name string to stderr implemented -b (BANRCL), -s (STATCL) 1/7/94 cleaned up config/ files. added bsd43, sony_news, posix checked in changes from 1/3 added standards info to various lib files updated README (was README.alpha) for beta test split intspc.c realst.c from convert.c caseified formats, converted to printf() style caseified misc strings 1/3/94 Brought up on Sony News 800 (68020) sqrt.sno works (no changes)! Tested on hp9000s800 (added posix/mstime.c) Brought up on Mt. Xinu hp300 4.3 BSD and IBM RT ACIS 4.3 added generic/vfprintf.c, generic/convert.c use mktemp() in load.c 12/30/93 cleaned up gensyn.sno output made format.c strings const did compiler timings (tried gcc -O2) did profiling. do DCMP() inline!! do LOCAPV inline? (called 6.7 million times by genc.sno)!! Created Makefile2, lib subdirs (generic, bsd, dummy) Flushed lib/Makefile 12/29/93 cleaned up gendata.sno output, output formats cleaned up include file Id lines 12/28/93 created (empty) mlink.h, mdata.h renamed headers.h to parms.h created dynamic.c include charset.c into init.c types.h cleanup; flushed flags.h created VFLD/FFLD macros made f field char, v field a 24 bit bitfield! (no time penalty on sparc!?) 12/27/93 Announced alpha dist (finally got a place to put it)! Have gendata.sno (was data.sno) generate data.h, data.c, init.h Created init.c Compiled and ran on HP 9000/8xx (PA RISC) machine! **************** First Alpha release (RCS tag ALPHA1) 12/9/93 *** First Alpha release (RCS tag ALPHA1) Updated usage message, README.alpha, Make tar put this (and other files) under RCS 12/4/93 Implemented -NOERRORS/-ERRORS control cards (default -NOERRORS) to supress/allow exeution of programs with compile errors. Implemented -k command line switch (like -ERRORS) 12/3/93 output compilation error messages to stderr as well as listing accept '#' and '|' as start of line comments (can now use '#!' magic number for scripts!) 11/27/93 revised README.alpha wrote LOAD.doc sqrt.c sqrt.c 11/26/93 re-implemented io.c (file lists, no more io_unit struct) take file names on command line! implement -r flag changed -D to -d; default now 25000 now that GC works! 11/25/93 fixed RSETFI; genc runs with 25K descrs (with 69 GC's)!! 11/24/93 wrote dump.c 11/23/93 fixed lvalue: comment.sno works atn.sno produces same SIZED (chars/lines) output as spitbol 11/22/93 fixed linkor: alt1/2.sno work found problem in atn.sno (comment.sno) atn.sno gets pattern stack overflow (runs with SPDLSZ of 5000) atn.sno dies after table to array conversion (convert.sno) fixed MOVDIC: convert.sno works atn.sno runs to completion (sans comment problem) but output differs from spitbol?! w/ 200K descrs genc dies in last few lines (after 2 GCs) runs to completion with "only" 250K descrs (1 GC) 11/19/93 implemented expint() exreal() found smallest proram with atn.sno bug (alt2.sno) create/use LEXEQ() macro! worked on README.alpha, DESIGN genstg.sno now creates equ.h, stgtyp.c, stg.h (flushed equ.awk, stgtyp.h stgh.awk) 11/18/93 isolated match problem with atn.sno 11/17/93 fixed MNREAL/MNSINT F/V output created IND_ARR, INDENTX, UNINDENT in genc.sno 11/16/93 fixed locap{v,t} F/V output 11/15/93 ran genstg under mainbol (w/ -D1M) after consolidating patterns 11/13/93 ran genstg under mainbol (w/ -D2M) 11/10/93 implemented filename support ala Catspaw (Vanilla) SNOBOL4(+)!! added XOPENI, XOPENO, XECOMP send all completion messages to stderr (PUNCH) ran gensyn under mainbol 11/9/93 wrote, debugged load() and link() added CLR_S_UNUSED() to no avail 11/8/93 clear V&F in DATE, MSTIME, SETAV, INTSP, REALSP, MULTC GC generally runs, but leaves bad pointers 11/6/93 fixed lengths in MOVBLK and ZERBLK genc ran for the first time (generated code until LOCA1) died in GCM runs to completion with -D1000000 11/5/93 implemented GETLTH by the book collect.sno runs (nothing to collect) 11/4/93 fixed order of spec members, GC marking pass now runs upped number of user defined functions from 10 to 50 upped OCASIZ from 1500 to 15000! implemented command line options 11/3/93 diff.sno runs added junk PUSH() to SAVSTK() -- GC expects RCALL to use stack!! 11/2/93 immed value assignment working (fixed assignment order in MAKNOD) cond value assignment working (output PUTSPC!!) put v311.sil, syntax.tbl under RCS got rid of IDENT columns!!! cleaned up genc, now parsed by mainbol!! worked on POUND_LINE match replacement working (fixed SPUSH/SPOP again!!) implemented rplace() library routine 11/1/93 have gensyn process comments last SIL ops (ADJUST, ORDVST, RPLACE) handled in genc function args working (fixed PSTACK *PUSH, *POP) implemented getbal library routine 10/29/93 complex patterns working (fixed CPYPAT) 10/28/93 simple patterns working (but not pattern concatenation) implemented CLERTB, PLUGTB, DATE, LINK, MOVBLK, REMSP, LOAD, UNLOAD 10/27/93 implemented; misc I/O (BKSPCE ENFILE REWIND) code tree ops (ADDSIB ADDSON INSERT) pattern ops (MAKNOD LINKOR value pair ops (LOCAPT LOCAPV) others; ADDLG BKSIZE CHKVAL EXPINT EXREAL LCOMP LVALUE MOVDIC PUTSPC SUBSP TOP TRIMSP runs simple programs (loops.sno runs ~15 x slower than SPITBOL)!! 10/25/93 recieved S4D58 report (SIL reference manual) from Dr. Griswold implemented SETVA 10/24/93 implemented INTSPC, REALST, SHORTN, SPCINT, SPREAL END recognized! 10/20/93 implemented FSHRTN "END" not recognized 10/19/93 implemented input and output ops (STPRNT, STREAD) implemented STREAM! 10/18/93 implemented APDSP, LOCSP, PUTVC initialization code starts to run 10/17/93 implemeted SETVC, VCMPIC 10/15/93 implemented ENDEX, LEXCMP, VARID 10/14/93 implemented GETSP, LEQLC 10/13?/93 implemented ZERBLK 10/8/93 implemented GETLG, SETSP 10/5/93 - 10/7/93 implemented INIT, MSTIME, PUTLG, PUTSPC, GETSPC MOVDIC, GETLTH, PSTACK 8/92 46 ops remaining (on 522 lines of SIL) 7/24/92 implemented: PUTAC, GETAC, SETFI, RSETFI, DIVIDE, BRANIC, INCRV MNSINT, RLINT, ADREAL, SBREAL, MPREAL, ADREAL, DVREAL 7/22/92 implemented: int math: SUM, SUBTRT, MULT, MULTC SETAV, SETVC, SETLC, SPEC, TESTFI, MOVA, MNREAL to 7/21/92 71 ops remaining 5/92 C pattern matching working (see 3/90) 3/91 Started genc.sno using Catspaw SPARC SPITBOL 11/90 Found out about Catspaw SPARC SPITBOL from a Catspaw mailing. 7/90 Started work at Shiva Corp. 3/90 Started on C implementation of SNOBOL patterns using Gimpel's CACM article (and Orange book). 12/89 thru 3/90 Worked on C versions of syn, genc using "traditional" tools awk/lex/yacc 11/89 Got report on old/new naming conventions from Dr. Griswold began studying SIL source in earnest. 10/89 Got (a rare) copy of "The Macro Implementation of SNOBOL4" book from Catspaw. late 1988? Found Vanilla SNOBOL4 (including Catspaw book order form) and SIL sources on cs.arizona.edu Fall 1987 Tried using OS/360 MAINBOL to run questionnare analyzer Fall 1986 BUCS20 unplugged, lost access to SITBOL for first time in 7 yrs Fall 1985 Started work at BU full time. Spring 1985 Used SITBOL to analyze questionnaires from Psychology directed study on computer mediated communication. Fall 1983 Returned to school full time at BU, helped manage BUCS20 (2060) Fall 1981 Started at DEC/LCG FORTRAN-10/20 group (which used SITBOL to perform FORTRAN regression tests) Fall 1979 Learned SNOBOL4 using SITBOL freshman year at Stevens Tech Used to find errors (typos, mismatched commons) in FORTRAN programs