Commit Graph

34548 Commits

Author SHA1 Message Date
Jay McCarthy
0c68b45488 Move backup, again 2014-07-17 18:05:52 -04:00
Jay McCarthy
b61c54cb18 move archives 2014-07-17 18:05:52 -04:00
Jay McCarthy
f9b1449f95 Whoops, don't want them all to be gone 2014-07-17 18:05:52 -04:00
Jay McCarthy
a4f578dcd6 Don't bother uploading unused, large, files to S3 2014-07-17 18:05:51 -04:00
Matthew Flatt
7a5746d9a7 future: fix completion of a future that ends with a delayed tail call
The completion needs to be set up as an lightweight contination so
that it can be captured.

Merge to v6.1
2014-07-17 17:02:02 +01:00
Matthew Flatt
4541a75e76 future: fix slow path for inlined struct getter
Merge to v6.1
2014-07-17 17:02:01 +01:00
Robby Findler
111d419631 fix bug introduced in c7dd72ab4b 2014-07-17 06:09:21 -05:00
Matthew Flatt
76aefcb508 fix sleep timeout in scheduler
In the case that the current time equals exactly the timeout of
a `sync/timeout`, the Racket process could get stuck (using no CPU)
instead of continuing as it should.

How did we not find this before? Why am I suddenly able to replicate
the problem (i.e., hitting exactly the target timeout in the secheduler
at the millisecond granularity)?

Merge to v6.1
2014-07-17 07:53:55 +01:00
Robby Findler
d4b97dcca3 add a contract to make-card (to protect drracket, really) 2014-07-17 00:48:55 -05:00
Asumu Takikawa
a365f75ebb Add TR tests for replace-evt 2014-07-16 14:46:53 -04:00
Asumu Takikawa
36931395f9 Add several missing types 2014-07-16 14:46:39 -04:00
Matthew Flatt
c681c6e8e5 raco pkg install: reject overlapping package directories
For example, if you accidentally type `raco pkg install` in your
"racket" directory, you'd rather have an error rather than competing
module paths that reach all libraries.
2014-07-16 17:20:17 +01:00
Robby Findler
5a6731a017 fix mistake
(that was introduced for debugging purposes)
2014-07-16 09:54:16 -05:00
Robby Findler
d6f9ebc9a4 add support for the ellipses in the error messages
according to the promise in the "Error Message Conventions"
section in the Reference
2014-07-16 09:52:16 -05:00
Robby Findler
07dde04ef2 I'm also responsible for the gui pkgs 2014-07-16 09:52:16 -05:00
Robby Findler
fc49204956 added insert/io 2014-07-16 09:52:16 -05:00
Robby Findler
4b92117a9f add on-goodbye-event
This change requires a coordinated change to the snip-lib pkg and to
the gui-lib package. The docs are in the gui-doc pkg and yet point to
the snip-pkg as the containing pkg, so I updated the version number
for snip-lib and left the version number for gui-lib alone
2014-07-16 09:52:16 -05:00
Matthew Flatt
66131b3898 pkg test harness: fix race condition in I/O handling 2014-07-16 13:31:52 +01:00
Matthew Flatt
bada20a57f fix documented contract for guard-evt et al.
The `(or/c evt? any/c)` result contract is, of course, equivalent to
`any/c`, but the verbose variant hopefully helps explain that `evt?`
is really expected.

