Commit Graph

298 Commits

Author SHA1 Message Date
Matthew Flatt
39c2a08d31 make tests/zo-path inspect all installation-scope packages 2015-12-11 19:27:57 -07:00
Sam Tobin-Hochstadt
acbcff1bf4 Make zo-path checking available as a library. 2015-12-11 10:16:21 -05:00
Robby Findler
4aabe505be fix missing party and indy blame interaction
(also add all of the fields to the equal and hashing
functions)
2015-12-10 18:37:50 -06:00
Matthew Flatt
70ee04d257 fix zo-path test to check installed packages 2015-12-09 21:06:55 -07:00
Robby Findler
3d7d906cc1 tweak and clean up the contract combinators api
- uniformly remove the extra layers of calls to unknown functions for
  chapereone-of?  checks that make sure that chaperone contracts are
  well-behaved (put those checks only in contracts that are created
  outside racket/contract)

- clean up and simplify how missing projection functions are created
  (val-first vs late-neg vs the regular ones)

- add some logging to more accurately tell when late-neg projections
  aren't being used

- port the contract combinator that ->m uses to use late-neg

- port the </c combinator to use late-neg
2015-12-09 21:55:58 -06:00
Vincent St-Amour
5353dd1076 free-vars: add mode that also reports module-bound variables
As a separate mode, for backwards compatibility.
2015-12-07 10:42:12 -06:00
Sam Tobin-Hochstadt
a0c09c19ac Add test for 21316e3ebf. 2015-12-06 12:22:37 -05:00
Sam Tobin-Hochstadt
35fffb09d0 Finally fix the concurrency in this test.
The bug was an induced failure in the http server, to test retry
support, triggered another run of half of the synchronization
protocol, leading to a stuck state.
2015-11-24 17:20:53 -05:00
Matthew Flatt
6099a70c52 fix relative-path discovery for case-normalized paths 2015-11-16 12:55:19 -07:00
Sam Tobin-Hochstadt
04c0c59d27 Yet another try at ensuring that this concurrency works. 2015-11-10 16:07:09 -05:00
Robby Findler
3d31d86bf5 fix (-> any/c boolean?) for the case of an impersonated struct predicate
closes #1129
2015-11-10 09:00:17 -06:00
Robby Findler
71690384a4 add first-or/c 2015-11-07 19:55:20 -06:00
Sam Tobin-Hochstadt
171e4fba41 Use a semaphore instead of sleeping in this test. 2015-11-06 14:25:41 -05:00
Sam Tobin-Hochstadt
f126fd2356 Revert "change or/c so that it takes the first ho projection"
This reverts commit 5a33856802.

