Commit graph

104 commits

Author SHA1 Message Date
asau
5f3cf5d4b8 FreeBSD uses NetBSD's libexecinfo. 2014-06-19 15:15:38 +00:00
ryoon
60806aa001 Recursive revbump from x11/pixman
Fix PR pkg/48777
2014-05-05 00:47:34 +00:00
joerg
c9381bc131 Fix build with TCL 8.6 2014-01-20 19:20:07 +00:00
adam
41e677f366 Revbump after updating tcl/tk. 2014-01-11 14:42:00 +00:00
ryoon
3fba1a52dd Recursive revbump from pango-1.36.0 2013-10-10 14:41:44 +00:00
adam
d2cb6dec32 Revbump after cairo update 2013-09-02 19:50:38 +00:00
ryoon
f8e628f818 * .include "../../devel/readline/buildlink3.mk" with USE_GNU_READLINE=yes
are replaced with .include "../../devel/readline/buildlink3.mk", and
  USE_GNU_READLINE are removed,

* .include "../../devel/readline/buildlink3.mk" without USE_GNU_READLINE
  are replaced with .include "../../mk/readline.buildlink3.mk".
2013-07-15 02:02:17 +00:00
wiz
e0b49a2fed Bump PKGREVISION for libXft changes for NetBSD native X support on
NetBSD 6, requested by tron.
2013-06-06 12:53:40 +00:00
tron
a36fb86593 Try to fix the fallout caused by the fix for PR pkg/47882. Part 3:
Recursively bump package revisions again after the "freetype2" and
"fontconfig" handling was fixed.
2013-06-04 22:15:37 +00:00
wiz
53745b22ea Bump freetype2 and fontconfig dependencies to current pkgsrc versions,
to address issues with NetBSD-6(and earlier)'s fontconfig not being
new enough for pango.

While doing that, also bump freetype2 dependency to current pkgsrc
version.

Suggested by tron in PR 47882
2013-06-03 10:05:17 +00:00
joerg
043495d880 Don't define static modfl and friends, it now conflicts with math.h.
Use our libltdl to avoid the libc.la hack.
2013-03-24 16:54:59 +00:00
wiz
d1b820f37b Recursive bump for png-1.6. 2013-02-16 11:18:58 +00:00
adam
3f2cc57b2b Revbump after updating graphics/pango 2012-10-08 23:00:34 +00:00
asau
88feb4ac62 Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days. 2012-10-02 20:11:34 +00:00
tron
14215633d2 Mass recursive bump after the dependence fix of the "cairo" package
requested by Thomas Klausner.
2012-10-02 17:10:28 +00:00
ryoon
00a69f13d3 Fix build on NetBSD current.
Set libexecinfo for link.
2012-09-29 11:46:36 +00:00
obache
c38c120ee5 recursive bump from libffi shlib major bump
(additionaly, reset PKGREVISION of qt4-* sub packages from base qt4 update)
2012-09-15 10:03:29 +00:00
adam
b15c922bcc Revbump after updating graphics/cairo 2012-09-07 19:16:05 +00:00
marino
f162cdcb03 Recursive PKGREVISION bump for tcl and tk upgrade to 8.5.12 2012-08-21 23:49:18 +00:00
wiz
ee311e3b36 Recursive bump for pcre-8.30* (shlib major change) 2012-03-03 00:11:51 +00:00
wiz
5a1e8b0499 Revbump for
a) tiff update to 4.0 (shlib major change)
b) glib2 update 2.30.2 (adds libffi dependency to buildlink3.mk)

Enjoy.
2012-02-06 12:40:37 +00:00
sbd
0baf031533 Recursive dependency bump for databases/gdbm ABI_DEPENDS change. 2012-01-24 09:10:50 +00:00
hans
2021c0e11b Convert to USE_TOOLS=zip. 2012-01-14 02:09:35 +00:00
asau
fcde41453f Avoid picking builtin SQLite. 2011-12-23 19:01:40 +00:00
sbd
04daa2f1b8 Recursive bump for graphics/freetype2 buildlink addition. 2011-11-01 06:00:33 +00:00
obache
c5d8a2a356 Recursive bump from gdbm shlib bump. 2011-08-23 13:06:45 +00:00
asau
5e83b51b3d Update GNU Smalltalk to version 3.2.4
List of user-visible changes in GNU Smalltalk

NEWS FROM 3.2.3 TO 3.2.4

o   Autoload is extended to allow plugging in arbitrary loaders.

o   Array items in a CStruct didn't work, this is fixed now.

o   DLD could have problems when the same library was requested multiple
    times.

