Commit Graph

17753 Commits

Author SHA1 Message Date
Jay McCarthy
db87add6b7 Adding hash-domain and hash-range to racket/base 2010-08-11 16:37:46 -06:00
Matthew Flatt
8dc38e9d84 fix boxing of unused but formerly mutated local binding
- an old bug exposed by a new optimization
2010-08-11 14:18:43 -06:00
Jay McCarthy
928dfd6fa2 FTP tests without a network connection 2010-08-11 13:49:10 -06:00
Matthew Flatt
e9269f1c4a optimize (let ([x (let~ ([y M]) N)]) P) to (let~ ([y M]) (let ([x N]) P))
which helps expose unboxing opportunities with multiple-value binding
2010-08-11 11:09:04 -06:00
Matthew Flatt
a6ec6a7e30 change bytecode optimizer's representation of `let'
- represent RHSes as before allocating stack positions
   for bindings, instead of after, which makes certain
   transformations simpler; this does not effect the
   final bytecode form that's is saved in a ".zo"
2010-08-11 10:29:50 -06:00
Matthew Flatt
2f9431552e fix typo 2010-08-11 10:29:49 -06:00
Robby Findler
367779fd27 added contract-struct (like define-contract-struct, but with a
maker whose name does not begin with 'make-')
2010-08-10 22:20:33 -05:00
Robby Findler
ae1304789d oops 2010-08-10 19:57:22 -05:00
Robby Findler
1a3f2acf01 fixed preserve-stacktrace-information string constant; fix from Sergey Semerikov 2010-08-10 19:31:11 -05:00
Robby Findler
26187fed8f fixed a bug in the mzlib contracts test suite 2010-08-10 19:27:17 -05:00
Robby Findler
4341ce3c20 fixed props for syncheck 2010-08-10 16:52:27 -05:00
Robby Findler
58b0d8e93c added properties so that the check syntax obligation information works with ->i 2010-08-10 16:52:27 -05:00
Robby Findler
5fb1c730ba improved error message in the case where ->i is used as an identifier 2010-08-10 16:52:26 -05:00
Robby Findler
d15fc5c102 added naming to ->i contracts 2010-08-10 16:52:26 -05:00
Robby Findler
d7503195df fixed a bug where and/c (when given ho contracts) would check them in the wrong order 2010-08-10 16:52:26 -05:00
Sam Tobin-Hochstadt
02d9418f9a document match* 2010-08-10 15:56:15 -05:00
Matthew Flatt
6c8a914c80 support for speculatively atomic calls in ffi/unsafe/try-atomic 2010-08-07 20:49:23 -05:00
Matthew Flatt
8df33b629e fix default #:keep argument of _cprocedure 2010-08-07 20:40:42 -05:00
Matthew Flatt
4d1e97ec8d change start-atomic and end-atomic to disable breaks 2010-08-07 20:40:32 -05:00
Matthew Flatt
2696f3044c distinguish reasons to wait on end of atomic mode 2010-08-07 20:40:25 -05:00
Matthew Flatt
01558aec5a add way to constrain poll/select timeout from low-level evt 2010-08-07 19:30:46 -06:00
Matthew Flatt
f21864ee22 adjust atomic timeout handling to track atomic nesting 2010-08-07 19:30:40 -06:00
Matthew Flatt
804ff115e7 fix `raco setup' reported name for Windows 2010-08-07 19:19:08 -06:00
Robby Findler
561d33fddd improved the name printing for between contracts 2010-08-07 14:35:08 -05:00
Robby Findler
98fb0e5b3a moved a bunch of tests into the official test suite. 2010-08-07 14:35:08 -05:00
Robby Findler
9d98533e23 cleaned up a few little things here and there to pass the last of the existing tests 2010-08-07 14:35:08 -05:00
Robby Findler
b5fad95e58 make the optimizer give up more agressively when it starts out with a completely unknown thing 2010-08-07 14:35:08 -05:00
Robby Findler
306ae096eb Fixed a bug in the eres handing (contracts where the dependent range variables are underscores) 2010-08-07 14:35:07 -05:00
Robby Findler
73177ceddc moving machines 2010-08-07 14:35:07 -05:00
Robby Findler
2347568a6c minor bug fixes 2010-08-07 14:35:07 -05:00
Robby Findler
9bc1b63ed4 added support for _ in range contracts
fixed a bug in blame assignment
2010-08-07 14:35:07 -05:00
Robby Findler
da9f5bd61a fixed a few bugs in the ->i implementation and the test suite. 2010-08-07 14:35:07 -05:00
Robby Findler
10b6e58dd0 added support for rest arguments 2010-08-07 14:35:07 -05:00
Robby Findler
c31de06cc0 added result contract checking (after refactoring argument checking to make that more straightforward), prepared for #:post condition checking 2010-08-07 14:35:07 -05:00
Robby Findler
88aafb52eb clarified the order of evaluation for contract expressions in ->i 2010-08-07 14:35:07 -05:00
Robby Findler
67f2a44fec changed the parsed structs to better exploit similarity between arguments and results 2010-08-07 14:35:07 -05:00
Robby Findler
6d9066eb22 got #:pre conditions working 2010-08-07 14:35:06 -05:00
Robby Findler
5922ceda74 improved parsing of #:pre and #:post for ->i (fixed bugs and added more checks to the syntax) 2010-08-07 14:35:06 -05:00
Robby Findler
c1b558e1a3 adjusted the syntax of ->i so that #:post and #:pre get a list of variables now 2010-08-07 14:35:06 -05:00
Robby Findler
3b431c6ff2 ->i now evaluates the arguments in the proper order 2010-08-07 14:35:06 -05:00
Robby Findler
d2894e7a8e added in a use of Shu-yu's opt/c to see if it helps (which it does for complex contracts) 2010-08-07 14:35:06 -05:00
Robby Findler
40cde743a9 Got to the point where I can run some timings to see how well ->i does.
Here are the results, each contract put on the same function, namely:
(λ (x y) (+ x y))

1: (-> number? (<=/c 0) any)
2: (->i ([x number?] [y (<=/c 0)]) any)
3: (->i ([x number?] [y (x) (<=/c x)]) any)
4: (->d ([x number?] [y (<=/c 0)]) any)
5: (->d ([x number?] [y (<=/c x)]) any)

Taking f1 as the baseline, these are the relative times for calling
that thing over and over in a loop, supplying -1 as both of the
arguments:

f2: 1.01x
f3: 4.15x
f4: 21.1x
f5: 21.5x
2010-08-07 14:35:06 -05:00
Robby Findler
599fe85a16 Got the first example of indy blame working 2010-08-07 14:35:06 -05:00
Robby Findler
9fcc157b0d this checkpoint causes racket to crash, with a segfault. run racket racket/contract/scratch.rkt to
see the error.
2010-08-07 14:35:06 -05:00
Robby Findler
4c240f2307 moving machines 2010-08-07 14:35:06 -05:00
Robby Findler
457248e9cc moving to a different machine (some progress on optional & keyword args) 2010-08-07 14:35:05 -05:00
Robby Findler
d14796c276 got first example working 2010-08-07 14:35:05 -05:00
Robby Findler
5217744740 rename 2010-08-07 14:35:05 -05:00
Robby Findler
efd72af3d6 switching machines 2010-08-07 14:35:05 -05:00
Robby Findler
d75536161c fixed bug in dependency checking for #:rest variables (and removed printfs) 2010-08-07 14:35:05 -05:00