Re: scsh on modern s48
Roderic Morris <[email protected]> Fri, 23 Apr 2010 06:53:33 -0700
| Newsgroups | gmane.lisp.scheme.scsh |
|---|---|
| Message-ID | <[email protected]> |
> How do I run the tests?
To run all the tests,
$ ./go
,config ,load test/test-packages.scm
,open test-all
(test-all)
> $ ./go
> Welcome to scsh 0.7
> Type ,? for help.
>> (define a (open-input-file "/tmp/log"))
> ; no values returned
>> (tell a)
>
> error: Bad argument
> =A0 =A0 =A0 #{input-port #{input-channel "/tmp/log" 3}}
> =A0 =A0 =A0 #{procedure 14206 (open-fdport? in scsh-level-0)}
> =A0 =A0 =A0 #{procedure 14217 (port->fdes in scsh-level-0)}
> 1> ,exit
Unfortunately, I'm using scheme48 fdports in some places, and scsh
fdports in others. This was one of those hacks to get things off the
floor. The internal port / channel interfaces have changed quite a bit
in s48, so it'll take some thought to figure out how to get the same
functionality as 0.6.
For now, at the very least, the ops that are in the tests work.
> $ ./go
> Welcome to scsh 0.7
> Type ,? for help.
>> (run (ls))
>
> serious: #f
> =A0 =A0 =A0 =A0 #{&deadlock}
> 1> Makefile =A0build =A0go =A0 =A0 =A0 =A0 rx =A0 =A0 =A0scsh =A0 =A0 =A0=
=A0test
> README =A0 =A0c =A0 =A0 =A0problems.txt =A0scheme =A0scsh.image
>
> 1> ,debug
> #{continuation (pc 83) (maybe-commit-and-block in threads)}
>
> =A0[0] #{template 3342 (maybe-commit-and-block in threads)}
> =A0[1] #{cell #{thread 3 command-loop}}
> 1: q
> #{continuation (pc 83) (maybe-commit-and-block in threads)}
> 1> ,exit
This is a timing issue in my code I haven't had time to figure out.
Oddly enough,
> (define p (& (ls))
> (wait p)
works, but (run (ls)) (which is just (wait (& (ls)))) on the same
thread as the command processor does not. Hopefully, I'll have time to
look into it soon, or someone will provide fix. And hopefully that'll
be soon since this is so fundamental.
Thanks for the feedback.
-Roderic