Commit Graph

36077 Commits

Author SHA1 Message Date
Jay McCarthy
18208f76f5 Improve define-cstruct inline-ability and add #:define-unsafe 2016-01-06 16:53:36 -05:00
Benjamin Greenman
69b01c637f typo: curent -> current 2016-01-06 15:42:58 -05:00
Matthew Flatt
fe1ffbe36f fix a test for the default package catalog 2016-01-06 13:17:44 -07:00
Matthew Flatt
711ab4d984 raco pkg: add PLT_PKG_SSL_NO_VERIFY environment variable
Just in case someone needs to work around an HTTPS server
without a valid certifcate.
2016-01-06 11:55:43 -07:00
Matthew Flatt
8dfce37977 net/win32-ssl: enable 'secure mode
Validate server certificate in 'secure mode.
2016-01-06 11:55:43 -07:00
Matthew Flatt
c706ee2c05 switch default catalogs to HTTPS 2016-01-06 11:55:43 -07:00
Matthew Flatt
273bc4ea49 use OS X native SSL when libssl is too old
OS X's libssl is deprecated, and it doesn't work with SSL connections
that need SNI. We'll distribute out own libssl builds for OS X via a
package, but we need a native implementation that works well enough to
get that package.
2016-01-06 11:55:43 -07:00
Matthew Flatt
d160cb81a8 raco pkg: use 'secure for an HTTPS catalog 2016-01-06 11:55:43 -07:00
Matthew Flatt
92f1bfa4d2 openssl: add 'secure protocol shortcut
The 'secure protocol symbol is just a shorthand for
`(ssl-secure-client-context)`, but it helps highlight
that the default 'auto isn't secure, and having a plain
symbol smooths the connection to native Win32 and OS X
implementations of SSL.
2016-01-06 11:55:43 -07:00
Matthew Flatt
1e5da68b88 OS X: avoid getdtablesize() by switching frmo select() to poll()
The getdtablesize() result appears not to be constant on OS X.
Creating some combination of CFStream objects, threads, and CFRunLoop
objects can cause the value to be increased by a factor of 10. Avoid
the need for getdtablesize() by switching from select() to poll().
2016-01-06 07:34:18 -07:00
Matthew Flatt
8068c1e2a5 Revert "add source for "racket-playsound.exe""
This reverts commit e08188aeda.

New implementation of `play-sound` doesn't need it.
2016-01-05 20:36:33 -07:00
Matthew Flatt
25f8a5d0d9 Revert "adjust "racket-playsound.exe" return code"
This reverts commit 26560240f1.

