Commit Graph

4051 Commits

Author SHA1 Message Date
Matthew Flatt
07d5a9e385 fix `expt' on small negative number and large positive odd
The pow() function apparently gets it wrong on some platforms.

Closes PR 13391
2013-01-01 12:33:59 -07:00
Matthew Flatt
0097d59635 avoid compiler warning 2013-01-01 12:11:36 -07:00
Eli Barzilay
0a0fe1a011 New Racket version 5.3.1.12. 2013-01-01 03:30:13 -05:00
Matthew Flatt
cdfc4912ad racket/base: add exn:fail:filesystem:errno and exn:fail:network:errno
Provide raw error codes when available, which is mostly from filesystem
and networking primitives.
2012-12-31 12:04:03 -07:00
Matthew Flatt
dc9643aef6 fix typo in error message 2012-12-31 12:04:03 -07:00
Matthew Flatt
ba973a317f add `configure' test for mmap() and mprotect()
Use the test to enable execute permission on memory that is allocated
for code, including FFI callbacks.
2012-12-31 12:04:03 -07:00
Matthew Flatt
7cb7beae27 fix non-JIT build
Fix a reference to a function that is only available when the JIT is
enabled.
2012-12-30 20:30:33 -06:00
Matthew Flatt
05ce8bce80 win32: fix MinGW vs. MSVC build problem 2012-12-30 05:41:24 -07:00
Matthew Flatt
93affa4d5d fix a build dependency in --enable-shared mode
Closes PR 13392
2012-12-28 12:22:32 -07:00
Matthew Flatt
03259ef539 MinGW-w64 support
For now, SGC must be used, but `configure' does not select it
automatically.

Also, support Cygwin (in addition to MSYS) as a build environment
when using MinGW compilers. Since I build in a Cygwin environment
(which seemed to be the easiest way to get MinGW-w64 gcc), I use

  ../configure --host=x86_64-w64-mingw32 --enable-sgc
2012-12-28 11:06:46 -06:00
Eli Barzilay
b9a7f0ef62 New Racket version 5.3.1.11. 2012-12-28 03:35:13 -05:00
Matthew Flatt
f2d870859a logging: allow name in `log-message', report it in a log-receiver evt
The synchronization result of a log receiver is now a vector of four
values, instead of three, where the last one reports the name.

