Commit Graph

217 Commits

Author SHA1 Message Date
Eli Barzilay
ae29015ee7 A bunch of fprintf' -> eprintf' conversions (and a few related things).
original commit: 17090fca4f
2012-05-06 12:06:00 -04:00
Eli Barzilay
d0f469f166 Fix command-line for the demodularizer.
Closes PR 12731.

original commit: 16d40c3170
2012-04-28 05:23:43 -04:00
Matthew Flatt
ac6210c42e save modidx submodule path in bytecode form
This change should have been part of 9ba663aa77.

original commit: f099eec2af
2012-04-26 21:45:00 -06:00
Matthew Flatt
4b4a17b3c6 fix `raco demod' for new submodule fields in zo structs
original commit: 16d65ed251
2012-04-04 07:37:30 -06:00
Danny Yoo
197004495a Optimize cpt-table-lookup
(Tweaked by Eli.)

original commit: 8f2ea07ec5
2012-04-04 02:52:51 -04:00
Matthew Flatt
5868d51521 make --run-if-absent' the default mode for raco test'
This convention makes it easier to deal with a set
of ".rkt" files that implement tests, while a `test'
module implements a `main'-like split for some of the
files.

original commit: 63a4414863
2012-03-29 14:55:14 -06:00
Matthew Flatt
6a69441d84 promote raco test'; demote raco unpack'
original commit: 96e4fa0d13
2012-03-29 14:55:14 -06:00
Matthew Flatt
32da9b50bb doc corrections and improvements related to submodules
In particular, add `module+' to the Guide.

original commit: 876bc6f02b
2012-03-22 15:12:55 -06:00
Matthew Flatt
95ed87abd4 decompiler repairs related to changes for submodules
original commit: 5dc08cbe03
2012-03-12 09:04:37 -06:00
Jay McCarthy
98fa97ae26 racket/slice, expand raco test, remove begin-for-testing
original commit: f8325776cf
2012-03-09 19:51:42 -07:00
Jay McCarthy
9741ae6d98 Adding module**, when-testing, and raco test
original commit: b73444a0f3
2012-03-09 15:54:18 -07:00
Matthew Flatt
f2dbacc73f raco exe' uses a main' submodule, if any
original commit: 85802f45f2
2012-03-09 10:34:57 -07:00
Matthew Flatt
a0837b2453 first cut at submodules
original commit: 3d69dfab86
2012-03-09 10:34:56 -07:00
Matthew Flatt
02d466aec0 add --launcher'/-l' flag to `raco exe' to create launchers
This addition triggered several other changes:

 * -k for a Mac OS X embedding is now relative to the __PLTSCHEME
   segment (which means that executables won't break if you strip
   them, for example)

 * the command-line no longer has a limited size for Mac OS X
   launchers and embedding executables

 * Mac OS X GUI and Windows launchers record the creation-time
   collection path, unless they are created as "relative" launchers

original commit: 2c479683d1
2012-02-13 16:27:51 -07:00
Matthew Flatt
ee5fdf3771 change `raco demod' test to write to temporary drectory
Also add `-o' option to `raco demod'.

original commit: 577f38f649
2012-02-10 14:02:12 -07:00
Matthew Flatt
90583ce572 adjust `raco ctool --c-mods' and related to work with places
That is, the generated declare_modules() function registers the
module-declaration code so that it is run in any new place, too.

Merge to 5.2.1

original commit: 481e061440
2012-01-19 13:14:02 -07:00
Matthew Flatt
f751553b48 document raco make' flags; add --disable-constant' flag
original commit: 6b6d281dee
2012-01-19 13:14:02 -07:00
Matthew Flatt
cd5e01e03c fix `raco make --no-deps'
original commit: b87a7c0ec9
2011-12-13 06:13:17 -07:00
Matthew Flatt
1963cc91b7 fix demod for inline-variant
original commit: 788e8bb5f4
2011-12-03 06:15:58 -07:00
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