Commit Graph

540 Commits

Author SHA1 Message Date
Matthew Flatt
937cdf51d7 change `current-write-relative-directory' to support more path conversions
In particular, allow a pair of a relative-to directory and a base
directory. Paths that syntactically extend the base directory are
recorded as relative to the relative-to directory (which must
syntactically extend the base directory).

The compilation manager now sets the parameter to a pair with
the base directory as the main collection directory, if the source
file's path extends that directory's path.

This generalization solves problems created by cross-module inlining,
where the source location of a procedure in bytecode can now be in a
different file than the enclosing module's file.

Also add a test that checks whether the build directory shows up
in any ".zo", ".dep", or documentation ".html" files.

Closes PR 12549
2012-02-10 06:17:18 -07:00
Matthew Flatt
481e061440 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
2012-01-19 13:14:02 -07:00
Matthew Flatt
6c4cd0e9c2 fix raco ctool --c-mods' for racket'
Merge to 5.2.1
2012-01-19 13:14:02 -07:00
Matthew Flatt
6b6d281dee document raco make' flags; add --disable-constant' flag 2012-01-19 13:14:02 -07:00
Matthew Flatt
b51b36869e win64: fix `raco dist'
Merge to 5.2.1
2012-01-17 21:07:07 -07:00
Eli Barzilay
3718600125 2011 -> 2012 2011-12-31 15:16:59 -05:00
Matthew Flatt
26c0ef99ef fix executable distribution creation on Unix 2011-12-19 12:36:16 -07:00
Matthew Flatt
b87a7c0ec9 fix `raco make --no-deps' 2011-12-13 06:13:17 -07:00
Matthew Flatt
788e8bb5f4 fix demod for inline-variant 2011-12-03 06:15:58 -07:00
Matthew Flatt
787437223c remove reference to `compiler/cffi'
Closes PR 12413
2011-12-02 19:44:29 -07:00
Matthew Flatt
779b419c03 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).
2011-11-30 07:39:36 -07:00
Matthew Flatt
58fa3dd6d7 fix non-ELF unix starter creation 2011-11-26 19:59:53 -07:00
Matthew Flatt
ea3cabfc45 remove more Racket-to-C compiler leftovers 2011-11-22 05:50:18 -07:00
Matthew Flatt
243332f429 move .ico support from raco exe' internals to file/ico' 2011-11-16 14:45:32 -07:00
Matthew Flatt
3bffcae3c2 fix places & executable interaction
Added `module-predefined?' and changed `racket -k ...'
2011-11-15 18:42:21 -07:00
Matthew Flatt
b377cafdac mark OS jmpbuf as GC-ignored
This change is intended to make the QNX port work, but it
should also future-proof Racket a little for other platforms.
2011-10-09 10:45:24 -06:00
Matthew Flatt
b6a9330bf1 more `raco exe' cycle repairs 2011-10-07 10:32:49 -06:00
Matthew Flatt
add50ab436 cocoa: undo hack of "-64" suffix on app names
Commit 60101618db seems to address the real problem.
2011-10-07 08:05:25 -06:00
Matthew Flatt
7680adf486 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
2011-10-05 19:25:59 -06:00
Matthew Flatt
902ea5f7a5 fix `raco exe' for ELF starter 2011-10-04 12:59:18 -06:00
Matthew Flatt
e640041dd6 fix raco exe' for cycles created via define-runtime-module-path' 2011-10-03 08:59:30 -06:00
Kevin Tew
a7b0c33896 QNX porting 2011-09-30 17:03:50 -06:00
Matthew Flatt
0ab6637539 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'.
2011-09-20 15:26:39 -06:00
Matthew Flatt
0197902309 add var-ref->mod-decl-insp' and switch cur-code-insp' uses
Macros and other tools that need syntax privilege used
`(current-code-inspector)' at the module top-level to try to
capture the right code inspector at load time. It's more
consistent to instead use the enclosing module's declaration-time
inspector, and `var-ref->mod-decl-insp' provides that. The
new function works only on references to anonymous variables,
which limits access to the inspector.

