Commit Graph

2641 Commits

Author SHA1 Message Date
Stevie Strickland
b416b7e5bb Now migrate vector/c and vector-immutable/c.
Also add old-style vector/c to mzlib/contract.
2010-09-16 15:04:41 -04:00
Stevie Strickland
3028f2d142 Convert vectorof/vector-immutableof to the new regime.
Also add old-style vectorof to mzlib/contract.
2010-09-16 15:04:41 -04:00
Blake Johnson
c88eb704c7 removing indirects from zo handling 2010-09-16 12:45:37 -06:00
Jay McCarthy
4f49658835 Fixing problem reported by Robby.
Contracts intefere with safety marks.
2010-09-16 12:45:37 -06:00
Jay McCarthy
ab5a9ff1e8 Removing extra run-tests 2010-09-16 12:45:37 -06:00
Jay McCarthy
1f4c525245 Fixing pr11214 2010-09-16 12:45:37 -06:00
Jay McCarthy
4a89ccea5d Fixing an annoyance with eli-tester when the error string contains ~ 2010-09-16 12:45:36 -06:00
Vincent St-Amour
7e2094f2d7 Added a test for optional let annotations. 2010-09-16 13:24:10 -04:00
Vincent St-Amour
e03e53b1cb Fix some optimizer test logs to reflect racket changes. 2010-09-16 10:48:28 -04:00
Vincent St-Amour
9f87b5a7e6 Made some type annotations optional in the for: macros. 2010-09-15 20:21:51 -04:00
Vincent St-Amour
8b60085a17 Removed useless requires. 2010-09-15 20:21:51 -04:00
Vincent St-Amour
a10d145f25 Added annotated versions of the for macros that generate vectors.
They are purposedly left out of the documentation since the typchecker
can't currently handle their expansion.
2010-09-15 20:21:50 -04:00
Vincent St-Amour
65c502f9d7 Added a test to make sure derived lists accessors don't get optimized then they shouldn't. 2010-09-15 20:21:50 -04:00
Stevie Strickland
e3678a937e Change box-immutable/c to use box/c with #:immutable #t. 2010-09-15 17:05:34 -04:00
Stevie Strickland
99e5d6fd6c Add appropriate syntax properties to uses of box/c. 2010-09-15 16:57:17 -04:00
Stevie Strickland
994ad6d10f Now change box/c to use proxies or chaperones appropriately.
Create a mzlib/contract compatible version of the old box/c and use that
for mzlib/contract.  Change the docs so that the docs for mzlib/contract
contain the right information.

Fix the typed-scheme implementation to only force flat box (or hash)
contracts when it already is required to be flat.  Otherwise, allow
non-flat contracts for the element contract (or domain/range contracts).
2010-09-15 16:57:17 -04:00
Stevie Strickland
4a48da022b Adding syntax properties for contract obligations to uses of hash/c. 2010-09-15 15:01:27 -04:00
Stevie Strickland
56b83e4a96 Add chaperone-based hash/c contracts.
* Domain contracts must be either flat or chaperone contracts.
 * When the domain is a chaperone contract, hash/c must check
   that the hash is equal?-based.
2010-09-15 13:57:50 -04:00
Stevie Strickland
d2b3ee8892 Code and test fixes for new chaperone-based hash/c contracts. 2010-09-15 13:37:37 -04:00
Robby Findler
3121ab0fce I agree with Stevie that 1 is the right answer here. 2010-09-15 08:23:34 -05:00
Stevie Strickland
ec0711bf49 Add chaperone contract-related properties.
* Flat contracts are chaperone contracts, and chaperone contracts
    are (proxy) contracts.
  * Check in chaperone contracts that a chaperone (or chaperone-friendly
    value) is indeed returned.
