Commit Graph

40 Commits

Author SHA1 Message Date
Robby Findler
3b0d2f16da change compiler/cm so that the default logs the messages to
a logger named compiler/cm
2013-03-14 16:36:50 -05:00
Matthew Flatt
780fc2100a fix log-event propagation in `compiler/cm' 2013-01-24 06:43:10 -05:00
Matthew Flatt
06ffb74d66 compiler/cm-accomplice: add `register-external-module'
The new function allows declaration of a module dependency, as
opposed to a mere file dependency. Misuse of this function opens
the door to cyclic compilation dependencies, so we have to check
for that in `compiler/cm'.
2012-11-11 09:38:16 -07:00
Matthew Flatt
9b6ff5d94d compiler/cm: fix self-dependency check for ".ss" vs. ".rkt" 2012-09-21 08:31:04 -06:00
Matthew Flatt
e7b1af845b compiler/cm: repair related to compiled-file-roots 2012-09-12 12:03:08 -06:00
Matthew Flatt
4f351dd6b1 add `current-compiled-file-roots', PLTCOMPILEDROOTS, and -R/--compiled
The new parameter (and supporting environment variables and
command-line flags) can bytecode lookup to a tree other than
where a source file resides, so that sources and generated
compiled files can be kept separate. It also supports storing
bytecode files in a version-specific location (either with
the source or elsewhere).
2012-09-11 13:18:18 -06:00
Matthew Flatt
8fc3d25be4 cm: collect dependencies for submodules 2012-05-12 00:55:12 -06:00
Matthew Flatt
01f1fd56b4 adjust cm to not cmopile when it's not supposed to use source 2012-03-13 18:46:28 -06:00
Matthew Flatt
3d69dfab86 first cut at submodules 2012-03-09 10:34:56 -07:00
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
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
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
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
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
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
Robby Findler
23012928a6 added a log-info call to incidate when a compilation finishes 2011-01-22 16:06:45 -06: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
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
264ec77abd another fix for CM+DrRacket interaction 2010-07-26 09:43:55 -05:00
Matthew Flatt
4359783d8b fix CM+DrRacket cdr bug 2010-07-25 06:17:23 -05:00
Matthew Flatt
7c4eddc708 fix `file-stamp-in-paths', which affects DrRacket's auto compilation
Merge to 5.0.1
2010-07-22 18:46:35 -05:00
Kevin Tew
5bb2e148de Parallel docs build 2010-07-22 02:39:57 -06:00
Matthew Flatt
90ec44f65c CM: report bad dependencies clearly; fix file-stamp-in-paths
for when `use-compile-file-paths' has multiple subpaths
  Probably merge to 5.0.1
2010-07-21 15:50:22 -06:00
Matthew Flatt
32552fc4c2 revert cm refactoring
Reverts commit fe60da72c8.

 Something about the recfatoring was broken. For example, modify
 "racket/contract.rkt" and then run `raco setup -D -j 1 racket'.
 Another `raco setup -D -j 1 racket' re-builds a file in
 "mred", but a second run shouldn't have built anything. (Using
 `-j 1' demonstrates that it's not related to parallel builds.)
 Reverting the refactoring fixes the problem.

 I don't know what the bug was, but Kevin says that the refactoring
 wasn't needed after all.
2010-07-14 10:05:51 -06:00
Kevin Tew
35c28f4f66 Parallel collects build (process-based) "raco setup -u" 2010-07-02 14:27:08 -06:00
Matthew Flatt
e78b5d722e repairs to cm refactoring 2010-06-28 17:01:57 -06:00
Kevin Tew
fe60da72c8 Refactor compile manager check-cache function 2010-06-28 14:50:50 -06:00
Robby Findler
7bb8c876b6 fixed an obvious bug with the wrong arity to get-compiled-file-sha1 (but this may still be broken in a more subtle way) 2010-06-20 07:42:32 -05:00
Matthew Flatt
32297601b6 use simple-form-path more consistently for path normalization
--- a reversal of opinion from my earlier commit; the problem
 with syntactic simplification is that it may not refer to the
 same file, due to soft links; given that true normalization is
 impossible, simplify-path and simple-form-path provide a good
 compromise between preserving paths as given and exanding
 soft links as neede
2010-06-03 17:23:14 -06:00
Matthew Flatt
26835bedd1 change cm to accept the case of an uncompiled dependency
Merge to 5.0
2010-06-03 14:02:19 -06:00
Matthew Flatt
9350df36b6 fix cm sha1 problem 2010-05-04 12:36:02 -06:00
Matthew Flatt
e42758eb2a fix a cm problem with the SHA-1-based shortcut transitive dependencies 2010-04-30 19:12:22 -06:00
Matthew Flatt
17c1dc1ab9 SHA-1-based checking of doc dependencies 2010-04-30 16:30:11 -06:00
Matthew Flatt
3db8dd7c26 SHA1-based shortcut for compiler/cm 2010-04-30 16:30:10 -06:00
Matthew Flatt
28b4043077 rename all files .ss -> .rkt 2010-04-27 16:50:15 -06:00