The Racket repository
![]() The `procedure-specialize` function is the identity function, but it provides a hint to the JIT to compile the body of a closure specifically for the values in the closure (as opposed to compiling the body generically for all closure instances). This hint is useful to the contract system, where a predicate is coerced to a projection with (lambda (p?) (procedure-specialize (lambda (v) (if (p? v) v ....)))) Specializing the projection to a given `p?` allows primitive predicates to be JIT-inlined in the projection's body. |
||
---|---|---|
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-2015 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.