Commit Graph

3822 Commits

Author SHA1 Message Date
Matthew Flatt
a0ba30d8e7 fix `syntax-local-get-shadower' for submodules
Closes PR 12926, 12928

Merge to v5.3
2012-07-22 21:43:20 -05:00
James Swaine
f0aaca0dde Change future visualizer trace collection slightly to be more composable 2012-07-22 20:03:22 -05:00
James Swaine
df54f8460b Fix future visualizer trace collection when running inside DrRacket 2012-07-22 20:03:21 -05:00
Eli Barzilay
a6b20f01da Use string-no-nuls?' and bytes-no-nuls?' in more docs & error messages.
Also use `byte?' instead of (integer-in 0 255).

(This commit will most likely require some proof-reading.)
2012-07-22 13:00:05 -04:00
Matthew Flatt
d95ec4d454 fixes for submodules and `variable-reference->namespace'
Closes PR 12925

Merge to 5.3
2012-07-22 11:54:46 -05:00
Asumu Takikawa
e14c5d61e9 Allow guards for impersonatable struct type properties 2012-07-19 22:46:14 -04:00
Matthew Flatt
d3677524b8 macro expander fix
Relevant to PR 12863

Merge to v5.3
2012-07-19 20:42:36 -05:00
Matthew Flatt
a45d13b52a another `namespace-attach-module' repair for submodules
Merge to v5.3
2012-07-19 16:50:25 -05:00
Matthew Flatt
73e07f576b macro-expander fix
The "simpliciation" of a syntax object's lexical context was dropping
module contexts that have no bindings, but those contexts now
contribute to the identifty of some bindings. Fix simplification
to replace the full rename rename with a simplified one, instead
of just dropping it.

Merge to v5.3
2012-07-19 16:50:25 -05:00
Matthew Flatt
9413b30599 fix related to module name resolver change 2012-07-19 07:46:50 -05:00
Matthew Flatt
5c626c5872 3m GC hints 2012-07-19 07:46:50 -05:00
Eli Barzilay
36ee9f9bbd Fix typo from commit 12a4ee8. 2012-07-18 22:52:41 -04:00
Eli Barzilay
bee08899eb New Racket version 5.3.0.16. 2012-07-18 03:30:10 -04:00
Ryan Culpepper
97fabae42f Post-release version for the v5.3 release 2012-07-17 19:21:23 -04:00
Matthew Flatt
5e4866e54c fill in one more corner of submodules and `namespace-attach-module'
When submodules are not independently loaded, then pull submodule
declarations along when attaching a module to a namespace.
2012-07-17 10:16:32 -06:00
Matthew Flatt
c8f4ac6ae4 submodules: make .zo path stick for consistent independent loading
When a module is loaded from bytecode and then the value of
`use-compiled-file-paths' changes, an attempt to load a submodule
would fail, because source isn't used if the main module is
already declared, and the bytecode code is not used according to
`use-compiled-file-paths'. Make the bytecode path stick when it
is used once, so that submodule loads succeed, and make it work
even with `namespace-module-attach'.

The module-attach part of this protocol requires a change to the
API of a module name resolver: the notification mode gets two
arguments, instead of one, where the second argument is an
environment.
2012-07-17 09:47:05 -06:00
Matthew Flatt
12a4ee8d98 FFI repairs for 64-bit big-endian
Again; missed pieces for b3c721a346.
2012-07-17 06:07:40 -06:00
Sam Tobin-Hochstadt
0c9bd915bc Fix error message for find-system-path.
Closes PR 12916.
2012-07-17 07:40:46 -04:00
Matthew Flatt
b3c7210a34 FFI repairs for 64-bit big-endian
Based on a patch supplied by Stephen Lewis
2012-07-16 19:22:31 -06:00
Matthew Flatt
8718a5dd62 doc and error-message fixes for module name resolver 2012-07-16 19:22:30 -06:00
Matthew Flatt
73e901a262 fix optimizer bug
The lambda-lifting transformation needs to iterate to a fixpoint
where each lambda's added arguments and order are known. The
check for whether something changed was formerly just the number
of added arguments, but that's not good enough, because a binding
might get lifted away while another one acquires an extra argument.
The right test is to check the count and original bindings for the
added arguments.

