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
