Commit Graph

3757 Commits

Author SHA1 Message Date
Matthew Flatt
c321608856 fix a problem with continuation allocation
i.e., fix commit 2ad41bb669

Merge to 5.3
2012-04-15 08:23:10 -06:00
Matthew Flatt
ff378d12ce fix interaction of delimited continuations and stack overflow
Closes PR 12702, 12704

Merge to 5.3
2012-04-15 05:37:45 -06:00
Matthew Flatt
2ad41bb669 fix potential GC problem with continuation copies
Merge to 5.3
2012-04-15 05:37:45 -06:00
Matthew Flatt
4179cbfa63 enforce ranges on all integer types
DO NOT merge to 5.3
2012-04-15 05:37:44 -06:00
Matthew Flatt
6566bf5d15 fix most-negative number and _int64 on a 64-bit platform
Closes PR 12703

Merge to 5.3
2012-04-15 05:37:44 -06:00
Eli Barzilay
76bbc1a89f New Racket version 5.3.0.1. 2012-04-11 03:30:17 -04:00
Matthew Flatt
1914345af4 fix submodule re-`expand' problem
Closes PR 12691

Merge to 5.3
2012-04-10 15:57:50 -06:00
Ryan Culpepper
48c2a63d7f Post-release version for the v5.3 release 2012-04-10 11:27:59 -06:00
Matthew Flatt
104e70bf65 fix JIT bug related to list-ref' and list-tail'
Closes PR 12688
2012-04-08 17:16:36 -06:00
Matthew Flatt
5a04be6445 streamline chaperoned struct field reference
The usual techniques: shortcut around generic scheme_apply() for
chaperone-triggered slow path, shortcut around scheme_apply() for
application of a native-code interposition function,  and shortcut
`chaperone-of?' test by trying `eq?' first.
2012-04-07 09:28:49 -06:00
Matthew Flatt
e3bba26c4a win32: fix `find-executable-path' for an empty PATH
The current directory is always implicitly in PATH, but it
was added by `find-executable-path' only when PATH is
non-empty.
2012-04-04 07:29:13 -06:00
Kevin Tew
a37cfa4e08 Fix compiler warning 2012-03-30 12:18:55 -06:00
Arek Korbik
7bf475b7cc Fix sleeping on infinite timeouts.
Closes PR 12661
2012-03-29 14:55:14 -06:00
Matthew Flatt
738cac3d24 generalize `malloc' to allow a 0-sized request
Past experience suggests that this is generally better than adding
`zero?' tests at various places that might otherwise call `malloc'.
2012-03-29 14:55:14 -06:00
Matthew Flatt
f301838511 fix a syntax-object problem related to module bindings
The immediate symptom was that `(provide (all-defined-out))'
didn't work in a `module+'-based submodule, but there were
also non-submodule ways to expose the problem.
2012-03-29 14:55:13 -06:00
Matthew Flatt
ebb72d40e8 avoid bad interior pointer 2012-03-29 08:58:01 -06:00
Matthew Flatt
140a50d04e fix a problem with submodule expansion 2012-03-29 06:46:58 -06:00
Kevin Tew
8c22c6c4e5 Remove unused variable compiler warning 2012-03-28 20:05:06 -06:00
Eli Barzilay
acfe585c93 Some cleanups, mainly around badly indented CPP directives. 2012-03-25 20:57:52 -04:00
Eli Barzilay
4469b669fc New Racket version 5.2.900.2. 2012-03-24 03:35:16 -04:00
Matthew Flatt
6e3c3d8b71 MSVC project fixes for various Debug and SGC modes 2012-03-23 17:58:39 -06:00
Matthew Flatt
ae89e210fb allow (submod "..")' as a shorthand for (submod "." "..")'
Also, `(submod ".")' is allowed as a module path; it's not useful,
but it makes the grammar slightly more regular.
2012-03-22 18:43:11 -06:00
Kevin Tew
d4d5ca70fb Hold reference to original thread during BEGIN_ESCAPABLE in place-channel sync
Fixes several bugs related to killed threads that were in the middle of
syncing on place-channels.
2012-03-22 14:52:48 -06:00
Matthew Flatt
16ef341e98 fix JIT bug related to inlining `variable-reference-constant?' 2012-03-21 19:37:46 -06:00
Matthew Flatt
47ae2b387a fix shaodwing problem in `module*' 2012-03-20 07:28:35 -06:00
Kevin Tew
9be864b2f8 Fix sync/timeout hang due to place channels - forgot to git add 2012-03-16 08:39:58 -06:00
Kevin Tew
666c0fdb57 Fix sync/timeout hang due to place channels 2012-03-16 08:18:05 -06:00
Matthew Flatt
9838cb37e8 remove debugging code that was accidentally pushed 2012-03-13 18:46:28 -06:00
Matthew Flatt
415b1eabc4 more load[/use-compiled] handler fixes for submodules
Closes PR 12630
2012-03-13 14:31:40 -06:00
Matthew Flatt
366aa2c42d fixups for the `module-path?' change 2012-03-12 21:10:14 -06:00
Matthew Flatt
542f19c00e fix default `load/use-compiled' handler
A module shouldn't be loaded from source to find a submodule
if a module for the source is already declared.
2012-03-12 21:10:14 -06:00
Matthew Flatt
facc8db712 change module-path?' to subsume path?'
Although th eoriginal idea was to distinguish "text" paths
from derived filesystem paths, practically everythign that accepts
a module path also accepts a path. Building the generalization into
`module-path?' makes it easier to support `submod' wrappers on paths,
and it seems to fix things rather than break them.
2012-03-12 21:08:54 -06:00
Matthew Flatt
060515b9cd extend string-literal syntax to allow surrogate-style \u pairs
For example, "\uD834\uDD1E" is another way to write "\U01D11E",
while "\uD834", "\uDD1E" or "\uDD1E\uD834" are still errors.
2012-03-12 21:03:20 -06:00
Matthew Flatt
e1a5e032cb further fixes to vector abuse 2012-03-12 11:47:18 -06:00
Matthew Flatt
018292ec00 GC with backtraces: add structure-type listing 2012-03-12 11:36:04 -06:00
Matthew Flatt
3073c994f5 make GC backtrace show eq hash code 2012-03-12 10:59:47 -06:00
Matthew Flatt
420d3e7717 fix JIT bug exposed by OpenBSD 5.0
This is the second attempt to fix a problem with using a JIT-generated
address in JIT-generated code.