Closes PR 12910
2012-07-15 10:32:45 -06:00
Matthew Flatt
9b51973b79 fix bytecode validation bug
Since the optimizer can lambda-lift a function and adds box arguments
(i.e., locations of mutable variables instead of values), then
the validator must check that calls and declarations are consistent.
But declaration-side information wasn't registered properly.
2012-07-15 10:32:33 -06:00
Matthew Flatt
e430463ea4 another submodule expansion repair
Relevant to PR 12902
2012-07-13 09:38:44 -06:00
Matthew Flatt
a94a2f6d55 avoid compiler warning 2012-07-13 07:48:17 -06:00
Matthew Flatt
1d8f5279bd futures: fix a problem related to lightweight continuations
The mark-stack counter needs to be updated even if there
are no entries to add to the mark stack.
2012-07-12 15:43:22 -06:00
Matthew Flatt
f747c086d8 fix checking for `syntax-local-lift-require'
Closes PR 12894
2012-07-11 14:03:31 -06:00
Matthew Flatt
a022e78ab1 fix Windows (and maybe other compilers) compile problem 2012-07-11 10:29:28 -06:00
Vincent St-Amour
0ae21d8036 Have inlining logs be produced at the debug level, like the TR opt logs. 2012-07-11 10:59:33 -04:00
Vincent St-Amour
78355b6398 Give up on reporting close calls directly from the inliner. 2012-07-11 10:59:33 -04:00
Vincent St-Amour
570c5ef0f4 Log fuel and closure size.
That way, we can detect close calls post facto.
2012-07-11 10:59:32 -04:00
Vincent St-Amour
4538072df6 Add anchor to inliner messages. 2012-07-11 10:59:32 -04:00
Vincent St-Amour
9424c843ef Log inlinings that were close to happening. 2012-07-11 10:59:31 -04:00
Vincent St-Amour
c2018e3710 Log inlining successes, and some failure paths. 2012-07-11 10:59:31 -04:00
Eli Barzilay
6752bec4a3 New Racket version 5.3.0.14. 2012-07-11 03:30:15 -04:00
Matthew Flatt
506b70f71f fix `variable-reference->module-source' for submodules
Unlike the `variable-reference->resolved-module-path', the module
source one doesn't include a submodule path.
2012-07-10 18:35:03 -06:00
Matthew Flatt
428711bf93 another submodule-expansion repair 2012-07-10 15:05:40 -06:00
Matthew Flatt
85bc23377b increment version 2012-07-10 11:42:42 -06:00
James Swaine
2b2070f7b2 Clean up code in futures visualizer
Remove mouseover display for creation graph nodes (for now)
2012-07-10 10:54:43 -05:00
James Swaine
39f42b753d Futures visualizer - show name of jitted function for on_demand events 2012-07-10 10:54:43 -05:00
James Swaine
919d359e9a Make sure future log buffers are cleared when starting to
trace for the futures visualizer
2012-07-10 10:54:42 -05:00
James Swaine
b6f71ec4be Add futures visualizer, improvements to futures logging 2012-07-10 10:54:42 -05:00
Matthew Flatt
8c66bd786b error-message repair
Closes PR 12886
2012-07-06 16:48:37 -06:00
Matthew Flatt
29c83cd254 fix a problem with unboxed arguments in self tail calls
This is an old bug, but it was exposed by recent improvements
in unboxing.

Also, fix JIT implementation of explicitly decremented fuel on
a 64-bit platform, plus some other code clean-up.
2012-07-06 08:25:05 -06:00
Matthew Flatt
f71037c775 also improve JIT support for unboxed flonums in non-tail-call
Applies to non-tail calls to immediate functions, which can be
generated by a `for' or `let loop' pattern in a non-tail
position.
2012-07-06 08:07:10 -06:00
Matthew Flatt
8e6a6738bb futures: improve x87 consistency
Each future thread has its own x87 flags, apparently reset to the
default (at least on Mac OS X) rather than inherited from the
creating thread, so reset the x87 configuration in each new future
thread.
2012-07-06 08:07:10 -06:00
Matthew Flatt
ea2909fdb8 fix no-future build to be bytecode-consistent with future build 2012-07-06 08:07:10 -06:00
Matthew Flatt
b08c202a12 improve JIT support for unboxed flonums in a tail-call case
Applies to tail calls to immediate functions, which can be
generated by a `for' or `let loop' pattern in a tail
position.
2012-07-06 08:07:10 -06:00
Matthew Flatt
c428d4ed4c futures: makestack overflow trigger a request for future-thread memory 2012-07-06 08:07:09 -06:00
Matthew Flatt
aa68692b37 allow `begin' wrapper on a submodule to re-expand
Closes PR 12835
2012-07-02 10:02:41 -06:00
Matthew Flatt
aa0d21b7dd improve module-path-index sharing for a module declaration
To support module caching, module path indexes must be cloned
for each use of the cached module, so that path resolutions
don't collide. Cloning was previously implemented at the point
of shifting the modidx based on the module instantiation name,
but now its cloned at declaration time. This result in better
sharing of module-path resolutions, which in turn speeds up
compile-time instantiation of modules, which in turn speeds up
interactions & examples in documentation (as much as 10% for the
Guide, for example).

Furthermore, the reverse cache within a modidx may have been
used improperly during cloning, and that's not a problem in
the new implementation.
2012-06-28 11:42:20 -06:00