Commit Graph

34523 Commits

Author SHA1 Message Date
Matthew Flatt
201a5f0e6f compiler/zo-marshal: allow extflonum literals 2014-10-27 20:01:38 -06:00
Matthew Flatt
35a762b556 remove internal sorted-dirlist function
The result of `directory-list` is now sorted by default, so the
extra function is not needed.
2014-10-27 16:01:49 -06:00
Matthew Flatt
9291726482 racket/file: add make-parent-directory*
Also, clarify behavior of `make-directory*` in the case of a relative
path when the current directory does not exist.
2014-10-27 16:01:49 -06:00
Robby Findler
13d7e264c4 fix incorrect interpretation of 'eof in new find-string implementation 2014-10-27 16:38:39 -05:00
Vincent St-Amour
0a8764b470 Add pointer to Sublime Text support. 2014-10-27 15:07:32 -04:00
Vincent St-Amour
c4a09baad8 Move racket-mode to the top of suggested emacs modes. 2014-10-27 15:07:32 -04:00
Asumu Takikawa
d66e0fc3d2 Add deftech for fallback/default methods in docs 2014-10-27 14:32:44 -04:00
Matthew Flatt
2d85fdc02f libffi: restore some small patches
Also, revert file-permission changes.
2014-10-27 11:18:16 -06:00
Gustavo Frederico Temple Pedrosa
9832ad7750 Update libffi to 3.1
Update libffi to 3.1 to add support for new architectures.
2014-10-27 11:18:16 -06:00
Robby Findler
df8fef86da fix a contract example in the documentation
closes PR 14798 (the previous commit, 86017992ab, that
claimed to fix this PR is unrelated; sorry for that)

Please include in 6.1.1
2014-10-27 09:19:27 -05:00
Matthew Flatt
f31c6563e4 make read-line interruptable on a primitive port
Closes PR 14800

Merge to v6.1.1
2014-10-27 07:00:30 -06:00
Matthew Flatt
5eca66acdf meta/pkg-build: edit the "about" page 2014-10-26 19:00:48 -06:00
Matthew Flatt
a352470914 work around a kqueue bug(?) on Mac OS X
There seems to be a problem in kqueue() on Mac OS X for watching for
FIFO write availability, where adding a read event for the same FIFO
(at a different file descritor) can disable the write event.

Merge to v6.1.1
2014-10-26 09:51:17 -06:00
Matthew Flatt
2679638e74 fd read and write: avoid redundant O_NONBLOCK flag setting 2014-10-26 09:21:28 -06:00
Matthew Flatt
b2509614e2 fd write: accomodate non-partial writes to a non-full descriptor
If a write to a non-blocking descriptor fails, then try again
with fewer bytes, since nothing in the spec write() seems to
promise writing partial amounts. In particular, writing to
a FIFO no Mac OS X might fail even if there are a few bytes of
space; as it happens, the select() function seems to compensate
and claim that such a FIFO is full, but kqeueue() doesn't.
2014-10-26 09:21:28 -06:00
Matthew Flatt
5dad9a1ef1 meta/pkg-build: record start and end time for tests 2014-10-26 09:21:28 -06:00
Matthew Flatt
e3e69085c3 meta/pkg-build: add an "about" page
Explain `raco test`, the `PLT_PKG_BUILD_SERVICE` environment variable,
and the "x86_64-linux-natipkg" platform.
2014-10-26 09:21:28 -06:00
Robby Findler
046a851d70 Use the scale when rendering svg
Thanks to Antonio Menezes Leitao for the change
2014-10-26 07:08:08 -05:00
Robby Findler
86017992ab fix incorrect contact; closes PR 14798
please include in the 6.1.1 release
2014-10-25 21:52:18 -05:00
Robby Findler
06b9b4f0a2 simplify and extend the find-string method in text%
This implementation runs about 10% faster than the old when searching
for "λ" in (collection-file-path "unit.rkt" "drracket" "private"). It
is copied directly from the search search algorithm from Wikipedia
called Knuth-Morris-Pratt, but with a fancier version of get-char that
cooperates with text%'s snip interface for more efficient linear
scans of characters.

It also generalizes the previous one by supporting searching into
embedded text% objects inside editor-snip% objects

