Commit Graph

5118 Commits

Author SHA1 Message Date
Ryan Culpepper
ed5b0afbac syntax/parse: reformat, add more info to errors 2013-08-01 19:11:28 -04:00
Ryan Culpepper
e20b5a1539 fix multi/maybe detail handling, allow missing who argument 2013-08-01 19:11:28 -04:00
Ryan Culpepper
7b113899d4 syntax/parse: removed unused exn info 2013-08-01 19:11:28 -04:00
Matthew Flatt
1b98359925 raco pkg install: use `--link' by default for directory sources
The new `--copy' flag provides the old behavior.
2013-08-01 07:01:20 -06:00
Matthew Flatt
a6f8f00f55 fix cross-phase-persistent attribute of primitive modules 2013-08-01 05:55:24 -06:00
Matthew Flatt
e5e6d097be ffi/unsafe/objc: fix selector definition lifting
The code intended to lift each selector only once (per lifting
context) was broken.
2013-07-31 17:28:56 -06:00
Matthew Flatt
c137b44a68 change `syntax-local-lift-context' to distinguish top-level environments
Although not documented as such, the implementation used to return
form did not take the special meaning of #f into account. It seems
better to fix `syntax-local-lift-context' to match its documentation.
2013-07-31 17:28:56 -06:00
Ryan Culpepper
f5b91941eb fixed hash-code for id-tables
Closes PR 13942.
2013-07-31 17:37:42 -04:00
Ryan Culpepper
2057b51f21 syntax/parse: add "expected more terms" message
Only for proper list patterns; otherwise, "more terms" might be
mischaracterization.
2013-07-31 17:37:15 -04:00
Matthew Flatt
7e3ee7105a fix `raco link -l'
Closes PR 13941
2013-07-31 12:09:59 -06:00
Matthew Flatt
895b8d2760 configure: fix `--enable-portable-binary' addition 2013-07-29 10:58:16 -06:00
Carl Eastlund
b192620b0d Restored behavior of set/c for flat contracts; #:kind defaults to 'immutable. 2013-07-28 23:52:27 -04:00
Matthew Flatt
df34ffe450 configure: pass `--enable-portable-binary' to libffi configure
The `--enable-portable-binary' flag disables optimizations specific
to the build machine's processor that may ne unportable to other
machines.

This also fixes a problem where a VirtualBox runs on an x86_64 machine
with AVX support, and so `congure' enables AVX operations, but AVX
doesn't work within a virtual machine.
2013-07-28 11:46:10 -06:00
Carl Eastlund
1c7cdfb302 Fixed a few bugs in set/c's keyword options, and one test for set/c.
Specifically, set/c no longer behaves as a flat contract, so it is necessary to
apply at least one set operation to detect a contract error on an element.  It
is possible the flat behavior can be restored for some kinds of sets, but it's
not immediately obvious what kinds those should be.  (Immutable hash sets in
particular?  Any sets that don't implement set-add! or set-remove!?)
2013-07-27 13:17:53 -04:00
Matthew Flatt
2ec49929a4 raco setup: print "summary of errors" before the summary of errors 2013-07-26 22:36:21 -06:00
Matthew Flatt
81079b3a02 Windows installer: offer to auto-launch DrRacket
The 'start-menu? aux key for launcher creation changed to 'start-menu,
with a real-number value indicating a request and precedence for
auto-launching (where a precedence is needed because only one application
can be auto-launched).
2013-07-26 22:36:21 -06:00
Matthew Flatt
67c33fb13d adjust startup to avoid config file if collection links are disabled
The intent of this change is to avoid trying to read a configuration
file from a stand-alone executable.
2013-07-26 22:36:21 -06:00
Matthew Flatt
2e067ab28c add build-stamp' configuration and fix repo-time-stamp/stamp'
The "repo-time-stamp" collection used to be omitted from a
release, but to keep things simpler, it's staying in the
"drracket" (and therefore "main-distribution") package. The
build process installs an empty `build-stamp' value (by default)
into a release build, or it installs a useful stamp for
a non-release build.
2013-07-26 22:36:21 -06:00
Robby Findler
6195c432f8 Add use of 'sub-range-binders properties for Check Syntax's benefit 2013-07-26 19:05:46 -05:00
Matthew Flatt
d94a4cd830 add migration panel to GUI package manager
Also add "gui-pkg-manager" packages, including a "Racket Package Manager"
GUI application (that needs a better icon).

The package that supplies "Racket Package Manager" is not in the main
distribution, since DrRacket already includes the GUI package manager.
2013-07-26 14:07:05 -06:00
Matthew Flatt
e776821e31 add `raco pkg migrate' 2013-07-26 13:18:06 -06:00
Matthew Flatt
9f14fe3f6d make installation name configurable via `raco pkg config' 2013-07-26 11:52:48 -06:00
Matthew Flatt
68f4d297f7 make a build via the top-level makefile set scope to `installation'
Also, set the installation name to "development".
2013-07-26 11:52:48 -06:00
Matthew Flatt
afe8c37a2a user paths depend on name (not always version); no `shared' pkg scope
An installation has a name (via the configuration file "config.rktd")
that defaults to the version string. The name, instead of the
Racket version, is used for forming the path to the user "collects"
directory, user packages, and so on. The `user' package scope is
thus user- and installation-name-specific (instead of user- and
version-specific).

Remove `shared' package and link scope, since the notion of
installation names generalizes the concept (a set of installations
can be given the same name) and fits it into `user' scope.
2013-07-26 11:52:47 -06:00
Matthew Flatt
e0bab441a8 fix `get-output-{bytes,string}' with bad starting index, no ending index
Closes PR 13933
2013-07-25 20:39:57 -06:00
Carl Eastlund
2f473c2403 Added tools for contracts, impersonators, and chaperones for generic interfaces.
Added four macros to racket/generic:
- chaperone-generics
- impersonate-generics
- redirect-generics (dynamically chooses between the above two)
- generic-instance/c
All take pairs of method names and wrappers (procedures or contracts),
and turn those into appropriate chaperone, impersonator, or contract wrappers
on the method tables of the given structs.

