[mercury-users] Building Mercury on Windows

Sergey Khorev sergey.khorev at gmail.com
Fri Feb 11 04:42:44 AEDT 2005


Thanks for you response.

>  We're approaching the next release so we'll certainly

BTW WHATSNEW inspired me to build ROTD rather than play with old 0.11 :)

> > 2) gcc-3.3.x issues internal error during compilation , so I used gcc 3.4.1-1.
> >
> If it's not too much trouble could you let us know what the internal error
> was.

float.c: In function `float_module21':
float.c:1016: internal compiler error: in verify_wide_reg, at flow.c:549

$ gcc -v
Reading specs from /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/specs
Configured with: /gcc/gcc-3.3.3-3/configure --verbose --prefix=/usr --exec-prefi
x=/usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/s
hare/man --infodir=/usr/share/info --enable-languages=c,ada,c++,d,f77,java,objc,
pascal --enable-nls --without-included-gettext --enable-libgcj --with-system-zli
b --enable-interpreter --enable-threads=posix --enable-java-gc=boehm --enable-sj
lj-exceptions --disable-version-specific-runtime-libs --disable-win32-registry
Thread model: posix
gcc version 3.3.3 (cygwin special)

> The java grade is fairly broken at the moment.  The best thing to do is
> just disable it.  e.g. pass the option --disable-java grade to configure.

Anyway I don't have plans to use neither .net not java grades =)
 
Also I've found strange piece of code in  runtime/mercury_prof_time.c.
I tried to post it (in -developers and then to -users) but maillist
silently ignored it.
void
MR_init_time_profile_method(void)
{
       switch (MR_time_profile_method) {
#if defined(ITIMER_REAL) && defined(SIGALRM)
               case MR_profile_real_time:
                       MR_itimer_type = ITIMER_REAL;
                       MR_itimer_sig  = SIGALRM;
                       MR_time_method = "real-time";
                       break;
#endif
#if defined(ITIMER_VIRTUAL) && defined(SIGVTALRM)
               case MR_profile_user_time:
                       MR_itimer_type = ITIMER_VIRTUAL;
                       MR_itimer_sig  = SIGVTALRM;
                       MR_time_method = "user-time";
                       break;
#endif
#if defined(ITIMER_VIRTUAL) && defined(SIGVTALRM)
               case MR_profile_user_plus_system_time:
                       MR_itimer_type = ITIMER_PROF;
                       MR_itimer_sig  = SIGPROF;
                       MR_time_method = "user-plus-system-time";
                       break;
#endif
               default:
                       MR_fatal_error("invalid time profile method");
       }
}

Third #if checks for ITIMER_VIRTUAL and SIGVTALRM, but uses
ITIMER_PROF and SIGPROF. Looks weird.
--------------------------------------------------------------------------
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the users mailing list