Commit Graph

580 Commits

Author SHA1 Message Date
Matthew Flatt
ab5baca97c optimizer: fix variable-reference-constant? on module-level identifier
Allow optimization when the reference variable is known to have
a fixed value, not only when it's a constant value.
2015-01-19 21:29:54 -07:00
Matthew Flatt
2d4b4527c0 defer require and provide expansion to module body
Closes PR 14936
2015-01-18 11:35:19 -07:00
Matthew Flatt
c6802ed107 namespace-attach-module: fix handling of for-template
The handling of `for-template` imports by `namespace-attach-module`
didn't match the docs. The actual handling was to refrain from
attaching instances of a phase-0 module if the instance was reachable
only through a `for-template`. The rationale had to do with such
modules instances being created only through instantiation of
phase-1 modules, and phase-1 module instances aren't attached;
it doesn't work well that way, though, when different modules
are attached with intervening `namespace-require`s on the target
namespace.

The change includes a documentation correction. Previously and still,
only modules at the same phase as the attached module (as opposed to
the same phase or less) are instantiated in the target namespace.

Closes PR 14938
2015-01-18 11:19:49 -07:00
Matthew Flatt
9f3c82c30a Windows: change delete-{file,directory} to attempt permission correction
If a file or directory delete fails, try adjusting the file or directory
permissions to allow writes, then try deleting again. This process should
provide a more Unix-like experience and make programs behave more
consistently.

A new `current-force-delete-permissions` parameter provides access to
the raw native behavior.
2015-01-13 11:58:36 -07:00
Matthew Flatt
719917f812 compiler: fix inlining of #%variable-reference 2015-01-13 06:45:59 -07:00
Gustavo Massaccesi
feb8f10165 Mark error in expression when an arity mismatch is detected during optimization
This enables further reductions, for example (begin (car x x) z) => (car x x)
2015-01-09 08:54:13 -07:00
Gustavo Massaccesi
6d8ba1fd67 Mark errors in expression when a wrong type is detected during optimization
This enables further reductions,
for example (begin (car x) (unbox x) z)  => (begin (car x) (unbox x))
2015-01-09 08:54:13 -07:00
Matthew Flatt
c56c9250f1 fix JIT-inlined make-rectangular combining single and double
The single must be coernced to a double in that case.
2015-01-07 14:44:02 -07:00
Matthew Flatt
3408209f66 fix potential stack overflow with JIT-inlined apply
If the slow path has to be taken because the number of
list elements is greater than the stack size, then the
old implementation would copy all the arguments --- which
still might be too much for the available stack space.
Avoid that copy.

Also, add pad word to the end of the stack to help detect
overflow.
2015-01-06 12:58:52 -07:00
Matthew Flatt
daf9415a98 ffi/unsafe: fix tauint handling in define-fun-syntax 2015-01-02 18:16:34 -07:00
Gustavo Massaccesi
4272f1b18e Check more disjoint types 2014-12-29 07:26:15 -07:00
Gustavo Massaccesi
25013320be Fix is_arity_list 2014-12-29 07:26:15 -07:00
Gustavo Massaccesi
17665d33a2 Remove dead code after errors
For example, reduce (begin x (error 'e) y) ==> (begin x (error 'e)) and
(f (error 'e) y ) ==> (begin f (error 'e)).

Also, reduce (if (error 'e) x y) ==> (error 'e) and propagate the type information
and clocks when only one branch produce an error.
2014-12-29 07:24:22 -07:00
Gustavo Massaccesi
92615049aa Fix make_discarding_first_sequence
Ensure that the first expression is single valued.
2014-12-29 07:24:09 -07:00
Matthew Flatt
4b8b6fc360 fix a test
Allow an inferred function name to require "|...|" symbol escaping.
2014-12-19 20:23:49 -07:00
Matthew Flatt
31ebe213cc reject prefab specs with bad mutability indices
Closes PR 14887
2014-12-19 20:12:44 -07:00
Matthew Flatt
9419bf42a1 fix enforcement of size limit in prefab struct descriptions
Closes PR 14888
2014-12-19 20:12:44 -07:00
Sam Tobin-Hochstadt
74786ed8d0 Finish fixing dependencies of "racket-test-core".
This required moving some tests to "racket-test", and putting them
in modules that use `rackunit`. Also, some uses of rackunit were
removed and switched to more primitive systems. Some improvements
here, particularly in "foreign-test.rktl", would still be good,
but everything passes at the moment.
2014-12-19 11:35:39 -05:00
Sam Tobin-Hochstadt
12c6b2347b Another couple "racket-test-core" fixes. 2014-12-18 16:32:02 -05:00
Sam Tobin-Hochstadt
a59ad8b929 Move tests for SRFIs to "racket-test". 2014-12-18 15:23:44 -05:00
Sam Tobin-Hochstadt
37daa2bf65 Remove dependency on compatibility/mlist. 2014-12-18 14:38:21 -05:00
Matthew Flatt
b05d07ad10 generalize {impersonator,chaperone}-of? on immutable hash tables 2014-12-18 06:49:10 -07:00
Sam Tobin-Hochstadt
5fe0fa3f03 Take advantage of new smaller pkgs. 2014-12-16 23:04:54 -05:00
Sam Tobin-Hochstadt
92332c0046 Reduce and fix dependencies for "racket-core-test".
Eventually I'd like to reduce the dependencies further, but this
is enough for now.
2014-12-15 19:07:43 -05:00
Matthew Flatt
1b9911c50b repair a test
The test tried to detect separate evaluations by using the
result of `(current-inexact-milliseconds)`, but a clock's
resolution might not be high enough. Use `(gensym)`, instead.
2014-12-15 09:13:24 -07:00
Sam Tobin-Hochstadt
633f780f50 Remove unwanted dependency on mzscheme.
The '#%kernel prop:procedure is the same binding as the mzscheme one.
2014-12-15 09:16:49 -05:00
Sam Tobin-Hochstadt
927be4aeba Ignore files here too. 2014-12-15 02:55:15 -05:00
Sam Tobin-Hochstadt
3bb896d6cb Use racket instead of scheme. Fixes dependency issues. 2014-12-15 02:45:32 -05:00
Sam Tobin-Hochstadt
61e3db6df5 Rename to avoid conflict since pkgs is slow. 2014-12-15 02:10:44 -05:00
Sam Tobin-Hochstadt
448213e9dc Split the core racket tests into the "racket-test-core" pkg.
This supports running the core tests on systems which can't run
or don't want to install all the dependencies of the "racket-test"
package.

The "racket-test-core" pkg stil depends on "sandbox-lib" because
the sandbox tests live with the core tests. Hopefully I'll be able
to fix that eventually.
2014-12-15 01:59:56 -05:00