Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

t\spec\S17-supply\throttle.t hangs on Windows 10 #4904

Closed
p6rt opened this issue Dec 22, 2015 · 4 comments
Closed

t\spec\S17-supply\throttle.t hangs on Windows 10 #4904

p6rt opened this issue Dec 22, 2015 · 4 comments
Labels

Comments

@p6rt
Copy link

p6rt commented Dec 22, 2015

Migrated from rt.perl.org#126992 (status was 'resolved')

Searchable as RT126992$

@p6rt
Copy link
Author

p6rt commented Dec 22, 2015

From @nanis

This is from a fresh clone. There is no perl6 on the %PATH%.

First, no options. Killed after moar.exe CPU use fell to 0, and Task
Manager showed moar.exe waiting on two threads.

D​:\Src\rakudo> perl t\harness t\spec\S17-supply\throttle.t
t\spec\S17-supply\throttle.t .. Dubious, test returned 1 (wstat 256, 0x100)
Failed 34/47 subtests

Test Summary Report


t\spec\S17-supply\throttle.t (Wstat​: 256 Tests​: 13 Failed​: 0)
  Non-zero exit status​: 1
  Parse errors​: Bad plan. You planned 47 tests but ran 13.
Files=1, Tests=13, 65 wallclock secs ( 0.11 usr + 0.00 sys = 0.11 CPU)
Result​: FAIL

This time with verbosity to print progress. Again, kill after moar.exe
cpu use falls to 0, and Task Manager showed moar.exe waiting on two
threads. Note that the number of tests run in this case is 11​:

D​:\Src\rakudo> perl t\harness t\spec\S17-supply\throttle.t --verbosity=3
t\spec\S17-supply\throttle.t ..
1..47
ok 1 - can not be called as a class method
# **** scheduling with ThreadPoolScheduler
ok 2 - did we see all of the element
ok 3 - difference between each at least .5 seconds
ok 4 - difference between each at most .8 seconds
ok 5 - did we see all of the element
ok 6 - difference between each at least something
ok 7 - difference between each at most .5 seconds
ok 8 - ok with 1 at a time
ok 9 - ok with 2 at a time
ok 10 - ok with 3 at a time
ok 11 - ok with 4 at a time
Dubious, test returned 1 (wstat 256, 0x100)
Failed 36/47 subtests

Test Summary Report


t\spec\S17-supply\throttle.t (Wstat​: 256 Tests​: 11 Failed​: 0)
  Non-zero exit status​: 1
  Parse errors​: Bad plan. You planned 47 tests but ran 11.
Files=1, Tests=11, 249 wallclock secs ( 0.09 usr + 0.00 sys = 0.09 CPU)
Result​: FAIL

Whether the actual number of tests run is 11 or 13, the triggering
code seems to be this block starting on line 51​:

for 1..10 -> $n {
  my @​a; @​a[9] = 0; # pre-size array to allow seamless multi-thread updates
  (1..10).Supply.throttle( $n, { @​a[$_] = 1 } ).wait;
  is @​a.sum, 10, "ok with $n at a time";
}

Let's try one more time​:

D​:\Src\rakudo> perl t\harness t\spec\S17-supply\throttle.t --verbosity=3
t\spec\S17-supply\throttle.t ..
1..47
ok 1 - can not be called as a class method
# **** scheduling with ThreadPoolScheduler
ok 2 - did we see all of the element
ok 3 - difference between each at least .5 seconds
ok 4 - difference between each at most .8 seconds
ok 5 - did we see all of the element
ok 6 - difference between each at least something
ok 7 - difference between each at most .5 seconds
ok 8 - ok with 1 at a time
ok 9 - ok with 2 at a time
ok 10 - ok with 3 at a time
ok 11 - ok with 4 at a time
ok 12 - ok with 5 at a time
ok 13 - ok with 6 at a time
ok 14 - ok with 7 at a time
ok 15 - ok with 8 at a time
ok 16 - ok with 9 at a time
ok 17 - ok with 10 at a time
ok 18 - parallelism as expected with 1
ok 19 - ok with 1 at a time with random delay
ok 20 - parallelism as expected with 2
ok 21 - ok with 2 at a time with random delay
ok 22 - parallelism as expected with 3
ok 23 - ok with 3 at a time with random delay
ok 24 - parallelism as expected with 4
ok 25 - ok with 4 at a time with random delay
ok 26 - parallelism as expected with 5
ok 27 - ok with 5 at a time with random delay
ok 28 - parallelism as expected with 6
ok 29 - ok with 6 at a time with random delay
ok 30 - parallelism as expected with 7
ok 31 - ok with 7 at a time with random delay
ok 32 - parallelism as expected with 8
ok 33 - ok with 8 at a time with random delay
ok 34 - parallelism as expected with 9
ok 35 - ok with 9 at a time with random delay
ok 36 - parallelism as expected with 10
ok 37 - ok with 10 at a time with random delay
ok 38 - Nothing should be seen yet
ok 39 - did we see all in the right order?
ok 40 - did we get the final status?
ok 41 - currently allowed to run
ok 42 - no bleeds done
ok 43 - none left in buffer
ok 44 - number of results emitted
ok 45 - correct status ID
ok 46 - maximally allowed to run
ok 47 - none are running still
ok
All tests successful.
Files=1, Tests=47, 33 wallclock secs ( 0.08 usr + 0.02 sys = 0.09 CPU)
Result​: PASS

One more time​:

D​:\Src\rakudo> perl t\harness t\spec\S17-supply\throttle.t
t\spec\S17-supply\throttle.t .. ok
All tests successful.
Files=1, Tests=47, 32 wallclock secs ( 0.06 usr + 0.01 sys = 0.08 CPU)
Result​: PASS

So, what we have here is a Heisenbug related to threads. Sorry I can't
be of more help right now.

Here's my environment and build info​:

C​:\> ver
Microsoft Windows [Version 10.0.10586]

C​:\> cl
Microsoft (R) C/C++ Optimizing Compiler Version 18.00.31101 for x64

C​:\> nmake /?
Microsoft (R) Program Maintenance Utility Version 12.00.21005.1

C​:\> D​:\Src\rakudo\perl6 -V

