Fwd: Re: scheme-fb license change
2012-01-11 08:03:50 GMT
On 01/10/2012 06:29 AM, erana Owl wrote: > Hi all, > > My contributed code is now GPL. In case you aren't aware of it, the community went through a big effort to get scheme48 and most of the other copyrighted code unified under an open source license many years ago (modified BSD). I don't know how much is preserved in public archives, but I'm pointing you to the history so you can be aware of it when you make your decisions. -- -- Anthony Carrico
tmail - scheme mail demon
2012-01-08 23:12:04 GMT
Hi all,
I'm working on a scsh/s48 mailer demon. The code now has a response system and a socket listener etc.
See http://soft.vub.ac.be/~jceuppen/scheme/tmail-0.2.tar.gz
Cya,
Johan
For MIT, 27-trees
2012-01-06 14:15:21 GMT
Goodday schemers,
I've made an extension to octrees, called a 27-tree.
Paper is here :
http://soft.vub.ac.be/~jceuppen/papers/paper27tree.ps
Python code with ultima 8 game is here:
http://soft.vub.ac.be/~jceuppen/python/koboldsquest-2.1.tar.gz
Finally a scheme implementation which can be used with my former framebuffer code, to make a 3D engine, is here:
http://soft.vub.ac.be/~jceuppen/scheme/
(version 0.3 has been tested in guile and s48, fb extension is also in that directory)
Enjoy,
Johan
Reading primitive procedures
2011-12-17 23:52:41 GMT
Hello,
I don't understand the following Scheme behaviour:
> (read)
+
'+
> (read)
1 +
1
#{Procedure 93 +}
Why in the second interaction is the input '+' read as a procedure, but in the first as a symbol?
I am very new to Scheme, so my apologies if this is a silly question. I'm trying to write an RPN interpreter in Scheme, and I thought I'd apply the procedure read from the input to a stack of operands, however, because of the first case, this method isn't robust. I don't understand how to 'unsymbolise' a symbol into its corresponding procedure. Maybe there is a better way to do this?
Thanks for reading.
Macro expander bug
2011-12-01 02:30:18 GMT
Hi, I tried to load the package defs from SSAX and it killed the macro expander. It appears that when BIND-ALIASES was switched to the new cenv representation it stopped including macro eval in the cenvs it generated, and SSAX touches it somehow, causing a (force #f). I put up a one-line patch to BIND-ALIASES so that it includes macro eval, as it did before, at https://bitbucket.org/wnoble/s48. However, I don't know exactly how SSAX triggers the access and didn't try too hard to come up with a simple macro to reproduce the faulty expansion. So, if someone would explain whether this is the correct fix, and why or why not, I would be grateful! And Mike: thanks for integrating my POSIX patch! Best, Will
bugs
2011-10-29 08:25:41 GMT
My system is opensuse 11.4,I download the source code (v1.8) and compile it .During 'make',a small error
occured.I didn't record it .but i will try to explain it to you.
file: ./c/unix/socket.c
line: 354
func:gethostbyname_thread
host->h_addr--->I was told that struct host has no member 'h_addr'
host---------->struct hostent
The same error happend in func s48_get_host_by_name (line 385)
and i checked my defination of struct hostent(netdb.h)
struct hostent
{
char *h_name; /* Official name of host. */
char **h_aliases; /* Alias list. */
int h_addrtype; /* Host address type. */
int h_length; /* Length of address. */
char **h_addr_list; /* List of addresses from name server. */
#if defined __USE_MISC || defined __USE_GNU
# define h_addr h_addr_list[0] /* Address, for backward compatibility.*/
#endif
};
It seems some thing wrong with the marco defination.so i changed the h_addr to
h_addr_list[0] ,and it wored.I don't know whether other distributions has this problem.
hope it maybe helps to you
Re: Minor POSIX overhaul
2011-10-26 17:22:15 GMT
(Full reply quoted below for posterity after a forgotten cc.) Date: Tue, 25 Oct 2011 20:28:17 -0700 From: Will Noble <will <at> cow9.org> I haven't changed the way this is accomplished: when POSIX gets initialized the C code has knowledge of the value of SIGSTOP from the system headers and has knowledge of the position of (signal stop) in the vector holding all the named signals, and it conveys this to the Scheme code. I converted the _rest_ to Scheme. OK, that sounds reasonable, as long as you are always careful to make sure that the OS-dependent numbers are ephemeral and don't make their way into heap images. It should really be unnecessary to write most of this code by hand, but avoiding that nicely is hard and takes a lot more effort than I have time for these days. With apologies to posterity, I put some sketches up at <http://mumble.net/~campbell/tmp/stubber-20100507.tgz>, in a wretched, unpresentable state only because I don't expect to get back to this in the foreseeable future. Date: Tue, 25 Oct 2011 20:28:17 -0700 From: Will Noble <will <at> cow9.org> On Wed, Oct 26, 2011 at 12:53:06AM +0000, Taylor R Campbell wrote: > (Did you intend to reply privately, without ccing the list?) > > Date: Tue, 25 Oct 2011 17:33:39 -0700 > From: Will Noble <will <at> cow9.org> > > Thanks for the quick respone! Is the issue you mention a problem > even when, as before, symbolic errnos/signals resume correctly > (by name) while numeric ones and PIDs are marked unresumable? > > You're doing something wrong if you store a pid in a heap image and > hope it means anything useful when you resume the heap image. But > there's nothing wrong with storing an object representing EXDEV or > SIGSTOP in a heap image and using it meaningfully when the heap image > is resumed, independent of what (POSIX) operating system you resume it > on. > > Granted, errno and signal numbers tend to be constant across all > Unices, but there are plenty of similar things that aren't. (E.g., > getaddrinfo's EAI_* values.) Hi, Nope. I forgot to cc and I bounced it to the list after I sent it :) I did exactly what you say: PIDs refuse to be written to heap images; a signal obtained by calling (signal stop) or an errno obtained from (errno xdev) retains its value. On the other hand, the signal (integer->signal 300), like the PID, complains when written out. I haven't changed the way this is accomplished: when POSIX gets initialized the C code has knowledge of the value of SIGSTOP from the system headers and has knowledge of the position of (signal stop) in the vector holding all the named signals, and it conveys this to the Scheme code. I converted the _rest_ to Scheme. Best, Will
Minor POSIX overhaul
2011-10-25 19:58:08 GMT
Hi all, I modified the POSIX module so that Scheme code instead of C code manages PID/errno/signal objects. So, where before posix_kill took a PID record and a signal record, now it takes ints. I think the comments hinted towards something along these lines. This removes a good chunk of awkward (in my view) Scheme-written-in-C code. I put up a repo at bitbucket.org/wnoble/scheme48. I've only tested the code lightly, and thought lightly about the general approach, so I definitely would appreciate any suggestions! Best, Will
RSS Feed