Commit graph

57 commits

Author SHA1 Message Date
Alex Shinn
b638b9f1b4 Hygiene change. Removing syntactic closure flattening to
support unhygienic insertion.  Breaks the previous assumption
that syntactic closures were never nested.
2014-01-12 19:29:11 +09:00
Alex Shinn
53826be6f9 Handling potential memory overflow in random-integer with a bignum bound. 2014-01-01 13:26:43 +09:00
Alex Shinn
6094e5fb12 Adding string and symbol quote delimiters to list of read delimiters in (scheme read). 2013-09-29 13:42:24 +09:00
Alex Shinn
af71abc817 write/ss only falls back on write in unknown cases. 2013-08-11 12:38:43 +09:00
Alex Shinn
92ccc0144a Patches from Ben Mather.
Allow #f to leave (srfi 99) record constructors and predicates undefined.
Distinguish default immutable fields (raw identifier), from default
mutable fields (list of one identifier) in the syntactic layer by not
creating setters for the immutable fields.  The record introspection
can still mutate such fields.
Fixes issue #190.
2013-07-30 21:15:24 +09:00
Alex Shinn
13b540418e C-level string API redesign with cursor support.
s/sexp_string_length/sexp_string_size/
Make sexp_string_ref/sexp_string_set Unicode aware.
Provide cursor level alternatives for efficiency.
Document all of this.
2013-07-21 14:59:51 +09:00
Alex Shinn
b10cb94e17 Reset the current parameters in child threads.
This is simple and fast.  Inheriting all threads causes immediate
problems with exception handlers, and in general should use
copy-on-write behavior so that child threads can't affect parents.  If
we make an eager copy of the parameters we can filter out just the
exception handler, but then thread creation is expensive.  The ideal
design might allow selectively enabling parameter inheritance.
2013-05-29 20:40:48 +09:00
Alex Shinn
86cc80f67f Patch from Lorenzo to fix previous incomplete patch. 2013-05-28 19:53:14 +09:00
Alex Shinn
dde47a7846 Setting new thread's dynamic wind state to a fresh root. 2013-05-27 22:23:54 +09:00
Alex Shinn
99c8992207 make-thread no longer needs to reset the dynamic continuation 2013-05-26 08:58:19 +09:00
Alex Shinn
2cb9d2237f Better error message for invalid args to sorted?. 2013-05-12 10:31:30 +09:00
Alex Shinn
74775675fc Fixing sort on vectors for comparators other than <.
Also applying the dups fix analog to 0d36042bb1c6 for non-< comparators.
2013-05-12 10:30:38 +09:00
Alex Shinn
59c3171c39 Partition needs to split on <= to handle dups properly. 2013-05-11 13:39:36 +09:00
Alex Shinn
908be71b17 Reverting previous sorted? change. 2013-05-11 13:02:30 +09:00
Alex Shinn
5db2afb02d Extra gc preservation. 2013-05-11 12:58:20 +09:00
Alex Shinn
7a08f86b3d sorted? should support <= 2013-05-11 12:41:51 +09:00
Alex Shinn
13f9d0f8d0 Fixing SRFI-95 sort for inexacts differing only in the fractional part
(reported by Alan Watson).
Also adding support for complex and ratios.
2013-05-11 12:34:16 +09:00
Alex Shinn
242ab2c8e6 Adding an explicit error for record rtd and constructor conflicts. 2013-04-05 20:22:46 +09:00
Alex Shinn
e281854483 SRFI-18 can now build without error for threadless builds, as an empty library.
Actually importing it in this case reports an error.
2013-02-27 20:58:44 +09:00
Alex Shinn
20c62ffe4a The global ABI error object needs to be an immediate, since if
the ABI is incompatible we can't even necessarily refer to a
global from within the bad library.
2013-02-10 16:38:18 +09:00
Alex Shinn
3e241e3a3e Simplifying scheduler case where the only available thread is waiting on a port.
Instead of a one-time poll, we just use the default small sleep + loop case,
so we use the normal poll next time through the scheduler.
This fixes a potential case where a lone thread waiting on I/O could hang,
discovered by Lorenzo.
2013-01-14 17:59:40 +09:00
Alex Shinn
da328bb88c Another thread patch from Lorenzo. If we're reduced to scheduling
a single thread blocked on an fd and the poll fails, optimistically
unblock it (so it can block again naturally), instead of just running
it still in a wait status.
2013-01-06 00:22:54 +09:00
Alex Shinn
f209c38f4f sexp_blocker can block on fileno objects 2012-12-31 00:25:13 +09:00
Alex Shinn
e4b86a5807 Updating SRFI-2 to support single variable references as clauses, and adding tests.
Also allowing empty bodies.  (I think both are terrible extensions.)
2012-12-15 13:06:32 +09:00
Alex Shinn
60690e303c Removing reference to digit-value. 2012-11-11 15:12:16 +09:00
Alex Shinn
6a0b9ee10b Allowing complex with #d prefix in srfi-38. 2012-11-04 00:42:23 +09:00
Alex Shinn
c55fa6fe4d Allowing fractions with prefixes in srfi-38. 2012-11-04 00:35:55 +09:00
Alex Shinn
5f323551c9 Fixing negative numbers with base prefixes in srfi-38. 2012-11-04 00:32:13 +09:00
Alex Shinn
195cbeca6d Fixing unquote-splicing in srfi-38. 2012-11-03 23:37:41 +09:00
Alex Shinn
90856b8de2 Adding bytevector support to srfi-38. 2012-11-03 23:35:37 +09:00
Alex Shinn
83a2de519c Fixing #| ... |# comments. 2012-11-03 23:29:13 +09:00
Alex Shinn
9cae7fada9 Supporting hex char escapes in extended reader. 2012-11-02 00:02:26 +09:00
Alex Shinn
08a5a2e0e8 Renaming the (scheme) library to (chibi). Leaving (scheme) as an alias for backwards compatibility. 2012-10-14 22:11:47 +09:00
Alex Shinn
3d161d4d2f If we are re-awakened waiting on a thread-join! but without timing out,
try to join again to make sure it's really dead.
2012-10-13 23:51:55 +09:00
Alex Shinn
35bfe1702b thread-sleep! and other timeouts now accept ratios 2012-09-17 15:11:05 +09:00
Alex Shinn
21d4fc670c fixing bug in scheduler queueing paused threads 2012-09-16 15:08:19 +09:00
Alex Shinn
fcaa906954 Another patch from Lorenzo for non-fixnum thread timeouts. 2012-09-03 20:17:46 +09:00
Alex Shinn
f6c3d1d415 adding file necessary for non-threaded parameters 2012-08-26 13:56:10 +09:00
Alex Shinn
4bd428da9e Unblock the current thread if it was waiting on an fd with activity.
Prevents useless extra polling slowing down the process as noted in issue #144.
2012-08-25 12:49:34 +09:00
Alex Shinn
b40370be52 thread-join! now returns the result or raises the exception of the joined thread 2012-08-15 21:23:39 +09:00
Alex Shinn
51c12f6115 If the only available thread is paused and we need to schedule it, remove it from the paused list.
Fixes issue #138 - otherwise the thread can be revived in the repl after we sleep.
2012-08-13 13:49:48 +00:00
Alex Shinn
736ff434e6 Updating srfi-38 to support writing labels only for values which cause cycles.
Also switching to srfi-69 for efficiency.
2012-08-12 21:28:36 +09:00
Alex Shinn
10b1110439 Fixing mutex-unlock! with paused thread waiting on mutex-lock! 2012-08-08 00:21:00 +09:00
Alex Shinn
3ee50bd0d7 length now requires a proper list.
It still accepts cyclic lists and returns #f, like SRFI-1 length+.
It's convenient to be able to accept improper lists (e.g. for
parameter lists), so the old behavior is available as length*.
Fixes issue #97.
2012-07-21 19:22:56 +09:00
Alex Shinn
a3daf9f728 don't check for a timeout on thread-join! unless one was specified 2012-07-21 18:46:56 +09:00
Alex Shinn
cdb8760fcc Need to unpause a paused thread if we want to terminate it. 2012-07-21 17:05:05 +09:00
Alex Shinn
0553dd41b9 Need to rename field parameter names in record constructors. 2012-07-16 22:49:48 +09:00
Alex Shinn
06d82e5695 fixing bignum integer-length for real 2012-06-10 23:06:44 +09:00
Alex Shinn
25247ee4b5 Fixing integer-length for bignums. 2012-06-07 00:48:43 +09:00
Alex Shinn
6ca990016a Fixing bug in bignum<->fixnum bitwise-[ix]or modifying inputs instead of outputs (oops). 2012-06-05 00:16:22 +09:00