Commit Graph

2122 Commits

Author SHA1 Message Date
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
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
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
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
f400dab912 Add a check in the compilation-top reader.
This bug was found by fuzz testing.
2015-10-13 17:50:04 -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
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
Ryan Culpepper
a6835422bf Post-release version for the v6.3 release 2015-10-09 15:23:31 -04: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
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
3bcd153fb6 adjust copyright dates: 2014 -> 2015
Better late than never?
2015-10-05 13:39:11 -06:00
Matthew Flatt
c9c03dd40b regexp-replace*: recognize \$ as empty string 2015-10-05 13:28:53 -06:00
Stefan
d988055a49 added crypto-random-bytes 2015-10-05 12:00:01 -06:00
Asumu Takikawa
a729c028a6 Add racket/os library.
For now this just contains two functions from mzlib/os.
2015-10-05 11:59:38 -06:00
Gustavo Massaccesi
09a2b630bc Generalize inferred names
After some expansions, a expression with the syntax property 'inferred-name of
'x is converted to one with ('x . 'x), so it's not useful to get the name of a
procedure. So we simplify the syntax property 'inferred-name to handle
these cases.
2015-10-05 10:25:57 -06:00
Matthew Flatt
b92eac82ab patch Pango to make the system control font accessible
The patch doesn't directly make the font accessible, but
it provides a hook so that the font can be made accessible.
2015-10-04 20:30:17 -06:00
Matthew Flatt
2c7663eb5e remove accidentally committed explicit GC
I even marked it "REMOVEME", but didn't look at the commit
closely enough before pushing.
2015-10-02 12:50:08 -06:00
Matthew Flatt
93d9826936 fix another problem with GC and place messages
When a place message is deserialized by simply adopting the page
containing the message, the adoption can trigger a garbage
collection, but there's still a pointer to a chain of objects
"in flight" in the thread, and a GC can discard the pairs that
form the chain.
2015-10-02 11:48:25 -06:00
Matthew Flatt
d1a942be63 net/git-commit: add a #:strict-links? argument
Fail on checkout if it creates a symbolic link with an absolute
path or a relative path with "..".

Adjust `raco pkgs` to use `#:strict-links? #t`.
2015-10-02 09:38:27 -06:00
Matthew Flatt
42cf80815d net/git-checkout: fix checkout of symlinks 2015-10-02 09:05:34 -06:00
Matthew Flatt
4caaf3e8b3 Use "https://" instead of "git://" for GitHub download
I originally chose "git://" because I thought "https://"
from GitHub didn't support `--depth 1`, but that does not seem
to be the case.
2015-10-02 08:35:28 -06:00
Matthew Flatt
ed07a5e176 fixup 2015-10-02 05:50:06 -06:00
Matthew Flatt
8c51d50cd2 raco pkg: improve Git repo-download caching
Drop the path and branch from a URL that references a Git
repository, so that a single download is used for multiple
packages in the same repo.
2015-10-01 22:04:24 -06:00
Matthew Flatt
7671c15b17 more GC callback shapes to support Mac OS X 10.11 2015-10-01 21:23:25 -06:00
Matthew Flatt
7abe38e763 adjust namespace-relative treatment of compiled require
Removing all original module context doesn't work, because it
doesn't distinguish between fragments of syntax that had the
"inside-edge" scope without the "outside-edge" scope.

