Commit Graph

4839 Commits

Author SHA1 Message Date
Reuben Thomas
7e3a8c9a3b In-place build: cope with default setting of prefix
configure scripts look for and read a local configuration file given by the
environment variable CONFIG_SITE. This can set variables such as prefix.

Racket’s build system was assuming that prefix would be set to NONE unless a
--prefix command line argument was given. But it could be set by a
CONFIG_SITE configuration file instead.

Hence, for in-place build add an explicit --disable-useprefix option, to
cause any prefix setting to be ignored, and use that in the top-level
Makefile.

Regenerate the configure scripts to get the updated code.
2019-11-18 18:25:37 +01:00
Reuben Thomas
fb9a4a219d Remove erroneously checked-in unused autoconf files 2019-11-18 18:25:37 +01:00
Sam Tobin-Hochstadt
532e649bfd
Clarify embedded executable issues (#2908) 2019-11-15 21:02:20 -05:00
Matthew Flatt
ee4ceb7ae4 expnder: fix problem with nested instantiation
A use of `local-expand` and other things in a module's phase-1
instantiation could trigger a nested attempt to instantiate a module.
2019-11-14 09:18:30 -07:00
Matthew Flatt
0cd7cdaa1f repair bytes-utf-8-ref for #\xFFFF result 2019-11-13 19:33:58 -07:00
Matthew Flatt
ea7452a3ed copy MIT and Apache license files in place on install 2019-11-12 20:15:54 -07:00
Matthew Flatt
52b01ef88b racket/runtime-path: add support for 'share paths
Support include-if-exists for files in the "share" directory analogous
to the include-if-exists support for files in "lib".
2019-11-12 20:10:06 -07:00
Matthew Flatt
3192c02b80 cs: fix struct-type-make-constructor
Support the optional name argument and fix the default name.

Closes #2905
2019-11-12 14:29:06 -07:00
Matthew Flatt
46a73b3d36 expose custom-{write,print-quotable}-accessor as accessor
Revert the part of 39a96dd699 that hides the provenance of these
accessors. Although exposing the fact that the predicates are for
structure properties constrains some internal representations, that
constraint seems unlikely to matter, and exposing the procedures as
property predicates is more consistent with the documentation and the
implementation (especially for Racket CS).

Closes #2904
2019-11-12 14:29:06 -07:00
Paulo Matos
b6627956b6
Improve gcc detection in configure script (#2897)
Improve gcc detection in configure script

We have been detecting gcc by the CC variable but this fails under
ubuntu for example where you might specify CC='gcc-8' to ./configure. 
Also consider clang impersonator to be gcc.

Related to #2890
2019-11-12 19:26:36 +01:00
Winny
3cb41850fa Separate GCC and GNU Make detection (#2902)
Related to #2890.

This ensures when GNU Make is `make`, the `version.mak` file is used
regardless of `CC`.
2019-11-12 10:19:19 +01:00
Matthew Flatt
19411c0dec configure: fix schver.h parsing
Related to #2890
2019-11-11 07:29:35 -06:00
Matthew Flatt
5eb04dfa9e add continuation-mark-set->iterator
Support continuation-mark inspection proportional to the amount that
needs to be inspected, instead of having to build a list of length
propotional to the size of a continuation.

In Racket CS, use iteration to improve exception-handling chaining.
Traditional Racket already used similar functonality internally.
2019-11-10 19:56:58 -06:00
Sam Tobin-Hochstadt
11d8f5c4ce
Mention relicensing in HISTORY.txt. (#2895)
* Mention relicensing in HISTORY.txt.
2019-11-08 10:32:16 -05:00
Matthew Flatt
d14940d22d racket/HISTORY.txt: update for v7.5 2019-11-07 10:14:37 -07:00
Matthew Flatt
470e82a65d adjust / on complex inexact numbers
Add a special case for a real divided by a complex, and remove
(probably) misguided special cases for inexact zero real and imaginary
parts. These changes bring complex `/` further in line for Racket and
Racket CS.

Related to racket/typed-racket#868
2019-11-06 05:33:25 -07:00
Matthew Flatt
ebd7cec834 expander: fix higher-phase variable/syntax provide tracking
The check for whether a provided identifier is syntax or a variable
cuold incorrectly inspect a module that is not yet prepared for the
relevant phase.
2019-11-05 19:36:41 -07:00
Jay McCarthy
2edea7db0d Fix typo 2019-11-02 13:45:16 -04:00
Sorawee Porncharoenwase
73250ae23e only do it for attributes 2019-11-02 10:52:10 -04:00
Sorawee Porncharoenwase
45968e8a3c Fix #2885: convert number entity to character 2019-11-02 10:52:10 -04:00
Matthew Flatt
e8f5501e29 module->exports: add information about defined name
Include the defined name (in addition to the provided name) in the
result of `module->exports` and `module-compiled-exports` --- but for
backward compatibility, only if the new optional `verbosity` argument
is 'defined-names.
2019-10-31 19:35:29 -06:00
Alex Muscar
966399dec6 Fix gen:dict methods for alists with duplicate keys (#2846)
* Fix gen:dict methods for alists with duplicate keys

This fixes https://github.com/racket/racket/issues/2803.

Note that while this works, the implementation is not particlarly fast.
Especially for iterators.

* Fix tabs

* Make code more efficient

* Fix function definition order

* Import set library

* Preserve order

* Use immutable hash sets

* Remove unused import and remove duplicate checks

* Fix syntax error
2019-10-30 11:04:40 -04:00
Matthew Flatt
c5a7d0e38a finish udp-ttl and udp-set-ttl!
Add tests, documentation, and fixes for rktio and Racket CS.
2019-10-29 18:34:03 -06:00
David K. Storrs
24ec75fd03 added udp-ttl and udp-set-ttl! 2019-10-29 15:35:58 -04:00
Matthew Flatt
c34538c58f cs & thread: fix sync shortcut and handle-evt
A shortcut meant to speed up `sync` on values such as semaphores
caused `handle-evt` handlers to sometimes not run in tail position.
2019-10-28 19:05:31 -06:00
Matthew Flatt
a81f9c1c6d /: repair for complex inexact
For a division c+di, when c is less than d, and when (/ d c) produces
infinity, then the sign on the imaginary part of the result was
backwards. For example, `(/ -1.0e-9-1.0e+300i)` produced `-0.0-0.0i`
instead of `-0.0+0.0i`.
2019-10-28 14:02:27 -06:00
Fred Fu
1439fc0e85 fix a typo in comments (#2876) 2019-10-28 10:25:09 -04:00
Sam Tobin-Hochstadt
44895a0027
Relicense this repository under Apache 2.0/MIT. (#2871)
Note: the traditional Racket executable continues to incorporate
LGPLv3 code and thus modifications to it must be released under
that license. However, all Racket code in this repository, as well
as the Racket-on-Chez excutable, are more permissively licensed.

Thanks in particular to @otherjoel and @zyrolasting for their work
on this project.
2019-10-28 09:17:56 -04:00
Dan Holtby
42c897a75f fix for (setup) when (current-library-collection-links) contains hash tables 2019-10-28 06:06:59 -06:00
Matthew Flatt
238cd527f4 revert accidental change to setup/main 2019-10-27 13:49:29 -06:00
Matthew Flatt
0965e5ad6c cs: fix internal procedure-arity-includes/c macro
Repair to 5345fd294c.
2019-10-27 10:38:45 -06:00
Matthew Flatt
bee4a92251 cs-bootstrap: updates to work with recent Chez Scheme changes 2019-10-27 10:38:45 -06:00
Matthew Flatt
f26181dd84 racket/date: add correctly spelled scaliger functions 2019-10-24 15:00:16 -04:00
Matthew Flatt
b1cae06897 openssl: use OPENSSL_sk_num when no sk_num, etc.
OpenSSL 1.1 adds `OPENSSL_` to the front of some names.
2019-10-24 15:00:16 -04:00
Sam Tobin-Hochstadt
2f8207e7c9 Revert "scalinger -> scaliger"
This reverts commit de0fbf2648.
2019-10-24 14:58:59 -04:00
Sam Tobin-Hochstadt
8f579af413 Revert "Handle symbol changes between openssl-1.0 and 1.1"
This reverts commit 822938d9ae.
2019-10-24 14:58:59 -04:00
Matthew Flatt
fb38db3b84 cs: more direct application of continuations 2019-10-24 07:33:24 -06:00
Matthew Flatt
5345fd294c cs: faster internal procedure-arity-includes/c 2019-10-24 06:25:20 -06:00
Matthew Flatt
487277ad02 cs & thread: fix use of custodian weak reference
Commit 77023aeaba made the reference from a custodian-managed
value to the custodian weak, and that could cause a crash in
certain shutdown cases.

Relevant to #2867
2019-10-23 17:32:57 -06:00
Matthew Flatt
79c27ece6f cs: use improved Chez Scheme call/cc
Just bumping the version number here to make sure the improved
`call/cc` is used. The improvement saves about 10% on ctak by avoiding
a layer of closure allocation.
2019-10-23 17:32:57 -06:00
Matthew Flatt
5bce9e822f cs: improve composable continuation
Refactor to move some composable-continuation support out of the
way of prompts, and add a shortcut for simple composition cases.

Also, fix stack traces with continuation barriers and composable
composition, which could show sections of a trace duplicated.
2019-10-23 17:32:57 -06:00
Matthew Flatt
7f5f289ff6 cs: improve notes on Racket CS developement
Explain how to build Chez Scheme bootfiles using Racket, and fix
information on concurrency that had become out-of-date.
2019-10-19 17:02:01 -06:00
Matthew Flatt
77023aeaba fix custodian weak reference and memory-limit unregistration
For Racket CS, weaken references from managed objects to managing
custodians. Otherwise, a custodian with any managed values cannot
be GCed. Also, fix `collect-garbage` call that is triggered by
a memory-limit shutdown to happen after the current thread
(likely shutdown) is swapped out.

For traditional Racket, fix custodian shutdown on a memory-limited
custodian so that it is unregistered as having a limit.
2019-10-18 22:31:35 -06:00
Matthew Flatt
3c2efafbf5 cs: fix printf and handler interaction
Fixes inconsistency in the uses of handlers compared to traditional
Racket, and repairs a crash for displaying byte strings via `~a`.
2019-10-18 18:57:46 -06:00
Matthew Flatt
588778d14c cs: fix compile for non-serializable literals
Lift and delay serialization for non-serializable literals when
using `compile`. Just `compile`ing such an expression is ok, but
it reports an error if there's an attempt to serialize (by printing)
the compiled value.

This improvment also brings Racket CS much more in line with
traditional Racket on the kinds of values that it is willing to
serialize. For example, non-prefab structures no longer serialize
(where deserializing in a new Racket run would produce an instance of
a distinct structure type). The exception type and error message also
now matches traditional Racket.

The improvement relies on a new argument to `s-exp->fasl` for handling
errors.
2019-10-18 18:36:52 -06:00
Matthew Flatt
772289e2c1 force a major GC after memory-limit custodian shutdown
Also, adjust a memory-limit test that wasn't checking behavior as
intended and that wasn't consistent with a Racket CS improvement over
traditional Racket.
2019-10-18 06:57:44 -06:00
Matthew Flatt
a0aeadca0a schemify: fix name associated to on-demand procedure
Fix the procedure name that is used before an on-demand procedure is
extracted.
2019-10-16 15:50:16 -06:00
Luke Lau
a3d2939dae Fix libcrypto native-lib install on macOS 10.15
Catalina now aborts when dlopen'ing the versionless libcrypto/libssl
dylibs.
This removes the versionless libs on macOS from the list of versions
2019-10-16 13:55:35 -06:00
Matthew Flatt
01ed8e4662 cs & ffi/unsafe: change base type of (_bytes o <n>) to _pointer
A base type of `_gcpointer` works ok for traditional Racket as a kind
of "maybe it's GCable, so treat it that way just in case". That
approach doesn't work for Racket CS, where `_gpointer` has to mean
"definitely GCable memory". Although the difference is unfortunate,
making Racket CS base `(_bytes o <n>)` on `_pointer` is consistent
with the way plain `_bytes` is like `_pointer` in Racket CS and like
`_gcpointer` in traditional Racket.
2019-10-16 13:52:21 -06:00
Matthew Flatt
e0b51e2709 expander: repair top-level compilation to machine-independent 2019-10-16 07:18:17 -06:00