source: project/chicken/branches/release/NEWS @ 7276

Last change on this file since 7276 was 7276, checked in by felix winkelmann, 13 years ago

merged trunk

File size: 21.4 KB
3- added pre GC hook C-level variable
4- Cygwin is now fully supported
5- removed deprecated functions:
6  extension-info
7  print-backtrace
8  test-feature?
9  ___callback (chicken.h)
10  foreign-callback-lambda[*]
11  thread-deliver-signal!
12  critical-section
13  enable-interrupts
14  disable-interrupts
15  invalid-procedure-call-handler
16- chicken-setup: can create repository catalog file from local
17  SVN checkout of egg repository
18- Better cross-development support for the build system (the
19  Makefile accepts various variables for customizing the build)
20- "file-size" and "file-stat" handle file-sizes of >4GB now
21- "find-files" collects directories as well, now [Thanks to Ivan Raikov]
22- added "dist" target to toplevel makefile
23- "andmap" and "ormap" have been deprecated
24- makefiles support relinking now
28- New binary compatibility version (3) - installed eggs mst be recompiled!
29- deprecated "shift!" and "unshift!"
30- regex unit:
31  Uses PCRE 7.4
32- utils unit:
33  Uses compiled regular expressions
34- unit posix:
35  Uses compiled regular expressions
36- removed build option for extra symbol slot
37- added Lisp-style symbol property lists
41- countless bugfixes and minor improvements
42- new foreign types:
43  [nonnull-]unsigned-c-string[*]
44  c-string-list[*]
45- added "unused" declaration specifier
46- new GNU Make based build process
47- libffi is not used anymore, handcoded assembler is used for x86, x86-64
48  and powerpc platforms
49- library unit:
50  blob?
51  make-blob
52  blob-size
53  string->blob
54  blob->string
55- regex unit:
56  glob?
57- utils unit:
58  directory-null?
59  port-fold
60- extras unit:
61  hash-table-remove!
62- lolevel unit:
63  mutate-procedure
64- srfi-4 unit:
65  XXXvector->blob[/shared]
66  blob->XXXvector[/shared]
67- csc options:
68  -cxx-name
69  -disable-compiler-macros
70- byte-vectors have been removed and replaced by new "blob" type,
71  added various blob<->SRFI-4 vector conversion procedures in srfi-4 unit
72- ":optional" has been renamed to "optional" (the old name is still
73  available but deprecated)
74- "switch" has been replaced by "select" ("switch" is still available but
75  deprecated)
76- "tcp-connect" and "tcp-accept" handle time-outs via parameters
77  "tcp-connect-timeout" and "tcp-accept-timeout"
78- tcp unit: support for read/write timeouts
83- Many bugfixes
84- Better support for Sun's C compiler
85- Input-performance has been improved
86- PCRE (Perl compatible regular expressions) by Philip Hazel is now
87  bundled with CHICKEN
88- Static linking of extensions is now possible (when supported by
89  the egg)
90- The interpreter warns about references to potentially unbound variables
91  in loaded code and expressions entered on the REPL
92- The expansion process is traced during compilation and interpretation
93  to give (slightly) more usable syntactic context in error messages
94- library:
95  * added `any?`, `bit-set?' and `on-exit'
96- eval:
97  * new procedure `set-parameterized-read-syntax!'
98- posix:
99  * SRFI-17 setters for `file-position`, `current-user-id',
100    `current-group-id', `process-group-id'; the respective setter-procedures
101    are still available but have been deprecated
102  * `file-stat' returns more information (including device info)
103  * added `process*'
104- extras:
105  * added `read-string!'
106- utils:
107  * `apropos' and `apropos-list' procedures
108- srfi-4:
109  * added `read-u8vector', `read-u8vector!' and `write-u8vector'
110- srfi-18: 
111  * added `time->milliseconds' and `milliseconds->time'
112- csi:
113  * `-ss SCRIPTNAME' option
114- csc:
115  * accepts options given in the environment variable `CSC_OPTIONS'
116  * new options `-static-extensions' and `-host'
117- chicken/csc:
118  * new option `-keep-shadowed-macros'
119- chicken-setup:
120  * accepts options given in the environment variable `CHICKEN_SETUP_OPTIONS'
121  * allows retrieval and installation of eggs from subversion repository
122    and the local filesystem
123  * new options `-tree FILENAME', `-svn', `-local', `-revsion' and
124    `-destdir PATHNAME'
125  * added helper procedures `required-chicken-version' and
126    `required-extension-version'
127- Lots of improvements in the CMake build
129Many thanks to Ingo Bungener, Peter Busser, John Cowan, Marc Feeley,
130Stephen Gilardi, Mario Domenech Goulart, Joshua Griffith, Sven
131Hartrumpf, Daishi Kato, mejedi, Dan Muresan, Deanna
132Phillips, Robin Lee Powell, Ivan Raikov, Danial Sadilek, Alex Shinn,
133Tony Sideaway, Minh Thu for reporting bugs, suggesting improvements
134and contributing fixes.
136Thanks again to Brandon Van Every for his extensive work on the CMake
137build process.
139Special thanks to Kon Lovett for many improvements made in the posix
145- Bugfixes
146- CHICKEN can now be built using CMake <>, in fact CMake
147  is required to built CHICKEN from sources on Windows with the Microsoft
148  tools
149- the whole build process has been cleaned up and simplified
150- the "easyffi" and "tinyclos" library units have been removed from the base
151  system and are now available as separate extensions
152- the deprecated "set-dispatch-read-syntax!" has been removed
153- Will Farr cleaned up the behaviour of number-type specific numeric operations
154  ("fx..."/"fp...") with respect to safe/unsafe mode
155- added "(finite? NUMBER)"
156- the "$" macro moved into its own separate extension
157- the values of "software-type", "software-version", "machine-type" and "machine-byte-order"
158  are now registered as features and can be tested using "cond-expand" or "#+"
159- all tools now support the "-release" option
160- chicken-setup: added "-test" option
162Special thanks to Brandon Van Every, who put considerable effort into the
163CHICKEN build system and who ported it to CMake completely from scratch.
164The installation instructions and build file are extensively documented and may
165serve as a tutorial for creating non-trivial software projects with CMake.
166Thanks, Brandon! Also thanks to Bill Hoffmann and Brad King from Kitware
167for their support.
169Many thanks to Peter Bex, Toby Butzon, Thomans Chust, John Cowan, Alejandro Forero Cuervo,
170dgym, Alex Drummond, Mario Domenech Goulart, Kon Lovett, Benedikt Rosenau and Zbigniew
171Szadkowski for reporting bugs, suggesting improvements and contributing fixes.
176- Bugfixes galore
177- compiler:
178  * added support for the generation of "export" files through the "-emit-exports" option
179  * new option `-check-imports' (csc: `-G') checks for unimported symbols and can be quite
180    helpful in finding unbound variable errors (this requires all extensions ("eggs") to be
181    adapted to this new feature, a process which isn't complete yet)
182  * new declarations `emit-exports', `constant' and `import'
183  * new option `-disable-warning' and declaration `disable-warning'
184  * new options `-release' and `-import'
185- chicken-setup:
186  * new `exports' extension property
187  * option `-check' checks for extension upgrades
188  * added `-eval' option
189  * added parameters `setup-install-flag' and `setup-verbose-flag'
190- FFI:
191  * added the handy `$' macro, which lets you do foreign calls directly without declaring
192    a placeholder procedure
193  * `define-foreign-enum' for treating C enums as symbol-sets
194  * `foreign-safe-wrapper' has been deprecated
195- Slight reorganization of TinyCLOS and match macros and support code
196- `thread-join!' has been generalized to allow a thread to have multiple results
197- Renamed `thread-deliver-signal!' to `thread-signal!' and `invalid-procedure-call-handler'
198  to `set-procedure-call-handler!'
199- The system can be configured to add an extra slot to symbol objects
200- Another configuration option enables GC of unused symbols by default
201- The extension repository is now versioned to catch binary incompatible
202  installations, this requires to either move all installed extensions to the
203  new location ("$prefix/lib/chicken/1") or reinstall them
204- Now supports SRFI-61 (extended `cond')
205- Added procedures `load-relative', `tcp-buffer-size`, `string-chomp'
206- trivial implementations of `real-part', `imag-part', `angle' and `magnitude' have
207  been added to the library to allow more portable code
208- Breakpoints and single-stepping of compiled code on the function-level, new
209  procedures `breakpoint' and `singlestep'
210- csi: new toplevel commands `,info', `,step', `,br', `,ubr', `,breakall', `,breakonly',
211  `,exn' and `,c'
212- csi: `set-describer!' allows definition of custom output for the `,d' command
213- Added `integer64' foreign type specifier
214- The environment variable "CHICKEN_PREFIX" allows (together with "CHICKEN_REPOSITORY") overriding
215  the installation path prefix in case you want to install and run multiple instances/versions
216  of CHICKEN or install on a shared network
217- csc: added `-dry-run' option
218- removed `-split...' options (and the ability to generate multiple C files from a single
219  Scheme file)
220- `crictical-section', `disable-interrupts' and `enable-interrupts' shouldn't be used from
221  now on (deprecated), use SRFI-18 mutexes instead
223Many thanks to Nico Amtsberg, Arto Bendiken, Jean-Francois Bignolles, Peter Busser, Thomas Chust,
224John Cowan, Alejandro Forero Cuervo, Jaarod Eells, Brandon van Every, Graham Fawcett, Mario Domenech
225Goulart, Sven Hartrumpf, Markus Hülsmann, Goetz Isenmann, Heath Johns, Daishi Kato, Kon Lovett, Dan
226Muresan, Ian Oversby, Göran Weinholt, Burton Samograd, Reed Sheridan, Alex Shinn, Sunnan, Zbigniew
227Szadkowski and Peter Wright for their helpful contributions, suggestions and bug reports!
232- Many many bugfixes
233- compiler:
234  * new option `-profile-name FILENAME'
235- the `chicken-config' script has been removed, identical functionality can be provided
236  by `csc'
237- csc:
238  * new option `-objc' compiles generated C files in Objective-C mode
239  * accepts .m files and handles the case when only object files are given
240  * new options `-framework', `-F<dir>' and `-rpath'
241  * options `-home', `-cflags', `-ldflags', `-libs', `-cc-name' and `-ld-name'
242- chicken-setup:
243  * detects whether eggs are gzipped or not and accepts ungzipped eggs
244  * if no other actions are specified and no eggs are given on the command line, then
245    all .setup scripts in the current directory are executed
246  * added `setup-build-directory' and `setup-root-directory' parameters
247  * helper procedures `copy-file', `move-file', `remove-file' and `create-directory'
248- csi commands `,s', `,l' and `,ln' accept multiple inputs, the `trace'/`untrace'
249  macros have been replaced byy the toplevel commands `,tr' and `,utr'
250- new toplevel commands in csi can be defined with the `toplevel-command' procedure
251- `extension-info' has been renamed to `extension-information'. The old name is
252  still available, but deprecated
253- `print-backtrace' has been renamed to `print-call-chain'. The old name is still
254  available (and deprecated)
255- `transcript-on' and `transcript-off' are no longer supported
256- New macro `define-for-syntax'
257- library:
258  (get-call-chain [DEPTH])
259  (current-read-table)
260  (copy-read-table READ-TABLE)
261  (current-gc-milliseconds)
262  `print-error-message' writes now to the current output-port, not the error port
263  `number-string' does now a slightly better job converting large exact integers
264  with non-decimal base
265- extras:
266  (each PROC ...)
267  `hash-table-ref' throws (exn access) on error
268- posix:
269  (local-time->seconds TIME)
270  (utc-time->seconds TIME)
271  (local-timezone-abbreviation)
272  `directory' takes optional path and dotfiles arguments
273  `[group|system]-information' return lists instead of multiple values
274- tcp:
275  (tcp-port-numbers PORT)
276- `set-dispatch-read-syntax!' has been renamed to `set-sharp-read-syntax!' (the old
277  name is still available but deprecated)
278- evaluated code generates call-trace information (as compiled code does), which
279  results in much better back-traces.
280- new foreign types `[unsigned-]int32' and `[unsigned-]integer32'
281- added SRFI-17 setters for many accessors of the core libraries
282- tinyclos: added a couple of missing classes for core library structures
283- `let[*]-values' is now SRFI-11 compliant
284- the finalizer-table is now resized dynamically, which speeds up code that uses
285  very many finalizers [Thanks to Zbigniew Szadkowski]
286- reloading compiled code dynamically does basically work (but still leaks memory)
287- the manual contains a section on pattern matching
288- libffi is used by default, when available
289- CHICKEN has now experimental support for the "CMake" build system <>
290  Many thanks to Bill Hoffmann from Kitware and Brandon van Every for helping with this
291- added compiler/runtime support for object serialization via the `s11n' extension
292  (see <>)
294Sergey Khorev has offered to help with maintaining the Windows port of CHICKEN.
295Thanks, Sergey!
297Many thanks Jean-Francois Bignolles, Patrick Brannan, Adam Buchbinder, Hans Bulfone, Category 5,
298John Cowan, datrus, Guillaume Germaine, Mario Domenech Goulart, Daniel B. Faken, Andrey Fomichev,
299Jarod Eells, Sven Hartrumpf, David Janssens, Daishi Kato, Levi Pearson, Pupeno, Eric Raible, Benedikt
300Rosenau, Reed Sheridan, Zbigniew Szadkowski and Mark Wutka for their helpful contributions,
301suggestions and bug reports!
303Special thanks to Kon Lovett for fixing countless open issues and many useful sugestions.
308- Many bugfixes
309- The read-syntax `#+X Y' is provided as a shorthand for `(cond-expand (X Y) (else))'
310- `foreign-parse' and `foreign-parse/spec' have been removed
311- lolevel: Executable byte-vector stuff has been removed
312- SRFIs 28, 31, 62 and 69 are now officially supported
313- New compiler option `-extension' simplifies static compilation of eggs
314- csc: changed `-E' to `-P', `-E' is now an alias for `-extension'
315- Embedding:
316  * All the `entry-point' related things have been removed, as has been `define-embedded',
317    calling Scheme from C is now exclusively done with callbacks
318  * Integrated boilerplate embedding API into the `eval' unit
319  * Added `CHICKEN_continue' API function
320  * Default "stub" toplevel (`CHICKEN_default_toplevel') allows embedding without a
321    separate Scheme file
322  * Different stack-levels during invocation of CHICKEN_run or callbacks could result
323    in crashes - this is now detected (or can be checked manually)
324- Added extension-specifier `(version ...)'
325- New FFI macros `foreign-declare', `foreign-parse' and `foreign-parse/declare' replace
326  the declaration-specifiers of the same name
327- Hash-table resizing was ridiculously slow, and should now be much faster
328- `define-foreign-record' handles recursive structures
329- `require-extension' is now available by default, and so can be used with the
330  plain Scheme evaluator
331- Procedures now contain some basic debug information, unless a file was compiled
332  with `-no-lambda-info'
333- compiler: `-debug-level 2' is now the default (enables trace- and lambda-info)
334- chicken-setup:
335  * handles direct downloads from arbitrary URLs
336  * HTML documentation for eggs can now be included into the egg and will be installed
337    in the repository (using the `documentation' info-property)
338  * `chicken-setup -docindex' shows path of generated documentation index for all
339    installed eggs
340- extras:
341  * SRFI-69 is now fully supported, note that THIS WILL BREAK EXISTING CODE, since
342    the API is not compatible to the previous one
343  * `clear-hash-table!', `get' and `put!' are gone
344  * `read-file' accepts optional reader procedure and max count
345  * `read-lines' accepts filename instead of port
346- library:
347  * `signum' is now exactness-preserving
348  * `procedure-information' returns some basic debug info for a given procedure
349  * Added `(warning MESSAGE ARGUMENTS ...)'
350  * `(promise? X)'
351- posix:
352  * `(current-directory DIR)' is equivalent to `(change-directory DIR)'
353- regex:
354  * `pattern->regexp' has been renamed to `glob->regexp'
355- The `format' library unit has been removed from the base system and is noww available
356  separately
357- SRFI-17, on the other hand has been moved into the base system
358- String literals and the print-names of symbol literals are now allocated in static
359  (non-GC'd) memory
360- If static or shared build is disabled, no `...-static' executables will be generated
363Many thanks to Ashley Bone, Thomas Chust, John Cowan, Alejandro Forero Cuervo, Daniel Faken, Sven
364Hartrumpf, Daishi Kato, Sergey Khorev, Kon Lovett, Gene Pavlovsky, Reed Sheridan and Ed Watkeys for
365their helpful contributions, suggestions and bug reports!
370- Many bugfixes
371- Loads of minor improvements (better error messages, more warnings, more error
372  checks, etc.)
373- On systems supported by the "libffi" library, the 128-argument limit can
374  be exceeded (currently to an arbitrary maximum of 1000). To take advantage
375  of this, add `--with-libffi' to the configuration options when building
376  chicken
377- The `libsrfi-chicken' and `libstuffed-chicken' libraries have been folded
378  into `libchicken', so only a single library is linked with generated
379  executables, which greatly simplifies and speeds up the build process.
380  It is recommended to remove any traced of `libstuffed-chicken.*' and
381  `libsrfi-chicken.*' before installing a new release. This requires also
382  to reinstall all eggs (extension libraries).
383- The compiler is able to inline more procedure calls
384- Implicit non-multival continuations (like in `begin' or 'let') accept multiple
385  values and discard all but the first value
386- finalization should actually work now and is much more efficient (unless
387  used excessively)
388- csi:
389  `advise' has been removed
390  `-eval' implies `-batch' and `-quiet'
391  added `-require-extension'
392  short option names are now supported and may be collapsed, if unambigous
393- New runtime options:
394  -:b (enter REPL on error)
395  -:B (ring bell on every major GC)
396  -:fNNN (set pending finalizer maximum limit)
397- New compiler options:
398  -accumulate-profile
399  -inline
400  -inline-limit
401  -emit-external-prototypes-first
402- The compiler-option `-require-for-syntax' has been renamed to `-require-extension'
403  and is the same as putting a `(require-extension ...)' form directly into the code
404- Removed compiler- and interpreter option `-no-feature'
405- New declarations:
406  (lambda-lift)
407  ([not] inline)
408  (inline-limit LIMIT)
409  (emit-external-prototypes-first)
410  ([not] check-c-syntax)
411- `foreign-callback-lambda[*]' has been renamed to `foreign-safe-lambda[*]' - the
412  old names are still valid but deprecated
413- New foreign type specifier `scheme-pointer' (the same as `pointer', which is
414  deprecated now)
415- Easy FFI:
416  `___scheme_pointer' and `___byte_vector' pseudo types
417  `___pointer' and `___length' markers
418  `default_renaming' and `opaque' pseudo declarations
419  `___inout' and `___out' argument markers work also for C++ reference types
420  Recognizes `C_word' and `size_t'
421- The reader supports selective case sensitive/insensitive reading using the
422  `#cs...' and `#ci...' syntax (as supported in PLT Scheme)
423- `\uXXXX' and `\UXXXXXXXX' escape-sequences for string literals
424- `#\UXXXXXXXX' character literal syntax
425- `\v', `\a' and `\f' escape sequences and `#\delete', `#\esc', `#\alarm', `#\vtab'
426  and `#\nul' character literals
427- `chicken-setup' supports proxy connections via the `-proxy' option
428- library:
429  (set-dynamic-load-mode! MODE)
430  `(end-of-file)' has been removed (use `#!eof' instead)
431- The alternative continuation API described in Marc Feeley's paper
432  "A better API for first class continuations" is supported natively:
433  (continuation-capture PROC)
434  (continuation-graft K THUNK)
435  (continuation-return K VALUE ...)
436  (continuation? X)
437- `foreign-primitive' and `define-extension' macros
438- tinyclos:
439  (instance-of? X)
440  `define-method' specializes on all arguments and allows DSSSL keyword argument lists
441- eval:
442  (set-dispatch-read-syntax! CHAR PROC)
443- extras:
444  (hash-table-update! HT KEY PROC INIT)
445  (hash-table-exists? HT KEY)
446  (hash-table-values HT)
447  (hash-table-keys HT)
448  (alist->hash-table ALIST [TEST SIZE])
449  `hash-table->list' has been renamed to `hash-table->alist
450  `hash-table-for-each' takes the arguments in reversed order (the old order is still
451  valid but deprecated)
452  Hash-tables support now user-defined hash functions
453- posix:
454  (file-link OLD NEW)
455  (symbolic-link? FILENAME)
456  (regular-file? FILENAME)
457  errno/exist
458  `process' and `process-execute' allow passing an environment
459- regex:
460  (regexp-escape STR)
461- tcp:
462  (tcp-listener-fileno LISTENER)
463- utils:
464  (port-for-each FN THUNK)
465  (port-map FN THUNK)
466- On Windows, the batch file `win-install.bat' can be used to install the system
467  into the desired location
468- Building Chicken on Windows with the free development tools from Microsoft (VCToolkit,
469  Platform Core SDK) has been tested and is documented in the file `vctk-install.txt'
470- The `-script-meta' option has been removed
471- The srfi-25 and srfi-37 library units and the test-infrastructure facility have been
472  removed from the core system and is now separately available as an extensions (eggs)
473- The syntax-case macro and module system has been removed and also available as an
474  extension. This implies that all compiler- and interpreter options related to hygienic
475  macros and syntax-case are gone as well.
476- All strictness compiler- and interpreter options (and the `strict-reader' parameter)
477  have been removed
478- the `examples' directory and its contents have been removed from the distribution
481Many thanks to William Annis, Mark Baily, Peter Bex, Dominique Boucher, Patrick Brannan,
482Thomas Chust, Alejandro Forero Cuervo, Graham Fawcett, Damian Gryski, Sven Hartrumpf,
483Hans Huebner, Christian Jaeger, Dale Jordan, Daishi Kato, Sergey Khorev, Krysztof Kowalczyk,
484Goran Krampe, John Lenz, Kon Lovett, Scott G. Miller, Julian Morrison, Nicolas Pelletier,
485Carlos Pita, Benedikt Rosenau, Andreas Rottmann, Reed Sheridan, Alex Shinn, Andrey Sidorenko,
486Michele Simionato, Volker Stolz, Sunnan, Zbigniew Szadkowski, Andre van Tonder, Henrik
487Tramberend and Mark Wutka for their helpful contributions, suggestions and bug reports!
Note: See TracBrowser for help on using the repository browser.