Commit Graph

4190 Commits

Author SHA1 Message Date
Matthew Flatt
5887d7808c win64: JIT stack-trace repair
Relevant to PR 13702

Merge to 5.3.4
2013-04-19 10:17:30 -06:00
Matthew Flatt
b9ff55b7e1 upgrade libffi to 3.0.13
This upgrade is particularly for repairs to ARM and the VFP ABI.
2013-04-19 07:54:31 -06:00
Juan Francisco Cantero Hurtado
ac42864f3b Add MZ_TRY_EXTFLONUMS to OpenBSD.
Also add an error to unsupported platforms (copied from FreeBSD).

Merge to 5.3.4
2013-04-18 17:33:43 -06:00
Matthew Flatt
55a66dc4cb JIT ARM: improve stack trace
Fix a problem at the boundary of DWARF-driven backtrace
and frame-driver backtrace, as well as handling of the
JIT's different internal calling conventions.

Also, allow crossing back from frame-driven to DWARF-driven.
2013-04-18 17:22:11 -06:00
Matthew Flatt
d9f7353d63 android: disable libunwind for now
There's an issue with dl_iterate_phdr().
2013-04-18 11:14:46 -06:00
Matthew Flatt
99b1571708 src/README: improve notes on cross-compilation 2013-04-18 10:55:32 -06:00
Matthew Flatt
d44ed9ab53 configure: strip debug symbols on install by default 2013-04-18 10:55:32 -06:00
Matthew Flatt
0c4e155b88 JIT: fix inlined char->integer' and integer->char'
Put the result in the destination register, instead of always R0.

Merge to v5.3.4
2013-04-18 08:21:55 -06:00
Matthew Flatt
4cc29194d1 Unix: initialize `current-directory' from the PWD environment variables
... when PWD is defined and when it refers to the same directory
as the result of getcwd().

A shell sets PWD before starting Racket to communicate a preferred
way of referring to the current directory, which may involve soft
links that are not reflected in getpwd().
2013-04-18 06:37:53 -06:00
Juan Francisco Cantero Hurtado
5a566771e0 Change the default stack size to safe values on OpenBSD.
With this patch racket will never grow beyond of the defaults limits of
the OS and also it doesn't limit the stack size to a fixed value.

Merge to v5.3.4
2013-04-17 17:16:02 -06:00
Matthew Flatt
75d97185c9 ARM JIT: use static configuration
The output of "/proc/cpuinfo" seems wrong for a Raspberry Pi running
the latest Raspian, because it claims ARMv6-compatible but also claims
"thumb" as a feature and 7 as the CPU architecture. Use the C compiler's
configuraton, instead, which is relatively straightforward and drops
code that will turn out to be dead.
2013-04-17 16:58:08 -06:00
Matthew Flatt
bd1ac6d77e Fix JIT for ARMv6 (i.e., no thumb support) 2013-04-17 16:58:08 -06:00
Matthew Flatt
fd614991e6 code tweaks 2013-04-11 06:50:13 -06:00
Matthew Flatt
a9a20e9aa7 fix the name of `environment-variables-ref'
Also, fix use of unsetenv() to work with platforms where it returns
void.
2013-04-11 06:42:54 -06:00
Matthew Flatt
661a1dd5e2 GC tweaks
In a minor collection, old-generation pages can be ignored for
the fixup pass. Also, the "moved" bit implies the "marked" bit.

