The Racket repository
![]() The protection against unsafe-function references was designed for bytecode that referred to unsafe operations indirectly, and that was broken when the compiler changed to refer to unsafe functions directly in bytecode (to simplify JIT inlining bytecode optimization). Actually, the relevant code (now removed) seems to be pointless, since protected-binding checking should cover it already. Maybe something else changed, or maybe the code was not properly checked in the first place. Now, `read` rejects a bytecode stream if it contains a direct reference to an unsafe function and the code inspector is not the original code inspector. It's still possible to synthesize bytecode that contains an indirect reference, and then protected-binding checking does its job. |
||
---|---|---|
native-pkgs@60c510ba85 | ||
pkgs | ||
racket | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.mailmap | ||
.travis.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-2014 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 racket/src/COPYING_LESSER.txt for more information.