Abdulaziz Ghuloum
0da4e99a12
simplified when, unless, and case macros and added better handler
...
for (if (not e) e e).
2008-08-02 11:09:22 -07:00
Abdulaziz Ghuloum
39e84d1395
simplified parameterize macro.
2008-08-02 10:11:04 -07:00
Abdulaziz Ghuloum
959082d12d
assert now gives source information when available.
2008-07-29 11:04:52 -07:00
Abdulaziz Ghuloum
3b80d4f321
fixed a bug in quotient and div when given (least-fixnum) and -1.
2008-07-26 12:28:51 -07:00
Abdulaziz Ghuloum
7db56cf76e
- bytevector-ieee-[single|double]-[ref|set!] now accept unaligned
...
indices (r6rs requirement).
- file-options are now represented as enum-sets (r6rs requirement)
- odd?, even?, lcm, remainder, etc., now accept inexact integers.
2008-07-24 18:58:53 -07:00
Abdulaziz Ghuloum
01c4afa320
Major work towards the AMD64 port. Most important of which is that
...
continuations work, more assembly instructions are testing in 64-bit
mode, and some arithmetic operations (shift-right, etc.) have been
fixed by removing some 32-bit dependencies.
2008-07-18 01:35:13 -07:00
Abdulaziz Ghuloum
c3b12a22e8
the repl now resets on receiving &interrupted conditions.
2008-07-12 20:05:45 -07:00
Abdulaziz Ghuloum
eccca7f4ea
- Added trace-let-syntax, trace-letrec-syntax, as well as fixed
...
trace-define-syntax to handle variable transformers.
- added primops for fx comparison functions.
2008-07-11 22:31:40 -07:00
Abdulaziz Ghuloum
579b823f44
WIP on tag analysis, annotations, and utilization.
2008-07-06 23:48:16 -07:00
Abdulaziz Ghuloum
d73dfd1287
- More work on the new optimizer
...
- Deleted old optimizer and changed the meaning of optimize level to
be:
0: bypass the optimizer
1: copy propagation, constant folding, no inlining
1: copy propagation, constant folding, with inlining
The default is set to 1.
2008-06-29 12:35:34 -07:00
Abdulaziz Ghuloum
66464cc348
Fixed a bug when doing (/ 1 1 1 ...).
2008-06-28 13:02:05 -07:00
Abdulaziz Ghuloum
45346ef865
- Added cp0! including:
...
- (optimize-level [0,1,2]) and ikarus -O[0,1,2]
where -O0 = no optimizations
-O1 = using old optimizer
-O2 = using the new cp0 optimizer
defaults to -O1 for now.
- (cp0-size-limit n) which is the limit of the residual size for
each inlining attempt
- (cp0-effort-limit n) which is the limit on the effort expended
for each inlining attempt
- Rewrote the syntax-match macro to make use of the same technology
used in syntax-case itself resulting in reduced code size.
- Added (system-value <symbol>) which returns the system value.
E.g., (system-value 'car) => #<procedure car>
This is pretty much the same as
(eval <symbol> (environment '(ikarus)))
except that it does not involve compiling the expression or
consulting the library/expander systems.
- Fixed the fasl loader to make it understand complex numbers.
2008-06-28 02:25:44 -07:00
Abdulaziz Ghuloum
7d9ed176ac
More work on cp0 which can now swallow the compiler but cannot yet
...
fold any primitives.
2008-06-22 22:10:05 -07:00
Abdulaziz Ghuloum
8f0f0abbca
Applied a patch supplied by Derick Eddington that provides enhanced
...
functionality for waitpid (nonblocking waitpid and more status info)
as well as the ability to send a signal to a process, e.g.,
(kill pid 'HUP).
2008-06-13 05:43:17 -07:00
Abdulaziz Ghuloum
0939370a07
suppressing printing of file names during bootstrap.
2008-06-10 13:21:00 -07:00
Abdulaziz Ghuloum
ef50e9f515
dropping input-port-byte-position from (ikarus)'s exports.
2008-06-09 01:36:27 -07:00
Abdulaziz Ghuloum
af5472bfb2
exporting fork
2008-06-06 07:52:40 -07:00
Abdulaziz Ghuloum
be37f629c5
the reader now understands some complex numbers.
2008-06-02 00:01:59 -07:00
Abdulaziz Ghuloum
a492d318e1
- fixed minor bug in current-directory
...
- changed implementation of string->number.
2008-05-31 20:10:17 -07:00
Abdulaziz Ghuloum
53905b9eea
Changes from Derick Eddington supporting file system info:
...
- Added file-regular?, file-directory?, file-symbolic-link?,
directory-list, make-directory, delete-directory, change-mode,
and make-symbolic-link.
- Bug fix in ikrt_open_input_fd and ikrt_open_output_fd which
considered a 0 FD as an error.
- Bug fix in ikrt_getcwd about len+1.
- Bug fix of &i/o-file-protection which didn't have &i/o-filename as
its parent.
- There is a new src/ikarus-errno.c file.
- Made tcp-connect and friends tell when they "failed to resolve
host name or connect".
- To support the uses of &i/o-filename subtypes, I modified
print-condition so it will cleanly print the parents' fields of a
condition;
2008-05-31 10:43:55 -07:00
Abdulaziz Ghuloum
ab2e05e8b0
Added inexact complex numbers.
2008-05-24 10:13:01 -07:00
Abdulaziz Ghuloum
0a6df79e3b
ikarus.reader is now loadable separately.
2008-05-20 23:21:37 -07:00
Abdulaziz Ghuloum
82140f87ba
- Added complex numbers representation (exact complex only).
...
- Added make-rectangular.
- Added the ability to display complex numbers.
2008-05-18 20:39:41 -07:00
Abdulaziz Ghuloum
4acf71d6d2
moved pretty-printing formats to their own library.
2008-05-12 00:35:19 -07:00
Abdulaziz Ghuloum
f05f171f28
exported pretty-format, a parameter maker for setting the pretty
...
format for various forms. The pretty format structure is not
documented yet and there is no error-checking mechanism for
verifying proper input.
2008-05-12 01:00:01 -04:00
Abdulaziz Ghuloum
5f92e4b96d
Added current-directory parameter that gets/sets cwd.
2008-05-03 02:39:49 -04:00
Abdulaziz Ghuloum
d87ced74d1
cleaned up some stale primitive names.
2008-05-01 18:13:11 -04:00
Abdulaziz Ghuloum
db70f9751f
Made all unimplemented procedures raise errors when called.
2008-05-01 17:52:52 -04:00
Abdulaziz Ghuloum
d49aed209a
Added (interaction-environment).
2008-05-01 06:02:36 -04:00
Abdulaziz Ghuloum
e7386cd7d7
Major changes to the interactive repl:
...
- We can now redefine imported identifiers.
- We can now use let-syntax, letrec-syntax, and modules at
top-level.
Hand-wavey Repl Semantics:
- Imported identifiers mean what they meant previously. In
particular, you cannot set! imported identifiers.
- An imported identifier may be redefined using define. Once
something is defined at the top-level, a specific location for it
is created, and all definitions, references, and set!s to that
variable go through the top-level location.
- Re-importing an identifier shadows the top-level location.
- Redefining re-exposes the top-level location.
- and do on.
- A reference to an unbound variable also fabricates a top-level
location for that variable.
Let's see how this goes.
2008-05-01 04:21:07 -04:00
Abdulaziz Ghuloum
1389f239fe
Added process-nonblocking which is like process but returns
...
nonblocking ports.
2008-04-30 22:55:59 -04:00
Abdulaziz Ghuloum
f69e82e6c5
Added with-output-to-port:
...
> (let-values ([(p e) (open-string-output-port)])
(with-output-to-port p (lambda () (printf "Hello\n")))
(e))
"Hello\n"
2008-04-29 00:20:29 -04:00
Abdulaziz Ghuloum
d8cd4f0acf
Added engine-handler parameter and a ($swap-engine-counter! <neg-fx>)
...
to (ikarus system $interrupts).
2008-04-29 00:10:49 -04:00
Abdulaziz Ghuloum
df0aa2de1f
Added input-socket-buffer-size and output-socket-buffer-size
...
parameters.
2008-04-11 14:02:43 -04:00
Abdulaziz Ghuloum
25344fa1d0
Added nanosleep as per bug 210678.
2008-04-11 05:36:54 -04:00
Abdulaziz Ghuloum
bf6138f86f
- Added reset-output-port! which sets the write index to 0 and
...
unregisters any callbacks associated with the buffer.
- commented out the call for unblocking the stdin for now
(for reason yet unknown to me, it causes stdout to be unblocked
as well, making writes to the console to come out in bizarre
mixed order)
2008-04-06 10:57:56 -04:00
Abdulaziz Ghuloum
884f3fe921
Added tcp-server-socket-nonblocking, tcp-accept-connection-nonblocking
...
and register-callback for handling nonblocking servers and connections.
2008-03-23 05:02:12 -04:00
Abdulaziz Ghuloum
2119f44125
Added a simple tcp server facility. See lab/greeting-server.ss.
2008-03-23 03:44:20 -04:00
Abdulaziz Ghuloum
ce496aebaf
* Better error message when a tcp connection is refused.
...
* implemented udp connections (not working yet).
2008-03-22 19:29:41 -04:00
Abdulaziz Ghuloum
85d09cbc1c
fxarithmetic-shift-left now detects overflows properly.
2008-03-18 00:49:24 -04:00
Abdulaziz Ghuloum
c8f9b1dc3d
Added fluid-let-syntax.
...
See http://www.scheme.com/csug7/syntax.html#./syntax:s15
for details.
2008-02-25 02:15:51 -05:00
Abdulaziz Ghuloum
f45a74c115
removed the separate-compilation.ss file because it was not needed.
2008-02-18 22:07:58 -05:00
Abdulaziz Ghuloum
8a809e2f58
Added (file-ctime filename) which returns the time of last change
...
(in nanoseconds)
2008-02-18 21:58:11 -05:00
Abdulaziz Ghuloum
e751c15bc4
library record now contains original file name for libraries loaded
...
from files.
2008-02-18 20:39:42 -05:00
Abdulaziz Ghuloum
fa08c543bb
library records now cache expanded code.
2008-02-18 19:15:47 -05:00
Abdulaziz Ghuloum
163809f667
Ikarus can now compile, save, and reload a simple hello-world library.
2008-02-18 02:02:00 -05:00
Abdulaziz Ghuloum
e02b646d6e
Added separate compilation stubs.
2008-02-17 04:08:38 -05:00
Abdulaziz Ghuloum
1d6d5bec61
Some work on optimizer (still not working).
2008-02-17 02:11:04 -05:00
Abdulaziz Ghuloum
30aae80c5d
removed all symbolicly linked files.
2008-02-14 17:45:15 -05:00
Abdulaziz Ghuloum
f6b35c4506
Fixes bug 191659: add1 and sub1 are slow
2008-02-13 18:12:00 -05:00
Abdulaziz Ghuloum
bde9000c06
fx- now checks for overflow.
2008-02-12 15:03:43 -05:00
Abdulaziz Ghuloum
1683997a12
fx* now detects overflow.
2008-02-12 14:46:18 -05:00
Abdulaziz Ghuloum
3811d0a4c2
Loops with a single free variable no longer allocate a closure.
2008-02-11 22:18:32 -05:00
Abdulaziz Ghuloum
4e5121af4e
Implemented an experimental SCC letrec transformation which does not
...
work yet.
2008-02-10 03:27:31 -05:00
Abdulaziz Ghuloum
f6e5e4d5b4
Added -m32 to CFLAGS/LDFLAGS, updated copyright dates and version no.
2008-01-29 00:34:34 -05:00
Abdulaziz Ghuloum
a33269daa7
Fixes bug 184959: get-bytevector-some missing
2008-01-22 10:59:04 -05:00
Abdulaziz Ghuloum
9edb15a0f9
Added bitwise-bit-field.
2008-01-20 23:13:24 -05:00
Abdulaziz Ghuloum
eedbe65e44
Added bitwise-copy-bit.
2008-01-20 22:21:54 -05:00
Abdulaziz Ghuloum
4444496609
Fixes bug 181105: syntax pattern variable list length mismatch error
...
is obscure
2008-01-09 08:47:48 -05:00
Abdulaziz Ghuloum
341e53a36d
64-bit fasl files can now be produced and read.
2008-01-03 02:07:17 -05:00
Abdulaziz Ghuloum
4c3b17436f
Added a tcp-connect-nonblocking-example.ss to demonstrate how to
...
handle nonblocking sockets by continuous polling.
2007-12-27 22:17:54 -05:00
Abdulaziz Ghuloum
64dac92831
Added tcp-connect-nonblocking which is line tcp-connect but puts the
...
socket in nonblocking mode. An operation that would block now
raises (continuable) a condition of type &i/o-would-block which
contains the port in question. There's no way to handle the
condition gracefully yet.
2007-12-27 22:08:27 -05:00
Abdulaziz Ghuloum
fc2d958419
Ikarus now recognizes ".sls", ".ss", and ".scm" extensions as well
...
as ".ikarus.sls", ".ikarus.ss", and ".ikarus.scm".
2007-12-27 15:16:08 -05:00
Abdulaziz Ghuloum
4f0a816295
Added a tcp-connect procedure that takes a host name and a service
...
name (e.g. "www.google.com" and "http") and returns two binary ports:
the first for output and the second for input.
Both ports must be closed for the connection to close.
Also added an example in lab/tcp-connect-example.ss which connects
to an http server, sends "GET /\n" and prints the responde.
2007-12-26 17:35:58 -05:00
Abdulaziz Ghuloum
f48ec4ad2d
Fixes bug 178552: &non-continuable typo in makefile.ss
2007-12-26 01:48:37 -05:00
Abdulaziz Ghuloum
ab67ee9dad
Fixes bug 178385: Closed port giving incorrect error about type
...
instead of about being closed
2007-12-23 22:28:48 -05:00
Abdulaziz Ghuloum
1c4ba26923
Added bitwise-length (fixing bug 178345: Missing bitwise-length)
2007-12-23 17:33:13 -05:00
Abdulaziz Ghuloum
894a29f0d8
Added with-output-to-file.
2007-12-23 15:06:05 -05:00
Abdulaziz Ghuloum
d2de3bcadb
Added with-input-from-string.
2007-12-23 14:44:55 -05:00
Abdulaziz Ghuloum
6eb6bf750d
Added a (process "cmd" "args" ...) procedure that execs cmd, passing
...
args to it, and returns 4 values:
* the process's pid
* the process's standard-input-port (for writing)
* the process's standard-output-port (for reading)
* the process's standard-error-port (for reading)
See lab/process-example.ss for a sample usage.
2007-12-19 22:46:07 -05:00
Abdulaziz Ghuloum
22ff670e81
the reader is now capable of returning annotated expressions
...
containing full file-source information about each expression.
2007-12-19 00:40:25 -05:00
Abdulaziz Ghuloum
d86bfb288c
Lexical errors now give filename and character position in their
...
error messages.
2007-12-18 19:52:15 -05:00
Abdulaziz Ghuloum
945e8473fc
input-port-byte-position works for input files.
2007-12-18 17:25:48 -05:00
Abdulaziz Ghuloum
e65629cb9e
Fixes bug 176682: some omissions in makefile.ss
2007-12-18 04:08:08 -05:00
Abdulaziz Ghuloum
8c0563b2d3
fixes bug 173369: errors are supposed to be &assertion
2007-12-15 08:22:49 -05:00
Abdulaziz Ghuloum
8cd744d4bd
exported verbose-timer parameter that allows printing more detailed
...
information when "time" or "time-it" are used.
2007-12-12 23:58:10 -05:00
Abdulaziz Ghuloum
23b71cee3c
substantial speedup for new io layer
2007-12-12 21:22:05 -05:00
Abdulaziz Ghuloum
54f683f0e0
Ported match.ss to ikarus.
2007-12-11 17:41:48 -05:00
Abdulaziz Ghuloum
b6299fbec2
Added make-custom-textual-input-port and make-custom-textual-output-port
2007-12-10 11:11:59 -05:00
Abdulaziz Ghuloum
8a375a3cf7
Added make-custom-binary-output-port
2007-12-10 10:36:10 -05:00
Abdulaziz Ghuloum
91b8f90715
removed obsolete (ikarus system $io) library.
2007-12-10 10:24:10 -05:00
Abdulaziz Ghuloum
2ac39cfad0
reimplemented open-output-file.
2007-12-10 10:18:52 -05:00
Abdulaziz Ghuloum
dfd66a6cbf
Added some of the new IO primitives to the (ikarus) library.
2007-12-10 08:05:31 -05:00
Abdulaziz Ghuloum
7fdeade412
Added console-error-port procedure and redirected all error output
...
to it.
2007-12-10 07:40:34 -05:00
Abdulaziz Ghuloum
0e38534d2e
New IO layer is installed. Still buggy in some area but can be used
...
for bootstrapping at least.
2007-12-10 07:28:03 -05:00
Abdulaziz Ghuloum
ea96ab85db
stage 1 of new input IO is almost complete.
2007-12-09 17:13:09 -05:00
Abdulaziz Ghuloum
1d5c069273
Fixes bug 175057: Added time-gmt-offset procedure that takes a time
...
object and returns the offset from gmt in seconds.
2007-12-09 07:20:49 -05:00
Abdulaziz Ghuloum
efd233ad0e
Fixes bugs 175025 and 175026: let-values and let*-values are fixed/added
2007-12-09 02:53:12 -05:00
Abdulaziz Ghuloum
cf82981383
Fixes bug 174497: syntax-error should not be in (rnrs) and
...
syntax-violation not completed
2007-12-07 03:00:25 -05:00
Abdulaziz Ghuloum
1469932f3d
Exported the transcoder? primitive.
2007-12-06 05:05:26 -05:00
Abdulaziz Ghuloum
0b693a7103
The unread-char primitive is deleted, all code that referenced
...
unread-char was rewritten as peek-char and read-char.
2007-12-05 05:01:56 -05:00
Abdulaziz Ghuloum
e874d2d0a0
Added "include-into" macro.
...
(include-into ctxt "filename") included the contents of the file
as if they were present in the context ctxt (which must be an
identifier).
(include-into here "filename") would do the same thing as
(include "filename")
2007-12-05 03:26:56 -05:00
Abdulaziz Ghuloum
4318a7cea7
* fixed name of time-second (was time-seconds before).
2007-12-05 03:11:47 -05:00
Abdulaziz Ghuloum
553c986253
Added current-time, time?, and time-seconds.
2007-12-05 02:35:14 -05:00
Abdulaziz Ghuloum
d878bd3934
utf16->string, utf32->string, string->utf16, string->utf32 are all
...
working now.
2007-12-03 04:28:41 -05:00
Abdulaziz Ghuloum
bdb73c70a8
Added string->utf16 and string->utf32.
2007-12-03 01:35:29 -05:00
Abdulaziz Ghuloum
9d3647f4f5
renamed: scheme/ikarus.transcoders.ss => scheme/ikarus.unicode-conversion.ss
2007-12-02 23:35:23 -05:00
Abdulaziz Ghuloum
8073aa0e1e
Partially fixes bug 173173: call-with-bytevector-output-port: primitive not supported yet
2007-12-02 23:13:19 -05:00
Abdulaziz Ghuloum
58fd9cbed8
Added open-bytevector-output-port
2007-12-02 22:59:08 -05:00
Abdulaziz Ghuloum
51c8d1c0ed
Fixes bug 172734: lookahead-u8: primitive not supported yet
2007-11-30 06:19:59 -05:00