The real function name is longer, of course.
2011-09-20 13:50:36 -06:00
Kevin Tew
099e89a297 Fix pr 12205 pass --disable-inline and --vv options through to parallel make 2011-09-20 11:10:56 -06:00
Eli Barzilay
623c7493ed Some selective #:when (not ...)' -> #:unless ...'. 2011-09-16 10:48:18 -04:00
Matthew Flatt
28afc4490e cocoa: distinguish CFBundleIdentifier for 64-bit vs. 32-bit apps
This is another attempt at fixing PR 12135
2011-09-10 10:53:43 -06:00
Matthew Flatt
446fb89af1 avoid clang warnings
The main change is to use C99 flexible array declarations
in structs, instead of declaring single-element arrays.
There are still a few -Wtautological-compare warnings
in 3m due to marco expansion.
2011-09-09 20:45:43 -06:00
Matthew Flatt
ca0d7b5ef4 add ++aux' flag to raco exe' 2011-09-09 17:03:18 -06:00
Matthew Flatt
b1eab296f4 fix demod for `begin-for-syntax' changes 2011-09-08 19:19:14 -06:00
Matthew Flatt
d3c56c9f13 generalized `begin-for-syntax' 2011-09-08 14:06:00 -06:00
Robby Findler
bb71539233 remove extraneous path->string conversion 2011-09-05 08:30:48 -05:00
Matthew Flatt
c5588f87e3 fix mach-o updating 2011-09-01 07:14:05 -06:00
Robby Findler
a98fd7f60b fixed a leak in the compile locking protocol implementation and added better logging 2011-08-31 19:05:08 -05:00
Robby Findler
61aaf584c5 adjust the threading protocol for compilings files to be kill safe 2011-08-30 07:59:33 -05:00
Matthew Flatt
ecc058de4a change `raco exe' to disable collection lookup by default 2011-08-25 09:15:30 -06:00
Matthew Flatt
2dbaa45e1b 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.
2011-08-24 20:08:18 -06:00
Matthew Flatt
a7855e20a8 add `raco link'
includes a rewrite the "Module Basics" section of the Guide
2011-08-24 09:07:14 -06:00
Matthew Flatt
bdadc453e0 fix `compile-collection-zos' 2011-08-21 11:43:59 -06:00
Matthew Flatt
7eb2042bd9 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.
2011-08-19 06:32:44 -06:00
Matthew Flatt
f46a0e2519 make compile-omit-paths' apply to scribblings' sources 2011-08-13 07:43:56 -06:00
Robby Findler
e043297ef8 use the supplied security guard in one more place where compiler/cm needs write permission 2011-08-10 07:45:14 -05:00
Matthew Flatt
5352d670c4 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.
2011-08-09 16:33:17 -06:00
Robby Findler
337dbf8540 try to use the given security guard when deleting files, too 2011-08-03 23:40:51 -07:00
Robby Findler
32becaf860 added a #:security-guard argument to:
managed-compile-zo
  make-caching-managed-compile-zo
  make-compilation-manager-load/use-compiled-handler
that gets used when compiled files, dep files, and compiled/ directories are created.
2011-08-02 16:28:10 -05:00
Robby Findler
a672704e5e add support for thread-safe compilation to compiler/cm (and use it in drracket) 2011-07-30 09:01:46 -04:00
Matthew Flatt
42f41d868a fix compiler/zo-parse for sequence splice
Merge to 5.1.2
2011-07-22 22:19:58 -04:00
Matthew Flatt
8504996862 fix `raco ctool -e' for syntax taints
Merge to 5.1.2
2011-07-20 14:09:38 -06:00
Matthew Flatt
ab0e78122c revert unnecessary refactoring
--- intended to avoid creating a dependency that already exists

 Merge 5.1.2
