Subject: CVS commit: pkgsrc/lang/snobol
From: David A. Holland
Date: 2008-07-14 06:21:39
Message id: 20080714042139.7213E175D0@cvs.netbsd.org

Log Message:
Update lang/snobol to 1.1.
Note that the tcl bindings are not (yet) built. Next time...

pkgsrc changes not trivial but should be invisible.

Changelog:

Changes since 1.0 release;
=========================
	Added new (experimental) builtin function groups:
		"DBM" -- "ndbm" keyed database access
		"COM" -- COM/OLE Automation on Win32
		"STCL" -- SNOBOL/Tcl interface (optional)
	New library "dynamic.sno" to help compile/link
		dynamicly loadable extensions.
	Added HTTP.POST function to http.sno
	Handle environments where pointers can have high order bit set
		Linux 2.6 kernels in Fedora Core, SuSE 10 distributions
	Avoid broken "install" utilities
	autoconf compatibility: Honor CC, CFLAGS, CPPFLAGS,
		LDFLAGS, DESTDIR environment variables.
	Fix compilation on pre-panther OSX
	Fix second argument to DEFINE(): was not case folded!
	Fix backtracking over unevaluated expressions
	Source &FILE and &LINE shown in TRACE output
	Experimental: GC stats & tracing (-g on command line, &GTRACE keyword)
	Completed support for "memory I/O" when CSNOBOL4 used as a library!
	Added "PREDICATE" and "SYSPRED" return types in wrapper.sno

Changes since 0.99.44 release;
=============================
	Added snolib(3) man page for SNOBOL4 library routines
	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!
	command line:
		-S option to enlarge interpreter stack
	configure:
		added --mandir & --bindir
	IPv6 Support (both client and server)
	bi-directional "pipe" I/O on systems with sockets
	"privileged" port binding for UDP
	Lots of cleanup!
		DJGPP (DOS gcc) fixes
		default to -O3 with gcc
		add C prototypes for all functions
			(function declarations still "K&R" style)
		MINGW (Win32 gcc) fixes
		Fix LOAD() on Darwin (MacOS X)
		Fix timing script on Debian
	Ported to HP-UX/IA64
	VMS:	LOAD() support (not tested)
		Compilation on VMS7.3
		support magic pathnames "/dev/null" and "/dev/tty"
	Win32:	native (low overhead) support for character console I/O
		support magic pathnames "/dev/null" and "/dev/tty"
		fixed UDP I/O
	Fix for parallel make (GNU make, BSD make)
	Compilation under MS Visual Studio .NET 2003
		Make struct descr packable (BITFIELDS_SAME_TYPE)
	Check for oversize integer constants (ERANGE from strtol())

Changes since 0.99.4 release;
============================

	Command line:
		-d (dynamic region size) and -M (pattern match stack size)
			now take values in descriptors
		-v shows CSNOBOL4 version

	Increased default dynamic space to 64K descriptors

	Fix faulty lexical comparison function optimzations for null string

	Performance improvments;
		New string hash function
		(reduced both compilation and run time of genc.sno by 5%)

		Optimized most common case (CONTIN actions) in
		"stream" operation used for lexical analysis.
		(reduced compilation time of genc.sno by 8%)

		Merged all scanner (pattern matching) functions into
		single C function (eliminates mutual recursion, stack
		overflows)
			genc runtime reduced 15%
			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%

		Made pattern building functions (lib/pat.c) inlinable
			(8% reduction in genc.sno compile time)

		Eliminate space padding on lines read by compiler
			(reduced genc.sno compile time by 65%)

		Raised default C compiler optimization levels

	Default &MAXLNGTH to largest possible string

	Documentation:
		README file describes available includes

		Include PDF of manual page

	Implement fatal "Output error" for output, ENDFILE() errors

	Configuration script re-write;
		Eliminate static config files & autoconf script
		configure generates config.m4 and config.h
		(with all defines) for use by loadable functions

	New configuration options;
	**** see "INSTALL" file for more information ****
	--add-define=
		Add a #define to config.h (visible to external functions)
	--double
		EXPERIMENTAL option to use C "double" for SNOBOL4 REAL data type
	--fast
		Architecture specific optimizations on native compilers
	--longlong
		EXPERIMENTAL!!
		try to use C "long long" (64-bit integer) for INTEGER datatype
		when longs/pointers are only 32-bits (ILP32 data model).
	--lp64
		Request use of 64-bit long/pointer data model
		if available on this architecture, and not the default.
	--no-opt
		Compile without optimization

	New SNOBOL library files (see README);
		compatibility libraries:
			fence.sno, logic.sno, not.sno
			spitbol.sno, snobol4+.sno
		HOST() function codes:
			host.sno
		URL (http:, ftp:, file:) access functions

	Use large files (64-bit offsets) where available.  Allows access
		and creation of files larger than 2GB

	New functions;
		FUNCTION() -- predicate to test if a function is defined
			** EXPERIMENTAL **
		LABEL() -- predicate to test if a label is defined
			idea from Steve Duff's version of Macro SPITBOL
		ORD() -- inverse of CHAR()
		SERV_LISTEN() -- act as TCP server
		SSET() -- scaled SET() allow large files when INTEGER is 32bits
		VDIFFER() -- returns first arg if two arguments DIFFER()
			idea from Steve Duff's version of Macro SPITBOL

	Extended HOST() functions (see host.sno) for system diagnosis

	HOST() function will accept REAL or integer encoded STRING args

	TIME() function now returns REAL datatype allows both better
		resolution (for small values) and larger range.  Using
		32-bit floats, runtimes larger than four and a half
		hours will lose resolution.

	Statistics reports compiler and execution times as REAL numbers
		Average statement runtime reported in microseconds (us).

	Allow a REAL any place an INTEGER is required (from SNOBOL4+)
		Contexts include TABLE(),  ITEM(),  array  indices,
		INPUT(),  OUTPUT(),  SET(), keyword values, CHAR(),
		RPAD(), LPAD(), FIELD(), COLLECT(), DUMP(), DUPL(),
		OPSYN(), and SUBSTR()

	load.h updates;
		all RETxxx macros safe in any context
		RETSTR() takes single argument, allows NULL pointer
		RETSTR2() has old RETSTR() functionality
		RETINT() and RETREAL() always set return data type.

	All include files needed to build loadable functions
		installed in SNOLIB directory

	Include BSD tsort program; allow builds from scratch
		on platforms with GNU tsort (Linux, Cygwin)

	New ports;
		Ported to Darwin (MacOS X)

		Ported to Cygwin (http://cygwin.com), a free Unix emulation
			environment for Windows.

		Attempt at native Win32 port

		Updated Borland C port

		Updated VMS port; pipe open support, attempt at tty support

Files:
RevisionActionfile
1.21modifypkgsrc/lang/snobol/Makefile
1.2modifypkgsrc/lang/snobol/PLIST
1.8modifypkgsrc/lang/snobol/distinfo
1.4modifypkgsrc/lang/snobol/patches/patch-ab
1.2removepkgsrc/lang/snobol/patches/patch-ac
1.3removepkgsrc/lang/snobol/patches/patch-ad
1.1removepkgsrc/lang/snobol/patches/patch-ae
1.1removepkgsrc/lang/snobol/patches/patch-af
1.1removepkgsrc/lang/snobol/patches/patch-ag