Yes, it would be better if the result contract actually was `evt?`
(and I implemented `replace-evt` that way before re-reading the
`guard-evt` docs).
2014-07-16 13:17:49 +01:00
Matthew Flatt
d7f2c869b6 openssl: add supported-{client,server}-protocols
Use the new functions to avoid running a test that requires 'tls12
to succeed.
2014-07-16 12:53:18 +01:00
Matthew Flatt
70c2f72166 make non-determinstic test less likely to fail
A test tries to fill a TCP output stream so that it's no longer ready
for writing. There's no real guarantee that it's possible to setup up
and detect that situation, and a failure or two is not too suspicious,
but it really should be possible to fill the buffer. Trying 5 times
should make failure of the test especially unlikely in practice.
2014-07-16 11:57:37 +01:00
Matthew Flatt
83a203c461 fix a test that relied on the current input port as not-ready 2014-07-16 11:37:34 +01:00
Matthew Flatt
68c43a3db9 pkg tests: fix tests that accidentally install packages in place 2014-07-16 11:22:31 +01:00
Matthew Flatt
9e36c0eb7f pkg test: fix test-failure reporting
The workaround for the way that `test-begin` fails to compose
would drop a lot of information about the test failure. Allow
RackUnit's default printer to show that information but then
also abort.

(My more concrete goal is to understand why a particular test
sometimes fails on DrDr.)
2014-07-16 11:10:25 +01:00
Matthew Flatt
46469d3903 meta/pkg-build: missed some ".txt"s 2014-07-16 09:15:00 +01:00
Matthew Flatt
c38ecb7c5a meta/pkg-build: add ".txt" extension to log files 2014-07-16 09:06:50 +01:00
Matthew Flatt
0bb1bab059 file/tar: don't try to read link permissions or timestamp
Links don't (normally) have those properties, and attempting to
read them makes a link fail when its target does not exist.
2014-07-16 06:37:58 +01:00
Matthew Flatt
dac09d8faf meta/pkg-build: work around network start-up glitches 2014-07-16 06:37:58 +01:00
Matthew Flatt
9cc15cb49d add multiple-values test for replace-evt 2014-07-16 06:37:58 +01:00
Robby Findler
27ebbec5f2 fix keyword arguments mismatch in traces and traces/ps
closes PR 14640
2014-07-15 18:38:35 -05:00
Asumu Takikawa
7d9f8d5eb3 Add a type for replace-evt 2014-07-15 14:14:44 -04:00
Matthew Flatt
bc832a680b pkg/lib: make pkg-directory->additional-installs recognize root docs
Merge to v6.1
2014-07-15 15:34:07 +01:00
Matthew Flatt
bc69a9b05c Add replace-evt
As suggested by Jan Dvořák.

The event created by `replace-evt` is a kind of event-gated
version of `guard-evt`. In particular,

 (guard-evt thunk)

could be expressed as

 (replace-evt always-evt (lambda (_) (thunk)))

Use `replace-evt` as a shortcut for the case when you want to
synchronize on either A or C, but you need to wait for B to get C.
You could wait on A+B and then, if B is selected, wait on A+C;
wrapping B with `replace-evt` to generate C is a kind of shortcut that
is eaiser to write and avoids tear-down and re-setup of A.

The `replace-evt` constructor is more than a shortcut in the sense
that it builds the pattern A+B->A+C into `sync`, which enables
abstractions that need a B->C transition. So, `replace-evt` adds
expressiveness, but (perhap reassuringly) it does not add any new
rendezvous capability.

Naturally, the procedure given to `replace-evt` can produce
another `replace-evt`, and the event argument to
`replace-evt` could also be a `replace-evt`.
2014-07-15 15:22:11 +01:00
Robby Findler
9028e72813 make the code in the contract have a nicer name.
Thanks to Matthias
2014-07-15 08:57:11 -05:00
Robby Findler
6d2dfbff9e fix a bug uncovered by 1b3fd890ad
Merge to 6.1, please
2014-07-15 07:55:07 -05:00
Robby Findler
34b4472d97 spell check pict docs
Merge to 6.1, please
2014-07-15 06:05:17 -05:00
Robby Findler
ec0ccbe35e change 'jump to next misspelled word' shortcut to avoid
conflicting with the close window shortcut (which is only
<menukey>-shift-w when there are multiple tabs open)

Merge to 6.1, please
2014-07-15 06:05:16 -05:00
Robby Findler
1b3fd890ad adjust 'dc' so that the ascent and descent arguments are independently
optional and add a contract that calls the 'draw' argument to make
sure it restores the dc state.