Closes PR 12627
2012-03-12 08:23:17 -06:00
Matthew Flatt
8f0cf5ba9e work around problem with gcc-4.0 build on Lion 2012-03-12 07:45:25 -06:00
Matthew Flatt
2ba910ef23 avoid compiler warning 2012-03-12 07:45:25 -06:00
Matthew Flatt
64f21122be avoid compiler warning 2012-03-10 10:52:52 -07:00
Matthew Flatt
402fdaad9a fixes and improvements for 3m backtraces 2012-03-10 08:30:02 -07:00
Matthew Flatt
34314c1e7a fix JIT bug
The bug happens with n-ary uses of arithmetic operations that
have constant arguments but couldn't be constant-folded ---
maybe due to a divide-by-zero.
2012-03-10 08:30:01 -07:00
Eli Barzilay
5c051f3ec9 New Racket version 5.2.900.1. 2012-03-10 03:30:15 -05:00
Kevin Tew
024bb8a718 Eliminate compiler warnings 2012-03-09 12:40:22 -07:00
Matthew Flatt
e73be4a9ae fix internal abuse of vectors
Using NULL in a vector slot can crash bracktrace printing;
replace it with `#f'.
2012-03-09 12:05:36 -07:00
Matthew Flatt
f7eceb4554 dierct reference to scheme_null in Win32 executable 2012-03-09 10:37:56 -07:00
Matthew Flatt
3a1e8803ff fix errortrace for submodules 2012-03-09 10:34:56 -07:00
Matthew Flatt
566759a5fa progress on submodule docs; bug fixes 2012-03-09 10:34:56 -07:00
Matthew Flatt
3d69dfab86 first cut at submodules 2012-03-09 10:34:56 -07:00
Matthew Flatt
facb411a63 fix problems with place termination 2012-02-29 20:20:55 -07:00
Eli Barzilay
f7c67b49a4 Big newline at EOF scan. 2012-02-29 00:28:11 -05:00
Matthew Flatt
829820e458 fix problem with continuations
A tail call to a continuation could trigger a GC at a bad time
while checking whether an escape variant of the contination
is valid.
2012-02-28 15:35:38 -07:00
Matthew Flatt
70ab6d482a fix problem with continuations
The problem was a misplaced allocation that could cause a GC
when the thread is in an unstable state in the process of
applying a continuation.
2012-02-28 15:35:38 -07:00
Matthew Flatt
534886dbe4 limit time for getting a native (JIT) stack trace
It's possible for a deep recursion to be all in C instead of
JIT-generated code, in which case the caching code for
`current-continuation-mark' cannot kick in to make the operation
effectively constant time. Bail out (to keep things constant time) if
that happens.
2012-02-27 14:46:03 -07:00
Kevin Tew
3e0e4a3f6b Allow hashes across place channels. 2012-02-27 10:11:04 -07:00
Matthew Flatt
0dcc96c5eb fix JIT, `unsafe-struct-ref', chaperone, and procedure property 2012-02-27 06:57:44 -07:00
Eli Barzilay
3426b57fb9 New Racket version 5.2.1.7. 2012-02-27 03:45:15 -05:00
Matthew Flatt
188c6fdc66 add `log-max-level'
As suggested by Tobias Hammer
2012-02-26 22:13:02 -05:00
Matthew Flatt
21a07ae9d6 fix problems with `(_fun #:in-original-place? #t ....)'
The old implementation could cause deadlock by blocking on a semaphore
while waiting for the original place to run a callback, but a master
GC might be needed (and the blocked place wouldn't get the signal).

Beside fixing that problem, a potential memory leak is fixed in
calling an ffi funcition and having a Racket->C unmarshaling fail.
Also, the GC marking routine for a `place' value didn't reference the
place's underlying `place_obj' value.
2012-02-26 22:13:01 -05:00
Matthew Flatt
dc1d4e80dd fix incorrect GC decls hard-wired into xform
Closes PR 12602
2012-02-26 03:58:21 +00:00
Matthew Flatt
a025f7e9c8 fix bug in bytecode optimizer
The bug is triggered by unsafe flonum operations, a
conversion that tries to make the arguments more unboxable,
and a `lambda' form within an argument to the unsafe
operation.

Closes PR 12587
2012-02-22 06:54:26 -07:00
Eli Barzilay
c007c345f9 A bunch of more typos like the ones in David's commit. 2012-02-21 14:21:43 -05:00
Matthew Flatt
6371df556c yet anther attempt to work around the Mac 10.7 localtime() bug
I now think the problem is likely to be realted to values
that do not fit into a signed 32-bit integer. Check for
the OS version and reject such integers.
2012-02-20 08:09:06 -07:00
Stephen A. Goss
11f7dfbdcc make it clear how to select a language from command line 2012-02-20 08:09:05 -07:00
Matthew Flatt
0e40cfcdc8 declare `char' fields used as signed
With some compilers or platforms, `char' means an unsigned
value, so we have to be explicit with `signed char'.
2012-02-19 06:25:29 -07:00
Matthew Flatt
11de33d4ff remove MysterX DLL, replace with wrapper around `ffi/com'
The ActiveX part of MysterX is gone. The `ffi/com' re-imeplemtnation
provides only core COM support.

