the plugging of several memory leaks, fixes to the regular expression
engine, the addition of a Unicode character classes, better support for
64-bit platorms, and updates of many modules in the base Perl Library.
See perldelta.pod for more details.
Also update p5-Data-Dumper, p5-Devel-DProf, and p5-Devel-Peek to the
latest versions distributed with the perl-5.6.1 sources, and libperl to
5.6.1 to match the perl package.
Changes since 1.05:
Version 1.06 15/12/2000
- Bug where functions could be used as procedures (and vice
versa) fixed.
- Fixed bug in the VAL function where it would sometimes return
the wrong result as the string being converted was not
terminated properly.
- Fixed bug in BPUT introduced in 1.05.
- HIMEM can now be changed.
- Blank lines in files are no longer discarded when loading a
program.
- The initial value and step used if the lines of a program are
renumbered when loading a program have been changed to 1 and
1 respectively, the idea being that they will match the numbers
of the lines of the program in the file in an editor.
- Under RISC OS, the 'edit' command can now invoke editors such
as StrongED and Zap.
- Added limited support for making BBC MOS calls via USR and
CALL so that OS_Byte 0 could be used to determine the type of
the machine on which the interpreter is being run.
Version 1.07 01/01/2001
- Fixed bug in function SUM when the argument was a string array.
The function should return all of the strings in the array
concatenated together but it was producing rubbish.
- Fixed bug in function SUM LEN. This was failing with the error
message 'type mismatch: array wanted'.
- Fixed bugs in the EOF and EXT functions that show up when the
file is not a disk file but, for example, a serial port.
- Sorted out some more portability issues, but at a cost of
making the program about 10% slower.
- The code for the OSCLI ... TO statement has been improved.
- The RISC OS version of the program has been changed to use
direct OS calls in fileio.c instead of C library functions. This
allows Basic programs to carry out I/O operations on a file using
a mixture of Basic statements and SWIs.
- The INPUT# code has been tidied up.
- Typing in token values directly on the command line is now
handled correctly, for example, typing in the hex value &F1
no longer gives the error 'The interpreter has gone wrong'.
- Under NetBSD and Linux, the handling of I/O redirection on the
program's command line has been sorted out. It is now possible
to invoke the program so that it takes input from or directs
output to a file instead of using the keyboard for input and
screen for output.
- The QUIT command can now optinally be followed by a value that
the interpreter passes back to the underlying operating system
as a return or status code.
Version 1.08 19/04/2001
- Fixed 'big endian' bug in code that checks if a file contains
a tokenised Basic program. The test was failing on big endian
machines.
- Changed code that writes the four byte start marker at the
start of a Basic program so that it is always written in
the same order, that is, fixed another endian bug.
- Extended the WAIT statement so that the time to wait can
be supplied. The time interval is in centiseconds.
Version 1.09 29/04/2001
- Fixed bug in INSTR where the end of the string being searched
was missed when the first character of the wanted string
occured a number of times in the search string.
- Tidied up STR function so that STR$~ produced the same results
as PRINT~, for 'STR$~255' now produced 'FF' instead of 'ff'.
Also changed the format for floating point values so that an
exponent is marked with an 'E' instead of an 'e'.
- Fixed bug in INPUT statement where INPUT ' cleared the screen
instead of skipping to the next line.
- Fixed bug in INPUT statement where 'INPUT TAB() <variable>'
printed a '?' prompt when it should not have done so.
- Fixed a problem in EVAL where the pointer to the expression
that contained the EVAL function was being corrupted if the
string being evaluated contained a reference to a function
that had not been called before. 'EVAL(EVAL(a$))' now works
as well.
Version 1.10 28/05/2001
- Fixed bug in EDIT introduced fixing EVAL in version 1.09. A
'bad token' error message was being produced when editing a
single line with EDIT <line> under DOS and Unix. The amended
line was being saved correctly but the error message was then
being displayed.
- Tidied up handling of @% in PRINT and STR$ when the number of
digits to print is zero. '@%=0: PRINT PI' now produces
3.141592654 instead of 3, as per the Acorn interpreter.
- Added function XLATE$. This either translates a string using
a user-supplied translate table or translates it to lower case
if no translate table is supplied.
- Added function VERIFY. This is used to check that a string
contains only specific characters.
- Changed EDIT and EDITO so that EDIT uses the last EDITO value
instead of LISTO when converting the program to text when it
is edited. If EDITO has not been used, the LISTO value is
used instead.
allows setting:
PY_SETUP_SUBST+= FOO=${FOO}
and having ${FILESDIR}/Setup.in piped through a sed expression with:
s!@FOO@!${FOO}!g
This allows python module package Makefiles to specify other things they
would like to substitute besides just @LOCALBASE@ and @X11BASE@.
linking against installed libraries or finding installed headers except
for those that are explicitly linked into ${BUILDLINK_INCDIR} and
${BUILDLINK_LIBDIR}.
Use BUILDLINK_INCDIR, BUILDLINK_LIBDIR for locations of linked headers
and libraries. Create a variable BUILDLINK_TARGETS whose value is the
list of build-link targets to execute.
a shared library that depends on libtcl83.so. The TCL_SHLIB_LD command was
set to the incorrect value for ELF platforms, relying on "ld" which doesn't
understand the -Wl,... options it receives via ${TCL_LIB_SPEC}. Patch the
configure script to set TCL_SHLIB_LD to the proper value on NetBSD systems
depending on whether they are ELF or a.out, and also modify TCL_LIB_SPEC
to include -Wl,-rpath,... or -R... accordingly.
Bump version number to 8.3.2nb2.
and do-install targets. This is better as the configure script gets
called with the correct environment settings. Also set the values for
INSTALL_PROGRAM and INSTALL_DATA used in the project's Makefile to their
pkgsrc BSD_* counterparts.
VERSION 4.0.5
=============
* FIXED: Actually make re-hashing predicates work. This bug causes
large (dynamic) predicates that are queried while they are build
to show linear rather than constant-time access behaviour. Perfomance
difference on victim programs can be dramatic!
* ENHANCED: GNU-readline interface. Detect useful additions from readline
4.2, avoid type-conflicts and handle re-entrance through XPCE much more
cleanly as well as aborts.
* PORT: Many C-compiler warnings, making the native IRIX cc compile
SWI-Prolog silently. Improved detection of wait() variations.
Thanks to Jean Wang for providing me with access to their machine.
* ENHANCED: Handling of prolog_edit:select_location/3. Enhancement
exploited by XPCE to use GUI-based selection if running from GUI.
* ADDED: -s file to load a script-file in addition to the user
initialisation file.
* ADDED: -q commandline option to make the system operate silently.
* ADDED: PrologScript support using #!, providing direct scripting
in Unix and additional parameters on MS-Windows.
* FIXED: Wipe the anonymous clauses for meta-calling on $dcall/1 as
soon as possible. Reported by Stefan Mueller.
* ADDED: Save home in saved-state for class development and kernel. This
enables saved-states to find the installed SWI-Prolog. Especially
useful for Windows.
* ADDED: Save default stack limits in the Windows registry and add a
menu item to the manpce/0 File/Edit Preferences menu to manage these
registry settings.
nhc98 1.04 (2001-05-21) features
* New: Support for extended module namespaces of the form
Long.Hierarchical.Module.Name is now provided in both nhc98 and
hmake.
* Update: Improved printing of I/O error messages.
* Update: Improved (more accurate) time profiling now provided.
* Bugfix: An identifier hidden on import and redefined in the
current module, then exported, but also imported qualified and
used qualified in the current module, led to an incorrect
interface file being generated.
* Bugfix: hmake issued an unnecessary -cpp flag on some literate
files.
* Bugfix: Type of IO.hSetPosn :: Handle -> HandlePosn -> IO () was
incorrect
* Bugfix: Compile-time error in src/tracer/runtime/ident.c on RedHat
7 and other systems using the new ISO C standard for fpos_t.
* Bugfix: A file opened in ReadMode or WriteMode was actually opened
in ReadWriteMode, so if the file had strict permissions the
correct opening command would fail. Conversely, opening in
ReadWriteMode actually gave ReadMode instead, and file updates
silently failed.
* Bugfix: Operator sections suffered from priority inversion, for
example (^2*3) was incorrectly parsed as (^(2*3)), even though ^
binds more tightly than *.
* Bugfix: The library function Directory.createDirectory gave
strange permissions to the new directory. (Mode was in hex, but
should have been octal!)
The following updates and bugfixes are specifically for Hat, the
redex-trail-based tracing and debugging system.
* New architecture: Traced programs now build their trails in files,
not in the heap. This has four consequences: (1) you no longer
need to give your program large amounts of extra memory to trace
it; but (2) you may need to have large amounts of free disk space,
particularly to trace long-running programs; (3) for the moment,
traced programs now run even slower (we are working to improve
this); and (4) trails are now first-class objects, so new tools
can manipulate them to provide several different views of the
computation.
* New tools: Storing trails in files means we can now provide more
tools to examine them. The original graphical browser is now
renamed hat-trail, and can fully explore the redex trails in file.
hat-stack gives a virtual stack back-trace from a trail file (no
need to re-run the program). hat-observe gives you HOOD-like
observation of the input and output from functions. hat-detect
does algorithmic debugging in the style of Freja; it discovers and
identifies the location of a bug after asking you some simple
questions. hat-check verifies the integrity of the trail file,
prints a textual dump, and gives statistics about its contents.
* Update: Fuller Standard Library support for tracing: added
Directory, System, CPUTime, Random. (Still missing: Time, Locale.)
* Update: More Haskell'98 language features are accepted: named
fields can now be traced, although the hat tools don't yet show
them in source form. Pattern bindings are also handled better.
_________________________________________________________________
5.6.0nb1 as this package no longer builds and installs libperl.so as a
shared library. Instead, libperl.so is built and installed by the perl
(as of 5.6.0nb6) if the platform supports shared libraries (or if
MKPIC=yes). The libperl package again only installs DynaLoader.o as a
relocatable shared object.
and installing libperl as a shared libarary on platforms that support
shared libraries (or those that explicitly define MKPIC=yes). As a
compromise for those platforms that have the need for speed and thus a
statically-linked perl binary, explicitly link perl against a static
libperl.a.
Before this update, the current situtation was that we installed the static
library in perl and the shared library in libperl. This caused the wrong
linker flags to be passed to perl packages and they might have gotten a
hidden dependency on libperl depending on whether they were built with or
without libperl installed. Avoid all this by only having the static or
shared library installed at any time.
From the documentation:
This Algol 60 interpreter is based upon the "Revised Report on the
Algorithmic Language Algol 60" [RRA60].
At school, a long time ago, I learned Algol 60 in a completely
theoretical manner. Later I learned Algol 68 and C (and more ...).
The concept of call-by-name never left my mind, and so I started to
write this Algol 60 interpreter: Made for fun and a call-by-name.
Mercury is a modern logic/functional programming language, which
combines the clarity and expressiveness of declarative programming
with advanced static analysis and error detection features. Its
highly optimized execution algorithm delivers efficiency far in excess
of existing logic programming systems, and close to conventional
programming systems. Mercury addresses the problems of large-scale
program development, allowing modularity, separate compilation, and
numerous optimization/time trade-offs.
This package includes the compiler, profiler, debugger, documentation,
etc. It does NOT include the "extras" distribution; that is available
from <http://www.cs.mu.oz.au/mercury/download/release.html>.
back a dynamic libperl.so to the installation, needed as a result of a
change made on 2000-11-08 to the perl5-base package to not build against a
dynamic libperl.so.
gets built.
Add makefile fragments to do the right thing for elf and a.out. Make sure
they are used.
Add @exec/@unexec install-info to the PLIST.
Fixes pkg/12154 from Olaf Seibert <rhialto@polderland.nl>
Don't bother trying to compile for debugging in the pkgsrc Makefile.
"-fomit-frame-pointer" makes it impossible to debug on i386 anyway,
and it's easy enough to modify the package makefiles before building.
VERSION 4.0.4
=============
* FIXED: Problem in GUI tracer tracing predicates loaded from ?- [user].
* MODIFIED: The file-reading predicates (consult, use_module, load_files,
etc.) no longer change current input to the file loaded. This implies
that read/1 and friends read from the current input before the load
predicate was started rather then the file we are loading from.
* FIXED: Setting break-points on facts, or in general on the last
(I_EXIT or I_EXITFACT) instruction of a clause.
VERSION 4.0.3
=============
* ADDED: New hooking system for help/0, help/1 and apropos/1.
* FIXED: Allow for -f "c:\..." in Windows.
* ENHANCED: Moved boot/listing.pl to the library, reducing the
footprint and startup time. Also modernised the code a bit,
allow for hooks, so listing(class->method) lists an XPCE method
and allow for partial listing: listing(foo(a, _)) to get only
the clauses for which a unifies to the first argument.
* FIXED: tracer not to trap cut-port in system predicates (GUI).
* FIXED: Atom-GC problem: global options structured used pointers
to string of unlocked atoms.
* ENHANCED: the GUI debugger. Too much to name it here.
* INTERNAL: Moved message-activation of spy and nospy predicates to
foreign-code to make sure it gets always called.
* FIXED: Bug in recorded database, reported by Michael Heerdegen.
* FIXED: Removed trace of rl_add_history()
* FIXED: Handling of :- dynamic Module:Name/Arity in PceEmacs
cross-referencer.
* FIXED: Cleanup of code for setting break-points. Make this code
work again from PceEmacs.
* ENHANCED: prolog_to_os_filename(-Pl, +Os) to convert 8+3 filenames
to long filenames.
* ENHANCED: Allow setting spy-point from PceEmacs.
* CLEANUP: Replace some more warnings with exceptions.
* ENHANCED: library(url) for breaking down and constructing URL strings
with some new functionality. Additions by Lukas Faulstich. Also
fixed a dangling choice-point in decoding a www-encoded string.
* ENHANCED: Moved tty_size/2 from library(tty) to built-in, exploiting IOCTL
calls to fetch the terminal size when available. This make tty_size/2
return the actual values rather than constant values from the moment of
startup. Reported by Robert van Engelen.
VERSION 4.0.2
=============
* FIXED: Memory leak in PL_get_chars() using CVT_WRITE. Reported by
Marcin Golebski.
* INSTALL: export CIFLAGS=/path/to/local/include should now be
honoured correctly by configure (Lukas Faulstich)
* FIXED: absolute_file_name/3 not to trust its cache.
* ADDED: callable/1 for better compatibility.
* FIXED: $qlf_info/4 to request information on QLF files. Also turned
a couple of common warnings into proper exceptions.
* FIXED: Avoid the usage of the appearently badly supported Win32 function
GetFileInformationByHandle(), now using GetFileSize(). This fixes some
false-alarm about not being able to find the system resources.
* REMOVED: ed/1, also from the backward compatibility module. Edit/1
is the generic editing front-end.
* FIXED: writeq(a(b,c,(d,e))), reported by Joachim Katzer.
* FIXED: Memory leak in expand_file_name/2. Reported by Daniel Cote.
* FIXED: Print error-locations in files holding the ~-character.
Thanks to Mike Maxwell.
VERSION 4.0.1
=============
* PACKAGE: Many installation patches, added libraries, notably to
the XPCE subsystem.
* ADDED: Skeleton dotfiles for both Prolog and XPCE to the dotfiles
directory.
* FIXED: plrc utility for modifying archives. Thanks to Lourens
van der Meij.
* FIXED: ANSI-C incompatibility, breaking compilation using AIX cc
(Sterling Smith).
* FIXED: end_of_file issues in readln/[1,2,5] (library(readln)) and
modernised the code a bit.
* FIXED: Write out-of-range floating point numbers properly (Bart Demoen).
the defines.
While I'm here pull across a fix for LIB_SPEC that prevents libc from
being linked in when linking a shared library.
Fixes pkg/12620 from Takuya SHIOZAKI <tshiozak@netbsd.org>
hopefully in a cleaner way.
Do the same for the tk sources for tk-tclX
Both should now build.
{tcl,tk}-tclX/Makefile have an awful lot in common so someone might like to
split a lot of it out.
Don't look for moddi3 in libgcc - its not there. The configure script
still found it there though.
Add a test target.
Remove the preempt test as the test target will get stuck.
Some tests fail.
included in the perl executable. We need this to make the upcoming
xerces-perl package working.
This hack should be made obsolete by gcc-3.0, which will have a libgcc.so.
See http://mail-index.netbsd.org/tech-pkg/2001/04/07/0000.html for more details
PLIST for pgcc. PGCC should now list all the files needed on NetBSD/sparc.
This matches a similarly motivated change in gcc/Makefile, but done
differently.
first component is now a package name+version/pattern, no more
executable/patchname/whatnot.
While there, introduce BUILD_USES_MSGFMT as shorthand to pull in
devel/gettext unless /usr/bin/msgfmt exists (i.e. on post-1.5 -current).
Patch by Alistair Crooks <agc@netbsd.org>
otherwise it would understand --x-includes and --x-libraries, so don't
feed it CONFIGURE_ARGS (if xpkgwedge is installed) which will make it
puke. Instead, pass only the --host and --prefix arguments to
configure which it can understand.
Fixes PR 11040, from Sean Doran.
specification/programming.
Package provided by Paolo Torelli in pkg/11280.
Attention: Very restrictive license, to be filled out and returned in
hardcopy before usage.
support to follow. Note this in documentation.
Bump revision of libtool to nb3 and update dependencies.
Update (sort) known affected PLISTs.
Fixes pkg/12368 by Kimmo Suominen <kim@tac.nyc.ny.us>
Fixes problems with cross/* noted on tech-pkg and packages by
Chuck Cranor <chuck@research.att.com>, and
Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>
using the newest PNG library won't work on system with an older one. To
prevent such problems with precompiled binary packages require at least
"png-1.0.9nb1" in all dependences.
/usr/pkg/gcc-2.95.2//lib/gcc-lib/sparc--netbsdelf/2.95.2/crtbegin.o
/usr/pkg/gcc-2.95.2//lib/gcc-lib/sparc--netbsdelf/2.95.2/crtbeginS.o
/usr/pkg/gcc-2.95.2//lib/gcc-lib/sparc--netbsdelf/2.95.2/crtend.o
/usr/pkg/gcc-2.95.2//lib/gcc-lib/sparc--netbsdelf/2.95.2/crtendS.o
Make sure they find their way into PLIST
/usr/include. They now get installed only in $(includedir). I have no
idea why the package installs the same set of header's in two
different locations anyway.
while here, add more options to the f2c-f77 script:
from Jason Beegan,
-r8, promote REAL and COMPLEX to DOUBLE REAL and DOUBLE COMPLEX
-s, to strip executible
generalize the -Wall flag to accept -Wxxx and pass it to the c compiler
-Wxxx for gcc warnings
complete change log from the f2c maintainers since the last packaged
version:
------------------------------------------
libf2c.zip: fix bug with the sequence backspace(n); endfile(n);
rewind(n); read(n). Supply missing (long) casts in a couple of places
where they matter when size(ftnint) == sizeof(int) < sizeof(long).
Tue Jan 18 19:22:24 EST 2000
Arrange for parameter statements involving min(...) and max(...)
functions of three or more arguments to work.
Warn about text after "end" (rather than reporting a syntax error
with a surprising line number).
Accept preprocessor line numbers of the form "# 1234" (possibly
with trailing blanks).
Accept a comma after write(...) and before a list of things to write.
Fri Jan 21 17:26:27 EST 2000
Minor updates to make compiling Win32 console binaries easier. A
side effect is that the MSDOS restriction of only one Fortran file
per invocation is lifted (and "f2c *.f") works.
Tue Feb 1 18:38:32 EST 2000
f2c/src/tokdefs.h added (to help people on non-Unix systems -- the
makefile has always had a rule for generating tokdefs.h).
Fri Mar 10 18:48:17 EST 2000
libf77, libf2c.zip: z_log.c: the real part of the double complex log
of numbers near, e.g., (+-1,eps) with |eps| small is now more accurate.
For example if z = (1,1d-7), then "write(*,*) z" now writes
"(5.E-15,1.E-07" rather than the previous "(4.88498131E-15,1.E-07)".
Thu Apr 20 13:02:54 EDT 2000
libf77, libi77, libf2c.zip: s_cat.c, rsne.c, xwsne.c: fix type
errors that only matter if sizeof(ftnint) != sizeof(ftnlen).
Tue May 30 23:36:18 EDT 2000
expr.c: adjust subcheck() to use a temporary variable of type TYLONG
rather than TYSHORT under -C -I2.
Wed May 31 08:48:03 EDT 2000
Simplify yesterday's adjustment; today's change should be invisible.
Tue Jul 4 22:52:21 EDT 2000
misc.c, function "addressable": fix fault with "f2c -I2 foo.f" when
foo.f consists of the 4 lines
subroutine foo(c)
character*(*) c
i = min(len(c),23)
end
Sundry files: tweaks for portability, e.g., for compilation by overly
fastidious C++ compilers; "false" and "true" now treated as C keywords
(so they get two underscores appended).
libf77, libi77, libf2c.zip: "invisible" adjustments to permit
compilation by C++ compilers; version numbers not changed.
Thu Jul 6 23:46:07 EDT 2000
Various files: tweaks to banish more compiler warnings.
lib?77, libf2c.zip/makefile.u: add "|| true" to ranlib invocations.
Thanks to Nelson H. F. Beebe for messages leading to these changes
(and to many of the ones two days ago).
xsum.c: tweak include order.
Fri Jul 7 18:01:25 EDT 2000
fc: accept -m xxx or -mxxx, pass them to the compiler as -mxxx
(suggestion of Nelson Beebe). Note that fc simply appends to CFLAGS,
so system-specific stuff can be supplied in the environment variable
CFLAGS. With some shells, invocations of the form
CFLAGS='system-specific stuff' fc ...
are one way to do this.
Thu Aug 17 21:38:36 EDT 2000
Fix obscure glitch: in "Error on line nnn of ...: Bad # line:...",
get nnn right.
Sat Sep 30 00:28:30 EDT 2000
libf77, libf2c.zip: dtime_.c, etime_.c: use floating-point divide;
dtime_.d, erf_.c, erfc_.c, etime.c: for use with "f2c -R", compile with
-DREAL=float.
Tue Dec 5 22:55:56 EST 2000
lread.c: under namelist input, when reading a logical array, treat
Tstuff= and Fstuff= as new assignments rather than as logical constants.
<mark@MCS.VUW.AC.NZ> in PR pkg/12060. Some minor adjustments by me.
[incr Tcl] provides the extra language support needed to build large Tcl/Tk
applications. It introduces the notion of objects, which act as building
blocks for an application. Each object is a bag of data with a set of
procedures or "methods" that are used to manipulate it. Objects are organized
into "classes" with identical characteristics, and classes can inherit
functionality from one another. This object-oriented paradigm adds another
level of organization on top of the basic variable/procedure elements, and
the resulting code is easier to understand and maintain.
ISO/Edinburgh-style Prolog compiler. Compliant with Part 1 of the ISO
standard for Prolog. Covers all traditional Edinburgh Prolog features
and shares many features with Quintus and SICStus Prolog, including a
compatible module system. Very fast compiler, garbage collection (also
on atoms), fast and powerful C/C++ interface, autoloading,
GNU-readline interface. SWI-Prolog supports architectures with 32-bit
or greater (64-bit) word-length. Packages for process management,
TCP/IP, XML/SGML, RDF, and the GUI toolkit XPCE, are also available.
pathnames in there.
+ Treat libXm separately from the rest of the libs, since (a) it needs a
separate "intermediate" symlink as well, even for ELF libs, and (b) it
uses a completely different version number from the rest of the libs,
for obvious reasons
themselves, in sync with the new PLIST style. Not tested on a.out
i386 platform, as I don't have one to hand.
Should address PR 12044, from Chris Jones.
Closes pkg/10535. Changes are:
o Bypassed the hard-to-reproduce build failure caused by
getrusage() returning decreasing microsecond times. Did
this by wrapping the getrusage() function so that it never
returns a smaller value for microseconds than the previous
time it was called, if called within the same second.
Perhaps this should be done to getrusage() internally, until
fixed the proper way. See PR bin/10201. --- refling.
o Added a tutorial and a message about it. --- refling.
Convert most MESSAGE files to new syntax (${VARIABLE} gets replaced,
not @VARIABLE@, nor @@VARIABLE@@).
By default, substitutions are done for LOCALBASE, PKGNAME, PREFIX,
X11BASE, X11PREFIX; additional patterns can be added via MESSAGE_SUBST.
Clean up some packages while I'm there; add RCS tags to most MESSAGEs.
Remove some uninteresting MESSAGEs.
``while 1 { close [open /dev/null r] }'' does not leak memory for
each go-around. This corresponds to sourceforge bugid #117988.
Bump PKGNAME to tcl-8.3.2nb1.
Changes (for detailed list, see FIXES which is part of distribution):
* various bugfixes
* allow \n explicitly in character classes
* some 8bit cleanups
- It can be bootstraped with Sun Workshop.
- It goes to "${LOCALBASE}" directly because there is no possible conflict
with the system's GNU C compiler.
out of date - it was based on a.out OBJECT_FMT, and added entries in the
generated PLISTs to reflect the symlinks that ELF packages uses. It also
tried to be clever, and removed and recreated any symbolic links that were
created, which has resulted in some fun, especially with packages which
use dlopen(3) to load modules. Some recent changes to our ld.so to bring
it more into line with other Operating Systems also exposed some cracks.
+ Modify bsd.pkg.mk and its shared object handling, so that PLISTs now contain
the ELF symlinks.
+ Don't mess about with file system entries when handling shared objects in
bsd.pkg.mk, since it's likely that libtool and the BSD *.mk processing will
have got it right, and have a much better idea than we do.
+ Modify PLISTs to contain "ELF symlinks"
+ On a.out platforms, delete any "ELF symlinks" from the generated PLISTs
+ On ELF platforms, no extra processing needs to be done in bsd.pkg.mk
+ Modify print-PLIST target in bsd.pkg.mk to add dummy symlink entries on
a.out platforms
+ Update the documentation in Packages.txt
With many thanks to Thomas Klausner for keeping me honest with this.
Version 0.0.17
* Delay the parsing of the function specs until the function
is used for the first time - speed and efficiency win (Frank)
* Date functions fixed up (Ravi)
* For Each implemented
* UBound, LBound
* More constants added
* Screen's mouse pointer stuff impl
* Object referencing grammar fixed
* User defined constants implemented
* Exit [Sub, Function, For etc.] impl.
* Fix function invocation with Option Explicit
* Parse Declare statements
* ReDim implemented
* Correct spelling of indices discovered.
* Options setup and honoured (Ken Guest)
* Lots of Command button signals added (Almer Tigelaar)
* New object globalization logic
* Build fix (Boszormenyi Zoltan)
Version 0.0.16
* Implement CallByName
* Port Frame to new object system (Frank)
* Improve parser / lexer flexibility.
* Implement Eval, Execute.
* Implement user defined Types
* Update project logic and form object referencing.
* Add (evily hacked) up ASP runtime ( gb test/web.asp )
* Install 'gb' by default to aid use.
2/24/99 (version 0.53)
Additions:
DEFINE-FINITE-TYPE and DEFINE-ENUMERATED-TYPE (in structure
FINITE-TYPES; documented in doc/utilities.ps and
doc/html/utilities.html.
Added CHAR-SOURCE->INPUT-PORT, CHAR-SINK->OUTPUT-PORT,
MAKE-STRING-OUTPUT-PORT, STRING-OUTPUT-SOURCE-OUTPUT to
the extended-ports structure.
The structure BYTE-VECTORS is the same as CODE-VECTORS with `byte'
replacing `code' in all the names. The underlying datatype is the
same for both, and uses `byte' when printing.
There is a new and much improved interface to C code, thanks to
Mike Sperber. It is documented in in doc/external.ps and
doc/html/external.html.
Bug fixes:
Session-data and user-context records are no longer in the fluid env.
Lexical environments can now be nested up to 65k deep.
,expand no longer prints `definition in expression context' warnings.
Added ARRAY? and SEARCH-TREE? to the array and search tree structures.
Flat environments work again.
Templates of the form `var ... ...' now work in syntax rules.
Reinstated caching of SCHEMIFY results to greatly reduce the space
used by debugging info.
Added argument checking to STRING->NUMBER and NUMBER->STRING.
Fixed space blow-up in LOAD.
Unused ports are closed more reliably.
Changes:
The heap, gc, and image code is now in three separate modules.
The symbol table is now held in a VM register.
Inlined SHOWING-FOCUS-VALUES into the main command loop and moved
the sentinal call to reduce the noise at the base of ,preview output.
The tables returned by MAKE-TABLE now use EQV? for comparison (instead
of EQ?). This makes these tables about 50% slower when numbers are
used as keys, but significantly more accurate.
Floating-point numbers are no longer double boxed.
The channels structure has been split into channels and low-channels.
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.