o   Errors in the bind() system call were not detected correctly; this
    has been fixed.

o   Fixes for platforms with 113-bit long doubles.

o   Fixes to Delay in the presence of delays with the exact same expiration.

o   Fixes to the HTTP package, including correct flushing of POST requests
    and doesNotUnderstand exceptions when the host did not exist.

o   GLUT bindings now build correctly under Windows.

o   Many smalltalk-mode improvements.

o   New methods: TextCollector>>#critical:,

o   nil can be passed to a C function accepting a #cObjectPtr (i.e.
    void **) argument.

o   SocketAddress>>#allByName: returns nil now, instead of an empty array,
    when getaddrinfo succeeds but returns no address for the requested
    address class.

o   SocketAddress>>#byName: returns addresses for the default address class
    when the receiver is SocketAddress (and not a subclass).

o   Support for older versions of GnuTLS.

o   Swazoo's static content serving was broken and has been fixed.

o   The GST_PACKAGE macro supports having multiple .la files in its last
    argument.  gst-package's --prepare option was broken and has been fixed.

o   The NetClients exception ProtocolError now includes the erroneous
    response.  Similarly, the package includes ProtocolNotification which
    is used, for example, for HTTP redirects.

o   Updated the Squeak/Pharo fileout parser.

o   Updated VisualGST.

-----------------------------------------------------------------------------

NEWS FROM 3.2.2 TO 3.2.3

o   Class attributes can have more than 1 keyword.

o   Documented #byteArrayOut C call argument passing mode.

o   Fixed crash when an invalid UnicodeString was created using
    #changeClassTo:

o   Fixed deadlock with #atEnd and two-way pipes.

o   Fixed bugs when adding instance variables to an existing class.

o   Fixed Socket>>#isPeerAlive falsely returning true.

o   Fixed some bugs in UTF-7 conversion.

o   FreeBSD port and 64-bit Darwin port.  The latter requires a
    pre-installed libsigsegv.

o   "gst-convert -f squeak" reads binary selectors with more than two
    characters; however they should be shortened with rewrite rules
    to use the output.

o   gst-doc can generate sensible documentation for a package if
    some of its prerequisite are not loaded, even if some of the
    package's classes subclass from the prerequisite.

o   GTK+ bindings are generated correctly for newer versions of GLib
    (tested up to 2.26).

o   If found, pre-installed libsigsegv, libffi and libltdl are used by
    default.

o   Improvements for Emacs mode.  Installation of Emacs mode detects
    Debian's /etc/emacs/site-start.d, and a --with-lispstartdir option
    is provided for distributions that are not Red Hat- or Debian-based.

o   Machine-specific optimizations for x86-64, and other microoptimizations
    resulting in small but consistent performance improvements.

o   More out of memory conditions are detected.

o   New methods: ByteArray>>#castTo:, ByteArray>>#asCData,
    String>>#asCData, UndefinedObject>>#inheritsFrom:

o   New goodie: Announcements.

o   Number class>>#readFrom: can parse numbers in scientific notation.

o   Package descriptions do not need to include a <file> item for each
    <filein> item.  However, it is still possible to include them for
    backwards compatibility, and it is possible to include a source file
    as both <filein> and <built-file> (so that gst-package --dist will
    skip it).

o   Packages can be downloaded using HTTPS if GnuTLS libraries are
    present.

o   Performance statistics printed by -V are now correct.

o   Scoped methods ("A class >> a") can be used in an "A class [ ... ]"
    block.