2010-09-14 18:29:39 -04:00
Stevie Strickland
56a5a2627e Enforce that flat contracts return the original value.
Also fix up tail call contract handling, which was affected by this change.
2010-09-14 18:28:46 -04:00
Ryan Culpepper
ae645a18c1 added dict-*-contract to racket/dict
added experimental ordered-dict generics (not public yet, no docs)
2010-09-14 12:31:26 -06:00
Ryan Culpepper
58aa6873fe added data/heap tests
doc fixes
2010-09-14 12:31:26 -06:00
Matthew Flatt
b601aa1ca3 fix pretty-print graph bug 2010-09-14 08:05:35 -06:00
Ryan Culpepper
999c33827c tests for splay-tree and skip-list 2010-09-13 13:21:04 -06:00
Jay McCarthy
43d527818e Fixing pr11196 and fixing bug in hash-eqv serialization 2010-09-13 10:44:21 -06:00
Robby Findler
1dc555e0af fixes _ in contract-names for ->i
closes PR 11185
2010-09-11 07:48:50 -05:00
Robby Findler
93ecaa0535 fixed object-contract name tests 2010-09-11 07:36:21 -05:00
Robby Findler
d8a495de94 fixed first half of PR 11185 2010-09-11 07:12:17 -05:00
Sam Tobin-Hochstadt
979561354d Fix internal error when single value expected. 2010-09-10 18:29:34 -04:00
Blake Johnson
1cb11ce6cc re-enabling tests 2010-09-10 14:46:04 -06:00
Blake Johnson
407a36c9d2 Changing memory limit 2010-09-10 14:46:04 -06:00
Blake Johnson
e94823b82c Removing pieces of zo-test-worker we dont care about 2010-09-10 14:46:03 -06:00
Blake Johnson
0d136ba4c7 never sharing hashes and trace debugging 2010-09-10 14:46:03 -06:00
Blake Johnson
32a9e60abe traversing inside closures and using a seen set for lists 2010-09-10 14:46:03 -06:00
Blake Johnson
2dfaab00f4 fixing closure problem 2010-09-10 14:46:03 -06:00
Blake Johnson
ecc9ceb842 zo-marshal fixes and switching back to prefabs 2010-09-10 14:46:03 -06:00
Blake Johnson
54f2d34a2e encoding wraps and fixes for zo-marshal sharing 2010-09-10 14:46:02 -06:00
Blake Johnson
9599304ca9 zo-marshal fixes and read.c fix for hash tables in symbol table 2010-09-10 14:46:02 -06:00
Blake Johnson
f27fe3d5c9 zo-parse debugging and read in zo-exs 2010-09-10 14:46:01 -06:00
Matthew Flatt
ff9b535dc6 fix hash proxying in the case that proxied key has no value 2010-09-10 12:46:58 -06:00
Robby Findler
44fe632da5 fixed two bugs in ->i:
- when optional arguments didn't also have rest args,
    it generated the wrong wrapper function
  - the object-contract interaction was broken;
    it was not adding the this argument in
Also removed the hack added earlier this eve.
closes PR 11180
2010-09-09 21:42:41 -05:00
Vincent St-Amour
0166ece180 Extended pair optimization to the rest of the standard derived pair accessors. 2010-09-09 18:54:34 -04:00
Vincent St-Amour
7450821068 Refactoring. 2010-09-09 18:54:34 -04:00
Vincent St-Amour
024f873947 Extended pair optimizations to some derived pair accessors. 2010-09-09 18:54:33 -04:00
Vincent St-Amour
7f546434ed Included expected optimization logs in the test files. 2010-09-09 18:54:33 -04:00
Will M. Farr
81b1ed6e8b New updates to for/vector, for*/vector, for/flvector and for*/flvector.
Now use for/fold to thread the index through the iteration form, so
that all variants can take advantage of the optional #:length
argument.  Previously, only the for/vector and for/flvector used the

The behavior when #:length does not match the number of iterations has
changed: iteration stops when either the vector is full, or the
requested number of iterations has been achieved, whichever comes
first.  If #:length is larger than the number of iterations performed,
then the remaining slots in the vector are filled with the default
argument of (make-vector ...), which is currently 0.
2010-09-09 16:23:04 -04:00
Will M. Farr
3d016150a3 Updates to for/vector, for/flvector forms and documentation.
- Now the faster forms take a #:length keyword to designate the length
  of the vector to pre-allocate.

- The for/[fl]vector forms take multiple body expressions and set the
  vector component to the value of the last one.

- When given a #:length argument, the for/vector and for/flvector
  forms check that the iteration is not exceeding the given length,
  raising exn:fail if it does.

- Test cases for the multiple body expressions and the exception for
  excessive iterations have been added.

- Doc modifications to bring the docs in line with the new forms.

- Doc modifications to note that the #:length versions of the form
*may* all the computation to be performed more efficiently, and
stating that it "is an error" if the given length-expr does not
produce a valid length for a vector that matches the number of
iterations for the loop.

- Note that no test is made for a number of loop iterations that is
  smaller than the given vector length.  Also, the for*/[fl]vector
  forms do not optimize when given a #:length argument.  These are
  areas for future improvement.
2010-09-09 16:22:53 -04:00
Sam Tobin-Hochstadt
00a8a85f9d Fix typechecker tests for new environment setup. 2010-09-09 16:08:04 -04:00