Also, an optional argument to `make-logger' provides a notification
callback for each event sent to the logger.

These changes enable more control over loggers and events. Suppose
that you have processes A and B, and you want all log events of A
to be visible to B, but not vice-versa. Furthermore, you want the
log events to appear at B in the right order: if A logs an event
before B, then A's event should arrive at a log receiver's before
B's. Now that a log receiver gets the name associated with the
original event, and now that the name can be re-sent in a
`log-receiver', it's possible to give A and B separate loggers and
send all of the events from A's logger to B's logger. Furthermore,
you can use the notification callback so that when an event is logged
in B, you can make sure that all available events from from A's
logger have been transferred to B's logger.
2012-12-27 14:12:40 -06:00
Matthew Flatt
7bddce81ad fix GC bug
The bug was introduced by commit aa08a68424, which added
support for phantom bytes.
2012-12-26 12:15:04 -06:00
Matthew Flatt
4a57db4448 add (system-type 'word)
Returns 32 or 64 to indicate whether Racket is running as a
32-bit program or a 64-bit program.
2012-12-24 06:38:53 -07:00
Robby Findler
aa27011f34 fix namespace-variable-value error reporting
closes PR 13387
2012-12-23 16:42:40 -06:00
Matthew Flatt
7ff6fd93ef restore incorrectly removed code
But fix its interaction with places and GC, allocating the symbol
on startup instead of per-place.
2012-12-21 17:46:56 -07:00
Matthew Flatt
a665239689 places: fix subprocess-reaping thread creation
Before the repair, a new thread was created with each
subprocess.
2012-12-21 15:52:01 -07:00
Matthew Flatt
d645200f93 fix build problem for non-Windows platforms 2012-12-21 11:52:48 -07:00
Matthew Flatt
9692765e26 places: fix initial stack setup
This repair likely affects all uses of gcc 4.6.x and
later.
2012-12-21 11:44:33 -07:00
Matthew Flatt
3d9b103181 clear some pointers after they are free()ed
If the pointer value is kept, then its possible (though unlikely)
that the GC will get confused.
2012-12-21 11:43:46 -07:00
Matthew Flatt
4b16c7616e mingw32: fix MSC-style underscore consistency 2012-12-21 11:43:45 -07:00
Matthew Flatt
3fb02ecb2e mingw32: use same strategy for thread-locals as MSVC
The gcc implementation of `_thread' seems to be much
slower, so we use the inline-assembly technique from
the MSVC build plus a hack in "main.c".
2012-12-21 11:43:43 -07:00
Matthew Flatt
0c91930965 mingw32: make no-futures, no-places build work 2012-12-21 11:43:42 -07:00
Matthew Flatt
1fc222f135 fix declaration mismatch for GC function 2012-12-20 05:43:59 -07:00
Eli Barzilay
c445a602a1 New Racket version 5.3.1.10. 2012-12-20 03:30:12 -05:00
Matthew Flatt
aa08a68424 add phantom byte strings
A phantom byte string is a small object that the memory
manager treats as an arbitrary-sized object, where the
size is specified when the phantom byte string is created
or or when size is changed via `set-phantom-bytes!'.
2012-12-19 18:42:14 -07:00
Matthew Flatt
4fc71951ee change subprocess handling to avoid waitpid(0, ...)
Keep track of whether any Racket-managed subprocesses are pending,
and use waitpid(0, ...) only if there is one, to better cooperate
with an embedding environment.

Also, add a chapter to the "Inside" manual to explain the issues.
2012-12-19 08:54:32 -07:00
Matthew Flatt
22f9c8509f fix optimizer bug, again
Corrects ef824351a1.
2012-12-16 16:04:19 -07:00
Matthew Flatt
ef824351a1 fix optimizer bug
Moving an expression that is referenced through a level of copy
propagation did not fix up a nested static distance correctly.

Closes PR 13355
2012-12-16 13:11:57 -07:00
Matthew Flatt
d3e4fbe7a7 make scheme_check_threads() run at least on thread quantum
As long as some thread is ready to run, and in case the threads
synchronize after very little work, keep checking threads for
at least one thread quantum.
2012-12-16 13:11:56 -07:00
Matthew Flatt
5baf63f821 syntax-local-get-shadower: fix interaction with marked bindings
Getting a shadower should not drop module context if the context
determines a binding that has marks.
2012-12-13 19:34:32 -07:00
Matthew Flatt
8f3cdd3a03 fix miscapitalization
The capitalization was meant for Windows using MinGW, but it's
not separated from the Unix install.
2012-12-09 15:00:08 -07:00
Matthew Flatt
bca4f47188 fix `configure' typo for MinGW 2012-12-09 14:54:29 -07:00
Matthew Flatt
5b016b4c32 win32: support MinGW build
A MinGW build is the same shape as a MSVC build (but without
MzCOM), unlike a Cygwin build.
2012-12-09 11:26:02 -07:00
Jon Zeppieri
8489448e42 ffi: fix prop:cpointer so that it works with a procedure value 2012-12-07 06:43:30 -06:00
Matthew Flatt
64f0273829 fix printing problem with flvectors 2012-12-05 05:56:59 -06:00
Matthew Flatt
42a0342109 ffi: use newer prim-closure representation for foreign functions
Cuts 1/3 of the time off a call for a micro-benchmark, since the
path from JIT-generated code to C code is faster.
2012-12-03 10:42:35 -07:00
Matthew Flatt
9cf821b301 disallow #fx()' and #fl()' notation in `read-syntax' mode
Allowing them would require support for immutable fxvectors and
flvectors, interning, and more. Since the motivation for reader
support is to make marshaling and unmarshaling easier, allow
them only in `read' mode. Change printing to make then unquotable.
2012-12-03 10:42:35 -07:00
Kevin Tew
492167c23f read and write support for fxvectors and flvectors 2012-12-03 10:42:35 -07:00
Matthew Flatt
cbe0831956 fix problem with re-expansion and renamed imports 2012-11-30 07:26:52 -07:00
Matthew Flatt
f847b76ad1 win32: make "build.bat" work with VCExpress
Closes PR 13231
2012-11-28 05:42:05 -07:00
Matthew Flatt
46fb91cfe4 update pre-built binary path for a win32 patch
Also, describe the patch in the Windows build notes.

This change increases access to symbol fonts, though not in a
completely consistent and portable way. See the closed problem
report for more information, as well as a 24-NOV-2012 post
on the Racket mailing list:
 http://lists.racket-lang.org/users/archive/2012-November/055141.html

Closes PR 13300
2012-11-28 05:39:46 -07:00
Matthew Flatt
9062d27d31 make place-channel receives more fair 2012-11-25 12:29:56 -07:00
Matthew Flatt
4ca6e3c452 fix exception handling during collection-table read
Non-`exn:fail?' exceptions, such as breaks, should be propagated.
2012-11-24 08:13:51 -07:00
Eli Barzilay
777a6cd38b New Racket version 5.3.1.9. 2012-11-24 03:05:18 -05:00
Matthew Flatt
9888fac99e raco setup: move doc dependency and duplicate checking to database
This change makes document building --- and specially incremental
document building --- more scalable. The global duplicate-definition
check is handled by a database query, for example.
2012-11-23 20:07:49 -07:00
Matthew Flatt
9f5324b754 fix quoted submodule path in `all-from-out' 2012-11-23 08:30:01 -07:00
Matthew Flatt
4e0fac0477 JIT: fix allocation of came-lambda closures over flonums
Also, clean up code and assumptions related to fixnum-producing
functions and unboxing (not related to the bug).
2012-11-23 08:20:05 -07:00
Matthew Flatt
961f5e40bf fix untagged cpointer as place-channel message
(repair by Kevin)

Closes PR 13282
2012-11-23 08:20:05 -07:00
Matthew Flatt
fc68d02027 JIT: more buffer-limit adjustments
To cut down on PPC-specific problems, make the JIT buffer's padding
larger on that platform (since instructions tend to be larger).
2012-11-20 06:27:05 -07:00