racket/collects/tests
Matthew Flatt 0d1056dbed fix potential bad interaction of module caching and JIT assumption
The JIT wants to detect calls to functions bound to module-level
variables that are always instantiated to a procedure of a particular
arity, in which case it can avoid some checks.  The problem is that
bytecode and JITted code can be shared via the module cache across
namespaces that use different modules to implement a particular module
path or that enable the JIT differently.  In particular, starting with
one that has a procedure binding and then using one (in a different
namespace) that has a non-procedure binding could lead to a crash.

Defend against this possibility by never treating imported variables
as constant in that sense. The JIT detects imported variables through
a new import map in the prefix.

This change may slow code. My guess is that it will have no
performance impact in practice, due to cross-module inlining,
although I can construct a microbenchmark that slows by 20%.
2012-06-27 09:57:50 -06:00
..
algol60 Added @literal-algol{} and started an algol60 test suite (apologies 2012-06-20 10:28:53 -05:00
compiler A bunch of fprintf' -> eprintf' conversions (and a few related things). 2012-05-06 12:06:00 -04:00
data
datalog adjust datalog so that syntax objects are not used as source location 2012-06-02 08:04:45 -05:00
db db: various fixes and additions 2012-05-09 09:17:52 -06:00
deinprogramm fix some tests related to the make-color' and make-pen' addition 2012-05-03 19:22:58 -06:00
drracket adjust the drracket language test suite for the new error messages 2012-06-11 14:04:05 -05:00
eopl
errortrace
file Streamline more test suits. 2012-05-24 11:27:13 -04:00
framework A bunch of fprintf' -> eprintf' conversions (and a few related things). 2012-05-06 12:06:00 -04:00
frtime
future fix some error-message tests 2012-06-23 05:21:52 -07:00
generic racket/generics: add contract combinator 2012-06-25 20:33:48 -04:00
gracket racket/gui: fixed by-position widget initialization 2012-06-19 12:37:35 -04:00
honu [honu] assignment operators cooperate with the dot operator 2012-06-11 13:07:52 -06:00
htdp-lang restored object-name tests for the new doc system 2012-06-25 19:15:09 -04:00
html
jpr
lazy fix misc tests for error-message change 2012-05-26 08:18:19 -06:00
macro-debugger fix check-requires for submodules 2012-05-07 14:46:13 -06:00
match
mysterx
mzcom
net Streamline more test suits. 2012-05-24 11:27:13 -04:00
openssl
plai fix misc tests for error-message change 2012-05-26 08:18:19 -06:00
planet fix Planet resolver for submodule tests 2012-04-19 08:15:11 -06:00
profile Leftover file that wasn't added with the `tests/profile' refactoring. 2012-05-24 11:53:03 -04:00
r6rs
racket fix potential bad interaction of module caching and JIT assumption 2012-06-27 09:57:50 -06:00
racklog
rackunit
scribble fix some error-message tests 2012-06-23 05:21:52 -07:00
scriblib Fixing PR12779 2012-05-28 11:52:56 -06:00
slatex
srfi
stepper refactored to reduce stepper dependencies 2012-06-19 23:51:59 -07:00
stxparse
syntax syntax/free-vars: fix quadratic behavior 2012-05-28 20:22:31 -06:00
syntax-color
test-engine
typed-racket Update types of string-join and add-between. 2012-06-27 11:39:15 -04:00
units "broke it's contract" -> "broke its contract" 2012-05-16 11:44:09 -04:00
unstable Add tests from unstable/generics. 2012-05-24 16:51:10 -04:00
utils
web-server New error message 2012-06-25 15:59:17 -06:00
xml generalize `xml/plist' to read/write any plist value 2012-04-10 16:38:54 -06:00
xrepl Use `scribble/text/wrap' in xrepl. 2012-05-06 05:38:04 -04:00
eli-tester.rkt Drop the now-redundant " " argument from existing uses of `string-join'. 2012-05-24 10:40:20 -04:00
info.rkt
run-automated-tests.rkt
stress.rkt
zo-path.rkt
zo-size.rkt