related to PR 14688
related to PR 14687
2014-10-25 21:52:18 -05:00
Matthew Flatt
28bc3ebeac meta/pkg-build: keep test-success log (same as test-failure) 2014-10-25 15:06:28 -06:00
Matthew Flatt
776aa89347 meta/pkg-build: always set the VM clock
Consistent installation depends on a global clock that always
moves forward, so make sure VMs stay in sync.
2014-10-25 07:40:04 -06:00
Matthew Flatt
e381192e6e meta/pkg-build: run raco test --drdr for each package 2014-10-25 07:40:04 -06:00
Matthew Flatt
abf76be7f0 meta/pkg-build: add support for "minimal" vs. full VMs
Try building on a minimal VM, first, and then fall back to a more
general VM is that fails. For example, a minimal VM might not include
a C compiler, which can help clarify that a package will work in some
environments and not in others.
2014-10-25 07:40:04 -06:00
Matthew Flatt
8c9a9da525 meta/pkg-build: fix potential problem with cycle detection
Also, correct typos and out-of-date information in comments that
serve as documentation.
2014-10-25 07:40:04 -06:00
Mike Sperber
fa64870b78 Synch German string constants with latest. 2014-10-25 14:47:40 +02:00
Asumu Takikawa
6ad017a1e9 Fix init order of choice%'s type 2014-10-24 15:33:52 -04:00
Greg Hendershott
9de70551dc Fix bug with equal? on small bit-vectors. 2014-10-24 15:28:25 -04:00
Vincent St-Amour
c389bfab3b Fix set-symmetric-difference docs. 2014-10-24 13:07:25 -04:00
Matthew Flatt
14f984ba63 distro-build: try connecting a few times to let a VM warm up
This strategy has been successful for the package-build service,
and it will hopefully cut down on spurious snapshot build failures
that happen when a VM's networking doesn't start up quickly enough.
2014-10-24 08:27:50 -06:00
Matthew Flatt
2e327d7886 Mac OS X .pkg installer: check for target folder before installing
If the target folder exists, let the user know and give up. (This
seems safer than trying to delete the folder, since there might be
other files in the folder than the original files, and the installer
doesn't currently keep a list of installed files.)
2014-10-24 08:01:15 -06:00
Asumu Takikawa
17cafe652e Avoid computing type tooltips twice
The logging code in tc-toplevel.rkt is sufficient to get
all the type tooltips.
2014-10-24 01:00:30 -04:00
Asumu Takikawa
5138614aba Fix checking of (list ...) w/ union expected type
Closes PR 14758
Closes PR 14747
2014-10-23 23:01:28 -04:00
Matthew Flatt
f79ac7b510 Scribble HTML: included needed tag prefixes in "Link to this section" 2014-10-23 10:27:24 -06:00
Matthew Flatt
fb75dcd38d unix-installer test: check "natipkg" 2014-10-23 10:27:24 -06:00
Robby Findler
58662d2208 generalize rule-pict-style to allow more customization of reduction-relation layouts 2014-10-23 09:50:46 -05:00
Asumu Takikawa
375abf3c2b Simplify TR class macro handling of names
Instead of using a syntax-property hack, just disarm the
expanded syntax (TR will do this later in the pipeline anyway).
2014-10-23 00:48:05 -04:00
Asumu Takikawa
9e242fbaef Export disarm* with protect-out 2014-10-23 00:47:41 -04:00
Asumu Takikawa
670c857685 Fix typed private class fields with functions
A public method definition and a private field that contains
a function are hard to distinguish without traversing the entire
class body, which caused TR to fail to detect the private field
case. TR now uses more compile-time state to precisely
distinguish the cases.

Also fixes a related bug in which TR would incorrectly handle
multiple private fields defined with a single `define-values`.

Closes PR 14788
2014-10-23 00:20:07 -04:00
Matthias Felleisen
a70ece0bb0 typo, thanks Jack Clay 2014-10-22 22:41:28 -04:00
Matthew Flatt
1f764a3dba fix internal meta-continuation comparison for continuation sharing
The check that the current meta-continuation matches the captured one
would always fail (I think), since the current meta-continuation is
pruned on capture. Keep a weak link to the original meta-continuation
to enable detection of capturing a continuation that matches or
extends one that was previously captured.

Enabling sharing exposed a problem with the code that saves
continuation marks for partial sharing, since that implementation
became out of sync with the main implementation (so merge the
implementations).
2014-10-22 13:14:58 -06:00
Vincent St-Amour
9c30da7682 Prune argument types too in error messages.
Closes PR 12907.
2014-10-22 13:58:42 -04:00
Matthew Flatt
d9f2a84951 repairs for {impersonator,chaperone}-struct
Commit 0b71b8481d didn't have the tests that I thought I had
written, and so the changes were unsurprisingly buggy.
2014-10-21 21:09:36 -06:00
Matthias Felleisen
2d422da25a fixing error message 2014-10-21 22:54:11 -04:00
Robby Findler
e589f591fb take advantage of the new impersonator support to hack in something that
avoids piling up redundant instanceof/c contracts

This is not a general purpose solution, but instead a hack that covers
certain hopefully likely patterns of redundant contracts for objects.

This commit looks for redundant contracts according in a slightly more
general pattern than just "is the most recently attached contract
stronger than the one I'm about to put on here and does it have the
same blame labels?", because that predicate isn't good enough to cover
the example below. In the example below, we repeatedly get the same
contract put on an object, but with different blame labels. So we need
to drop "inner" contracts. That is, when we have two contracts on
there and we go to add the third, we can tell that the second one
would no longer ever signal blame, so we can keep just the first in
the third.

More concretely, if we had these two contracts on 'v' with the given
blame labels (higher lines means the contract is "outside" or applied
later and the blame labels are in positive/negative order):

  (-> x y)  <c,d>
  (-> x y)  <a,b>

then the two possible blames we get here are blaming d for a non-x
argument and blaming a for a non-y result. And now lets say we add a
third contract to the stack that's a copy of the first, but possibly
with different blame labels:

  (-> x y)  <e,f>
  (-> x y)  <c,d>
  (-> x y)  <a,b>

Now we can blame f for non-x argument and a for a non-y result, both
of which are things covered by the first and third contract, so we can
safely drop the middle one and use this stack:

  (-> x y)  <e,f>
  (-> x y)  <a,b>

The example above is couched in terms of arrow contracts, but this
commit doesn't do this for arrow contracts, it does it for
instanceof/c contracts.

And also the way that we tell that the inner contract is redundant
isn't that it is equal; instead we use contract-stronger?. In
particular, the above reasoning works, I believe, when we have that
the inner contract is stronger than the one we're removing and when
the outer contract is also stronger than the one we're
removing. That's the check that actually happens in the code.

-------

The code below is the example below is an example Asumu sent me (but
with the TR parts stripped out). Before this commit, the contract
wrapping grows without bound, but with this commit it stays constant.

In the example below we get only two different sets of blame labels
(and equal contracts) and thus are actually more contracts that could
be eliminated, but this commit does limit it to just two contracts. (I
think it could be alternating between one and two contracts instead of
always two if the code that dropped the contracts were more clever.)

 #lang racket/base
(module State racket/base
  (require racket/contract racket/class)

  (define state/c
    (recursive-contract
     (class/c
      [m (-> any/c (instanceof/c state/c))]
      [n (-> any/c (instanceof/c state/c))])))

  (define state%
    (class object%
      (super-new)
      (define/public (m) (send this n))
      (define/public (n) (new state%))))

  (define (tree-next o) (send o m))
  (define (make-tree) (new state%))
  make-tree
  (provide
   (contract-out
    [tree-next (-> (instanceof/c state/c) (instanceof/c state/c))]
    [make-tree (-> (instanceof/c state/c))])))

(require (submod "." State))
(require racket/sandbox)
(with-limits #f
             100
             (let loop ([o1 (make-tree)] [n 0])
               (printf "~a\n" n)
               (define o2 (tree-next o1))
               (loop o2 (add1 n))))
2014-10-21 20:12:26 -05:00
John Clements
74efd8394a updated HISTORY.txt
merge to 6.1.1 release
2014-10-21 14:39:32 -07:00
Matthew Flatt
a6102229aa unstable/options: fix for chaperone-struct change
Contrary to the comment for 0b71b8481d, the `unstable/options`
implementation used the first argument to a mutator wrapper.
Adjust to close over the wrapped value.
2014-10-21 14:00:43 -06:00
Matthew Flatt
8a45f9d341 impersonated mutator: fix internal stack overflow
This is not a new bug, but it was exposed by the interaction
of the changed to the impersonated-mutator protocol and
the `unstable/option` test suite.
2014-10-21 13:53:09 -06:00
Spencer Florence
d81f09d11e change typeset-code to conform to text:color<%>'s interface
The `typeset-code` function assumed that a lexeme must be `eof` on an
end-of-file, but `test:color<%>` allows it to be anything. Instead,
the check should be on type as 'eof.
2014-10-21 12:46:14 -06:00
Robby Findler
9d863ca2fe fix small mistake in the docs 2014-10-21 13:11:43 -05:00