Used this to rewrite set/c to give better error messages.
2013-07-25 13:49:00 -04:00
Carl Eastlund
6b337efd2f Changed "generics group" to "generic interface" in errors and documentation. 2013-07-25 13:49:00 -04:00
Carl Eastlund
a651591a15 Added gen:set, mutable and weak sets, and custom set types.
Sets are now implemented as a generic interface, and lists count as sets.  Most
of the set functions have been added as methods, including mutable versions of
imperative update methods.
2013-07-25 13:49:00 -04:00
Carl Eastlund
da1fe888a7 Added dict-copy operation; renamed dict-supports(?|/c) to dict-implements(?|/c).
Similar to hash-copy or string-copy, dict-copy creates a new, mutable copy of
the given dictionary.  Added as a method of gen:dict.
2013-07-25 13:48:59 -04:00
Carl Eastlund
5c1728dce4 Added define-custom-hash-types and make-custom-hash-types.
The definition form and function consume an equality predicate and optional hash
code functions and key predicate, and produce predicates and constructor
functions for hash table-based dictionaries using the given equality and hash
functions.  Immutable, mutable, and weak dictionaries are defined.
2013-07-25 13:48:59 -04:00
Carl Eastlund
81bcd73aa7 Extended the gen:dict interface; also added some dict and hash operations.
- Added hash-empty?, hash-clear, and hash-clear! for hash tables.
- Added dict-empty?, dict-clear, and dict-clear! for dictionaries.
- Made all dict functions exported by racket/dict into generic methods; turned
  the existing implementations into fallbacks.
2013-07-25 13:48:59 -04:00
Carl Eastlund
97b78ace5b Added #:dispatch option for clauses in #:defaults and #:fast-defaults.
The #:dispatch option specifies a second, less strict predicate for a #:defaults
or #:fast-defaults clause.  The main predicate is still used for the generics
group's type predicate, but the dispatch predicate is used in choosing which
method implementation to use.  The #:dispatch option is useful when the dispatch
predicate is disjoint from all other instances, is significantly cheaper to run
than the main predicate, and the full checks can be meaningfully deferred in
method implementations.

Specifically, this is useful in the implementation of iteration for
association-list dictionaries.  The dict-iterate-{next,key,value} functions do
not need to test (andmap pair? dict) if the given dict is eq? to the one stored
in the given iterator.  The dispatch predicate, list?, is much cheaper.
2013-07-25 13:48:59 -04:00
Carl Eastlund
d9890b843a Changes to define-generics: added #:defined-predicate; improved generated code.
The #:defined-predicate option is like #:defined-table, but it defines a
two-argument predicate that only processes the requested method name and doesn't
allocate a hash table each time it is called.

Method implementations provided via #:fallbacks, #:defaults, and #:fast-defaults
are now called directly by method procedures rather than stored in a vector and
extracted by index.  This should hopefully improve inlining for methods.
2013-07-25 13:48:59 -04:00
Carl Eastlund
1f267d479c Added #:fast-defaults option to define-generics.
For datatypes that are disjoint with structs that might implement the generic,
this adds a "fast path" implementation that doesn't need to test for struct
properties.
2013-07-25 13:48:59 -04:00
Carl Eastlund
7deb4ad025 Separated prop:dict from gen:dict.
This work is in preparation for widening the interface of gen:dict with
operations like dict-for-each, dict-update, etc., each with a fallback
implementation.  The property prop:dict, with its documented, fixed-length
vector representation, cannot be extended, whereas a generic with optional
methods can be.
2013-07-25 13:48:58 -04:00
Carl Eastlund
f7f15e1113 Added a #:derive-property option to define-generics.
The define-generics form can now derive existing struct properties, so that any
instance of the new generics group is also an instance of the struct property.
2013-07-25 13:48:58 -04:00
Matthew Flatt
a5d724dda4 file/tar: limit pipe size between tar and gzip
Otherwise, tar is likely to get ahead of gzip and use much
more memory.
2013-07-25 10:11:05 -06:00
Matthew Flatt
aeb3372faf more safe-dereference repairs for DWARF native stack trace (on ARM) 2013-07-23 20:38:23 -06:00
Matthew Flatt
a31e9b29e0 no dprintf() macro in libunwind to avoid collisions on some platforms 2013-07-23 19:59:00 -06:00
Matthew Flatt
245a688c2e fix for inotify() use with places and futures disabled 2013-07-23 19:46:10 -06:00
Matthew Flatt
9f0c5b1487 fix x86_64 DWARF-based stack trace
Commit 5917d4c added a guard on some pointer dereferences, but
the guard is too strict for DWARF. Allow reading of TEXT segments,
etc.
2013-07-23 17:20:20 -06:00
Matthew Flatt
cba5bb7729 distro-build: allow missing "man" directory (for Windows) 2013-07-22 21:15:41 -06:00
Carl Eastlund
59ee9a227e Improved the error messages from generic interface contracts.
Previously, a failure during the first-order checks would print out the name of
the full contract for all the methods, while describing the value for just one
method.  This is both misleading, and incredibly verbose.  The new version
prints out just the relevant contract.
2013-07-22 22:24:18 -04:00
Matthew Flatt
0eb29a4dcf fix `raco setup' package-dependency check when PLaneT package is installed 2013-07-22 18:32:40 -06:00
Matthew Flatt
5457f72391 show package for each module in documentation
The package is normally determined automatcially, but
the `defmodule' form also supports a `#:packages' option.
2013-07-22 18:32:39 -06:00
Matthew Flatt
f85221afca adjust ".plt" S-expression matching to accept more old archives 2013-07-22 16:34:21 -06:00
Matthew Flatt
682916c8fe raco pkg show: include only non-auto by default 2013-07-22 16:20:14 -06:00
Matthew Flatt
92f2d7d386 remove bogus cross-phase-persistent declaration
Also fix and improve source-location reporting.
2013-07-22 15:31:18 -06:00
Matthew Flatt
3e53fd3a93 create "man1" directory before trying to put a man page there 2013-07-22 14:22:26 -06:00
Matthew Flatt
d7d1739d4f configure installation of man pages 2013-07-22 13:21:09 -06:00
Matthew Flatt
2247ce6266 Make `syntax-procedure-{alias,converted-arguments}-property' cross-phase 2013-07-22 12:51:38 -06:00
Matthew Flatt
9f4420b07a allow gensym' and string->uninterned-symbol' in cross-phase persistent 2013-07-22 12:51:37 -06:00
Matthew Flatt
9e2cf2ab37 add `#%declare', require declaration of cross-phase persistent modules 2013-07-22 12:51:37 -06:00
Robby Findler
7b01d2920a fix spacing in contract error message 2013-07-22 10:42:47 -05:00
Matthew Flatt
df891791b4 avoid a compiler warning 2013-07-21 21:57:25 -06:00
Matthew Flatt
a5f26013ab place: fix finalizaiton of place channels stuck in a GC'ed channel
Lack of ordering on finalization requires some care for explicit
clean-up actions in a finalizer.
2013-07-21 16:35:56 -06:00
Matthew Flatt
a0741c5ea7 JIT repair for `(/ (most-negative-fixnum) -1)'
When I added JIT-inling of '/' for fixnums, I somehow forgot to
handle the special case that is already handled for `quotient'.
2013-07-21 09:59:08 -06:00
Matthew Flatt
22dbcaa77f fix arithmetic-shift' with shifts close to (- (expt 2 31))' on 64-bit
The bug was caused by an accidental cast of a 64-bit integer to a
32-bit integer.

