[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Cygwin and guile 2.1.x
From: |
Mike Gran |
Subject: |
Cygwin and guile 2.1.x |
Date: |
Sun, 12 Mar 2017 02:17:01 +0000 (UTC) |
Hi all-
I wanted to be say that for 2.2, the Cygwin port
would be 100%, but, the remaining problems are beyond
my patience.
It does build, but only with -O2. -O0 and -O1 will cause
a stack overflow when compiling eval.go.
On the plus side, things look better than they have in
a long time; almost all the tests pass.
First, Cygwin doesn't really fork because Windows itself
doesn't have a "fork" primitive. Cygwin provides
a fork analog but it cannot truly behave like a Unix fork.
Windows just doesn't work that way. For details see
the following.
https://cygwin.com/cygwin-ug-net/highlights.html#ov-hi-process
Notably, the socket.test uses primitive-fork in a way that
doesn't jive with Cygwin's understanding of fork.
Second, it is interesting to note that the x86_64 generated .go
files are not byte identical to those generated x86_64 Fedora
GNU/Linux.
Third, at this moment, there seems to be an internal
Cygwin error with regards to reading from pipes used
in the finalization handler when the GC's
finalizer is unregistering a thread. The horrifying
backtrace is posted below.
Oddly, this only happens in the i18n.test.
So, there ya go.
Thanks,
Mike Gran
#0 0x00007ff97537e1e1 in KERNELBASE!GetOverlappedResult () from
/cygdrive/c/WINDOWS/System32/KERNELBASE.dll
#1 0x00000001800673dd in fhandler_base_overlapped::wait_overlapped
(address@hidden, inres=<optimized out>,
address@hidden, address@hidden, nonblocking=false, len=0)
at /usr/src/debug/cygwin-2.7.0-1/winsup/cygwin/fhandler.cc:1976
#2 0x0000000180067732 in fhandler_base_overlapped::raw_read (this=0x180311558,
ptr=0xffdfc6f0, address@hidden: 1)
at /usr/src/debug/cygwin-2.7.0-1/winsup/cygwin/fhandler.cc:2041
#3 0x00000001800644a2 in fhandler_base::read (this=0x180311558,
in_ptr=0xffdfc6f0, address@hidden: 1)
at /usr/src/debug/cygwin-2.7.0-1/winsup/cygwin/fhandler.cc:766
#4 0x000000018012eae2 in read (fd=5, ptr=0xffdfc6f0, len=1) at
/usr/src/debug/cygwin-2.7.0-1/winsup/cygwin/syscalls.cc:1139
#5 0x0000000180118afb in _sigfe () at sigfe.s:35
#6 0x000000042364f14c in read_finalization_pipe_data (data=0xffdfc6f0) at
finalizers.c:199
#7 0x00000003e1110ee9 in cyggc-1!GC_unregister_my_thread () from
/usr/bin/cyggc-1.dll
#8 0x00000003e1112165 in cyggc-1!GC_pthread_detach () from
/usr/bin/cyggc-1.dll
#9 0x00000003e110c95f in cyggc-1!GC_do_blocking () from /usr/bin/cyggc-1.dll
#10 0x00000004236b2e12 in scm_without_guile (func=0x42364f130
<read_finalization_pipe_data>, data=0xffdfc6f0) at threads.c:721
#11 0x000000042364f269 in finalization_thread_proc (unused=<optimized out>) at
finalizers.c:212
#12 0x000000042363feae in c_body (d=0xffdfcc50) at continuations.c:422
#13 0x00000004236c1143 in vm_regular_engine (thread=0x600091c40,
vp=0x60012fea0, registers=0xffdfc35c, resume=0) at vm-engine.c:778
#14 0x00000004236c4e01 in scm_call_n (address@hidden, address@hidden,
address@hidden) at vm.c:1236
#15 0x000000042364583a in scm_call_0 (address@hidden) at eval.c:482
#16 0x00000004236b3822 in catch (address@hidden, thunk=0x6000d7360,
handler=0x6000d7300, pre_unwind_handler=0x6000d72e0)
at throw.c:137
#17 0x00000004236b3b09 in scm_catch_with_pre_unwind_handler
(pre_unwind_handler=<optimized out>, handler=<optimized out>,
thunk=<optimized out>, key=0x404) at throw.c:254
#18 scm_c_catch (address@hidden, address@hidden <c_body>, address@hidden,
address@hidden <c_handler>, address@hidden,
address@hidden <pre_unwind_handler>,
address@hidden) at throw.c:377
#19 0x0000000423640453 in scm_i_with_continuation_barrier (address@hidden
<c_body>,
address@hidden, address@hidden <c_handler>, address@hidden,
address@hidden <pre_unwind_handler>, pre_unwind_handler_data=0x60012b280)
at continuations.c:360
#20 0x00000004236404ff in scm_c_with_continuation_barrier (func=<optimized
out>, data=<optimized out>) at continuations.c:456
#21 0x00000004236b24bf in with_guile (base=0xffdfccf0, data=0xffdfcd40) at
threads.c:660
#22 0x00000003e110c928 in cyggc-1!GC_call_with_stack_base () from
/usr/bin/cyggc-1.dll
#23 0x00000004236b2dbb in scm_i_with_guile (dynamic_state=<optimized out>,
data=<optimized out>, func=<optimized out>)
at threads.c:703
#24 scm_with_guile (func=<optimized out>, data=<optimized out>) at
threads.c:709
#25 0x0000000180140ad9 in pthread::thread_init_wrapper (arg=0x60003e6b0)
at /usr/src/debug/cygwin-2.7.0-1/winsup/cygwin/thread.cc:2010
#26 0x00000001800bec51 in pthread_wrapper (arg=<optimized out>) at
/usr/src/debug/cygwin-2.7.0-1/winsup/cygwin/miscfuncs.cc:458
#27 0x0000000000000000 in ?? ()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Cygwin and guile 2.1.x,
Mike Gran <=