Commit Graph

35811 Commits

Author SHA1 Message Date
Matthew Flatt
ea6cef5246 Windows: make scheme_register_tls_space() always available
To make the API consistent for MSVC versus MinGW builds, make
a functional formerly required for embedding on 32-bit Windows
always available and required for all Windows variants.
2015-10-20 20:22:22 -06:00
Matthew Flatt
8620f95763 Windows distribution: remove compiler-specific libraries
Building creates compiler-specific files in "lib/msvc"
or "lib/gcc". For consistency, strip those directories
when creating a distribution.

The newly added ".def" file provides information that
would otherwise be lost by removing the MSVC ".lib"
file from the distribution.

Removing the compiler-specific ".obj" files means that
used to be included for linking extensions. My guess
is that the files are now completely unused.
2015-10-20 20:22:16 -06:00
Matthew Flatt
0e924525ee MinGW build: put ".lib", ".exp", and ".obj" in the right place
Those files are compiler-specific, so they should be in a "gcc"
subdirectory instead of "msvc".
2015-10-20 20:22:11 -06:00
Matthew Flatt
5056e5fd1b provide ".def" file for the Racket DLL
A ".def" file is compiler-independent.
2015-10-20 20:22:05 -06:00
Matthew Flatt
b8ba78d1d3 avoid slow TLS with MinGW
Recent versions of MinGW-W64 use emutls for `__thread` variables,
and that's much slower than Windows-native TLS. Go back to the
inline-assembly implementation of therad-local access.
2015-10-20 20:21:58 -06:00
Matthew Flatt
5d74897aa4 always install static "mzconfig.h" for Windows 2015-10-20 20:21:53 -06:00
Matthew Flatt
10b3e8040a extra version-number pattern for Windows versioning 2015-10-20 20:21:44 -06:00
Matthew Flatt
dfab18fe47 configure: infer static linking of libwinpthread for MinGW
Merge to v6.3
2015-10-20 08:49:09 -06:00
Matthew Flatt
dad2804412 make MinGW build use the LIBS environment variable
Merge to v6.3
2015-10-19 20:23:00 -06:00
Matthew Flatt
7cffdca067 work around an access() problem on Mac OS X
... again.

Merge to v6.3
2015-10-19 17:48:53 -06:00
Matthew Flatt
079183eb6a fix cross-build for Windows to use setup/winvers-change
Merge to v6.3
2015-10-19 17:48:53 -06:00
Matthew Flatt
836316f5ed fix TEST_ALTERNATE_TARGET_REGISTER build
Merge to v6.3
2015-10-19 17:48:53 -06:00
Matthew Flatt
d8733b4c52 update racket/HISTORY.txt for v6.3
Merge to v6.3
2015-10-19 17:48:52 -06:00
Vincent St-Amour
8598d203fa Add a missing property to an expression lifted by the contract system.
Caused TR to miss it.
2015-10-19 16:23:01 -05:00
Matthew Flatt
04e546716e fix typo
Thanks to Jack Firth.
2015-10-19 08:09:23 -06:00
Phil Nguyen
056ec806d5 fix ranges of set-union!, set-intersect!, dict-clear! to be void? in doc 2015-10-19 08:08:22 -06:00
Juan Francisco Cantero Hurtado
e957a7d655 Add config for linux/ppc64. 2015-10-19 07:55:30 -06:00
Matthew Flatt
e803a3c15e unbreak no-places, no-futures build 2015-10-17 07:00:37 -06:00
Matthew Flatt
c50c23c134 GC: toward incremental collection
Make the old-generation marking process incremental
on request, where `(collect-garbage 'incremental)`
makes a request.

Only the marking phase of an old-generation collection
is incremental, so far. In exchange for slower
minor collections and a larger heap, you get a major
collection pause time that is roughly halved. So, this
is a step forward, but not good enough for most purposes
that need incremental collection.

An incremental-mode request sticks until the next
major GC. The idea is that any program that could
benefit from incremental collection will have
some sort of periodic task where it can naturally
request incremental mode. (In particular, that
request belongs in the program, not in some external
flag to the runtime system.) Otherwise, the
system should revert to non-incremental mode, given
that incremental mode is slower overall and can
use much more memory --- usually within a factor of
two, but the factor can be much worse due to
fragmentation.
2015-10-16 21:08:23 -06:00
Matthew Flatt
7db0c3b1d4 avoid changing mark bits for old objects
For a minor GC and pages that contain backpointers,
leave mark bits as they are; instead make a pass to
shift mark bits for new objects to "dead" bits, and
use dead bits for fixup.

This change is intended as a small step toward incremental
collection.
2015-10-16 18:10:30 -06:00
Alex Knauth
6b93b18a1a syntax/parse: update pattern expander docs 2015-10-16 18:03:40 -04:00
AlexKnauth
2acb10a5da syntax/parse: add test for non-tilde pattern expander 2015-10-16 18:03:40 -04:00
Alex Knauth
4d703fa2e2 syntax/parse: allow pattern expanders that don't start with tilde 2015-10-16 18:03:40 -04:00
Ryan Culpepper
d47b96970c make Windows build work on case-sensitive filesystems 2015-10-16 17:18:34 -04:00
Matthew Flatt
6199f9a596 GC: use generation 1/2 consistently within a collection
The rule for using generation 1/2is based on the current
memory use versus the maximum size of generation 0. Recent
changes to the GC have caused that size to vary during
a collection, which means that the choice to use generation
1/2 or not can change within a collection.

Partial use of generation 1/2 doesn't inherently cause problems, but
it can cause a generation-1 object to point to a generation-1/2 object
even though the former was allocated after the latter. That's a
problem on if getting generations out of order relative to allocation
order can create problems. As it happens, reset_finalizer_tree()
checks the generation of the finalization record and not the finalized
pointer, because the record is always allocated after the pointer.