The call to the 'draw' function happens right when 'dc' is called and
it tests the property that 'draw' doesn't abuse the state only that
one time and only with x=0 and y=0. This seems likely to catch common
errors, however, since the mismanagement of the state is unlikely to
be related to the values of 'x' and 'y' and also unlikely to depend on
the timing of the the call (i.e., if it happens at all, it probably
always happens).

Another way we could enforce this contract would be to wrap the `draw'
argument so that each time it is called, we grab the state of the dc
and compare it to afterwards.  The current strategy is less expensive
and also catches errors earlier (in the case of slidehow specifically,
we'll get the errors during the startup of the presentation instead of
when we try to render a slide (in the middle of the presentation,
typically)).

This change slows down calls to 'dc'. For example, this program:

 #lang racket/gui
(require pict)

(define brush (send the-brush-list find-or-create-brush "black" 'solid))
(define (circ w h)
  (dc (λ (dc dx dy)
        (define orig-pen (send dc get-pen))
        (define orig-brush (send dc get-brush))
        (send dc set-pen "black" 1 'transparent)
        (send dc set-brush brush)
        (send dc draw-ellipse dx dy w h)
        (send dc set-pen orig-pen)
        (send dc set-brush orig-brush))
      w h))

(void
 (time
  (for/fold ([b (blank)]) ([i (in-range 10000)])
    (vc-append (circ (random 1000)
                     (random 1000))
               b))))

goes from
  cpu time: 16 real time: 17 gc time: 0
to
  cpu time: 2166 real time: 2172 gc time: 224
on my machine.

Still, that cost, when measured in a per-call-to-dc way is
only .21 msecs, which seems reasonable given the pain of
tracking down the kinds of bugs that this contract
helps detect.
2014-07-15 06:04:31 -05:00
Matthew Flatt
add04001cd pkg/lib: fix pkg-directory->additional-installs
Merge to v6.1 (with a70b3173b2)
2014-07-15 10:39:53 +01:00
Matthew Flatt
a3af35754d prop:evt, prop:{input,output}-port and evt chaperones: fix up scheduling
Although it doesn't seem to be possible currently, avoid the case
that a property-based access or chaperone is called in a scheduler
context.
2014-07-15 09:12:14 +01:00
Matthew Flatt
fed14e1ce1 prop:evt: support chaperone when extracting field
Thanks to Sam for noticing this problem.
2014-07-15 08:50:13 +01:00
Matthew Flatt
a027e1445f chaperone-evt: don't drop other chaperones 2014-07-15 07:58:15 +01:00
Matthew Flatt
a70b3173b2 pkg/lib: make pkg-directory->additional-installs use 'compile-omit-paths
Otherwise, "test/pkgs" claims to provide various documents and executables
that are in test packages.

Merge to v6.1
2014-07-15 07:22:22 +01:00
Matthew Flatt
51a087c768 fix typo 2014-07-15 07:16:47 +01:00
Stephen Chang
3ef3c0b4cb use test submodule in lazy racket tests 2014-07-14 13:43:27 -04:00
Matthew Flatt
62dd8ea647 meta/pkg-push: allow separate src and dest catalog URLs
Also, report failures as errors, so that the result code is
helpful.
2014-07-14 16:47:53 +01:00
Matthew Flatt
2fcb65ec82 meta/pkg-build: fix break-enabled status in VM-running thread 2014-07-14 15:48:07 +01:00
Matthew Flatt
56c3dbf676 meta/pkg-build: add #:extra-packages option 2014-07-14 15:44:16 +01:00
Matthew Flatt
8d18d5eceb meta/pkg-build: change summary to include all docs
Include documentation that was part of the installer, because a package catalog
may want to show documentation links independent of whether the package
was included in a distribution.
2014-07-14 15:44:16 +01:00
J. Ian Johnson
e9ea94a3fe Fixing flawed test. The result arity does matter. 2014-07-14 10:38:05 -04:00