larcenists / larceny

Larceny Scheme implementation
Other
203 stars 33 forks source link

Check Snow support on Windows #435

Open larceny-trac-import opened 11 years ago

larceny-trac-import commented 11 years ago

Reported by: pnkfelix on Thu May 31 11:44:35 2007 A lot of the Larceny-specific code provided with Snow is relying on unix-isms.

For example, here is snow-create-directory}:

  (define (snow-create-directory dir)
    (if (not (= 0 (system (string-append "mkdir \"" dir "\" 2> /dev/null"))))
        (snow-raise "could not create directory")))

This probably will not be good on Windows.

larceny-trac-import commented 11 years ago

Author: pnkfelix FYI here is how I check Snow on unix systems:

% pwd
/Users/pnkfelix/Dev/larcenydev/trunk/snow
% site_root=$HOME/snow-site ./configure
...
% make install
...
% $HOME/snow-site/current/bin/snowman list
...
larceny-trac-import commented 11 years ago

Author: pnkfelix See also the "Script Syntax" section of the [http://snow.iro.umontreal.ca/?tab=Documentation Snow Documentation]

larceny-trac-import commented 11 years ago

Author: pnkfelix In particular, the Script Syntax section lists the following example script, go.scm:

":";exec snow -- "$0" "$@"

(package* go/v1.0.0
  (require: hostos/v1)
  (require: fixnum/v1))

(define (double x)
  (snow-fxarithmetic-shift-left x 1))

(test* (expect* (= 8 (double 4))))

(write (double (string->number (cadr (snow-command-line)))))
(newline)

which is invoked as follows (along with the expected output):

% /tmp/go.scm 3
6

(This all assumes that you followed the instructions given by the Snow's make install step and put the path to the various snow binaries into your path.)

larceny-trac-import commented 11 years ago

Author: pnkfelix (In case it isn't obvious, /Users/pnkfelix/Dev/larcenydev/trunk/snow is a checkout of the [source:trunk/snow] module in our Subversion repository, because we need local changes that will be sent back to the Snow maintainers after Larceny v0.94 is released.)

larceny-trac-import commented 11 years ago

Author: tov Sockets are working now (as of #4674).

Major barrier to Snow/Win32 at this point: Snow depends on UNIX from the beginning, since you start installing it by running ./configure, which is a shell script.

If we accept that Snow will only be supported under Cygwin, then we can move on. Otherwise, we're going to need to write MS Batch versions of a bunch of shell scripts.

Under Cygwin, Snow detects Larceny if there's an executable larceny (not larceny.bat) in the path. It then gets stuck on something having to do with spaces in paths. Does Snow not support file/directory names with spaces in them?

larceny-trac-import commented 11 years ago

Author: pnkfelix punt