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 -~----------~----~----~----~------~----~------~--~---