Closes PR 13923
2013-07-21 08:03:53 -06:00
Matthew Flatt
82c4e56631 distro-build: change `#:source?' config to mean source packages, too
Use `#:source-runtime?' to make only the run-time system have
source form, while packages are pre-built.
2013-07-20 13:39:33 -06:00
Matthew Flatt
c1ca89d674 raco setup install: add --source' and --binary' modes
These flags allow a package downloaded in "built" form to be
stripped to source or binary form, which allows a single catalog
to serve three kinds of installations.
2013-07-20 11:54:21 -06:00
Matthew Flatt
ddcabcd164 fix "etc" vs. "config" in `make install' step 2013-07-20 10:21:53 -06:00
Matthew Flatt
aecf0e60b5 add catalog, source, and Mac OS X instructions to basic README
Also, include "stamp.txt" and "collects.tgz" at a build site.
2013-07-20 10:17:14 -06:00
Tobias Hammer
8a52f8ace5 Add ffi array-type and in-array 2013-07-20 07:18:19 -06:00
Matthew Flatt
4d75690aff explicit flush after output intended to report progress 2013-07-20 07:14:18 -06:00
Matthew Flatt
e7b0e4ffab fix problems with "collects" path and GUI executables 2013-07-19 13:17:40 -06:00
Matthew Flatt
8820ae91a6 distro-build: add support for source installers 2013-07-19 11:52:03 -06:00
Matthew Flatt
67a9889ef7 add "share", move "collects" back out of "lib", move "pkgs"
The "share" directory holds platform-independent files, while
"lib" holds platform-specific files.

In principle, the "collects" directory belongs in "share",
as does "doc". Those directories are put into "share"
by a Unix-style install, but left at top level for an
in-place install.

Packages in installation scope are put in "share" instead
of "lib", and the top-level Makefile puts development links
in "share/devel-pkgs".

The `configure' script now supports `--docdir' and `--collectsdir'.

Changed the version to 5.90.0.1.
2013-07-19 11:52:02 -06:00
Matthew Flatt
0736e62a49 fix `raco exe' 2013-07-19 08:45:43 -06:00
Matthew Flatt
8013f2e815 move `planet/resolver' back to core
In consultation with Sam, partially reverts efba034e01. The default
module name resolver uses `planet/resolver' for the build-in
`(planet ....)' form. The `raco planet' command is still in
"planet-lib", though.
2013-07-18 19:53:27 -06:00
Matthew Flatt
2fafbc4b79 adjust the places <-> distributed-places connection
Instead of a dynamic-require, the connection goes through a
structure-type property on a `remote-note%' instance.
2013-07-18 17:22:24 -06:00
Matthew Flatt
937588f552 count ".scrbl" files as modules within a package
The set of relevant extensions should be made extensible, eventually.
2013-07-18 15:19:32 -06:00
Sam Tobin-Hochstadt
deb0a8c26e Move distributed places to their own package. 2013-07-18 15:21:21 -04:00
Sam Tobin-Hochstadt
efba034e01 Move most of the planet collection to 'planet-lib'. 2013-07-18 15:21:12 -04:00
Matthew Flatt
2616b025df raco pkg update: setup collections of dependent packages
If package Y depends on package X, and package X is updated,
then include the collections of Y in the set passed to
`raco setup'.
2013-07-18 11:46:51 -06:00
Matthew Flatt
7a8b2e333b find-relevant-directories: fix 'no-user mode 2013-07-17 18:32:22 -06:00
Matthew Flatt
8f195a1ff6 change release-notes' "info.rkt" field to release-note-files'
The change avoids a collision with PLaneT fields.