Merge to v6.3
2015-10-15 16:02:36 -06:00
Sam Tobin-Hochstadt
03bf7d3def Remove added printf. 2015-10-14 15:29:27 -04:00
Sam Tobin-Hochstadt
a4d292b21a Use an unsigned type for sizes.
Fixes this crash http://drdr.racket-lang.org/32121/pkgs/racket-test/tests/racket/stress/fuzz.rkt
found by fuzz testing.
2015-10-14 15:27:13 -04:00
Sam Tobin-Hochstadt
297fb75009 Support -q flag for individual pkg tests. 2015-10-14 09:39:38 -04:00
Sam Tobin-Hochstadt
a3142ac257 Increase sleep time to avoid races on loaded test machines.
Hopefully alleviates DrDr & Travis failures.
2015-10-14 09:38:56 -04:00
Sam Tobin-Hochstadt
f400dab912 Add a check in the compilation-top reader.
This bug was found by fuzz testing.
2015-10-13 17:50:04 -04:00
Sam Tobin-Hochstadt
f63188b4ea Refactoring. 2015-10-13 17:49:18 -04:00
Sam Tobin-Hochstadt
e53492a68f Support environment variable for setting global seed. 2015-10-13 17:49:18 -04:00
Matthew Flatt
20f31fb742 set a bit to prevent corruption of flags via hashing
Certain datatypes in the runtime system are not supposed
to be hashed, where bits normally reserved for hash codes
are used for other purposes. A bad bytecode file can cause
some of those to be hashed, anyway. Normally, the damage is
isolated to that content of the damaged bytecode, but
certain variable-reference bytecode forms are both shared
and non-hashable. Set a bit that ensures hashing will not
change flags in the shared object.

This problem was exposed by fuzz testing.
2015-10-12 19:27:13 -06:00
Vincent St-Amour
42eb8ae332 Do shallower checkouts if possible. 2015-10-12 15:40:22 -05:00
Vincent St-Amour
511fa20825 Fix flag name. Bring in line with docs.
Please merge to 6.3.
2015-10-12 14:52:23 -05:00
Vincent St-Amour
9fe486b9e0 Add missing history annotations.
Please merge to 6.3.
2015-10-12 14:43:19 -05:00
Vincent St-Amour
270bbccf6b Fix history annotations to refer to 6.3.
Please merge to 6.3.
2015-10-12 13:49:55 -05:00
Matthew Flatt
5afdae8af9 net/url-string: change parsing of "file:" URLs for Windows
History of the parsing of "file:" URLs for Windows:

 * In response to PR 8060 (April 2006): special handling added to
   support ill-formed URLs that were (are?) commonly used for
   filesystem paths.

 * Follow-up to PR 8060 (April 2008): added `path->url` and
   `url->path`.

 * In response to #1086 (October 2015, the commit): changed
   Windows-specific handling to be more constrained and added support
   for the proper encoding of UNC paths --- where "proper" means
   "according to a blog post from late 2006", which appears to be as
   close as we get to documentation of the URL encoding for Windows
   paths.
2015-10-12 08:50:25 -06:00
Matthew Flatt
6c0ffe1ba2 add missing history
Merge to v6.3
2015-10-11 07:44:55 -06:00
Ryan Culpepper
a6835422bf Post-release version for the v6.3 release 2015-10-09 15:23:31 -04:00
Paolo G. Giarrusso
a2b213ad1b Fix typos 2015-10-08 19:03:36 -06:00
Matthew Flatt
aa7c3ac38b use libtool install -s to install libraries
Use `install -s` instead of `strip -S` when building shared libraries
via libtool.
2015-10-08 19:02:47 -06:00
Sam Tobin-Hochstadt
6b0e3f2aeb Run the pkg tests on Travis.
- Add indirectly-missing dep for pkg tests.
 - Configure git on Travis to help pkg tests.
2015-10-08 17:38:59 -04:00
Sam Tobin-Hochstadt
de27223635 Add a quiet mode to the pkg tests. 2015-10-08 17:38:59 -04:00
Matthew Flatt
7555d022db for CPP, detect __linux__, etc., instead of linux, etc.
When a compiler is run in standards mode, predefined macros that
do not start with "_" are dropped, so use the "_" versions
consistently. Whether or not Racket itself would compile in
standards mode, the Racket headers should be able to work that
way --- at least on Unix platforms.
2015-10-08 10:53:23 -06:00
Matthew Flatt
85c1ba55f3 fix native-stacktrace interaction with thread start
Repairs 4d3852ae69.
2015-10-06 19:11:28 -06:00
Matthew Flatt
a5f6bf34dc raco pkg: refine handling of HTTP status codes
Treat only 404 and 410 as "not found" errors, retry on 5xx
errors, and treat anything else as an error insteda of "not found".
2015-10-06 17:47:46 -06:00
Matthew Flatt
4d3852ae69 add indirection on thread start to avoid ObjC exception issues
In Mac OS X 10.11, something about the use of exceptions triggers
a libunwind stack traversal, and that traversal runs into trouble
with Racket's stack mangling for threads. Inserting generated code
in the stack frame sequence causes libunwind to give up and avoids
a crash (e.g., with `-j -l drracket` on startup).
2015-10-06 09:32:58 -06:00
Matthew Flatt
f86c5dfe0a document openssl/libcrypto and openssl/libssl 2015-10-05 17:40:19 -06:00
Matthew Flatt
3bcd153fb6 adjust copyright dates: 2014 -> 2015
Better late than never?
2015-10-05 13:39:11 -06:00