The Racket repository
Go to file
Matthew Flatt 3eef017911 track whether a closure uses syntax objects
For GC purposes, if a "prefix" (a closure frame that caprues
top-level or module-level bindings) may refer to syntax objects
that are not used by any reachable closure, in which case the
syntax object can be dropped. This pruning of syntax objects
uses the infrastructure already in place to prune variables.

Syntax objects were not included in the original pruning
implementation, because they are unlikely to create
finalization cycles in the way that global-variable
references can. A syntax object can retain a namespace's
table of module imports, however, which can be substantial
and worth releasing of a closure is only held, say, for
a low-level finalization action.
2015-01-19 21:29:55 -07:00
pkgs track whether a closure uses syntax objects 2015-01-19 21:29:55 -07:00
racket track whether a closure uses syntax objects 2015-01-19 21:29:55 -07:00
.gitattributes Don't include git files in archives. 2010-05-12 01:46:05 -04:00
.gitignore Ignore extra-pkgs/ 2014-12-04 10:44:14 -05:00
.mailmap mailmap updates & fixes. 2013-04-03 18:10:22 -04:00
.travis.yml Run the non-default configs tests only with gcc. 2014-12-11 19:43:34 -05:00
appveyor.yml Improve AppVeyor configuration. 2014-12-15 19:56:50 -05:00
INSTALL.txt make: DESTDIR must be an absolute path 2015-01-15 06:09:21 -07:00
Makefile makefile: add an as-is target 2015-01-03 07:11:08 -07:00
README.txt Professionalism 2014-11-03 06:06:04 -07:00

This is the source code for the main Racket distribution.  See
"INSTALL.txt" for information on building Racket.

License
-------

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

Racket is distributed under the GNU Lesser General Public License
(LGPL).  This implies that you may 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 states
that you must release the source code for the modified software.  

See racket/src/COPYING_LESSER.txt for more information.