Commit Graph

1887 Commits

Author SHA1 Message Date
Asumu Takikawa
bb17b6a8f6 Add take-while, drop-while to racket/list 2013-03-07 12:26:36 -05:00
Eli Barzilay
75ece5c330 Minor sandbox improvements.
* Check `sandbox-path-permissions' for bad values such as
  '(<perm> <path1> <path2>) where <path2> would get silently ignored.

* Try to clarify the intent of `call-in-sandbox-context' as a meta tool
  rather than a safe execution tool.
2013-03-05 02:22:06 -05:00
Asumu Takikawa
855ce453a0 Fix docs on udp-open-socket 2013-03-02 13:37:29 -05:00
Matthew Flatt
0acb9b8432 doc correction and test additions for `atan'
Closes PR 10324
2013-03-01 15:28:39 -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
Eli Barzilay
b84a7bce66 Fix typo in `string-replace' keyword name. 2013-02-28 01:49:50 -05:00
Matthew Flatt
abf44f8b49 add `module-compiled-cross-phase-persistent?' 2013-02-27 08:53:43 -07:00
Matthew Flatt
88a36a077c terminology change again: "cross-phases persistent" modules 2013-02-27 08:53:43 -07:00
Matthew Flatt
e15569e006 add `racket/kernel/init' 2013-02-26 19:01:36 -07:00
Matthew Flatt
2646ff6895 try "phase-collapsing" instead of "phaseless" 2013-02-26 19:01:36 -07:00
Matthew Flatt
2e652fc2b3 fix some "phaseless" module holes 2013-02-26 19:01:35 -07:00
Matthew Flatt
899a3279c2 add experimental support for "phaseless" modules
The intent is to support phase-crossing data such as the `exn:fail:syntax'
structure type that is instantiaed by macros and recognized by contexts
that use `eval' or `expand'. Phaseless modules are highly constrained,
however, to avoid new cross-phase channels, and a module is inferred to
be phaseless when it fits syntactic constraints.

I've adjusted `racket/kernel' and improved its documentation a little
so that it can be used to implement a phaseless module (which can
import only from other phaseless modules).

This change also adds a `flags' field to the `mod' structure type
from `compiler/zo-structs'.
2013-02-26 14:55:28 -07:00
Asumu Takikawa
1cf1e1baa4 Add an example for local-require 2013-02-21 14:45:45 -05:00
Matthew Flatt
42b8163f8f fix docs on `case'
The Guide was was out-of-date in several ways, and the Reference
didn't describe the dispatch-time guarantee.
2013-02-21 08:34:54 -07:00
Matthew Flatt
772afd94fd fix docs for `begin0'
It's body currently isn't an internal-definition position.
2013-02-21 08:34:54 -07:00
Danny Yoo
0b0ce6574a Note that integer-sqrt produces exact output when given exact input.
Closes PR 9542.
2013-02-20 16:39:36 -07:00
Matthew Flatt
79c4af4e45 racket/base: add `impersonator-ephemeron' 2013-02-18 17:01:11 -07:00
Robby Findler
5c109946c2 add support to struct/dc to name the selector directly
and use that in struct/c

closes PR 13054
closes PR 13461
related to PR 13050
2013-02-16 17:24:11 -06:00
Matthew Flatt
6c49aee3a6 doc: add some links 2013-02-14 17:30:10 -07:00
Matthew Flatt
421cb24138 add `port-counts-lines?' 2013-02-14 15:45:26 -07:00
Tobias Hammer
7e2b443fa9 Support for multiple value return from wrap-evt and handle-evt
wrap/handle-evt that receives multiple values must have a handler function with adequate arity.

struct.c:
  change contract for wrap/handle-evt from (any/c -> any) to procedure?
thread.c:
  adjust sync processing
sync.rktl:
  add test for handle-evt, wrap-evt and prop:evt
2013-02-14 15:45:26 -07:00
Matthew Flatt
4c98570fb6 reference: fix typo and terminology for `with-continuation-mark'
Closes PR 13478
2013-02-02 05:58:42 -08:00
Matthew Flatt
0583616dd7 racket/date: change current-date', add date*->seconds' 2013-02-01 15:00:24 -08:00
Michael Filonenko
17b8092641 extflonums
An extflonum is like a flonum, but with 80-bit precision and
not a number in the sense of `number?': only operations such as
`extfl+' work on extflonums, and only on platforms where extflonums
can be implemented by hardware without interefering with flonums
(i.e., on platforms where SSE instructions are used for
double-precision floats).

