Brandy is an interpreter for BBC Basic (or Basic V as it is refered
to here) that runs under a variety of operating systems. Basic V
is the version of Basic supplied with desktop computers running
RISC OS. These were originally made by Acorn Computers but are now
designed and manufactured by companies such as RiscStation and
MicroDigital.
User-visible changes between 0.4.0 and 0.5.0:
Changes in behaviour:
There are now two engines: the fast engine (gforth-fast) is at least
as fast as gforth in earlier releases; the debugging engine (gforth)
supports precise backtracing for signals (e.g., illegal memory
access), but is slower by a factor of 1-2.
Block files now start at block 0 by default (instead of block 1). If
you have block files around, prepend 1024 bytes to convert them, or
do a "1 OFFSET !" to establish the old behaviour.
Gforth now does not translate newlines to LFs on reading. Instead,
READ-LINE now interprets LF, CR, and CRLF as newlines. Newlines on
output are in the OSs favourite format.
SEE now disassembles primitives (or hex-DUMPs the code if no
disassembler is available).
>HEAD (aka >NAME) now returns 0 (instead of the nt of ???) on failure.
Syntax of prim changed: stack effects are now surrounded by
parentheses, tabs are insignificant.
Operating environment:
Gforth now produces a backtrace when catching an exception.
On platforms supporting the Unix 98 SA_SIGINFO semantics, you get more
precise error reports for SIGSEGV and SIGFPE (e.g., "stack
underflow" instead of "Invalid memory address").
Gforth now produces exit code 1 if there is an error (i.e., an
uncaught THROW) in batch processing.
You can use "gforthmi --application ..." to build an image that
processes the whole command-line when invoked directly (instead of
through gforth -i).
Ports:
AIX.
20% speedup on 604e under powerpc-unknown-linux-gnu,
19%-29% speedup on Celeron with gcc-2.95.
New words:
Missing ANS Forth words: EKEY EKEY? EKEY>CHAR
Timing words: CPUTIME UTIME
Vector arithmetic: V* FAXPY
FP comparison: F~ABS F~REL
Deferred words: <IS> [IS]
Nested number output: <<# #>>
Exception handling: TRY RECOVER ENDTRY
Directory handling: OPEN-DIR READ-DIR CLOSE-DIR FILENAME-MATCH
Other: ]L PUSH-ORDER
Miscellaneous:
Significant extensions to the manual (added an introduction, among
other things), many of them due to a new team member: Neal Crook.
Added assemblers and disassemblers for 386, Alpha, MIPS (thanks to
contributions by Andrew McKewan, Bernd Thallner, and Christian
Pirker). Contributions of assemblers and disassemblers for other
architectures are welcome.
The patch against regcomp.c (uninitialized variable) has been fed back
to the perl maintainers. The others are more like workarounds for known
toolchain problems and not fed back (for now).
The hints/netbsd.sh file has an additional change: the perl buildin malloc
(which is disabled in pkgsrc builds via configure arguments anyway) is now
disabled in the hints file as well. This makes it possible to build a
working perl outside of pkgsrc with this hints file. Wheter this hints file
should be fed back is subject to further discussion.
Make perl not build against a dynamic libperl.so.
There are two reasons: (a) the dynamic libperl.so version does not work
at all on sparc64, and (b) the static linked version is said to have a
significant performance improvement on some platforms (i.e. sparc). I think
the libperl.so was enabled by accident when switching from perl 5.0.4 to
5.6.0.
Other packages using libperl.so should not depend on perl5-base but on
../libperl.
* Fix `define' so that it tracks bound variables and ignores
shadowed keywords when traversing code
* Added checks to compilation process for the kind of missing
shared-library problems that many people see
* Fixed the `install-aliases' shell script
libintl for i18n needs. Changes since version 0.12.4 are *lots* of bug
fixes, module namespace reorganization, several _incompatible_ VM changes,
and the addition of several new modules, including a safe-interpreter for
untrusted bytecodes.
lang/python upgraded to 2.0
lang/py-html-docs upgraded to 2.0
misc/py-readline upgraded to 2.0
databases/py-gdbm upgraded to 2.0
x11/py-Tk upgraded to 2.0
devel/py-curses upgraded to 2.0
lang/py-extclass upgraded to 2.2.2 and for Python 2.0
textproc/py-dtml upgraded to 2.2.2 and for Python 2.0
www/py-zpublisher upgraded to 2.2.2 and for Python 2.0
print/py-reportlab upgraded to 1.01 and for Python 2.0
More coming...
doesn't enable any functionality. It is here as a marker, so people building
binary packages know that these packages have version-specific features
that would make them incompatible with other point releases.. (such as
LKM's)
The somewhat bizarre "patching" method was used because I rewrote the
routine which grabs global text symbols from an object file, and this
should be independent of a.out or ELF. The result bears no similarity
to what was there before, so I decided to keep the original file with
a "-dist" suffix.
* pull comments from head of patch files into the files they patch
That way they don't get overwritten, don't need manual work to be
included in the next update, and are visible in the patched files.
- Install into "${LOCALBASE}/gcc-2.95.2" to avoid that e.g. "bsd.pkg.mk"
picks up the new compiler by accident.
- Add a file "${LOCALBASE}/etc/gcc-2.95.2.mk" which makes it possible to
use the new "gcc" like this:
make MAKECONF=/usr/pkg/etc/gcc-2.95.2.mk
interpreter with both tk and tclX extensions built in.
It is expected that many users will prefer to do the following:
#!/usr/pkg/bin/wish
package require Tclx
This package also installs tclhelp, a graphical browser for the Tcl and
Tclx documentation which comes with tcl-tclX and tk-tclX.
tk-tclX-8.2.0 supplant pkgsrc/lang/tclX80 (tclX-8.0.4).
Changes to the tclX package since tclX-8.0.4:
* This package is now split into two packages, tcl-tclX, and
tk-tclX. tcl-tclX can be installed on systems without
X11 (and by extension, without tk).
Changes to tclX itself since tclX-8.0.4:
===============================================================================
19 Sept 98:
o Fixed TclX copy of Tcl auto_load proc out of sync; this broken ITcl.
-------------------------------------------------------------------------------
20 Sept 98:
o Include several Windows build fixes from Viktor Dukhovni <viktor@nyc.deshaw.com>.
o Renamed --with-tk configure option to --enable-tk.
Supplied by Viktor Dukhovni <viktor@nyc.deshaw.com>.
-------------------------------------------------------------------------------
28 Sept 98:
o Handle systems that don't implement restart of system calls on signal.
Added infox have_signal_restart.
-------------------------------------------------------------------------------
5 May 99:
o Ported most commands work with 8.1 Unicode.
o Completed port to 8.1.
===============================================================================
5 May 99: Released TclX 8.1.0
===============================================================================
10 May 99:
o Fixed tests to build when threads are enabled.
o Pickup TK_LD_SEARCH_FLAGS in configure.
-------------------------------------------------------------------------------
22 June 99:
o Moved TclX_AppendObjResult to be an external API for testing
o Upgraded the patch levels to be "8.1.2"
o Defined TclX_MainEx to take an interp as an argument. TclX_Main is
now a macro that calls TclX_MainEx. When passing the interp argument,
Tcl_CreateInterp() is called. This is done so TclX can use stubs.
-------------------------------------------------------------------------------
25 Jun 99:
o TclX version numbering and library naming change. The third number is
now the patch level.
===============================================================================
25 Jun 99: Released TclX 8.1.1
===============================================================================
4 Jul 99:
o Cleaned up configuration to work better with new Tcl autoconf macros.
Deleted Config.mk, all configration variables are set in Common.mk.
o --with-tcl and --with-tk now work.
===============================================================================
25 Jun 99: Released TclX 8.1.1
===============================================================================
===============================================================================
6 Feb 2000: Released TclX 8.2.0
===============================================================================
tcl interpreter with both tk and expect extensions built in.
It is expected that many users will prefer to do the folowing:
#!/usr/pkg/bin/wish
package require Expect
Changes to the expect package since expect-5.25:
* This package is now split into two packages, tcl-expect, and
tk-expect. tcl-expect can be installed on systems without
X11 (and by extension, without tk).
* the copious expect examples and their man pages are now installed
into ${PREFIX}/share/examples/tcl/expect instead of into
${PREFIX}/bin and ${PREFIX}/man. If any of them are determined
to be worth separate use, they should be split out into a
separate package.
Changes to expect itself since expect-5.25:
** SUMMARY
Expect 5.31 now works with Tcl 8.2. Expect 5.31 does NOT work with
prior releases of Tcl. Thanks to an incredible amount of work by
Scott Stanton, Henry Spencer, Melissa Hirschl, and funding from
Scriptics for making this possible.
** NEW FEATURES
What? You mean that working with Tcl 8.2 isn't enough?????
Expect supports Tcl's new regexp engine.
Expect supports null bytes in strings directly. (You no longer have
to use the "null" keyword to send or match nulls. Of course, the
"null" keyword will continue to be supported.) Null removal (on
input) is still enabled by default since nulls are almost never
intended for end-user consumption in interactive dialogues.
** CHANGES IN BEHAVIOR (POTENTIAL INCOMPATIBILITIES)
The interpreter command used to exit upon eof. Now it uses "-eof
script" to control this behavior. The default behavior is to return.
(This change was required because Expect now gives control to Tcl upon
exit and Tcl waits (potentially forever) for all processes to die on
exit.) Explicit calls to interpreter are almost non-existent.
However, you should look for *implicit* calls via interact commands
with a pattern but no action. This required changes in the examples:
dislocate, dvorak, kibitz, and xkibitz.
Indirect variables can no longer start with "exp". Such variables
will be interpreted as channel names.
Old-style regexps may need conversion. If you have been protecting
regexps containing backslashes with {}, then you need to examine all
your backslashes since the new regexp engine interprets backslash
sequences (such as \n) itself. For example:
expect "\n" (works the same in Tcl 8.0 and 8.1)
expect {\n} (works differently in Tcl 8.0 and 8.1)
Scriptics has also created a new-regexp-features page which you should
read: http://www.scriptics.com/support/howto/regexp81.html. Some of
the new features allow much more efficient regexps than before. For
example, non-greedy quantifiers can replace [split] looping
constructions with a single regexp, enabling Tcl to parse very
efficiently. For the whole story, read the re_syntax man page.
The interact command's regexp matching no longer skips nulls. (I'd be
surprised if anyone misses this. At least I hope ....)
Expect's C library now reports failures in spawn's underlying exec
directly (by returning -1) rather than the way it used to (as data in
the pty). This makes user code more robust. However, it requires you
to simplify your code, alas. See the chesslib.c example.
Linking with Expect's C library no longer requires the Tcl library
(unless, of course, you make Tcl calls yourself). Tcl is still
required to build the library in the first place, however.
** CHANGES IN BEHAVIOR (SHOULD NOT CAUSE INCOMPATIBILITIES)
The match_max command now controls by bytes, not chars. This won't
cause problems unless your existing scripts are interacting using
sizeable chunks of multibyte characters. (If you don't know what I'm
talking about, ignore this.)
The Make/configure suite now corresponds to the TEA conventions (at
least in theory; the conventions are changing regularly so it's hard
to be less vague on this point). Significantly, this means that you
should be able to use the same configure flags as when compiling Tcl
or any other TEA-compatible extension. (See the INSTALL file.)
The values of special variables such as exp_spawn_id_any have changed.
(The values were never documented so you shouldn't have been using
them anyway.)
Spawn ids now appear as "exp...". (They used to be small integers.)
Do not assume that spawn ids will continue to be represented in any
particular way (other than unique strings).
** OTHER NOTES
Expect uses channels. There is an Expect channel type. It is
possible to use Tcl's channel commands, such as fconfigure, to change
the encoding. However, Expect layers its own buffering system on top
of Tcl's channel handler so don't expect intuitive behavior when using
commands such as gets and puts. Unless you know what you're doing, I
recommend manipulating the Expect channels only with the expect
commands.
Some effort was made to make Expect support threads, however it is not
complete. You can compile Expect with threads enabled but don't run
Expect in multiple threads just yet.
So much code has changed, there are bound to be bugs in dark corners.
Please let me know of such cases. The best response will come by
supplying a simple test case that can be added to Expect's test suite.
In places where the behavior of Expect was not precisely documented,
full advantage was taken to do something different :-)
Several esoteric bugs were fixed.
Although Expect itself uses Henry Spencer's new regexp engine,
Expect's C library still uses his original regexp engine.
No testing has been done of the poll and non-event subsystems. (These
are used on systems which don't support select on ptys or ttys. Some
minor work needs to be done on them (because the event subsystem was
rewritten) which I'll probably do only if anyone requests it.
Many deprecated features (deprecated for many years!) have been
removed. All such features were deprecated prior to Exploring Expect
so if that's how you learned Expect, you have nothing to worry about.
For example, Expect's getpid command predates Tcl's pid command and
it's been deprecated for, oh.... 6 years - wow! Other deprecated features
include:
expect -timestamp (flag only; behavior itself was removed years ago)
expect -iwrite (flag only; behavior occurs all the time)
expect_version (use "exp_version" command)
expect_library (use "exp_library" global variable)
interact -eof (use "eof" keyword)
interact -timeout (use "timeout" keyword)
interact -timestamp (use "clock" command)
getpid (use "pid" command)
system stty (use "stty" command)
With this release, the following are deprecated:
timestamp (use "clock" command)
debugger (use a different one; there are very nice replacements
around. Fortunately the Expect debugger is not something anyone
is wiring into their scripts, so for now, consider it on the
endangered species list. Anyone still want this debugger?)
From now on, the most current snapshots of Expect will be found in the
Scriptics CVS repository. Not all snapshots are official releases.
For more, see the ChangeLog file in the expect distribution.
with
BROKEN= This package has not yet been updated to work with tcl-8.3.2.
in order to make bulk builds quieter. These packages will be updated over the
weekend.
different versions/platforms of NetBSD, use
$(TCL_LIB_FILE:C/\.so.*/.la/)
instead of
$(TCL_LIB_FILE:.so=.la)
to derive the libtool archive name from the shared library name.
From Frederick Bruckman, addresses PR pkg/10924.
(from commit log of perl5-current/Makefile):
* Interpreter cloning, threads, and concurrency
* Lexically scoped warning categories
* Unicode and UTF-8 support
* Support for interpolating named characters
* "our" declarations
* Support for strings represented as a vector of ordinals
* Improved Perl version numbering system
* New syntax for declaring subroutine attributes
* File and directory handles can be autovivified
* open() with more than two arguments
* 64-bit support
* Large file support
* Long doubles
* "more bits"
* Enhanced support for sort() subroutines
* C<sort $coderef @foo> allowed
* File globbing implemented internally
* POSIX character class syntax [: :] supported
* Improved C<qw//> operator
* pack() format 'Z' supported
* pack() format modifier '!' supported
* pack() and unpack() support counted strings
* Comments in pack() templates
* Weak references
* Binary numbers supported
* Lvalue subroutines
* Some arrows may be omitted in calls through references
* Boolean assignment operators are legal lvalues
* exists() is supported on subroutine names
* exists() and delete() are supported on array elements
* Pseudo-hashes work better
* Automatic flushing of output buffers
* Better diagnostics on meaningless filehandle operations
* Where possible, buffered data discarded from duped input filehandle
* eof() has the same old magic as <>
* binmode() can be used to set :crlf and :raw modes
* C<-T> filetest recognizes UTF-8 encoded files as "text"
* system(), backticks and pipe open now reflect exec() failure
* Improved diagnostics
* Diagnostics follow STDERR
* syswrite() ease-of-use
* Better syntax checks on parenthesized unary operators
* Bit operators support full native integer width
* Improved security features
* C<require> and C<do> may be overridden
* $^X variables may now have names longer than one character
* New variable $^C reflects C<-c> switch
* New variable $^V contains Perl version as a string
* Optional Y2K warnings
* Modules
* Pragmata
* dprofpp
* find2perl
* h2xs
* perlcc
* perldoc
* The Perl Debugger
* Simple sort() using { $a <=> $b } and the like are optimized
* Optimized assignments to lexical variables
* Faster subroutine calls
* -Dusethreads means something different
* New Configure flags
* Threadedness and 64-bitness now more daring
* Long Doubles
...
See 'perldoc perldelta' for a full list.
from the older pkgsrc/lang/tcl-8.0.5.
This is an update of the tcl package from version 8.0.5 to version 8.3.2,
and also a slight change in the organization of tcl packages.
This will be added disabled to pkgsrc/lang/Makefile until I finish updating
tk and all tcl-based packags.
Changes from out of the box tcl-8.3.2:
Both static and shared libtcl83.* are installed, thanks to
the magic of libtool.
$tcl_platform(machine) is set to ${MACHINE_ARCH}, not ${MACHINE},
thanks to the patch to tcl-8.0 from Dan McMahill. This makes
sharing of binary packages of tcl and tcl extensions easier.
Changes to the package since tcl-8.0.5:
$tcl_pkgPath is now set to ${PREFIX}/lib/tcl instead of ${PREFIX}/lib
and packages which install tcl extensions will be updated to install
there. This produces less clutter in ${PREFIX}/lib, and mirrors the
usage of java and elisp extension packages.
A symlink to ${PREFIX}/bin/tclsh8.3.2 is installed as ${PREFIX}/bin/tclsh
This change and the above are designed to allow tcl-using packages to
not depend on any particular version of tcl.
public tcl include files and the tcl configuration information script
are now installed in their standard places (${PREFIX}/include/tcl.h,
${PREFIX}/include/tclDecls.h, and ${PREFIX}/lib/tclConfig.sh), and
private tcl include files are now installed in ${PREFIX}/include/tcl.
This change allows tcl extension packages to work out of the box, and
to not need modification when tcl is updated. When extension package
authors use the new libtclstubs*.a API, this even allows binary packages
of dynamically-loadable tcl extensions to be used with newer versions of
tcl without recompilation.
Here are the new features in tcl-8.3.x as opposed to 8.0.x. I am not including
bug fixes as this represents about 18 months of them.
New Features since Tcl 8.2:
------------------------------
Improved clarity of error messages, especially for common programming
mistakes.
New lsort -unique switch to uniqify lists when sorting.
Enhanced glob command to provide simpler and more powerful cross-platform
file listing functionality.
File date stamping through "file atime" and "file mtime" and support for
chmod style permissions setting in file attributes -permissions on Unix.
New file channels command to obtain list of open channels.
"scan" command can now be used inline to return a list of values.
"regexp" has new -start, -all and -inline switches.
New "array unset" command.
New -milliseconds granularity option to "clock clicks".
Tcl optimization improvements, as well as numerous bug fixes.
Overhaul of the clock command to improve grammar and add support for
common ISO 8601 date/time formats.
Improved build support for numerous platforms.
New Features since Tcl 8.1.1
----------------------------------
Optimized string index, length, range, and append commands. Added a
new Unicode object type.
Added Tcl_RegExpMatchObj and Tcl_RegExpGetInfo
to public Tcl API, these functions are needed by Expect. Changed
tools/genStubs.tcl to always write output in LF mode.
Merged string and Unicode object types. Added new public Tcl API
functions: Tcl_NewUnicodeObj, Tcl_SetUnicodeObj,
Tcl_GetUnicode, Tcl_GetUniChar, Tcl_GetCharLength, Tcl_GetRange,
Tcl_AppendUnicodeToObj.
Changed to conform to TEA specification, added tcl.m4 and aclocal.m4
macro libraries for configure.
Added new regexp interfaces: -expanded, -line, -linestop, and
-lineanchor switches. Renamed Tcl_RegExpMatchObj to
Tcl_RegExpExecObj and added new Tcl_RegExpMatchObj that is equivalent
to Tcl_RegExpMatch. Added public macros for regexp flags. Added
REG_BOSONLY flag to allow Expect to iterate through a string and only
find matches that start at the current position within the
string.
Updated Unicode character tables to reflect Unicode 2.1 data.
Added initial implementation of new Tcl test harness package.
Modified test files to use new tcltest package.
Applied patch from Peter Hardie to add poke command to dde and changed
the dde package version number to 1.1.
Added options to tcltest package: -preservecore, -limitconstraints,
-help, -file, -notfile, and flags.
Changed parsing of variable names to allow empty array names.
Now "$(foo)" is a variable reference. Previously you had to use
something line $::(foo), which is slower. This change was
requested by Jean-Luc Fontaine for his STOOOP package.
Added Tcl_SetNotifier (public API) and associated hook points in the
notifiers to be able to replace the notifier calls at runtime. The
Xt notifier and test program use this hook.
Added a new variant of the "Trf core patch" from Andreas Kupries
that adds new C APIs Tcl_StackChannel, Tcl_UnstackChannel, and
Tcl_GetStackedChannel. This allows the Trf extension to work without
applying patches to the Tcl core.
Added -timeout option to http.tcl to handle timeouts that occur during
connection attempts to hosts that are down.
New features since Tcl 8.1:
---------------------------
Applied Jeff Hobbs' string patch which includes the following changes:
new subcommands: equal, repeat, map, is, replace
-length option to "string compare|equal"
-nocase option to "string compare|equal|match"
string and list indices can be an integer or end?-integer?.
added optional first and last index args to string toupper, et al.
See the string.n manual entry for more details about the new string features.
Applied Jeff Hobb's patch to add Tcl_StringCaseMatch to support case
insensitive glob style matching and Tcl_UniCharIs* character classification
functions.
Added Tcl_UtfNcmp and Tcl_UtfNcasecmp to make Utf string comparision easier.
Replaced the per-interpreter regexp cache with a per-thread cache. Changed
the Regexp object to take advantage of this extra cache. Added a reference
count to the TclRegexp type so regexps can be shared by multiple objects.
Removed the per-interp regexp cache from the interpreter. Now regexps can be
used with no need for an interpreter. This set of changes should provide
significant speed improvements for many Tcl scripts.
Applied the patch to fix 100-year and 400-year boundaries in leap year code,
from Isaac Hollander.
New features since Tcl 8.0.5:
-----------------------------
Full Unicode support and a message catalog for internationalization.
Thread-safety for Tcl and Tk.
A new regular expression package by Henry Spencer that adds many
advanced features: non-greedy quantifiers, bounds, positive
and negative lookahead, collating elements, equivalence classes,
several built-in character classes, and comments. In addition,
the regular expression engine works on Unicode strings to make
this the best regular expression package available anywhere.
Integrated the stub library mechanism contributed by Paul Duffin,
Jan Nijtmans, and Jean-Claude Wippler. This feature will make it
possible to write extensions that support multiple versions of Tcl
simultaneously. It also makes it possible to dynamically load
extensions into statically linked interpreters. This patch includes
the following changes:
- Added a Tcl_InitStubs() interface
- Added Tcl_PkgProvideEx, Tcl_PkgRequireEx, Tcl_PkgPresentEx,
and Tcl_PkgPresent.
More information about using the stubs interface in your extensions
can be found at http://www.scriptics.com/support/howto/stubs.html
Added a message catalog facility to Tcl. This adds several commands
in the "msgcat" package. Thanks to Mark Harrison for contributing
the initial implementation.
Added the "encoding" command that facilitate translations of strings
between different character encodings.
Added "string totitle" command to convert strings to capitalize the
first character of a string and lowercase all of the other characters.
-----
Whew... If you're still reading, thanks. Enjoy!
This is file README for Moscow ML 2.00 for Linux/Unix (June 2000)
- The full SML Modules language (structures, signatures, and functors)
is now supported, thanks to Claudio Russo. Also, several extensions
to the SML Modules language are provided:
- higher-order functors: functors may be defined within structures
and functors
- first-class modules: structures and functors may be packed and
then handled as Core language values, which may then be unpacked
as structures or functors again
- recursive modules: signatures and structures may be recursively
defined
- Value polymorphism has become friendlier: non-generalizable free
type variables are left free, and become instantiated (once only)
when the bound variable is used
- Added facilities for creating and communicating with subprocesses
(structure Unix and Signal from SML Basis Library).
- Added facilities for efficient functional generation of HTML code
(structure Msp); also supports the writing of ML Server Page
scripts.
- Added facilities setting and accessing `cookies' in CGI scripts
(structure Mosmlcookie), thanks to Hans Molin, Uppsala, Sweden.
- The Gdimage structure now produces PNG images (using Thomas
Boutell's gd library).
* should not cause any conflicts with the new bulk-package targets,
* didn't contain a reason for why they were disabled or
* were disabled for some false reason (and a IGNORE/BROKEN in the pkg's
Makefile would be more appropriate)
** The module (ice-9 getopt-gnu-style) has been removed.
** New module (ice-9 documentation)
** Debugging facilities for guile script are much improved.
** Improvements to garbage collector
** Speed/efficieny improvements.
** Better compliance to standards.
the m68k and mipsel ports. This address PR 9781 filed by Michael Wolfson
and also fixes recently noted bulk pkgsrc build failures on pmax.
The os version/machine type specific string is now consistently
${OPSYS}-${OS_VERSION}-${MACHINE_ARCH}
* Interpreter cloning, threads, and concurrency
* Lexically scoped warning categories
* Unicode and UTF-8 support
* Support for interpolating named characters
* "our" declarations
* Support for strings represented as a vector of ordinals
* Improved Perl version numbering system
* New syntax for declaring subroutine attributes
* File and directory handles can be autovivified
* open() with more than two arguments
* 64-bit support
* Large file support
* Long doubles
* "more bits"
* Enhanced support for sort() subroutines
* C<sort $coderef @foo> allowed
* File globbing implemented internally
* POSIX character class syntax [: :] supported
* Improved C<qw//> operator
* pack() format 'Z' supported
* pack() format modifier '!' supported
* pack() and unpack() support counted strings
* Comments in pack() templates
* Weak references
* Binary numbers supported
* Lvalue subroutines
* Some arrows may be omitted in calls through references
* Boolean assignment operators are legal lvalues
* exists() is supported on subroutine names
* exists() and delete() are supported on array elements
* Pseudo-hashes work better
* Automatic flushing of output buffers
* Better diagnostics on meaningless filehandle operations
* Where possible, buffered data discarded from duped input filehandle
* eof() has the same old magic as <>
* binmode() can be used to set :crlf and :raw modes
* C<-T> filetest recognizes UTF-8 encoded files as "text"
* system(), backticks and pipe open now reflect exec() failure
* Improved diagnostics
* Diagnostics follow STDERR
* syswrite() ease-of-use
* Better syntax checks on parenthesized unary operators
* Bit operators support full native integer width
* Improved security features
* C<require> and C<do> may be overridden
* $^X variables may now have names longer than one character
* New variable $^C reflects C<-c> switch
* New variable $^V contains Perl version as a string
* Optional Y2K warnings
* Modules
* Pragmata
* dprofpp
* find2perl
* h2xs
* perlcc
* perldoc
* The Perl Debugger
* Simple sort() using { $a <=> $b } and the like are optimized
* Optimized assignments to lexical variables
* Faster subroutine calls
* -Dusethreads means something different
* New Configure flags
* Threadedness and 64-bitness now more daring
* Long Doubles
...
See 'perldoc perldelta' for a full list.
Add a new USE_LIBTOOL definition that uses the libtool package instead of
pkglibtool which is now considered outdated.
USE_PKGLIBTOOL is available for backwards compatibility with old packages
but is deprecated for new packages.
NetBSD's "egcs" configuration files breaks the build of "libiberty"
obviously.
- Make this package work on NetBSD arm32.
- Actually add entries to package list.
Still to do:
- rename binaries to avoid conflicts with base distribution
- improve directory structure
- support more platforms
novelties compared with its ancestor, Caml Light, are:
* Full support for objects and classes -- here combined for the first time
with ML-style type reconstruction.
* A powerful module calculus in the style of Standard ML (but retaining
separate compilation).
* A high-performance native code compiler (in addition to a Caml
Light-style bytecode compiler).
TO BE DONE: install emacs mode, get native compiler working on ARCHs that
support it.
The checksum on the old package corresponded to the 19990620 source,
whilst the package thought it was 19980211. Fix package name accordingly.
Unfortunately, there is no version number or date on the awk distfile,
so put the distfile in its own uniquely-named directory.
Just for the record, there are a number of bug fixes in the 19990620
source:
Jun 20, 1999:
added *bp in gettok in lex.c; appears possible to exit function
without terminating the string. thanks to russ cox.
Jun 2, 1999:
added function stdinit() to run to initialize files[] array,
in case stdin, etc., are not constants; some compilers care.
May 10, 1999:
replaced the ERROR ... FATAL, etc., macros with functions
based on vprintf, to avoid problems caused by overrunning
fixed-size errbuf array. thanks to ralph corderoy for the
impetus, and for pointing out a string termination bug in
qstring as well.
Apr 21, 1999:
fixed bug that caused occasional core dumps with commandline
variable with value ending in \. (thanks to nelson beebe for
the test case.)
Apr 16, 1999:
with code kindly provided by Bruce Lilly, awk now parses
/=/ and similar constructs more sensibly in more places.
Apr 5, 1999:
changed true/false to True/False in run.c to make it
easier to compile with C++. Added some casts on malloc
and realloc to be honest about casts; ditto. changed
ltype int to long in struct rrow to reduce some 64-bit
complaints; other changes scattered throughout for the
same purpose. thanks to Nelson Beebe for these portability
improvements.
removed some horrible pointer-int casting in b.c and elsewhere
by adding ptoi and itonp to localize the casts, which are
all benign. fixed one incipient bug that showed up on sgi
in 64-bit mode.
reset lineno for new source file; include filename in error
message. also fixed line number error in continuation lines.
(thanks to Nelson Beebe for both of these.)
Mar 24, 1999:
Nelson Beebe notes that irix 5.3 yacc dies with a bogus
error; use a newer version or switch to bison, since sgi
is unlikely to fix it.
Mar 5, 1999:
changed isnumber to is_number to avoid the problem caused by
versions of ctype.h that include the name isnumber.
distribution now includes a script for building on a Mac,
thanks to Dan Allen.
Feb 20, 1999:
fixed memory leaks in run.c (call) and tran.c (setfval).
thanks to Stephen Nutt for finding these and providing the fixes.
Jan 13, 1999:
replaced srand argument by (unsigned int) in run.c;
avoids problem on Mac and potentially on Unix & Windows.
thanks to Dan Allen.
added a few (int) casts to silence useless compiler warnings.
e.g., errorflag= in run.c jump().
added proctab.c to the bundle outout; one less thing
to have to compile out of the box.
added calls to _popen and _pclose to the win95 stub for
pipes (thanks to Steve Adams for this helpful suggestion).
seems to work, though properties are not well understood
by me, and it appears that under some circumstances the
pipe output is truncated. Be careful.
Oct 19, 1998:
fixed a couple of bugs in getrec: could fail to update $0
after a getline var; because inputFS wasn't initialized,
could split $0 on every character, a misleading diversion.
fixed caching bug in makedfa: LRU was actually removing
least often used.
thanks to ross ridge for finding these, and for providing
great bug reports.
For the Icon source code, this is primarily a maintenance release. The
code has been reworked and simplified to increase portability. An ANSI
C compiler is now required, and UNIX systems are expected to supply a
POSIX (1003.1-1988) library.
Version 9.3.2 adds one new feature:
The files in a directory can be listed by opening the directory as a
file. Subsequent reads return the names of the files contained in the
directory. The names are returned in no particular order, and for UNIX,
the directories "." and ".." are included.
* Access to GNU gdbm persistent hashtables (structures Gdbm, Polygdbm)
* Interface to the PostgreSQL database server (structure Postgres)
* Interface to the MySQL database server (structure Mysql)
* Interface to POSIX 1003.2 regular expressions (structure Regex)
* Interface to sockets (structure Socket)
* Faster bytecode execution (when compiled with GCC or egcs)
* Registration of ML and C functions simplify callbacks
Apparently the NetBSD patches were also pulled up.
Since the distfile on the original site was updated without
version indication, this also fixes kern/9783.
1.3.1 -> 1.3.2 Sep 1996
1) Numeric but not integer indices caused core dump in new array scheme.
Fixed bug and fired test division.
2) Added ferror() checks on writes.
3) Added some static storage specs to array.c to keep non-ansi
compilers happy.
1.3 -> 1.3.1 Sep 1996
Release to new ftp site ftp://ftp.whidbey.net.
1) Workaround for overflow exception in strtod, sunos5.5 solaris.
2) []...] and [^]...] put ] in a class (or not in a class) without
having to use back-slash escape.
1.2.2 -> 1.3 Jul 1996
Extensive redesign of array data structures to support large arrays and
fast access to arrays created with split. Many of the ideas in the
new design were inspired by reading "The Design and Implementation of
Dynamic Hashing Sets and Tables in Icon" by William Griswold and
Gregg Townsend, SPE 23,351-367.