Commit Graph

438 Commits

Author SHA1 Message Date
Eli Barzilay
17090fca4f A bunch of fprintf' -> eprintf' conversions (and a few related things). 2012-05-06 12:06:00 -04:00
Matthew Flatt
5ffb9389ac fix `raco setup' for splicing collections
Closes PR 12676
2012-05-03 11:11:38 -06:00
Matthew Flatt
3d69dfab86 first cut at submodules 2012-03-09 10:34:56 -07:00
Robby Findler
51207a2f68 Revert "topologically sort collections based on the dependencies between"
This reverts commit 79c6a2b1e5.

Sorry--- I didn't mean to push this commit
2012-03-01 11:43:54 -06:00
Robby Findler
79c6a2b1e5 topologically sort collections based on the dependencies between
them and use that to order 'raco setup'

The dep-list.rkt file contains code that reads .dep files
and computes the topological sort; this result is expected
to be copied over into setup-unit.rkt
2012-03-01 11:41:00 -06:00
Ryan Culpepper
94ae918b0f setup "images" collection earlier, "drracket" at end
This change cuts real time of "raco setup -D" almost in half
on a 4-core machine.
2012-02-28 05:27:58 -07:00
Matthew Flatt
012ef60cd5 fix non-tail loop in parallel `raco setup'
Deep recursion with too-few recognizable JIT frames caused
trouble with `current-continuation-marks'.
2012-02-27 14:46:03 -07:00
Matthew Flatt
350d0b1edf fix `raco make -j'
Closes PR 12491

Merge to 5.2.1
2012-01-19 13:14:02 -07:00
Matthew Flatt
d56d28f0b6 protect `raco setup' from files in linked collection dirs
Patch by Jay McCarthy.

Merge to 5.2.1
2012-01-09 16:55:39 -07:00
Matthew Flatt
ee775c3cc3 intern strings, etc. only when making syntax objects, not in `read'
Rename `read-intern-literal' to `datum-intern-literal'.

Interning is needed only in `read-syntax' or `datum->syntax' to
set up the invariants that the bytecode compiler needs for cross-module
optimization. When `read'ing numbers from a data file, meanwhile,
interning slows things down a lot and doesn't seem worthwhile.
2011-12-14 16:03:44 -07:00
Matthew Flatt
b2fade9206 read-intern strings generated by Scribble; other interning
This change saves a small amount of space in cross-reference files
and some space in loaded cross-reference information.
It also saves work converting strings to mutable on deserialize,
although the performance difference seems negligible.
2011-12-10 11:43:58 -07:00
Matthew Flatt
14e0698602 raco setup: one more path simplifcation point
Closes PR 12355
2011-11-28 13:51:24 -07:00
Robby Findler
3f8d6eb2b2 adjust call to get-info/full so that it respects the contract 2011-11-04 21:48:04 -05:00
Matthew Flatt
8c2dc5ccb7 parallel `raco setup': print "running" before insead of after
That is, before actually running the document, so that the
"running" message is a useful indicator of what is happening
now.
2011-10-11 17:17:58 -06:00
Matthew Flatt
c74bce598b fix Ctl-C problems in parallel `raco setup'
The main problem was that when a place catches an exception,
it would continue in breaks-disabled mode. Also improve
`parallel-do' to detects additional breaks when waiting on
places and propagate them, in case a place was running something
that ate the initial break.
2011-10-11 15:54:22 -06:00
Matthew Flatt
f21187248a fix `raco setup' for a collection that disappears 2011-09-20 13:22:27 -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
Matthew Flatt
e03a70025f fix another raco setup path-normalization (especially for Windows) 2011-09-18 08:09:04 -06:00
Matthew Flatt
39601cedcf Revert "putting the "drscheme" collection last isn't useful anymore"
This reverts commit 89581f5e21.

Putting "drscheme" last is useful because it avoids having two
places try to compile "drracket" and "drscheme" at the same time,
in which case the "drscheme" place gets stuck waiting on the
"drracket" place. Moving "drscheme" to the end is a hack, but
it improves the build time for 2-4 cores.
2011-09-16 16:36:57 -06:00
Eli Barzilay
623c7493ed Some selective #:when (not ...)' -> #:unless ...'. 2011-09-16 10:48:18 -04:00
Kevin Tew
a6b4b42982 pr# 12143 raco make -j 2, fix split-path's 'relative to byte-string conversion 2011-09-05 17:22:59 -06:00
Matthew Flatt
5de2ea9547 fix absolute paths in cross-reference info
The absolute paths were introduced by support for parallel build,
which piggy-backs information in "in.sxref" to communicate among
processes. Since the information is persistent beyond that
cooperation, the information needs to be in relative form.

[Sorry for the reformatting noise, but the file's indentation was
 especially mangled.]
2011-09-04 09:53:36 -06:00
Matthew Flatt
35a8359c6d remove some path case normalization
The change allows `raco setup' to reach a fixed point under Windows
for "redex/examples/cont-mark-transform".

I'm more and more convinced that `normal-case-path' is never
a good idea. In some cases, maybe it's good to recognize a
few extra equivalences, but it works badly when paths are taken
from many sources and are not consistently normalized. It's better
to just preserve case.