moar​::syslibs[6]=iphlpapi
moar​::dcbrule=@​​:
moar​::ar=lib
moar​::mastdir=C​:\opt\perl6\share\nqp\lib\MAST
moar​::tomrule=$(AR) $(ARFLAGS) /out​:$@​ 3rdparty\libtommath\*.obj
moar​::syslibs[2]=mswsock
moar​::shaobjects=3rdparty\sha1\sha1.obj
moar​::ccshared=
moar​::be=0
moar​::dynasmlua=.\3rdparty\dynasm\dynasm.lua
moar​::ld=link
moar​::mtlib=3rdparty\tinymt\tinymt.lib
moar​::mtobjects=3rdparty\tinymt\tinymt64.obj
moar​::noreturnspecifier=__declspec(noreturn)
moar​::perl=c​:\opt\perl\5.23.5\bin\perl.exe
moar​::shaclean=$(RM) 3rdparty\sha1\sha1.lib 3rdparty\sha1\*.obj
moar​::static_inline=static __inline
moar​::ccdebugflags=/Zi
moar​::auxclean=$(RM) moar.ilk moar.pdb moar.dll.lib moar.dll.exp vc100.pdb
moar​::thirdpartylibs=3rdparty\dyncall\dyncall\libdyncall_s.lib
3rdparty\dyncall\dyncallback\libdyncallback_s.lib
3rdparty\dyncall\dynload\libdynload_s.lib 3rdparty\tinymt\tinymt.lib
3rdparty\sha1\sha1.lib 3rdparty\libtommath\tommath.lib
3rdparty\libuv\uv.lib
moar​::config=--optimize --prefix=C​:\opt\perl6 --make-install
moar​::ccinc=/I
moar​::booltype=_Bool
moar​::ldout=/out​:
moar​::moarlib=moar.lib
moar​::mtrule=$(AR) $(ARFLAGS) /out​:$@​ 3rdparty\tinymt\*.obj
moar​::syslibs[0]=shell32
moar​::dcrule=cd 3rdparty\dyncall && configure.bat /target-x64 &&
$(MAKE) -f Nmakefile
moar​::dcbobjects=
moar​::cflags=/nologo /MT /Ox /GL /DNDEBUG /DWIN32 /DAO_ASSUME_WINDOWS98
moar​::laolib=__lao__
moar​::libdir=C​:\opt\perl6\bin
moar​::nul=NUL
moar​::osvers=10.0
moar​::translate_newline_output=1
moar​::dlrule=@​​:
moar​::cat=type
moar​::can_unaligned_int32=1
moar​::ldimp=%s.dll.lib
moar​::win32_compiler_toolchain=win32
moar​::ccdef=/D
moar​::lib=%s.lib
moar​::tomclean=$(RM) 3rdparty\libtommath\tommath.lib 3rdparty\libtommath\*.obj
moar​::dlllocal=
moar​::dcbclean=$(RM) 3rdparty\dyncall\dyncallback\libdyncallback_s.lib
moar​::noreturnattribute=
moar​::ptr_size=8
moar​::syslibs[5]=psapi
moar​::dllimport=__declspec(dllimport)
moar​::ccout=/Fo
moar​::can_unaligned_num64=1
moar​::has_pthread_yield=0
moar​::ldrpath=
moar​::ldusr=%s.lib
moar​::mainflags=/DMVM_SHARED
moar​::name=moar
moar​::dll=%s.dll
moar​::cincludes= /I3rdparty\libuv\include /I3rdparty\libuv\src
/I3rdparty\libatomic_ops\src /I3rdparty\libtommath /I3rdparty\dynasm
/I3rdparty\dyncall\dynload /I3rdparty\dyncall\dyncall
/I3rdparty\dyncall\dyncallback
moar​::uvrule=$(AR) $(ARFLAGS) /out​:$@​ 3rdparty\libuv\src\*.obj
3rdparty\libuv\src\win\*.obj
moar​::tomlib=3rdparty\libtommath\tommath.lib
moar​::syslibs[3]=rpcrt4
moar​::staticlib=
moar​::dlclean=$(RM) 3rdparty\dyncall\dynload\libdynload_s.lib
moar​::make=nmake
moar​::ccinstflags=
moar​::ldflags=/nologo /LTCG
moar​::crossconf=
moar​::obj=.obj
moar​::dlobjects=
moar​::defs[0]=WIN32
moar​::cppout=/Fi
moar​::ccoptiflags=/Ox /GL /DNDEBUG
moar​::asmswitch=/c /FAs
moar​::ldoptiflags=/LTCG
moar​::mkflags=/nologo
moar​::moar=moar.dll
moar​::version=2015.11-120-gb258173
moar​::dcclean=$(RM) 3rdparty\dyncall\ConfigVars
3rdparty\dyncall\dyncall\libdyncall_s.lib
3rdparty\dyncall\dyncallback\libdyncallback_s.lib
3rdparty\dyncall\dynload\libdynload_s.lib
3rdparty\dyncall\dyncall\*.obj 3rdparty\dyncall\dyncallback\*.obj
3rdparty\dyncall\dynload\*.obj
moar​::moarshared=/implib​:moar.dll.lib
moar​::sharule=$(AR) $(ARFLAGS) /out​:$@​ 3rdparty\sha1\*.obj
moar​::ccwarnflags=
moar​::jit=$(JIT_WIN32_X64)
moar​::moardll=moar.dll
moar​::asm=.asm
moar​::mknoisy=!IF $(NOISY) != 1MSG = @​echoCMD = @​NOOUT = > NULNOERR =
2> NUL!ENDIF
moar​::dclib=3rdparty\dyncall\dyncall\libdyncall_s.lib
moar​::ccdefflags=/DWIN32 /DAO_ASSUME_WINDOWS98
moar​::cc=cl
moar​::exe=.exe
moar​::lddir=/libpath​:
moar​::uvlib=3rdparty\libuv\uv.lib
moar​::dllib=3rdparty\dyncall\dynload\libdynload_s.lib
moar​::shaincludedir=3rdparty\sha1
moar​::versionmajor=2015
moar​::cppswitch=/P
moar​::can_unaligned_int64=1
moar​::lua=.\3rdparty\dynasm\minilua.exe
moar​::dcobjects=
moar​::cancgoto=0
moar​::ldlibs=shell32.lib ws2_32.lib mswsock.lib rpcrt4.lib
advapi32.lib psapi.lib iphlpapi.lib
moar​::mainlibs=/libpath​:. moar.dll.lib
moar​::nativecall_backend=dyncall
moar​::objflags=/DMVM_BUILD_SHARED
moar​::versionpatch=120
moar​::laoclean=@​​:
moar​::versionminor=11
moar​::ccmiscflags=/nologo /MT
moar​::install= $(MKPATH) $(DESTDIR)$(PREFIX)\include\libuv $(CP)
3rdparty\libuv\include\*.h $(DESTDIR)$(PREFIX)\include\libuv
$(MKPATH) $(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\armcc
  $(MKPATH) $(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\gcc
  $(MKPATH) $(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\hpc
  $(MKPATH) $(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\ibmc
  $(MKPATH) $(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\icc
  $(MKPATH) $(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\loadstore
  $(MKPATH) $(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\msftc
  $(MKPATH) $(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\sunc
  $(CP) 3rdparty\libatomic_ops\src\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops $(CP)
3rdparty\libatomic_ops\src\atomic_ops\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops $(CP)
3rdparty\libatomic_ops\src\atomic_ops\sysdeps\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps $(CP)
3rdparty\libatomic_ops\src\atomic_ops\sysdeps\armcc\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\armcc
$(CP) 3rdparty\libatomic_ops\src\atomic_ops\sysdeps\gcc\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\gcc
$(CP) 3rdparty\libatomic_ops\src\atomic_ops\sysdeps\hpc\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\hpc
$(CP) 3rdparty\libatomic_ops\src\atomic_ops\sysdeps\ibmc\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\ibmc
$(CP) 3rdparty\libatomic_ops\src\atomic_ops\sysdeps\icc\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\icc
$(CP) 3rdparty\libatomic_ops\src\atomic_ops\sysdeps\loadstore\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\loadstore
  $(CP) 3rdparty\libatomic_ops\src\atomic_ops\sysdeps\msftc\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\msftc
$(CP) 3rdparty\libatomic_ops\src\atomic_ops\sysdeps\sunc\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\sunc
$(CP) 3rdparty\libtommath\*.h $(DESTDIR)$(PREFIX)\include\libtommath
$(MKPATH) $(DESTDIR)$(PREFIX)\include\dyncall $(CP)
3rdparty\dyncall\dynload\*.h $(DESTDIR)$(PREFIX)\include\dyncall
$(CP) 3rdparty\dyncall\dyncall\*.h $(DESTDIR)$(PREFIX)\include\dyncall
  $(CP) 3rdparty\dyncall\dyncallback\*.h
$(DESTDIR)$(PREFIX)\include\dyncall
moar​::laoobjects=
moar​::mtclean=$(RM) 3rdparty\tinymt\tinymt.lib 3rdparty\tinymt\*.obj
moar​::rm=del
moar​::uvclean=$(RM) 3rdparty\libuv\uv.lib 3rdparty\libuv\src\*.obj
3rdparty\libuv\src\win\*.obj
moar​::sharedlib=moar.dll.lib
moar​::dllexport=__declspec(dllexport)
moar​::shalib=3rdparty\sha1\sha1.lib
moar​::arout=/out​:
moar​::lddebugflags=/debug /pdb​:$@​.pdb
moar​::osname=MSWin32
moar​::prefix=C​:\opt\perl6
moar​::uvobjects=3rdparty\libuv\src\fs-poll.obj
3rdparty\libuv\src\inet.obj 3rdparty\libuv\src\threadpool.obj
3rdparty\libuv\src\uv-common.obj 3rdparty\libuv\src\version.obj
3rdparty\libuv\src\win\async.obj 3rdparty\libuv\src\win\core.obj
3rdparty\libuv\src\win\dl.obj 3rdparty\libuv\src\win\error.obj
3rdparty\libuv\src\win\fs-event.obj 3rdparty\libuv\src\win\fs.obj
3rdparty\libuv\src\win\getaddrinfo.obj
3rdparty\libuv\src\win\getnameinfo.obj
3rdparty\libuv\src\win\handle.obj
3rdparty\libuv\src\win\loop-watcher.obj
3rdparty\libuv\src\win\pipe.obj 3rdparty\libuv\src\win\poll.obj
3rdparty\libuv\src\win\process-stdio.obj
3rdparty\libuv\src\win\process.obj 3rdparty\libuv\src\win\req.obj
3rdparty\libuv\src\win\signal.obj 3rdparty\libuv\src\win\stream.obj
3rdparty\libuv\src\win\tcp.obj 3rdparty\libuv\src\win\thread.obj
3rdparty\libuv\src\win\timer.obj 3rdparty\libuv\src\win\tty.obj
3rdparty\libuv\src\win\udp.obj 3rdparty\libuv\src\win\util.obj
3rdparty\libuv\src\win\winapi.obj 3rdparty\libuv\src\win\winsock.obj
moar​::dcblib=3rdparty\dyncall\dyncallback\libdyncallback_s.lib
moar​::bindir=C​:\opt\perl6\bin
moar​::asmout=/Fa
moar​::havebooltype=1
moar​::laorule=@​​:
moar​::os=win32
moar​::sh=cmd
moar​::arflags=/nologo
moar​::ldshared=/dll
moar​::defs[1]=AO_ASSUME_WINDOWS98
moar​::impinst=moar.dll.lib
moar​::ldinstflags=/Profile
moar​::ldmiscflags=/nologo
moar​::ldsys=%s.lib
moar​::platform=$(PLATFORM_WIN32)
moar​::ccswitch=/c
moar​::formatattribute=
moar​::tomobjects=3rdparty\libtommath\bn_error.obj
3rdparty\libtommath\bn_fast_mp_invmod.obj
3rdparty\libtommath\bn_fast_mp_montgomery_reduce.obj
3rdparty\libtommath\bn_fast_s_mp_mul_digs.obj
3rdparty\libtommath\bn_fast_s_mp_mul_high_digs.obj
3rdparty\libtommath\bn_fast_s_mp_sqr.obj
3rdparty\libtommath\bn_mp_2expt.obj 3rdparty\libtommath\bn_mp_abs.obj
3rdparty\libtommath\bn_mp_add.obj 3rdparty\libtommath\bn_mp_add_d.obj
3rdparty\libtommath\bn_mp_addmod.obj 3rdparty\libtommath\bn_mp_and.obj
3rdparty\libtommath\bn_mp_clamp.obj
3rdparty\libtommath\bn_mp_clear.obj
3rdparty\libtommath\bn_mp_clear_multi.obj
3rdparty\libtommath\bn_mp_cmp.obj 3rdparty\libtommath\bn_mp_cmp_d.obj
3rdparty\libtommath\bn_mp_cmp_mag.obj
3rdparty\libtommath\bn_mp_cnt_lsb.obj
3rdparty\libtommath\bn_mp_copy.obj
3rdparty\libtommath\bn_mp_count_bits.obj
3rdparty\libtommath\bn_mp_div.obj 3rdparty\libtommath\bn_mp_div_2.obj
3rdparty\libtommath\bn_mp_div_2d.obj
3rdparty\libtommath\bn_mp_div_3.obj
3rdparty\libtommath\bn_mp_div_d.obj
3rdparty\libtommath\bn_mp_dr_is_modulus.obj
3rdparty\libtommath\bn_mp_dr_reduce.obj
3rdparty\libtommath\bn_mp_dr_setup.obj
3rdparty\libtommath\bn_mp_exch.obj
3rdparty\libtommath\bn_mp_expt_d.obj
3rdparty\libtommath\bn_mp_exptmod.obj
3rdparty\libtommath\bn_mp_exptmod_fast.obj
3rdparty\libtommath\bn_mp_exteuclid.obj
3rdparty\libtommath\bn_mp_fread.obj
3rdparty\libtommath\bn_mp_fwrite.obj 3rdparty\libtommath\bn_mp_gcd.obj
3rdparty\libtommath\bn_mp_get_int.obj
3rdparty\libtommath\bn_mp_get_long.obj
3rdparty\libtommath\bn_mp_grow.obj 3rdparty\libtommath\bn_mp_init.obj
3rdparty\libtommath\bn_mp_init_copy.obj
3rdparty\libtommath\bn_mp_init_multi.obj
3rdparty\libtommath\bn_mp_init_set.obj
3rdparty\libtommath\bn_mp_init_set_int.obj
3rdparty\libtommath\bn_mp_init_size.obj
3rdparty\libtommath\bn_mp_invmod.obj
3rdparty\libtommath\bn_mp_invmod_slow.obj
3rdparty\libtommath\bn_mp_is_square.obj
3rdparty\libtommath\bn_mp_jacobi.obj
3rdparty\libtommath\bn_mp_karatsuba_mul.obj
3rdparty\libtommath\bn_mp_karatsuba_sqr.obj
3rdparty\libtommath\bn_mp_lcm.obj 3rdparty\libtommath\bn_mp_lshd.obj
3rdparty\libtommath\bn_mp_mod.obj 3rdparty\libtommath\bn_mp_mod_2d.obj
3rdparty\libtommath\bn_mp_mod_d.obj
3rdparty\libtommath\bn_mp_montgomery_calc_normalization.obj
3rdparty\libtommath\bn_mp_montgomery_reduce.obj
3rdparty\libtommath\bn_mp_montgomery_setup.obj
3rdparty\libtommath\bn_mp_mul.obj 3rdparty\libtommath\bn_mp_mul_2.obj
3rdparty\libtommath\bn_mp_mul_2d.obj
3rdparty\libtommath\bn_mp_mul_d.obj
3rdparty\libtommath\bn_mp_mulmod.obj
3rdparty\libtommath\bn_mp_n_root.obj 3rdparty\libtommath\bn_mp_neg.obj
3rdparty\libtommath\bn_mp_or.obj
3rdparty\libtommath\bn_mp_prime_fermat.obj
3rdparty\libtommath\bn_mp_prime_is_divisible.obj
3rdparty\libtommath\bn_mp_prime_is_prime.obj
3rdparty\libtommath\bn_mp_prime_miller_rabin.obj
3rdparty\libtommath\bn_mp_prime_next_prime.obj
3rdparty\libtommath\bn_mp_prime_rabin_miller_trials.obj
3rdparty\libtommath\bn_mp_prime_random_ex.obj
3rdparty\libtommath\bn_mp_radix_size.obj
3rdparty\libtommath\bn_mp_radix_smap.obj
3rdparty\libtommath\bn_mp_rand.obj
3rdparty\libtommath\bn_mp_read_radix.obj
3rdparty\libtommath\bn_mp_read_signed_bin.obj
3rdparty\libtommath\bn_mp_read_unsigned_bin.obj
3rdparty\libtommath\bn_mp_reduce.obj
3rdparty\libtommath\bn_mp_reduce_2k.obj
3rdparty\libtommath\bn_mp_reduce_2k_l.obj
3rdparty\libtommath\bn_mp_reduce_2k_setup.obj
3rdparty\libtommath\bn_mp_reduce_2k_setup_l.obj
3rdparty\libtommath\bn_mp_reduce_is_2k.obj
3rdparty\libtommath\bn_mp_reduce_is_2k_l.obj
3rdparty\libtommath\bn_mp_reduce_setup.obj
3rdparty\libtommath\bn_mp_rshd.obj 3rdparty\libtommath\bn_mp_set.obj
3rdparty\libtommath\bn_mp_set_int.obj
3rdparty\libtommath\bn_mp_set_long.obj
3rdparty\libtommath\bn_mp_shrink.obj
3rdparty\libtommath\bn_mp_signed_bin_size.obj
3rdparty\libtommath\bn_mp_sqr.obj 3rdparty\libtommath\bn_mp_sqrmod.obj
3rdparty\libtommath\bn_mp_sqrt.obj 3rdparty\libtommath\bn_mp_sub.obj
3rdparty\libtommath\bn_mp_sub_d.obj
3rdparty\libtommath\bn_mp_submod.obj
3rdparty\libtommath\bn_mp_to_signed_bin.obj
3rdparty\libtommath\bn_mp_to_signed_bin_n.obj
3rdparty\libtommath\bn_mp_to_unsigned_bin.obj
3rdparty\libtommath\bn_mp_to_unsigned_bin_n.obj
3rdparty\libtommath\bn_mp_toom_mul.obj
3rdparty\libtommath\bn_mp_toom_sqr.obj
3rdparty\libtommath\bn_mp_toradix.obj
3rdparty\libtommath\bn_mp_toradix_n.obj
3rdparty\libtommath\bn_mp_unsigned_bin_size.obj
3rdparty\libtommath\bn_mp_xor.obj 3rdparty\libtommath\bn_mp_zero.obj
3rdparty\libtommath\bn_prime_tab.obj
3rdparty\libtommath\bn_reverse.obj 3rdparty\libtommath\bn_s_mp_add.obj
3rdparty\libtommath\bn_s_mp_exptmod.obj
3rdparty\libtommath\bn_s_mp_mul_digs.obj
3rdparty\libtommath\bn_s_mp_mul_high_digs.obj
3rdparty\libtommath\bn_s_mp_sqr.obj
3rdparty\libtommath\bn_s_mp_sub.obj 3rdparty\libtommath\bncore.obj
moar​::syslibs[4]=advapi32
moar​::syslibs[1]=ws2_32
perl6​::language_version=6.b
perl6​::codename=
perl6​::release-number=
perl6​::build-date=2015-12-22T15​:06​:37Z
perl6​::version=2015.11-718-g73d193b
perl6​::implementation=Rakudo

@p6rt
Copy link
Author

p6rt commented Nov 18, 2016

From @zoffixznet

This passes now on latest Rakudo per https://irclog.perlgeek.de/perl6/2016-11-18#i_13592286

On Tue, 22 Dec 2015 07​:41​:52 -0800, nanis@​cpan.org wrote​:

This is from a fresh clone. There is no perl6 on the %PATH%.

First, no options. Killed after moar.exe CPU use fell to 0, and Task
Manager showed moar.exe waiting on two threads.

D​:\Src\rakudo> perl t\harness t\spec\S17-supply\throttle.t
t\spec\S17-supply\throttle.t .. Dubious, test returned 1 (wstat 256,
0x100)
Failed 34/47 subtests

Test Summary Report
-------------------
t\spec\S17-supply\throttle.t (Wstat​: 256 Tests​: 13 Failed​: 0)
Non-zero exit status​: 1
Parse errors​: Bad plan. You planned 47 tests but ran 13.
Files=1, Tests=13, 65 wallclock secs ( 0.11 usr + 0.00 sys = 0.11
CPU)
Result​: FAIL

This time with verbosity to print progress. Again, kill after moar.exe
cpu use falls to 0, and Task Manager showed moar.exe waiting on two
threads. Note that the number of tests run in this case is 11​:

D​:\Src\rakudo> perl t\harness t\spec\S17-supply\throttle.t
--verbosity=3
t\spec\S17-supply\throttle.t ..
1..47
ok 1 - can not be called as a class method
# **** scheduling with ThreadPoolScheduler
ok 2 - did we see all of the element
ok 3 - difference between each at least .5 seconds
ok 4 - difference between each at most .8 seconds
ok 5 - did we see all of the element
ok 6 - difference between each at least something
ok 7 - difference between each at most .5 seconds
ok 8 - ok with 1 at a time
ok 9 - ok with 2 at a time
ok 10 - ok with 3 at a time
ok 11 - ok with 4 at a time
Dubious, test returned 1 (wstat 256, 0x100)
Failed 36/47 subtests

Test Summary Report
-------------------
t\spec\S17-supply\throttle.t (Wstat​: 256 Tests​: 11 Failed​: 0)
Non-zero exit status​: 1
Parse errors​: Bad plan. You planned 47 tests but ran 11.
Files=1, Tests=11, 249 wallclock secs ( 0.09 usr + 0.00 sys = 0.09
CPU)
Result​: FAIL

Whether the actual number of tests run is 11 or 13, the triggering
code seems to be this block starting on line 51​:

for 1..10 -> $n {
my @​a; @​a[9] = 0; # pre-size array to allow seamless multi-thread
updates
(1..10).Supply.throttle( $n, { @​a[$_] = 1 } ).wait;
is @​a.sum, 10, "ok with $n at a time";
}

Let's try one more time​:

D​:\Src\rakudo> perl t\harness t\spec\S17-supply\throttle.t
--verbosity=3
t\spec\S17-supply\throttle.t ..
1..47
ok 1 - can not be called as a class method
# **** scheduling with ThreadPoolScheduler
ok 2 - did we see all of the element
ok 3 - difference between each at least .5 seconds
ok 4 - difference between each at most .8 seconds
ok 5 - did we see all of the element
ok 6 - difference between each at least something
ok 7 - difference between each at most .5 seconds
ok 8 - ok with 1 at a time
ok 9 - ok with 2 at a time
ok 10 - ok with 3 at a time
ok 11 - ok with 4 at a time
ok 12 - ok with 5 at a time
ok 13 - ok with 6 at a time
ok 14 - ok with 7 at a time
ok 15 - ok with 8 at a time
ok 16 - ok with 9 at a time
ok 17 - ok with 10 at a time
ok 18 - parallelism as expected with 1
ok 19 - ok with 1 at a time with random delay
ok 20 - parallelism as expected with 2
ok 21 - ok with 2 at a time with random delay
ok 22 - parallelism as expected with 3
ok 23 - ok with 3 at a time with random delay
ok 24 - parallelism as expected with 4
ok 25 - ok with 4 at a time with random delay
ok 26 - parallelism as expected with 5
ok 27 - ok with 5 at a time with random delay
ok 28 - parallelism as expected with 6
ok 29 - ok with 6 at a time with random delay
ok 30 - parallelism as expected with 7
ok 31 - ok with 7 at a time with random delay
ok 32 - parallelism as expected with 8
ok 33 - ok with 8 at a time with random delay
ok 34 - parallelism as expected with 9
ok 35 - ok with 9 at a time with random delay
ok 36 - parallelism as expected with 10
ok 37 - ok with 10 at a time with random delay
ok 38 - Nothing should be seen yet
ok 39 - did we see all in the right order?
ok 40 - did we get the final status?
ok 41 - currently allowed to run
ok 42 - no bleeds done
ok 43 - none left in buffer
ok 44 - number of results emitted
ok 45 - correct status ID
ok 46 - maximally allowed to run
ok 47 - none are running still
ok
All tests successful.
Files=1, Tests=47, 33 wallclock secs ( 0.08 usr + 0.02 sys = 0.09
CPU)
Result​: PASS

One more time​:

D​:\Src\rakudo> perl t\harness t\spec\S17-supply\throttle.t
t\spec\S17-supply\throttle.t .. ok
All tests successful.
Files=1, Tests=47, 32 wallclock secs ( 0.06 usr + 0.01 sys = 0.08
CPU)
Result​: PASS

So, what we have here is a Heisenbug related to threads. Sorry I can't
be of more help right now.

Here's my environment and build info​:

C​:\> ver
Microsoft Windows [Version 10.0.10586]

C​:\> cl
Microsoft (R) C/C++ Optimizing Compiler Version 18.00.31101 for x64

C​:\> nmake /?
Microsoft (R) Program Maintenance Utility Version 12.00.21005.1

C​:\> D​:\Src\rakudo\perl6 -V

moar​::syslibs[6]=iphlpapi
moar​::dcbrule=@​​:
moar​::ar=lib
moar​::mastdir=C​:\opt\perl6\share\nqp\lib\MAST
moar​::tomrule=$(AR) $(ARFLAGS) /out​:$@​ 3rdparty\libtommath\*.obj
moar​::syslibs[2]=mswsock
moar​::shaobjects=3rdparty\sha1\sha1.obj
moar​::ccshared=
moar​::be=0
moar​::dynasmlua=.\3rdparty\dynasm\dynasm.lua
moar​::ld=link
moar​::mtlib=3rdparty\tinymt\tinymt.lib
moar​::mtobjects=3rdparty\tinymt\tinymt64.obj
moar​::noreturnspecifier=__declspec(noreturn)
moar​::perl=c​:\opt\perl\5.23.5\bin\perl.exe
moar​::shaclean=$(RM) 3rdparty\sha1\sha1.lib 3rdparty\sha1\*.obj
moar​::static_inline=static __inline
moar​::ccdebugflags=/Zi
moar​::auxclean=$(RM) moar.ilk moar.pdb moar.dll.lib moar.dll.exp
vc100.pdb
moar​::thirdpartylibs=3rdparty\dyncall\dyncall\libdyncall_s.lib
3rdparty\dyncall\dyncallback\libdyncallback_s.lib
3rdparty\dyncall\dynload\libdynload_s.lib 3rdparty\tinymt\tinymt.lib
3rdparty\sha1\sha1.lib 3rdparty\libtommath\tommath.lib
3rdparty\libuv\uv.lib
moar​::config=--optimize --prefix=C​:\opt\perl6 --make-install
moar​::ccinc=/I
moar​::booltype=_Bool
moar​::ldout=/out​:
moar​::moarlib=moar.lib
moar​::mtrule=$(AR) $(ARFLAGS) /out​:$@​ 3rdparty\tinymt\*.obj
moar​::syslibs[0]=shell32
moar​::dcrule=cd 3rdparty\dyncall && configure.bat /target-x64 &&
$(MAKE) -f Nmakefile
moar​::dcbobjects=
moar​::cflags=/nologo /MT /Ox /GL /DNDEBUG /DWIN32
/DAO_ASSUME_WINDOWS98
moar​::laolib=__lao__
moar​::libdir=C​:\opt\perl6\bin
moar​::nul=NUL
moar​::osvers=10.0
moar​::translate_newline_output=1
moar​::dlrule=@​​:
moar​::cat=type
moar​::can_unaligned_int32=1
moar​::ldimp=%s.dll.lib
moar​::win32_compiler_toolchain=win32
moar​::ccdef=/D
moar​::lib=%s.lib
moar​::tomclean=$(RM) 3rdparty\libtommath\tommath.lib
3rdparty\libtommath\*.obj
moar​::dlllocal=
moar​::dcbclean=$(RM) 3rdparty\dyncall\dyncallback\libdyncallback_s.lib
moar​::noreturnattribute=
moar​::ptr_size=8
moar​::syslibs[5]=psapi
moar​::dllimport=__declspec(dllimport)
moar​::ccout=/Fo
moar​::can_unaligned_num64=1
moar​::has_pthread_yield=0
moar​::ldrpath=
moar​::ldusr=%s.lib
moar​::mainflags=/DMVM_SHARED
moar​::name=moar
moar​::dll=%s.dll
moar​::cincludes= /I3rdparty\libuv\include /I3rdparty\libuv\src
/I3rdparty\libatomic_ops\src /I3rdparty\libtommath /I3rdparty\dynasm
/I3rdparty\dyncall\dynload /I3rdparty\dyncall\dyncall
/I3rdparty\dyncall\dyncallback
moar​::uvrule=$(AR) $(ARFLAGS) /out​:$@​ 3rdparty\libuv\src\*.obj
3rdparty\libuv\src\win\*.obj
moar​::tomlib=3rdparty\libtommath\tommath.lib
moar​::syslibs[3]=rpcrt4
moar​::staticlib=
moar​::dlclean=$(RM) 3rdparty\dyncall\dynload\libdynload_s.lib
moar​::make=nmake
moar​::ccinstflags=
moar​::ldflags=/nologo /LTCG
moar​::crossconf=
moar​::obj=.obj
moar​::dlobjects=
moar​::defs[0]=WIN32
moar​::cppout=/Fi
moar​::ccoptiflags=/Ox /GL /DNDEBUG
moar​::asmswitch=/c /FAs
moar​::ldoptiflags=/LTCG
moar​::mkflags=/nologo
moar​::moar=moar.dll
moar​::version=2015.11-120-gb258173
moar​::dcclean=$(RM) 3rdparty\dyncall\ConfigVars
3rdparty\dyncall\dyncall\libdyncall_s.lib
3rdparty\dyncall\dyncallback\libdyncallback_s.lib
3rdparty\dyncall\dynload\libdynload_s.lib
3rdparty\dyncall\dyncall\*.obj 3rdparty\dyncall\dyncallback\*.obj
3rdparty\dyncall\dynload\*.obj
moar​::moarshared=/implib​:moar.dll.lib
moar​::sharule=$(AR) $(ARFLAGS) /out​:$@​ 3rdparty\sha1\*.obj
moar​::ccwarnflags=
moar​::jit=$(JIT_WIN32_X64)
moar​::moardll=moar.dll
moar​::asm=.asm
moar​::mknoisy=!IF $(NOISY) != 1MSG = @​echoCMD = @​NOOUT = > NULNOERR =
2> NUL!ENDIF
moar​::dclib=3rdparty\dyncall\dyncall\libdyncall_s.lib
moar​::ccdefflags=/DWIN32 /DAO_ASSUME_WINDOWS98
moar​::cc=cl
moar​::exe=.exe
moar​::lddir=/libpath​:
moar​::uvlib=3rdparty\libuv\uv.lib
moar​::dllib=3rdparty\dyncall\dynload\libdynload_s.lib
moar​::shaincludedir=3rdparty\sha1
moar​::versionmajor=2015
moar​::cppswitch=/P
moar​::can_unaligned_int64=1
moar​::lua=.\3rdparty\dynasm\minilua.exe
moar​::dcobjects=
moar​::cancgoto=0
moar​::ldlibs=shell32.lib ws2_32.lib mswsock.lib rpcrt4.lib
advapi32.lib psapi.lib iphlpapi.lib
moar​::mainlibs=/libpath​:. moar.dll.lib
moar​::nativecall_backend=dyncall
moar​::objflags=/DMVM_BUILD_SHARED
moar​::versionpatch=120
moar​::laoclean=@​​:
moar​::versionminor=11
moar​::ccmiscflags=/nologo /MT
moar​::install= $(MKPATH) $(DESTDIR)$(PREFIX)\include\libuv $(CP)
3rdparty\libuv\include\*.h $(DESTDIR)$(PREFIX)\include\libuv
$(MKPATH)
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\armcc
$(MKPATH)
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\gcc
$(MKPATH)
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\hpc
$(MKPATH)
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\ibmc
$(MKPATH)
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\icc
$(MKPATH)
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\loadstore
$(MKPATH)
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\msftc
$(MKPATH)
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\sunc
$(CP) 3rdparty\libatomic_ops\src\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops $(CP)
3rdparty\libatomic_ops\src\atomic_ops\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops $(CP)
3rdparty\libatomic_ops\src\atomic_ops\sysdeps\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps $(CP)
3rdparty\libatomic_ops\src\atomic_ops\sysdeps\armcc\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\armcc
$(CP) 3rdparty\libatomic_ops\src\atomic_ops\sysdeps\gcc\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\gcc
$(CP) 3rdparty\libatomic_ops\src\atomic_ops\sysdeps\hpc\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\hpc
$(CP) 3rdparty\libatomic_ops\src\atomic_ops\sysdeps\ibmc\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\ibmc
$(CP) 3rdparty\libatomic_ops\src\atomic_ops\sysdeps\icc\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\icc
$(CP) 3rdparty\libatomic_ops\src\atomic_ops\sysdeps\loadstore\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\loadstore
$(CP) 3rdparty\libatomic_ops\src\atomic_ops\sysdeps\msftc\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\msftc
$(CP) 3rdparty\libatomic_ops\src\atomic_ops\sysdeps\sunc\*.h
$(DESTDIR)$(PREFIX)\include\libatomic_ops\atomic_ops\sysdeps\sunc
$(CP) 3rdparty\libtommath\*.h $(DESTDIR)$(PREFIX)\include\libtommath
$(MKPATH) $(DESTDIR)$(PREFIX)\include\dyncall $(CP)
3rdparty\dyncall\dynload\*.h $(DESTDIR)$(PREFIX)\include\dyncall
$(CP) 3rdparty\dyncall\dyncall\*.h $(DESTDIR)$(PREFIX)\include\dyncall
$(CP) 3rdparty\dyncall\dyncallback\*.h
$(DESTDIR)$(PREFIX)\include\dyncall
moar​::laoobjects=
moar​::mtclean=$(RM) 3rdparty\tinymt\tinymt.lib 3rdparty\tinymt\*.obj
moar​::rm=del
moar​::uvclean=$(RM) 3rdparty\libuv\uv.lib 3rdparty\libuv\src\*.obj
3rdparty\libuv\src\win\*.obj
moar​::sharedlib=moar.dll.lib
moar​::dllexport=__declspec(dllexport)
moar​::shalib=3rdparty\sha1\sha1.lib
moar​::arout=/out​:
moar​::lddebugflags=/debug /pdb​:$@​.pdb
moar​::osname=MSWin32
moar​::prefix=C​:\opt\perl6
moar​::uvobjects=3rdparty\libuv\src\fs-poll.obj
3rdparty\libuv\src\inet.obj 3rdparty\libuv\src\threadpool.obj
3rdparty\libuv\src\uv-common.obj 3rdparty\libuv\src\version.obj
3rdparty\libuv\src\win\async.obj 3rdparty\libuv\src\win\core.obj
3rdparty\libuv\src\win\dl.obj 3rdparty\libuv\src\win\error.obj
3rdparty\libuv\src\win\fs-event.obj 3rdparty\libuv\src\win\fs.obj
3rdparty\libuv\src\win\getaddrinfo.obj
3rdparty\libuv\src\win\getnameinfo.obj
3rdparty\libuv\src\win\handle.obj
3rdparty\libuv\src\win\loop-watcher.obj
3rdparty\libuv\src\win\pipe.obj 3rdparty\libuv\src\win\poll.obj
3rdparty\libuv\src\win\process-stdio.obj
3rdparty\libuv\src\win\process.obj 3rdparty\libuv\src\win\req.obj
3rdparty\libuv\src\win\signal.obj 3rdparty\libuv\src\win\stream.obj
3rdparty\libuv\src\win\tcp.obj 3rdparty\libuv\src\win\thread.obj
3rdparty\libuv\src\win\timer.obj 3rdparty\libuv\src\win\tty.obj
3rdparty\libuv\src\win\udp.obj 3rdparty\libuv\src\win\util.obj
3rdparty\libuv\src\win\winapi.obj 3rdparty\libuv\src\win\winsock.obj
moar​::dcblib=3rdparty\dyncall\dyncallback\libdyncallback_s.lib
moar​::bindir=C​:\opt\perl6\bin
moar​::asmout=/Fa
moar​::havebooltype=1
moar​::laorule=@​​:
moar​::os=win32
moar​::sh=cmd
moar​::arflags=/nologo
moar​::ldshared=/dll
moar​::defs[1]=AO_ASSUME_WINDOWS98
moar​::impinst=moar.dll.lib
moar​::ldinstflags=/Profile
moar​::ldmiscflags=/nologo
moar​::ldsys=%s.lib
moar​::platform=$(PLATFORM_WIN32)
moar​::ccswitch=/c
moar​::formatattribute=
moar​::tomobjects=3rdparty\libtommath\bn_error.obj
3rdparty\libtommath\bn_fast_mp_invmod.obj
3rdparty\libtommath\bn_fast_mp_montgomery_reduce.obj
3rdparty\libtommath\bn_fast_s_mp_mul_digs.obj
3rdparty\libtommath\bn_fast_s_mp_mul_high_digs.obj
3rdparty\libtommath\bn_fast_s_mp_sqr.obj
3rdparty\libtommath\bn_mp_2expt.obj 3rdparty\libtommath\bn_mp_abs.obj
3rdparty\libtommath\bn_mp_add.obj 3rdparty\libtommath\bn_mp_add_d.obj
3rdparty\libtommath\bn_mp_addmod.obj 3rdparty\libtommath\bn_mp_and.obj
3rdparty\libtommath\bn_mp_clamp.obj
3rdparty\libtommath\bn_mp_clear.obj
3rdparty\libtommath\bn_mp_clear_multi.obj
3rdparty\libtommath\bn_mp_cmp.obj 3rdparty\libtommath\bn_mp_cmp_d.obj
3rdparty\libtommath\bn_mp_cmp_mag.obj
3rdparty\libtommath\bn_mp_cnt_lsb.obj
3rdparty\libtommath\bn_mp_copy.obj
3rdparty\libtommath\bn_mp_count_bits.obj
3rdparty\libtommath\bn_mp_div.obj 3rdparty\libtommath\bn_mp_div_2.obj
3rdparty\libtommath\bn_mp_div_2d.obj
3rdparty\libtommath\bn_mp_div_3.obj
3rdparty\libtommath\bn_mp_div_d.obj
3rdparty\libtommath\bn_mp_dr_is_modulus.obj
3rdparty\libtommath\bn_mp_dr_reduce.obj
3rdparty\libtommath\bn_mp_dr_setup.obj
3rdparty\libtommath\bn_mp_exch.obj
3rdparty\libtommath\bn_mp_expt_d.obj
3rdparty\libtommath\bn_mp_exptmod.obj
3rdparty\libtommath\bn_mp_exptmod_fast.obj
3rdparty\libtommath\bn_mp_exteuclid.obj
3rdparty\libtommath\bn_mp_fread.obj
3rdparty\libtommath\bn_mp_fwrite.obj 3rdparty\libtommath\bn_mp_gcd.obj
3rdparty\libtommath\bn_mp_get_int.obj
3rdparty\libtommath\bn_mp_get_long.obj
3rdparty\libtommath\bn_mp_grow.obj 3rdparty\libtommath\bn_mp_init.obj
3rdparty\libtommath\bn_mp_init_copy.obj
3rdparty\libtommath\bn_mp_init_multi.obj
3rdparty\libtommath\bn_mp_init_set.obj
3rdparty\libtommath\bn_mp_init_set_int.obj
3rdparty\libtommath\bn_mp_init_size.obj
3rdparty\libtommath\bn_mp_invmod.obj
3rdparty\libtommath\bn_mp_invmod_slow.obj
3rdparty\libtommath\bn_mp_is_square.obj
3rdparty\libtommath\bn_mp_jacobi.obj
3rdparty\libtommath\bn_mp_karatsuba_mul.obj
3rdparty\libtommath\bn_mp_karatsuba_sqr.obj
3rdparty\libtommath\bn_mp_lcm.obj 3rdparty\libtommath\bn_mp_lshd.obj
3rdparty\libtommath\bn_mp_mod.obj 3rdparty\libtommath\bn_mp_mod_2d.obj
3rdparty\libtommath\bn_mp_mod_d.obj
3rdparty\libtommath\bn_mp_montgomery_calc_normalization.obj
3rdparty\libtommath\bn_mp_montgomery_reduce.obj
3rdparty\libtommath\bn_mp_montgomery_setup.obj
3rdparty\libtommath\bn_mp_mul.obj 3rdparty\libtommath\bn_mp_mul_2.obj
3rdparty\libtommath\bn_mp_mul_2d.obj
3rdparty\libtommath\bn_mp_mul_d.obj
3rdparty\libtommath\bn_mp_mulmod.obj
3rdparty\libtommath\bn_mp_n_root.obj 3rdparty\libtommath\bn_mp_neg.obj
3rdparty\libtommath\bn_mp_or.obj
3rdparty\libtommath\bn_mp_prime_fermat.obj
3rdparty\libtommath\bn_mp_prime_is_divisible.obj
3rdparty\libtommath\bn_mp_prime_is_prime.obj
3rdparty\libtommath\bn_mp_prime_miller_rabin.obj
3rdparty\libtommath\bn_mp_prime_next_prime.obj
3rdparty\libtommath\bn_mp_prime_rabin_miller_trials.obj
3rdparty\libtommath\bn_mp_prime_random_ex.obj
3rdparty\libtommath\bn_mp_radix_size.obj
3rdparty\libtommath\bn_mp_radix_smap.obj
3rdparty\libtommath\bn_mp_rand.obj
3rdparty\libtommath\bn_mp_read_radix.obj
3rdparty\libtommath\bn_mp_read_signed_bin.obj
3rdparty\libtommath\bn_mp_read_unsigned_bin.obj
3rdparty\libtommath\bn_mp_reduce.obj
3rdparty\libtommath\bn_mp_reduce_2k.obj
3rdparty\libtommath\bn_mp_reduce_2k_l.obj
3rdparty\libtommath\bn_mp_reduce_2k_setup.obj
3rdparty\libtommath\bn_mp_reduce_2k_setup_l.obj
3rdparty\libtommath\bn_mp_reduce_is_2k.obj
3rdparty\libtommath\bn_mp_reduce_is_2k_l.obj
3rdparty\libtommath\bn_mp_reduce_setup.obj
3rdparty\libtommath\bn_mp_rshd.obj 3rdparty\libtommath\bn_mp_set.obj
3rdparty\libtommath\bn_mp_set_int.obj
3rdparty\libtommath\bn_mp_set_long.obj
3rdparty\libtommath\bn_mp_shrink.obj
3rdparty\libtommath\bn_mp_signed_bin_size.obj
3rdparty\libtommath\bn_mp_sqr.obj 3rdparty\libtommath\bn_mp_sqrmod.obj
3rdparty\libtommath\bn_mp_sqrt.obj 3rdparty\libtommath\bn_mp_sub.obj
3rdparty\libtommath\bn_mp_sub_d.obj
3rdparty\libtommath\bn_mp_submod.obj
3rdparty\libtommath\bn_mp_to_signed_bin.obj
3rdparty\libtommath\bn_mp_to_signed_bin_n.obj
3rdparty\libtommath\bn_mp_to_unsigned_bin.obj
3rdparty\libtommath\bn_mp_to_unsigned_bin_n.obj
3rdparty\libtommath\bn_mp_toom_mul.obj
3rdparty\libtommath\bn_mp_toom_sqr.obj
3rdparty\libtommath\bn_mp_toradix.obj
3rdparty\libtommath\bn_mp_toradix_n.obj
3rdparty\libtommath\bn_mp_unsigned_bin_size.obj
3rdparty\libtommath\bn_mp_xor.obj 3rdparty\libtommath\bn_mp_zero.obj
3rdparty\libtommath\bn_prime_tab.obj
3rdparty\libtommath\bn_reverse.obj 3rdparty\libtommath\bn_s_mp_add.obj
3rdparty\libtommath\bn_s_mp_exptmod.obj
3rdparty\libtommath\bn_s_mp_mul_digs.obj
3rdparty\libtommath\bn_s_mp_mul_high_digs.obj
3rdparty\libtommath\bn_s_mp_sqr.obj
3rdparty\libtommath\bn_s_mp_sub.obj 3rdparty\libtommath\bncore.obj
moar​::syslibs[4]=advapi32
moar​::syslibs[1]=ws2_32
perl6​::language_version=6.b
perl6​::codename=
perl6​::release-number=
perl6​::build-date=2015-12-22T15​:06​:37Z
perl6​::version=2015.11-718-g73d193b
perl6​::implementation=Rakudo

@p6rt
Copy link
Author

p6rt commented Nov 18, 2016

The RT System itself - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Nov 18, 2016

@zoffixznet - Status changed from 'open' to 'resolved'

@p6rt p6rt closed this as completed Nov 18, 2016
@p6rt p6rt added the Bug label Jan 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant