hi fabian,
let me tell a few words about the story leading to this port. sometimes
i will post the (really) long version here, but for now only the highlights:
we were using mks-toolkit for a long time to run an application coming
from aix/hpux/solaris to windows. in 2009/2010 mks changed its
conditions in a way that we had to look for a replacement.
important points were:
o to have a solutions we can expect to be available for many
years.
o since this shell framework controls native win32 applications,
a "cheese cover" approach like e.g. cygwin does not fit our
needs.
o the shell must be as ksh compatible as possible.
no big deal i thought... but google did not find any ksh.exe beyond the
frameworks mentioned above. tests with cygwin showed up a lot of problems.
the gnuwin32 utilities may not be the most current versions but they
seemed to do their job. the only missing thing was a korn shell.
so the crazy idea came up to look for sources of a ksh and try to port
it to windows. after some search i found mksh (never heared about it
before - shame...). one goal was so stay independent and not to rely on
a compatibility library.
looking at the current state of this project i can say that i did not
start basing it on a compatibility library. but there was (no surprise)
a lot of compatibility stuff to take care about. it was obvious to keep
this stuff separate from the core code of mksh. so i came out with
something like my own, small compatibility library. but core stuff like
fork() or sigchld (in progress) is still implemented directly in the shell.
for me it would be no bad thing to have or use such a library. the
question is how much it isolates applications built against it from
windows itself and other native win32 applications. here i agree with
thorstens "picture", showing mingw very near to native.
about the utils: at the moment i use a mix of mostly gnuwin32, a few
unxutils and a few self-written ones. e.g. rm is self written because i
found no rm implementation that was able to detect and not to follow(!)
windows junctions and/or symlinks. ln (-s) too.
i spent some time to get information about how to create a mingw build
enviromnent. may be i looked at the wrong places but i found nothing
looking like success within a few days. so it seemed easyer to me to
rewrite a few tools with the minimum, classic unix option set.
thats the point where fabians post opened a new perspective (thanks): up
to now mingw-w64 was not on my radar. i will take a look on it. it
doesnt look like the tools coming with it will be the right ones for a
native win32 environment. but this should definitely help me to create a
mingw build environment.
but - is mingw still maintained? do have current mingw versions
knowledge about e.g. windows symlinks? i'll see...
anyway - i agree that a shell alone makes no sense. i am still tuning my
personal set of utils. it does not really matter how old they are, what
kind of icon they have or how many dlls they use. once organized in a
directory structure and zipped, this things are out of focus. the
important point is that they do their job and scripts in this
environment run as expected.
if i found a combination that satisfies my needs you will here from me.
--lan