New implementation of `play-sound` doesn't need it.
2016-01-05 20:36:33 -07:00
Vincent St-Amour
4b266f1ff2 sequence-sample: various comments from Eli. 2016-01-05 20:33:57 -06:00
Vincent St-Amour
1ce6a49f94 random-sample: actually use the passed-in prng.
Found by Eli.
2016-01-05 20:33:56 -06:00
Leif Andersen
533c0d16ec Fix typo in raco documentation for scribblings. 2016-01-05 15:47:00 -05:00
Vincent St-Amour
656044b8fc random-sample: use reservoir sampling to do a single pass over sequences.
Suggested by Eli.
2016-01-05 14:42:43 -06:00
Robby Findler
31a9414983 move contract tests into contract subdirectory
and fix up the code that orders the tests when running them all
2016-01-05 09:41:47 -06:00
Robby Findler
c7726e23ec fix random-generation for and/c 2016-01-05 09:14:15 -06:00
Robby Findler
3f4dcb8e87 more accurate error message when content-length is missing 2016-01-05 09:09:52 -06:00
Robby Findler
3df12dca58 specialize sequence/c for one-element sequences
this yields only a modest speed up and only when iterating
over long sequences, e.g. like in this program:

  #lang racket/base
  (require racket/sequence racket/contract/base)
  (define s (make-string 10000 #\a))
  (define str (contract (any/c . -> .  (sequence/c char?))
                        (λ (x) (in-string s))
                        'pos 'neg))
  (time
   (for ([x (in-range 100)])
     (for ([x (str 0)])
       (void))))
2016-01-04 19:56:46 -06:00
Robby Findler
94ac77d30e port sequence/c to late-neg projections 2016-01-04 19:56:45 -06:00
Robby Findler
3ed7dfd62b add the contract printer to set contracts 2016-01-04 19:56:45 -06:00
Robby Findler
14b951cf44 improve the performance of the way contract-stronger? recurs
and fix evt/c's contract-stronger
2016-01-04 19:56:45 -06:00
Matthew Flatt
d37ee8c5b1 fix place and raco exe
The repair involves making `raco exe` detect a sub-submodule
whose name is `declare-preserve-for-embedding` as an indication
that a submodule should be carried along with its enclosing module.

Normally, `define-runtime-module-path-index` would do that, but
the submodule for `place` is created with `syntax-local-lift-module`,
and the point of `syntax-local-lift-module` is to work in a
nested experssion context where definitions cannot be lifted
to the enclosing module.
2016-01-04 11:01:48 -07:00
Sam Tobin-Hochstadt
5cf748d734 Fix set chaperone tests.
`set-first` just does an extract, not a remove.
2016-01-04 11:08:02 -05:00
Robby Findler
1c431e6f4d Clean up chaperone-hash-set and impersonate-hash-set and adjust set/c to match
Made the hash-set chaperones essentially forward the hash chaperone
operations, but now explain them all in terms of set-based operations
in the docs.

Also adjusted value-blame and has-blame? to support late-neg projections
2016-01-03 20:43:24 -06:00
Robby Findler
77a76a7953 fix opt/c for the new way (-> any/c ... any) works
should have been a part of 36b3493e
2016-01-03 20:43:24 -06:00
Sam Tobin-Hochstadt
5ae4e45340 Merge pull request #1184 from andmkent/patch-3
more *syntax/loc for match forms
2016-01-03 17:02:03 -05:00
Vincent St-Amour
cc79e2241c random: Get the right name without run-time overhead. 2016-01-03 13:53:31 -06:00
Vincent St-Amour
4509430063 Fix object name for new random function. 2016-01-03 13:05:35 -06:00
Vincent St-Amour
1e18a7e2b4 sequence-length: special-case lists too. 2016-01-03 13:05:35 -06:00
Matthew Flatt
a2c9b47552 Merge pull request #1189 from LeifAndersen/fix-zo-docs
Fixed typo in zo docs.
2016-01-03 06:47:48 -07:00
Leif Andersen
2aa9d8cca3 Fixed typo in zo docs. 2016-01-02 23:07:31 -07:00
Vincent St-Amour
c47c0ebfca sequence-length: special case O(1) cases. 2016-01-02 20:05:04 -06:00
Vincent St-Amour
47f06f11e1 random: encourage inlining.
Reduces overhead to 6% over #%kernel's  for the integer case.
2016-01-02 20:02:30 -06:00
Vincent St-Amour
740b6dc198 random: Remove redundant checking. 2016-01-02 20:02:30 -06:00
Vincent St-Amour
acb7d999ba Comment typo.
Pointed out by Gustavo.
2016-01-02 20:02:30 -06:00
Vincent St-Amour
707f9bffa6 random: move sequence support to random-ref, in racket/random.
And add `random-sample`.
2016-01-02 20:02:30 -06:00
Vincent St-Amour
6af2f711b7 Fix optimization tests. 2016-01-02 20:02:30 -06:00
Vincent St-Amour
0796350a88 Extend random to work with ranges and sequences.
Requested by Matthias.
2016-01-02 20:02:30 -06:00
Robby Findler
36b3493e45 Change contracts of the form (-> any/c ... any) to not be flat contracts
The issue is what happens when the actual function has other arities.
For example, if the function were (λ (x [y 1]) y) then it is not okay
to simply check if procedure-arity-includes? of 1 is true (what the
code used to do) because then when the function is applied to 2
arguments, the call won't fail like it should. It is possible to check
and reject functions that don't have exactly the right arity, but if
the contract were (-> string? any), then the function would have been
allowed and only when the extra argument is supplied would the error
occur. So, this commit makes it so that (-> any/c any) is like
(-> string? any), but with the optimization that if the procedure
accepts only one argument, then no wrapper is created.

This is a backwards incompatible change because it used to be the
case that (flat-contract? (-> any)) returned #t and it now returns #f.
2016-01-02 17:29:58 -06:00
Matthew Flatt
fdf56dfebf fix calculation of unexported bindings
When a module defines <name-1> and doesn't export it, but when
the module imports <name-2> and re-exports that refers to another
module's definition of <name-1>, then <name-1> wasn't properly
registered as an unexported binding.

Most of the implementation change is just a clean-up of an
unnecessary traversal from before the addition of a `count`
field in each hash table.
2016-01-02 15:10:23 -07:00
Matthew Flatt
190925ee32 avoid a compiler warning 2016-01-02 07:46:42 -07:00
Robby Findler
2529e63b74 make stronger recognize any/c on the right as stronger than any flat contracts 2016-01-01 19:49:38 -06:00
Robby Findler
b24882fd18 implement the (-> any/c ... any) special case for the new -> contract combinator
(new is being used in a relative sense here; it is the newer of the
two -> combinators; the old one is used currently only for ->m)
2016-01-01 19:49:38 -06:00
Matthew Flatt
fd7b8b29ea avoid compiler warning 2016-01-01 14:33:16 -07:00
Matthew Flatt
c0915b02b0 pathlist-closure, tar, and tar-gzip: add #:path-filter
Also, add `#:skip-filtered-directory?` to `find-files`.

Less significantly, adjust `pathlist-closure` to be consistent in the
way that it includes a separator at the end of a directory path.
2016-01-01 13:52:37 -07:00
Matthew Flatt
c9a1dc781e raco setup: use lazy ".zo" parsing for dpeendency checking
Lazy ".zo" parsing make the dependency check take about half as
long.
2016-01-01 13:52:37 -07:00
Matthew Flatt
d3bb9d0412 fix bytecode-reading time-complexity bug
When a tree marshaled to bytecode form has many shared pieces,
the unmarshaling process can lose track of the sharing in one
place and traverse too much of the structure as pieces are
loaded.
2016-01-01 13:52:37 -07:00
Matthew Flatt
8b7f5bc046 faster xexpr->string 2016-01-01 13:52:37 -07:00