Commit graph

1331 commits

Author SHA1 Message Date
Alex Shinn
8fe6b8f7bd (chibi strings) functions taking predicates now accept char-sets as well. 2012-06-21 23:08:24 -07:00
Alex Shinn
a18deb68cc Optional code refactoring.
Chibi uses a lot of #if conditioned code so that configuration
management can be done entirely with the C preprocessor.

Originally this also involved conditional includes of .c files
from other source files.  The alterative, which this change
switches to, is to compile and link all files, and for uneeded
files conditionally eliminate their entire bodies so they compile
to empty object files.

Pros for conditionally including all code into one large file:

  * Don't need to declare most functions (keeps .h files small).
  * Can keep most functions static/inlined (keeps objects small).
  * Don't need to even distribute uneeded files with the default
    Makefile (e.g. can prune opt/* from dist for minimal builds).

Pros for linking multiple possibly empty files:

  * Extensions and third-party libs probably want the exported
    declarations anyway.
  * Static analysis tools work better (e.g. flymake on what previously
    was an included file).
  * Can build each file in parallel (i.e. make -j for faster builds).
  * Can build and link in just the changed files, instead of
    having to recompile the whole thing.

For Chibi these are all minor points - it will be small
regardless, and will build fast regardless - but the arguments
for splitting seem stronger.  Note the new shared lib is about
1k larger, but that can be trimmed down later.
2012-06-21 23:04:07 -07:00
Alex Shinn
08e4fead8b small fixes and warning removals for build tests 2012-06-20 21:39:52 -07:00
Alex Shinn
8518ebe641 image header magic field shouldn't be const (removes warning) 2012-06-20 21:07:18 -07:00
Alex Shinn
05d416e17f The argument to exit is optional, and is treated as 1 for any non-integer
("error" for any non-string on plan9).  The idiom (exit #f) can be used
to indicate an arbitrary error.
2012-06-19 23:09:29 -07:00
Alex Shinn
37b796e0f0 DragonFly build support patch from ctismyusername. 2012-06-19 22:47:15 -07:00
Alex Shinn
c903a73921 adding ascii and full unicode char-set libraries based on isets 2012-06-17 19:36:17 +09:00
Alex Shinn
14a46feec9 adding iset optimization utility lib 2012-06-17 19:07:54 +09:00
Alex Shinn
855af6120b sexp_release_object fix from Ben Weaver - wasn't releasing
the first object in the list.
2012-06-14 22:37:10 +09:00
Alex Shinn
f9c640f180 non-string-stream get-output-string concatenated chunks in reverse
order for accumulated output longer than the buffer size (4096 chars)
2012-06-14 10:52:36 +09:00
Alex Shinn
a78919200f Fixing number literal syntax using exponents with an explicit '+'. 2012-06-14 10:22:26 +09:00
Alex Shinn
78734b806d Making repl completion insert the longest common prefix before
showing candidates.
2012-06-14 09:07:16 +09:00
Alex Shinn
028a260247 Replacing string-ref uses with string-cursor-ref. 2012-06-14 09:03:37 +09:00
Alex Shinn
c9e579f9f4 removing debug line 2012-06-13 00:24:54 +09:00
Alex Shinn
034601a02b fixing iset cursors to do proper in-order traversal 2012-06-12 23:02:10 +09:00
Alex Shinn
06d82e5695 fixing bignum integer-length for real 2012-06-10 23:06:44 +09:00
Alex Shinn
dc70094472 Allowing arbitrary length #\xNNNN char literals. 2012-06-10 17:50:42 +09:00
Alex Shinn
8d5ea4cdf4 making literals embedded in the source immutable 2012-06-10 14:22:22 +09:00
Alex Shinn
638558ebe0 initial (iset) integer-set library based on chicken implementation 2012-06-07 01:36:08 +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
Alex Shinn
fa0c699a6c Fixing unsigned integer bug in bit-set?. 2012-06-04 23:25:31 +09:00
Alex Shinn
befe63d6ba Using brace-notation for write/ss for records not containing any shares. 2012-06-02 20:11:54 +09:00
Alex Shinn
a56b497a00 fixing bug in srfi-38 for reading ellipsis 2012-05-23 23:27:02 +09:00
Alex Shinn
cb6d16a8f1 fixing combinatorial explosion of code in certain match or patterns 2012-05-23 23:21:35 +09:00
Alex Shinn
c4bf82842c updates for changes from results of the fifth ballot 2012-05-20 18:44:25 +09:00
Alex Shinn
c8f13f8538 Adding (scheme cxr) library, removing all other references to c[ad]{3,4]r. 2012-05-20 15:16:11 +09:00
Alex Shinn
120a887b3d highlighter should output a string in extra-paren error case, not a char 2012-05-20 15:12:09 +09:00
Alex Shinn
057f6b2dea Removing debug code not meant for commit. 2012-05-19 07:54:07 +09:00
Alex Shinn
a979e6ffcf bugfix for reading non-ascii chars 2012-05-19 07:52:17 +09:00
Alex Shinn
e8c0328540 fixing non-string-stream read-line to return eof when no data is read 2012-05-19 07:38:54 +09:00
Alex Shinn
7dd7d076dd file descriptors open as binary ports by default 2012-05-18 23:00:30 +09:00
Alex Shinn
edbf07eaed fixing module reloading for non-top-level modules 2012-05-16 21:04:48 +09:00
Alex Shinn
ddc99fbf79 small meta tweaks for reloading 2012-05-15 23:00:55 +09:00
Alex Shinn
d8e0abc3cb adding module reload library 2012-05-15 22:57:18 +09:00
Alex Shinn
610af03429 merge 2012-05-14 11:02:40 -04:00
Alex Shinn
85a7efc003 automatically making sockets non-blocking on accept 2012-05-14 08:37:45 -04:00
Alex Shinn
658f3cecd5 Fixing string->number for (string->number "[a-f]" 16) case. 2012-05-14 06:41:28 +09:00
Alex Shinn
354ceb2113 Fixing check on valid file descriptors. 2012-05-13 09:39:04 -04:00
Alex Shinn
a3e6a6c1e8 Don't mutate the standard keymap. 2012-05-13 22:06:47 +09:00
Alex Shinn
bc50ae0d34 FFI now accepts integers as unmanaged filenos for convenience.
Also some fixes for (chibi process).
2012-05-13 21:43:02 +09:00
Alex Shinn
1e49c0917f adding thread name for net clients 2012-05-13 21:25:05 +09:00
Alex Shinn
a43cd05711 adding single-line line editing option 2012-05-13 21:24:27 +09:00
Alex Shinn
3fdf435ba3 Adding channels (i.e. mailboxes, i.e. thread-safe queues) for easy coordination between threads. 2012-05-13 14:30:25 +09:00
Alex Shinn
1aff449a48 Fixing mutex-unlock! on a condition variable to both unlock and block. 2012-05-12 22:43:46 +09:00
Alex Shinn
1ab1008f20 atomically for non-threaded builds is just a begin 2012-05-07 08:19:37 +09:00
Alex Shinn
be7a80007b fixing two arg atan 2012-05-07 00:21:00 +09:00
Alex Shinn
99211de2b0 adding atomically to disable yielding in controlled situations 2012-05-06 23:56:06 +09:00
Alex Shinn
92801f22ce plan9 build now uses static libs by default 2012-05-06 23:08:47 +09:00
Alex Shinn
d2b3983e31 adding initial (chibi net server) library for simple tcp servers 2012-05-06 20:26:13 +09:00