Also, move the mark bits to low and the hash bits to high,
which leads to slightly better generated code for the GC.
2013-04-11 06:42:54 -06:00
Eli Barzilay
f7ca24d1b3 New Racket version 5.3.4.3. 2013-04-11 03:30:16 -04:00
Eli Barzilay
91aa7f3527 Make configure install the docs in the standard place.
Closes #315 (on github)
2013-04-10 23:46:05 -04:00
Matthew Flatt
d4fa2766c2 performance tweaks for `for/{fx,fl,extfl}vector'
Also, provide a better error message when the body produces a
non-{fix,flo,extflo}num.
2013-04-10 17:26:38 -06:00
Matthew Flatt
37c55967b0 sconfig adjustment to accomodate PPA build
The build process expects the definition of
SCHEME_PLATFORM_LIBRARY_SUBPATH to make sense as a shell
expression, or something like that.
2013-04-10 17:26:38 -06:00
Matthew Flatt
e49956e3ea fix hole in validator
The validator was not as smart as the compiler in determining
that a `let' expression could be relied on to produce a
constant-shaped function (without side effect or error) in the case
that a right-hand side expression is a call to a known structure
constructor or predicate.

Closes PR 13679

Merge to v5.3.4
2013-04-10 15:06:13 -06:00
Matthew Flatt
6ea9a2b3e3 add `make-environment-variables'
Swap order of argument for `environment-variables-get'
and `environment-variables-set!', so that the environment
variables come first --- which follows the usual order.
This change means that the parameter isn't used to get
the default environment variables, but that seems ok; the
convenient interface is `getenv' and `putenv'.

On Windows, case-normalized environment variable names.

Also, change the implementation to use an immutable hash
internally.
2013-04-10 12:06:29 -06:00
Matthew Flatt
842da32e48 racket/udp: fixed for udp-bind!' and udp-connect!'
Fix ephemeral-port support in `udp-bind!', and
change `udp-bind!' and `udp-connect!' to try address
resolutions in order to find one that works (which is
typically needed to auto-select an IPv4 or IPv6 variant
of an address).
2013-04-10 09:11:14 -06:00
Matthew Flatt
7a1ef9b0cc fix `dump-memory-stats' output
PTIdPTR use was wrong.
2013-04-10 07:12:35 -06:00
Matthew Flatt
3d1b0bd381 new environment-variable API
The `current-environment-variables' parameter determines the current
mutable "environment variable set". If that set is the initial one for
a Racket process, then using the set corresponds to working with OS
environment variables.  Otherwise, it's really just a hash table that
is packaged up as OS environment variables if a subprocess is created.

The new environment-variable interface works in terms of bytes, instead
of assuming that environment variable names and values fit in a string
encoding.

The string-based `getenv' and `putenv' are still available as
convenience wrappers. The checking on environment-variable names
for those wrappers is a little tighter, preventing any attempt to use a
name that contains "=".
2013-04-10 06:59:33 -06:00
Matthew Flatt
97fdd976f3 fix various compiler warnings
Resort to gcc annotations in some cases, but avoid disabling whole
classes of warnings.
2013-04-09 10:55:21 -06:00
Eli Barzilay
f57fbd94a6 Fix old pointers to COPYING.txt that should go to COPYING_LESSER.txt. 2013-04-09 05:41:07 -04:00
Eli Barzilay
127be39816 New Racket version 5.3.4.1. 2013-04-09 03:40:24 -04:00
Matthew Flatt
d5ede87ae8 JIT for ARM
Includes switch from LGPL 2.1 to LGPL 3, since the ARM port
of GNU lightining is licensed under LGPL 3.
2013-04-08 14:43:30 -06:00
Ryan Culpepper
6fdef0dcfc Post-release version for the v5.3.4 release 2013-04-08 09:01:57 -04:00
Eli Barzilay
0cb85a85a1 New Racket version 5.3.3.9. 2013-04-07 03:30:16 -04:00
Matthew Flatt
aa18b93e63 bump version number 2013-04-06 07:06:46 -06:00
Tony Garnock-Jones
c4f4c6ab5d Make xform build step work in Windows builds 2013-04-06 06:49:13 -06:00
Tony Garnock-Jones
314bc49714 UDP Multicast primitives and documentation. 2013-04-06 06:49:13 -06:00
Tony Garnock-Jones
d78456b88b Support SO_REUSEADDR on (udp-bind!), for multicast use. 2013-04-06 06:49:13 -06:00
Matthew Flatt
f24b91a1cc fix interference of unboxing inference for different arguments 2013-04-06 06:42:01 -06:00
Vincent St-Amour
8948388ec5 Fix another unsafe optimization of unsafe-fxmodulo.
Found using random testing.
2013-04-02 16:29:10 -04:00
Matthew Flatt
8c89451fbb configure: libffi after pthread
On OpenBSD, for example, the libffi link test doesn't work until
"-pthread" is in $LIBS.