Merge to 6.3.
2015-11-06 14:25:41 -05:00
Sam Tobin-Hochstadt
ef6a5c2e75 Add test case for match ordering bug. 2015-10-29 19:33:15 -04:00
Robby Findler
aa46d1bc10 fix predicate/c bugs 2015-10-29 13:33:28 -05:00
Robby Findler
3f20803679 implement predicate/c for the more complex arrow contract protocol
So now (-> any/c integer?) will avoid the chaperone wrapper when the
function is a struct predicate while simultaneously supporting the
"extra argument neg party" protocol
2015-10-28 20:54:00 -05:00
Jay McCarthy
2396542cda better locking test 2015-10-28 11:32:47 -04:00
Vincent St-Amour
95c80cf21f Fix test phase.
Suggested by Matthew in the PR discussion.
2015-10-24 20:33:03 -05:00
Vincent St-Amour
bf69920570 Move racket/require tests. 2015-10-24 18:31:17 -05:00
Alex Knauth
67e3899272 Allow separate read and write contracts for box/c 2015-10-24 14:16:49 -05:00
Matthew Flatt
3eb2c20ad0 avoid excessive memory use in or expansion
When `or` has many subexpressions, the expansion generates a
sequence of deeply nested `let`s, where original and macro-introduced
forms are interleaved in a way that defeats a minimal
child-is-same-as-parent sharing of scope sets. Add a small
cache that's good enough to capture extra sharing and
dramatically lower memory use for an `or` that has 1000
subexpressions.
2015-10-23 16:32:22 -06:00
AlexKnauth
2acb10a5da syntax/parse: add test for non-tilde pattern expander 2015-10-16 18:03:40 -04:00
Sam Tobin-Hochstadt
03bf7d3def Remove added printf. 2015-10-14 15:29:27 -04:00
Sam Tobin-Hochstadt
297fb75009 Support -q flag for individual pkg tests. 2015-10-14 09:39:38 -04:00
Sam Tobin-Hochstadt
a3142ac257 Increase sleep time to avoid races on loaded test machines.
Hopefully alleviates DrDr & Travis failures.
2015-10-14 09:38:56 -04:00
Sam Tobin-Hochstadt
f63188b4ea Refactoring. 2015-10-13 17:49:18 -04:00
Sam Tobin-Hochstadt
e53492a68f Support environment variable for setting global seed. 2015-10-13 17:49:18 -04:00
Sam Tobin-Hochstadt
de27223635 Add a quiet mode to the pkg tests. 2015-10-08 17:38:59 -04:00
Matthew Flatt
a5f6bf34dc raco pkg: refine handling of HTTP status codes
Treat only 404 and 410 as "not found" errors, retry on 5xx
errors, and treat anything else as an error insteda of "not found".
2015-10-06 17:47:46 -06:00
Sam Tobin-Hochstadt
dfef5b43fc Add --write option to fuzzer. 2015-09-23 15:49:18 -04:00
Robby Findler
5a33856802 change or/c so that it takes the first ho projection
whose first-order predicate accepts a value, instead
of requiring that there be exactly one
2015-09-22 09:05:34 -05:00
Vincent St-Amour
9c123172fa Move srfi-related tests to srfi-test. 2015-09-16 13:53:52 -05:00
Vincent St-Amour
17b96cc5a1 Remove unused import. 2015-09-16 13:24:32 -05:00
Konrad Hinsen
a47800686c Fix match with (list-no-order p ..k) patterns
p ..k matches exactly k repetitions of p, but its documented
behavior is to match "k or more" repetitions. This fix implements
the documented behavior.

Fixes bug number 15122.
2015-09-11 21:34:02 -04:00
Matthew Flatt
0d3b5b61f0 untar, untgz, and unzip: add #:permissive?
Also, strengthen the checking that `#:permissive?` (off by default)
performs for `untar` and `untgz` to disallow a link whose target is an
absolute path or has an up-directory element.
2015-09-11 16:53:31 -06:00
Matthew Flatt
c15d2f71d4 file/untar: fix handling of a broken tar file
Closes #1049
2015-09-11 16:53:31 -06:00
Matthew Flatt
696c9d972f prohibit directory indicators in "git:....?path=" as a package source
Closes #1027
2015-09-11 16:53:30 -06:00
Asumu Takikawa
52aa11c407 Propagate object inspectors in class/c wrappers
This makes reflection work on an instance of a contracted
class in the same way that it does on the original class.
2015-09-11 15:11:18 -04:00
Ryan Culpepper
8d9eb05347 syntax/parse: accept #:context (list symbol/#f syntax)
The symbol is used as the "who" field in the error message.