Also, add checking for the form of a `release-note-files' value.
2013-07-17 18:32:22 -06:00
Matthew Flatt
4500c7c4d5 path->collects-path: repair for single-collection packages
Added an optional `#:cache' argument that is propagated to
`path->pkg', if necessary.
2013-07-17 14:31:41 -06:00
Matthew Flatt
d50d0f8bca enable compilation of tests formerly in "racket-test"; reorganize
A package like "gui" does not depend on a package like "gui-test",
which means that you have to specifically ask for a test package if
you want the tests. A new "main-distribution-test" package
aggregates the tests for packages that are in "main-distribution".

The "plt-services" package, meanwhile, depends on the
"main-distribution-test" package, which means that all tests are
compiled by default for an in-place build.
2013-07-16 18:45:05 -06:00
Matthew Flatt
e59f888310 GC clean-ups related to disabled collections and place-shared space
The changes make shared-space allocation work in GC-stress mode
(forcing "master" GCs, just like other GCs).
2013-07-16 11:03:40 -06:00
Robby Findler
05ce59c54e fix bug in ->
Specifically, in the case when the arrow is of the shape
(-> any/c ... any), then the predicate didn't ensure that
there were no mandatory keywords in the given function
2013-07-16 10:52:01 -05:00
Matthew Flatt
c88dc8efc8 configure: fix a CC vs. CC_FOR_BUILD mismatch 2013-07-16 06:07:42 -06:00
Matthew Flatt
691a6303eb use CONFIGURE_ARGS_qq' in reconfigure' 2013-07-15 19:22:27 -06:00
Matthew Flatt
9aee8b53d9 use `filesystem-change-evt' for collection paths only if low-latency
Specifically, this change disables the use of inotify() for detecting
changes to collection-links files, because the latency is too large
on some (many?) Linux configurations. (The fallback is to detect changes
to a links file by reading the whole content every time.)
2013-07-15 08:58:39 -06:00
Matthew Flatt
df79198e6e add 'fs-change mode to `system-type'
Report whether `filesyste-change-evt' is supported, works
at the granularity of files, etc.
2013-07-15 08:58:39 -06:00
Matthew Flatt
b3715ba36e filesystem-notify-evt: change inotify() implementation
Create a single inotify() connection per place, which should reduce
the latency of operations on filesystem change events and make
them generally scale better on Linux.

Internally, add a filesystem-never-changes mode, which could be useful
for platforms with fixed filesystems, but it's also for experiments in
checking the cost of filesystem change events.
2013-07-15 07:07:27 -06:00
Matthew Flatt
5aab8a0137 disable inotify()-based `filesystem-change-evt'
... until we can track down latency problems with the use of
inotify().
2013-07-14 07:54:57 -06:00
Matthew Flatt
44afa3cb66 raco setup: track document dependencies based on SHA1s
Use SHA1s instead of timestamps for detecting dependency changes,
which works with pre-built documentation. (The problem with
timestamps didn't come up before because dependency checking was
broken.)
2013-07-13 08:58:21 -06:00
Matthew Flatt
59170d4caf x86_64 native stack traces: protect some pointer dereferenecs
Guard dereferences of DWARF information to avoid crashing when
the information is wrong or misinterpreted.
2013-07-12 14:52:43 -06:00
Matthew Flatt
e8e482acaa improve `raco pkg' text 2013-07-12 14:52:43 -06:00
Matthew Flatt
8a9d885774 shuffle some unstable modules and fix doc dependencies
Includes a repair for mapping a collection name to a set of
linked paths.
2013-07-12 14:52:43 -06:00
Matthew Flatt
79abd1f629 clean up deregistration of VNODE watches via kqueue()
The shotgun approach generates errors/warnings.
2013-07-12 14:52:42 -06:00
Matthew Flatt
d5558a4fe0 raco setup and scribble: fix problems tracking document changes
Some non-transparent but serializable data structures broke
the comparison between previous and new outputs, which caused
too many document rebuilds.

Includes a change to make module path indexes work with `equal?'.
2013-07-12 14:52:42 -06:00
Matthew Flatt
98ec60242a raco setup: check package build dependencies for documentation
The check uses the cross-reference database that is created
by building documentation.
2013-07-12 14:52:41 -06:00
Matthew Flatt
b9fd9ad78c installers site: include documentation of built packages 2013-07-11 10:26:03 -06:00
Matthew Flatt
75cb619866 raco setup: fix problem with info-domain clean-up 2013-07-11 10:26:03 -06:00
Robby Findler
ad86a72143 fix stronger for ->* when there are #:pre and #:post conditions specified 2013-07-11 06:25:10 -05:00
Carl Eastlund
704857bbfe Fixed bugs related to define/generic and to define-generics at top-level.
Added tests using define/generic in both #:defaults and #:fallbacks, both inside
modules and at the top level.  Changed the implementation of define-generics so
that defaults and fallbacks come after method definitions so that define/generic
works properly.  Changed internal names to be created with format-id and
syntax-local-introduce rather than generate-temporaries so that they work at the
top level.
2013-07-10 16:10:44 -04:00
Matthew Flatt
30a1c3565d fix "collects" path setup in 3m build 2013-07-10 13:41:06 -06:00
Matthew Flatt
da3ac6159d raco setup: exit with error status on failed pkg dependency check
Also, clean up printing of check errors to prefix each line with
`raco setup' (like everything else).
2013-07-10 13:19:13 -06:00
Matthew Flatt
32b0064b56 Don't install "libracket3m.a" by default
Configure with `--enable-libs' to install the library.
2013-07-10 13:09:41 -06:00
Matthew Flatt
4a45d5faa0 look for default preferences file in the configuration directory
... instead of a "defaults" collection.
2013-07-10 12:57:02 -06:00
Matthew Flatt
39dd0bb3be fix `syntax/boundmap', too
Related to PR 13911
2013-07-10 12:57:02 -06:00
Matthew Flatt
2a4f32d853 remove core dependency on `mzlib/restart' 2013-07-10 12:57:02 -06:00
Matthew Flatt
8d3c09b38b move compile-file' to compiler/compile-file'
The `mzlib/compile' module re-exports the moved function.

Also, fix `make-directory*' so that it never fails on an existing
directory. Remove `unstable/file', since it was just the same
clean-up of `make-directory*'.
2013-07-10 12:57:02 -06:00
Matthew Flatt
72c9162989 move mzscheme' and mzlib/unit200' from core to "compatibility-lib"
Also, move `mzlib/sandbox' to "compatibility-lib".
2013-07-10 12:57:02 -06:00
Matthew Flatt
a6e25f0bae file/gzip: remove use of `unit200'
The unit was just there to create an instantiable local definition
context. In modern Racket, a function body does the same job.
2013-07-10 12:57:02 -06:00
Matthew Flatt
85899c7236 ".plt" unpacking: require literal S-expression pattern
A literal S-expression is required instead of an S-expression that
is evaluated. Any ".plt" file created in the normal way will still
work.
2013-07-10 12:56:22 -06:00
Carl Eastlund
c6532131a0 Added a #:fallbacks option to define-generics.
The #:fallbacks option specifies a set of method definitions.  Each definition
is used for any value that does not support the specific method.  Like
allows define/generic and absent method definitions.  If neither a specific
implementation or the #:fallbacks clause defines a given method, the normal
runtime error is raised.  The #:defined-table option reports whether a value's
specific implementation supports a method; the presence of a #:fallbacks
implementation for a method does not change this result.
2013-07-10 12:56:16 -04:00
Carl Eastlund
7ab8aca79b Adapted define-generics so that "defaults" work like #:methods implementations.
Specifically, implementations for the #:defaults keyword in define-generics can
now use define/generic to get at the generic implementation of a method for
which a specific implementation is defined locally.  Also, unimplemented methods
are handled properly now in #:defaults.  Previously, an unimplemented method in
a #:defaults specification would go into an infinite loop if applied, because
the implementation for the specific type wound up referring to the generic
implementation of the method.

A lot of the back-end implementation of generics changes in this commit:

- The new module racket/private/generic-methods provides a uniform mechanism for
  defining method tables and recording static information about generics
  groups.  Both #:methods in [define-]struct and #:defaults in define-generics
  use this framework now.  In addition, generics based on existing properties
  such as gen:stream, gen:equal+hash, and gen:custom-write now use the struct
  from this module to store the names associated with the generics groups.

