The Racket repository
![]() Formerly, cross-module inlining would not work for a function like (define (f x) (if .... .... (slow x))) unless `slow` was also inlined into `f`. This commit changes cross-module inlining so that it allows a call to `f` to be replaced with an expression that references other module-level bindings (that are not primitives), such as `slow`. Adjusting the inlining rules can always make some program worse. In this case, a hueristic about whether to export an optimized or unoptimized variant of a fnuciton for inlining tends to collide with the adjusted inlining rule, so this commit tweaks that heuristic, too. |
||
---|---|---|
pkgs | ||
racket | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
.travis.yml | ||
appveyor.yml | ||
INSTALL.txt | ||
Makefile | ||
README.txt |
This is the source code for the main Racket distribution. See "INSTALL.txt" for information on building Racket. License ------- Racket Copyright (c) 2010-2016 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.