The "mysssink" DLL is still needed, and its source is still
in the tree, but it is downloaded in the same way as other
pre-built DLLs. The DLL no longer needs to be registered with
regsvr32.
2012-02-17 06:37:19 -07:00
Matthew Flatt
566e9bb8bf make MzCOM /v report errors 2012-02-17 06:36:23 -07:00
Matthew Flatt
a71ac65a27 fix CPP mistake 2012-02-17 06:36:23 -07:00
Matthew Flatt
084278fabc handle-evt' cannot wrap handle-evt'
The prohbition against `handle-evt' on `handle-evt' is as
document and as originally intended. I'm not sure why it
was allowed.

Existing programs that use `handle-evt' incorrectly
can break. I found and fixed one incorrect use and one
questionable use in the Racket tree (which is a small
minority of the uses of `handle-evt' in the tree).
2012-02-15 18:59:24 -07:00
Eli Barzilay
63b8d3dd91 New Racket version 5.2.1.6. 2012-02-15 03:30:15 -05:00
Matthew Flatt
6cd2e3c71b add `prop:cpointer'
Extend `define-cstruct' to support #:property specs, which causes
the constructor and C->Racket coercsions to wrap the pointer in
a structure instance with the specified properties. Of course,
the wrapper structure has a `prop:cpointer' property so that the
wrapper can be used transparently as a C pointer.

Add missing tests and documentation for the id`->list', `list->'id,
id`->list*', and `list*->'id bindings created by `define-cstruct'.
2012-02-14 14:25:55 -07:00
Matthew Flatt
108ae59157 fix lib sizes
(I changed the wrong platform previously.)
2012-02-13 16:27:52 -07:00
Matthew Flatt
2c479683d1 add --launcher'/-l' flag to `raco exe' to create launchers
This addition triggered several other changes:

 * -k for a Mac OS X embedding is now relative to the __PLTSCHEME
   segment (which means that executables won't break if you strip
   them, for example)

 * the command-line no longer has a limited size for Mac OS X
   launchers and embedding executables

 * Mac OS X GUI and Windows launchers record the creation-time
   collection path, unless they are created as "relative" launchers
2012-02-13 16:27:51 -07:00
Matthew Flatt
af92773407 cocoa 64-bit: Core Text patch for Pango
With this patch, the font fallback mechanisms in `racket/draw'
can locate suitable replacement glyphs, the same as for the
Pango ATSUI back end.
2012-02-13 10:26:56 -07:00
James Swaine
7114f08c0b Added tests for would-be-future
Minor fixes to would-be-future
Added futures-enabled? primitive
Added primitive name to future-event struct
2012-02-12 01:32:30 -06:00
Sam Tobin-Hochstadt
5cf5175aeb Improve `get-libs' error message. 2012-02-11 16:00:50 -05:00
Matthew Flatt
11389e7a8c remove unused local 2012-02-11 08:26:27 -07:00
Ryan Culpepper
7882dadc3a fixed scheme_wrong_type call (wrong index) 2012-02-10 22:12:54 -07:00
James Swaine
a5676e9a68 Added would-be-future 2012-02-10 20:05:43 -06:00
Matthew Flatt
7e7c45f100 fix race condition in subprocess handling (when places enabled) 2012-02-10 14:02:12 -07:00
Matthew Flatt
6abb87069c fix error-message formatting
Closes PR 12565
2012-02-10 06:17:19 -07:00
Matthew Flatt
937cdf51d7 change `current-write-relative-directory' to support more path conversions
In particular, allow a pair of a relative-to directory and a base
directory. Paths that syntactically extend the base directory are
recorded as relative to the relative-to directory (which must
syntactically extend the base directory).