- Generic methods now expand directly into functions with the appropriate arity,
  and refer directly to the appropriate argument to perform generic method
  dispatch.  The previous implementation used procedure-reduce-keyword-arity to
  restrict the arity dynamically, and used list-ref to find the generic
  argument.

- Some error messages have changed slightly; hopefully for the better, but this
  change did require some changes to tests for specific error messages.
2013-07-10 12:56:16 -04:00
Carl Eastlund
6e01d1d9a3 Separated generic contracts from define-primitive-generics.
Now the primitive generics form just defines generics with their properties and
methods, and the surface-level form calls the contract definition form
directly.  This means the primitive generics form now requires an explicit name
for a struct property accessor, so that the same name can be used for the
contract.
2013-07-10 12:56:15 -04:00
Carl Eastlund
00ccb5850b Renamed private version of define-generics to define-primitive-generics. 2013-07-10 12:56:15 -04:00
Carl Eastlund
8c00abbf48 Removed #:prop-defined-already? option from private define-generics macro.
In the few cases that used this option, the only definition needed from the
private define-generics macro was gen:<name>.  This is easy to define directly
without using the macro, so I have changed the code to do so and avoid redundant
definitions of methods.
2013-07-10 12:56:15 -04:00
Carl Eastlund
c5760b5ed1 Keyword arguments to define-generics can be in any order, before/after methods. 2013-07-10 12:56:15 -04:00
Matthew Flatt
5c80084f68 change `find-relative-directories' to normalize completed paths
Avoids problems with clients (like the Scribble part of `raco setup')
that compare paths.
2013-07-10 07:10:39 -06:00
Matthew Flatt
fe98a80c22 add `identifier-bindig-symbol'; fix free-id-table for renames
The implement of `free-id-table' uses `identifier-binding'
to decide on a symbolic name as a key for each identifier,
but `identifier-binding' doesn't provide enough information
for local and top-level bindings. The new `identifier-binding-symbol'
function provides that information.

Closes PR 13911
2013-07-10 07:10:39 -06:00
Vincent St-Amour
a41bbd78b5 Document contract-continuation-mark-key. 2013-07-09 18:26:39 -04:00
Matthew Flatt
9b3bb96648 raco setup: move `-K' flag to intended meaning 2013-07-09 10:23:40 -06:00
Matthew Flatt
fbdff066b8 prune absolute paths from "info-cache.rktd" files
They're now stored as relative (if possible), instead of always
as absolute. When transitioning from old paths to new paths,
the old ones need to be purged explicitly.
2013-07-09 10:23:09 -06:00
Matthew Flatt
9cc50dc914 Makefile: make PKGS' not sticky by default, add again' target
More generally, `LINK_MODE' controls how the `PKGS' value is saved
or restored: "--save" saves the value (the default), "--restore"
uses a previously saved value (if any), and "" disables saving or
restoring.

The `again' target recurs to `in-place' with `LINK_MODE=--restore'.
2013-07-08 20:11:26 -06:00
Matthew Flatt
267ba4c72b fix some absolute paths in an in-place build 2013-07-08 20:01:05 -06:00
Ryan Culpepper
1275ed70de split out db pkgs 2013-07-08 17:38:32 -04:00
Matthew Flatt
f87981f960 misc changes to avoid absolute paths in bytecode files
In many cases, `path->collects-relative' is used instead of
`path->main-collects-relative' to generalize existing support
for collection-relative paths.
2013-07-08 12:24:17 -06:00
Matthew Flatt
47f2742575 pkg/path: add `path->pkg+subpath+collect'
I was going to use this extension to implement `path->module-path',
but it turns out that `path->module-path' already exists and in
a form that works with packages. Still, this extension might be
useful in the future.
2013-07-08 12:24:16 -06:00
Matthew Flatt
36f7b7051e drop non-relative paths in procedure source locations
A path that is not relative to the enclosing file can show up
due to cross-module inlining. Package-based modules do not have
a good relative path to "collects", which creates trouble for
distributing compiled modules where, say, `map' was inlined.

It might be possible to keep the path in module-path-index form
so that a path can be constructed appropriately at run time, but
it's much simpler to just punt on function source locations in
this relatively rare case.
2013-07-08 12:24:16 -06:00
Matthew Flatt
eb8fc26c59 fix bug and test for `path->relative-string/library' 2013-07-07 11:58:35 -06:00
Matthew Flatt
e3c27b2737 fix `call-with-default-reading-parameterization'
The `read-accept-compiled' parameter is supposed to be #f.
2013-07-07 11:51:25 -06:00
Matthew Flatt
1a0312acc0 Package-database reading and related library improvements
The main result is that `path->selative-string/library' now generates
"<pkg>/..." strings.

To make that possible, minimal support for reading the
installed-package database moved to a new `pkg/path' library.

To make that possible and avoid poetntial problems from concurrent
reading and writing of the database file, `racket/file' now provides
`call-with-atomic-output-file', which implements the write-and-move
dance that CM uses for compiled bytcode (i.e., `with-compile-output').
The new function is used to write links and installed-package files.

Finally, `racket/base' provides the new function
`call-with-default-reading-parameterization', which is used to guard
various file `read's to make them consistent and avoid security holes.
2013-07-07 11:26:40 -06:00
Matthew Flatt
7ef5048961 `filesystem-change-evt' and use repairs 2013-07-07 08:12:43 -06:00
Matthew Flatt
22ab892143 minor Makefile and C fixes 2013-07-07 06:42:00 -06:00
Matthew Flatt
b8e20f5a3e use `filesystem-change-evt' and static roots to speed library search
Use `filesystem-change-evt' (where supported) to detect changes to
collection link files.

Add "static root" as a new kind of collection root directory in links
files. A static root directory is assumed to not change (in terms of
its collection subdirectories) as long as the links file itself does
not change.

Propagate the notion of static roots through `raco link' and `raco pkg
install'.

Change the `pkg-links' makefile target to install static links
instead of plain links.

The result of all of these changes is to cut 25%-33% of the
time for `racket -l racket', bringing it back in line with
the pre-package-reorganization time.
2013-07-07 06:42:00 -06:00
Matthew Flatt
3b0566ea0a add `filesystem-change-evt'
The `filesystem-change-evt' function takes a path to a file
or directory and returns an event that becomes ready when
the file or directory changes (conservatively, so false
positives are possible).

