Commit Graph

4179 Commits

Author SHA1 Message Date
Eli Barzilay
0c354d1735 New Racket version 5.3.5. 2013-06-15 17:11:06 -04:00
Eli Barzilay
46ae2ad04b Version number for the v5.3.5 release 2013-06-15 16:37:29 -04:00
Eli Barzilay
cb3fe56005 New Racket version 5.3.4. 2013-05-07 17:25:33 -04:00
Ryan Culpepper
d047c01bfa Update version number for the v5.3.4 release 2013-05-07 16:45:48 -04:00
Eli Barzilay
4c8a6acff0 New Racket version 5.3.3.901. 2013-04-29 23:40:28 -04:00
Ryan Culpepper
2b9c7c5357 fix version number and cstartup.inc for compiler change in prev commit 2013-04-28 14:37:55 -04:00
Matthew Flatt
4b9dfabcb3 fix bytecode compiler safefor-space, tigher bytecode validation
The safe-for-space pass could add clearing operations on "typed"
stack positions, which are known to contain a fixnum, flonum, or
extflonum. Non-clearing references, however, were not annotated to
indicate that clearing references were present, since clearing is
not expected on typed positions.

Along the lines of not expecting clearing, the bytecode validator's
encoding of the stack doesn't accomodate both "has a type" and "claims
never to be cleared", so it couldn't detect the bytecode compiler
bug. (Also, this problem didn't show up in the HOSC paper's model of
the validator, because the model pre-dates type tracking.)

Fix the bytecode compiler's space-safety pass so that it never inserts
clearing operations for typed stack positions. Then, the validator can
simply reject any attempt to clear a typed position.

Also, annotate applications generated by lifting as safe-for-space
tail calls.

Merge to v5.3.4
(cherry picked from commit 7ad1ddab64)

Conflicts:
	src/racket/src/cstartup.inc
	src/racket/src/schvers.h
2013-04-28 14:03:37 -04:00
Matthew Flatt
ebd9ebdd39 fix a JIT bug related to inlined structure constructors
Merge to v5.3.4
(cherry picked from commit fd883dbf32)
2013-04-28 13:31:18 -04:00
Matthew Flatt
b5ca3931f5 fix iteration on large hash trees
Bug introduced by 7a8c2ff063: a tree can be deep enough that the
representation of the path to the current item can be too big to
fit into 32 bits. It will always fit in 64 bits, though.

Merge to 5.3.4
(cherry picked from commit f09d1d1ae8)

Conflicts:
	src/racket/src/string.c
2013-04-23 18:18:03 -04:00
Matthew Flatt
b6bd86f825 win64: JIT stack-trace repair
Relevant to PR 13702

Merge to 5.3.4
(cherry picked from commit 5887d7808c)
2013-04-19 15:05:42 -04:00
Juan Francisco Cantero Hurtado
c5206dd8c2 Add MZ_TRY_EXTFLONUMS to OpenBSD.
Also add an error to unsupported platforms (copied from FreeBSD).

Merge to 5.3.4
(cherry picked from commit ac42864f3b)
2013-04-19 15:05:33 -04:00
Matthew Flatt
b9f28e106b JIT: fix inlined char->integer' and integer->char'
Put the result in the destination register, instead of always R0.

Merge to v5.3.4
(cherry picked from commit 0c4e155b88)
2013-04-18 17:26:08 -04:00
Juan Francisco Cantero Hurtado
592d762b35 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
(cherry picked from commit 5a566771e0)
2013-04-18 17:25:52 -04:00
Eli Barzilay
167a50ab53 New Racket version 5.3.3.900. 2013-04-17 18:30:26 -04:00
Eli Barzilay
59b18eec39 Make configure install the docs in the standard place.
Closes #315 (on github)
(cherry picked from commit 91aa7f3527)
2013-04-11 20:25:30 -04:00
Matthew Flatt
a8a5ee30d9 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
(cherry picked from commit e49956e3ea)
2013-04-11 20:25:26 -04:00
Matthew Flatt
1a9d7c5419 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).
(cherry picked from commit 842da32e48)
2013-04-11 20:25:12 -04:00
Ryan Culpepper
a23548d7be Alpha version number for the v5.3.4 release 2013-04-08 09:01:29 -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
Matthew Flatt
8122249602 avoid compiler warnings 2013-03-18 11:30:10 -07:00
Matthew Flatt
3bf9dd93dc fix header-file issues 2013-03-18 11:30:10 -07:00
Michael Filonenko
35a093469c windows: extflonum support
Enable extflonums in a MSVC build by relying on a MinGW-built DLL,
"longdouble.dll". The DLL is loaded on startup. If the DLL isn't
available, then `extflonum-available?' reports #f.

Instead of setting the floating-point mode globally to extended
precision, the mode is changed only just before (and restored right
after) extflonum arithmetic operations.
2013-03-18 07:42:32 -07:00
Tobias Hammer
2bae950273 Work around bug in QNX readlink
QNX readlink null-terminates its result and adds the termination
to the len-result. Fix by decrementing len if needed.
2013-03-10 07:18:04 -06:00
Matthew Flatt
5e20f51415 fix mark handling for impersonatored procedures to match docs
Using an impersonator property to represent an application mark was
a bad choice. The property gets propagated, so it is also on any later
chaperone layer, and then things go bad: the docs say that special
treatment is triggered by supplying an argument to `impersonate-property',
but it was actually triggered by the chaperone having the property.

Change the implementation to match the documentation. Using an
impersonator property to supply the mark should be regarded as a hack,
but now the implementaiton is at least consistent with the documentaiton.
2013-03-03 10:16:51 -07:00
Matthew Flatt
cdf0f6b9ab add 'so-mode to `system-type'
To work better with OpenBSD (which has been a problem since we
changed `ffi-lib' to open libraries in "local" mode by default).
2013-03-01 15:20:17 -07:00
Juan Francisco Cantero Hurtado
292c81a826 Fix `configure' for OpenBSD
"-rdynamic" doesn't work with GCC 4.7 on OpenBSD: "cc: error:
unrecognized command line option '-rdynamic'". The switch isn't
necessary because it is only a wrapper to "-Wl,--export-dynamic".
Look GCC bug 37454.
2013-03-01 15:20:17 -07:00
Matthew Flatt
ca4320467c fix missing initialization of cached inspector reference
The 3m transformation fills it in, but it's obviously
better to be explicit and avoid the bug for CGC.
2013-02-28 12:19:25 -07:00
Matthew Flatt
542c38ebc5 equality: struct transparency and inspector shortcuts and caching
Same as for hashing.
2013-02-28 12:19:25 -07:00
Matthew Flatt
2236363696 fix bug in hashing shortcut for transparency 2013-02-28 10:06:36 -07:00
Matthew Flatt
39aafe3a1e change `eq?' hashing to avoid dropping the low bit for fixnums 2013-02-28 06:51:26 -07:00