Commit Graph

4683 Commits

Author SHA1 Message Date
Matthew Flatt
fd63d5a1ba cs: rewrite error message for car, cadr, etc.
Closes #2798
2019-08-28 05:56:47 -06:00
Gustavo Massaccesi
800ea98525 use KMP to avoid quadratic time in string-contains? 2019-08-27 09:59:51 -03:00
Matthew Flatt
a8d5a4f2f4 avoid unneed preprocessor redefinition
Limit a Mac-specific declaration that isn't needed anyway.

Related to #2797
2019-08-27 06:01:16 -06:00
Matthew Flatt
9f424cfe0a cs: fix procedure names in jitified linlet to use 'inferred-name
When a linklet is too large to pass to Chez Scheme whole, then
names for the procedures that are individually compiled need to
be extracted from 'inferred-name for reference in the wrapper.

Closes #2787
2019-08-22 21:06:53 -06:00
Matthew Flatt
2a5df8ad2a rktio: fix Windows network error reporting
Convert wide-character error message to UTF-8.

Closes #2794
2019-08-22 17:15:20 -06:00
Matthew Flatt
d14a4f75a1 read: refine message for some ill-formed #lang lines
In particular, improve the message when `#lang` is followed
by two space characters.
2019-08-22 15:40:59 -06:00
Nick Thompson
8d2b0ba363 Add native dark mode to macOS apps
Enables native dark mode UI elements in macOS 10.14 and above. Adds the
'NSRequiresAquaSystemAppearance' key with a value of 'false' to the
Info.plist file, while allows UI elements to match the system theme even
when not building against the latest SDK.
2019-08-22 14:37:33 -06:00
Matthew Flatt
2d0f10f473 rktio: better behavior for opening write and of fifo
When opening the write end of a fifo that doesn't have a reader
already, the old implementation could allow writing bytes that are
discarded. This new implementation uses a blocking `open` in a
`pthread`, and that way the write routines know whether the stream is
ready for writing or not.

The difference is visible in the Racket API in a two places:
`subprocess` needs to wait until a fifo writer is connected before
attempting to dup the corresponding file descriotor, and more
generally a use of `unsafe-port->file-descriptor` needs to wait. The
former blocking operation is now build into `subprocess` (and
documented), but the burden is place on callers of
`unsafe-port->file-descriptor` to wait is necessary.

The new `port-waiting-peer?` predicate exposes the waiting state,
while `sync` is sufficient to wait for a peer.

Closes #2784
2019-08-22 05:14:58 -06:00
Matthew Flatt
264ec72790 cache bytes converter used for locale conversions
On platforms other than Windows and MacOS, locale encoding (inclduing
path <-> string conversion) opened a converter for each separate
operation. That can be slow on some OSes, so cache converters used for
locale conversions.

