Commit Graph

1906 Commits

Author SHA1 Message Date
Claire Alvis
04f535cadc Default implementations are only reached in the absence of method tables. 2013-04-04 15:31:51 -04:00
Carl Eastlund
df00bbb194 Updated contracts for arity-related functions.
Added contract checking to arity=?, arity-includes?, and normalized-arity.
Removed contract checking from normalize-arity to make it a total predicate.
Updated documentation for normalize-arity to reflect this change.
2013-03-31 13:36:07 -04:00
Carl Eastlund
aaa99d565d Documented normalized-arity?, arity=?, and arity-includes?. 2013-03-31 13:36:06 -04:00
Carl Eastlund
4dd011aa09 Added documentation for normalize-arity. 2013-03-31 13:36:05 -04:00
Ryan Culpepper
1b729d34d8 added rename option to lazy-require
closes PR 13624

also added examples
2013-03-30 10:00:44 -04:00
Matthew Flatt
8e25f42fbc doc repair
Closes PR 13555
2013-03-29 07:23:50 -06:00
Matthew Flatt
3f7fcdf1b7 reference: doc clarifications on `guard-evt' 2013-03-29 07:23:49 -06:00
Matthew Flatt
5afd1b4118 syntax-color/racket-lexer: update for single-precision and extflonums
Includes a doc fix to note `+inf.t', etc.
2013-03-29 07:23:49 -06:00
Matthew Flatt
f1ebb6136b reference: fix for reader's number grammar 2013-03-29 07:23:49 -06:00
Matthew Flatt
4d76aa2040 place channels & threads: improve GC
Allow a thread to be GCed when it is blocked on a place
channel for reading and the place channel's write end
is inaccessible.

GC is limited to threads that do not participate in cycles
of such threads, where the otherwise unerachable threads
are blocked on place channels that are reachable among the
set of threads. In other words, the GC finds the greatest
fix point (as measured by the threads to retain) instead of
least fix point --- which isn't what you want, but finding
the least fix point seems to require significant extra GC
machinery across places.

This improvement was intended to solve the same problem as
commit 7b0608c, but that case seems to run into the limitation
on cycles.
2013-03-25 05:15:24 -06:00
Robby Findler
6e4d483403 adjust contract library to call raise-argument-error instead of error
and a few other changes nearby to clean up various things

closes PR 13623
2013-03-23 22:00:29 -05:00
Matthew Flatt
acd6764019 support boxes in syntax patterns and templates
Also, `datum-case' and `datum' from `syntax/datum'.
2013-03-21 09:06:15 -06:00
Matthew Flatt
31964a11dc reference: improve docs on peeking 2013-03-19 15:48:22 -07:00
Michael Filonenko
35a093469c windows: extflonum support
Enable extflonums in a MSVC build by relying on a MinGW-built DLL,
"longdouble.dll". The DLL is loaded on startup. If the DLL isn't
available, then `extflonum-available?' reports #f.

Instead of setting the floating-point mode globally to extended
precision, the mode is changed only just before (and restored right
after) extflonum arithmetic operations.
2013-03-18 07:42:32 -07:00
Robby Findler
3f6232bc2d note that the logger-callback's default argument is #f 2013-03-14 14:11:02 -05:00
Asumu Takikawa
2f0dee9270 Doc fixes for takef & friends 2013-03-09 17:13:59 -05:00
Eli Barzilay
3af72ecab4 Added splitf-at', takef-right', dropf-right', splitf-at-right', and more.
* See comment about implementation issues.

* Removed the `list?' requirement on `takef' etc -- so it matches the
  non-*f versions.  (IMO, it'd be better to drop it from all of them.)
  This also changes the output of `dropf' to `any/c'.

* Swapped the argument order so the predicate is last -- this makes it
  uniform with the non-f* versions.  (IMO, it'b be better to use the
  popular order in all of them instead.)

* Includes tests, and also improved version of previous tests.

* Includes docs, and also fixes to previous docs (eg, drop* doesn't
  return a fresh list).
2013-03-09 15:47:43 -05:00
Eli Barzilay
e47cc6efb1 Clean up source layout. 2013-03-09 15:47:42 -05:00
Eli Barzilay
2cdfe18beb Rename {take,drop}-while' -> {take,drop}f'.
Also, improve the tests a little.
2013-03-09 15:47:42 -05:00
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