The Racket repository
Go to file
Matthew Flatt b34fac32c0 fix space-safety problem
A tail call with certain kinds of primitives would fail to
clear local bindings in a detectable way. For example, a
tail call to `sync' that blocks could retain references
to unreachable data in the context of the `sync' call.

Primitives that can cause problems in the run-time system
are already identified as "imemdiate" primitives. The
safe-for-space pass now inserts clearing actions before a tail
call, unless the call it to a known immediate primitive or a
Racket-implemented function.

Clearing operations are now omitted before non-tail calls
to immediate operations like structure predicates.

The newly added clearing operations could affect performance,
but they probably won't, since the clear operations are still
avoided in tail-call cases that are otherwise fast. The newly
omitted clearing operations may improve performance.
2013-03-25 05:15:24 -06:00
collects fix space-safety problem 2013-03-25 05:15:24 -06:00
doc support boxes in syntax patterns and templates 2013-03-21 09:06:15 -06:00
man/man1 Remove old packages 2012-07-13 15:43:59 -04:00
src fix space-safety problem 2013-03-25 05:15:24 -06:00
.gitattributes Don't include git files in archives. 2010-05-12 01:46:05 -04:00
.gitignore Moved default location for compiled-root for easier tab-completion of "collects/". 2012-09-26 14:50:31 -04:00
.mailmap Another email for Matthew. 2012-11-07 11:22:19 -05:00
README "PLT Scheme Inc" -> "PLT Design Inc" 2013-02-12 08:06:30 -05:00

The Racket Programming Language
===============================

Instructions for building Racket from source are in src/README.

The main executables in this package:

* DrRacket: Racket's integrated development environment (start here!).

* racket: command-line tool for running Racket programs.

* raco: command-line tool for compilation, documentation, and more.


More Information
----------------

For Racket documentation, use DrRacket's `Help' menu, run the `Racket
Documentation' application (Windows or Mac OS X), or run `raco docs'
from a command line.

Visit us at
   http://racket-lang.org/ 
for more Racket resources.


License
-------

Racket
Copyright (c) 2010-2013 PLT Design Inc.

Racket is distributed under the GNU Lesser General Public License
(LGPL).  This means that you can link Racket into proprietary
applications, provided you follow the rules stated in the LGPL.  You can
also modify Racket; if you distribute a modified version, you must
distribute it under the terms of the LGPL, which in particular means
that you must release the source code for the modified software.  See
doc/release-notes/COPYING.txt for more information.