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