Hello Hugh,
 
Sorry me but I consider the best approach in cross-platform applications is one which implemented in Icon Program Library (io.icn for example).
Compiler is always not a cross-platform executable and uses approaches and rules of that platform. So why we need to require from it to understand existence of other platforms?
 
As for cygwin I tried to compile Unicon there not so long ago. As I understood - unicon has no proper make configuration for cygwin. One included in distribution is very old and probably is just heritage from icon. Actually, I recognized that pure Windows make of Unicon is much preffered due to its code optimization (Clinton and Jafar are blessed for that!).
 
Best regards,
Sergey
 
02.06.2014, 15:22, "Hugh Sasse" <[email protected]>:

Hello Sergey,

My concern is: special cases in the source. So far I know of cygwin
and Msys which have different paths for root, and there is UWIN,
Microsoft services for Unix, and possibly others to support.  Some
of these you can build to have / mounted elsewhere, anyway.
Convenience for the user is laudable, but if it is better handled by
compiling it, and this would result in each and every path not being
tested against various mount points, I think this has two
advantages.  Firstly, the user gets faster code. Secondly, the user
doesn't have to second guess what manipulations the program is
applying to the supplied paths.  They may not know of the Cygwin
project, but have created a directory called /cygdrive for some
other reason.

Most cross-platform languages that I have come across over the years
(Perl, Python, Tcl/Tk, Ruby, Lua are the ones I can think of just
now) sort the cross-platform aspects out at compile time.  Some of
these I have not built from source for a while, though.

Cygwin is a Windows application, but it does path manipulation, it
has some constraints about interoperability, in particular the
acronym BLODA, and in my experience, some things just work better
when compiled under Cygwin.

It would be useful to know where Unicon fails when one tries to
build it under cygwin.  I don't remember getting it fully working,
but I think I just made progress in improving the configure stage.

I expect those with more experience in these matters will demolish
some of this, but I hope that clarifies my reasoning.

Hugh


On Mon, 2 Jun 2014, Sergey Logichev wrote:

 Hi Hugh,
  
 I don't really understand what is worring you with this path problem. It's
 obvious for me that for different systems paths rules must be different.
 Using in cross-platform program just one rule from many is a wrong way.
 Program must be smart itself to define which rule it should use in
 particular case. For pure Windows c:\work\q.q, for cygwin cygdrive/c/q/q,
 for UNIX-like /somepath/q.q and so on. It must be defined in source code and
 have not implemented by compiler as program may run only under one platform.
 By the way, I couldn't compile current UNICON under cygwin. But under
 windows it's compiled well and may be run for windows and cygwin both
 (actually, cygwin is just an other windows application).
  
 Best regards,
 Sergey Logichev
  
 02.06.2014, 13:24, "Hugh Sasse" <[email protected]>:

       On Fri, 30 May 2014, Jafar Al-Gharaibeh wrote:

              Dick,

                From the look of it, the path  "/cygdrive/c/file"
             seems to be a cgywin

       This is correct.  However, the program also had a windows "C:"
       style
       path in it, and I believe it makes no sense to use both.  If the
       Unicon had been successfully compiled under Cygwin, which I have
       not
       attempted in ages, then the /cygdrive/c paths should work, but
       not
       the windows style ones.  And vice versa.

              thingy. I have very little experience with cgywin
             but I believe unless you
              use cgywin toolschains the application wont see
             /"cygdrive/c", it is an
              invalid path from Windows point of view.  Unicon is
             not a cgywin
              application so I'm not surprised that this is not
             working. A quick googling
              returned this answer:

              cygpath -w:   converts to windows path

              cygpath -u:    converts to unix path
              to use the correct path based on the application
             (cgywin-based or not).
               Somebody suggested that you can actually configure
             cygwin to drop the
              cygdrive prefix by editing the /etc/fstab in
             cygwin. Just add a line that
              says

              none / cygdrive binary 0 0

              This way all of you paths would say something like
             "/c/file", and would be
              consistent whether you are running a cgywin
             application or not.

              --Jafar

              P.S. Unicon could be made smart enough to map
             "/cgydrive/c" to "c:/" but
              that means every single path used in Unicon
             applications has to be checked
              first for the string "/cgydrive" and do the
             mapping. Not sure if that is
              the right thing to do, will leave that for the
             discussion.

       But then one would would have some kind of obligation to support
       paths for MSys, and the other Unix emulation layers.  I think it
       would be more fruitful to aim for successful builds of Unicon
       under
       the various Unix emulation layers.  I may not be seeing the
       whole
       picture, though.

       Hugh

              On Fri, May 30, 2014 at 4:29 AM, Richard H.
             McCullough <[email protected]>
              wrote:
                    I got your hint that I should create a
                   ticket on Unicon bug tracker,
                    but I couldn't find any link to create
                   new ticket.

                    So here's another bug for you.  Likely
                   fails on all Windows versions.

                    see attached cygdrive.icn

                    Dick McCullough
                    Context Knowledge Systems
                    What is your view?



  --------------------------------------------------------------------------
                   ----
                    Time is money. Stop wasting it! Get
                   your web API in 5 minutes.
                    www.restlet.com/download
                    http://p.sf.net/sfu/restlet
                    _______________________________________________
                    Unicon-group mailing list
                    [email protected]
                    https://lists.sourceforge.net/lists/listinfo/unicon-group

 ---------------------------------------------------------------------------
       ---
       Learn Graph Databases - Download FREE O'Reilly Book
       "Graph Databases" is the definitive new guide to graph databases
       and their
       applications. Written by three acclaimed leaders in the field,
       this first edition is now available. Download your free book
       today!
       http://p.sf.net/sfu/NeoTech
       _______________________________________________
       Unicon-group mailing list
       [email protected]
       https://lists.sourceforge.net/lists/listinfo/unicon-group
 
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their 
applications. Written by three acclaimed leaders in the field, 
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/NeoTech
_______________________________________________
Unicon-group mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/unicon-group

Reply via email to