2006-09-21 Released SISC 1.16.5 2006-09-21 Scott G. Miller * Fixed a bug with quote printing in strings. Bug #1557206. 2006-09-11 Released SISC 1.16.4 2006-09-11 Scott G. Miller * Updated build-heapjar.scm for the new I/O layer. 2006-08-31 Released SISC 1.16.3-rc 2006-08-30 Scott G. Miller * Made |max-stack-trace-depth| a dynamic parameter, including adding serialization of StackTracers. See feature request 1538610. 2006-08-23 SISC 1.15.3 Released 2006-08-23 SISC 1.16.2-beta Released 2006-08-23 Scott G. Miller * #%fix syntoken isn't used, and thus prevents that as a binding. Fixed, see bug 1545294. 2006-08-22 Scott G. Miller * java-io converters were incorrectly passing unwrapped Scheme values. Fixed. * Character ports weren't accepting autoflush as a parameter, for backwards compatibility. Fixed. * Documented character-set as an argument to open-character-in/output-port. 2006-08-19 SISC 1.16.1-beta Released 2006-08-12 Scott G. Miller * Buffered binary port constructors weren't exported from binary-io. Fixed. 2006-08-11 Scott G. Miller * |open-character-input-port| wasn't producing read compatible streams. Fixed. * Port the os module to the new I/O system, including using the java-io module. See bug 1538636. * Changed the os module streams to be binary. This is the right thing, as they can be converted to character as needed but don't have to be. * Fixed single-line comment escape handling. See bug 1538637. 2006-08-10 SISC 1.15.2 Released 2006-08-10 SISC 1.16.0-alpha Released 2006-07-12 Scott G. Miller * Replaced generic I/O with a new, lighter weight custom ports framework, which is much faster. 2006-07-12 Matthias Radestock * Improved error reporting in Java->Scheme interface. 2006-07-10 Scott G. Miller * Fixed handling of the null character constant in the reader. See bug 1520129. 2006-07-05 SISC 1.5.1 Released 2006-06-30 SISC 1.5.1-rc Released 2006-06-30 SISC 1.13.8 Released 2006-06-21 Matthias Radestock * Fixed fatal error in de-optimisation of letrec. See bug 1509504. 2006-05-30 SISC 1.13.7 Released 2006-05-30 SISC 1.15.0-beta Released 2006-05-23 Matthias Radestock * Added |hashtable/contains?|. See FR 1493069. * Implemented srfi-59. See FR 1475144. 2006-05-18 Matthias Radestock * Fixed automatic printing of stack traces for Java exceptions. * Improved exception reporting for java proxies 2006-05-17 Matthias Radestock * Made the synopsis-length (used in error messages an warnings) adjustable. See bug 1477687. 2006-05-15 Scott G. Miller * Fixed bug in equals? with respect to nested empty lists. See bug 1482221. 2006-05-13 Matthias Radestock * Improved readability of stack traces by optionally suppressing entries for SISC-internal calls. 2006-05-05 SISC 1.14.0-alpha Released 2006-05-05 Scott G. Miller * Implemented programmer creation of chained environments. See FR 1470820. 2006-05-02 Scott G. Miller * Implemented SSL/TLS support in the networking module. See FR 1469396. 2006-04-29 SISC 1.13.6 Released 2006-04-28 Matthias Radestock * Fixed two bugs in srfi-19, including bug 1477638, and added recent leap second. Thanks to Norman Gray for these changes. 2006-04-26 Matthias Radestock * Re-enabled support for old |require-extension| syntax, but issue a deprecation warning. 2006-04-24 Scott G. Miller * Implemented SRFI-66, including buffer-compare. See FR 1475139. 2006-04-24 Matthias Radestock * Fixed two bugs in srfi-55's handling of SISC-specific extension. 2006-04-19 SISC 1.13.5 Released 2006-04-18 Scott G. Miller * Fixed return-value inconsistencies in SRFI-18, fixing bug 1472216. * Modified thread/result to throw a nested exception rather than replaying the original one. See bug 1461906. * Added build-heapjar.scm, an SRFI-22 script which will build sisc-heap.jar. See FR 1469828. 2006-04-18 Matthias Radestock * Added srfi-78. 2006-04-17 Matthias Radestock * Fixed srfi-55's |require-extension| to work in compiled code. See bug 1471254. 2006-04-16 Matthias Radestock * Added functions to inspect and modify breakpoint arguments, and to obtain breakpoint continuations. See FR 1452126. 2006-04-10 SISC 1.13.4 Released 2006-04-10 Scott G. Miller * Fixed an arity bug in SRFI-14. See bug 1464027. 2006-03-31 Matthias Radestock * Fixed a space leak in |call-with-values|. See bug 1461939. 2006-03-28 SISC 1.13.3-rc Released 2006-03-27 SISC 1.13.2-rc Released 2006-03-26 Matthias Radestock * Removed the long-deprecated "s2j java objects are procedures" feature. * Fixed arg count exception in |thread/join|. See bug 1458660. 2006-03-25 Scott G. Miller * Fixed how |compile| interacted with custom environments, and inadequacies in |interaction-environment|. See bugs 1457379, 1457261, and 1457385. 2006-03-25 Matthias Radestock * Improved error location reporting in |load|. See bugs 1458190, 1458194 and 1458196. 2006-03-24 Matthias Radestock * Added proper stack tracing. See maxStackTraceDepth parameter. 2006-03-23 SISC 1.13.1-rc Released 2006-03-22 Scott G. Miller * Converted side-effecting primitives to non-fixable procedures, fixing bug 1448235. * Genericized the process (os module) ports. See bug 1448191. * Fixed bug in |thread/holds-lock?|. See bug 1456295. 2006-03-21 Matthias Radestock * Fixed a bug in |expand-file| that resulted in source location annotations to be produced for the first expression only. See bug 1455502. 2006-03-20 Alessandro Colomba * Added java-io module as per bug 1455041. 2006-03-20 Matthias Radestock * Fixed error reporting in records module. See bug 1454411. 2006-03-19 Matthias Radestock * Fixed a bug that caused invocation of error continuations to be rather unpredictable. See bug 1453863. 2006-03-12 Matthias Radestock * Fixed several bugs in optimistic expressions triggered during unoptimisation. See bugs 1448023, 1448219. 2006-03-08 SISC 1.13.0-alpha Released 2006-03-06 Scott G. Miller * Simplified Java->Scheme API. 2006-03-02 Scott G. Miller * Added byte-oriented read/write procedures. * Modified binary ports to warn when they are used for character operations. See bug 1439761. 2006-03-02 Matthias Radestock * Fixed intricate class and resource loading problems. See bug 1434594. * Fixed procedure naming problem in generic java methods, field accessors and modifiers, which had caused error reporting on these procedures to sometimes omit the name. See bug 1442022. 2006-03-01 Scott G. Miller * Fixed bug in multiline comment parsing - expressions after a multiline comment weren't always read correctly. See bug 1441078. 2006-02-28 Scott G. Miller * Fixed the fact that |input-port-location| wasn't generic. See bug 1440409. * Documented the character-port wrapping functions |open-character-(input|output)-port|. 2006-02-28 Matthias Radestock * Replaced |current-class-path| and related functions with functions to inspect and extend a list of class path extensions. This addresses various class/resource loading weirdnesses reported in bug 1432887. 2006-02-27 Scott G. Miller * Added the buffer-io module, which provides functionality similar to string-io, but for binary buffers. See bug 1439657. 2006-02-22 Scott G. Miller * Modified SignalHook to have callbacks happen in an appropriate, thread safe DynamicEnvironment. * Fixed a bug in the invalid-syntax branch of let optimization where states weren't merged. See bug 1434848. 2006-02-22 Matthias Radestock * Fixed bug 1435707 - Java->Scheme calls via S2J proxies now happen in a sensible dynamic environment. 2006-02-21 Scott G. Miller * Modified SchemeCaller and Context.execute() to throw a SchemeException, allowing more flexible Java side error handling. * Modified sisc.sh to support older shells. See bug 1431789. 2006-02-20 Matthias Radestock * Fixed a number of bugs in srfi-43 by merging in changes from the most recent reference implementation. 2006-02-19 Matthias Radestock * Improved reporting of ClassNotFoundExceptions during deserialisation. 2006-02-17 Scott G. Miller * Fix numerous undefined variable references in various SRFIs, fixing bugs 1433481, 1433487, 1433495, 1433501 and 1433526. 2006-02-17 Matthias Radestock * Added missing export for |string-concatenate-reverse/shared| in srfi-13 module. 2006-02-16 Matthias Radestock * Introduced notion of a default application context which is used in situations where no other application context is available, e.g. during sessions deserialisation in a J2EE container. * Deprecated named application contexts. * Changed Java serialisation to serialise library bindings by name. This fixes bug 1375026, where Java serialisation of continuations would end up serialising large chunks of the heap. 2006-02-14 Scott G. Miller * Modify the signal hooking mechanisms to make their callbacks in the same dynamic environment in which they were registered, and drop the "main" AppContext assumption. 2006-02-13 Matthias Radestock * Fixed handling of dependencies in |compile-file|. See bug 1380458. 2006-02-11 Matthias Radestock * Added support for SRFI 69. 2006-02-08 Matthias Radestock * Added support for hash tables with arbitrary equivalence and hash functions. * Added support for hash tables with weak keys. * Added various functions to reflect on hash tables. * Added various hash functions. * Fixed hash table serialisation to support complex keys with circular structures. * Changed default hash table equivalence from eqv? to equal?. 2005-02-03 Scott G. Miller * Provided types for all native Scheme values (e.g. , , etc). See feature request 1423513. 2005-01-31 Scott G. Miller * Fixed bug where UTF-8 was not in fact the default character set. See bug 1391498. Thanks to Norman Gray for the patch. * Modifications to stack trace printing to omit initial info-less frames from the stack trace. * Require a Charset for the creation of SourceInputPorts. * Make the default Scheme port for DynamicEnvironment and the REPL Listen socket a character port. 2006-01-10 Matthias Radestock * Updated srfi-13 to latest reference implementation, which fixes a bug in |string-concatenate-reverse/shared|, and also replaces our stop-gap fix to a bug in |string-contains|. * Fixed a bug in srfi-13 reference implementation that resulted in string comparison predicates returning numeric values instead of #t. See bug 1400758. 2005-12-04 Matthias Radestock * Fixed bug in |parameterize| - escaping continuations now capture the current value of parameters. See bug 1372516. 2005-11-29 SISC 1.12.0-beta Released 2005-11-21 Matthias Radestock * Added support for SRFI 67. 2005-11-18 Scott G. Miller * Use a more robust (if #t (...)) wrapper to prevent definitions in the else clauses of cond and case. 2005-11-17 Scott G. Miller * Added support for SRFI 61. 2005-11-16 Matthias Radestock * Added type check of all args used by string=? and char=?. See bug 1346205. 2005-11-15 Matthias Radestock * Added interned values and, on top of that, non-generative record types and classes. This fixes the long-outstanding record serialisation bug 806864. * Made all core types and types in libraries (i.e. srfis) non-generative. 2005-11-11 Matthias Radestock * Fixed serialisation of annotations in Java serialisation of SISC values. See bug 1353781. 2005-11-01 Matthias Radestock * Improved handling of natively supported srfis. They now all have an associated module and appear as pre-imported libraries. 2005-10-28 Matthias Radestock * Fixed minor problem with some of the srfi modules - they were not registering the srfi as a feature. 2005-10-11 Matthias Radestock * Fixed bug in |string-append| - it was not copying the string when called with a single argument. See bug 1320677. 2005-10-09 Matthias Radestock * Made sisc.data.Pair.{car,cdr} private. NB: This may break existing Java code that manipulates SISC values; such code should use the provided accessor/modifier methods instead. * Fixed bug in |read-string| that allowed modification of immutable strings. See bug 1320475. 2005-10-03 Matthias Radestock * Fixed bug in reader that resulted in |read| returning immutable data when it shouldn't. See bug 1311739. 2005-10-01 Matthias Radestock * Fixed detection and handling of syntax errors in lists. See bug 1309820. 2005-08-26 Matthias Radestock * Fixed bug in srfi-14's char-set-delete. See bug 1273434. 2005-08-23 SISC 1.11.3 Released 2005-08-23 Matthias Radestock * Fixed unit scale bug in srfi-19. See bug 1266449. 2005-08-22 Scott G. Miller * Fixed a second optimistic expression bug in AppExp which would create a crufty uExp on the stack after some reverts. * Made the alter methods thread safe. 2005-08-22 Matthias Radestock * Indicate support for srfi-62. * Updated slib support to latest version (3a2). 2005-08-18 Matthias Radestock * Fixed a bug in EXPT that resulted in floating point limits to be hit too early in some boundary cases. * Fixed a mysterious problem with ROUND, in some boundary cases. * Made double-precision floating point the default (previously it was arbitrary precision) 2005-08-16 Matthias Radestock * Fixed (or, rather, added) hash codes for boxes and uninterned symbols. This was breaking things when these kinds of values were used in equal?-based hash tables, for example. 2005-08-12 Scott G. Miller * Fix serious bug in the logic for AppExp when reverting optimistic expressions. 2005-08-01 SISC 1.11.2-rc Released 2005-07-30 Scott G. Miller * Fixed the dependencies of the heap-jar target. * Fixed parser error reporting when permissive parsing is disabled. 2005-07-21 Scott G. Miller * Fix bug in SRFI-19's date->julian-day. See bug 1238375. 2005-06-06 SISC 1.11.1-beta Released 2005-05-30 Matthias Radestock * Fixed error handling on list-ref (bug 1210879). * Allow Java proxy methods to return anything if their Java return type is 'void' (feature 1111637). 2005-05-05 Matthias Radestock * Fixed arity-bug in vector-fill! (bug 1195709). 2005-05-03 Matthias Radestock * Made slib support a loadable library. 2005-04-29 Scott G. Miller * Fixed a garbage leak in Closure which could result in unnecessary values being on the stack, and thus causing problems with serialization. Thanks to Allesandro Colomba for spotting the bug. 2005-04-29 Matthias Radestock * Added some exports missing from srfi-35. Thanks to Andrew Wilcox for spotting them. 2005-04-27 Scott G. Miller * Updated SRFI-42, fixing a bug in :while reported on comp.lang.scheme. 2005-04-20 Scott G. Miller * Fixed issues with trace, which annoyingly required an untrace then trace when a traced procedure is redefined. 2005-04-15 Scott G. Miller * More efficiently fixed bug 1181453. Not copying the VLR in Closure on infinite-arity procedures can in rare cases corrupt a captured continuation. Moved most of the rest-args logic into Interpreter. 2005-04-14 Scott G. Miller * Fixed bug in logand with big integers. * Fixed missing i18n'ed message for the above error. Thanks to Alessandro Colomba for spotting them. 2005-04-12 SISC 1.11.0-alpha Released 2005-04-12 Scott G. Miller * Reintroduce copying of the vlr in closure, fixing bug 1181453. Don't yet know why. 2005-04-11 Scott G. Miller * Added the Context.execute()/SchemeCaller interface for simplified Java -> Scheme calls. * Always associate the Java thread in Context.enter with the thread context, which should fix thread/current, at least in a managed external call. 2005-04-07 Scott G. Miller * Changes to the build environment and additions to create a Debian package for SISC. 2005-04-04 Scott G. Miller * Fixed design flaw in the strict R5RS which raised an error when reserved characters are encountered even in strings. 2005-03-31 Scott G. Miller * Added the "tpl" register to the Interpreter, which contains the toplevel environment for all implicit uses such as load, getprop, putprop. 2005-03-29 Scott G. Miller * Fixed bug in SRFI-27 which was causing the secure-random-source to be deterministic. 2005-03-28 SISC 1.9.7 Released 2005-03-27 Scott G. Miller * Altered psyntax to not generate separately compilable bindings for implicit exports. See bug 1124005. 2005-03-25 Scott G. Miller * New implementation of SRFI-14 based on SRFI-60 for bitvectors. Should be much faster, and Unicode compliant. 2005-03-23 Scott G. Miller * Added support for SRFI-55 (and build it in by default) * Added support for SRFIs 51, 54. 2005-03-22 Scott G. Miller * Fixed the vector quasiquotation bug. See bug 1096048. 2005-03-15 Scott G. Miller * Changed stack trace printing to condense duplicate lines. 2005-03-14 Scott G. Miller * Implemented the logical operators (and, or, xor, not bit-count) for all integers (instead of just fixed ones), and updated the SRFI-60 implementation to use the new logcount. 2005-03-08 Scott G. Miller * Added support for SRFI 60. 2005-02-24 Scott G. Miller * Lazy dynamic-wind installation isn't semantically safe. Removed it. See bug 1151368. 2005-02-23 Scott G. Miller * Altered the REPL code to keep a stack-trace base frame, so we don't show most of the REPL's trace in exception printing. 2005-02-19 Scott G. Miller * Made the default serialization for Expressions to throw an error. This will trickle down to non-serializable expressions like threads, I/O ports, etc. 2005-02-14 Matthias Radestock * Fixed a bug in syntax-object->datum and hence define-macro. See bug 1122651. 2005-02-11 Scott G. Miller * Fixed a bug in our fix of a bug in SRFI-13, which broke string-contains-ci. 2005-02-08 Scott G. Miller * Added system introspection functions to the OS module. These may or may not be supporteed. 2005-01-22 Matthias Radestock * Prevent NPEs in code that has illegal naked references in letrecs. See bug 1106981. 2005-01-19 SISC 1.10.0-alpha Released 2005-01-16 Scott G. Miller * Fixed a bug where the SLL2 serializer was writing the string length rather than the number of bytes in its representation length, breaking deserialization. * Removed inline-primitives and inline-usual-primitives, as this is done automatically and safely now. * Applied two contributed patches: one which fixes the project's Maven description, and another that searches for sisc.shp in the SISC jar library if not found through other means. Both are courtesy of Matthew Daniel. 2005-01-15 Scott G. Miller * Catch an AccessControlException which can be thrown by SignalHook. (#1096523) * Fixed a bug where optimizer was encountering pre-ananlyzed code (due to recursion in the expander which calls eval), and choking on it. (#1099750) 2005-01-11 Scott G. Miller * Added permissive-parsing parameter, which when true, causes the parser to issue warnings and continue on most errors. The default is false. 2005-01-09 Matthias Radestock * Added missing gio/peek-char procedure to generic-io module exports. * Fixed bug in gio/read-string procedure that caused it to throw an error. * Fixed bug in gio/read-block - it wasn't accepting generic ports. 2005-01-05 Magnus Jonsson * Fix complex division bug (#1096496) 2005-01-02 Scott G. Miller * Raise errors when the dot character is encountered in vector literals. 2005-01-01 Scott G. Miller * Fix inexactness preservation regressions introduced with the fixable procedures. (#1094233) * Fix 3-arg numeric equal bug. (#1094233) * Fix nested quasiquote bug (#1093762) * Fixed remprop incompatibility with sidecar environments. (#1093699) (Thanks to Magnus Jonsson) 2004-12-31 Matthias Radestock * Added GENSYM? predicate, contributed by Magnus Jonsson. 2004-12-29 Matthias Radestock * Simplified the syntax for DEFINE-CLASS. 2004-12-27 Matthias Radestock * Implemented srfi-40. 2004-12-13 Matthias Radestock * Allow S2J proxy definitions to refer to classes defined in the same module/scope. 2004-12-11 Scott G. Miller * Changed let-monomorphic to behave more like let, allowing internal definitions in the body. 2004-12-09 Matthias Radestock * Simplified the OO system by removing slot initializers / default values. * Allow class definitions in the OO system to refer to classes, slot accessors and modifiers defined in the same module / local scope. 2004-12-07 Matthias Radestock * Implemented DEFINE-VALUES, working correctly at both the top level and inside lexical scopes. * Changed the generic procedure's DEFINE-METHOD(S) macros to be definitions. 2004-12-05 Released SISC 1.9.5 2004-12-01 Scott G. Miller * Allow arbitrary values as NamedValue names, fixing a bug in SRFI-18. 2004-11-29 Scott G. Miller * Fixed bug in quasiquote introduced with the immutability preservation 2004-11-22 SISC 1.9.4 Released 2004-11-19 Scott G. Miller * Fixed mutex state management bug in SRFI-18. 2004-11-18 Scott G. Miller * Finished making all the numeric operators work in some way with #!+inf, #!-inf, and #!nan. 2004-11-14 Matthias Radestock * Removed compiledlibs module and support for .sll libraries, because their functionality turned out to be too fragile. scc libraries are much better behaved. 2004-11-14 Released SISC 1.9.3-rc 2004-11-13 Scott G. Miller * Deprecated .sll support, which seems incompatible with the engine changes in 1.9. 2004-11-13 Matthias Radestock * Fixed a bug in s2j that caused generic java methods, accessors and modifiers to break when deserialized. 2004-11-09 Matthias Radestock * Fixed a bug that caused continuations to misbehave in a multi-threaded setting. * Simplified continuation logic significantly, without incurring any significant performance penalty. 2004-11-08 Matthias Radestock * Fixed arity checking of thunks. * Fixed a bug that caused multi-values to be recycled when they shouldn't. 2004-11-06 Scott G. Miller * Set the lcl even on thunks, to prevent value leaks from persisting in the stack. See bug 1060726. * StreamDeserializer now resolves symbolic environments in the same way as BlockDeserializer. 2004-11-05 Scott G. Miller * Define the I/O procedures as toplevel with psyntax, so that they aren't syntax-expanded as references to the generic-io module. 2004-11-04 Released SISC 1.9.2-rc 2004-11-04 Scott G. Miller * Fixed bug in error handling of load causing a null pointer exception. * Fixed CTL-C in the REPL. 2004-10-27 Matthias Radestock * Added srfi-43. 2004-10-25 Released SISC 1.9.1-beta 2004-10-25 Matthias Radestock * Removed old-s2j and old-generic-procedures. Finally! 2004-10-24 Scott G. Miller * Fixed primitive calls had no error handling, fixed. * Some read I/O generics were not redefined at top level, fixed. 2004-10-19 Matthias Radestock * Allowed java proxies to define hashCode, equals and toString. 2004-10-18 SISC 1.9.1-alpha Released 2004-10-18 Matthias Radestock * Fixed preservation of immutability in psyntax. This wasn't working with annotations turned on. See bug 994759. 2004-10-16 Scott G. Miller * LibraryAE was getting deserialized instead of the child environment due to a name conflict. 2004-10-16 Scott G. Miller * Made some attempt to display line/column numbers from load and parsing so that one can trace the start of an s-expression where syntax-errors occur, for example. 2004-10-15 Scott G. Miller * Created a dedicated flag for marking call frames as captured. Previously, vlk was overloaded, causing rare continuation bugs. See bug 1038532. 2004-10-14 Scott G. Miller * Fixed a bug in REPL that was passing the wrong array type to interpret. This was breaking uses of "sisc -c". See bug 972606. * Implemented fine grained library-delta serialization and moved the interrupt handler's thread off the stack. See bug 1046307. * Fixed various mismatches between generic I/O and the low level I/O functions scattered in the source (current-*-port for example). 2004-10-13 Scott G. Miller * Fixed bug in psyntax that broke shadowing of imports at the top level. See bug 1046317. 2004-10-13 Matthias Radestock * Fixed sisc.sh so it works correctly when rlwrap is not installed, rather than just exiting. * Changed defaults for generation of debug information and stack traces to "on". 2004-09-30 Matthias Radestock * Fixed negation of rationals. See bug 1037559. 2004-08-30 Scott G. Miller * Fixed the omission of peek-char in the generic I/O code. 2004-08-29 Released SISC 1.9.0.1-alpha 2004-08-29 Scott G. Miller * Fixed a bug which apparently existed in 1.9.0-alpha preventing startup due to the REPL CTL-C functionality. * Retooled the sisc.sh startup script to behave well with the CTL-C functionality. 2004-08-27 Scott G. Miller * Fixed state bugs in SRFI-18 related to unowned mutexes and mutex unlocking with condition variables. 2004-08-24 Released SISC 1.9.0-alpha 2004-08-23 Scott G. Miller * Numerous bugs related to dead code and undefined references fixed. 2004-08-14 Scott G. Miller * SISC-full now uses generic-procedure based I/O, allowing new port types to be constructed in Scheme. * Better handling of infinity and NaN in the quantity library. * Pretty-printing is now a module. * Added thread/interrupted? to the threading library. 2004-07-22 Scott G. Miller * Fixed REPL annotations * Fixed psyntax's quasiquote macro to preserve immutable pairs for inert quasiquotes. See bug 994759. 2004-07-08 Scott G. Miller * Fixed |equal?| on numbers, which was insensitive to exactness. 2004-06-20 Scott G. Miller * Added the os module. 2004-06-17 Scott G. Miller * Print a stack trace when an error occurs loading source files from the commandline, if possible. 2004-06-17 Matthias Radestock * Improved s2j error reporting - the generic procedures used by s2j now have proper names. 2004-06-12 Matthias Radestock * Updated srfi-45 to latest version. 2004-06-09 Scott G. Miller * Fix REPL handling of Scheme exceptions as they relate to return codes. * More descriptive error message for |exit| outside the REPL. * Make the REPL writer parameterizable. 2004-06-01 Scott G. Miller * Added the module-exports function, which given a module, lists its bindings. 2004-05-20 Scott G. Miller * Moved the analysis pass after the optimizer so we can use the 1.8 optimizer instead of one which preserves the metadata * Reimplemented the Analyzer in Scheme rather than Java. 2004-05-13 Matthias Radestock * Fixed bug in s2j that resulted in incorrect method lookup precedence for methods overloaded on java.lang.Object and an interface. See bug 953043. 2004-01-01 -> 2004-05-20 Scott G. Miller * Added support for immediate primitive calls, an optimization which breaks R5RS compliance by breaking redefinition. * Added .scm versions of all files which were previously expanded only, and added a "bootstrap" target to the build. * Engine now uses a flat closure representation which is more safe-for-space. Various changes to the compiler and the core classes to support this. * Support for trapping signals from the OS using an unsupported (but apparently everpresent) Sun library. * Support for ctl-c to break execution in the REPL. * Interrupts are now enabled by default. * Native procedures now separated into a Complex (requiring the interpreter context) and Simple (dependent only on parameters) form. Simple procedure calls may be made immediate. * Updated the pattern matching library to a more recent version from IU. * Added support for weak hashtables. 2004-04-12 Released SISC 1.8.8 2004-04-08 Scott G. Miller * Fixed bugs in the native versions of c??r which weren't checking for the empty list. 2004-04-08 Matthias Radestock * Moved srfis into separate libraries. 2004-04-07 Matthias Radestock * Implemented srfi-45. 2004-03-16 Scott G. Miller * Implemented srfi-48. 2004-02-03 Scott G. Miller * Workaround for a BigDecimal parsing bug on the IBM JVM 1.3.1 (submitted by Chris Double). 2004-02-27 Scott G. Miller * Remove dependent mutexes from their threads in SRFI-18. 2004-02-17 Scott G. Miller * call-with-serial-*-file wasn't allowing functions to return multiple values. Fixed. * vector-fill! was incorrectly defined in Primitives, resulting in its use always causing an incorrect argument count error. 2004-01-29 Scott G. Miller * Fixed a bug in the optimizer which broke copy-propogations in letrec right hand sides. * sisc.caseSensitive wasn't settable as a Java property. 2004-01-20 Released SISC 1.8.7 2004-01-16 Scott G. Miller * Fixed bug where error continuations weren't wind safe. 2004-01-09 Scott G. Miller * Fixed several inexactness contagion bugs in Quantity. * Fixed some error handling problems in Quantity. * Fixed n-ary character comparison bugs. 2004-01-04 Released SISC 1.8.6-rc 2004-01-04 Scott G. Miller * Fixed serialization of Java Objects from serial ports. 2004-01-04 Matthias Radestock * Fixed stream (de)serialization to be tail recursive. See bug 864792. 2004-01-02 Scott G. Miller * Fixed bug 830507, method dispatch problem * Fixed string comparison in SRFI-13. 2003-12-08 Scott G. Miller * Fixed recycled VLR[] bug in |apply|, and a recycling space leak during serialization. 2003-10-24 Scott G. Miller * Fixed char-whitespace? returning #f for #\return * Intepreter.eval() and friends use R5RS compliant eval, and so should work with strict-r5rs enabled. 2003-10-15 Matthias Radestock * Fixed bug in srfi-19's |current-data|. See bug #823824. 2003-10-13 Scott G. Miller * Removed a dependency on a jdk1.3-specific API call that is not present in jdk1.2. 2003-10-11 Released SISC 1.8.5 2003-10-08 Scott G. Miller * Fixed a space leak in ThreadContext/Context. 2003-10-06 Scott G. Miller * Partially fixed a bug where delay couldn't resolve make-promise in the report environment. 2003-09-25 Scott G. Miller * Fixed a bug which caused a custom environment to replace toplevel if it was called in eval and had an expansion error. 2003-09-23 SISC 1.8.4-rc Released 2003-09-21 Matthias Radestock * Fixed k invocation bug introduced by a misguided "optimization" in release 1.8.1. * Added back dynamic-wind unloading at end of heap build in order to improve performance. 2003-09-18 Scott G. Miller * Fixed subtle bug in the use of the vlk register that was causing a fatal NullPointerException when continuations were incompletely captured. * Fixed bug in PARAMETERIZE - it was only allowing one expression in the body. 2003-09-16 Matthias Radestock * Changed srfi-18 to use srfi-19's time data type, thus avoiding incompatibilities. * Upgraded srfi-19 to latest available reference implementation, which fixes many bugs. * Fixed identifier generation in nested modules that was causing id clashes. 2003-09-08 Scott G. Miller * Modified the expander and optimizer to track syntactic tokens (#%if and friends) the same as the unredefined symbolic forms. 2003-09-08 SISC 1.8.3-beta Released 2003-09-08 Scott G. Miller * Modified the pretty-printer to properly print expressions containing syntactic tokens. 2003-09-07 Matthias Radestock * Fixed optimizer bug that caused breakage when handling IFs with a #f alternative. * Added SRFI-42. 2003-09-04 Scott G. Miller * Support for return-status from call-with-args, eval, or the repl using (exit return-code). 2003-08-17 Matthias Radestock * Added SISC Compiled Code (.scc) library support, which is more general than (and replaces) Thunk Libraries (.slt). 2003-08-13 SISC 1.8.2-alpha Released 2003-08-10 Scott G. Miller * Added sane underpinnings for explicit syntax (#%quote, etc). 2003-08-04 Matthias Radestock * Improved slib's O/S detection. 2003-07-27 Matthias Radestock * Fixed runtime error message construction to handle circular data without crashing. 2003-07-18 Matthias Radestock * Fixed StackOverflowError when building srfi.slt under JDK1.4.2 on Windows. 2003-07-16 Matthias Radestock * Fixed performance problem in loading libraries. 2003-07-16 Scott G. Miller * Allow redefinition of QUOTE. 2003-07-09 Matthias Radestock * Fixed bug in char-ready?; the port argument is now optional. 2003-07-04 Matthias Radestock * Fixed open-{serial,binary}-{input,output}-port to take into account the current-url. 2003-07-03 Scott G. Miller * Changed case-sensitive to a dynamic parameter, so it can be modified at run-time on a per dynamic-context basis. 2003-07-03 Matthias Radestock * Fixed overriding of defaults for configuration parameters. 2003-07-02 Matthias Radestock * Improved S2J class name mangling to handle package-less and nested classes. * Changed class precedence list computation algorithm in the oo system and S2J to resolve most cpl inconsistencies. 2003-06-29 Released SISC 1.8.1-alpha 2003-06-28 Scott G. Miller * Added stream compatible serialization mode, and changed serial-io to use it. 2003-06-20 Scott G. Miller * Retooled the evaluation pipeline so that syntax is expanded in the interaction, rather than a global environment. 2003-06-18 Matthias Radestock * Fixed and rationalized SISC's command line parameters. 2003-06-17 Matthias Radestock * Added thunk libraries, which resolve a number of issues with compiled libraries. * Fixed Java serialization of annotations. 2003-06-15 Matthias Radestock * Merged block IO and binary IO into new binary-io module. * Added predicates to distinguish between different port types. * Added serial-io module for (de)serialization of SISC values. 2003-06-04 Scott G. Miller * Separated character from binary IO. * Added ability to choose character sets for I/O. 2003-06-02 Matthias Radestock * Revised s2j, making several significant changes and improvements. 2003-05-31 Matthias Radestock * Revised generic procdures, making several significant improvements. 2003-05-30 Matthias Radestock * Added extensible type system. 2003-05-26 Matthias Radestock * Changed signature of some s2j primitives to return lists instead of vectors. * Changed names of some s2j primitives to shorter versions. * Fixed a few bugs in and made some improvements to error handling performed by s2j primitives and gnerally improved. * Removed a few superfluous s2j primitives. * Added s2j invocation primitives in preparation for making Java objects non-procedures. 2003-05-24 Matthias Radestock * Fixed a bug in the generic procedure method cache that caused erroneous matches. 2003-05-21 Matthias Radestock * Fixed read/write invariance for some peculiar symbols. 2003-05-16 Matthias Radestock * Added native support for srfi-9 records and |define-struct|. * Fixed a major performance problem in records implementation. 2003-05-11 Matthias Radestock * Fixed handling of thunks returning multiple values in |mutex/synchronize-unsafe|. * Added ability to create thread-unsafe hash tables. * Improved performance of object system by using thread-unsafe hash tables. 2003-05-04 Scott G. Miller * Fixed a bug in Library symbolic environments where not all bindings were returned in bindingKeys. This affected many macros in the SRFIs. 2003-05-01 Scott G. Miller * Fixed serialization problem with Hashtables requiring initialized expressions 2003-04-28 Matthias Radestock * Fixed race condition in generic procedure method cache. 2003-04-27 Matthias Radestock * Simplified mechanism for defining constructors in the object system. 2003-04-24 Matthias Radestock * Removed "invoke hashtables as procedures" access to hashtable entries 2003-04-21 Matthias Radestock * Re-designed and re-implemented handling of configuration parameters. 2003-04-20 Scott G. Miller * Fixed a space leak in pathological tail recursion, 2003-04-06 Matthias Radestock * Improved j2s proxy mechanism - it's now using generic procedures. * Re-structured cvs source tree. 2003-04-02 SISC 1.8.0-alpha and 1.7.8 Released 2003-03-30 Scott G. Miller * Fixed a failure to raise an error in for-each when lists of different lengths passed. 2003-03-26 Matthias Radestock * Added support for display of stack traces of Java exceptions by |print-exception|. 2003-03-25 Matthias Radestock * Changed eq?-based hashtable to match new semantics of eq?. * Added eqv?-based hashtable. 2003-03-25 Scott G. Miller * Changed eq? to pointer equality. * Fixed an excessive compare in numeric equals. 2003-03-24 Matthias Radestock * Fixed bug in exception handling logic that was causing breakage on non-Scheme exceptions, e.g. exceptions thrown by s2j. 2003-03-13 Scott G. Miller * Fixed an inherent design flaw in the Symbol garbage collection. 2003-03-10 SISC 1.7.7 Released 2003-03-10 Scott G. Miller * Fixed bug in recreating datastructures of compiled libraries, resulting in broken syntax exports. * Renamed the buffer library to buffers, to match the manual. * Fixed a bug where the OS isn't correctly detected under OS/2. 2003-03-10 Matthias Radestock * Fixed typo in SRFI-6 * Fixed a bug in the reference implementation of SRFI-1. 2003-03-07 SISC 1.7.6 Released 2003-03-06 Scott G. Miller * Fixed an implicit module definition bug, and an oversight in compiled-lib creation. 2003-03-03 Matthias Radestock * Fixed problem calling methods defined on java.lang.Class via generic procedures. 2003-03-01 Scott G. Miller * LexicalEnvironment recycling optimization. * Limited trampolining optimization. 2003-02-25 SISC 1.7.5 Released 2003-02-20 Scott G. Miller * Minor bug fix in compiled-library geneation. 2003-02-18 SISC 1.7.4-rc Released 2003-02-17 Matthias Radestock * Fixed problem of missing implicitly exported bindings in compiled libraries. * Adding r5rs module to srfi compiled library, fixing breakage due to missing definitions. 2003-02-15 SISC 1.7.3-rc Released 2003-02-15 Scott G. Miller * New |map| implementation that should be faster and call/cc safe. 2003-02-13 Matthias Radestock * Fixed socket repl regression introduced in SISC 1.7.0. 2003-02-12 Scott G. Miller * Fixed a small bug in Closure which was stealing the vlr when it was locked, resulting in problems with call/cc. 2003-02-04 SISC 1.7.2-beta Released 2003-02-04 Scott G. Miller * Added configurable repl prompt, displays #;-~a> if |current-prompt| is set to a string, normal if #f. 2003-02-03 Matthias Radestock * Added mechanism to augment the class path for loading classes and resources. 2003-01-31 Scott G. Miller * Modified the syntax expander to generate non-unique symbols for module names and module bindings, allowing modules created/serialized on one SISC version to run on another. 2003-01-30 Scott G. Miller * Clear the LexicalEnvironment when calling eval. This doesn't affect the semantics of running code, but it clears out a lot of unnecessarily used memory, especially in serialization. * Fixed additional entrypoint wastage in LibraryBuilder. 2003-01-29 Scott G. Miller * Fixed a bug in Interpreter which caused the failure continuation to be forgotten if interpret is called and a SchemeException is thrown. * Fixed compile issues for Java < 1.4 * Added |stack-trace-on-error| parameter. 2003-01-23 Scott G. Miller * Made NamedValues value properties, allowing introspection from Scheme. * Improvements to |trace|/|untrace| which allow module-bound procedures to be traced without knowing their unique name, and to detect when traced procedures have been redefined. 2003-01-15 Matthias Radestock * Implemented SRFIs 31, 34, 35, 37. * Fixed bug in |make-error| that caused single-arg invocations with a symbol to produce error locations rather than error messages. 2003-01-04 SISC 1.7.1-beta Released 2003-01-03 Matthias Radestock * Fixed a vlr recycling bug in single-value-return case of |call-with-values|. 2003-01-02 Scott G. Miller * Fixed an inadequacy in gen-sym, which wasn't supporting prefix-less symbols. This caused import* and anonymous top-level modules to fail. * Hooked circular printing code to error message code so that circular structures print properly (and don't stack overflow) when generating error messages. 2002-12-24 Matthias Radestock * Added |equal?|-based hashtables. * Added |hashtable/size| procedure. * Improved performance of generic procedure method lookup. 2002-12-16 Matthias Radestock * Changed |eq?| and |eqv?| on immutable pairs, vectors, strings to pointer equality in order to avoid (de)serialization inconsistencies and problems in circularity detection. 2002-12-15 Released SISC 1.7.0-beta 2002-12-14 Scott G. Miller * Fixed a rare, complicated memory leak involving the CallFrame recycling pool. 2002-12-10 Scott G. Miller * Refactored the REPL such that the main SISC thread is also a Scheme thread. * Re-added thread/current 2002-12-09 Scott G. Miller * Fixed error in arbint->double conversion. * Created the file-manipulation library. 2002-11-30 Matthias Radestock * Implemented an efficient call frame capturing algorithm. * Added simple object system. 2002-11-23 Matthias Radestock * Improved |circular?| to detect circularities in *all* data types. * Added contents of hashtable to its print representation. 2002-11-22 Matthias Radestock * Fixed thread localization of parameters. * Added logic to display/write shared (incl circular) structures using CommonLisp-style notation. * Added |vector-length-prefixing| and |print-shared| parameters to control behaviour of |display| and |write|. Both default to #f for R5RS compatibility. 2002-11-21 Matthias Radestock * Added missing serialization methods to some obscure data types - there absence would have caused continuation serialization to break in some unusual cases. 2002-11-19 Matthias Radestock * Fixed a bug in |write| and |display| when writing lists containing unusual occurences of quote, quasiquote, unquote, unquote-splicing. 2002-11-11 Released SISC 1.6.3 2002-10-31 Released SISC 1.6.3-rc 2002-10-31 Matthias Radestock * Fixed a bug in the serialization of typed Java nulls in S2J. * Fixed a number of bugs in S2J's implementations of eq?. * Made primitive Java types sub-types of their respective java.lang types in S2J. 2002-10-29 Scott G. Miller * Fixed begin and let optimization bugs in the optimizer. 2002-10-26 Released SISC 1.6.2-rc 2002-10-21 Scott G. Miller * Fixed FIXEDINT overflow (thanks to Mark Rose for spotting it) 2002-10-20 Scott G. Miller * Compiled-library bindings are now lazy loaded. 2002-10-19 Scott G. Miller * Fixed a bug in reading elements that shouldn't support escaping. 2002-10-18 Released SISC 1.6.1-beta 2002-10-18 Scott G. Miller * Modified open-library to support arbitrary URLs. 2002-10-18 Matthias Radestock * Fixed bug in serialization of references to classes in S2J. * Changed implementation of S2J's java/proxy procedure to try the current thread's class loader before the system class loader. 2002-10-15 Matthias Radestock * Fixed bug in parser that caused infinite loop in expander when processing annotated recursive structures. 2002-10-14 Matthias Radestock * Fixed bug in hashtable serialization. 2002-10-13 Scott G. Miller * Modified the structure of libraries so they can be serialized without relying on recursion, and possibly blowing the Java stack. 2002-10-12 Scott G. Miller * Implemented read/write invariance for symbols containing special characters or uppercase letters. 2002-10-11 Scott G. Miller * Modified gensym to produce 4d-unique (unique in both space and time) symbols. This will allow code compiled in one place/time to load in another without conflicts. 2002-10-10 Scott G. Miller * Created the compiled-libraries module, which allows one to create additive heaps (expanded and compiled libraries). 2002-10-08 Scott G. Miller * Change from R. Kent Dybvig that fixes some redundancy in the expander's internal datastructures, resulting in smaller expanded code and much faster expansion in certain cases. 2002-10-07 Scott G. Miller * Fixed Lite build * Module bindings were being loaded at start time, and only R5RS bindings were lazy loaded. Now all are, as intended. 2002-10-07 Matthias Radestock * Cleaned up error handling by introducing new exception data type 2002-10-02 Released SISC 1.6.0-beta 2002-09-30 Scott G. Miller * Added constant-propogation of lexical variables to the optimizer. 2002-09-29 Scott G. Miller * Key developers increased the value of (floor (/ (- (system-time) 307461060000) 31536000000)) 2002-09-29 Matthias Radestock * Made S2J's Java nulls typed, which, amongst other benefits, allows them to be used for generic procedure method selection. * Removed S2J object mutation (java-new and java-set!). It's not really that useful and it conflicts with typed Java nulls. 2002-09-28 Scott G. Miller * Added support for stack-trace on wind-safe continuations 2002-09-27 Matthias Radestock * Introduced and types for generic procedures * Fixed problem with passing jnull as an argument to generic procedures * Fixed generic procedure type system so that java classes are recognized as instances of jclass 2002-09-26 Matthias Radestock * Fixed bug that caused SISC to terminate when a builtin procedure threw a NullPointerException 2002-09-26 Scott G. Miller * Implemented SRFI 30 - multi-line comments 2002-09-25 Released SISC b1.5.6 2002-09-24 Scott G. Miller * Re-added block IO (now in the 'block-io' module) but using the new buffer type which is definitely binary safe, unlike strings. * Added a binary buffer type in the 'buffer' module. 2002-09-23 Scott G. Miller * Rewrote the IO layer with a more flexible, abstract Input and Output port, which will allow new IO types to be more easily created. 2002-09-23 Matthias Radestock * Added Java Bean property access via ( '( ...) []). 2002-09-22 Matthias Radestock * Added automatic name mangling to S2J field access via ( ' []). 2002-09-16 Matthias Radestock * Added mechanism for locating loadable resources. * Added library loading mechanism. 2002-09-01 Matthias Radestock * Added input-port-location procedure for obtaining source location information from an input port. 2002-08-30 Matthias Radestock * Rationalized retrieval and display of stack trace information. 2002-08-28 Scott G. Miller * Fixed a number of Quantity-lib bugs pointed out by Justin Sampson - parsing of negative imaginary numbers - log of negative numbers (now works) - expt with negative and fractional exponents 2002-08-26 Scott G. Miller * Checked in the source-level optimizer. Matthias hooked it up as a module. 2002-08-06 Matthias Radestock * Updated slib.scm to work with latest version of slib (2d4). * Fixed bad interaction of slib with SRFIs. 2002-08-05 Scott G. Miller * Fixed handling of AnnotatedExprs when written to expanded source * Fixed load's handling of .sce/.pp files 2002-08-04 Matthias Radestock * Implemented SRFIs 19,25,26,28 2002-08-01 Released SISC r1.5.5 2002-07-25 Released SISC b1.5.5rc2 2002-07-24 Scott G. Miller * Implemented thread/interrupt * Slightly more efficient intBound * Fixed errors with thread error handling 2002-07-22 Scott G. Miller * Updated to most recent version of psyntax (7/12) * Fixed getprop errors that were breaking the pretty-printer. * Re-removed void, void? from the report environment. 2002-07-16 Released SISC b1.5.5rc1 2002-07-16 Scott G. Miller * Much improved handling of nested errors. * Fixed a bug causing code not to be annotated when loaded using LOAD. 2002-07-15 Scott G. Miller * Added sisc-initial-environment. * I18Ned much of Primitives. * putprop/getprop can now take a first class environment as their second argument. * Deprecated the one/two argument versions of getprop/putprop. 2002-07-14 Scott G. Miller * Added set-symbolic-environment! Renamed get-environment to get-symbolic-environment! * Fixed DefineEval to be compiled with the environment it will be making the definition into. This fixes (define ...) in a non-toplevel environment. 2002-07-13 Scott G. Miller * Enforce the R5RS lexical syntax for . (define define 3) is now an error. 2002-07-07 Released SISC b1.5.4 2002-07-07 Matthias Radestock * Implemented Java (de)serialization, including object graphs consisting of a mixture of Scheme and "native" Java objects. 2002-07-02 Scott G. Miller * Fixed serialization deficiency that can allow some objects to be deserialized twice. 2002-06-27 Released SISC b1.5.3 2002-06-26 Scott G. Miller * Serialization of FreeRefereneExps and FreeSetEvals no longer drags the entire AE in, so serialization of small code segments is space efficient. 2002-06-26 Matthias Radestock * Improved object initialisation support provided by generic procedures, facilitating post-creation initialisation. 2002-06-24 Scott G. Miller * Added support for Java-style unicode characters in character literals and strings. 2002-06-23 Matthias Radestock * Changed generic procedure method dispatch logic. It now uses the same algorithm as employed by Dylan, Goo and others that resolves ambiguities by taking into account the class precedence lists of the arguments. 2002-06-18 Scott G. Miller * Modified SchemeString to be able to store the string either as a String or a char[] for efficiency. * Added native versions of the string comparison functions and substring, string-upcase, string-downcase. Performance with these operations is improved by 10-150x. * Added get-environment, which returns a symbolic environment given its name (as a symbol). 2002-06-14 Matthias Radestock * Added with-current-url procedure. * Fixed expand-file so it handles relative includes correctly and produces annotations (if emit-annotations is #t). 2002-06-13 Released SISC b1.5.2 2002-06-12 Scott G. Miller * Fixed a number of bugs regarding heap generation and deserialization that were causing problems reading the report env, and with sets on not-yet-loaded variables. 2002-06-10 Scott G. Miller * Updated the error handling API to separate call/fc into call/fc (similar to call/cc) and with/fc. Updated the manual to reflect these changes. 2002-06-07 Scott G. Miller * Error handling revamped to pass along error information through Scheme->Java->Scheme ... calls. 2002-06-04 Matthias Radestock * Upgraded syntax-case again. It now supports tail-matching. * Fixed an initialisation order problem in SRFIs. 2002-06-03 Released SISC b1.5.1 2002-06-01 Scott G. Miller * Fixed a compliance bug with letrec and call/cc interactions. * Added the core syntactic forms to the R5RS environment. * Matthias' change of self-evaluating to exclude vectors causes the expander to raise an error for unquoted vectors, which is actually the specified behavior. 2002-05-28 Released SISC b1.5.0 2002-06-01 Matthias Radestock * Upgrade to latest version of syntax-case. This fixes some bugs with the module system. 2002-05-25 Scott G. Miller * Randomly accessable libraries 2002-05-18 Matthias Radestock * Improved GETPROP and REMPROP. * Allowed properties from config file to be overridden by Java properties. 2002-05-17 Released SISC r1.4.1 2002-05-16 Scott G. Miller * Fixed a compiler bug that was setting lastAndRatorImmediate incorrectly, causing call/cc problems. * Fixed handling of locked vlrs, which was breaking call/cc in some cases. * Renamed lck to vlk and made it a first class register. 2002-05-14 Matthias Radestock * Added loadable configuration file. * Added library loading code. * Added mechanism to execute code on startup. 2002-05-02 Scott G. Miller * Fixed bugs in Quantity that were precluding the largest and smallest fixed integers from being stored as such. * Fixed a bug in Quantity that was causing ashl/ashr to accept non-integers. 2002-05-02 Matthias Radestock * Added capability to define multiple generic Java procedures referring to the same Java method name, and multiple generic Java constructors. * Added capability to chain generic Java procedures and generic Java constructors. 2002-05-01 Matthias Radestock * Added procedure properties functionality. 2002-04-27 Released 1.4.0 2002-04-27 Scott G. Miller * Fixed bugs found in the RC2 round of testing. 2002-04-22 Matthias Radestock * Gave all file-based operations the ability to access data via a URL. * Added string I/O functions to core * Rationalized behaviour of I/O functions when capturing/invoking continuations 2002-04-21 Scott G. Miller * Implemented a three level (empty->sisc-bindings->r5rs) chained toplevel environment, that allows us to properly implement (scheme-report-environment). * Fixed some bugs discovered in the condition variable/lock interaction of the threading module. 2002-04-15 Released 1.4.0rc2 2002-04-15 Scott G. Miller * Gave associative environments the ability to delegate to a parent, copying the parents binding whenever the child's is touched. This fixes bug 543451. 2002-04-13 Scott G. Miller * load now sets the current directory to the directory of the source file its loading, and resets it when done. * current-directory is now an actual parameter. * Added file/parent and file/name, and renamed file-type to file/type. 2002-04-12 Scott G. Miller * Fixed real?, which was returning #t for non-numbers * Fixed read to produce mutable data. 2002-04-12 Matthias Radestock * Removed some old tail call logic, improving performance by ~10% * Simplified build * Made S2J name mangling more intuitive 2002-04-11 Released 1.4.0rc1 2002-04-10 Matthias Radestock * Fixed bug in CHAR-LOWER-CASE? 2002-03-31 Scott G. Miller * Removed J2S and javaValue functionality, which has been completely replaced by S2J 2002-03-31 Matthias Radestock * Made hashtables thread-safe. 2002-03-29 Matthias Radestock * Revised generic functions module. It's now called "generic-procedures" and contains numerous bug fixes, changes and enhancements 2002-03-15 Scott G. Miller * Fixed SQRT for large integers, with the side effect of producing exact results for exact arguments with an exact square root. * Added annotation support, which will allow source-correlated error messages. 2002-03-09 Scott G. Miller * Fixed equality problems with Immutables * Modified REPL to allow third party applications to load heaps easier. * Pervasive localization effort. See the manual for details. 2002-03-08 Matthias Radestock * Fixed access violation problems in generic functions when sub-classes have more restrictive permissions than base classes. The fix restricts the visiblity of non-public classes/interfaces/methods. * Added mechanism to throw Java exceptions from Scheme code and propagating them back to Java code if the Scheme code was called from Java. * Added MAKE-PARAMETER and PARAMETER? primitives that deal with thread-local variables. 2002-02-28 Scott G. Miller * Fixed a couple of math bugs in Quantity-64float 2002-02-25 Matthias Radestock * Made generic function module thread-safe 2002-02-24 Matthias Radestock * Added hashtable module. * Changed generic function module to use hashtables instead of alists 2002-02-20 Matthias Radestock * Made various tweaks to improve performance. Overall gain is ~7% in gabriel benchmarks. 2002-02-16 Matthias Radestock * Defined modules for SRFIs 0,1,2,5,6,7,8,9,11,12,13,14,16,23,24. * Added the DEFINE-ALIAS, FROM, and IMPORT* forms as defined in Chez Scheme. 2002-02-16 Scott G. Miller * Fixed two bugs in SNative's append. First is that the last (in this case second) argument to append can be any object. Second is that that R5RS mandates that everything *but* the last is newly allocated. 2002-02-15 Matthias Radestock * Added new, experimental Scheme->Java interface module 2002-02-14 Scott G. Miller * Added parameter (vector-length-prefixing) which specified whether pretty-print should display the prefixed length of a vector. 2002-02-12 Matthias Radestock * Fixed CHAR-UPPER-CASE? and CHAR-LOWER-CASE? * Changed COMPOSE so it takes 0..n args 2002-02-11 Scott G. Miller * Modified serialization format to support non-stream data sources 2002-02-06 Scott G. Miller * Upgraded to the latest syntax expander. This fixes a couple of bugs regarding module imports. * Immutables now implement equals/hashCode so like Immutables can be serialized once. 2002-02-05 Matthias Radestock * Added support for legacy macros (defmacro and define-macro) 2002-02-04 Matthias Radestock * Added support for the common ASCII escape sequences (i.e. \n, \r etc) when reading/writing strings. * Fixed bug in string comparison. * Fixed bug that gave wrong #f results in EQUAL? when comparing mutable to immutable objects. * Fixed bug in PEEK-CHAR - \#nul was not being pushed back after being read. * Added literal notation for case-sensitive symbols (|Foo|) and a prim for toggling global case-sensitivity. 2002-01-30 Scott G. Miller * Changed Primitive's throw RuntimeExceptions to throwPrimExceptions. * Corrected error reporting of invalid indices to strings 2002-01-28 Scott G. Miller * Fixed circular structure creation for 'special' lists created with ', `, ',', ,@, etc. * Added synopsis() to Value, which allows abbreviated printing. 2002-01-27 Matthias Radestock * Added support for reading case sensitive symbols using the || notation 2002-01-26 Scott G. Miller * Made Quantity lib implementations serialize and deserialize the same. 2002-01-24 Released r1.3.1 2002-01-22 Scott G. Miller * Fixed a bug in Symbol serialization that affected improper deserialization of uninterned or case sensitive symbols (SGM) 2002-01-11 Scott G. Miller * java/import can now take a String as the class/object argument, which will be resolved into a class 2001-12-28 Scott G. Miller * Fixed locking thinko that broke the mutex goal :( * Added monitor/synchronize-unsafe, which does *not* use dynamic-wind but runs an order of magnitude faster * Made monitor/synchronize[-unsafe] take one or more expressions to synchronize rather than just one. 2001-12-24 Release 1.3.0 2001-12-16 Scott G. Miller * Implemented Scheme level threading and synchronzation * Fixed a division by zero error in the refined Quantity classes 2001-12-14 Matthias Radestock * Implemented clean interface for calling Scheme from Java, including support for multiple applications and multiple threads * Fixed and optimized several multi-threading issues 2001-12-13 Matthias Radestock * Removed current-writer, was only used by repl which now just calls pretty-print directly 2001-12-04 Matthias Radestock * Made literal strings, vectors and lists immutable 2001-12-04 Scott G. Miller * Fixed string->number, which should have been able to accept #[xobd]num format numbers as well as ordinary ones. * Fixed string->number handling of "" * Fixed sqrt on negative floating point values * Fixed error in lexer's handling of EOF. * Removed String constructor for Quantities, rely on valueOf, which requires much less needless instantiation. * Fixed precision loss during serialization/deserialization * Fixed handling of uncertain digits in exact numbers. * Added Thread support (preliminary) * Fixed equals? handling of immutable data (more specifically, equals? handling of subclasses of values) 12/1/2001 Scott G. Miller * Removed BeginExp, DefineExp, FreeSetExp, IfExp, and LexicalSetExp, which were replaced with EvalExp, which simply evaluates an expression and pushes another onto the stack (the second being the corresponding Eval) r1.2.3 Performance enhancements * Added ashr, the complement to ashl. * In fixing other reader errors, 1.2.2 fixed hex digit handling. Fixed. * exact? and inexact? should error on non-numbers. They weren't. Fixed. * eqv? in scheme was relying on above bug for correct operation. r1.2.2 Minor enhancements, bug fixes * Output ports do not automatically flush now (except for console out). * Added 'flush-output-port' which takes an output port and finalizes any writes * Added an optional parameter to open-output-file and get-socket-output-port, , a boolean. If #t, the port will flush after every write. * #\return wasn't recognized on read, but could be produced on write. Fixed. * (null-environment) was returning a completely empty environment, which is incorrect in SISC, since the special forms (quote, lambda, etc) should still be present. Fixed. * Fixed an inaccuracy in the reader, where " could not be used. * Somewhat fixed the parser wrt the unspecified digit, '#'. Still somewhat broken in that the presence of a '#' does not force inexactness. r1.2.1 Bugfixes * Ratio simplification now properly handles numerator and denominator signs sanely. * Full-sisc now includes J2S, Netlib, Exec, and Debug r1.2.0 Major enhancements * New serialization structure. The heap can be serialized in 1/3 the space, and we can shave .7 seconds off SISC startup time. Also, the heap isn't tied to a specific version of SISC. (Not present in sisc-lite) * Dead code eliminated * Default Quantity lib is now double precision floating point instead of arbitrary precision. In the future, the library will be selectable at startup * Some minor performance tweaks r1.1.3 Bug fixes (Never formally released) * Added continuation? type checker * Fixed scalability issue in Pair.display. Couldn't handle incredibly large lists because it was using a recursive print method (which doesnt work well in Java, stack smash) r1.1.2 Bug fixes * Fixed startup scripts for windows * Cross-platform path handling (only tested on Windows/Unix atm) * Tidied up SLIB initialization file * Limiting lexical depth to 65536, function argument count to 65536 r1.1.1 Bug fixes, code cleaning * Startup scripts werent able to load files, fixed * Error in the syntax expander wasnt handling final cdr unquotes in a quasi-quoted list * Vector printing optimizations * Scheme source optimized and tidied to hide scaffolding functions r1.1.0 Many many changes. v1.1.0 is on average 45% faster than 1.0.3 Reimplementation of global environments as a simple flat array. * LexicalEnvironments don't need symbol information, this was an old debugging mode that isn't necessary. Result is a smaller heap and small boost to performance. Added Matthias Radestock's optimizations: * replace recursion with loops in LexicalEnvironment.lookup and LexicalEnvironment.set => no noticable difference, but might show in deeply nested expressions * recycler for FillRibExp along the same lines as CallFrames. This gives a 5-10% performance boost. * creation of {*}Eval instances in constructor of {FreeSet,If,LexicalSet}Expr, rather than in eval method. Shifts the burden from runtime to compile time and results in ~5% performance boost. Added Immediates, which fill the value rib directly (16% bonus) Compiler now eliminates Immediates from effect context. Example: (begin (set! a 3) 5 a) => (begin (set! a 3) a) (begin 1 a (lambda (x) x) #t) => #t and chooses branches with a decidable constant test-exp: (if 3 1 2) => 1 (if #f 1 2) => 2 Made SISC thread safe. Also added two new methods in Interpreter: * newContext(Interpreter): Creates a new Interpreter context in which expressions can be interpreted. By having multiple Interpreter contexts, you can run multiple scheme programs in the same environment simultaneously (multithreaded scheme). * eval(String): Evaluates the given String as a scheme expression in the current context and returns the resulting value. This should be helpful for running scheme expressions from Java. Fixed a Ratio->Floating point conversion error in Quantity. Fixed R5RS env handling. There were a number of side cases where the R5RS env was not immutable, or where shadowing the R5RS environment wasn't reflected in procedures defined before that shadowed binding. Fixed abs for complex numbers. Made procedures proper values. TODO: Add synchronization module to allow synchronization in scheme code. r1.0.3 Cruft bug that disabled number->string Precision fixes so FP calculations respect max_precision Added setters/getters for max-precision and min-precision. These can be used to set the minimum and maximum amount of precision allowed in a floating point calculation Some minor code cleanup Some minor speed improvements (very minor) r1.0.2 Added Boxes back into the language since they were used in variable references. r1.0.1 Fixed continuation capturing bug related to side-effects on the value rib. r1.0.0 First public release.