On Thursday, 1 December 2011 05:40:35 UTC+8, Juanjo wrote:
>
> On Wed, Nov 30, 2011 at 9:32 PM, kcrisman <kcri...@gmail.com> wrote:
>
>> That is weird that you have to do this.  Juanjo suggested that he had
>> made a bunch of changes to totally change how forking works in ECL
>> this summer, but maybe they weren't merged?  I'm cc:ing him on this.
>
>
> I did not change the way fork is used: fork is broken in cyginw, period. 
> However, I managed to avoid using fork() altogether, at least when 
> compiling programs. This does not solve the problem; it just hides it.


I don't see how you managed to completely avoid it (I hope we talk about 
the same ECL version, do we?! We use 
http://sage.math.washington.edu/home/kcrisman/ecl-11.1.1.p3.spkg).  
Without the hack I found, one still often gets things like this one:

-----------------------------------------
...
;;; Compiling 
/usr/local/sage/sage-4.7.2/spkg/build/maxima-5.23.2.p0/src/src/command-line.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=2
;;;
;;; Compiling (DEFSTRUCT CL-OPTION ...).
[...]
;;; End of Pass 1.
;;; Note:
;;;   Refusing to propagate #<form C2PRINC 129fdf8>
;;; Note:
;;;   Refusing to propagate #<form C2PRINC 129fcd8>
;;; Emitting code for MAKE-CL-OPTION.
[...]
;;; Emitting code for REMOVE-IMPLEMENTATION-ARGS.
      3 [main] ecl 2880 
C:\cygwin\usr\local\sage\sage-4.7.2\local\bin\ecl.exe: *** fatal error - 
unable to remap \\?\C:\cygwin\tmp\eclcWIpUD.dll to same address as parent: 
0x530000 != 0x810000
Stack trace:
Frame     Function  Args
0022A118  6102796B  (0022A118, 00000000, 00000000, 00000000)
0022A408  6102796B  (6117EC60, 00008000, 00000000, 61180977)
0022B438  61004F1B  (611A7FAC, 6124E2FC, 00530000, 00810000)
End of stack trace
      3 [main] ecl 2964 fork: child 2880 - died waiting for dll loading, 
errno 11
;;; Note:
;;;   Invoking external command:
;;;   gcc -I. -I/usr/local/sage/sage-4.7.2/local/include/ 
-I/usr/local/sage/sage-4.7.2/local/include -g -O2 -Dcygwin -O2 -w -c 
binary-ecl/command-line.c -o binary-ecl/command-line.o
Could not spawn subprocess to run "gcc".

Available restarts:
...
------------------------------------------------

The reason my hack helps fork() to work is due to these temporary DLLs (I 
still don't know where they come from, by the way) being placed in memory 
in a more favourable way, which does not give Windows a reason to move them 
around (and moving them around is exactly the reason for that "*** fatal 
error - unable to remap \\?\C:\cygwin\tmp\eclcWIpUD.dll" things)

Dima


> Juanjo
>
> -- 
> Instituto de FĂ­sica Fundamental, CSIC
> c/ Serrano, 113b, Madrid 28006 (Spain) 
> http://juanjose.garciaripoll.googlepages.com
>  

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to