Also fix lazy-require of runtime-report.rkt in residual.rkt; don't
load until syntax-parse actually needs to produce an error report.
(Previously was loaded to create handler whenever syntax-parse code ran.)
2015-09-10 21:49:21 -04:00
Matthew Flatt
98b819edd4 enable some tests
Some tests that rely on a `main` submodule for places
need a `test` submodule, too.
2015-09-08 07:39:48 -06:00
Daniel Feltey
4fefec6386 Add test case
Closes PR 15139
2015-09-01 11:46:40 -05:00
Matthew Flatt
f09c78b5f4 racket/unit: fix #:omit-constructor
Closes #1006, with a test case based on that report.
2015-08-31 16:22:12 -06:00
Matthew Flatt
b016246096 avoid interferences among places for memory accounting
All places uses the same accounting bit for objects
that are in the shared space. Each place also flips
the bit value it wants on each accounting, so if two
places are accounting at the same time with opposite
bit values and can reach the same objects, they can
interefere. It's even possible for them to race
through cycles and cause each other to loop forever.

Add a lock to ensure that there's only one bit value
in play for the shared space at any given time. A
place must stall if other places are busy with memory
accounting and an opposite bit value.
2015-08-28 17:05:37 -06:00
Matthew Flatt
a9078196b7 fix GC problem with in-flight place messages
While a place message is received by a thread but not yet
deserialized, if the message contains references to objects in the
shared space, and if a "master" GC happens (which crosses all places),
make sure that the references in the still-serialized message are
traversed.
2015-08-28 17:05:37 -06:00
Robby Findler
0c31a0c0b8 add some missing contract profiler wcm expressions and start a test suite for them 2015-08-22 20:22:00 -05:00
Robby Findler
725536b8b4 add missing contract checking 2015-08-20 15:41:29 -05:00
Sam Tobin-Hochstadt
0ba2d30fed Increse place-channel test timeout. 2015-08-20 14:12:56 -04:00
Sam Tobin-Hochstadt
d63d3e603e Increase timeout. 2015-08-19 19:13:41 -04:00
Sam Tobin-Hochstadt
dfd2c6dc68 Hide output to work around racket/rackunit#5. 2015-08-16 18:55:36 -04:00
Matthew Flatt
c57fb2d1ce fix setup/collection-search test 2015-08-13 18:20:24 -06:00
Matthew Flatt
7d6bec2b17 increase timeout for "determistic-zo.rkt" test 2015-08-13 11:51:23 -06:00
Matthew Flatt
86ee9c5071 signature-members: adjust element ids based on reference
Make the resulting content ids compatible with binding and reference
at a use site, as needed for the new macro expander.
2015-08-13 10:44:26 -06:00
Daniel Feltey
b16f0b24b7 Improvements to unit/c contracts in preparation for unit support in typed/racket
Changes:

 - Allow unit contracts to import and export the same signature.
 - Add "invoke" contracts that will wrap the result of invoking a unit contract,
   no wrapping occurs when a body contract is not specified
 - Improve error messages
 - Support for init-depend clauses in unit contracts.
 - Fix documentation to refelct the above
 - Overhaul of unit related tests

Handling init-depend clauses in unit contracts is a rather large and somewhat
non-backwards-compatible change to unit contracts. Unit contracts must now
specify at least as many initialization dependencies as the unit value being
contracted, but may include more. These new dependencies are now actually
specified in the unit wrapper so that they will be checked by compound-unit
expressions.

This commit also adds more information to the first-order-check
error messages. If a unit imports tagged signatures, previously the errror
message did not specify which tag was missing from the unit contract. Now
the tag is printed along with the signature name.

Documentation has been edited to reflect the changes to unit/c contracts
made by this commit.

Additionally this commit overhauls all tests for units and unit contracts.
Test cases now actually check that expected error messages are triggered when
checking contract, syntax, and runtime errors. Test forms now expand into uses
of rackunit's check-exn form so only test failures are reported and all tests in
a file are run on every run of the test file.
2015-08-11 16:30:39 -05:00
Vincent St-Amour
e9e7e42b64 Fix generics tests for hashing change. 2015-08-09 10:50:50 -05:00
Matthew Flatt
2661d46929 toward deterministic bytecode generation
Progress toward making the bytecode compiler deterministic, so that a
fresh `make base` always produces exactly the same bytecode from the
same sources. Most changes involve avoiding hash-table order
dependencies and adjusting scope identity. The namespace used to load
a reader extension is also better defined. Plus many other little
changes.

