You probably want to look at the uname and date functions in arc.arc. If you can get these two to avoid using system (maybe by using the $ drop-to-Scheme operator) everything should work. Hopefully.
Edit: never mind, I just did this. All the date stuff is now platform-independent... does it work now?
open-output-file: cannot open output file: "C:\User\Programming\Arc\arc-wiki\arc
/logs/srv-2008-02-26" (The system cannot find the path specified.; errno=3)
=== context ===
srvlog
gs1086
handle-request-thread
If I instead manually create a directory arc/logs before attempting (asv), everything works fine.
It looks like (asv) calls (serve port), which calls (ensure-dir logdir* ), which would seem to be our culprit
arc> (ensure-dir logdir* )
The syntax of the command is incorrect.
nil
since ensure-dir calls directly out to mkdir and Windows breaks on the forward slashes in the command. Changing that part of the definition of ensure-dir from
(system (string "mkdir -p " path))
to using the convenient definitions in files.arc
(mkdir path)
should do the trick.
EDIT: Verified that the fix works with both (asv) and (nsv); pushed to Anarki. This should resolve web server problems on Windows.
I was working on this, too, and I got rid of your commit and added mine (sorry!). There are some complications with just using make-directory - specifically, it doesn't create parents directories. We need make-directory* to do this, and that sets the sticky bit on directories in Unix. So my solution was to use system on Unix and make-directory*.