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.
|