2013/1/16 Ray Donnelly <[email protected]>

> unixy utils built with Boost? Very cool. It'd be nice if an explicit
> goal was cross compilation on many different OSes.
>
> ...but why not pitch in with MSYS2 instead? Your time, your choice, of
> course; both are very worthy projects I think.
>

MSYS2 has a different implementation goal: (the project, not the final
result) wants to create a POSIX programming environment that can accomodate
running pure Unix code compiled on top of a Cygwin-like POSIX compatibility
layer.

My goal is to reimplement them natively (on top of Boost, which uses the
Win32 API and basic C++ under the hood). My project will never allow to run
an unmodified Unix tool, whereas MSYS/Cygwin executables are compiled
specifically against the POSIX compatibility layer. I guess I want to show
people a shell on Windows doesn't have to be inherently slow. If this will
prove to be true? Only time will tell, but we won't know it until someone
tries :P

The *ultimate* goal would be to be able to compile stuff like GCC with
configure scripts running inside my environment. I'll be happy if within
one year, I get the autotools build of simple things like libogg working
;-). That reminds me that unless mingw32-make would suit my purposes, I'll
be forced to get me some form of "make"... ugh.

Ruben


>
> On Wed, Jan 16, 2013 at 8:37 AM, Ruben Van Boxem
> <[email protected]> wrote:
> > 2013/1/14 JonY <[email protected]>
> >>
> >> On 1/14/2013 22:49, Ruben Van Boxem wrote:
> >> > That is of course a difficult one. Either internal bookkeeping or a
> >> > simple
> >> > (?) translation function *where need be* (the hardest part being the
> >> > latter
> >> > of course). MSYS achieves this somehow, so I'd start there.
> >> >
> >> >
> >>
> >> MSYS is pretty bad at path translation, it was what drove me to Cygwin
> >> in the first place. Perhaps some setting on how aggressive it scans and
> >> assumes a string as a path is a good idea.
> >>
> >> gcc -c abc.c -Dfoo="/bar1/bar2" <- is this a path to translate or just
> >> some string?
> >>
> >> Unfortunately, it is impossible to tell without peering into the actual
> >> code for context.
> >
> >
> > I assume Cygwin keeps track of an internal filesystem? I know that's how
> it
> > does symlinks; they are useless files outside the Cygwin environment.
> >>
> >>
> >> >>
> >> >>> If you could give me a real-world (albeit simple) example of some sh
> >> >>> trickery that is impossible to implement (without e.g. the fully
> >> >>> spec'ed
> >> >>> functionality of fork()), I would love to know so I can dump this
> >> >>> crazy
> >> >>> idea in the trash can before I spend any lost time in it.
> >> >>
> >> >> Sh itself doesn't actually need full spec fork, since it has no
> concept
> >> >> of memory addresses. The hard part is the other Unix apps that
> already
> >> >> use fork calls in C.
> >> >>
> >> >
> >> > That's good news, the C programs will need porting as I've said before
> >> > in
> >> > sofar the ports don't already exist.
> >> >
> >> >
> >>
> >> Hopefully, you don't repeat the unmaintainable mess that is GnuWin32.
> >
> >
> > I've thought a lot about picking that up, right now I think implementing
> > them on top of Boost is the only feasible and realistic option. It
> carries
> > most (if not all) of the low level algorithms and code, time-tested and
> > efficient.
> >
> >>
> >> >>
> >> >> Another hard part is the fork/exec pairs. As you run exec, the
> process
> >> >> is expected to still have the same pid. It is possible to have a
> >> >> process
> >> >> to dump it's pid before exec'ing something else. Not sure how to
> >> >> accomplish this in Windows without some external bookkeeping.
> >> >
> >> >
> >> > That sounds like something that falls under the scope of the sh
> >> > interpreter. I'm not sure how relevant this is when we have fully
> Win32
> >> > native Unix-like utilities though.
> >> >
> >>
> >> Well, there's that echo $$ > .pid && exec ... pair calls.
> >
> >
> > I'll see how I can handle those. Perhaps an internal pid bookkeeping
> might
> > be useful.
> >
> > In the meantime, I've written the basic skeleton layout of a new Unix
> Tools
> > For Windows:
> > https://github.com/rubenvb/UnixToolsForWindows
> > (the readme with useful info is at the bottom)
> >
> > People who want to help, please do :). Boost is the underlying framework
> to
> > be used. As I'm new to it (as a whole, some small parts I've used before)
> > myself, I'm going to start with "echo" and "date", which will give me a
> > little experience with program_options and date_time.
> >
> > Note I am reinventing the wheel, but in a hopefully useful way.
> >
> > Cheers,
> >
> > Ruben
> >
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> ------------------------------------------------------------------------------
> >> Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
> >> MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
> >> with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
> >> MVPs and experts. SALE $99.99 this month only -- learn more at:
> >> http://p.sf.net/sfu/learnmore_122412
> >> _______________________________________________
> >> Mingw-w64-public mailing list
> >> [email protected]
> >> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
> >>
> >
> >
> >
> ------------------------------------------------------------------------------
> > Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery
> > and much more. Keep your Java skills current with LearnJavaNow -
> > 200+ hours of step-by-step video tutorials by Java experts.
> > SALE $49.99 this month only -- learn more at:
> > http://p.sf.net/sfu/learnmore_122612
> > _______________________________________________
> > Mingw-w64-public mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
> >
>
>
> ------------------------------------------------------------------------------
> Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery
> and much more. Keep your Java skills current with LearnJavaNow -
> 200+ hours of step-by-step video tutorials by Java experts.
> SALE $49.99 this month only -- learn more at:
> http://p.sf.net/sfu/learnmore_122612
> _______________________________________________
> Mingw-w64-public mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
>
------------------------------------------------------------------------------
Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery
and much more. Keep your Java skills current with LearnJavaNow -
200+ hours of step-by-step video tutorials by Java experts.
SALE $49.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122612 
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to