Matthew Flatt
52fa72bd6b
first cut at cross-module function inlining
...
Inline only trivial functions, such as `(empty? x)' -> `(null? x)',
to avoid generating too much code.
Bytecode includes a new `inline-variant' form, which records a
version of a function that is suitable for cross-module inlining.
Mostly, the variant let the run-time system to retain a copy
of the bytecode while JITting (and dropping the bytecode of)
the main variant, but it may be different from the main variant
in other ways that make it better for inlining (such a less loop
unrolling).
original commit: 779b419c03
2011-11-30 07:39:36 -07:00
Matthew Flatt
7d7888d2ba
fix compiler bug related to lifting and unbox flonums
...
As variables are dropped for lifted functions, the bitmap
for flonum closure variables was not shifted down by the
number of dropped variables.
Closes PR 12259
original commit: 7680adf486
2011-10-05 19:25:59 -06:00
Matthew Flatt
701a815db1
remove obsolete and unused Racket-to-C compiler
...
Removes `raco ctool -e/-c', `mzc -e/-c', `compile-extensions',
`compile-extensions-to-c', `compile-c-extensions', `compiler/cffi',
`compiler/comp-unit', `compiler:inner^', and most options in
`compiler/option'.
original commit: 0ab6637539
2011-09-20 15:26:39 -06:00
Kevin Tew
9f5362d806
Fix pr 12205 pass --disable-inline and --vv options through to parallel make
...
original commit: 099e89a297
2011-09-20 11:10:56 -06:00
Eli Barzilay
569f5e20a9
Some selective #:when (not ...)' ->
#:unless ...'.
...
original commit: 623c7493ed
2011-09-16 10:48:18 -04:00
Matthew Flatt
c626b6fc7c
add ++aux' flag to
raco exe'
...
original commit: ca0d7b5ef4
2011-09-09 17:03:18 -06:00
Matthew Flatt
c663b1e957
fix demod for `begin-for-syntax' changes
...
original commit: b1eab296f4
2011-09-08 19:19:14 -06:00
Matthew Flatt
278f090e83
generalized `begin-for-syntax'
...
original commit: d3c56c9f13
2011-09-08 14:06:00 -06:00
Robby Findler
1161087456
remove extraneous path->string conversion
...
original commit: bb71539233
2011-09-05 08:30:48 -05:00
Matthew Flatt
d622961559
change `raco exe' to disable collection lookup by default
...
original commit: ecc058de4a
2011-08-25 09:15:30 -06:00
Matthew Flatt
dd20d04fff
add `raco unpack'
...
Although the ".plt" format is going to be replaced, the format is
currently viable for distributing collections, and I have wanted
a raw `unpack' command for a while. It was useful today to fix
problems with `raco pack' and collection links.
original commit: 2dbaa45e1b
2011-08-24 20:08:18 -06:00
Matthew Flatt
053734c4c8
fix compiler handling of top-/module-level constants
...
The JIT and bytecode compiler disagreed on the definition of
"constant". Now there are two levels: "constant" means constant across
all instantiations, and "fixed" means constant for a given instantation.
The JIT uses this distinction to generate direct-primitive calls
or not. (Without the distinction, a direct jump to `reverse' could
be wrong, because `racket/base' might get instantiated with the
JIT disabled or not.)
Also, fixed a bug in the JIT's `vector-set!' code in the case that
the target vector is a top-/module-level reference that is ready,
fixed, or constant.
original commit: 7eb2042bd9
2011-08-19 06:32:44 -06:00
Matthew Flatt
eec721ff4c
generalize #%variable-reference' and add
variable-reference-constant?'
...
Use the new functions to make the expansion of keyword applications
to known procedure work with mutation.
original commit: 5352d670c4
2011-08-09 16:33:17 -06:00
Matthew Flatt
eaed2b9eaf
fix compiler/zo-parse for sequence splice
...
Merge to 5.1.2
original commit: 42f41d868a
2011-07-22 22:19:58 -04:00
Matthew Flatt
481f10a622
fix zo-parse of rename tables
...
original commit: 07a9cdd2a8
2011-07-13 10:45:19 -06:00
Matthew Flatt
32d8828ab5
improve decompiler handling of syntax object
...
original commit: 5e49e0adea
2011-07-08 06:22:40 -06:00
Matthew Flatt
1f9a6339e4
fix decompile of define-values-for-syntax
...
original commit: 5bc8b67eba
2011-07-07 07:25:48 -06:00
Eli Barzilay
2f65de9812
".ss" -> ".rkt" scan done.
...
original commit: 3157955d40
2011-07-02 10:37:53 -04:00
Matthew Flatt
b5181ff032
adapt demodularizer to `compiler/zo-struct' change
...
original commit: 98740390fa
2011-07-01 22:46:20 -06:00
Matthew Flatt
ae33722071
fix `compiler/zo-parse' & co.
...
original commit: 69ad39d45c
2011-06-30 08:24:41 -06:00
Eli Barzilay
f90858601d
A long overdue scan to eliminate files without terminating newlines.
...
(DrRacket should really do that.)
original commit: 40124a0619
2011-06-28 02:01:41 -04:00
Eli Barzilay
1ca7b10829
Fix "zo-parse.rkt" wrt the inclusion of `identity' in mzlib/etc, and
...
switch to racket (making `begin-with-definitions' redundant).
original commit: fc1b974cd2
2011-06-07 13:06:13 -04:00
Matthew Flatt
f17d94056f
fix tl-map parse & marshal
...
original commit: 8ad8d5b7f7
2011-05-09 12:24:05 -06:00
Matthew Flatt
ee407d6610
fix varref' in
compiler/zo-structs', etc.
...
and sync docs better with implementation
original commit: a4da2a3f4c
2011-05-09 09:43:32 -06:00
Matthew Flatt
13e715ef44
fix decompiler's listing of captured top- and module-level variables
...
original commit: db75dddf87
2011-05-08 17:01:23 -06:00
Matthew Flatt
87373a2e0c
reorgnize datatypes of less common bytecode forms
...
removing a layer of indirection, and setting up
for an internal reorganization of the compiler code
original commit: e9721058fb
2011-05-06 06:56:23 -06:00
Matthew Flatt
805b8627f3
fix zo-marshal' for #f toplevel-map in
lam'
...
original commit: 87a4132b40
2011-05-03 14:43:27 -06:00
Matthew Flatt
1955c935ff
break link to namespaces from from closures over top-/module-level vars
...
- the `lam' structure from `compiler/zo-struct' changed to include a
`toplevel-map' field
This change helps solve a finalization problem in `racket/draw',
which in turn sigificantly reduces the peak memory use of `raco setup'
during the doc-building phase (because some documents load `racket/draw'
to render images, and multiple copies of `racket/draw' were retained
before finalization was fixed).
The change is an extreme way to solve a specific finalization
problem, but it's a kind of space-safety improvement; space safety
almost never matters, but when it does, then working around a lack of
space safety is practically impossible. In this case, it's not clear
how to otherwise solve the `racket/draw' finalization problem.
The improvement doesn't change the representation of closures, but it
requires special cooperation with the GC. All closures in a module
continue to share the same array of globals (plus syntax objects);
that is, instead of completely flat closures, Racket uses a two-level
environment where top-/module-level variables are grouped
together. The code half of a closure now records which
top-/module-level variables the body code actually uses, and the mark
phase of GC consults this information to retain only parts of the
top-/module-level environment frame that are actually used by some
closure (or all of the frame if it is accessible through some other
route). In other words, the GC supports a kind of "dependent
reference" to an array that is indexed by positions into the array
--- except that the code is more in the "Racket" directory instead of
the "GC" directory, since it's so specific to the closure
representation.
original commit: 2ada6d0e89
2011-05-03 06:57:49 -06:00
Matthew Flatt
9f2fba9625
safe-for-space repairs for functions with rest args
...
original commit: 0754ad0114
2011-04-22 15:59:33 -06:00
Matthew Flatt
b3fd71415d
cache loaded compiled modules
...
using a SHA1 hash stored in the marshaled bytecode; this cache
lowers the cost of sandboxes or other uses of multiple namespaces
when the code inspector doesn't change; the caching is almost
transparent, but an eval handler might be called with compiled
code that cannot be written
original commit: 97ce26b182
2011-04-16 13:24:58 -06:00
Eli Barzilay
a3b9b386fe
Use proper raco command name in make and pack.
...
Fixes PR 11719.
original commit: 0f14c6aa67
2011-02-09 21:13:55 -05:00
Kevin Tew
80de0713e8
raco make -j
...
original commit: 2e1dffbfcc
2011-02-01 08:27:56 -07:00
Matthew Flatt
37f822ccb2
restore gen-id gensym so that decompiler works
...
original commit: 0a8e5e604e
2010-11-11 14:39:45 -07:00
Blake Johnson
74c7025e6e
scrbl file and longer command name
...
original commit: 199a63772a
2010-10-30 12:49:27 -06:00
Jay McCarthy
c428f6cafe
Exposing more values to GC by not making them toplevels
...
original commit: 26c7625c79
2010-10-30 09:14:58 -06:00
Jay McCarthy
5f064063f5
Saving time by only reading zos once and saving space by limiting the extent of the hash tables
...
original commit: 255489e0af
2010-10-30 08:54:13 -06:00
Jay McCarthy
e5b1e20529
Removing newlines from debug messages
...
original commit: 46e2e7931a
2010-10-30 08:31:23 -06:00
Blake Johnson
8ae1cd0c3e
only creating zo file
...
original commit: 783418ce37
2010-10-29 19:50:12 -06:00
Blake Johnson
345f30f7e5
rolling back some unnecessary changes
...
original commit: a315f79ebd
2010-10-29 19:50:12 -06:00
Blake Johnson
969c0f4d58
replacing self modidx refs and tests
...
original commit: b2b5875e3e
2010-10-29 19:50:12 -06:00
Blake Johnson
8392dd8fa4
fixing logging and running code in zo-exs
...
original commit: 0688c18593
2010-10-29 19:50:11 -06:00
Blake Johnson
b8122efb82
using hasheq in zo-marshal
...
original commit: 43e151f340
2010-10-29 19:50:11 -06:00
Blake Johnson
7e97041b8d
debugging
...
original commit: 77c46d07ee
2010-10-29 19:50:11 -06:00
Blake Johnson
6b8a9b0861
Avoiding cycles in everything but closures
...
original commit: 7bffbc31a2
2010-10-29 19:50:11 -06:00
Blake Johnson
7aac10e938
offset calculation fix
...
original commit: d84b78daab
2010-10-29 19:50:11 -06:00
Blake Johnson
e0e144e210
changed eprintfs to log-debug
...
original commit: 3ddda200e8
2010-10-29 19:50:11 -06:00
Blake Johnson
1f2e1c6647
moved demodularizer from github to collects and added it to raco
...
original commit: 4676662e4b
2010-10-29 19:50:10 -06:00
Jay McCarthy
4830a2d141
Removing debugging aid
...
original commit: 089e99fac6
2010-09-16 12:45:38 -06:00
Blake Johnson
d2ad91ae38
removing indirects from zo handling
...
original commit: c88eb704c7
2010-09-16 12:45:37 -06:00
Eli Barzilay
be19dcb79d
Use "<path>" instead of a misleading "<file>",
...
improve doc line for `--collect'.
original commit: 41812ace0f
2010-09-12 01:53:52 -04:00
Blake Johnson
aa0d3e18ae
fixing pr11175, added only-rest-arg-not-used flag
...
original commit: 3433af0a30
2010-09-10 14:46:04 -06:00
Blake Johnson
4c5dfd88af
fixing pr11036 by adding plain certificates
...
original commit: 170ab47dc2
2010-09-10 14:46:04 -06:00
Blake Johnson
1f08f65282
removing debugging information
...
original commit: 6338a97e0a
2010-09-10 14:46:04 -06:00
Blake Johnson
78d5856d4d
never sharing hashes and trace debugging
...
original commit: 0d136ba4c7
2010-09-10 14:46:03 -06:00
Blake Johnson
070d86473d
traversing inside closures and using a seen set for lists
...
original commit: 32a9e60abe
2010-09-10 14:46:03 -06:00
Blake Johnson
b8fe95cd26
fixing closure problem
...
original commit: 2dfaab00f4
2010-09-10 14:46:03 -06:00
Blake Johnson
a5f557b90e
zo-marshal fixes and switching back to prefabs
...
original commit: ecc9ceb842
2010-09-10 14:46:03 -06:00
Blake Johnson
46f22d2882
handling closures while writing symbol table
...
original commit: c2fee2a2f0
2010-09-10 14:46:03 -06:00
Blake Johnson
b816da148d
quoting parameter and not prefab structs
...
original commit: 893294674a
2010-09-10 14:46:02 -06:00
Blake Johnson
b63f532735
encoding wraps and fixes for zo-marshal sharing
...
original commit: 54f2d34a2e
2010-09-10 14:46:02 -06:00
Blake Johnson
4379002ddc
traverse while writing rather than a separate step
...
original commit: 88dcab6b5a
2010-09-10 14:46:02 -06:00
Blake Johnson
ae4b770939
zo-marshal fixes and read.c fix for hash tables in symbol table
...
original commit: 9599304ca9
2010-09-10 14:46:02 -06:00
Blake Johnson
817b3186d9
zo-marshal single out-anything function and zo-parse debugging
...
original commit: 37f07cb68b
2010-09-10 14:46:01 -06:00
Blake Johnson
1d54bf17a5
zo-parse debugging and read in zo-exs
...
original commit: f27fe3d5c9
2010-09-10 14:46:01 -06:00
Eli Barzilay
9bebb5a98d
Lots of "~e" to "~.s" changes.
...
original commit: 606b7f60dc
2010-08-25 17:17:01 -04:00
Matthew Flatt
03593e433b
teach decompiler about literal prims from `#%futures'
...
original commit: 9be0559936
2010-08-25 14:58:27 -06:00
Matthew Flatt
4b9635cb70
fix bytecode-writing inconsistencies related to syntax objects and paths
...
and improve organization of the docs
original commit: 0d9f5016ba
2010-08-17 17:18:24 -06:00
Blake Johnson
f907cbf361
better traversal for more sharing in zo-marshal and some refactoring.
...
original commit: f4abd35f5c
2010-08-04 17:09:57 -06:00
Blake Johnson
aee68bb788
cases for more complicated lexical renames
...
original commit: b062c900a1
2010-08-03 15:40:41 -06:00
Blake Johnson
c998fe85e9
applying make-prefab-struct
...
original commit: 551ef5ba30
2010-08-02 19:27:28 -06:00
Blake Johnson
2efb39c391
another all-from-module fix
...
original commit: 7653ce037b
2010-08-02 19:26:32 -06:00
Blake Johnson
f7c42c1e6a
Added case in zo-marshal for prefab structs
...
Made quoted not-prefab so it isn't captured by prefab case
original commit: 63c6cc5d2c
2010-07-30 15:44:52 -06:00
Blake Johnson
7c32e885f3
better certificate handling in zo-parse and zo-marshal
...
original commit: 80c6ba482d
2010-07-30 14:37:17 -06:00
Eli Barzilay
ad67592f98
typo
...
(cherry picked from commit 14de7399bd
)
original commit: 700cb5ee8d
2010-07-30 05:25:25 -04:00
Eli Barzilay
bb6903c6bf
typo
...
original commit: 14de7399bd
2010-07-30 04:20:46 -04:00
Blake Johnson
8e7a64be3f
added another case for all-from-module renames
...
original commit: 2dfd340031
2010-07-28 14:45:07 -06:00
Blake Johnson
d8dae45321
Do not use CPT_ESCAPE for every CPT_QUOTE, instead if it was a protect-quote, then just put the CPT_QUOTE in.
...
original commit: 53fdc09e7a
2010-07-27 13:39:43 -06:00
Jay McCarthy
9b95b87049
Fixing parts of zo-marshal re protect-quote; parallelizing zo-test; there is no the path error again in zo-marshal though
...
original commit: 8d36dfad81
2010-07-27 11:10:54 -06:00
Jay McCarthy
99c7fa04e2
Fixing up a few things in zo-parse/etc
...
original commit: 28432037af
2010-07-26 12:18:01 -06:00
Blake Johnson
78faf5e6d6
zo-marshal wrap fixes, optional port for zo-parse
...
original commit: 8eeed89982
2010-07-26 12:06:02 -06:00
Matthew Flatt
b6a4c4ed65
extend decompiler to handle #%variable-reference
...
original commit: 5cc0baa01e
2010-07-20 06:35:58 -06:00
Blake Johnson
1325701f82
handling top-level-renames and mark-barriers
...
(cherry picked from commit 8df94dd746
)
original commit: 06c829d8c0
2010-07-18 18:57:26 -04:00
Blake Johnson
6887ead2c5
handling top-level-renames and mark-barriers
...
original commit: 8df94dd746
2010-07-15 15:53:02 -06:00
Ryan Culpepper
c64f9c5582
Added uses of unstable/struct
...
original commit: 07f57aac9b
2010-07-13 12:07:47 -06:00
Matthew Flatt
d35c8cac36
fix validation of module .zo exp-time content, and fix zo-marshal
...
original commit: c7c8f56e11
2010-07-08 17:17:42 -06:00
Matthew Flatt
2cd7824462
fix docs on `raco make --no-deps'
...
Closes PR 11018
original commit: a8062dc37d
2010-07-07 13:56:16 -06:00
Kevin Tew
c919d0df5f
Parallel collects build (process-based) "raco setup -u"
...
original commit: 35c28f4f66
2010-07-02 14:27:08 -06:00
Ryan Culpepper
405f94f6fc
unstable: removed byte-counting-port.rkt (use open-output-nowhere instead)
...
updated test to verify that open-output-nowhere has same behavior
original commit: a543c2137e
2010-07-01 17:05:06 -06:00
Matthew Flatt
d19d9eb8f7
tweak decompiler to use a different name for boxed locals
...
original commit: 535c8e0a09
2010-06-10 07:32:11 -04:00
Jay McCarthy
304e5247ed
Documenting make-hasheqv and using it
...
original commit: 7e485b8d28
2010-05-27 12:35:30 -06:00
Jay McCarthy
7b264d5089
Using placeholders in zo-parse for more cyclic datums
...
original commit: 035ee93911
2010-05-27 12:35:26 -06:00
Jay McCarthy
2fd3353508
Dealing with cyclic hashes
...
original commit: 4088448317
2010-05-27 12:33:26 -06:00
Jay McCarthy
cac230bc93
Unifying some code
...
original commit: 5833f7cba4
2010-05-27 12:33:26 -06:00
Jay McCarthy
f0add80ef2
Do not read the entire zo at once
...
original commit: 2a934cb053
2010-05-24 13:14:36 -06:00
Jay McCarthy
cc82e80835
Separating bytes usage for next change
...
original commit: f67177f740
2010-05-24 13:14:36 -06:00
Jay McCarthy
2e344d9137
Making zo-marshal more like C and not with large byte strings
...
original commit: 40e1ba95fc
2010-05-24 13:14:35 -06:00
Jay McCarthy
3e79a47bfd
Reformating
...
original commit: 325ac1ae88
2010-05-24 13:14:35 -06:00
Jay McCarthy
4c1a8c8321
Reformating
...
original commit: 63f546a080
2010-05-24 13:14:35 -06:00
Jay McCarthy
46f7907aca
Streaming final output from zo-marshal
...
original commit: b892c276ff
2010-05-24 13:14:35 -06:00
Eli Barzilay
fa984eb710
A lot of "MzScheme" -> "Racket"s.
...
original commit: 2d9601089d
2010-05-16 18:26:26 -04:00