The compilation manager now sets the parameter to a pair with
the base directory as the main collection directory, if the source
file's path extends that directory's path.

This generalization solves problems created by cross-module inlining,
where the source location of a procedure in bytecode can now be in a
different file than the enclosing module's file.

Also add a test that checks whether the build directory shows up
in any ".zo", ".dep", or documentation ".html" files.

Closes PR 12549
2012-02-10 06:17:18 -07:00
Matthew Flatt
77bd401a2d fix problems with marks and module for-syntax
Closes PR 12538
2012-02-09 17:34:15 -07:00
Matthew Flatt
a08a22bedb win32: accept Unicode error-message strings from the system
Closes PR 12559
2012-02-09 16:49:34 -07:00
Kevin Tew
4f3bec1792 pr# 12542 fixed - All symbol types are now allowed across place channels. 2012-02-08 10:21:59 -07:00
Kevin Tew
2de9de9b26 place-channel-put: value not allowed in a message
prints out just the invalid object, not the whole message
2012-02-07 13:07:02 -07:00
Matthew Flatt
8cf49dfdb1 fix format of some error messages
Closes 12536
2012-02-04 05:32:00 -07:00
Eli Barzilay
456fcd8aeb There is no "gc2/xform-collects" in the gracket build tree. 2012-02-04 03:03:18 -05:00
Eli Barzilay
dc7d14580f New Racket version 5.2.1.5. 2012-02-03 03:30:20 -05:00
Matthew Flatt
2f5430e227 update pre-built libraries 2012-02-02 08:04:12 -07:00
Sam Tobin-Hochstadt
4ea306ed61 Rewrite install code in '#%kernel to avoid startup time. 2012-02-02 06:32:55 -07:00
Robby Findler
f5a8c62823 Fix for NetBSD from Aleksej Saushev 2012-02-01 20:09:29 -06:00
Robby Findler
e4b1ef1b6e a second attempt to fix the icns files 2012-02-01 06:41:11 -06:00
Robby Findler
5db88e3ea7 added in smaller size icons in an attempt to see if that was the problem on
10.5 and 10.4
2012-01-31 21:11:16 -06:00
Matthew Flatt
ef846caaa1 tighten bound for Mac OS X 10.6 localtime() hack
It looks like my bound for last time was too conservative,
in that I looked for the lowest number that didn't seem
to fail in 10.6. The range of failing values is apparently
not continuous.