o   Semaphore>>#wait returns nil if the wait was interrupted externally
    (e.g. from Process>>#resume).

o   String>>#asCData: and String>>#asCData NULL-terminate their output.

o   Support for timeouts when waiting on a Semaphore.

o   Swazoo supports SCGI.  Its configuration however is still manual,
    since the Seaside and Iliad adaptors do not know about it.

o   Updated VisualGST.
2011-04-30 11:46:15 +00:00
obache
1d9df3258a recursive bump from gettext-lib shlib bump. 2011-04-22 13:41:54 +00:00
wiz
af3596f984 png shlib name changed for png>=1.5.0, so bump PKGREVISIONs. 2011-01-13 13:36:05 +00:00
abs
9987fa4b3a PKGREVISION bumps for changes to gtk2, librsvg, libbonobo and libgnome 2010-11-15 22:56:08 +00:00
wiz
200e3c4a04 Bump dependency on pixman to 0.18.4 because cairo-1.10 needs that
version, and bump all depends.

Per discussion on pkgsrc-changes.
2010-09-14 11:00:44 +00:00
asau
9ecea2b1d3 Update to GNU Smalltalk 3.2.2
NEWS FROM 3.2.1 TO 3.2.2

o   Fixes to gst-remote.

o   Fixes to the Emacs mode.

o   Fixes to compilation warnings.

o   Generational GC is broken on SPARC and is now disabled.

o   When compiling a 32-bit version on a 64-bit system, detection of
    which packages to install was improved.


NEWS FROM 3.2 TO 3.2.1

o   All built-in packages can be disabled with a configure option like
    --disable-gdbm or --disable-complex.

o   All tools support --verbose.

o   Fixed bugs in the distributed gnu-smalltalk.pc file.

o   Improved portability to Solaris.

o   Many bug fixes to UDP sockets.  In particular, daragrams received from
    a socket can be placed directly onto another socket using #nextPut:.

o   Many improvements to VisualGST.

o   Each test in the testsuite has a 1-minute timeout.

o   The undocumented DynamicVariable class in GNU Smalltalk 3.2 is now
    documented, but it had a small change in the implementation.  The
    #defaultValue class method is not present anymore, and is replaced by
    #valueIfAbsent:.  Subclasses can override #value to obtain the
    effect of #valueIfAbsent:.

    The class has also been rewritten and is much faster now.


NEWS FROM 3.1 TO 3.2

Backwards-incompatible bug fixes and changes:

o   Collection>>#anyOne gives an error if the receiver is empty.

o   "aNumber raisedToInteger: 0" will raise an exception if and only if
    aNumber is not a floating-point value.  This was backwards in previous
    versions.

o   Interval>>#first and Interval>>#last give an error if the interval is
    empty (i.e. if start > stop and the step is positive, or start < stop
    and the step is negative).

o   SequenceableCollection>>#sortBy: was renamed to #sort:.  The old message
    is _not_ provided for backwards-compatibility.

o   The semantics of recursive directory descent were adjusted as follows:
    1) the '.' and '..' directory entries are not passed; 2) for #do:, the
    file is passed directly (3.1 used to pass another recursive decorator);
    3) before the descent starts, the directory itself is passed to the block.

o   The XML parser will ignore whitespace if placed in non-validating mode.

o   The suggested way to instantiate an XML parser is now using
    "SAXParser defaultParserClass", which will work with either of the
    two available parsers (the existing Smalltalk parsers, and the Expat
    bindings; see below).


New features (base classes):

o   Floating-point rounding to integer is now correct also for very
    large numbers; fix contributed by Nicolas Cellier.

o   Methods have been added to Integer to print numbers with padding
    to a specified width.

o   New FilePath methods #owner:, #group:, #owner:group: allow setting
    a file's owner and group.