These events are supported on Linux, Mac OS X and other BSD
variants with kqueue(), and Windows.
2013-07-07 06:41:59 -06:00
Robby Findler
8f539d994b adjust the collection sorting that 'raco setup' so that it works
in our new pkgs world (and has a, hopefully, similar effect)
2013-07-06 11:43:53 -05:00
Matthew Flatt
4266e606e3 fix GC bug
This is a variant of the bug fixed in
49fbca5b18,
where a GC-notification callback still
could cause problems in a GC during a finalization
callback.

(Bug found by running tests in GC-stress mode.)
2013-07-06 07:21:46 -06:00
Matthew Flatt
e3eed89b1d fix GC bug in FFI
A foreign procedure's data could get GCed before the procedure
was called, if the procedure is not otherwise reachable.

(Bug found by running tests in GC-stress mode.)
2013-07-06 07:19:42 -06:00
Eli Barzilay
8d55b892ec Further explain silent acceptance of unencoded characters.
Also highlight the two tests that use that.
2013-07-05 20:20:49 -04:00
Matthew Flatt
8be8057ff7 raco setup: just core "racket" for initial sequential build 2013-07-05 17:41:06 -06:00
Eli Barzilay
f90fe4c598 Get rid of the `#:function' keyword.
These problems are always dealt with via an internal function instead of
making the name argument part of the visible API.
2013-07-05 18:16:51 -04:00
Eli Barzilay
210c71d91c Simplify decoding code into one `cond'.
(It's likely to get written in some better way, for example, avoid the
extra work for simple strings.)
2013-07-05 18:16:51 -04:00
Matthew Flatt
2f637741e2 switch makefile's parallelism control to `JOB_OPTIONS'
Avoid potential collision with `PLT_SETUP_OPTIONS' as an environment
variable.
2013-07-05 12:09:09 -06:00
Matthew Flatt
a8ed2b1546 Add -j'/--jobs' <n> argument to `raco pkg install', etc.
Also, thread `PLT_SETUP_OPTIONS' though server and client build
(so that a `#:j' configuration works as intended).
2013-07-05 11:33:57 -06:00
Sam Tobin-Hochstadt
a4e529a816 Fix wide-character decoding in URLs. 2013-07-05 11:46:56 -04:00
Matthew Flatt
f98c56f722 fix exception handler inside links-reading code 2013-07-05 08:30:01 -06:00
Matthew Flatt
6a78219d5d fix some clang warnings
The "if (pi->unwind_info);" change might be a bug fix.
2013-07-05 08:30:00 -06:00
Matthew Flatt
5c14def43f pkg/strip: allow any info library path 2013-07-05 08:30:00 -06:00
Matthew Flatt
fb052532c0 make in-place: keep non-default `PKGS' value in "racket/etc/link-pkgs.rktd"
This change makes a `PKGS=...' setting sticky for an in-place build via
`make', `make in-place', `make pkg-links', etc.
2013-07-05 08:30:00 -06:00
Sam Tobin-Hochstadt
0e7f6e3ddd Move shared implementation file to .rktl. 2013-07-04 16:46:32 -04:00
Sam Tobin-Hochstadt
8ecb5a431e Remove unneeded info files. 2013-07-04 16:46:32 -04:00
Sam Tobin-Hochstadt
14207682d3 Create info collection for "info.rkt" files. 2013-07-04 16:46:31 -04:00
Matthew Flatt
0d60486a32 GC: make place-message support work with GC stress mode 2013-07-04 14:25:18 -06:00
Matthew Flatt
b232f572a9 add missing GC traversal-function registration
Related to places and place messages.

(Bug found by running tests in GC-stress mode.)
2013-07-04 14:25:10 -06:00
Matthew Flatt
49fbca5b18 fix GC bug
GC during allocation of a pair, weak box, ephemeron, or
weak array went wrong if the GC-notification callback
allocated any of those kinds of things.

(Bug found by running tests in GC-stress mode.)
2013-07-04 14:20:44 -06:00
Matthew Flatt
bf175c5fb0 configure: add --enable-sdk6
To ensure that the Mac OS X 64-bit builds work on 10.6.
2013-07-04 06:53:08 -06:00
Matthew Flatt
f54e3b1c15 raco setup: fix handling of 'lib paths in "info-cache.rktd" 2013-07-03 19:49:06 -06:00
Matthew Flatt
7e42b8dea2 scribblings/main: fix installation start page to avoid user-specific packages 2013-07-03 19:49:06 -06:00
Matthew Flatt
aabbfdc3d5 make packages single-collection by default
The `single-collection' "info.rkt" definition is no longer supported.
2013-07-03 19:49:06 -06:00
Matthew Flatt
df95e83eb2 raco pkg: configuration inherited: installation -> shared -> user 2013-07-03 19:49:06 -06:00
Robby Findler
964e1382f4 adjust the pkg/main.rkt exports to be of the form
pkt-<X>-command to avoid conflicting with pkg/lib
2013-07-03 07:19:01 -05:00
Sam Tobin-Hochstadt
37c87ec2e0 Move json tests to racket-test pkg. 2013-07-02 18:23:56 -04:00
Sam Tobin-Hochstadt
45c276b5db Fix reading of config.rktd file when in strange readtable. 2013-07-02 16:23:18 -04:00
Matthew Flatt
3264f16b63 Generalize use of farm config file
Change `FARM_CONFIG' to just `CONFIG' and use it on the server, too.
2013-07-02 06:40:16 -06:00
Matthew Flatt
00a4cb611b make doc-search URL configurable for installer builds
Also, add an initial-catalogs configuration to clients and
`farm' builds.
2013-07-02 06:40:16 -06:00
Robby Findler
dfafc9675e change exports from the 'pkg' module so they are all prefixed with pkg-
(the goal is to avoid shadowing 'remove')
2013-07-01 19:18:41 -05:00
Matthew Flatt
81f29602d0 raco pkg: fix handling of overlapping provided-package sets 2013-07-01 13:47:35 -06:00
Matthew Flatt
9b4940d6a6 fix build on version change 2013-07-01 10:53:04 -06:00
Matthew Flatt
b12cdecb9f fixup for mzscheme' -> racket/base' conversion 2013-07-01 10:49:07 -06:00
Sam Tobin-Hochstadt
3ad009070e Move most of the compiler collection to compiler-lib. 2013-07-01 12:08:42 -04:00
Sam Tobin-Hochstadt
d54c1e4e49 Remove most uses of mzscheme in the core.
Remaining are:
 - parts of unit200 that Matthew plans to remove.
 - the `mzscheme` implementation itself.

The implementation of `mzscheme` has been moved
to the `mzscheme` collection (from the `racket` and
`scheme` collections). The `scheme/mzscheme`
language, which was undocumented, has been removed.

This is slightly backwards-incompatible, because
the `xform` handling of precompiled headers now
evaluates code in a `racket/base`-like namespace,
instead of in a `mzscheme`-like namespace.
2013-07-01 12:08:42 -04:00
Sam Tobin-Hochstadt
d0a0e31abc Fix uses of 'mzscheme' in comments. 2013-07-01 11:27:14 -04:00
Sam Tobin-Hochstadt
9f31b8bb30 Copy many fewer files for xform. 2013-07-01 11:27:14 -04:00
Sam Tobin-Hochstadt
2b1fb036c6 Move most of the net collection out of the core.
- Most units and signatures from the `net` collection
  are now in `compatibility-lib`.
- Most of the actual libraries are in the `net-lib`
  package.
2013-07-01 11:27:14 -04:00
Matthew Flatt
513436e5b2 fix arity checking of `call-with-file-lock/timeout' 2013-07-01 06:42:58 -06:00
Matthew Flatt
1423be581d raco setup: fix dependency checking for more nested directories
I'm not sure why a problem with the "package closure" operation
didn't create problems earlier for `raco setup' --- or maybe it
did, but they're difficult to see.