[Patch provided by Michael Filonenko and revised by Matthew.]

The compiler tracks information about bindings that are known to
hold extflonums, but the JIT does not yet exploit this information
to unbox them (except as intermediate results).
2013-01-28 18:17:06 -07:00
chrdimo
7223c503f2 adding docs entry for blame update 2013-01-28 19:36:36 -05:00
Stephen Chang
15d41a787e add examples for make-struct-info in docs 2013-01-26 14:06:04 -05:00
Robby Findler
27442fa44c make contracts slightly more readable for
the get-location arguments to make-input-port
and make-output-port
2013-01-24 22:04:47 -06:00
Matthew Flatt
21c8ef6e91 doc clarification on readtable procedures 2013-01-24 06:43:10 -05:00
Matthew Flatt
b38036f36d doc clarification
Based on Tobias's text from the PR.

Closes PR 13441
2013-01-24 06:43:10 -05:00
Asumu Takikawa
3ddde6a7e9 Equip parameter/c with separate in/out contracts 2013-01-23 14:45:59 -05:00
Sam Tobin-Hochstadt
40d2fd65b0 Add OrderedAnd patterns, and use them in ? patterns.
This guarantees that patterns like (? pred pat) will
always check `pred` before matching any of `pat`.
However, `and` patterns are not required to match left-
to-right.
2013-01-22 14:59:41 -05:00
Matthew Flatt
c298062259 racket/match: add doc note on `for-syntax' exports 2013-01-22 09:12:00 +01:00
Matthew Flatt
48e0509381 add `file-truncate' 2013-01-18 11:03:46 -06:00
Matthew Flatt
a605452b0f minor doc repair 2013-01-18 11:03:46 -06:00
Asumu Takikawa
15a73e2c00 Example for with-handlers 2013-01-18 10:39:36 -05:00
Sam Tobin-Hochstadt
230172cf94 Use syntax-procedure-alias-property with struct constructor procedures as well.
This uses a new `racket/private/procedure-alias` module
which provides the relevant symbol via `protect-out`.
2013-01-14 14:27:33 -05:00
Ryan Culpepper
1109e0f86d fix rounding in ~r, docs
Merge to 5.3.2.
2013-01-13 15:52:08 -05:00
Asumu Takikawa
5e78aa7d9e Add examples & slight fix for stxparam docs 2013-01-06 16:26:02 -05:00
Asumu Takikawa
470a8c8892 Minor rewording 2013-01-06 16:26:02 -05:00
Asumu Takikawa
3885ea7cdd Fix doc typos 2013-01-03 02:27:30 -05:00
Vincent St-Amour
18389532e7 Move define-inline to racket/performance-hint.
Move begin-encourage-inline to racket/private for dependencies.
2013-01-02 12:18:36 -05:00
Danny Yoo
c70f7d2ed2 Disambiguate sentence on custodian shutdown.
See:
http://lists.racket-lang.org/dev/archive/2012-December/011373.html