Relevant to #2781
2019-08-16 12:10:28 +02:00
Matthew Flatt
001abc5b55 ffi/unsafe/alloc: allow #f as an "allocator"
Allowing #f as an allocator avoids problems composing `allocator` with
foreign-function lookup where failure is anticipated and implemented
as #f. For example, `g_settings_new` in the "gui-lib" package's
"mred/private/wx/gtk/gsettings.rkt" can be #f if the libgio libray is
too old, in which case there won't be an attempt to use
`g_settings_new`.
2019-08-15 09:42:10 +02:00
Paulo Matos
6c17f38f27
Add make rule for gmp_arch_gcc sources to gc2 Makefile.in (#2782)
This avoid a split build (first build cgc and then 3m based on cgc)
failing on arm/alpha.
2019-08-06 18:14:15 +02:00
Gustavo Massaccesi
ecaff3dc96 cs: fix display and print when print-vector-length is enabled
Don't use print-vector-length in `display`.

Use print-vector-length in `print` for fxvectors and flvectors.
2019-08-05 13:09:45 -03:00
Gustavo Massaccesi
63173a32be fix pretty-write when print-vector-length is enabled
Show "#3(struct:b 1)" instead of "#(struct:b 1 1)", so it behaves like `write`.
2019-08-05 13:09:45 -03:00
Gustavo Massaccesi
964e998d70 fix pretty-print when print-vector-length is enabled
In some cases, (vector x 2 3 3 3) was pretty-printed as "(vector x 2 3)" when
print-vector-length was enabled.

Also print "(fxvector)" instead of "(fxvector )".
2019-08-05 13:01:42 -03:00
Chuan Wei Foo
68621c3ee1 Add vector-empty? (#2695)
* Add vector-empty?

* Add tests for vector-empty?
2019-08-03 15:51:33 +02:00
Paulo Matos
f6b14a7bc1
Add -D to pkg install as an alternative to --no-docs (#2777)
raco setup already provides --no-docs and -D so we should too.
Followup to #2776
2019-08-03 15:49:31 +02:00
Paulo Matos
fc76f59457
Add --no-docs command line to raco pkg install (#2776)
This simply passes the same flag to setup, which already knows how to
run setup without rendering the documentation.
2019-08-01 21:12:10 +02:00
Matthew Flatt
2819d73d7f cs: make collect-garbage always return (void) 2019-08-01 07:26:37 -06:00
Matthew Flatt
a5f70561d2 expander: fix module-path resolution in module->namespace namespace
This repair affects DrRacket and xrepl after `enter` so that a
`require` in the context of a module namespace is resolved relative to
the module's path (as it did in the old expander, before v7.0).

Closes racket/drracket#276
2019-07-31 13:52:17 -06:00
Jon Zeppieri
f797694931 Ensure interned_key is initialized 2019-07-31 10:35:21 -06:00
Matthew Flatt
754109fa31 JIT: fix useless test for N-ary unsafe-fx+, etc.
Running tests on 32-bit ARM exposed the problem.

Relevant to #2773
2019-07-30 16:04:29 -06:00
Matthew Flatt
17bc626293 fix bignum quotient on 32-bit ARM
The assembly implementation of `gmpn_invert_limb` is needed to
correctly implement bignum division within the embedded slice of GMP.

Relevant to #2773
2019-07-29 18:39:48 -06:00
Matthew Flatt
af163a533d integer-bytes->integer: repair for unsigned char
Fix `integer-bytes->integer` for the single-byte case when the C
compiler is configured to treat `char` as an unsigned type.

Relevant to #2773
2019-07-29 13:51:10 -06:00
James Bornholt
93dca626f0 repairs for syntax/template on Racket CS
Fix the default argument in `syntax/template`, where cons-proc-stx should be a
syntax object reflecting a procedure, not a procedure itself.

Fix test case for `syntax/template`, where restore-stx should be a syntax object
reflecting the restore procedure, not the proceure itself.

Closes #2745
2019-07-29 06:16:12 -06:00
Jon Zeppieri
0632ac616e Fixes bug in intmap equality
Collision nodes were previously only testing for the equality
of keys and ignoring values.
2019-07-28 18:38:58 -06:00
Jon Zeppieri
4ba070766e Replace uses of hashtable-cell with hashtable-ref-cell in rumble
The hash-demo's "mutable destructive for-each" test, which
uses hash-remove! is slightly faster after this change.
2019-07-28 17:36:48 -06:00
Matthew Flatt
cf0717b855 adjust build to update "raco.exe" when needed 2019-07-27 09:54:22 -06:00
Matthew Flatt
7d6e2fc89b cs: fix launcher hack for cross build
Disable optimizations that would avoid inspecting literal string data
that is modified in the run-time executable.
2019-07-27 08:46:41 -06:00
Matthew Flatt
49929ce8d3 cs: fix incremental cross-compile of Chez Scheme 2019-07-27 08:46:41 -06:00
Matthew Flatt
d48b4498cc cs: strip launchers in Windows cross build 2019-07-27 08:46:41 -06:00
Matthew Flatt
01af30a517 cs: repair recompile of Chez Scheme in Windows build 2019-07-26 16:55:14 -06:00
Matthew Flatt
2a1ffbbdf1 bump version to sync with Chez Scheme change 2019-07-26 16:22:37 -06:00
Stephen Chang
e22abfb8a4 reduce code generated by in-X-set sequence constructors 2019-07-26 13:32:04 -04:00
Stephen Chang
69d748a95e fix seg fault when using in-X-set sequence constructor with wrong kind of set; closes #2765 2019-07-26 12:59:20 -04:00
Matthew Flatt
572b29b874 rktio: fix leak and bad free in subprocess
Closes #2764
2019-07-26 08:37:39 -06:00
Philip McGrath
fce209d9f4 racket/private/serialize: eliminate unnecessary vector->list 2019-07-25 13:27:36 -06:00
Jon Zeppieri
0ebc43ef24 Adds hash-ref-key primitive
For now, the operation is implemented on mutable tables in Chez
using a combination of hashtable-contains? and hashtable-cell.
A more efficient version will require modifying Chez.
2019-07-25 07:43:13 -06:00
Matthew Flatt
57f64367ed cs: implement make-known-char-range-list
Compute the list (at compile time), instead of using a literal copy of
the output at one point.

Also, adjust the documentation to explain extra guarantees provided by
`make-known-char-range-list`.

Closes #2757
2019-07-24 07:33:28 -06:00
Matthew Flatt
f63ededab8 cs: fix copied environment setup from cross-compilation
The copy of the environment setup for cross-compilation was
out of sync with the main environment configuration.
2019-07-23 19:21:46 -06:00
Matthew Flatt
8b916fc5c1 expander & cs: sync lists of internal primitives
The expander and the rumble layer of Racket CS need to agree on a set
of extra primitives that are referenced by schemified linklets.
2019-07-23 17:49:45 -06:00
Matthew Flatt
c1bc49e45b update racket HISTORY.txt for v7.4 2019-07-23 13:01:31 -06:00
Matthew Flatt
05c82d877c rktio: fix problem with lazy ltps
Don't try to wait on a kqueue or epoll fd that is not yet initialized.
2019-07-23 11:00:05 -06:00
Matthew Flatt
491081eefd cgc: don't use GC_free on runstacks
Using GC_free() on runstacks was a way of reducing leaks with
conservative GC, but the implementation of prompts for delimited
continuations evolved in a way that is incompatible with using
GC_free(). The recent change to make certain runstack links weak
particularly exposed the mismatch.
2019-07-22 14:15:30 -06:00
Paulo Matos
7b3766ae84 Generate new certificate (valid for 10 yrs) for testing using 2048bits
Fixes #2748

Steps to create this certificate:
openssl genrsa -out key.pem 2048
openssl req -new -sha256 -key key.pem -out csr.csr
openssl req -x509 -sha256 -key key.pem -days 3650 -in csr.csr -out certificate.pem
cat key.pem certificate.pem > test.pem

When filling out the information for the certificate, keep the same
details - some tests depend on it.
2019-07-22 13:17:35 +02:00
Matthew Flatt
fa754ee333 unsafe-poller: fix result handling
Closes #2754
2019-07-21 18:05:57 -06:00
Matthew Flatt
91f5ec3c9b fix GC registration for scheme_unsafe_poller_proc 2019-07-21 18:05:57 -06:00
Matthew Flatt
23cb7c6a1a sgc: fix finalization callback data marking
Callback data should be treated accessible before conaidering any
finalized or weak references.

Relevant to #2734
2019-07-21 18:05:57 -06:00
Matthew Flatt
ab9a5d261e ffi: fix recording of foreign function names
The internal change to a curried mode caused a generic name to be
used.
2019-07-21 18:05:57 -06:00
Matthew Flatt
0f6cd01489 conservative GC: break weak links after finalization
Bring CGC and 3m in line by breaking weak links in CGC only after
ready level-1 finalizations (which correspond to will executors) have
been queued. The chage delays clearing of the weak link until after
the finalizer is run.
2019-07-21 18:05:57 -06:00
Matthew Flatt
deca030d34 fix finalization pessimization
Recurring during finalization marking could potentially delay
finalization that should happen in the same collection.
2019-07-21 18:05:57 -06:00