source: project/chicken/trunk/NEWS @ 13737

Last change on this file since 13737 was 13737, checked in by Kon Lovett, 11 years ago

Rmvd noin-existent ident. Updated for apropos status.

File size: 29.2 KB
Line 
14.0.0
2
3- removed `apropos' and `apropos-list' from the "utils" library unit;
4  available as an extension
5- removed texinfo and PDF documentation - this will possible be added back
6  later
7- replaced PCRE regex engine with Alex Shinn's "irregex" regular expression
8  package
9- removed `-extension' option
10- removed `-static-extensions' csc option and added `-static-extension NAME'
11- `regex' unit: removed `regexp*' and `regex-optimize'
12- added `CHICKEN_new_finalizable_gc_root()'
13- `length' checks its argument for being cyclic
14- removed custom declarations and "link-options" and "c-options" declarations
15- deprecated "-quiet" option to "chicken" program
16- added "-update-db" option to chicken-install
17- the compiler now suggests possibly required module-imports
18- moved non-standard syntax-definitions into "chicken-syntax" library unit
19- the pretty-printer prints the end-of-file object readably now
20- alternative conditional execution paths have separate allocation computation
21  (previously the allocation of all alternatives was coalesced)
22- removed unused "%kmp-search" from "srfi-13" library unit
23- expander handles syntax-reexports and makes unexported syntax available
24  for exported expanders in import libraries
25- added checks in some procedures in the "tcp" library unit
26- the macro system has been completely overhauled and converted
27  to hygienic macros
28- a macro-aware module system has been added
29- added "-sx" option to csi
30- removed the following deprecated functions:
31   [un]shift!
32   andmap ormap
33   byte-vector? byte-vector-fill!
34   make-byte-vector byte-vector
35   byte-vector-set! byte-vector-ref
36   byte-vector->list list->byte-vector
37   string->byte-vector byte-vector->string
38   byte-vector-length
39   make-static-byte-vector static-byte-vector->pointer
40   byte-vector-move! byte-vector-append!
41   set-file-position! set-user-id! set-group-id!
42   set-process-group-id!
43   macro? undefine-macro!
44- the situation-identifiers "run-time" and "compile-time" have
45  been removed
46- the compiler options "-check-imports", "-import" and "-emit-exports"
47  have been removed
48- new procedures:
49  strip-syntax
50  expand
51- new macros
52  define-syntax
53  module
54  export
55- the following macros have been removed:
56    define-foreign-record
57    define-foreign-enum
58    define-macro
59    define-extension
60- "local" mode, in which locally defined exported toplevel variables can
61  be inlined
62- new options and declarations "[-]local", "[-]inline-global" and "-emit-inline-file"
63- optimization levels changed to use inlining:
64  -optimize-level 3: enables -inline -local (but *not* -unsafe)
65  -optimize-level 4: enables -inline -local -unsafe
66- increased default inlining-limit to 20
67- support for cross-module inlining
68- "make <VARIABLES> bench" runs the benchmark suite
69- "chicken-setup" has been replaced by new command line tools
70  "chicken-install", "chicken-uninstall" and "chicken-status", which are
71  more flexible and allow greater freedom when creating local or application-
72  specific repositories
73- extension-installation can be done directly from SVN repositories or a local
74  file tree
75- enabled chicken mirror site as alternative download location
76
773.4.0
78
79- Fixes to the MinGW build.
80- PCRE 7.7
81- Bug fix for bitwise-or use [Joerg Wittenberger]
82- Bug fix in thread-terminate! [thanks to Joerg Wittenberger]
83- Cygwin build patched to put the runtime libraries in the right place.
84  [thanks to Nathan Thern]
85- added support for out-of-tree compilation (via the SRCDIR variable)
86  [thanks to Ivan Shmakov]
87- bug fix for (string->number "/")
88- support for selective procedure profiling in the compiler
89- unit utils: moved file- and pathname-related procedures to unit files
90- new unit files
91
923.3.0
93
94- bug fix for bitwise-or use [Joerg Wittenberger]
95- bug fixes for tickets  393, 430, 436
96- bug fix pointer->address
97- the build system now sets the SONAME field of libchicken.so under Linux
98- fixed an allocation bug in decode_literal
99- some fixes to the build system when USE_HOST_PCRE is set
100- added use of unit ports to unit extras and chicken-setup
101- unit utils and extras: moved port extensions to unit ports
102- new unit ports
103
1043.2.0
105
106- unit extras: moved lists, queues, strings to data-structures
107- new unit data-structures
108- unit library: symbol->string now copies its argument
109- chicken-setup: added option -svn-trunk
110- unit utils: added file-copy and file-move (request by the einit team)
111- unit srfi-69: added hash-table-clear!
112- unit srfi-69: new
113- unit extras: moved SRFI 69 to unit srfi-69
114
1153.1.0
116
117- svnrevision.sh - cleaned logic to prevent invalid error message
118- csc - fixed bug preventing static linking of executables (build order issues)
119- unit regex: PCRE 7.6
120- unit regex: avoid string copy in regex matching [Jim Ursetto]
121- chicken-setup: eggs are downloaded to and compiled in a temporary
122  directory determined by CHICKEN_TMPDIR or TMPDIR environment
123  variables, or by -build-prefix and -download-dir options,
124  respectively; -destdir option is replaced with -install-prefix.
125- unit regex: PCRE 7.6
126- unit tcp: use of offset into string rather than substring for faster
127  socket write [Jim Ursetto]
128- MSVC can now be used to build the system, when standard UNIX tools (like
129  MSYS) are available [Many thanks to Ashley]
130- unit library: added "flonum-print-precision" for changing the default of
131  16
132- unit posix: create-directory can now handle DOS drive letters
133  in the given path
134- unit posix: added stat- predicates for file types
135- unit posix: added strftime format string support to "time->string"
136- unit posix: added "string->time", which takes a strptime format string
137  (Unix only)
138- unit extras: added "left-section", "right-section", "none?", "always?",
139  and "never?"
140- unit extras: added "hash-table-merge", "hash-table-map",
141  "hash-table-for-each", and extended "make-hash-table" with minimum/maximum
142  load & initial value
143- unit extras: added "eq?-hash", "eqv?-hash", "equal?-hash", "number-hash",
144  "symbol-hash", "keyword-hash", "##sys#number-hash-hook", and
145  "hash-by-identity" as a synonym for "eq?-hash"
146
1473.0.0
148
149- upgraded scheme-complete.el to version 0.6 [Thanks to Alex Shinn]
150- unit library: added "blob=?"
151- the library can optionally be built with an already installed libpcre
152- chicken-setup accesses a separate set of eggs, specific on the major CHICKEN
153  version (3)
154- added csi options "-p" ("-print") and "-P" ("-pretty-print")
155- support for Mac OS X universal binaries hase been added [Thanks to Zbigniew]
156- `cond-expand' is available in the set of core macros [Thanks to Alex Shinn]
157- On sparc64 architectures more than 126 procedure arguments are allowed
158  [Thanks to Peter Bex]
159- posix unit: "seconds->string" and "time->string" have now their trailing
160  #\newline character removed. THIS IS A BACKWARD-INCOMPATIBLE CHANGE.
161
1622.739
163
164- the SVN checkout can now be built from a bootstrapping tarball without
165  the need for a pre-installed "chicken" executable
166- literals are compiled in a platform-independent binary encoding into
167  the executable which results in faster C compile times and moe compact
168  binaries. This also makes the "compress-literals" option and declaration
169  unnecessary
170- the "-compress-literals" compiler option and the "compress-literals"
171  declaration have been removed
172- the CHICKEN_HOME environment variable is now obsolete, use CHICKEN_PREFIX
173  and possibly CHICKEN_REPOSITORY_PATH
174- added pre GC hook C-level variable
175- Cygwin is now fully supported
176- removed deprecated functions:
177  extension-info
178  print-backtrace
179  test-feature?
180  ___callback (chicken.h)
181  foreign-callback-lambda[*]
182  thread-deliver-signal!
183  critical-section
184  enable-interrupts
185  disable-interrupts
186  invalid-procedure-call-handler
187- There is no platform-dependent pathname directory separator
188  anymore, the slash ("/") and backslash ("\") characters can be
189  used interchangably
190- New procedures "regexp*", "regex-optimize" and "make-anchored-pattern"
191  (regex library unit)
192- New procedures "terminall-size", "terminal-name" and "get-host-name"
193  (posix library unit)
194- chicken-setup: can create repository catalog file from local
195  SVN checkout of egg repository
196- chicken-setup has the new option "-host-extension" to force
197  compiling extensions in "host" mode when using a cross-compiling
198  chicken
199- Better cross-development support for the build system (the
200  Makefile accepts various variables for customizing the build)
201- "file-size" and "file-stat" handle file-sizes of >4GB now
202- "find-files" collects directories as well, now [Thanks to Ivan Raikov]
203- added "dist" target to toplevel makefile
204- "andmap" and "ormap" have been deprecated
205- makefiles support relinking now
206- added "thread-wait-for-i/o!" (srfi-18 library unit)
207- the "chicken-bug" program can now be used to create bug reports
208  and send them to the CHICKEN maintainers
209
2102.717
211
212- New binary compatibility version (3) - installed eggs mst be recompiled!
213- deprecated "shift!" and "unshift!"
214- regex unit:
215  Uses PCRE 7.4
216- utils unit:
217  Uses compiled regular expressions
218- unit posix:
219  Uses compiled regular expressions
220- removed build option for extra symbol slot
221- added Lisp-style symbol property lists
222
2232.701
224
225- countless bugfixes and minor improvements
226- new foreign types:
227  [nonnull-]unsigned-c-string[*]
228  c-string-list[*]
229- added "unused" declaration specifier
230- new GNU Make based build process
231- libffi is not used anymore, handcoded assembler is used for x86, x86-64
232  and powerpc platforms
233- library unit:
234  blob?
235  make-blob
236  blob-size
237  string->blob
238  blob->string
239- regex unit:
240  glob?
241- utils unit:
242  directory-null?
243  port-fold
244- extras unit:
245  hash-table-remove!
246- lolevel unit:
247  mutate-procedure
248- srfi-4 unit:
249  XXXvector->blob[/shared]
250  blob->XXXvector[/shared]
251- csc options:
252  -cxx-name
253  -disable-compiler-macros
254- byte-vectors have been removed and replaced by new "blob" type,
255  added various blob<->SRFI-4 vector conversion procedures in srfi-4 unit
256- ":optional" has been renamed to "optional" (the old name is still
257  available but deprecated)
258- "switch" has been replaced by "select" ("switch" is still available but
259  deprecated)
260- "tcp-connect" and "tcp-accept" handle time-outs via parameters
261  "tcp-connect-timeout" and "tcp-accept-timeout"
262- tcp unit: support for read/write timeouts
263
264
2652.6
266
267- Many bugfixes
268- Better support for Sun's C compiler
269- Input-performance has been improved
270- PCRE (Perl compatible regular expressions) by Philip Hazel is now
271  bundled with CHICKEN
272- Static linking of extensions is now possible (when supported by
273  the egg)
274- The interpreter warns about references to potentially unbound variables
275  in loaded code and expressions entered on the REPL
276- The expansion process is traced during compilation and interpretation
277  to give (slightly) more usable syntactic context in error messages
278- library:
279  * added `any?`, `bit-set?' and `on-exit'
280- eval:
281  * new procedure `set-parameterized-read-syntax!'
282- posix:
283  * SRFI-17 setters for `file-position`, `current-user-id',
284    `current-group-id', `process-group-id'; the respective setter-procedures
285    are still available but have been deprecated
286  * `file-stat' returns more information (including device info)
287  * added `process*'
288- extras:
289  * added `read-string!'
290- utils:
291  * `apropos' and `apropos-list' procedures
292- srfi-4:
293  * added `read-u8vector', `read-u8vector!' and `write-u8vector'
294- srfi-18: 
295  * added `time->milliseconds' and `milliseconds->time'
296- csi:
297  * `-ss SCRIPTNAME' option
298- csc:
299  * accepts options given in the environment variable `CSC_OPTIONS'
300  * new options `-static-extensions' and `-host'
301- chicken/csc:
302  * new option `-keep-shadowed-macros'
303- chicken-setup:
304  * accepts options given in the environment variable `CHICKEN_SETUP_OPTIONS'
305  * allows retrieval and installation of eggs from subversion repository
306    and the local filesystem
307  * new options `-tree FILENAME', `-svn', `-local', `-revsion' and
308    `-destdir PATHNAME'
309  * added helper procedures `required-chicken-version' and
310    `required-extension-version'
311- Lots of improvements in the CMake build
312
313Many thanks to Ingo Bungener, Peter Busser, John Cowan, Marc Feeley,
314Stephen Gilardi, Mario Domenech Goulart, Joshua Griffith, Sven
315Hartrumpf, Daishi Kato, mejedi, Dan Muresan, Deanna
316Phillips, Robin Lee Powell, Ivan Raikov, Danial Sadilek, Alex Shinn,
317Tony Sideaway, Minh Thu for reporting bugs, suggesting improvements
318and contributing fixes.
319
320Thanks again to Brandon Van Every for his extensive work on the CMake
321build process.
322
323Special thanks to Kon Lovett for many improvements made in the posix
324library.
325
326
3272.5
328
329- Bugfixes
330- CHICKEN can now be built using CMake <http://www.cmake.org>, in fact CMake
331  is required to built CHICKEN from sources on Windows with the Microsoft
332  tools
333- the whole build process has been cleaned up and simplified
334- the "easyffi" and "tinyclos" library units have been removed from the base
335  system and are now available as separate extensions
336- the deprecated "set-dispatch-read-syntax!" has been removed
337- Will Farr cleaned up the behaviour of number-type specific numeric operations
338  ("fx..."/"fp...") with respect to safe/unsafe mode
339- added "(finite? NUMBER)"
340- the "$" macro moved into its own separate extension
341- the values of "software-type", "software-version", "machine-type" and "machine-byte-order"
342  are now registered as features and can be tested using "cond-expand" or "#+"
343- all tools now support the "-release" option
344- chicken-setup: added "-test" option
345
346Special thanks to Brandon Van Every, who put considerable effort into the
347CHICKEN build system and who ported it to CMake completely from scratch.
348The installation instructions and build file are extensively documented and may
349serve as a tutorial for creating non-trivial software projects with CMake.
350Thanks, Brandon! Also thanks to Bill Hoffmann and Brad King from Kitware
351for their support.
352
353Many thanks to Peter Bex, Toby Butzon, Thomans Chust, John Cowan, Alejandro Forero Cuervo,
354dgym, Alex Drummond, Mario Domenech Goulart, Kon Lovett, Benedikt Rosenau and Zbigniew
355Szadkowski for reporting bugs, suggesting improvements and contributing fixes.
356
357
3582.41
359
360- Bugfixes galore
361- compiler:
362  * added support for the generation of "export" files through the "-emit-exports" option
363  * new option `-check-imports' (csc: `-G') checks for unimported symbols and can be quite
364    helpful in finding unbound variable errors (this requires all extensions ("eggs") to be
365    adapted to this new feature, a process which isn't complete yet)
366  * new declarations `emit-exports', `constant' and `import'
367  * new option `-disable-warning' and declaration `disable-warning'
368  * new options `-release' and `-import'
369- chicken-setup:
370  * new `exports' extension property
371  * option `-check' checks for extension upgrades
372  * added `-eval' option
373  * added parameters `setup-install-flag' and `setup-verbose-flag'
374- FFI:
375  * added the handy `$' macro, which lets you do foreign calls directly without declaring
376    a placeholder procedure
377  * `define-foreign-enum' for treating C enums as symbol-sets
378  * `foreign-safe-wrapper' has been deprecated
379- Slight reorganization of TinyCLOS and match macros and support code
380- `thread-join!' has been generalized to allow a thread to have multiple results
381- Renamed `thread-deliver-signal!' to `thread-signal!' and `invalid-procedure-call-handler'
382  to `set-procedure-call-handler!'
383- The system can be configured to add an extra slot to symbol objects
384- Another configuration option enables GC of unused symbols by default
385- The extension repository is now versioned to catch binary incompatible
386  installations, this requires to either move all installed extensions to the
387  new location ("$prefix/lib/chicken/1") or reinstall them
388- Now supports SRFI-61 (extended `cond')
389- Added procedures `load-relative', `tcp-buffer-size`, `string-chomp'
390- trivial implementations of `real-part', `imag-part', `angle' and `magnitude' have
391  been added to the library to allow more portable code
392- Breakpoints and single-stepping of compiled code on the function-level, new
393  procedures `breakpoint' and `singlestep'
394- csi: new toplevel commands `,info', `,step', `,br', `,ubr', `,breakall', `,breakonly',
395  `,exn' and `,c'
396- csi: `set-describer!' allows definition of custom output for the `,d' command
397- Added `integer64' foreign type specifier
398- The environment variable "CHICKEN_PREFIX" allows (together with "CHICKEN_REPOSITORY") overriding
399  the installation path prefix in case you want to install and run multiple instances/versions
400  of CHICKEN or install on a shared network
401- csc: added `-dry-run' option
402- removed `-split...' options (and the ability to generate multiple C files from a single
403  Scheme file)
404- `crictical-section', `disable-interrupts' and `enable-interrupts' shouldn't be used from
405  now on (deprecated), use SRFI-18 mutexes instead
406
407Many thanks to Nico Amtsberg, Arto Bendiken, Jean-Francois Bignolles, Peter Busser, Thomas Chust,
408John Cowan, Alejandro Forero Cuervo, Jaarod Eells, Brandon van Every, Graham Fawcett, Mario Domenech
409Goulart, Sven Hartrumpf, Markus Hülsmann, Goetz Isenmann, Heath Johns, Daishi Kato, Kon Lovett, Dan
410Muresan, Ian Oversby, Göran Weinholt, Burton Samograd, Reed Sheridan, Alex Shinn, Sunnan, Zbigniew
411Szadkowski and Peter Wright for their helpful contributions, suggestions and bug reports!
412
413
4142.3
415
416- Many many bugfixes
417- compiler:
418  * new option `-profile-name FILENAME'
419- the `chicken-config' script has been removed, identical functionality can be provided
420  by `csc'
421- csc:
422  * new option `-objc' compiles generated C files in Objective-C mode
423  * accepts .m files and handles the case when only object files are given
424  * new options `-framework', `-F<dir>' and `-rpath'
425  * options `-home', `-cflags', `-ldflags', `-libs', `-cc-name' and `-ld-name'
426- chicken-setup:
427  * detects whether eggs are gzipped or not and accepts ungzipped eggs
428  * if no other actions are specified and no eggs are given on the command line, then
429    all .setup scripts in the current directory are executed
430  * added `setup-build-directory' and `setup-root-directory' parameters
431  * helper procedures `copy-file', `move-file', `remove-file' and `create-directory'
432- csi commands `,s', `,l' and `,ln' accept multiple inputs, the `trace'/`untrace'
433  macros have been replaced byy the toplevel commands `,tr' and `,utr'
434- new toplevel commands in csi can be defined with the `toplevel-command' procedure
435- `extension-info' has been renamed to `extension-information'. The old name is
436  still available, but deprecated
437- `print-backtrace' has been renamed to `print-call-chain'. The old name is still
438  available (and deprecated)
439- `transcript-on' and `transcript-off' are no longer supported
440- New macro `define-for-syntax'
441- library:
442  (get-call-chain [DEPTH])
443  (current-read-table)
444  (copy-read-table READ-TABLE)
445  (current-gc-milliseconds)
446  `print-error-message' writes now to the current output-port, not the error port
447  `number-string' does now a slightly better job converting large exact integers
448  with non-decimal base
449- extras:
450  (each PROC ...)
451  `hash-table-ref' throws (exn access) on error
452- posix:
453  (local-time->seconds TIME)
454  (utc-time->seconds TIME)
455  (local-timezone-abbreviation)
456  `directory' takes optional path and dotfiles arguments
457  `[group|system]-information' return lists instead of multiple values
458- tcp:
459  (tcp-port-numbers PORT)
460- `set-dispatch-read-syntax!' has been renamed to `set-sharp-read-syntax!' (the old
461  name is still available but deprecated)
462- evaluated code generates call-trace information (as compiled code does), which
463  results in much better back-traces.
464- new foreign types `[unsigned-]int32' and `[unsigned-]integer32'
465- added SRFI-17 setters for many accessors of the core libraries
466- tinyclos: added a couple of missing classes for core library structures
467- `let[*]-values' is now SRFI-11 compliant
468- the finalizer-table is now resized dynamically, which speeds up code that uses
469  very many finalizers [Thanks to Zbigniew Szadkowski]
470- reloading compiled code dynamically does basically work (but still leaks memory)
471- the manual contains a section on pattern matching
472- libffi is used by default, when available
473- CHICKEN has now experimental support for the "CMake" build system <http://www.cmake.org>
474  Many thanks to Bill Hoffmann from Kitware and Brandon van Every for helping with this
475- added compiler/runtime support for object serialization via the `s11n' extension
476  (see <http://www.call-with-current-continuation.org/eggs/s11n.html>)
477
478Sergey Khorev has offered to help with maintaining the Windows port of CHICKEN.
479Thanks, Sergey!
480
481Many thanks Jean-Francois Bignolles, Patrick Brannan, Adam Buchbinder, Hans Bulfone, Category 5,
482John Cowan, datrus, Guillaume Germaine, Mario Domenech Goulart, Daniel B. Faken, Andrey Fomichev,
483Jarod Eells, Sven Hartrumpf, David Janssens, Daishi Kato, Levi Pearson, Pupeno, Eric Raible, Benedikt
484Rosenau, Reed Sheridan, Zbigniew Szadkowski and Mark Wutka for their helpful contributions,
485suggestions and bug reports!
486
487Special thanks to Kon Lovett for fixing countless open issues and many useful sugestions.
488
489
4902.2
491
492- Many bugfixes
493- The read-syntax `#+X Y' is provided as a shorthand for `(cond-expand (X Y) (else))'
494- `foreign-parse' and `foreign-parse/spec' have been removed
495- lolevel: Executable byte-vector stuff has been removed
496- SRFIs 28, 31, 62 and 69 are now officially supported
497- New compiler option `-extension' simplifies static compilation of eggs
498- csc: changed `-E' to `-P', `-E' is now an alias for `-extension'
499- Embedding:
500  * All the `entry-point' related things have been removed, as has been `define-embedded',
501    calling Scheme from C is now exclusively done with callbacks
502  * Integrated boilerplate embedding API into the `eval' unit
503  * Added `CHICKEN_continue' API function
504  * Default "stub" toplevel (`CHICKEN_default_toplevel') allows embedding without a
505    separate Scheme file
506  * Different stack-levels during invocation of CHICKEN_run or callbacks could result
507    in crashes - this is now detected (or can be checked manually)
508- Added extension-specifier `(version ...)'
509- New FFI macros `foreign-declare', `foreign-parse' and `foreign-parse/declare' replace
510  the declaration-specifiers of the same name
511- Hash-table resizing was ridiculously slow, and should now be much faster
512- `define-foreign-record' handles recursive structures
513- `require-extension' is now available by default, and so can be used with the
514  plain Scheme evaluator
515- Procedures now contain some basic debug information, unless a file was compiled
516  with `-no-lambda-info'
517- compiler: `-debug-level 2' is now the default (enables trace- and lambda-info)
518- chicken-setup:
519  * handles direct downloads from arbitrary URLs
520  * HTML documentation for eggs can now be included into the egg and will be installed
521    in the repository (using the `documentation' info-property)
522  * `chicken-setup -docindex' shows path of generated documentation index for all
523    installed eggs
524- extras:
525  * SRFI-69 is now fully supported, note that THIS WILL BREAK EXISTING CODE, since
526    the API is not compatible to the previous one
527  * `clear-hash-table!', `get' and `put!' are gone
528  * `read-file' accepts optional reader procedure and max count
529  * `read-lines' accepts filename instead of port
530- library:
531  * `signum' is now exactness-preserving
532  * `procedure-information' returns some basic debug info for a given procedure
533  * Added `(warning MESSAGE ARGUMENTS ...)'
534  * `(promise? X)'
535- posix:
536  * `(current-directory DIR)' is equivalent to `(change-directory DIR)'
537- regex:
538  * `pattern->regexp' has been renamed to `glob->regexp'
539- The `format' library unit has been removed from the base system and is noww available
540  separately
541- SRFI-17, on the other hand has been moved into the base system
542- String literals and the print-names of symbol literals are now allocated in static
543  (non-GC'd) memory
544- If static or shared build is disabled, no `...-static' executables will be generated
545
546
547Many thanks to Ashley Bone, Thomas Chust, John Cowan, Alejandro Forero Cuervo, Daniel Faken, Sven
548Hartrumpf, Daishi Kato, Sergey Khorev, Kon Lovett, Gene Pavlovsky, Reed Sheridan and Ed Watkeys for
549their helpful contributions, suggestions and bug reports!
550
551
5522.0
553
554- Many bugfixes
555- Loads of minor improvements (better error messages, more warnings, more error
556  checks, etc.)
557- On systems supported by the "libffi" library, the 128-argument limit can
558  be exceeded (currently to an arbitrary maximum of 1000). To take advantage
559  of this, add `--with-libffi' to the configuration options when building
560  chicken
561- The `libsrfi-chicken' and `libstuffed-chicken' libraries have been folded
562  into `libchicken', so only a single library is linked with generated
563  executables, which greatly simplifies and speeds up the build process.
564  It is recommended to remove any traced of `libstuffed-chicken.*' and
565  `libsrfi-chicken.*' before installing a new release. This requires also
566  to reinstall all eggs (extension libraries).
567- The compiler is able to inline more procedure calls
568- Implicit non-multival continuations (like in `begin' or 'let') accept multiple
569  values and discard all but the first value
570- finalization should actually work now and is much more efficient (unless
571  used excessively)
572- csi:
573  `advise' has been removed
574  `-eval' implies `-batch' and `-quiet'
575  added `-require-extension'
576  short option names are now supported and may be collapsed, if unambigous
577- New runtime options:
578  -:b (enter REPL on error)
579  -:B (ring bell on every major GC)
580  -:fNNN (set pending finalizer maximum limit)
581- New compiler options:
582  -accumulate-profile
583  -inline
584  -inline-limit
585  -emit-external-prototypes-first
586- The compiler-option `-require-for-syntax' has been renamed to `-require-extension'
587  and is the same as putting a `(require-extension ...)' form directly into the code
588- Removed compiler- and interpreter option `-no-feature'
589- New declarations:
590  (lambda-lift)
591  ([not] inline)
592  (inline-limit LIMIT)
593  (emit-external-prototypes-first)
594  ([not] check-c-syntax)
595- `foreign-callback-lambda[*]' has been renamed to `foreign-safe-lambda[*]' - the
596  old names are still valid but deprecated
597- New foreign type specifier `scheme-pointer' (the same as `pointer', which is
598  deprecated now)
599- Easy FFI:
600  `___scheme_pointer' and `___byte_vector' pseudo types
601  `___pointer' and `___length' markers
602  `default_renaming' and `opaque' pseudo declarations
603  `___inout' and `___out' argument markers work also for C++ reference types
604  Recognizes `C_word' and `size_t'
605- The reader supports selective case sensitive/insensitive reading using the
606  `#cs...' and `#ci...' syntax (as supported in PLT Scheme)
607- `\uXXXX' and `\UXXXXXXXX' escape-sequences for string literals
608- `#\UXXXXXXXX' character literal syntax
609- `\v', `\a' and `\f' escape sequences and `#\delete', `#\esc', `#\alarm', `#\vtab'
610  and `#\nul' character literals
611- `chicken-setup' supports proxy connections via the `-proxy' option
612- library:
613  (set-dynamic-load-mode! MODE)
614  `(end-of-file)' has been removed (use `#!eof' instead)
615- The alternative continuation API described in Marc Feeley's paper
616  "A better API for first class continuations" is supported natively:
617  (continuation-capture PROC)
618  (continuation-graft K THUNK)
619  (continuation-return K VALUE ...)
620  (continuation? X)
621- `foreign-primitive' and `define-extension' macros
622- tinyclos:
623  (instance-of? X)
624  `define-method' specializes on all arguments and allows DSSSL keyword argument lists
625- eval:
626  (set-dispatch-read-syntax! CHAR PROC)
627- extras:
628  (hash-table-update! HT KEY PROC INIT)
629  (hash-table-exists? HT KEY)
630  (hash-table-values HT)
631  (hash-table-keys HT)
632  (alist->hash-table ALIST [TEST SIZE])
633  `hash-table->list' has been renamed to `hash-table->alist
634  `hash-table-for-each' takes the arguments in reversed order (the old order is still
635  valid but deprecated)
636  Hash-tables support now user-defined hash functions
637- posix:
638  (file-link OLD NEW)
639  (symbolic-link? FILENAME)
640  (regular-file? FILENAME)
641  errno/exist
642  `process' and `process-execute' allow passing an environment
643- regex:
644  (regexp-escape STR)
645- tcp:
646  (tcp-listener-fileno LISTENER)
647- utils:
648  (port-for-each FN THUNK)
649  (port-map FN THUNK)
650- On Windows, the batch file `win-install.bat' can be used to install the system
651  into the desired location
652- Building Chicken on Windows with the free development tools from Microsoft (VCToolkit,
653  Platform Core SDK) has been tested and is documented in the file `vctk-install.txt'
654- The `-script-meta' option has been removed
655- The srfi-25 and srfi-37 library units and the test-infrastructure facility have been
656  removed from the core system and is now separately available as an extensions (eggs)
657- The syntax-case macro and module system has been removed and also available as an
658  extension. This implies that all compiler- and interpreter options related to hygienic
659  macros and syntax-case are gone as well.
660- All strictness compiler- and interpreter options (and the `strict-reader' parameter)
661  have been removed
662- the `examples' directory and its contents have been removed from the distribution
663 
664
665Many thanks to William Annis, Mark Baily, Peter Bex, Dominique Boucher, Patrick Brannan,
666Thomas Chust, Alejandro Forero Cuervo, Graham Fawcett, Damian Gryski, Sven Hartrumpf,
667Hans Huebner, Christian Jaeger, Dale Jordan, Daishi Kato, Sergey Khorev, Krysztof Kowalczyk,
668Goran Krampe, John Lenz, Kon Lovett, Scott G. Miller, Julian Morrison, Nicolas Pelletier,
669Carlos Pita, Benedikt Rosenau, Andreas Rottmann, Reed Sheridan, Alex Shinn, Andrey Sidorenko,
670Michele Simionato, Volker Stolz, Sunnan, Zbigniew Szadkowski, Andre van Tonder, Henrik
671Tramberend and Mark Wutka for their helpful contributions, suggestions and bug reports!
Note: See TracBrowser for help on using the repository browser.