Also, make `configure' complain if `--enable-libffi' is specified
and linking to libffi fails.
2013-04-02 06:06:56 -06:00
Matthew Flatt
9efb14e434 system-type: fix 'so-mode 2013-03-30 14:13:02 -06:00
Matthew Flatt
a1dccb4aa8 repairs for MinGW builds
The changes make extflonums work when compiling with SSE arithmetic
for `double's.
2013-03-30 10:55:59 -06:00
Matthew Flatt
ba270cde48 fix over-eager "optimization" of some unsafe-fx operations
As reported by Vincent.
2013-03-29 14:46:19 -06:00
Matthew Flatt
72b5b984b3 places: fix problem in clean-up
The problem was created by recent changes to allow GC
of threads that are blocked on certain place channels.
2013-03-27 17:17:33 -06:00
Eli Barzilay
9b99d3e314 New Racket version 5.3.3.8. 2013-03-27 03:30:16 -04:00
Matthew Flatt
4d76aa2040 place channels & threads: improve GC
Allow a thread to be GCed when it is blocked on a place
channel for reading and the place channel's write end
is inaccessible.

GC is limited to threads that do not participate in cycles
of such threads, where the otherwise unerachable threads
are blocked on place channels that are reachable among the
set of threads. In other words, the GC finds the greatest
fix point (as measured by the threads to retain) instead of
least fix point --- which isn't what you want, but finding
the least fix point seems to require significant extra GC
machinery across places.

This improvement was intended to solve the same problem as
commit 7b0608c, but that case seems to run into the limitation
on cycles.
2013-03-25 05:15:24 -06:00
Matthew Flatt
b34fac32c0 fix space-safety problem
A tail call with certain kinds of primitives would fail to
clear local bindings in a detectable way. For example, a
tail call to `sync' that blocks could retain references
to unreachable data in the context of the `sync' call.

Primitives that can cause problems in the run-time system
are already identified as "imemdiate" primitives. The
safe-for-space pass now inserts clearing actions before a tail
call, unless the call it to a known immediate primitive or a
Racket-implemented function.

Clearing operations are now omitted before non-tail calls
to immediate operations like structure predicates.

The newly added clearing operations could affect performance,
but they probably won't, since the clear operations are still
avoided in tail-call cases that are otherwise fast. The newly
omitted clearing operations may improve performance.
2013-03-25 05:15:24 -06:00
Matthew Flatt
c3266ef685 fix `sync/[timeout/]enable-break' semaphore shortcut
The shortcut could be triggered in a bad case (first
argument as `#f' in non-timeout mode) and returned the
wrong result (void instead of the semaphore).
2013-03-25 05:15:24 -06:00
Matthew Flatt
3886b7702e fix for `syntax-local-value/immediate'
The source locaiton on the second result was mangled.

Closes PR 12477
2013-03-21 14:29:40 -06:00
Matthew Flatt
30a4b481dd fix submodule declarations nested in phases > 1 2013-03-21 11:51:46 -06:00
Matthew Flatt
111799ec94 Mac OS X: use IPV6_V6ONLY
As of 10.8, Mac OS X seems to behave more like Linux in the way
that IPv6 and IPv4 binding interact.

Closes PR 13193
2013-03-21 11:51:46 -06:00
Matthew Flatt
b40c91e6f4 more fixes to avoid warnings 2013-03-18 13:47:11 -07:00
Matthew Flatt
1e31d99ca3 fix non-extflonum build 2013-03-18 11:30:10 -07:00