Eric Hanchrow <email@example.com> writes:
> Porting a traditional shell like `bash' to Win32 is quite difficult,
> because the semantics of processes are quite different on Win32 than
> on Unix (there is nothing quite like `fork', for example). Do you
> know if scsh would be similarly difficult to port?
Some parts of scsh are definitely UNIX-dependent, like all the stuff
associated with `fork', as you mention it, or user-database
manipulation functions, file descriptors and so on (maybe some of
these exist on NT, I don't know since I never used it). However, a
lot of its functions are (almost) completely portable, like all
string-manipulation functions and maybe even the socket interface if
NT has a UNIX-compatible socket interface; the underlying Scheme
interpreter, Scheme 48, is also easily portable (on 32 bits machines
at least) as should the C interface generator (cig). There are also a
lot of functions which should be easy to port since the concepts they
implement also exist in NT even if the function names and arguments
may be different (e.g. file system functions).
The conclusion of all this is that you can certainly port *some* parts
of scsh to NT with little effort, and some other parts with a small
effort. For all the truely UNIX-dependent stuff, I don't know whether
the best idea would be to try to emulate it using NT or to define a
new interface specific to NT. The first solution would be the more
time-consuming but it would also mean a complete portability of scsh
programs (but is this really a good idea considering the fact that
programs making heavy use of UNIX-only functions would certainly be
*very* UNIX-specific and thus not very useful on other systems). The
second solution would be the easiest and would also mean that this new
version of scsh would make NT users feel at home.
To sum up things, you don't have to port *all* of scsh to get a decent
and usable system. If you want something that can only perform
powerful manipulations on ASCII files, the port should be "easy". If
you want full access to your OS, it will definitely be hard.
(Final note: I never took a thourough look at scsh's source, and I may
thus have overlooked something important. Please judge by yourself
before starting anything).
I hope (but doubt) that this will help you.