summaryrefslogtreecommitdiff
path: root/lang/gambc/patches
AgeCommit message (Collapse)AuthorFilesLines
2008-07-16Update to version 4.2.8. Changes:bjs1-3/+3
- Fixed infinite loop when a character is output to a port whose character encoding does not support the character (e.g. (display (integer->char 1000)) when character encoding is ISO-8859-1). - Added procedures to extract the threads and thread groups contained in a thread group (thread-group->thread-list, thread-group->thread-vector, thread-group->thread-group-list, thread-group->thread-group-vector). - Renamed open-process' show-window: setting to the more reasonable show-console: since it controls the visibility of the console. - Added readtable-max-unescaped-char and readtable-max-unescaped-char-set which control the external syntax of characters in symbol, string and character objects written with the write and pretty-print procedures. - Added tcp-server-socket-info to get the IP address and port-number of a tcp-server-port (useful when the server port was created with a kernel assigned port-number, i.e. setting port-number: 0). - Fixed incorrect calls to ___P macro in lib/*.c, and added lib/check___P script to automatically detect such calls (script contributed by Derek Peschel). - Added a "terminate" interrupt which terminates the Gambit process cleanly (all the exit jobs are executed before exiting). On Unix this interrupt is raised by the SIGTERM signal so a "kill 1234" where 1234 is the pid of the Gambit process will terminate the process. On Windows the interrupt occurs when the console window is closed or the system is shutting down (however currently the system hangs while executing the exit jobs). - Fixed handling of incomplete characters at end-of-file, which are now handled like illegal characters (error signaled unless char-encoding-errors setting is set to #f). - Fixed recently introduced bug in handling of end-of-line encoding. - Added escaping of non-graphical characters in symbols: (string->symbol (string (integer->char 255))) gives |\377| . - Protect gcc extension _builtin_expect with GCC version >= 3 because old gcc versions (up to 2.95.3 it seems) did not have that extension. - Added char-encoding-errors: setting to open-file to enable/disable character encoding error checking, and -:fr and -:fR runtime options to select the default setting for file I/O (on/off). - Removed non-ASCII characters from lib/_num.scm . - Fixed error introduced with end-of-line encoding of the history file. - Changed end-of-line encoding from lf to cr-lf when reading source code. This makes the load procedure and the compiler more lenient when reading source code with non-Unix-style end-of-line encoding. This means that source code with a string containing a CR/LF sequence will construct a string with a single #\newline character (previously both$ #\return and #\newline were put in the string). - Fixed compiler crash when compiling files containing the forms #123, #, ##, etc (file location information was not properly attached to expression) - Improve error messages produced by the C compiler when it compiles a file generated by a different version of the Gambit compiler.
2008-04-28Import version 4.2.6 of the Gambit-C Scheme System.bjs1-0/+28
Blurb: Gambit-C includes a Scheme interpreter and a Scheme compiler which can be used to build standalone executables. Because the compiler generates portable C code it is fairly easy to port to any platform with a decent C compiler. The Gambit-C system conforms to the R4RS, R5RS and IEEE Scheme standards. The full numeric tower is implemented, including: infinite precision integers (bignums), rationals, inexact reals (floating point numbers), and complex numbers. Gambit-C supports a number of extensions to the standards including (non-exhaustively): - an optimizing compiler - with several powerful transformations (automatic function inlining, partial evaluation, etc) - that generates properly tail-recursive portable C code - a scalable thread system that can handle millions of concurrent threads - an I/O system fully integrated with the thread system that supports regular files, ttys, sockets (client and server, with TCP or UDP), directories, processes, and pipes - an infix syntax extension (SIX) that allows mixing code in the standard prefix syntax with code in a C-like syntax - SRFIs 0, 4, 6, 8, 9, 18, 21, 22, 23, 27, 39 - a REPL/debugger with - a continuation inspection facility (i.e. "backtrace") - a single-stepping mode - error messages with location of error (file, line, and column number) - emacs compatible line-editing with history - very efficient bignum implementation - a foreign function interface for C - a memory management system that grows and shrinks the heap based on the program's needs - a linker that builds standalone executables and shared libraries - dynamic loading of compiled modules and libraries (supported on many platforms) - Unicode support for characters, strings, I/O and source code - object finalization, pretty printing, keyword objects optional and keyword parameters (with the syntax and semantics of DSSSL) - configurable reader with control over case sensitivity - write/read invariance of symbols, e.g. (string->symbol "B;123") => |B;123| - write/read invariance of floating point numbers - unhygienic macros and more!