For basic normalization, `simplify-path' is the right choice. Use
inode identity (as `raco setup' does) when anything stronger
than `simplify-path' is needed.
2011-08-30 13:53:25 -06:00
Matthew Flatt
959db06c7c change "cache.rktd" format to be platform-independent
The format previously included relative paths in the syntax
of the platform used to run `raco setup'. While a "cache.rktd"
built on Unix would work for Windows, the reverse would not
be true. Also, `raco setup' under Windows would get confused
because it would arrive at different relative paths for the
same collection (e.g., "drracket/private" and "drracket\\private").
The portable representation of relative paths is also
normalized.

A "cache.rktd" file still has absolute paths for Planet packages
or links installed with `raco link', but that's not a problem for
packaging a distribution with a portable "cache.rktd".

Also, `raco setup' cleans "cache.rtkd" by removing collections
that are omitted and by not including collections that have no
"info.rkt"/"info.ss" file.
2011-08-30 13:53:24 -06:00
Matthew Flatt
46a0fe9490 fix `compile-omit-files' handling for Planet packages
The bug was introduced with changes to support `raco link'.
2011-08-28 20:02:23 -06:00
Matthew Flatt
43dd4c7ab9 path normalization in setup/scribble
Needed so that `raco setup' doesn't rebuild documents as it
decides, say, that the "games/cards" document depends on
"games/scribblings\\games.scrbl" instead of
"games/scribblings/games.scrbl".

Has this been needed for a while, or did it somehow
become needed with recent changes to `raco setup' to
support `raco link'?
2011-08-28 19:20:19 -06:00
Matthew Flatt
fcf24ab586 fix bug in `raco unpack'
due to recent conversion from `mzscheme' to `racket/base'
2011-08-26 19:31:06 -06:00
Matthew Flatt
5579b12da0 fix `raco link' collection-name checking 2011-08-26 19:31:06 -06:00
Matthew Flatt
ce7c0d62c3 if only a Unix root is shared, don't make a path relative 2011-08-24 20:08:20 -06:00
Matthew Flatt
7299b0603e check format of collection name in `raco link' 2011-08-24 20:08:19 -06:00
Matthew Flatt
84e3ab2a20 add support for collection roots to the collection links file 2011-08-24 20:08:19 -06:00
Matthew Flatt
8f0487d8e4 make `raco link' write relative paths 2011-08-24 20:08:19 -06:00
Matthew Flatt
71e92bcecf more `raco link' command-line changes: add -u, adjust -rn 2011-08-24 20:08:19 -06:00
Matthew Flatt
96098e678c change -s `raco link' flag to -l 2011-08-24 20:08:19 -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
Robby Findler
4923e20994 clarify precise semantics of 'raco setup -D' 2011-08-24 11:25:23 -05: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
853e47f05e fix broken-link reporting by `scribble' 2011-08-22 07:58:05 -06:00
Matthew Flatt
89581f5e21 putting the "drscheme" collection last isn't useful anymore 2011-08-19 13:09:26 -06:00
Matthew Flatt
3f447b39e2 refactor some parallel-build code
- simpler and more reliable break protocol
- use logging instead of `eprintf' for non-exception errors
- avoid runtime code duplication in parallel-do macro
- fix some non-tail calls that should be tail calls
- print relevant place in "making" lines
- minor source formatting
2011-08-19 12:56:27 -06:00
Robby Findler
4d5a3fa971 Rackety (indentation, let->define, mzscheme->racket/base, module -> #lang) 2011-08-19 09:26:37 -05:00
Matthew Flatt
f46a0e2519 make compile-omit-paths' apply to scribblings' sources 2011-08-13 07:43:56 -06:00
Matthew Flatt
8a00308ad5 add lib' to setup/infotab' exports
and fix up documentation, which didn't mentioned the allowed
`require' form
2011-07-31 04:43:24 -06:00
Matthew Flatt
e57b7b9e54 limit build parallelism to 4 on a 32-bit machine
Merge to 5.1.2
2011-07-16 08:03:53 -06:00
Kevin Tew
4d7584d9b7 fix indentation 2011-07-14 10:14:34 -06:00
Kevin Tew
8aca195b35 fix class names 2011-07-14 10:14:33 -06:00
Kevin Tew
4ab64dc4c7 rename jobqueue and workqueue to work-queue 2011-07-14 10:14:33 -06:00
Eli Barzilay
ebe9453e73 Fix the path relative functions to return a string for a path input,
clarify the documentation, add a few tests.

Fixes pr 12032
Fixes pr 12034
2011-07-10 06:53:44 -04:00
Matthew Flatt
34a5c400ba remove some macro abuses 2011-07-09 06:16:11 -06:00
Jay McCarthy
439bbc6d8f Another broken test courtesy of refactoring, not testing, and ignoring DrDr. In this case, it seems like the user should not have relied on the function always returning a string (based on the old documentation---not the name, which implies a string comes out), so I've changed the use rather than the function. 2011-07-02 14:34:41 -07:00