Commit Graph

41 Commits

Author SHA1 Message Date
Matthew Flatt
6178f2312f add `setup/collects' and use it for ".dep" file paths
This change makes ".dep" files more portable (in exchange for some
extra path work at the point of reading or writing ".dep" files.)
2013-05-24 14:55:39 -06:00
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