Eli Barzilay
2cc4429c62
When constructing code, use the `object-name' of the input port *only*
...
if it's coming from a file -- not when it's a string. In that case, use
`#f' for the name, so other code (specifically, `input->code') will use
'program.
svn: r17987
2010-02-05 03:22:23 +00:00
Eli Barzilay
a4954b774d
Use optional arguments instead of `case-lambda'.
...
svn: r17986
2010-02-05 03:22:21 +00:00
Eli Barzilay
536d0266df
Use unsafe operations in `sort'. It has been running in safe mode for a
...
while with no errors reported, and this change is done now when there's
time before the next release.
svn: r17985
2010-02-05 03:22:17 +00:00
Eli Barzilay
2368290cdb
Test now that the generator is not in a running state when it's called.
...
The previous problem was just a bug.
svn: r17984
2010-02-05 03:22:15 +00:00
Eli Barzilay
d5822a3ee5
Remove the special case hack for getting zero values at the end of a
...
generator. This will make this:
(generator (yield 1) (yield))
also repeat #<void> when it's done which will be very confusing. Better
just add a note in the docs on (generator (yield 1)) returning no values
when it's done.
Also, remove some of the `case-lambda' optimizations...
svn: r17983
2010-02-05 03:22:12 +00:00
Eli Barzilay
3a08648dab
Added a `running' state, which is visible only from inside the
...
generator. (Also considered making it an error when the generator is
called while it is running, but that doesn't allow (yield (yield X))
fun.)
svn: r17982
2010-02-05 03:22:09 +00:00
Eli Barzilay
2f62cb192e
Allow using `yield' with any number of arguments which will be returned
...
as multiple values. (These `case-lambda's are for making it fast, which
is probably stupid given how slow this is anyway.)
svn: r17981
2010-02-05 03:22:07 +00:00
Eli Barzilay
f1dcf49d38
Added `generator-state', implemented using a local state (which also
...
simplifies the code that raises an error from the last change).
svn: r17980
2010-02-05 03:22:04 +00:00
Eli Barzilay
505034ea26
The generator function can now be used to send values to the generator.
...
For example,
(define g (generator (yield (yield (yield 1)))))
(list (g) (g 2) (g 3) (g 4) (g) (g))
evaluates to '(1 2 3 4 4 4). This is something that Python does (as a
generator.send method), which might be useful for using generators as
co-routines, and it is actually easy to implement since sending values
is exactly what we get when the generator call is actually calling the
saved continuation. So most of the change is dealing with the
technicalities of throwing an error when the generator is called with
some arguments, when that's done after it's terminated (at the stage
where it's repeating the last value for ever).
A few tests added for this.
svn: r17979
2010-02-05 03:22:01 +00:00
Eli Barzilay
18c8e41fac
Make it possible for the last expression in the body of a generator to
...
return any number of values. They will be collected and used as the
repeat-forever result of calling the generator again.
Note: there's an exception for using no values -- instead of returning
no values forever, use void, since no values can be more surprising, and
it can happen when someone uses something like
(generator (yield 1) (yield 2) (yield 3))
since the result of `yield' is (values). (This will change in a
following commit, but even then it will be popular since people will
usually invoke the generator with no arguments which leads to the zero
values. Could be solved if you use (g (void)) -- but that's awkward, I
think.)
svn: r17978
2010-02-05 03:21:59 +00:00
Eli Barzilay
c88a5a6856
A bunch of additional typos
...
svn: r17976
2010-02-05 03:21:52 +00:00
Eli Barzilay
4cb01a48b3
only for programs
...
svn: r17835
2010-01-26 15:04:51 +00:00
Eli Barzilay
04725539c7
Propagate path to syntax source of evaluated files when applicable
...
Set `current-load-relative-directory' based on path when it names a directory.
svn: r17826
2010-01-25 21:02:15 +00:00
Eli Barzilay
6b7c199326
* Some reorganization of code
...
* Rename `make-repeated-sequence-generator' -> `sequence->repeated-generator'
* Several tests for `sequence->generator'
svn: r17586
2010-01-09 04:45:39 +00:00
Jon Rafkind
a0ba9a7649
add sequence->generator and change make-repeated-sequence-generator to use that instead of infinite-generator
...
svn: r17583
2010-01-08 22:02:42 +00:00
Matthew Flatt
d1e979c4c5
check arguments of scheme/math functions (PR 10197)
...
svn: r17565
2010-01-08 13:50:21 +00:00
Jon Rafkind
db44bb9e7a
add infinite-generator and make-repeated-sequence-generator
...
svn: r17559
2010-01-07 23:23:56 +00:00
Jon Rafkind
db6a9de7ed
add 'infinite' generator
...
svn: r17552
2010-01-07 21:53:37 +00:00
Eli Barzilay
220801c80c
typo in error message
...
svn: r17526
2010-01-07 03:39:33 +00:00
Eli Barzilay
39595d2d05
faster version of the code
...
svn: r17525
2010-01-07 03:38:23 +00:00
Matthew Flatt
41261c6047
fill out fl and fx operations; repair fixnum-overflow bug in quotient
...
svn: r17524
2010-01-07 03:30:33 +00:00
Robby Findler
ccacf5a651
svn: r17509
2010-01-06 21:25:00 +00:00
Robby Findler
d014e0d0d8
improved along the lines of Eli's suggestions
...
svn: r17507
2010-01-06 21:22:29 +00:00
Robby Findler
c8410ef36d
svn: r17506
2010-01-06 21:16:49 +00:00
Robby Findler
68efb4008a
normalized the results of procedure-arity
...
svn: r17504
2010-01-06 19:34:29 +00:00
Sam Tobin-Hochstadt
a45c788749
remove useless code
...
svn: r17496
2010-01-06 16:52:07 +00:00
Sam Tobin-Hochstadt
ac9d2d8d9e
Support prefab struct literals in quasipatterns.
...
Fixes PR 10050.
svn: r17495
2010-01-06 16:41:17 +00:00
Sam Tobin-Hochstadt
b802c7dfd0
Fix PR 10140
...
svn: r17473
2010-01-04 01:12:58 +00:00
Matthew Flatt
1dec25d99d
remove stx-cert transparency on scheme/base lambda expansion
...
svn: r17471
2010-01-03 18:06:52 +00:00
Matthew Flatt
38d7e8fea2
built-in fixnum ops; bug fix related to misuse of flonum ops; questionable attempt to improve inlining algorithm
...
svn: r17461
2010-01-02 16:33:28 +00:00
Matthew Flatt
2200ef17f5
fix problem with expansion to lambda in class form; better certficate transparency in splicing-let forms
...
svn: r17436
2009-12-30 12:35:21 +00:00
Robby Findler
195d608fe5
added scheme/fixnum
...
svn: r17391
2009-12-23 15:41:40 +00:00
Eli Barzilay
6daf99c7bf
added keywords: to the custom _fun thing
...
svn: r17378
2009-12-21 08:52:44 +00:00
Eli Barzilay
8ce4e110e6
better names for keyword functions (avoid possible confusion)
...
better error
svn: r17377
2009-12-21 08:05:48 +00:00
Eli Barzilay
1530411d94
better organization for keyword parsing in _fun
...
svn: r17376
2009-12-21 08:00:33 +00:00
Eli Barzilay
add4f479c6
fix error
...
svn: r17375
2009-12-21 06:25:53 +00:00
Eli Barzilay
f1e17c7b5b
svn: r17374
2009-12-21 05:47:20 +00:00
Stevie Strickland
fb85388288
Add this%, which is the class counterpart of the object reference "this".
...
svn: r17359
2009-12-19 20:56:40 +00:00
Matthew Flatt
fdd7122994
scheme/flonum (v4.2.3.8)
...
svn: r17348
2009-12-18 15:40:00 +00:00
Matthew Flatt
87f05fed95
add #:save-errno option for foreign-function types
...
svn: r17299
2009-12-14 23:52:23 +00:00
Matthew Flatt
294e593dd2
fix overly pessimistic 'in-naturals' when an argument is supplied
...
svn: r17292
2009-12-14 17:51:36 +00:00
Sam Tobin-Hochstadt
e7e34f304c
Add match/derived' and
match*/derived'.
...
Use `syntax-parse' to implement most of the match forms.
Avoid generating so much extraneous intermediate forms.
Add `go/one' for handling of `match'.
Make `cert' argument to `go' optional.
svn: r17281
2009-12-13 03:20:32 +00:00
Sam Tobin-Hochstadt
046c21b2ae
Make `make-provide/contract-transformer' available. To be used in
...
Typed Scheme's `provide'.
Signed-Off-By: sstrickl
svn: r17280
2009-12-13 03:17:51 +00:00
Sam Tobin-Hochstadt
fde17c1567
Provide more information in `hash/c' error messages.
...
Signed-Off-By: sstrickl
svn: r17279
2009-12-13 03:17:05 +00:00
Sam Tobin-Hochstadt
c8c9bd0556
Add `in-bytes-lines'
...
svn: r17261
2009-12-10 17:01:53 +00:00
John Clements
357b8cb90b
changed error message to include sizes
...
svn: r17246
2009-12-09 06:06:56 +00:00
Jay McCarthy
b26bdba77d
Found a small error in in-port's handling of default arguments
...
svn: r17244
2009-12-08 22:50:43 +00:00
Eli Barzilay
1a12497bc1
optimize insertionsort: one less loop variable, one more addition, unconditional first step
...
svn: r17227
2009-12-06 09:11:47 +00:00
Eli Barzilay
9cc6cd0db4
moved extra promise types back to scheme/promise
...
svn: r17207
2009-12-05 09:28:41 +00:00
Eli Barzilay
4df0d11db5
promise code moved to scheme/private
...
svn: r17205
2009-12-05 09:07:17 +00:00