Subject: CVS commit: pkgsrc/lang/onyx
From: matthew green
Date: 2002-11-11 12:10:41
Message id: 20021111111042.64138B42C@cvs.netbsd.org

Log Message:
update to latest oynx release, 4.1.0.  changes to oynx language are:

	* Treat evaluatable names specially when binding (don't bind them), in
          order to make it possible to force dynamic lookup of names, without
          having to resort to using the load operator on literal names.

	  This required a language syntax change so that evaluatable names can
	  be created in deferred execution mode.  The possibilities for
	  specifying an evaluatable name were $$$name, $#name, or adding a new
	  special character.  Since neither of the backward compatible syntax
	  changes were very palatable, two new special characters were added.
	  !name creates an evaluatable name, and the former $$name syntax is now
	  written as ~name for consistency.

	* Add operators:
	  + bindsocket
	  + listen
	  + accept
	  + send
	  + recv

	* bin/onyx_config : Add onyx_config, which aids in building software
	  that uses libonyx.

	* lib/libonyx/src/nxo_string.c:nxo_string_cstring() : Handle name
	  objects as well as string objects.

	* Add operators:
	  + serviceport
	  + sockname
	  + peername
	  + sockopt
	  + setsockopt

	* Add the neterror error.

	* Add the ncat operator.

	* Remove the fork operator and replace it with the forkexec operator.
	  Doing anything between fork() and exec() in a multi-threaded
	  application risks hanging.

	* Revise string and pointer hashing functions to marginally improve
	  performance.

	* Add operators:
	  + socket
	  + socketpair
	  + connect

	* Add operators:
	  + nonblocking
	  + setnonblocking

	* Modify the write operator to return whether a write was partial or
	  not.  This is necessary for non-blocking files.

	* Change language syntax.  The / special character is now $.

	* Modify the mkdir operator such that specifying the mode is optional.

	* Add operators:
	  + chroot
	  + mkfifo
	  + pipe
	  + readlink
	  + umask

	* Remove "fast" operator support, since it wasn't very fast.
	  Performance without fast operators is +-3% of what it was with fast
	  operator support, for typical programs.

	* Add operators:
	  + inc, dec
	  + while, until

	* Remove operators:
	  + cleardstack

	* Change language syntax:
	  + Radix integers are <base>@<value> instead of \ 
<base>#<value>.
	  + Comments start with #, not %.
	  + Add special characters in strings:
	    - `\0'  : Nul character (nul), equivalent to `\x00'.
	    - `\cC' : Control C, where C is [A-Za-z].
	    - `\a'  : Alarm (bel).
	    - `\e'  : Escape (ec).

	* Add operators:
	  + threadsdict
	  + threaddstack, threadestack, threadistack, threadostack

	* Remove operators:
	  + #!
	  + !#

	  Add operators:
	  + rot, srot
	  + adn, aup
	  + saup, sadn

	  Rename/replace operators:
	  + push --> adn
	  + npush/nbpush --> rot
	  + snpush/snbpush --> srot

	  Remove operators:
	  + push

	* lib/libonyx/src/systemdict.c : Add operators:
	  + bpop, nbpop, ipop, nip, tuck, under, over, up, nup, dn, ndn, bdup,
	    ibdup, ibpop, bpush
	  + sbpop, snbpop, sipop, snip, stuck, sunder, sover, sup, snup, sdn,
	    sndn, sndup, snpop, sbdup, sibdup, sibpop, sbpush

	* Rename operators:
	  + index --> idup
	  + sindex --> sidup

	* Add operators:
	  + poll
	  + gstdin, gstdout, gstderr
	  + setstdin, setstdout, setstderr
	  + setgstdin, setgstdout, setgstderr

	* Add optional mode argument to the open operator.

XXX: TODO:  pthread.buildlink*.mk support.

Files:
RevisionActionfile
1.6modifypkgsrc/lang/onyx/Makefile
1.3modifypkgsrc/lang/onyx/PLIST
1.3modifypkgsrc/lang/onyx/distinfo