I've tightened the bound to match the lowest
number that produces a useful result on my 10.7 machine,
assuming that it works for a continuous range there.
(The new bound is higher than the number previously used as
a lower bound.)

Merge to 5.2.1
2012-01-30 14:03:35 -07:00
Matthew Flatt
6b6beb601e add PLT_VALIDATE_COMPILE to enable extra checking of the compiler
Setting the environment variable causes the bytecode compiler to run
the bytecode validator (which is normally applied to input from a
bytecode file) immediately on all of the compiler's own results.
2012-01-30 10:31:37 -07:00
Matthew Flatt
706d5026ac fix bytecode compiler bug
Certain `lambda'-lifting operations can cause information
about the flonumness of a variable to get lost, leading
to a mismatch between the closure's flags and flags on
a variable reference. (The bytecode validator could detect the
bug when loading the broken bytecode. The broken information,
meanwhile, was only used by the JIT.)
2012-01-30 10:30:51 -07:00
Eli Barzilay
4f52392dfc New Racket version 5.2.1.4. 2012-01-27 03:35:17 -05:00
Matthew Flatt
13a5b0c623 change `ffi-lib' to not make library symbols global by default 2012-01-26 09:30:25 -05:00
Matthew Flatt
481e061440 adjust `raco ctool --c-mods' and related to work with places
That is, the generated declare_modules() function registers the
module-declaration code so that it is run in any new place, too.

Merge to 5.2.1
2012-01-19 13:14:02 -07:00
Matthew Flatt
c723aeeb6a fix position counting in `read-byte'
Merge to 5.2.1
2012-01-19 13:14:02 -07:00
Matthew Flatt
4e4c40ae8c Mac OS X: work around a localtime() bug in 64-bit 10.6.8
For numbers around -67768122973228093, localtime() doesn't return in
10.6.8, while it returns NULL for 10.7.2. Work around the bug by
setting a lower bound that seems to be high enough to avoid the
problem (and that's lower than the lowest value that succeeds, so no
results are lost, at least for now).

Merge to 5.2.1
2012-01-17 16:09:46 -07:00
Matthew Flatt
d85f251eb2 fix stack unsafety for rest-arg functions
If a function with a rest arg is called with argv not at the
start of the runstack, then space is allocated for the rest-arg list
on the runstack without clearing the allocated slot. The value in
the slot could be a pointer that wasn't traversed by the most recent
GC, so it could crash a GC during allocation of the rest-arg list.

Also, tweak setup code for a function of no arguments, and improve
comments in the code.

Merge to 5.2.1
2012-01-17 08:58:14 -07:00
Matthew Flatt
ddd246232e fix JIT-generated code in case of arity mismatch
The generated code was checking arity after potentially copying
arguments to the start of the runstack (i.e., if the arguments
were not already there). If too few arguments are provided, then
the copy might access past the end of the given array.