The identity of a scope that is unmarshaled from a bytecode file now
incorporates the hash of the file, and the relative order of scopes is
preserved in a bytecode file. This combination allows compilation to
start with modules that loaded and compiled in different orders
(including delayed loading of bytecode fragments within one file).

Formerly, a reader extension triggered by `#lang` or `#reader` was
loaded in whatever namespace happens to be current. That's
unpredictable and can pollute a module build at the level of bytecode.
To help make builds deterministic, reader extensions are now loaded in
a root namespace of the current namespace.

Deterministic compilation in general relies on deterministic macros.
The two most common ways for a macro to be non-deterministic are by
using `gensym` (use `generate-temporaries`, instead) and by using an
unsorted hash-table traversal (don't do that).

At this point, bytecode generation is unlikely to be completely
deterministic, since I uncovered non-determinism mostly by iterating
attempts over the base collections. For now, the intent is not to
provide guarantees outside of the compilation of the base collections
--- but "more deterministic" is likely to be useful in the short run,
and we can improve further in the long run.
2015-08-07 15:48:39 -06:00
Vincent St-Amour
fd82eed31c Add tests for syntax/transformer. 2015-08-05 13:11:55 -05:00
Vincent St-Amour
b4b0837a77 Move syntax-source-* tests from unstable-test. 2015-08-05 13:11:55 -05:00
Vincent St-Amour
442db8d523 Move syntax/macro-testing tests from unstable-test. 2015-08-05 13:11:54 -05:00
Vincent St-Amour
21c44635f6 Move unstable/macro-testing to syntax/macro-testing. 2015-08-05 13:11:54 -05:00
Matthew Flatt
51747e86c5 fix raco pkg conflict checking
When a module is currently installed as bytecode, but without
corresponding source and without a "info.rkt" specification that
bytecode should be preserved without source, then `raco pkg` should
not count that module bytecode as a conflict (since `raco setup`
will remove it).
2015-07-30 14:12:05 -06:00
Matthew Flatt
3dc1dc80e3 add setup/collection-search 2015-07-30 14:12:04 -06:00
Matthew Flatt
087eeb60ec remove racket/package tests
Moved to the "compatibility-test" package.
2015-07-21 13:10:42 -06:00
Matthew Flatt
444518b344 racket/unit: fix problem with contracts
Part of the expansion to handle contracts confused internal and
external names of signature elements. The new macro expander is less
tolerant of the mistake.
2015-07-21 10:19:40 -06:00
Vincent St-Amour
0e6baea9f6 Move contents of unstable/function to racket/function.
Split implementation of racket/function to avoid circular dependencies.
2015-07-20 16:00:52 -05:00
Matthew Flatt
3d87d61039 fix expansion loop in a definition context
Add the current definition context's scope to any expression that is
produced by macro expansion before trying to expand again, in case the
expansion needs to refer to a definition introduced by a previous
expansion.

Previously, the scope was added before any expansion and after any
expansion, but that misses intermediate points.

The old expander had this bug, too (some of the new tests fail there),
but it showed up less often and was sometimes considered correct, for
various reasons.
2015-07-20 13:20:03 -06:00
Matthew Flatt
54cf4c7f16 racket/generics: fix generated <gen>/c
The revised implementation of `define-generics` for the new macro
expander wasn't right, because the macro attached to `<gen>/c` for a
given `<gen>` used a macro-introduced reference to the generic to
match up method names with the generic's methods.
2015-07-20 06:39:18 -06:00
Matthew Flatt
fc5e32e526 switch to set-of-scopes expander
The development history for set-of-scopes is preserved in a "scope"
branch in the main Racket repository, which is commit
 ae88c96f50
2015-07-16 14:20:00 -06:00
Matthew Flatt
138e16e80f fix clone-linked package update on evolving to a multi-package repo
When a package "p" is clone-linked and the repo for "p" changes to be
a multi-package repository (e.g., with "p-lib", "p-doc", and "p"), a
`raco update` would get confused. Unofrtunately, a plain `raco pkg
update p` can't work in that case, because the clone link would still
be a pathless repo URL; the repairs make `raco pkg update --lookup
--clone ..../p` work as is should.

Related: fix inference of package names in the early check for whether
a package is installed.
2015-06-29 17:33:27 -06:00
AlexKnauth
cb3f296678 support this-syntax in syntax-parse, syntax-parser, etc.
closes PR 14855
2015-06-22 15:40:44 -04:00
Sam Tobin-Hochstadt
fc6ead4ac2 Improve match compilation of ? and fix bugs.
- Coalesce repeated use of the same predicate.
- Fix scoring of Exact patterns, and scoring generally.
- Use `OrderedAnd` where needed.
- Guarantee that `and` patterns match in order.
- Thread bound variable information properly in GSeq compilation.
- Warn when variables are used non-linearly with `...`
  (making this behave properly was not backwards compatible).

Closes #952, which now runs in <1ms and make it a test case.

Also add margin note about `?` patterns and multiple calls.
2015-06-05 18:08:33 -04:00
Alexis King
391a672bf6 Fix the first order check on async-channel/c 2015-06-03 12:19:28 -05:00
Robby Findler
53f03d73f4 add more accurate timeouts 2015-05-27 09:35:05 -05:00
AlexKnauth
2b0ba444c0 and/c: use projections more on flat-contract arguments 2015-05-26 20:39:41 -05:00
Matthew Flatt
aaa289c7b6 tests and repairs for early checks
Also, avoid "early" checks when recurring, just in case.
2015-05-16 17:15:22 -06:00
Edward Lee
46030642fa bytes->jsexpr: toss exn:fail:contract? when given invalid UTF-8 2015-05-12 12:45:10 -06:00
Robby Findler
24b91852da "broke its contract" => "broke its own contract" 2015-05-12 06:45:52 -05:00
Robby Findler
7fb67ad644 improve error messages from contract system
closes PR 15057
2015-05-09 11:59:53 -05:00
Robby Findler
bd5723c51c add support for random generation and contract stronger to char-in 2015-05-08 16:55:27 -05:00
Alexis King
aa4c57bf9a Add a char-in flat contract 2015-05-08 16:36:33 -05:00
Eric Dobson
4e3a7c420a Make parallel-build send the whole filename to the worker.
Closes PR 15000.
2015-05-01 16:07:02 -06:00
Eric Dobson
06634b74d5 Make file-list-queue% use new error format.
Closes PR 15013.
2015-05-01 16:07:02 -06:00
Stephen Chang
dcf73f6bca compute generic method default error msg in define-generic-method
- fixes generic test failures due to computing this info
2015-04-30 16:45:35 -04:00
Stephen Chang
56cf724d12 improve generic method default error msg:
- report position of bad self arg
- report and label other args, including kw, optional, rest, if present

merge of github pull-request #821
2015-04-30 12:37:09 -04:00
Robby Findler
7e089f3d7f make sequence/c preserve streamness 2015-04-07 11:52:18 -05:00
Alexis King
30610babe3 Make sequence/c first-order check more specific
closes PR 14983
2015-03-05 07:36:38 -06:00
Asumu Takikawa
ab68a4dc38 Add option to ignore local names in opaque class/c 2015-03-04 11:54:56 -05:00
Asumu Takikawa
0fce958268 Reduce space usage for object/c like instanceof/c
Reuse the instanceof/c projection for object/c to get
the space saving higher-order wrapping behavior. Also
implement a stronger check for object/c.
2015-03-04 11:54:56 -05:00
Robby Findler
efee5c4581 move sequence/c into racket/sequence 2015-03-02 22:14:32 -06:00
Asumu Takikawa
f43096b123 Export an alternative object/c constructor
This functional constructor allows runtime construction
of object contracts in extension libraries.
2015-02-24 17:18:40 -05:00
Ryan Culpepper
80e4894597 fix mandatory-after-optional checking
Also fix tests for attribute change.
2015-02-22 21:51:49 -05:00
Leif Andersen
551704ed4a Added tests for function-header. 2015-02-22 21:51:48 -05:00
Matthew Flatt
d69af6af30 add property support to chaperone-generic, etc. 2015-02-19 09:56:50 -07:00
Matthew Flatt
e913a13614 contract test suite: fix exit status on failure 2015-02-19 08:35:25 -07:00
Matthew Flatt
b37eab0621 raco pkg update: add --skip-uninstalled flag 2015-02-17 15:43:15 -07:00
Matthew Flatt
8aa16faa6d raco pkg {install,update}: add --pull option 2015-02-17 13:05:20 -07:00
Alexis King
714b7684fe Add stream/c contract for adding contracts on stream contents 2015-02-13 20:14:03 -06:00
Matthew Flatt
fa00d01b6f fix SRFI-14 tests for Unicode 7.0 2015-02-12 10:14:52 -07:00
Sam Tobin-Hochstadt
d3b018b7cb Re-do projections for struct fields in chaperone handlers.
If the selector is itself a chaperone, then doing the access once
will mean that the saved result is not `chaperone-of?` the result
of doing the access a second time, at least in some cases (such as
when the accessor uses vector contracts).

Thanks to Neil T for initial spotting, and to Robby for actually
finding the bug and suggesting the fix.
2015-02-12 09:50:57 -05:00
Matthew Flatt
be8f70fffb racket/unit: static checking of initialization dependencies
When using `compound-unit/infer` and similar, check the `link` clause
against each unit's static information for initialization dependencies.
Also, propagate dependency information in `define-compount-unit`.
2015-02-06 09:22:01 +01:00
Matthew Flatt
53fb33144e add unit-static-init-dependencies 2015-02-06 08:55:58 +01:00
Robby Findler
ffd77693ee fix a bug in random contract generation that could cause
nested structure to have contract-random-generate-fail stuck
into it

and clean up some confusing structure in the random generator
2015-02-02 22:15:05 -06:00
Ryan Culpepper
3029867e9f fix reified-syntax-class-curry (missing role argument) 2015-01-29 20:37:50 -05:00
Matthew Flatt
b7e86ef6c9 syntax/modcollapse: fix to new collapse-module-path-index variant 2015-01-28 16:21:43 -07:00
Matthew Flatt
7bee7bbadc collapse-module-path-index: support relative module path flattening
Unlike `collapse-module-path`, it makes sense for
`collapse-module-path-index` to convert a relative module path index
to a plain module path. In other words, `collapse-module-path-index`
can convert a module path index to a module path.
2015-01-27 08:40:10 -07:00
Robby Findler
d74b0a6bf4 between/c (unlike integer-in) can actually just disappear
when the arguments are = to each other
2015-01-25 19:23:38 -06:00
Robby Findler
6551cc00d6 make (integer-in x x) produce (and/c x exact?)
fix bug in 9f59d57ee
2015-01-25 15:31:04 -06:00
Robby Findler
87a231b792 fix a bug in the way that an old style projection
was created when a val-first-projection was needed
2015-01-25 15:08:12 -06:00
Robby Findler
eb7c6653f3 make the contract random generator sometimes
generate inexact/exact variants of numbers
when the exact/inexact one was originally
present in the contract
2015-01-23 22:40:54 -06:00
Robby Findler
cc642c3382 change +nan.0 and +nan.f, when viewed as contracts, to
be equal?-based contracts instead of = based contracts.

Before this change, the contract (or/c 1 2 +nan.0) was the same
contract as (or/c 1 2), because +nan.0 was the same contract as
the predicate (lambda (x) (= x +nan.0)), which is the same as
(lambda (x) #f). Now, +nan.0 and +nan.f are the only numbers
that are treated as equal?-based contracts, but this means that
(or/c 1 2 +nan.0) actually accepts +nan.0.
2015-01-23 21:57:51 -06:00
Robby Findler
cb68141ff6 do tests for f2bacdc6f properly 2015-01-21 10:05:09 -06:00
Robby Findler
7003ca6eb3 add test case for previous commit 2015-01-21 08:39:47 -06:00
Alexis King
3ab1ad8c93 Implement chaperones, impersonators, and contracts for async-channels 2015-01-19 19:58:51 -06:00
Robby Findler
b6000de2f7 fix ->i dependency check 2015-01-19 10:23:59 -06:00
Matthew Flatt
d044fa0beb fix test
Previously merged to `set-file` utilities, but incorrectly.
2015-01-18 06:46:09 -07:00
Matthew Flatt
02b745d19a fix a test
Using `racket` now creates a will executor via `ffi/unsafe`, which
interferes with the test's expected count, while using `racket/base`
doesn't.
2015-01-18 06:24:58 -07:00
Sam Tobin-Hochstadt
820638f41d Allow ";" in contract error messages. 2015-01-07 15:10:13 -05:00
Robby Findler
2b07cc34f7 fix context for instanceof/c
also improve test suite to look for ellipses
(but not when using opt/c)
2015-01-04 15:10:58 -06:00
Robby Findler
2cd8e620d4 improve error message in certain tricky case when keywords are involved 2015-01-04 15:00:22 -06:00
Robby Findler
95dcee18c7 add a cons/dc generator
Not really sure about this one. The API kind of
forces my hand here and the way this works limits
the non-dep side of the dependent pair to always
be drawn from a fixed set. Not sure if that matters
in practice or not.
2015-01-03 19:25:25 -06:00
Robby Findler
e25575b16a improve contract random generation for null? and recursive-contract 2015-01-03 17:16:52 -06:00
Robby Findler
44073e31b4 add missing neg-party
closes PR 14915
2015-01-01 09:56:00 -06:00
Robby Findler
94a450999a add stronger and random generation for integer-in 2014-12-25 22:07:05 -06:00
Robby Findler
3372ba3547 fix test after improvement in d5bb6030 2014-12-23 17:57:08 -06:00
Robby Findler
94d80f0171 add #:pre/desc and #:post/desc to ->i 2014-12-22 22:31:17 -06:00
Robby Findler
9d58a067e3 add #:pre/desc to ->* 2014-12-22 14:53:25 -06:00
Robby Findler
aabe9d7bad added dynamic->* 2014-12-20 22:48:26 -06:00
Matthew Flatt
7b8707e576 raco pkg: adjust staging of Git clone installs and updates
If the clone directory's checkout includes a target commit, then
use the clone directory directly for staging (i.e., for checking
dependencies and collisions). That way, changes made locally are
used for metadata checks.
2014-12-20 12:25:58 -07:00
Robby Findler
a8ba4eca35 adjust hash/c so that it always copies immutable hashes
before this commit it would copy them only when the weren't
already impersonated/chaperoned, leading to different
contract checking that can be confusing in that case

it did this because the chaperone-of? check wasn't general
enough to cope with copying always, but since commit
b05d07ad10 it now is
2014-12-19 10:58:53 -06:00
Sam Tobin-Hochstadt
74786ed8d0 Finish fixing dependencies of "racket-test-core".
This required moving some tests to "racket-test", and putting them
in modules that use `rackunit`. Also, some uses of rackunit were
removed and switched to more primitive systems. Some improvements
here, particularly in "foreign-test.rktl", would still be good,
but everything passes at the moment.
2014-12-19 11:35:39 -05:00
Robby Findler
9e9dcf2f50 added hash/dc 2014-12-18 22:31:20 -06:00
Sam Tobin-Hochstadt
a59ad8b929 Move tests for SRFIs to "racket-test". 2014-12-18 15:23:44 -05:00
Matthew Flatt
edf562be5e raco pkg update: fix conflict checking vs. installed being updated 2014-12-17 07:51:04 -07:00
Matthew Flatt
9b9546c0bf raco pkg update: adjust --update-deps handling, again
Still trying to get the dependencies-have-changed-for-a-link case
right without breaking other cases.
2014-12-16 13:37:48 -07:00
Matthew Flatt
e22242df56 raco pkg: default --deps to search-ask in interactive mode
The implemented default for `raco pkg update` actually depended on the
way that a package is installed, and it's difficult to reason about or
to implement the default that is suggested by the documentation.
Meanwhile, `search-ask` seems the most sensible always in interactive
mode (now that we have a way to specify batch mode).
2014-12-15 09:13:24 -07:00
Sam Tobin-Hochstadt
448213e9dc Split the core racket tests into the "racket-test-core" pkg.
This supports running the core tests on systems which can't run
or don't want to install all the dependencies of the "racket-test"
package.

The "racket-test-core" pkg stil depends on "sandbox-lib" because
the sandbox tests live with the core tests. Hopefully I'll be able
to fix that eventually.
2014-12-15 01:59:56 -05:00
Gustavo Massaccesi
58ef3fdaa8 Mark immutable? as omitable 2014-12-14 08:46:14 -07:00
Matthew Flatt
1ef244f4b7 raco pkg: fix tests for change raco pkg show output 2014-12-14 08:46:13 -07:00
Robby Findler
b1a22bfd29 fix buggy test case 2014-12-13 14:57:01 -06:00
Robby Findler
c3e92093f6 improve the way '() is treated as a constant
so it fits in with stronger and whatnot and
the other list contracts
2014-12-13 14:55:13 -06:00
Robby Findler
6f09e7c619 add cons/dc 2014-12-12 23:41:09 -06:00
Matthew Flatt
d780930056 fix syntax-disarm with a #f second argument 2014-12-12 07:59:16 -07:00
Sam Tobin-Hochstadt
be8ac0c5d0 Create the "racket-extra-test" to reduce dependencies.
It initially contains the two tests that use redex-driven random
testing.
2014-12-11 18:15:27 -05:00
Matthew Flatt
195a46a23e fix problem with truncated value printing and stack overflow
A value-printing truncation discovered after a stack-overflow handle
and return could go badly, because the truncation escape wasn't
reset correctly after overflow handling (in contrast to truncation
discovered during the overflow handling, which was handled correctly).

Closes PR 14870
2014-12-09 09:22:12 -07:00
Asumu Takikawa
1e5ec02262 Add test props for racket/generic tests 2014-12-08 22:04:50 -05:00
Matthew Flatt
3eac913a78 fix thread-based place implementation
There are some limitations to the places implementation when
`(place-enabled?)` returns #f, but mostly it can work.
2014-12-08 16:45:54 -07:00
Matthew Flatt
06c82877db raco pkg: add trash directory for removed/updated package installations
Packages that are installed as other than a link are not meant to be
edited, but work can get lost if a package is edited and then removed
or updated. Avoid that work loss by moving removed or updated packages
to a trash folder.

By default, the trash folder holds up to 512 packages for up to 48
hours. To disable the trash folder (for a given scope), use

 raco pkg config --set max-trash-packages 0

(I expect that some variant of Greenspun's rule predicted the eventual
inclusion of "backup" management in the package system.)
2014-12-08 16:44:31 -07:00
Matthew Flatt
2d4f3e2ac9 remove the "racket-pkgs" directory layer
The layer is now redundant, since everything left in "pkgs" is in the
"racket-pkgs" category.
2014-12-08 05:22:59 -07:00