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 adding gvector-remove-last! 2012-01-30 16:14:22 -07:00
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 Big newline at EOF scan. 2012-02-29 00:28:11 -05:00
errortrace errortrace repair 2012-03-13 14:35:49 -06:00
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 More "~n" -> "\n" changes 2010-08-26 12:11:00 -04:00
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 moved the docs-complete library into rackunit 2011-05-05 16:10:42 -05:00
jpr A long overdue scan to eliminate files without terminating newlines. 2011-06-28 02:01:41 -04:00
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 Allow multiple right hand sides in match/values. 2012-03-01 15:05:51 -05:00
mysterx remove MysterX DLL, replace with wrapper around `ffi/com' 2012-02-17 06:37:19 -07:00
mzcom Recketizing much in `net/*', mass ".ss" -> ".rkt" conversion in .scrbl files. 2011-06-20 04:27:14 -04:00
net Streamline more test suits. 2012-05-24 11:27:13 -04:00
openssl openssl: more little fixes 2012-03-01 20:34:53 -07:00
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 fix `get-bytevector-all' bug 2011-11-02 08:12:58 -06:00
racket fix potential bad interaction of module caching and JIT assumption 2012-06-27 09:57:50 -06:00
racklog Fixing PR12085 2011-08-08 12:39:22 -06:00
rackunit rackunit: fixed test 2011-10-16 02:40:41 -06:00
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 A long overdue scan to eliminate files without terminating newlines. 2011-06-28 02:01:41 -04:00
srfi added tests for srfi/13 from SXML codebase 2012-01-08 23:25:53 -07:00
stepper refactored to reduce stepper dependencies 2012-06-19 23:51:59 -07:00
stxparse more template improvements 2012-03-21 17:48:10 -06:00
syntax syntax/free-vars: fix quadratic behavior 2012-05-28 20:22:31 -06:00
syntax-color fix a bug in the module lexer; it was returning the wrong length for the tokens 2011-11-28 21:16:31 -06:00
test-engine rename all files .ss -> .rkt 2010-04-27 16:50:15 -06:00
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 ".ss" -> ".rkt" scan done. 2011-07-02 10:37:53 -04:00
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 Don't compile test files. 2012-03-13 10:29:13 -04:00
run-automated-tests.rkt Don't compile test files. 2012-03-13 10:29:13 -04:00
stress.rkt A long overdue scan to eliminate files without terminating newlines. 2011-06-28 02:01:41 -04:00
zo-path.rkt change `current-write-relative-directory' to support more path conversions 2012-02-10 06:17:18 -07:00
zo-size.rkt A long overdue scan to eliminate files without terminating newlines. 2011-06-28 02:01:41 -04:00