Record the presence of the outside-edge scope by using the
root scope, and convert the root scope to the current namespace's
outside-edge scope on evaluation.
2015-09-30 11:32:16 -06:00
Matthew Flatt
6e80609998 macro expander: fix over-eager pruning of use-site scopes
The bug could cause

 #lang racket/base

 (define x 'outer)

 (define-syntax-rule (def-and-use-m given-x)
    (begin
      (define-syntax-rule (m)
        (let ()
          (define given-x 'inner)
          x))
      (m)))

 (def-and-use-m x)

to produce 'inner when it should produce 'outer.

Thanks to Brian Mastenbrook for pointing the problem and
providing examples.
2015-09-30 08:39:03 -06:00
Matthew Flatt
31549082e6 avoid crash when interrupting bytecode unmarshal
Interrupting bytecode unmarshal for syntax objects could leave
half-constructed values in a table that is intended to resolve graph
structure. Clear out work towards a graph construction when
interrupted.

The most common symptom of half-constructed syntax objects was a crash
after a Ctl-C during startup.
2015-09-28 14:38:12 -05:00
Sam Tobin-Hochstadt
57b4920234 Check that serialized procedures are the right kind of procedures.
Fixes http://drdr.racket-lang.org/31801/pkgs/racket-test/tests/racket/stress/fuzz.rkt
2015-09-23 15:49:18 -04:00
Sam Tobin-Hochstadt
d6ad89764b Add a few more pair checks. 2015-09-23 15:49:18 -04:00
Sam Tobin-Hochstadt
083029fa6f Add pair check in unmarshalling.
Closes #1070.
2015-09-23 15:49:18 -04:00
Matthew Flatt
aaf098f203 fix potential GC problem while setting up a place channel 2015-09-22 16:45:47 -06:00
Robby Findler
5a33856802 change or/c so that it takes the first ho projection
whose first-order predicate accepts a value, instead
of requiring that there be exactly one
2015-09-22 09:05:34 -05:00
Robby Findler
45b635f707 don't set permissions on windows, for now
(at some point hopefully we'll figure out
what's the right behavior here)

This is related to pull request #1060
2015-09-22 09:00:55 -05:00
Spencer Florence
35a0f0c71c make sure git checkout have correct perms 2015-09-21 14:17:51 -05:00
Matthew Flatt
003bca503f avoid compiler warnings 2015-09-20 21:13:27 -06:00
Matthew Flatt
93efe503ad fix misuse of comparison macro 2015-09-20 21:13:27 -06:00
Matthew Flatt
1d5b34f48b auto-detect when strip -S works for archives
Otherwise, don't try to strip archives such as "libracket3m.a".
2015-09-20 21:13:17 -06:00
Matthew Flatt
b37c07a280 Windows: generate "lib/msvc" content from cross-compile 2015-09-20 19:54:42 -06:00
Matthew Flatt
15797a7951 Windows: use same TLS strategy for both VC and MinGW in 64-bit mode 2015-09-20 19:17:15 -06:00
Matthew Flatt
8d43c73a0c windows: use same scheme_setjmp() protocol with all compilers 2015-09-20 18:13:59 -06:00
Matthew Flatt
6dfc20d3ec fix inferred-name propagation for internal-definition contexts
Set the name while checking for an immediate expansion when
no other forms follow.
2015-09-19 19:27:13 -06:00
Robby Findler
7ee29b0239 Revert permissions change because of appveyer error (that I
should have seen before pushing, sorry)

This reverts commit 47f36952d6.
This reverts commit 47776f343d.
2015-09-19 20:24:51 -05:00
Spencer Florence
47f36952d6 removed duplicate case 2015-09-19 20:21:50 -05:00
Spencer Florence
47776f343d make sure git checkout have correct perms 2015-09-19 20:21:50 -05:00
Matthew Flatt
bcc65ac92e GC: separate old-generation finalizers from now ones
Avoiding a traversals of old-generation finalizers can
save a couple of milliseconds for a minor GC in DrRacket.
2015-09-19 16:49:58 -06:00
Matthew Flatt
7ff1cf3619 avoid traversal of full page table when restoring mprotects
Overlooked this traversal at 50df879e79.
2015-09-19 15:16:30 -06:00
Matthew Flatt
584920b3a6 GC: clarify page field overloadings
Rename fields in a page record and split some of them with `union` to
better document the intent of each field.

This change is intended to have no effect on the GC's behavior. One
tricky case is the line dropped around line 3542 of "newgc.c". That
line reset `scan_boundary` (formerly `previous_size`), which on the
surface is inconsistent with leving objects before the boundary
without `marked` bits set. However, that line is reachable only
when geneation-1 objects are being marked (objects newly moved
there would not be unmarked), in which case `san_boundary` should
already be reset.
2015-09-19 14:06:26 -06:00
Matthew Flatt
1ddaad8d58 xform: accomodate tokens like "10_1"
Those show up in the Mac OS X 10.11 SDK in `availability`
annotations.

Closes PR 15154
2015-09-19 09:19:43 -06:00
Matthew Flatt
9768f632a2 Disable static-library install for Windows or Mac OS X
Also, OS X `strip` needs `-S` for archives, in case a static-library
install is enabled.
2015-09-19 09:05:45 -06:00
Matthew Flatt
a75bdbf0a1 remove unused variable 2015-09-19 08:52:19 -06:00
Matthew Flatt
ee9d797906 fix file descriptor handling for poll() without epoll()
This problem could cause busy-waiting after a network connection
on Android, for example.
2015-09-19 08:16:30 -06:00
Matthew Flatt
fccd86d67d configure: --enable-racket=auto to simplify cross-compilation
Using `--enable-racket=auto` causes a Racket for the current platform
to be built in a "local" subdirectory of the build directory as
support for cross-compilation.
2015-09-18 21:56:20 -06:00
Matthew Flatt
a88d52bd34 configure: make --enable-libs on by default 2015-09-18 21:06:00 -06:00
Matthew Flatt
1a48418844 infrastructure for raco ctool --c-mods <dest> --runtime <dir>
Make the runtime-file gatherer, which is normally used by `raco exec`,
work also for modules prepared for an executable that embeds Racket.
2015-09-18 18:55:22 -06:00
Matthew Flatt
a9015e5484 GC: remove unmaintained counters 2015-09-18 12:40:14 -06:00
Matthew Flatt
40f9467c07 count phantom bytes as regular allocation
The original idea was to count phantom bytes as "administrative
overhead", but issues discussed in #962 identified problems
with that idea. Finish shifting the accounting to treat
phantom bytes as payload allocation.
2015-09-18 12:26:32 -06:00
Matthew Flatt
0b9cda5018 avoid undefined behavior in hashing inexacts
Casting a negative floating-point number to an unsigned integer
is not ok. Corece to a signed integer, first.

Thanks to John Regehr for help.
2015-09-18 09:49:04 -06:00
Juan Francisco Cantero Hurtado
b7bcd4f687 Remove extra ')'.
Found by cppcheck.
2015-09-17 14:12:15 -06:00
Juan Francisco Cantero Hurtado
38661481ed Missing ')' in bool.c
Found by cppcheck.
2015-09-17 14:12:15 -06:00
Jack Firth
d305ceffe1 Refactor command-name 2015-09-17 14:11:50 -06:00
Jack Firth
c05db1ecf4 Refactor raco's tool listing code 2015-09-17 11:48:44 -06:00
Vincent St-Amour
2b1202a6a6 Add error checking to new string functions. 2015-09-16 13:05:41 -05:00
Vincent St-Amour
ae5b980e07 Add string-contains?.
From Ben Greenman.
2015-09-16 13:05:41 -05:00
ben
3fc4a64759 faster implementation of prefix/suffix 2015-09-16 13:05:41 -05:00
ben
85e5db38fb renamed string-startswith/endswith to string-prefix/suffix 2015-09-16 13:05:40 -05:00
ben
22cda63200 add string-startswith? and string-endswith? 2015-09-16 10:33:53 -05:00
Matthew Flatt
bcfd19c902 GC: don't double-count phantom bytes 2015-09-15 19:41:17 -06:00
Matthew Flatt
0e35b5cfad fix misplaced flag
The misplacement of `SCHEME_PRIM_SOMETIMES_INLINED` caused the
optimizer to produce different results when the JIT is statically
disabled, for example.
2015-09-15 15:16:11 -06:00
Matthew Flatt
166d6fd8a3 GC: fix block_cache assumptions
Correct a mismatch for an internal API.
2015-09-15 15:16:11 -06:00
Matthew Flatt
2616b06570 fix problems with block-cache chunked mprotects
The problems don't show up with the current use of the block
cache, but repair mprotect tracking in case it matters in
the future.
2015-09-15 15:16:11 -06:00
Matthew Flatt
68f8d63222 fix problem with traversing closures for GC
This bug is an old one, in a sense, because travesing fields
in a closure could have moved the prefix with earlier versions
of the collector. It shows up now because we're changing fields
one indirection closer.
2015-09-15 15:16:11 -06:00
Matthew Flatt
0781d0fa46 GC: refine decision for old-generation compaction
Compact fewer blocks by moving them only when other
blocks have room.

Also, fix block protection tracking in the case of a page
count that isn't divisible by 8.
2015-09-15 15:16:11 -06:00
Matthew Flatt
3d69846046 GC: fuse mark and fixup passes, usually
In the common case of a minor GC without a generation 1/2
or a major GC without compaction, a single pass suffices
to both mark and update references.

This change reduces overall GC time by 10%-25% on typical
programs.
2015-09-15 15:16:11 -06:00
Matthew Flatt
28047789a9 remove "array of tagged" GC support
The GC supported allocation for an array of objects where
the first one provides a tag, but at this point it was
used only in some corners. Change those corner and simplify
the GC by removing support for arrays of tagged objects.

The main corner to clean up is in the handling of a macro-expansion
observer and inferred names. Move those into the compile-time
environment. It's possible that name inference has been
broken by the changes, but in addition to passing the tests,
the generated bytecode for the base collections is exactly the
same as before the change.
2015-09-15 15:16:10 -06:00
Matthew Flatt
bcd3d814fd GC: chunk mrpotect calls on old-page allocation
Although a block cache is set up to group most page-protection changes
into a single OS call, allocating new old-generation pages was not
covered. Adjust the block cache to group those.

This change has a small effect on performance, but it seems
better to have a few system calls in place of thousands.
2015-09-15 15:16:10 -06:00
Vincent St-Amour
aa0823daf6 Remove dependencies on unstable/error.
Involved moving part of its implementation to the db collection.
2015-09-13 15:29:36 -05:00
Vincent St-Amour
689c294e91 Remove dependency on unstable/error. 2015-09-13 15:29:36 -05:00
Vincent St-Amour
ca64ab5e23 Move unstable/error to unstable-lib. 2015-09-13 15:29:31 -05:00
Matthew Flatt
ab2aaff6be optimizer: fix let-values splitting and allocation reordering
First bug:

When the optimize converts

 (let-values ([(X ...) (values M ...)])
   ....)

to

 (let ([X M] ...)
   ....)

it incorrectly attached a virtual timestamp to each "[X M]" binding
that corresponds to the timestamp after the whole `(values M ...)`.

The solution is to approximate tracking the timestamp for invidual
expressions.

Second bug:

The compiler could reorder a continuation-capturing expression past
an allocation.

The solution is to track allocations with a new virtual clock.
2015-09-13 12:32:08 -06:00
Matthew Flatt
5ae7e54dac {eval,compile,expand}-syntax: install top-level fallback less often
Make `eval-syntax`, `compile-syntax`, and `expand-syntax` more
consistent (with intent and each other) by not installing a fallback
automatically. In particular, a fallback is not installed for a
`module` form, so that different ways of expanding a `module` form
produce consistent results (e.g., for ambiguous bindings).
2015-09-12 16:24:52 -06:00
Gustavo Massaccesi
58895067c8 Remove nested begin0's added by sfs pass 2015-09-11 22:38:05 -03:00
Konrad Hinsen
a47800686c Fix match with (list-no-order p ..k) patterns
p ..k matches exactly k repetitions of p, but its documented
behavior is to match "k or more" repetitions. This fix implements
the documented behavior.

Fixes bug number 15122.
2015-09-11 21:34:02 -04:00
Anthony Carrico
181edfeec6 Format string and arguments match. 2015-09-11 20:42:39 -04:00
Sam Tobin-Hochstadt
78fc476e61 Reject relative paths in MANIFEST files when installing. 2015-09-11 20:30:14 -04:00
Sam Tobin-Hochstadt
17d69338a9 Remove obselete time config defines.
Removes `USE_FTIME`, `USE_PALMTIME`, `USE_MACTIME`, `TIME_SYNTAX`.
2015-09-11 20:30:14 -04:00
Matthew Flatt
0d3b5b61f0 untar, untgz, and unzip: add #:permissive?
Also, strengthen the checking that `#:permissive?` (off by default)
performs for `untar` and `untgz` to disallow a link whose target is an
absolute path or has an up-directory element.
2015-09-11 16:53:31 -06:00
Matthew Flatt
c7fac6e98e raco pkg catalog-archive: add a --pkg-fail option
Relevant to #1032
2015-09-11 16:53:31 -06:00
Matthew Flatt
c15d2f71d4 file/untar: fix handling of a broken tar file
Closes #1049
2015-09-11 16:53:31 -06:00
Matthew Flatt
696c9d972f prohibit directory indicators in "git:....?path=" as a package source
Closes #1027
2015-09-11 16:53:30 -06:00
Matthew Flatt
dcfb9cb972 raco pkg: make network-retries configurable 2015-09-11 16:53:30 -06:00
Matthew Flatt
29223aaed7 raco pkg: wrap network access with retries
Retry communication up to five times when `exn:fail:network`
is raised.

Not all `exn:fail:network` exceptions are transient. For example,
attempting to connect to a bad server name will produce an error more
slowly than before, since the bad connection will be tried five times.
Still, retrying on `exn:fail:network` seems like a good heuristic.
2015-09-11 16:53:30 -06:00
Alex Knauth
2923a3adcf syntax/parse: fix disappeared-use property in attribute macro
This fixes the DrRacket check syntax arrows in uses of `attribute` like this:
```racket
#lang racket/base
(require syntax/parse)
(syntax-parse #'a
  [a
   (attribute a)])
```
2015-09-11 17:35:25 -04:00
Ryan Culpepper
808a6ca266 syntax/parse: remove ref to raise-syntax-error*
Copy and specialize raise-syntax-error*.
Also, taint the stxs in the exn raised.
2015-09-11 17:35:24 -04:00
Asumu Takikawa
52aa11c407 Propagate object inspectors in class/c wrappers
This makes reflection work on an instance of a contracted
class in the same way that it does on the original class.
2015-09-11 15:11:18 -04:00
Matthew Flatt
81ee1b39c7 change the (relatively new) argument to collect-garbage
Make the argument a symbol, 'major or 'minor, instead
of a boolean, because that allows further extension.
2015-09-11 12:07:35 -06:00
Matthew Flatt
c416db91c1 Fix shared-space marked-page chaining
Fixes a problem with a4910716e4, and adjusts place-specific
major GCs to use the already constructed chain instead
of reconstructing it.
2015-09-11 12:07:35 -06:00
Matthew Flatt
50df879e79 GC: adjust cleanup phase to not touch irrelevant page records
Fixes the last place where a minor collection touched a record
per allocated page.
2015-09-11 12:07:35 -06:00
Matthew Flatt
15271b673d GC: adjust fixup phase to not touch irrelevant page records
This is another step toward making a minor collections independent
of total allocation.
2015-09-11 12:07:34 -06:00
Ryan Culpepper
8d9eb05347 syntax/parse: accept #:context (list symbol/#f syntax)
The symbol is used as the "who" field in the error message.

Also fix lazy-require of runtime-report.rkt in residual.rkt; don't
load until syntax-parse actually needs to produce an error report.
(Previously was loaded to create handler whenever syntax-parse code ran.)
2015-09-10 21:49:21 -04:00
Matthew Flatt
bc929d4876 raco pkg install: more parallelism for catalog lookups
The layer to handle Git repo clones triggers an early catalog
lookup, so add prefetching there, too.
2015-09-10 08:59:24 -06:00
Matthew Flatt
58cc3e91c3 fix 32-bit Windows build for MSVC 2012 and up 2015-09-10 06:19:29 -06:00
Matthew Flatt
5aebb1c539 raco pkg: get catalog info and checksums in parallel
When `raco pkg {install,update}` has a list of packages to check,
first run through the list in a "prefetch" mode to create futures to
fetch the information. Issuing requests to servers in parallel
can greatly speed up `raco pkg update --all`.

Package content is still downloaded sequentially.
2015-09-10 06:16:50 -06:00
Matthew Flatt
9bf68db7f7 raco pkg: use Git protocol for GitHub sources
Using the GitHub API for GitHub sources can run afoul of API
limits. Since we now support the Git protocol generall, use
that for GitHub sources, too.

Set the `PLT_USE_GITHUB_API` environment variable to use the
GitHub API, instead.
2015-09-09 14:15:31 -06:00
Matthew Flatt
e318257a7f support Visual Studio 2015
Closes #996
2015-09-09 13:34:31 -06:00
Matthew Flatt
c492f763c7 Visual Studio projects: put <PlatformToolset> in more places
Putting <PlatformToolset> in the new places makes the projects
work when more than one version of Visual Studio is installed.

Maybe the old place was always the wrong place, or maybe
VS 2010 wanted it in the old place. Either way, sprinkling
the version in more places seems unlikely to hurt.
2015-09-09 13:34:07 -06:00
Asumu Takikawa
c160302be7 Bump version number for rename transformer change
Refers to commit 33bb5e9060
2015-09-09 11:37:59 -04:00
Matthew Flatt
e0506038ba doc database: retry on SQLITE_READONLY_ROLLBACK
The SQLITE_READONLY_ROLLBACK error is supposed to mean that a crash
occurred and a hot journal exists that needs to be replayed (but
can't, because the current connection is read-only).

In practice, it seems that the error can happen even if there has been
no crash. In that case, retrying in the same was as other transient
errors allows the process to continue.

A possible reason for the spurious error: In the implementation of
SQLite, comments in hasHotJournal() mention the possibility of false
positives (ticket #3883) and how the false positive will be handled in
the playback mechanism after obtaining an exclusive lock. The check
for a read-only connection after hasHotJournal() is called, however,
happens before that lock is acquired. So, it seems like the race
condition could trigger a false SQLITE_READONLY_ROLLBACK error.
2015-09-09 06:47:34 -06:00
Matthew Flatt
707f888c83 make base: more complete avoidance of user-specific state
User-scope package installation matching the version of
Racket being built could affect the collections visible
during `raco setup` for `make base`. In particular, the
presence of `setup/scribble` could cause all built docs
to be discarded.

Also, add the `--no-user-path` flag to `racket` (which
has long been documented as an alias for `-U`).
2015-09-09 06:24:35 -06:00
Vincent St-Amour
e358c49573 Add rename-contract, if/c and failure-result/c from unstable/contract. 2015-09-08 17:11:26 -05:00
Vincent St-Amour
147baa63f7 Add port-number? and listen-port-number? to racket/tcp.
From `unstable/contract`.
2015-09-08 17:11:26 -05:00
Vincent St-Amour
5f43b3a913 Move non-empty-string? to racket/string.
From `unstable/contract`.
2015-09-08 17:11:26 -05:00
Matthew Flatt
261b7bde28 set-phantom-bytes!: fix tracking across generations 2015-09-08 15:29:09 -06:00
Asumu Takikawa
33bb5e9060 Make prop:rename-transformer accept a procedure
Allows the choice of target identifier to be delayed
until expansion time, rather than fixed at the point of
the transformer definition.
2015-09-08 13:29:13 -04:00
John Clements
a07ed4647e make path/param transparent 2015-09-08 09:06:44 -07:00
John Clements
98a861507f net: make #<url> structure transparent 2015-09-08 09:06:44 -07:00
John Clements
28d5ae19f9 http-client: don't try to gunzip an empty stream 2015-09-08 09:06:43 -07:00
Matthew Flatt
8394936ee0 collapse copied code in GC 2015-09-08 07:39:48 -06:00
Matthew Flatt
37c4ea4720 GC: adjust backpointer marking to not touch other page records
Also, free medium pages for a terminated place.
2015-09-08 07:39:48 -06:00
Matthew Flatt
9372862ee2 GC: move minor work to clean-up phase instead of setup 2015-09-08 07:39:48 -06:00
Matthew Flatt
7eee429705 avoid traversing table of JITted code names on every GC
The table as a tree is traversed to prune empty branches,
but the travseral is needed only toward branches that
have changed. Skipping the traversal can save several
milliseconds on each collection.
2015-09-08 07:39:48 -06:00
Matthew Flatt
c401d86bb3 streamline name handling in make-struct-type
Name handling formerly interned symbols along the
way to allocating a plain string, which takes effort
and causes changes to the symbol table, which forces
a minor GC to traverse the whole symbol table. Skip
unnecessary symbol-interning steps.
2015-09-08 07:39:48 -06:00
Matthew Flatt
0ab94dd3e4 force GC more appropriately on phantom bytes
When the number of bytes recorded via phantom bytes approaches memory
use at the last GC, force a garbage collection.
2015-09-08 07:39:48 -06:00
Gustavo Massaccesi
27791ebab7 Remove ignored call/cc
Reduce (call/cc (lambda (<ignored>) body ...)) to (begin body ...)
2015-09-08 09:13:44 -03:00
Vincent St-Amour
d705e928ac Add a mode argument to pretty-format.
... which controls whether it uses `print`, `write` or `display`.

Obsoletes most of `unstable/pretty`.
2015-09-07 15:46:58 -05:00
Matthew Flatt
5ca752c92b fix problems with internal calls to syntax-track-origin 2015-09-07 08:22:21 -06:00
Matthew Flatt
4cb74da76c add patch for Mac OS X build of Cairo
Pull in a patch to avoid CGFontGetGlyphPath, which is deprecated.
2015-09-06 17:18:35 -06:00
Matthew Flatt
8566c67b35 make syntax-object unmarshaling more accepting
Defend against certain bad encodings, but accept an encoding
that includes more sharing than the built-in marshaling
could create.
2015-09-06 16:37:31 -06:00
Spencer Florence
3018417249 added args checking to prefix functions 2015-09-06 15:28:53 -05:00
Matthew Flatt
079f46fbc1 adjust top-level handling for identifiers without #%top
Refine the changes in 16c198805b so that `(define id ... id ... )` at
the top level compiles more consistently when `id` is an identifier
whose lexical context does not include `#%top`.
2015-09-06 08:06:07 -06:00
Matthew Flatt
9c51370e51 repair extract-base-filename/ext and extract-base-filename/o 2015-09-05 17:59:44 -06:00
Matthew Flatt
c3f876d2f7 fix bug in mashaling paths
The change in commit fb8e08a2ac could lose part of a relative path.
2015-09-05 14:09:38 -06:00
Matthew Flatt
16c198805b prevent compile from binding in the current namespace
When `compile` is used on a top-level definition, do not
create a binding in the current namespace, but arrange for
a suitable binding to be in place for the target namespace.

Closes #1036
2015-09-05 10:58:44 -06:00
Matthew Flatt
24592f78fc ffi/unsafe/objc: add support for blocks
Also add some functions for manipualting classes and objects.
2015-09-04 08:31:52 -06:00
Vincent St-Amour
053aae7b59 Prefix property name 2015-09-03 14:08:02 -05:00
Daniel Feltey
6e5d443d7d Rename syntax property to avoid a name suggesting it is only useful for Typed Racket 2015-09-03 14:05:49 -05:00
Daniel Feltey
dc19e9c9b2 Clarify syntax property further 2015-09-03 14:05:49 -05:00
Daniel Feltey
7b513e1103 Internal documentation for init-depend syntax property 2015-09-03 14:05:49 -05:00
Daniel Feltey
b3fe6bb778 Handle tags in case this syntax-property may have uses outside of Typed Racket 2015-09-03 14:05:49 -05:00
Daniel Feltey
9b7e1767dd Add syntax property with static init-depend information to compound-unit/infer results 2015-09-03 14:05:48 -05:00
Matthew Flatt
ddb683e1f2 unbreak compile-directory 2015-09-02 18:21:38 -06:00
Matthew Flatt
8ee717520f fix sync when resumed after a break exception
This repair adjusts the bug fix of commit 769ad3e98. That older commit
ensured that `sync/enable-break` doesn't both break and accept a
channel message or semaphore wait. But it effectively disables those
actions if the break is continued.

Instead of (partially!) ending the `sync` get out of semaphore
and channel queues so that no event can be selected during
the break, and then get back in line if the break is continued.
2015-09-02 18:21:38 -06:00
Matthew Flatt
322714f123 untar and unzip: reject paths that contain ".."
Also, for unzip, reject absolute paths.
2015-09-02 18:21:38 -06:00
Matthew Flatt
fb8e08a2ac adjust path encoding in bytecode and syntax-object sources
When a path is made relative for marshaling to bytecode, record
a list of byte strings in stead of a platform-specific relative
path.

For syntax-object source locations, convert any non-relative path to a
string that shows just the last couple of path elements preceded by
".../". This conversion avoids embedding absolute paths in bytecode,
but at the cost of some information. A more complete and consistent
solution would invove using a module-path index instead of a path, but
that would be a big change at several layers.
2015-09-02 18:21:38 -06:00
Matthew Flatt
a934bdf444 Adjust the bytecode format to accomodate syntax source locations
Make room in the bytecode format for source locations and 'paren-shape
property values for syntax objects. Saving source locations increases
bytecode size by about 10% on average.

Also, convert the internal representation of syntax properties to
use immutable hash tables, instead of lists.
2015-09-02 14:49:39 -06:00
Matthew Flatt
53821a4997 intern path values in bytecode 2015-09-01 15:54:41 -06:00
Matthew Flatt
929db29b67 add prop:expansion-contexts
The `prop:expansion-contexts` property can control the expansion
of a rename transformer in much the same that conditionals on
`(syntax-local-context)` can control the expansion of other
transformers.
2015-09-01 13:55:35 -06:00
Gustavo Massaccesi
c290de0f88 Fix typos 2015-09-01 11:46:41 -05:00
Daniel Feltey
450ea8236d Bug fix for calculating init-dependencies when subtyping is involved. 2015-09-01 11:46:40 -05:00
Robby Findler
13964c4141 add and use late-neg projections to the contract system
These avoid one layer of currying and are more efficient, getting
about a 1.3x speed up on this program:

 #lang racket/base
(module server racket/base
  (require racket/contract/base)
  (provide
   (contract-out
    [f (-> integer? boolean? char? void?)]))
  (define (f i b c) (void)))

(require (submod "." server))

(time
  (for ([x (in-range 10000000)])
    (f 1 #t #\x)))
2015-08-31 20:48:03 -05:00
Matthew Flatt
f09c78b5f4 racket/unit: fix #:omit-constructor
Closes #1006, with a test case based on that report.
2015-08-31 16:22:12 -06:00
Blake Johnson
38317b87c2 setting the imported flag on toplevels 2015-08-31 16:13:08 -06:00
Matthew Flatt
9c0b6593b6 filesystem-change-evt: wide paths for Windows 2015-08-30 12:20:40 -06:00
Matthew Flatt
73e5313e1c fix starter icons for Windows cross-compile 2015-08-30 10:58:07 -06:00
Matthew Flatt
1b778bf34b fix GRacket paths for MinGW build 2015-08-30 07:01:10 -06:00
Matthew Flatt
ad4dcdeac0 cross-compilation support in the top-level makefile 2015-08-29 20:54:27 -06:00
Matthew Flatt
0e4d9a68af fix executable creation for cross-installation 2015-08-29 20:54:27 -06:00
Matthew Flatt
6beff43439 fix expand[-syntax[-to-top-form]] to add namespace's scope
Make `expand` more consistent with `eval` and with the old expander.
2015-08-29 11:44:33 -06:00
Matthew Flatt
94e5b1723b JIT simplification
Remove unused and confusing attempt to avoid runstack sync.
2015-08-28 20:24:46 -06:00
Matthew Flatt
ab6b58a476 avoid compiler warning 2015-08-28 20:21:29 -06:00
Gustavo Massaccesi
152787cb0e JIT: inline string=? and bytes=? 2015-08-28 20:57:39 -03:00
Matthew Flatt
79738d3bf6 fix no-places build 2015-08-28 17:27:17 -06:00
Matthew Flatt
bfb4d34715 fix memory accounting for useless channels
Fix accounting for a channel that is without a
peer for sending and/or receiving.
2015-08-28 17:05:38 -06:00
Matthew Flatt
b016246096 avoid interferences among places for memory accounting
All places uses the same accounting bit for objects
that are in the shared space. Each place also flips
the bit value it wants on each accounting, so if two
places are accounting at the same time with opposite
bit values and can reach the same objects, they can
interefere. It's even possible for them to race
through cycles and cause each other to loop forever.

Add a lock to ensure that there's only one bit value
in play for the shared space at any given time. A
place must stall if other places are busy with memory
accounting and an opposite bit value.
2015-08-28 17:05:37 -06:00
Matthew Flatt
a9078196b7 fix GC problem with in-flight place messages
While a place message is received by a thread but not yet
deserialized, if the message contains references to objects in the
shared space, and if a "master" GC happens (which crosses all places),
make sure that the references in the still-serialized message are
traversed.
2015-08-28 17:05:37 -06:00
Matthew Flatt
2773737c9c avoid races in marking shared-space objects
Although the race condition for setting mark bits
shouldn't matter, reasoning about the race is
difficult and asking for trouble, so don't do it.
2015-08-28 17:05:37 -06:00
Matthew Flatt
460743021d fix over-counting of place-message channel memory 2015-08-28 17:05:37 -06:00
Robby Findler
a6e42858f4 add a commented out specialization of (-> void)
This is the most common contract created for -> (at 318 occurrences
out of the 6515 arrow contracts created when DrRacket starts up)
but this specialization doesn't seem to actually improve the performance
much. Leave it in for now, in case the story changes at some point
in the future
2015-08-27 17:01:30 -05:00
Matthew Flatt
d71832f20e another MSVC MzCOM repair
Missed a line that was meant to be included with
commit a98947e81e.
2015-08-27 14:35:55 -06:00
Matthew Flatt
29784bda8e add cross-system-type and cross-system-library-subpath
Adjust installation tools to support cross-installation (i.e.,
installation for a platform other than the current one) as triggered
by "system.rktd" in "lib" having different information than the
running Racket executable.
2015-08-27 12:01:31 -06:00
Matthew Flatt
a98947e81e fix MSVC MzCOM build 2015-08-27 10:00:54 -06:00
Matthew Flatt
d4fb5ecec5 fix "GRacket.exe" capilization for MinGW build 2015-08-27 08:44:10 -06:00
Matthew Flatt
a3972487fb unbreak Linux build 2015-08-27 07:10:08 -06:00
Matthew Flatt
2a9022945d support for building MzCOM with MinGW 2015-08-26 14:07:19 -06:00
Matthew Flatt
828aff1476 unbreak non-Windows build 2015-08-26 10:02:02 -06:00
Matthew Flatt
ba7e2f11ec repair MinGW32 builds
Also, change floating-point handling to be like the MSVC build by
default, where the process is left in double-precision mode and
the mode is changed for exfl operations.

Includes repairs for integer-size mismatches in uses of Windows
threads.
2015-08-26 07:00:51 -06:00
Asumu Takikawa
fadcb78ffa Fixes to prop:rename-transformer
The error message for the guard used an incorrect contract.
Also removed an unused line that allows a box value in the
property. I don't think it was possible to trigger this line
anyway because of the dynamic check.
2015-08-25 08:20:49 -06:00
Blake Johnson
d86ccb1330 initializing ui->closures in the right place 2015-08-25 08:11:26 -06:00
Robby Findler
a1e6c94fda lift a few fewer negative parties 2015-08-25 05:09:28 -05:00
Matthew Flatt
3d452fdba6 raco exe: make Windows exes as proper PE32 images
Instead of simply tacking bytecode onto the end of an executable,
generate a proper PE32 image.
2015-08-24 17:12:11 -06:00
Matthew Flatt
d16c5c08b6 Windows: update default icons
Includes a 256x256 icon.
2015-08-24 17:12:11 -06:00
Matthew Flatt
96292cdf27 raco exe --ico: replace icon set wholesale
Use exactly the icons in the given icon file for the executable,
instead of coercing to the sizes and depths already in the executable.
2015-08-24 15:08:21 -06:00
Matthew Flatt
e2b27be099 file/ico: support PNG icons and arbitrary icon-set replacement
Support PNG-encoded icons in ".ico" files and executables.

For executables, instead of supporting only new icons that match the
sizes and encodings of existing icons in an executable, support
arbitrary replacement icons in an executable.

The improved funcitonality relies on a new library (currently
private) for general updates to a Windows executable's
resources.
2015-08-24 15:08:21 -06:00
Matthew Flatt
b9a5e92c37 file-truncate: flush on Windows before truncating
Otherwise, writes to the output port can get lost.
2015-08-24 15:08:21 -06:00
Matthew Flatt
cbb4ffee4d JIT: replace a multiplcation with a shift
In the implementation of `with-continuation-mark`.
2015-08-24 12:20:31 -06:00
Matthew Flatt
620ccbfa03 JIT: streamline values result delivered to let-values
In a case like

  (let-values ([(X ...) (with-continuation-mark M_k M_v
                          (values M ...))])
     ....)

where the bytecode compiler cannot convert to a sequence of `let`
bindings, make the JIT implement `values` as delivering argument
results directly to the corresponding variable locations.
2015-08-24 12:20:30 -06:00
Robby Findler
b7f500fc26 create the blame+neg-party pair only once, not once for the domain
and once for the range
2015-08-23 23:18:14 -05:00
Matthew Flatt
49c4d9272f change let/cc and let/ec macros back to call/cc and call/ec
When `call/cc` and `call/ec` were moved out of `#%kernel`, the
`let/cc` and `let/ec` macros changed to refer to
`call-with-current-continuation` and `call-with-escape-continuation`.
Move `call/cc` and `call/ec` again and restore the macros, so that
matching on the expansion of the macros (e.g,. in the web server's
language that looks for `call/cc`) work as before.
2015-08-23 10:58:04 -06:00
Robby Findler
0c31a0c0b8 add some missing contract profiler wcm expressions and start a test suite for them 2015-08-22 20:22:00 -05:00
Ryan Culpepper
70ab4cfb12 fix date*->seconds handling of nanoseconds field 2015-08-22 19:33:57 -04:00
Matthew Flatt
a135c78baf add module-suffixes and doc-module-suffixes to "info.rkt"
A `module-suffixes` entry in a collection's "info.rkt" adds a
file suffix that is meant to be recognized globally (i.e., in
all collections) by all Racket tools.

The new fields are reported by `compiler/module-suffix` library, which
is (so far) used by `raco setup`.

Note that if package A includes files with a suffix that is registered
by package B, then A should have a dependency on B, but `raco setup`
cannot currently detect that such a dependency is needed. That
dependency is likely to happen, anyway, since package A is likely
using libraries form package B.
2015-08-22 09:36:19 -06:00
Matthew Flatt
f63220682b add support for compile-include-files as an "info.rkt" field
The `compile-include-files` entry lists additional files to be
compiled (when their extensions do not trigger compilation).
2015-08-22 07:41:49 -06:00
Matthew Flatt
787500f339 reduce timestamp adjustments in raco pkg create
Comments in the implementation suggest that a timestamp
specialization was intended for directories, which makes
sense given that directory-modification dates are
not preserved when unpacking an archive. The change
also affected all bytecode timestamps, however, which
can create inconsistencies across package creations.
2015-08-21 18:55:12 -06:00
Robby Findler
725536b8b4 add missing contract checking 2015-08-20 15:41:29 -05:00
Vincent St-Amour
ac462be47c Fix uses of unstable/struct. 2015-08-19 15:07:26 -05:00
Vincent St-Amour
ed70381d70 Move rest of unstable/struct to unstable-lib. 2015-08-19 15:07:25 -05:00
Vincent St-Amour
5ce75816c5 Move struct->list to racket/struct. 2015-08-19 15:07:25 -05:00
Vincent St-Amour
5c9995ee9a Move unstable/custom-write to unstable-lib. 2015-08-19 15:07:25 -05:00
Blake Johnson
674ab66d7b Added support for ref args in lifts to unresolver 2015-08-18 14:40:41 -06:00
Matthew Flatt
7371ab0cc2 remove accidentally added file 2015-08-18 14:40:41 -06:00
Vincent St-Amour
1079b2b790 Move unstable/socket to its own package. 2015-08-18 14:03:03 -05:00
Matthew Flatt
629697d14a remove accidentally added file 2015-08-17 12:36:51 -06:00
Matthew Flatt
1b493f2146 fix MzCOM's atexit replacement 2015-08-17 10:16:02 -06:00
Matthew Flatt
641c56b6e9 repair leak in managing OS-level locks 2015-08-17 09:51:20 -06:00
Matthew Flatt
693cdc673d GC: use ofm_malloc() and ofm_free() for admin allocation
Using ofm_....() makes it easier to check that memory allocated for GC
administrtation is itself reclaimed.
2015-08-17 09:39:11 -06:00
Matthew Flatt
fea2b1ce5e repairs for MinGW build
Fix compiler warnings and installation bugs related to the
".exe" extension.
2015-08-17 08:32:12 -06:00
Geoff Hill
be66fde64c write-xexpr: consistently use parameter port. 2015-08-15 00:41:46 -07:00
Gustavo Massaccesi
1753335d34 Fix string-replace when the string is mutable
The `from` string argument is converted to a regexp and cached. When `from` is
a mutable string this can cause wrong results in the following calls
to string-replace. So the string is first converted to an immutable string to
be used as the key for the cache.
2015-08-14 21:17:48 -03:00
Matthew Flatt
80aac79507 change place to create a submodule
When `place` expands, the body of the `place` form is placed into a
`(module* place-body-<n> #f ....)` submodule.

The `place` form previously placed its body in a lifted function,
where the function's exported name was based on
`(current-inexact-milliseconds)`. The generated submodules have
deterministic names, so that compilation is deterministic, and
submodule names don't collide (unlike exported function names) when
multiple `place`-using module are imported into some other module.
Also, using a submodule avoids the problem that the clock doesn't
change fast enough on Windows.
2015-08-14 17:55:47 -06:00
Matthew Flatt
0caf079637 add syntax-local-lift-module 2015-08-14 16:52:56 -06:00
Matthew Flatt
dbd5470805 move call/cc and call/ec to racket/private/more-scheme
Those aliases were moved out of `#%kernel` as part of the
determinstic-bytecode changes, but putting them in
`racket/private/pre-base` meant that they weren't included in
`mzscheme` or Pretty Big. The new location is with `let/cc`, which
makes more sense, and makes them picked up by `mzscheme` and Pretty
Big.
2015-08-14 07:45:47 -06:00
Matthew Flatt
111a7e085d fix prefab checking in printer
Mishandling of a chaproned prefab when, for example, determining
whether to use quoted printing caused the `tests/compiler/zo` test to
sometimes fail.
2015-08-14 07:28:37 -06:00
Matthew Flatt
e82e61e84c restore needed call in unresolver
Add back a call incorrectly removed in bd82646d81.
2015-08-13 18:22:51 -06:00
Matthew Flatt
cfa1d39166 add compiler/exe-dylib-path
Provide a clean interface to a private library for updating
dynamic-library paths in Mac executables.
2015-08-13 17:06:55 -06:00
Gustavo Massaccesi
07816f2ca4 Use scheme_getenv in eval.c 2015-08-13 19:05:40 -03:00
Matthew Flatt
15eadbb868 copy-directory/files: add #:preserve-links? argument 2015-08-13 15:13:46 -06:00
Blake Johnson
12315ec964 using correct inspector for unresolved module 2015-08-13 15:13:46 -06:00
Juan Francisco Cantero Hurtado
f3098a946a Fix an error in racket-test-core/number.rktl on OpenBSD-current/sparc64
"Errors were:
(Section (got expected (call)))
((numbers) (0.0 -0.0 (#<procedure:round> -0.0)))
((numbers) (125.0+0.0i 125.0-0.0i (#<procedure:z-round> 125.00000000000023-0.0i)))
((numbers) (100.0+0.0i 100.0-0.0i (#<procedure:z-round> 99.99999999999999-0.0i)))"
2015-08-13 15:13:46 -06:00
Matthew Flatt
33cf716835 include phantom bytes consistently in memory-use reports 2015-08-13 15:13:46 -06:00
Alex Knauth
3c5ed5d8e1 syntax-parse: keep more srclocs in attribute bindings
to cooperate more with DrRacket check-syntax arrows
2015-08-13 15:35:35 -05:00
Vincent St-Amour
033d5afb19 Revert adding in-pairs to racket/sequence.
`in-dict` is more general, and `for` loops optimize it already.
2015-08-13 14:43:57 -05:00
Vincent St-Amour
9508c251ee Move rest of unstable/sequence to unstable-lib. 2015-08-13 14:43:56 -05:00
Vincent St-Amour
36bb0e568c Merge part of unstable/syntax with racket/syntax. 2015-08-13 14:43:56 -05:00
Vincent St-Amour
1a7b71fb20 Improve the implementation of in-slice. 2015-08-13 14:43:56 -05:00
Matthew Flatt
bd82646d81 avoid compiler warnings 2015-08-13 11:57:06 -06:00
Matthew Flatt
7741b4b361 local-expand: fix argument checking
Also, fix contract in the docs, since the first argument is allowed to
be an S-expression.
2015-08-13 11:48:20 -06:00
Matthew Flatt
86ee9c5071 signature-members: adjust element ids based on reference
Make the resulting content ids compatible with binding and reference
at a use site, as needed for the new macro expander.
2015-08-13 10:44:26 -06:00
Ryan Culpepper
aee93fb200 added racket/struct with make-constructor-style-printer 2015-08-12 18:42:29 -04:00
Ryan Culpepper
0f6e2f8029 change sets to use make-constructor-style-printer 2015-08-12 18:42:29 -04:00
Ryan Culpepper
59300afbef add racket/private/custom-write 2015-08-12 18:42:29 -04:00
Matthew Flatt
02574d2501 SGC: use PRIdPTR and PRIxPTR
Avoid compiler warnings by using the right format string.
2015-08-12 14:48:11 -06:00
Tim Brown
3f53d214c6 url-exception? exported wrongly 2015-08-12 11:20:10 -05:00
Tim Brown
9473f394b7 url-strings: Separate URL parsing from URL actions
`net/url` provides functions for both converting strings
and paths to and from URLs.

`net/url` also includes functions for creating (pure and import)
network ports. This functionality `require` the HTTP client stack
which is unnecessary when URLs simple need parsing for their
"bits".

New library: `net/url-strings` handles `url->string` and `string->url`
(and also the related `path->url` and `url->path` functions). This is
required by net/url for compatability.

`net/url-exception.rkt` is factored out for use by both libraries.

- See also racket/net changes for T&D

url-string.rkt changes requested by mflatt

url-strings.rkt is now called url-string.rkt

identifiers from url-string.rkt are reprovided by url.rkt
using (all-from-out "url-string.rkt") instead of explicit
exports
2015-08-12 11:20:10 -05:00
Ryan Culpepper
3e2b916f5b annotated common version list for openssl libs 2015-08-11 18:43:35 -04:00
Ryan Culpepper
49dc0625d4 more detail in openssl error 2015-08-11 18:43:34 -04:00
Matthew Flatt
956d538164 fix missing zero of allocated atomic memory in unresolver 2015-08-11 16:01:54 -06:00