Motivated by Sgeo's question in:
http://racket-lang.org/irc-logs/20121229.txt at 22:10.
2013-01-01 00:48:50 -08: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
8b7379a7ad docs: clarification for `immutable?' 2012-12-30 20:30:20 -06:00
Asumu Takikawa
4041e3c841 Fix sandbox doc example 2012-12-30 01:55:44 -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
b69573277c reference: rerrange docs on synchronizable events
Put the details consistently with event datatypes, instead
of trying to put them all in `sync', which better reflects
the extensibility of the set of synchronizable events.
2012-12-25 07:20:58 -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
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
Ryan Culpepper
714eba684a fix docs for raise-range-error 2012-12-16 22:29:43 -05:00
Matthew Flatt
bbfded59bf fix doc typo
Closes PR 13362
2012-12-16 13:11:56 -07:00
Matthew Flatt
fb7cbcfeb1 date struct: improve docs
Closes PR 13371
2012-12-16 13:11:56 -07:00
Danny Yoo
be49c6731c Documentation example for string-copy. 2012-12-13 19:05:45 -07:00
Asumu Takikawa
0c11601fdf Fix documented name of unsafe-cons-list 2012-12-13 18:25:29 -05:00
Asumu Takikawa
5286e5016e Minor doc fix 2012-12-13 17:54:58 -05:00
Asumu Takikawa
9c70f3373d Expand on quote-syntax docs 2012-12-10 18:05:29 -05:00
Asumu Takikawa
77e687579a Doc typo 2012-12-10 15:49:50 -05:00
Matthew Flatt
4721a79c8f define-logger: make (define-logger X)' define X-logger' 2012-12-07 06:36:31 -06:00
Vincent St-Amour
cc8bd4f294 Make srclocs serializable. 2012-12-06 17:53:04 -05:00
Robby Findler
6b3b59e4a8 more "this function is useless" notes in old contract functions 2012-12-04 21:07:34 -06:00
Robby Findler
d30e7c6771 clarify that flat-contract is essentially useless now 2012-12-04 19:58:19 -06:00
Ryan Culpepper
3075b4d285 remove implicit quasiquote from lazy-require 2012-12-03 19:28:12 -05:00
Ryan Culpepper
fd7d8a412c move lazy-require to racket/lazy-require 2012-12-03 19:28:12 -05:00
Danny Yoo
f80134247d Add content to documentation on '-c' to ward off accidental misuse. 2012-12-03 12:48:50 -07:00
Matthew Flatt
acd24d68ec reference: add missing section tags 2012-12-03 12:12:54 -07:00
Matthew Flatt
9e8477dd45 racket/serialize: serialize fxvectors and flvectors 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
545191fcec guide and reference: fix typos related to "evaluation context" 2012-12-02 08:03:54 -07:00
Matthew Flatt
c0abe85d30 make case' in r5rs' and r6rs' still use eqv?'
Also, make both `case' and `cond' disallow internal definitions,
instead of inheriting the `racket' behavior.
2012-11-26 19:49:36 -07:00
Jon Zeppieri
486e95049f change 'case' to use equal? 2012-11-26 17:58:04 -07:00
Matthew Flatt
a73dc50224 break cross-reference info for document into pieces
For example, the cross-reference information for the
Reference is now broken into about 16 pieces, so that
resolving a cross-reference into the Reference doesn't
require loading all cross-reference information for
the Reference.

Every document is split into two pieces, so that the title
of a document is roughly in its own piece. That way,
re-building the page of all installed documentation can be more
scalable (after some further changes).
2012-11-23 18:44:51 -07:00
Matthew Flatt
20bdbb6d9b racket/serialize: simpler handling of quotable values 2012-11-23 18:44:51 -07:00
Asumu Takikawa
a9201f68dd Fix typo
Related to PR 13241
2012-11-19 16:29:56 -05:00
Matthew Flatt
0f5308514a fix docs for `time'
The `time' form allows multiple forms and as an internal-definition
context.
2012-11-19 09:38:58 -07:00
Matthew Flatt
a4b5336709 doc clarification on `set-rest' 2012-11-16 06:37:23 -07:00
Matthew Flatt
5400b41bce add `unsafe-cons-pair'
Also, make `list?' more optimistic about checking is  the "is list?"
flag on a pair.
2012-11-14 19:17:42 -07:00
Kevin Tew
06bc6d7883 Places documentation clarification 2012-11-13 10:21:52 -07:00
Kevin Tew
d269817a60 typo fixes 2012-11-13 10:11:50 -07:00
Danny Yoo
48683c4782 Add comment about procedure-rename in inferred value names.\nSuggested by Jos Koot. 2012-11-12 09:55:46 -07:00
Matthew Flatt
50af874a7a document `define-runtime-path' limitation
Also, log a warning when it is used in a position where it
doesn't work rght with the executable creator. I didn't make
this case an error, because `define-runtime-path' can still
work in that case as long as no standalone executable needs
to be created.
2012-11-11 09:38:16 -07:00
Claire Alvis
2f426943f0 Implementation of #:defaults keyword for define-generics 2012-11-09 20:14:56 -05:00
Eli Barzilay
672910f27b Lots of bad TAB eliminations.
I started from tabs that are not on the beginning of lines, and in
several places I did further cleanings.