The redundant arity check removed in commit f7c506471b
had previously masked this problem. (Or the check wasn't redundant
in that sense, but it's better this way.)

Merge to 5.2.1
2012-01-17 07:33:58 -07:00
Matthew Flatt
108c32e11f fix macro expander performance problem
The problem is related to marks that should cancel eagerly when
a form passes through many layers of macro expansion, such as in
the sieve stress test for `syntax-rules'.
2012-01-13 06:18:38 -07:00
Matthew Flatt
84d66ca8fe MysterX repairs
Merge to 5.2.1
2012-01-12 10:55:18 -07:00
Matthew Flatt
45d72785de skip `libtool --finish' if DESTDIR is set
Merge to 5.2.1
2012-01-12 06:55:38 -07:00
Eli Barzilay
7e86136545 New Racket version 5.2.1.3. 2012-01-12 03:50:23 -05:00
Matthew Flatt
a1fd742ed0 change Scribble xref formats, so that HTML info works for Latex
There's no particular reason that any one format will have all
the information that other formats need, but it conveniently works
for now that HTML info can subsume Latex info.
2012-01-11 16:39:52 -07:00
Matthew Flatt
af9d0e6976 add missing OS X thread-data synchronization
Merge to 5.2.1
2012-01-11 14:48:21 -07:00
Matthew Flatt
8976a4c99a avoid some unnecessary work in string port creation
These changes speed up string-port creation by 10% or so in my
tests --- nearly all of that by avoiding the repeated interning
of the symbol 'string.
2012-01-11 09:42:06 -07:00
Matthew Flatt
8c092f093b clean up and generalize optimizer support for omittable primitives
For example, the optimizer knew to drop `(cons x y)' if the result
is unused, but not `(pair? x)'.
2012-01-11 06:58:39 -07:00
Matthew Flatt
7850a26dfe fix bytecode optimizer bugs
Certain unsafe operations were allowed to propagate across a
`lambda' boundary (where space safety is known not to be an issue),
which could lead to duplicate uses of a "once used" variable if
the relevant `lambda' is inlined.

Furthermore, `lambda' boundary crossing wasn't detected in the case
that the operation to propagate was propagated through an intermediate
variable without a `lambda' crossing.

Merge to 5.2.1
2012-01-11 05:30:11 -07:00
Eli Barzilay
dc2aa3ea5c New Racket version 5.2.1.2. 2012-01-10 03:50:17 -05:00
Matthew Flatt
8b54dc43c8 fix problem printing symbols with unicode chars
Specifically, special-casing letters (such as sigma) were not
handled correctly.

Merge to 5.2.1
2012-01-09 16:55:39 -07:00
Matthew Flatt
23010fc495 add #:fail' option to collection-file-path' and `collection-path'
Merge a variant to 5.2.1
2012-01-09 15:59:05 -07:00
Ryan Culpepper
c310292f60 Post-release version for the v5.2.1 release 2012-01-08 23:41:47 -07:00
Matthew Flatt
8d9614c41c better JIT repair
I'm fairly certain that the change in commit 25e9bd2a190acf861 isn't
right, but I'm having trouble generating tests to demonstrate the
original bug or this correction.
2012-01-08 15:37:05 -07:00
Matthew Flatt
824e540cb0 fix JIT bug 2012-01-08 12:14:51 -07:00
Matthew Flatt
2b2c44774f fix scheme_basic_env() reset behavior
Also, fix test to that it DrDr will run it.
2012-01-02 15:03:49 +01:00
Eli Barzilay
3718600125 2011 -> 2012 2011-12-31 15:16:59 -05:00
Matthew Flatt
12baa07e7e fix missing initialization 2011-12-31 06:32:13 -07:00
Matthew Flatt
4fe30cf433 fix cross-module inlining for multi-arity functions
First use of the function was determining a single arity for
the enclosing module, and that arity could trigger warnings
in addition to failures to inline. For example, using `map'
on 3 arguments would trigger incorrect warnings for later
uses of `map' on 2 arguments.
2011-12-28 20:35:53 -06:00
Matthew Flatt
580c952e46 fix locale sensitivity of inexact-number parsing
Closes PR 12070
2011-12-28 19:06:07 -06:00
Matthew Flatt
5cd324af15 src/README corrections (of out-of-date information) 2011-12-21 16:43:01 -07:00
Matthew Flatt
d020c75202 remove libfit 2011-12-21 16:17:56 -07:00
Matthew Flatt
24991f0c1a win64: fix JIT SSE-based FP
XMM6-15 are preserved in the Win64 ABI
2011-12-21 11:27:24 -07:00
Matthew Flatt
58b111485f int -> intptr_t fixes 2011-12-21 11:27:22 -07:00
Matthew Flatt
7fbe3c7224 avoid accidental XFORM-LOCK file in the future 2011-12-19 07:05:27 -07:00
Matthew Flatt
35d800f109 remove accidentally added file 2011-12-19 07:03:25 -07:00
Matthew Flatt
67f83bfd6d win64: fix JIT
Repairs commit 558b03034a.
2011-12-18 16:35:33 -07:00
Matthew Flatt
c9d214138e make `choice-evt' take O(N) time for N arguments
Delay flattening nested `choice-evt's to `sync'.
2011-12-15 16:04:08 -07:00
Eli Barzilay
6960767508 New Racket version 5.2.0.7. 2011-12-15 03:50:18 -05:00
Matthew Flatt
ee775c3cc3 intern strings, etc. only when making syntax objects, not in `read'
Rename `read-intern-literal' to `datum-intern-literal'.

Interning is needed only in `read-syntax' or `datum->syntax' to
set up the invariants that the bytecode compiler needs for cross-module
optimization. When `read'ing numbers from a data file, meanwhile,
interning slows things down a lot and doesn't seem worthwhile.
2011-12-14 16:03:44 -07:00
Matthew Flatt
7ac1232c46 restore and fix chaperone-apply path
with another little performance improvement
2011-12-14 09:56:48 -07:00
Matthew Flatt
a7ddbedc7d disable a part of the new chaperone eval path that isn't right 2011-12-14 09:17:47 -07:00
Matthew Flatt
558b03034a streamline thread-local setup in JIT-generated code
Pass a pointer to the thread-local table on entry to JIT-generated
code, instead of having the JIT-generated code call a C function
to get the table. This doesn't seem to improve performance on my
machine, but it generates less code and is probably faster in
some cases.
2011-12-14 06:21:06 -07:00
Matthew Flatt
761a40d483 faster paths for chaperone application 2011-12-14 06:21:06 -07:00
Matthew Flatt
f7c506471b remove redundant arity checking calling JIT-generated code
JIT-generated code has arity checking built in, but the
interpreter-to-JIT path unnecessarily checked arity before
jumping to JITted code.
2011-12-14 06:20:08 -07:00
Matthew Flatt
be2afcdcc9 add missing bytecode-unmarshal check 2011-12-10 11:43:59 -07:00
Matthew Flatt
bf90cf9028 fix problems printing symbols with unicode chars 2011-12-10 11:43:59 -07:00
Eli Barzilay
ccbd5d51fd New Racket version 5.2.0.6. 2011-12-10 03:50:13 -05:00
Matthew Flatt
287d5cedf5 add `pseudo-random-generator-vector?'
Also, adjust docs to clarify that `vector->pseudo-random-generator!'
can be used as a more complete seeding function.
2011-12-09 09:12:17 -07:00
Vincent St-Amour
c980abf35b Add comments to the inliner. 2011-12-08 17:13:28 -05:00
Matthew Flatt
4a387c5b6a add some missing checks on bytecode parsing
The `tests/racket/stress/fuzz' test fails much less frequently,
though problems certainly remain.
2011-12-08 13:42:09 -07:00
Matthew Flatt
657be87c66 generalize gcd' and lcm' to work on rationals 2011-12-08 09:25:39 -07:00
Matthew Flatt
958352eefc fix futures bug related to GC
When a future is blocked on JIT generation, a lightweight closure
is captured, and then the future moves on, the runtime thread would
correctly shift the on-demand JIT argument to the captured copy
of the runstack. However, it would also add 2 to that pointer
to use as the argv array, and the captured runstack is not allocated
to allow interior pointers, so a GC during on-demand JIT could
crash. The solution is to keep an offset alongside the argv pointer
during JITting.
2011-12-06 09:31:52 -07:00
Matthew Flatt
4f669f0d7e fix futures handling of tail-call results 2011-12-05 19:11:32 -07:00
Matthew Flatt
55b6670084 mysterx patch from Antonio Menezes Leitao 2011-12-05 19:11:32 -07:00
Kevin Tew
9f7e730a77 another round of unused variable clean-ups 2011-12-05 19:11:32 -07:00