2011-07-16 21:02:41 -06:00
Matthew Flatt
7af5d490ad fix cm to configure reader when reading .dep files
Merge to 5.1.2
2011-07-16 19:29:28 -06:00
Matthew Flatt
07a9cdd2a8 fix zo-parse of rename tables 2011-07-13 10:45:19 -06:00
Matthew Flatt
5e49e0adea improve decompiler handling of syntax object 2011-07-08 06:22:40 -06:00
Matthew Flatt
5bc8b67eba fix decompile of define-values-for-syntax 2011-07-07 07:25:48 -06:00
Eli Barzilay
3157955d40 ".ss" -> ".rkt" scan done. 2011-07-02 10:37:53 -04:00
Matthew Flatt
98740390fa adapt demodularizer to `compiler/zo-struct' change 2011-07-01 22:46:20 -06:00
Ryan Culpepper
1b702a2ae3 docs reorganization
added tutorial, racket categories
  relabeled some other categories
  normalized manual names: de-bolded, changed some names
2011-07-01 17:16:53 -06:00
Robby Findler
69b5daa9e6 remove docs tests that no one was interested in 2011-07-01 11:38:09 +08:00
Matthew Flatt
69ad39d45c fix `compiler/zo-parse' & co. 2011-06-30 08:24:41 -06:00
Matthew Flatt
1160d3df62 remove syntax certificates; add syntax taints 2011-06-29 19:15:48 -06:00
Eli Barzilay
40124a0619 A long overdue scan to eliminate files without terminating newlines.
(DrRacket should really do that.)
2011-06-28 02:01:41 -04:00
Eli Barzilay
ac26fe7554 A ton of @scheme*' -> @racket*' and related updates.
Also, updates some of the mzlib files to point at `racket/*' libraries
rather than to `scheme/*' ones.
2011-06-25 04:08:47 -04:00
Eli Barzilay
debd1f9f1e Recketizing much in `net/*', mass ".ss" -> ".rkt" conversion in .scrbl files.
(Some other minor things here and there.)
2011-06-20 04:27:14 -04:00
Matthew Flatt
c7d86ed3a6 mach-o: fix generating embedding executables
aimed at fixing DrRacket startup on Lion
2011-06-17 08:46:09 -06:00
Eli Barzilay
fc1b974cd2 Fix "zo-parse.rkt" wrt the inclusion of `identity' in mzlib/etc, and
switch to racket (making `begin-with-definitions' redundant).
2011-06-07 13:06:13 -04:00
Matthew Flatt
8ad8d5b7f7 fix tl-map parse & marshal 2011-05-09 12:24:05 -06:00
Matthew Flatt
a4da2a3f4c fix varref' in compiler/zo-structs', etc.
and sync docs better with implementation
2011-05-09 09:43:32 -06:00
Matthew Flatt
db75dddf87 fix decompiler's listing of captured top- and module-level variables 2011-05-08 17:01:23 -06:00
Matthew Flatt
e9721058fb reorgnize datatypes of less common bytecode forms
removing a layer of indirection, and setting up
 for an internal reorganization of the compiler code
2011-05-06 06:56:23 -06:00
Robby Findler
507b1cd8fd moved the docs-complete library into rackunit
to avoid having a separate, new manual for the
  one library
2011-05-05 16:10:42 -05:00
Matthew Flatt
87a4132b40 fix zo-marshal' for #f toplevel-map in lam' 2011-05-03 14:43:27 -06:00
Matthew Flatt
2ada6d0e89 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.
2011-05-03 06:57:49 -06:00
Matthew Flatt
1b14c6a38e fix mistakes uncovered by optimizer warnings 2011-05-03 06:57:48 -06:00
Matthew Flatt
982503b083 share a timestamp cache across all collections during `raco setup' 2011-04-27 19:02:08 -06:00
Robby Findler
e7d0029aea added lots of new tests that our documentation is complete 2011-04-25 13:24:43 -05:00
Matthew Flatt
0754ad0114 safe-for-space repairs for functions with rest args 2011-04-22 15:59:33 -06:00
Matthew Flatt
6b2219b9e5 write proper ELF section for Unix launchers/executables 2011-04-17 18:04:00 -06:00
Matthew Flatt
97ce26b182 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
2011-04-16 13:24:58 -06:00
Eli Barzilay
0f14c6aa67 Use proper raco command name in make and pack.
Fixes PR 11719.
2011-02-09 21:13:55 -05:00
Robby Findler
e096e4d5a4 moved find-exe to its own top-level file 2011-02-08 15:38:11 -06:00
David Van Horn
760a58b65d Fixes more spelling errors. 2011-02-04 19:44:13 -07:00
David Van Horn
c9519fd113 Fixed various spelling errors. 2011-02-03 17:42:33 -05:00
Kevin Tew
2e1dffbfcc raco make -j 2011-02-01 08:27:56 -07:00
Matthew Flatt
b70e1eca60 fix problem with `raco exe'
Merge to 5.1
2011-02-01 08:01:16 -07:00
Robby Findler
23012928a6 added a log-info call to incidate when a compilation finishes 2011-01-22 16:06:45 -06:00
Matthew Flatt
ac99c69f0c fix a `raco exe' problem with finding shared-library paths 2011-01-20 21:17:36 -07:00
Kevin Tew
a42ea71113 Scribble with-compile-output fix 2011-01-20 15:57:39 -07:00
Kevin Tew
e7a24a6b41 Parallel Locking 2011-01-11 12:44:09 -07:00
Eli Barzilay
1f49e35b21 2010 -> 2011 2010-12-31 15:59:39 -05:00
Robby Findler
ede60de584 Make it so that DrRacket deletes .zo files when the corresponding source file isn't present anymore
(when in the DrRAcket-compiles-my-zo-files mode)
2010-12-16 16:12:54 -06:00
Matthew Flatt
d4158cfc9c win64: remove unneeded command-line parsing hack 2010-12-04 05:20:40 -07:00
Matthew Flatt
5065f39dec win64: racket3m 2010-12-03 22:35:38 -07:00
Matthew Flatt
8b8dd77ad6 change nearly all long's to intptr_t'
and also changed vector, string, and byte string counts to
   `intptr_t' instead of `int'.

   Except for the vector count, etc. change, this is not really a
   change for any currently supported platform, where `intptr_t'
   is the same as `long'. It's a step to suporting Win64, though,
   where `long' is the same as `int' instead of `intptr_t'.
2010-12-03 08:48:33 -07:00
Robby Findler
bc3bd77e19 move the #lang line to the beginning of the file 2010-12-03 06:30:57 -06:00
Matthew Flatt
0a8e5e604e restore gen-id gensym so that decompiler works 2010-11-11 14:39:45 -07:00
Eli Barzilay
e3592e10a8 Remove all mentions of UnicoWS.
Also, get rid of "uniplt.c", and fix "src/racket/src/string.c" and
"src/gracket/grmain.c" to use CharLowerBuffW().
2010-11-10 23:48:35 -05:00
Matthew Flatt
75a6bfe119 improve runtime-path support for building stand-alone gui exes 2010-11-05 15:54:44 -06:00
Matthew Flatt
44847f8278 adjust exe creation of GRacket2 binaries for Mac OS X 2010-11-05 15:53:56 -06:00
Blake Johnson
199a63772a scrbl file and longer command name 2010-10-30 12:49:27 -06:00
Jay McCarthy
26c7625c79 Exposing more values to GC by not making them toplevels 2010-10-30 09:14:58 -06:00
Jay McCarthy
255489e0af Saving time by only reading zos once and saving space by limiting the extent of the hash tables 2010-10-30 08:54:13 -06:00