Also, reduce redundancy in reporting of reasons for dependency
mismatches (but keep multiple reports of the same missing
dependency but for different reasons).
2013-06-29 18:38:17 -06:00
Matthew Flatt
5ff8f33661 adjust `raco setup' package-dependency reporting
Report packages that have no dependency declarations as "warnings"
(to stdout instead of stderr).

Report specific information when a dependency is discoeverd missing,
insteda of reporting it only in verbose mode.
2013-06-29 09:36:51 -06:00
Robby Findler
d412afa426 removed unused variable 2013-06-29 10:33:37 -05:00
Matthew Flatt
04d5d9bd55 raco setup: add package-dependency checking
The new `--no-pkg-deps' or `-K' flag skips the check.

If a module in package X refers to a module in package Y, check that
package X declares a dependency on Y.  Note that package X must
specifically depend on Y --- not another package that at the moment
happens to declare a dependency on Y.

A new "base" package represents the content of the core (so that, if
the core shrinks, a new "base2" can represent the smaller core).
Most every package now needs a dependency on "base".

Sometimes, it makes sense for X to access Y when X declares a
dependency on Z, because Z promises to always depend on Y.  For
example, the "gui" package is defined to combne "gui-lib" and
"gui-doc", so it's appropriate to use the modules of "gui-lib" when
depending on "gui". A package's "info.rkt" can therefore define
`implies' as a subset of the dependencies listed in `deps', which
means that depending on the package implies a dependency on the listed
packages. (It's even possible for packages to mutually imply each
other, which is why the dependency checking code ends up with a
union-find.)

Dependency checking distinguishes between run-time dependencies and
build-time dependencies: anything listed in a ".dep" file is a build
dependency, at least. To imply a run-time dependency, a reference must
appear in a bytecode file's imports, and not in a subdirectory or
submodule that would be pruned for a binary package.

The `--fix-pkg-deps' flag attempts to automatically fix package
dependency declarations (i.e., modify a package's "info.rkt" file)
based on inferred dependencies.
2013-06-29 06:51:18 -06:00
Matthew Flatt
336d6ebc09 ditto on build repair (missed two places) 2013-06-29 06:19:09 -06:00
Matthew Flatt
0fdc7ec1a1 build repair for case that "etc" does not exist 2013-06-28 08:32:33 -06:00
Matthew Flatt
a89ba74f4e raco pkg: fix dependency checking for user and shared scopes 2013-06-28 06:57:20 -06:00
Matthew Flatt
47f1b4498f setup/infotab: drop (require string-constants)' and (string-constant <id>)'
The problem with allowing `(require string-constants)' in an
"info.rkt" file is that "string-constants-lib" is a package that might
not be installed.  Removing it allows any "info.rkt" file to be loaded
with just the core.

Strings constants were used for `textbook-pls' and
`drscheme-language-positions' entries. To enable access to string
constants for those specifications, DrRacket now recognizes
`get-textbook-pls' and `get-drscheme-language-positions' as
module path plus symbol specifications.

Also, fix up conflict checking in `raco pkg install' so that ".zo"
files without source do not count as provided modules unless an
"info.rkt" declares `assume-virtual-sources' (which is where we
got into trouble, again, with `string-constants'), making it
consistent with the way that `raco setup' removes ".zo" files.
2013-06-28 06:06:01 -06:00
Matthew Flatt
d450ee9707 link development-mode packages in a separate pkg database
Use `PKGS' with the top-level makefile to select packages for
a development-mode build. The default is "main-distribution",
which includes all packages in "pkgs".
2013-06-27 21:52:23 -06:00
Sam Tobin-Hochstadt
4d6bf3192d Move mzlib/restart back to fix build. 2013-06-27 23:37:33 -04:00
Sam Tobin-Hochstadt
5ec754803e Fix some mzlib references. 2013-06-27 23:13:46 -04:00
Robby Findler
40b2b19089 move mzlib/contract into compatibility-lib 2013-06-27 21:48:39 -05:00
Robby Findler
000c74ced5 adjust mzlib/contract so that it doesn't require any racket/contract/private stuff 2013-06-27 21:48:38 -05:00
Robby Findler
5eca63699c rewrite mzlib/contract to racket/contract 2013-06-27 21:48:38 -05:00
Asumu Takikawa
42b5cfe8b2 Use racket/cmdline instead of mzlib/cmdline
This should fix the build
2013-06-27 22:17:15 -04:00
Matthew Flatt
53d68e2149 switch "config.rktd" dirs back to "collects"-relative
Making them "etc"-relative intercts badly with redirecting
a configuration to override just a few values --- such as
the links path, which is what `make core' needs.
2013-06-27 17:04:16 -06:00
Sam Tobin-Hochstadt
52af4ed52e Move rackunit to the rackunit-lib package.
The `rackunit/log` utility stays in the core, because it's
used by `raco test` and very small.
2013-06-27 13:53:52 -04:00
Sam Tobin-Hochstadt
7917f32d0c Move much of mzlib to compatibility-lib package. 2013-06-27 13:53:52 -04:00
Sam Tobin-Hochstadt
59c6519cd3 Move compatibility, pconvert, and mutable pairs to new packages. 2013-06-27 13:53:52 -04:00
Sam Tobin-Hochstadt
e934ce2963 Move unstable/contract and unstable/options to their own packages. 2013-06-27 13:53:52 -04:00
Sam Tobin-Hochstadt
45f3fddee5 Move help collection out of the core. 2013-06-27 13:53:52 -04:00
Sam Tobin-Hochstadt
a0ddf78db8 Move various data structures to data-lib pkg. 2013-06-27 13:53:52 -04:00
Sam Tobin-Hochstadt
6521f950d6 Move srfi/4 out of the core. 2013-06-27 13:53:52 -04:00
Sam Tobin-Hochstadt
6c22c7ce3c Move errortrace collection and documentation to new packages. 2013-06-27 13:53:52 -04:00
Sam Tobin-Hochstadt
549310ea0c Move racket/sandbox etc to sandbox-lib package. 2013-06-27 13:53:52 -04:00
Matthew Flatt
a5ce399dcf .gitignore fixups 2013-06-27 07:52:28 -06:00
Matthew Flatt
4dc8050f75 catch up on documentation for some library changes
The library changes were made as part of the package reoganization.
2013-06-26 13:00:17 -07:00
Matthew Flatt
dc11090f6b repair interaction of taints and submodule expansion 2013-06-26 12:59:44 -07:00
Matthew Flatt
5f35290bbe remove testing hack 2013-06-26 12:59:44 -07:00
Eli Barzilay
555c300c72 .gitignore cleanups
* Clarified bogosity of toplevel .gitignore (and other such files)

