[Ecls-list] updated VBECL - trying to use directory

Dustin Long dlong at stevens.edu
Tue Feb 21 16:14:02 UTC 2006


Hey all,
I've made a significant update on my VBECL project. Whatever magic was 
recently added to *_safe_eval sure did the trick; my latest build of 
ecl.dll from cvs stopped crashing under VB and is now very stable. Also 
implemented are gray streams (adapted from Michael's recent matlab 
example) to display lisp console output in a MessageBox. I'm still 
having trouble capturing errors - they just silently disappear now with 
a nil return value, without any output going to standard-output, despite 
my attempt to hook error-output - but at least misspelt functions no 
longer cause crashes. Unforunately, it still dies on malformed sexprs - 
I'm willing to live with this - but out of curiosity, is there any way 
from c to safely read a string to test if it contains a valid object? 
Neither cl_read  nor c_string_to_object seem to do the trick.

The url in case anyone is missing it: http://www.cs.stevens.edu/~dlong/vbecl

On a new topic, I've been using a lot of ecl's pathname system and have 
run into a few problems with it, in the directory function to be 
specific. It seems that the correct way to enumerate a directory's 
content in ecl is with a slash at the end of the path string or with the 
entire path in the pathname-directory i.e.
(directory (pathname "c:/code/"))
(directory (make-pathname :device "c" :directory '(:absolute "code")))
which both work fine. However, I can't find a way to enumerate a root 
directory, such as "c:/". No matter what I do I get all directory 
pathnames that have no :absolute in their :directory and print out as 
#P"c:/". I've tested this on WinXP, Win2k, and Debian and got the same 
results everywhere. Perhaps related, in Windows I can't seem to use 
directory on any drive besides the one I start in - (directory 
"d:/blah/") won't work if I start on "c:/", as if directory is ignoring 
the :device. Are these known issues?

Dustin




More information about the ecl-devel mailing list