o   Sending mode, file time and owner setters to a recursive directory
    decorator (such as `Directory working all') sets the mode/time/owner
    on all files under the path.

o   Speedups for hashed collections

o   String>>#subStrings: accepts a single separator character or also, in
    accordance with ANSI, a String holding a list of separators.

o   The old instance-based exception handling has been removed.  Standard
    ANSI class-based exceptions have been available since GNU Smalltalk 1.8.2.

o   The text-based #inspect method is now available also as
    Object>>#examine and Object>>#examineOn:, so that it will also work
    on arbitrary streams and will be available when a GUI is loaded.
    Contributed by Stefan Schmiedl.


New features (tools):

o   gst-convert can emit Squeak fileouts.

o   New graphical interface VisualGST, loaded with gst-browser.  The old
    browser is still available, but obsolete.

o   New ProfilerTools package for callgraph profiling of Smalltalk programs.
    A companion gst-profile tool will create profiles in callgrind-compatible
    format.  Contributed by Derek Zhou.

o   Packages can be downloaded and updated directly from the network.  The
    repository of packages is at http://smalltalk.gnu.org/project; the
    repository holds the location of the package.xml files, which point to
    the svn or git URL of the code.

    In order to download a package with git, version 1.6.2 is required.

o   SUnit supports expected failures.


New features (VM):

o   Fixes in garbage collection heuristics provide improved performance on
    programs allocating many long-lived objects.  Contributed by Derek Zhou.

o   Floating-point numbers are now read correctly.

o   In idle times, GNU Smalltalk will perform incremental garbage
    collection.  When it finishes, GNU Smalltalk will consume zero CPU.

o   Mostly rewritten Windows port.  It should mostly work except for
    sockets.  The socket code will be rewritten (for all platforms)
    for 3.3 anyway.

o   Support for one-way become (Object>>#becomeForward:)

o   The millisecond clock uses CLOCK_MONOTONIC where available.


New features (packages):

o   Many improvements to the Gtk bindings.

o   NetClients supports ESMTP commands.

o   New goodie, the SandstoneDb object persistence framework.

o   Swazoo upgraded to version 2.2, plus local fixes.

o   The Complex package uses numerically stable algorithms

o   The Continuations package provides delimited continuations via
    BlockClosure>>#shift and BlockClosure>>#reset.  Both methods accept
    a block (1-arg for shift, 0-arg for reset).

o   An XML pull parser is included as package XML-PullParser.  The package
    is based on the VisualWorks and Squeak pull parsers by Anthony Blakey
    and Ken Treis.

o   In addition to the validating XML parser, a non-validating Expat-based
    parser is available in package XML-Expat.  The Expat parser is
    experimental, but it is very fast and supports both pull and push
    operation.


Bug fixes:

o   Code running as a Generator now honors exception handlers outside the
    Generator block.

o   Fixed copying of Dictionary to not share the underlying associations.

o   Fixed ##() expressions that return a block

o   EPIPE is handled correctly.

o   Running on kernels without SOCK_CLOEXEC support will not fail
    even if the VM was compiled on a kernel that supported it.

o   The Sockets package failed to initialize when the machine was not
    connected to the network; this has been fixed.

o   The Transcript now uses a RecursionLock.  This fixes crashes when
    an exception occurred while printing a backtrace.


Miscellaneous:

o   GNU Smalltalk now does not rely anymore on specific (old) versions
    of libtool.

o   GNU Smalltalk tries to enable Emacs modes automatically on systems
    that support a site-lisp/site-start.d directory.

o   REPL autocompletion includes all symbols including unary messages
    (and variable names).

o   Process-local variables are now stored in an IdentityDictionary rather
    than a LookupTable.
2010-07-31 22:06:24 +00:00
wiz
e8d8834f6a Bump PKGREVISION for libpng shlib name change.
Also add some patches to remove use of deprecated symbols and fix other
problems when looking for or compiling against libpng-1.4.x.
2010-06-13 22:43:46 +00:00
obache
e6981bb6ee * fixes build with gmp-5 (patch-ai).
* apply CVE-2009-3376 patch (patch-aj).
* drop dependency on libltdl, not used

Bump PKGREVISION.
2010-04-09 01:54:20 +00:00
asau
00708ce7e3 Recursive revision bump for GMP update. 2010-03-24 19:43:21 +00:00
asau
d6e4162bf0 Add RCS Id and comment to the patch. 2010-01-21 06:26:35 +00:00
asau
c9837965f5 Avoid creating broken libc.la, bump revision. 2010-01-21 06:21:07 +00:00
joerg
0501645a5e Recursive bump for libltdl 2009-12-15 23:41:45 +00:00
sno
6f7368d4db bump revision because of graphics/jpeg update 2009-08-26 19:56:37 +00:00
joerg
edbc2fac64 Replace @exec/@unexec with @pkgdir or drop it. 2009-06-14 20:34:12 +00:00
joerg
62d1ba2bac Remove @dirrm entries from PLISTs 2009-06-14 18:03:28 +00:00
hasso
b56a4e48ec Make it build on DragonFly. 2009-06-04 07:40:58 +00:00
hasso
483c382fea Build depends on zip. 2009-06-03 08:49:31 +00:00
wiz
272d51cc21 Recursive ABI depends update and PKGREVISION bump for readline-6.0 shlib
major change.

Reported by Robert Elz in PR 41345.
2009-05-20 00:58:05 +00:00
asau
7dc7f6f25e Update to GNU Smalltalk 3.1.
There're numerous changes, which include various improvements,
new features and bug fixes.

Most notable changes include async. signal safety, threads support,
remote control of Smalltalk VM via TCP socket, DBI improvements,
bindings to Cairo, LibSDL, OpenGL and GLUT, Swazoo web server,
newer Seaside application server and web framework.
2009-04-10 17:36:42 +00:00
ahoka
ff90db518e Replace perl and sed interpreter in installed scripts. 2008-09-06 17:54:15 +00:00
obache
0bb1707783 Fixed build error.
Patch provided by Aleksej Saushev in PR 36888.
2007-09-03 16:28:56 +00:00
obache
f667a7e4a0 Update smalltalk to 2.3.5.
List of user-visible changes in GNU Smalltalk

NEWS FROM 2.3.4 TO 2.3.5

o   Added more examples of continuations.

o   Fixed a floating-point accuracy problem in the test suite.

o   Fixed a 64-bit cleanliness problem in the GDBM bindings.

o   Generational GC enabled on x86_64.

o   Support for writing a block with arguments and no statements
    as [ :a :b ] in addition to [ :a :b | ].

o   The StreamFilter.st example, which provided lookahead, filtering,
    concatenation and other kinds of manipulation for Streams, has been
    promoted into the default image.

-----------------------------------------------------------------------------

NEWS FROM 2.3.3 TO 2.3.4

o   Behavior>>#evaluate: and MethodDictionary>>#removeAt:ifAbsent: would
    cause the method dictionary's size to double.  This caused sometimes
    spurious failures in floatmath.st.

o   Fixed bug in LargeInteger division on systems not equipped with GMP.

o   Fixed bug in socket #nextHunk implementation, which lost the first
    or second byte in the input buffer.

o   Fixed paths in the image when "make DESTDIR" was used.

o   Fixed implementation of Dictionary>>#addAll:, and fixed Integer>>#binomial:
    when the argument is 0 or self.

o   Fixed various minor bugs and imprecisions in the documentation.

o   Improvements to the ancillary scripts gst-load and gst-sunit.  In
    particular, a package can describe the classes that constitute its
    testsuite, and gst-sunit allows to quickly run the testsuite for a
    package.

o   Improvements to the test suite.  Several of the modules included with
    GNU Smalltalk are tested.  The testsuite is now written using Autotest.

o   Some libffi files (for IA64 and PA) were missing from the distribution.

o   Upgraded libsigsegv, for improved Mac OS X on Intel support

o   zlib bindings provided in package ZLib.

-----------------------------------------------------------------------------

NEWS FROM 2.3.2 TO 2.3.3

o   Introduced the --with-imagedir configure option to specify the directory
    used for the image.

o   The manual was not properly generated in version 2.3.2.

o   Removed text relocations from the virtual machine's shared library.

-----------------------------------------------------------------------------

NEWS FROM 2.3.1 TO 2.3.2

o   #copyFrom:to: is uniformly 0-based for all Streams (unlike in Collections),
    because a Stream has 0-based #position and #position: methods.

o   Fixed many floating point rounding bugs in LargeIntegers and Fractions,
    thanks to Nicolas Cellier.

-----------------------------------------------------------------------------

NEWS FROM 2.3 TO 2.3.1

o   configure does not lock up when the system emacs is XEmacs and does not
    include both the comint package and the package's source code.

o   Fixed a garbage collection bug that typically occurred when installing
    GNU Smalltalk, or when launching the installed image.

o   gst-package honors the INSTALL command found by configure.

o   gst-config does not "forget" to prefix the library directories with -L.

o   Segmentation violations on large integer operations (on 64-bit hosts)
    were fixed.

-----------------------------------------------------------------------------

NEWS FROM 2.2 TO 2.3

IMPORTANT: GNU Smalltalk now adds an explicit exception to the GNU GPL
license, allowing the programs running under the virtual machine to use
a GPL-incompatible license.  This exception is used both by the
virtual machine and by the library bindings included in GNU Smalltalk.
This clears gray areas when a Smalltalk program is using functions
in the external library bindings via dynamic linking and the foreign
function call interface (C call-outs).


o   C call-outs returning #void now return self rather than nil.
    Performance of code heavily using C call-outs has improved.

o   FileStreams can now use pwrite for more efficient operation on files
    opened for read/write, and will do many less gratuitous lseek
    operations.  pread will also be used by FileStream>>#copyFrom:to:.
    The number of system calls issued when generating the documentation,
    for example, is reduced by a third.

o   Fixed bug in methods containing both -0.0 and 0.0 (positive and negative
    floating-point zero).

o   Fixed bug in Directory class>>#create:, that could not create a
    directory relative to the current directory.

o   Fixed bug in File>>#touch, which did not work really.  There are also
    methods to modify a file's atime and mtime.

o   Fixed bug in SortedCollection.  After #removeAtIndex:, adds would leave
    the collection unordered.

o   Fixed many more bugs.

o   Introduced a method to efficiently convert a WriteStream into a ReadStream.
    It is called #readStream and makes WriteStream more polymorphic with String.

o   Introduced two more class shapes, #character and #utf32, that can be used
    for String and UnicodeString.

o   More reliable detection of at-end-of-file condition for pipes, TTYs,
    and so on (especially on Mac OS X), and of sockets closed by the peer.
    Due to incompatibilities between various OSes, you are advised to test
    end-of-stream conditions *before* rather than after reading a character
    from stdin.  In 2.2, either way would work, but serious bugs were
    found on Mac OS X unless stdin was redirected from a file.

o   Moved gdk_draw_ functions to GdkDrawable.

o   New goodie to parse the command line.  Look at the documentation for
    the Getopt class and for SystemDictionary>>#arguments:do:.

o   New example, lazy collections.  When loaded, #select:, #reject: and
    #collect: do not create a new collection unless necessary.  Idioms like

	(a select: [ :each | ... ]) do: [ : each | ... ]

    or

	a := a select: [ :each | ... ].
	a := a reject: [ :each | ... ].
	a := a select: [ :each | ... ].
	^a size

    can be much faster when this example is loaded.

o   Regular expressions are now included in the default image.  The interface
    is now definitive and is similar to 2.2.  The concrete classes for
    RegexResults are in a private namespace (since the user need not
    instantiate them anyway).  Right now, regular expressions are only
    usable for String objects (see Unicode support below).  This may
    change in the future.

o   The backtraces now omit again the internal methods in the exception
    handling system.

o   The class above which super-send bytecodes start searching is now embedded
    in the bytecode stream.  This provides the infrastructure to implement
    'here' as in Smalltalk/X or 'self.Foo b' to execute the Foo>>#b method
    (these possible extensions have not been implemented).

o   The header files compile cleanly with a C++ compiler.  For the occasion,
    the preferred name of the old `mst_Object' has changed to `gst_object'.

o   Various speedups.


Unicode support:

o   Characters above 127 are no longer used to represent extended ASCII
    characters.  Instead, they are only used to represent a byte in
    the encoding of the Unicode characters from 128 on.  To create
    them use the Blue Book method Character class>>#value:.

    To represent Unicode characters above 127 use the (ANSI Smalltalk)
    Character class>>#codePoint: method.  Note that these characters
    *cannot* be shown on a stream with #nextPut: (use #display: instead)
    nor compared with #== (use #= instead).

    Character literals like $+ or $A are guaranteed to create normal
    "Character" objects, for which you can safely use #nextPut:.  Right
    now, these are valid only for characters between 0 and 127.  To create
    Character literals for unicode characters, use the new syntax to
    express characters using their Unicode code point.  This may be
    extended in the future to support Unicode character literals.

    A ``safe'' way to obtain the character whose encoding is between
    128 and 255 is this (which requires the Iconv module to be loaded):

        ##('<your character>' asUnicodeString first)

    (This snippet has no shortcut by design because, in general, converting
    a Character to a UnicodeCharacter is not a well-defined operation).

o   New UnicodeCharacter and UnicodeString classes.  These new classes
    can also be passed to and received from C functions.  See the
    manual for more information.

o   New syntax $<13> to express characters using their Unicode code point.
    As anticipated, this syntax will create instances of the new UnicodeCharacter
    class when the number is > 127.

o   Part of the I18N module was separated into the Iconv module, which
    provides support for printing Unicode characters and strings correctly.


Other goodies:

o   NCurses bindings, contributed by Brad Watson.

-----------------------------------------------------------------------------

NEWS FROM 2.1.12 TO 2.2

Scripting improvements:

o   A sharp-bang sequence at the beginning of a file is parsed as a
    one-line comment.

o   Provides an "-f" option (long option "--file") to be used in a #! line,
    as in "#! /usr/bin/env gst -f", which has the same effect of -Q,
    processing the file indicated by the option's argument, and passing
    the rest of the command line to GNU Smalltalk.  In other words, the
    two invocations that follow are equivalent:

	gst -f script.st ARG1 ARG2
	gst script.st -Qa ARG1 ARG2

o   Load.st installed as gst-load, Reload.st installed as gst-reload,
    Test.st installed as gst-sunit.


VM changes:

o   Can define subclasses of CompiledMethod and have a method invoked on
    the instances whenever the method is called.

o   Can pass a "void **" to C using the #cObjectPtr parameter specifier
    (previously undocumented and broken).

o   The #class method can be overridden.  This is useful for example
    for debuggers and proxies.

o   Code for decoding/interpreting the bytecode set is for the most part
    automatically generated.  Take a look at the ``genbc'' and ``genvm''
    programs if you are going to write an high performance interpreter, and
    write to the mailing list for any information on them or on the other
    program ``superops'' (this one is much more specialized).

o   CompiledBlocks and CompiledMethods are read-only.

o   Dollars are allowed in the middle of identifiers and method names.
    This is unportable, so do not abuse it.  As with underscores, it is not
    possible to use them at the beginning of an identifier or method name.

o   Fixed bug that caused the compiler to accept duplicate argument or
    temporary names.

o   GCC needed to compile GNU Smalltalk.

o   gst_smalltalk_args accepts a const char **.

o   Improved clarity and portability using intptr_t, size_t and ptrdiff_t
    more widely and wisely.

o   Indexed instance variables can be 8-bit and 16-bit, signed and unsigned
    integers; or they can be 32-bit and 64-bit, signed integers and unsigned
    integers and floating point values; or objects of course.  Previously
    the only three possibilities were objects, 8-bit unsigned ints, and
    pointer-sized unsigned ints.

o   Instance variables are scanned backwards: if a subclass declares an
    instance variable with the same name of the superclass, it wins when
    compiling code in the subclass (fixes the so-called "fragile subclass"
    problem).

o   Keywords and parameters need not be separated by a space (as in
    `self x: y z:w').

o   New bytecode set.  This is a significant departure from the Blue Book's
    instruction set, and it improves performance by ~20%.  Over 150 common
    bytecode sequences are optimized, saving on dispatching overhead and
    minimizing the cost of decoding arguments.

o   Options -l and -L (--log-changes and --log-file) are no more.  The
    change log is not useful outside the GUI, while inside the GUI it
    ought to be maintained by the GUI itself.

o   Option -s is no more.  It was made the default in 2.1.5.

o   Passing floating-point arguments to C works.

o   Prefetching instructions are used wherever supported (Alpha, SPARC,
    PPC, AMD K6 or newer, Intel PIII or newer, all with GCC 3.2).  This
    speeds up the startup by up to 20%.

o   Instances of subclasses of CompiledBlock and CompiledMethod can be
    created using the same primitive that creates CompiledBlocks and
    CompiledMethods, but sent to the subclass.

o   Several important bug fixes in event handling and asynchronous file
    input/output.

o   Subclasses of MethodInfo can be used as the descriptors for CompiledMethod
    objects.

o   Two-character binary messages ending with a minus are scanned differently
    if followed by a number: "1+-2" is now read as "1 + -2", not "1 +- 2".
    This is what you would usually expect; however, including spaces explicitly
    is recommended.

o   When GCC 3.3 or later is used, a shared library is also built.  The
    code has been to some extent optimized to make this less expensive, but
    the shared library still has a 5-10% performance hit.  Note that the x86
    shared library is undebuggable (-fomit-frame-pointer) with GCC < 4.0
    because of the dearth of registers.  The installed virtual machine is not
    linked to the shared library for optimal speed.

o   Wider set of operations available to modules that plug into GNU Smalltalk,
    including access to system classes, queries on the method dictionaries,
    and access to indexed instance variables.



Smalltalk changes:

o   CLongDouble class allows one to access long doubles; long doubles are
    supported by CStruct, Memory and ByteArray as well.

o   CompiledCode>>#literalsDo: does what CompiledCode>>#allLiteralsDo:
    used to do.  CompiledCode>>#allLiteralsDo: recurses into literal
    arrays.

o   Glorp, a layer for mapping objects to relational databases, is provided
    and integrated with the MySQL driver.

o   GNU Smalltalk includes a mechanism for defining security policies
    on a class-by-class basis.  See below for more information.

o   Interval can return a #first and #last even if the Interval is empty.
    These are the start and stop object that it was created with.  The
    private methods #start, #stop and #step have thus been superseded by
    #first, #last and #increment.

o   #min: and #max: always return a NaN when one of the two operands is
    a NaN; previously they would always return the other operand.

o   New syntax for C call-outs, can be transparently filed out from the
    image and then filed back in.  See the documentation or the
    kernel/CFuncs.st file for more information.

o   PackageLoader can be told the namespace in which to load the package.
    Most package loading scripts are now no longer necessary or can be
    reduced to simple initialization duties.

o   #raisedToInteger: is better optimized and does the minimum number of
    multiplications for exponents up to 256.

o   SequenceableCollection has a more efficient implementation of #fold:,
    as well as #second, #third, and #fourth (and I'm going to stop here!).

o   #return and #return: now reinstate exception handlers, which will
    therefore be active while executing pending #ensure: or #ifCurtailed:
    blocks.

o   Stored CompiledBlocks into the method's literal frame for non-clean
    blocks, and turned #blockCopy: into a `make dirty block' bytecode
    without introducing a method of unclear utility.  This is a little
    faster and (consistently) saves around 1% on image files.

o   The syntax for primitives has been generalized into a "method attribute"
    mechanism; pragmas are accessible through methods in CompiledMethod.

o   The thisContext variable is compiled as a message send like
    "ContextPart thisContext".

o   When a send to super fails, #doesNotUnderstand: is also sent to super
    and not to self.  This change is experimental; these semantics look more
    coherent to me.  As a result (think about it...) sends to super from a
    root class are now forbidden.

o   When a non-existing message is sent with the wrong number of arguments
    (using #perform:), #doesNotUnderstand: is invoked.  In the past, the
    wrong number of arguments error would have been printed.  The reason
    for this is to allow selector names that would be invalid for the
    Smalltalk language.


Work in progress:

o   Blox-GTK interface, to use the browser under Gtk+.  Currently, only
    the browser works; to try it, configure with --enable-gtk=blox or
    load the BloxGTK package.  Thanks to Robert Collins.

o   GNU Smalltalk now supports executing (some) Java programs.  See the
    info documentation for more information.  The class library is based
    on GCJ 3.4, but should be reasonably upwards-compatible.  There is no
    AWT nor JNI support, and it is not planned; networking, reflection and
    serialization are not there but should be added in the future.


Overview of the security mechanism:

o   Implemented class-level permissions.  Each class can have its own
    permission set, and if this is not trivial (all-allowed) the class
    is marked untrusted; then instances of that class, as well as contexts
    that have at least an untrusted object as the receiver in the sender
    chain, are considered untrusted.  In the future, security checks will
    be made for untrusted objects in such methods as

	C call-outs				[#memoryAccess]
	CObject class>>#alloc:			[#memoryAccess]
	CObject class>>#alloc:type:		[#memoryAccess]
	CObject>>#free				[#memoryAccess]
	CObject>>#at:				[#memoryAccess]
	CObject>>#at:put:			[#memoryAccess]
	Memory>>#at:				[#memoryAccess]
	Memory>>#at:put:			[#memoryAccess]
	FileDescriptor>>#fileOp:...		[#io]
	ObjectMemory>>#snapshot:		[#io]
	ObjectMemory>>#quit:			[#system]
	ObjectMemory>>#abort			[#system]
	ObjectMemory>>#setSpaceGrowRate:	[#system]
	ObjectMemory>>#setSmoothingFactor:	[#system]
	ObjectMemory>>#setGrowThresholdPercent:	[#system]
	ObjectMemory>>#setBigObjectThreshold:	[#system]
	ObjectMemory>>#growTo:			[#system]
	Object>>#makeUntrusted:			[#securityManagement]
	Object>>#instVarAt: 			[#debugging]
	Object>>#instVarAt:put:	           	[#debugging]
	Object>>#perform:... 			[#debugging]
	Object>>#changeClassTo:			[#debugging]
	Process>>#suspend			[#processManagement]
	Process>>#resume			[#processManagement]
	UndefinedObject>>#subclass:... etc...	[#system]
	Class>>#subclass:... etc... (mutation)	[#system]
	Metaclass>>#instanceVariableNames: 	[#system]
	MethodDictionary>>#at:put:		[#system]

o   Instance variables of an untrusted class that are declared by a trusted
    class are read-only.  This is necessary to avoid that a misbehaving
    class method screws up the instance variables of Behavior that are known
    to the VM.

o   Methods are verified.

o   Permissions can be granted by a method to its callees if the method's
    definition class owns those permissions.  This can be used to invoke
    trusted C call-outs.

o   Primitives cannot be declared for untrusted objects (this might be
    fine-grained in the future).


-----------------------------------------------------------------------------

NEWS IN 2.1.12

This is a bugfix release.  It fixes several problems on 64-bit systems.

-----------------------------------------------------------------------------

NEWS IN 2.1.11

This is a bugfix release.

-----------------------------------------------------------------

NEWS IN 2.1.10

This is a bugfix release, but with this visible change:

o   PackageLoader supports loading package source code from multiple
    directories.

    Directory packages.xml is in       Directories looked in
    /usr/share/smalltalk               /usr/share/smalltalk
                                       parent of local kernel directory, if any
                                       image directory
    parent of local kernel directory   parent of local kernel directory
                                       image directory
    image directory                    image directory

o   Directory>>#append:to: supports passing an absolute path as the file
    name (first argument).  In this case, the file name itself is returned.

This release works under MacOS X 10.3 and 10.4 as well.  It also works
around bugs in MacOS X Tiger's poll function.
2007-09-03 13:36:28 +00:00
minskim
1f59c2f2f8 Use stdlib.h instead of malloc.h, which is nonstandard. 2007-06-23 08:26:44 +00:00
joerg
b07161d9a8 Fix build on DragonFly. XXX Make this use devel/libsigsegv. 2007-03-07 18:37:33 +00:00