* Removed "doc/" in the toplevel file -- looks like this was some broken
  leftover, and it's dangerous for at least "scribble/doc" (which
  contains code).

* Collapse more common patterns into worksp instead of in each file.

* Use a trailing "/" for directories.

* racket/lib/collects/pkg/.gitignore looks like a leftover that is no
  longer needed.
2013-06-26 00:52:01 -04:00
Robby Findler
bb955cead7 unbreak build (probably) 2013-06-25 19:01:31 -05:00
Matthew Flatt
c738a6aa3e a step toward single-collection packages as default
A package's "info.rkt" file should define `collection' as a
string to name a single-collection package's collection, or as
the symbol 'multi to declare the package as multi-collection.
If `collection' is 'same-as-pkg, then the package name is used
as the collection name.

The default for `collection' is 'multi for now, but the intent
is to change the default to 'same-as-pkg after a conversion
period. Also, support for a `single-collection' definition remains
in place, but it wil be removed.
2013-06-25 22:46:23 +02:00
Matthew Flatt
1ee88e2721 links file and pkg directrory location and search paths in "config.rktd"
Allow the location of the installation-specific "links.rktd" file to
be specified in "config.rktd", and also allow extra link files to
be provided.

Allow the same for package directories.

The main file/directory in each case corresponds to the file/directory
that can be modified by an installation-scope install. Extra files
or directories in a search path supports constant links and libraries
that are shared across installations --- like "/usr/lib" versus "/lib".
2013-06-25 22:46:23 +02:00
Matthew Flatt
2aed2138a6 raco link: "user" versus "shared" links
By default, `raco link' is now more like `raco pkg' in terms of scope,
and version-specific information doesn't pile up in a user's "links.rktd"
file.
2013-06-25 22:46:23 +02:00
Matthew Flatt
e51ac9cc61 fix `local-transformer-expand' with 'top-level context 2013-06-25 11:02:10 +02:00
Matthew Flatt
b8591a5a98 fix `path->relative-string/setup'
Need to make `path->relative-string/setup/pkg' have a better name
and be more accessible, though --- possibly replacing
`path->relative-string/setup'.
2013-06-22 06:29:55 -06:00
Matthew Flatt
208c7d23a6 detect changes to "links.rktd" by content instead of timestamp
The 1-second granularity of filesystem timestamps is not
good enough to deetct changes to the file --- especially
when `raco pkg' installs links and runs `raco setup' (in
the same Rcket process), in which case a newly installed link
might not be detected.

The longer-term repair is probably to add file-changed
events to Racket (based on `inotify' and similar interfaces
provided by OSes).
2013-06-21 13:16:03 -06:00
Matthew Flatt
2ff05e2dda win32: fix destination of COPYING files in build 2013-06-20 07:21:46 -06:00
Matthew Flatt
fc79d744d1 win32: make "doc" dir for core install 2013-06-20 06:41:09 -06:00
Matthew Flatt
fa6f56fcb1 move release notes in appropriate packages
A collection declares release notes with a `release-notes' field in
"info.rkt".

The "doc" directory is now populated exclusively by generated content,
instead of having a static "release-notes" directory (and a "keep-dirs.rktd"
file to record the static directories).
2013-06-19 21:01:52 -06:00
Matthew Flatt
8bd81d456b raco setup: better tracking of provides in database
Keep track of the out<n>.sxref timestamps, so that `raco setup'
can detect when the database is out of sync (instead of assuming that
it's always in sync with out<n>.sxref files).
2013-06-19 21:01:52 -06:00
Matthew Flatt
2e781d32f7 mzcom: set mzobj interface version to bogus value, for now
MzCOM and its build process need some sort of overhaul, but
it's on the backburner for now.
2013-06-19 21:01:52 -06:00
Matthew Flatt
8f2b08d0f5 win32: fix `win32-in-place' target on existing tree 2013-06-19 21:01:51 -06:00
Matthew Flatt
a63972b33b raco setup: fix some info-dmain problems
Info for "lib/collects" collections could be put in the wrong place,
and `--tidy' mode could miss some caches.
2013-06-19 12:39:33 -06:00
Matthew Flatt
a3c7be1a9c win32: fix version info in executables
Also, remove the need for a cron job that patches the version
number in resource and manifest files.
2013-06-19 11:20:03 -06:00
Matthew Flatt
092db5414a fix for `find-relevant-directory-records'
Multiple package-based instances of the same collection were not
handled correctly.
2013-06-19 09:01:38 -06:00
Matthew Flatt
b2ebb0a28b reorganize into core plus packages
The "racket" directory contains a pared-back version of the
repository, roughly.

The "pkgs" directory everything else in the repository, but
organized into packages.
2013-06-19 09:01:37 -06:00