If you're worried about knowing who wrote some code, for example, if you
get to this commit in "git blame", then note that you can use the "-w"
flag in many git commands to ignore whitespaces.  For example, to see
per-line authors, use "git blame -w <file>".  Another example: to see
the (*much* smaller) non-whitespace changes in this (or any other)
commit, use "git log -p -w -1 <sha1>".
2012-11-07 11:22:20 -05:00
Eli Barzilay
14d8c8b5a5 Newlines at EOFs. 2012-11-06 14:07:15 -05:00
Danny Yoo
0fa78a8cee documentation: removing the korean characters out of the example. Was breaking the build at LaTeX generation time. 2012-11-04 18:20:54 -07:00
Asumu Takikawa
27aa999446 Fix docs on continuation barriers
Closes PR 13085
2012-11-02 18:30:47 -04:00
Danny Yoo
dcf4d8b040 adding close-eval at the end of scribble files that have a toplevel evaluator 2012-11-01 15:32:53 -06:00
Danny Yoo
354a71b080 documentation: adding examples for string input. 2012-11-01 14:32:12 -06:00
Danny Yoo
b9a0eaf5da Adding an example for equal<%> 2012-10-31 15:31:50 -06:00
Matthew Flatt
d7bf677645 track import "shapes" as procedure or structure type
Shape information allows the linker to check the importing
module's compile-time expectation against the run-time
value of its imports. The JIT, in turn, can rely on that
checking to better inline structure-type predicates, etc.,
and to more directy call JIT-generated code across
module boundaries.

In addition to checking the "shape" of an import, the import's
JITted vs. non-JITted state must be consistent. To prevent shifts
in JIT state, the `eval-jit-enabled' parameter is now restricted
in its effect to top-level bindings.
2012-10-30 13:29:28 -06:00
Ryan Culpepper
832d90bf93 fix doc typo
closes PR 13216
2012-10-30 12:43:41 -04:00
Robby Findler
b7681e0807 adjust racket/engine so that it logs the time that various things happen
(and remove the commented out printfs that seem to be printing
out that same information)
2012-10-29 06:45:12 -05:00
Danny Yoo
47a33f2edf Added another example for for/fold/derived: for/max.
Updated example for for/digits to avoid confusion: it's not clear
otherwise that the intentional syntax error wasn't just a casual
mistake.

Added an example for sequence-add-between.
2012-10-28 16:36:00 -06:00
Asumu Takikawa
0d30c43a68 Add call/cc contracts to prompt-tag/c 2012-10-27 11:06:17 -04:00
Matthew Flatt
b239a29544 doc repair
Looks like it was an accidental incorrect update

Merge to v5.3.1
2012-10-24 17:03:35 -07:00
Asumu Takikawa
862fd346c7 Doc typo 2012-10-19 15:06:46 -04:00
Eli Barzilay
47a68197b6 Tidy things up. 2012-10-17 15:05:42 -04:00
Danny Yoo
18753621e1 adding examples for sequences 2012-10-17 15:05:42 -04:00
Matthew Flatt
04e8689a9b add another argument to `{chaperone,impersonate}-prompt-tag'
The new argument gets to chaperone/impersonate a guard at
the prompt, and it is applied when the continuation is applied ---
based on a wrapper on th prompt tag of the continuation (as opposed to
the prompt tag of the prompt).
2012-10-17 10:24:09 -06:00
Matthew Flatt
843c722146 add an argument to `{chaperone,impersonate}-prompt-tag'
The new argument gets to filter results that come from a
non-composable continuation that replaces one delimited
by a prompt using the chaperoned/impersonated prompt tag.
2012-10-16 15:11:50 -04:00