This week was more productive.  I made a general cleanup of
the code, removing all but a select set of non-standard C
extensions, and further incorporated some Plan9-specific
cleanup from my mentor.

The memory bug was simpler than I thought (it usually is),
it occurred when closing input string ports where I was
mistakenly freeing the reference to the string data, which
is actually not malloced but in the GC heap - it should only
be freed for the output string port case.  The reason I
didn't catch this before was because glibc's malloc happily
catches the error for you, logs a warning to stderr that you
tried to free non-malloced memory, and keeps going.  Since
the warning got lost in the output of my test suite, I never
noticed.  I think not terminating right away in that case is
a pretty insane default.

So the full test suite passes, and from hereon I'll be
working on better Plan 9 integration.

The next task will likely be process management, so you can
have easy shell-like functionality from Scheme.  Following
on that I'd like to provide a 9p interface.

A real module system beyond the simple include files used
now will also be important.  Rather than some complex
framework, I can imagine leveraging the distributed
filesystem to provide a simpler alternative to CPAN, where
users just bind all the module providers they trust into the
Scheme module directory.

-- 
Alex

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Plan 
9 Google Summer of Code" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/plan9-gsoc?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to