Perl 6 - the future is here, just unevenly distributed

IRC log for #perl11, 2016-01-02

| Channels | #perl11 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:13 rurban joined #perl11
00:16 rurban2 joined #perl11
00:19 rurban1 joined #perl11
00:22 rurban joined #perl11
00:24 rurban2 joined #perl11
00:28 rurban joined #perl11
00:30 rurban1 joined #perl11
00:33 rurban2 joined #perl11
00:41 rurban joined #perl11
00:43 rurban1 joined #perl11
00:45 rurban2 joined #perl11
03:05 bpmedley_ joined #perl11
05:21 bulk88 willthechill Math-BigInt-GMP is almost unbuildable on Win32 https://code.activestate.com/ppm/Math-BigInt-GMP/ https://ci.appveyor.com/project/bulk88/rperl/build/1.0.23 Math::BigInt::GMP dep was added very recently https://github.com/wbraswell/rperl/commit/994e14d298a5839479af36fc8ad501a514b85cdc
05:21 willthechill will get back to you on this issue in a bit, busy right this second  :P
05:22 bulk88 strawberry perl has bigint GMP but that is because of hand compiling it, which isn't possible in CI
05:58 travis-ci RPerl build passed. Will Braswell says 'Learning RPerl, Content, Part 17'
05:58 travis-ci https://travis-ci.org/wbraswell/rperl/builds/99788046 https://github.com/wbraswell/rperl/compare/beeab8d42a4f...1ebecbc5f859
06:01 willthechill yay the build passed
06:01 willthechill bulk88: okay I'm back  :)
06:05 willthechill we are using Math::BigInt::GMP because it is faster than normal Math::BigInt
06:05 bulk88 the Math-BigInt-GMP dep has to be removed, and the tests that used it skipped or something
06:05 willthechill slow down there cowboy
06:06 willthechill AFAIU M::BI::GMP falls back to normal M::BI if M::BI::GMP fails to load
06:06 willthechill according to ActiveState, normal M::BI builds 100% fine https://code.activestate.com/ppm/Math-BigInt/
06:08 willthechill however there is another whole separate issue, which is that we _must_ have GMP support directly in C via libgmp
06:08 bulk88 there will be no fallback if M::BI::GMP "fails to build" according to cpanm https://ci.appveyor.com/project/bulk88/rperl/build/1.0.24#L639
06:09 willthechill okay that failure point is coming from the Makefile.PL dependency requirements
06:09 willthechill so how do we make something get loaded up through the Makefile.PL but NOT kill everything if it fails to build?
06:10 willthechill EXCEPT I just realized it actually is the same issue as the C libgmp access
06:10 willthechill so nevermind, we MUST make the libgmp and gmp.h code work
06:11 willthechill so that means Strawberry
06:11 willthechill with real g++ and libgmp
06:16 willthechill I mean, in theory we could disable all GMP functionality under ActivePerl, but that doesn't really help us at all!
06:16 willthechill it just leaves us with a broken RPerl
06:16 willthechill so we are back to needing a real Perl, which means Strawberry
06:20 willthechill bulk88: and to answer your question quite late, sorry I don't think there is anything other than the verbose switch for cpanm, which as you said is not particularly helpful apparently  :(
06:20 bulk88 META files have a "recommends" section, these modules are auto-installed just like requires, but if they fail to build or pass tests, the module will still build/test/intall
06:20 bulk88 IDK how to get EUMM to create a recommends seciton in the META file
06:21 willthechill okay yes I am willing to eventually make a crippled version of RPerl for ActivePerl
06:21 willthechill since we will need that for CPAN testers to work
06:21 willthechill but let's save that task for later
06:22 willthechill (gmp_integer is one of the basic RPerl data types)
06:22 bulk88 why is it locked to a very specific library?
06:23 bulk88 pari is another competitor to GMP i think
06:25 willthechill LOL you go write thousands of lines of insane C++ code to make pari work with RPerl
06:25 willthechill same argument as your old thing about "why do we need unordered_map from C++11?"
06:25 willthechill because I'm not gonna spend hundreds of hours reinventing the wheel, that's why!  :P
06:26 willthechill nothing is ever "locked" to anything, it is only a matter of spending an infinite amount of resources!
06:27 willthechill I mean, you might as well say "let's fix ActivePerl so that M::BI::GMP builds perfect 100%"
06:27 willthechill prolly not gonna happen!
06:27 willthechill at least, not without tons of effort by somebody who is not either of us
06:28 willthechill so yeah, sorry, but "why pari instead of GMP" is just CRAZY TALK, haha!  but I still love you anyway.  :)
06:28 willthechill *why not
06:28 bulk88 if there is a token called gmp_integer in rperl, you are have forever locked your public facing API to the GMP library, the math library used should not be known or cared for by the user
06:30 bulk88 the inline/pegex software stack of rperl also shouldn't be known to the public, and I dont think it appears anywhere in the docs or as API
06:39 willthechill I had to directly expose both SSE and GMP libraries in RPerl in order achieve maximum speed
06:39 willthechill any argument you can give fails against speed
06:39 willthechill both libraries are super mature and standardized
06:39 willthechill any platform that doesn't support SSE and GMP is a fake platform
06:39 willthechill same with C++11
06:40 willthechill there is no need to expose Inline in RPerl to achieve additional speed
06:41 willthechill Perl's old groupthing mindset of "use magic and abstraction to hide everything from the user" is what got us into this mess in the first place
06:41 willthechill *groupthink
06:42 willthechill I have created very usable interfaces to both SSE and GMP
06:42 willthechill unfortunately the native SSE and GMP naming conventions are terrible gibberish
06:43 willthechill but all of mine are typedefs and #defines so it is resolved 100% at compile time
06:43 willthechill thus we have a nice, usable, understandable interface to both SSE and GMP without sacrificing any speed whatsoever!
06:43 willthechill sorry, but NOBODY can beat that
06:43 willthechill nobody
06:52 bulk88 ARM doesn't support SSE....
06:54 bulk88 SSE also straightjackets you into how many slices there are in vector data types, and therefore numbers computed per op
06:55 willthechill the ARM _hardware_ doesn't support SSE, so thus I have disabled SSE on ARM
06:55 willthechill LOL you say "straightjacket" I say "there is no other option"
06:55 willthechill go ahead, rewrite SSE and get every major chip manufacturer (except ARM) to build it in
06:55 willthechill good luck!
06:58 bulk88 okay, you wrote all your code with SSE registers, 4 integers per var, now you buy a sandy bridge or haswell CPU with YMM registers that can do 8 integers per var, but all your code was written with only 4 integers per var, now what? rewrite all your code to declare YMM vars?
06:59 bulk88 SSE can be a generation target, you can't expose the details of CPU registers in any programing language tho (16 byte SSE registers)
07:00 travis-ci RPerl build passed. Will Braswell says 'CPAN Release, v1.500000; Codename Gemini, New Year's Edition'
07:00 travis-ci https://travis-ci.org/wbraswell/rperl/builds/99790984 https://github.com/wbraswell/rperl/compare/1ebecbc5f859...0cebb00c8d7a
07:04 willthechill dude, all I did was create an RPerl interface to the already-existing SSE API
07:04 willthechill same with GMP
07:04 willthechill this is not some black magic
07:04 willthechill the output C++ code generated by RPerl is virtually identical to the normal C++ code accepted by the Alioth benchmarks site
07:05 willthechill these are totally standard coding practices you are arguing against
07:05 willthechill you might as well say "nobody should use SSE or GMP ever"
07:05 willthechill I'm literally just enabling Perl to call the existing C libraries
07:06 willthechill if you don't like the way the existing SSE or GMP libraries work, then I'm not the right guy to beef with!
07:07 willthechill in fact I never used SSE or GMP before RPerl, I was forced into enabling them in RPerl because they are the only way to get maximum speed
07:10 willthechill I mean seriously, your arguments are almost like you WANT Perl to be slow forever.  :P
07:11 willthechill SSE + GMP = speed
07:11 willthechill that's the only equation you need to know
08:06 basiliscos joined #perl11
08:49 rurban joined #perl11
09:20 travis-ci RPerl build passed. Will Braswell says 'Learning RPerl, Update pod2rperlhtml.pl Script, Correct CSS & JS Paths'
09:20 travis-ci https://travis-ci.org/wbraswell/rperl/builds/99798432 https://github.com/wbraswell/rperl/compare/0cebb00c8d7a...da58a108a9c1
09:55 rurban1 joined #perl11
09:57 rurban2 joined #perl11
10:00 travis-ci perl11/cperl#627 (smoke/gh7-signatures - 59dc4cd : Reini Urban): The build was fixed. https://travis-ci.org/perl11/cperl/builds/99800069
10:53 travis-ci perl11/cperl#628 (smoke/gh7-signatures - 0fb1dcf : Reini Urban): The build was broken. https://travis-ci.org/perl11/cperl/builds/99803140
11:38 travis-ci perl11/cperl#629 (smoke/gh7-signatures - 2ca4322 : Reini Urban): The build is still failing. https://travis-ci.org/perl11/cperl/builds/99806329
11:43 travis-ci perl11/cperl#630 (smoke/gh7-signatures - bbd4ba3 : Reini Urban): The build was canceled. https://travis-ci.org/perl11/cperl/builds/99809605
11:44 travis-ci perl11/cperl#630 (smoke/gh7-signatures - bbd4ba3 : Reini Urban): The build was canceled. https://travis-ci.org/perl11/cperl/builds/99809605
11:44 travis-ci perl11/cperl#630 (smoke/gh7-signatures - bbd4ba3 : Reini Urban): The build was canceled. https://travis-ci.org/perl11/cperl/builds/99809605
12:19 travis-ci perl11/cperl#631 (smoke/gh7-signatures - 2162849 : Reini Urban): The build passed. https://travis-ci.org/perl11/cperl/builds/99809738
12:22 rurban joined #perl11
12:30 basiliscos joined #perl11
13:04 rurban joined #perl11
13:31 rurban joined #perl11
13:36 stephen joined #perl11
13:48 rurban1 joined #perl11
13:51 rurban2 joined #perl11
13:57 rurban joined #perl11
13:59 rurban1 joined #perl11
14:05 rurban joined #perl11
14:09 rurban1 joined #perl11
14:14 rurban joined #perl11
14:16 rurban2 joined #perl11
14:19 rurban1 joined #perl11
14:24 rurban joined #perl11
14:27 rurban2 joined #perl11
14:30 rurban1 joined #perl11
14:32 rurban joined #perl11
14:35 rurban2 joined #perl11
15:19 travis-ci perl11/cperl#632 (smoke/gh7-signatures - 448f56e : Reini Urban): The build passed. https://travis-ci.org/perl11/cperl/builds/99826048
15:28 rurban joined #perl11
15:31 rurban1 joined #perl11
15:34 rurban2 joined #perl11
15:37 rurban joined #perl11
15:39 rurban1 joined #perl11
15:39 bpmedley joined #perl11
15:42 rurban2 joined #perl11
15:45 rurban joined #perl11
15:47 rurban1 joined #perl11
15:50 rurban2 joined #perl11
15:56 rurban joined #perl11
15:57 rurban1 joined #perl11
16:04 rurban joined #perl11
16:07 rurban2 joined #perl11
16:17 rurban joined #perl11
16:21 rurban1 joined #perl11
16:24 rurban joined #perl11
16:26 rurban1 joined #perl11
16:29 rurban2 joined #perl11
16:37 rurban joined #perl11
16:51 rurban joined #perl11
16:51 basiliscos joined #perl11
17:05 rurban1 joined #perl11
17:07 rurban2 joined #perl11
17:08 rurban3 joined #perl11
19:10 willthechill joined #perl11
19:32 bulk88 willthechill I got appveyor with its ActivePerl to the point where Straberry starts to fail in t/04_type_scalar.t https://ci.appveyor.com/project/bulk88/rperl/build/1.0.34 I think my rperl appveyor experiment is finished
19:32 bulk88 the build/test/whatever script is set PATH=C:\MinGW\bin;C:\Perl\site\bin;C:\Perl\bin;C:\windows\system32;C:\windows; && gcc -v && g++ -v && perl -V && mingw32-make -v && perl -e "use Config; my $c; open(my $f, '<', $INC{'Config.pm'}) or die $!; local $/; $c = <$f>; close $f; die 'zero len file' if length($c) == 0; $f = q|    ldlibpthname => '',|; my $r = $f.qq|\n|.q|    make => 'mingw32-make',|;
19:32 bulk88 $c =~ s/$f/$r/; system 'attrib -r '.$INC{'Config.pm'}; print $c;open($f, '>', $INC{'Config.pm'}) or die $!; syswrite($f, $c); close $f;" && perl Makefile.PL && set ACTIVEPERL_CONFIG_DISABLE=1 && perl -e"unshift @INC, $ENV{USERPROFILE}.'\.cpan';require CPAN::Config;shift @INC;$CPAN::Config->{make} = 'C:\MinGW\bin\mingw32-make.exe';require CPAN;CPAN::Shell->notest('install','App::cpanminus');"
19:32 bulk88 && perl -e"require Config; tied(%%Config::Config)->{make} = 'mingw32-make'; do 'C:\perl\site\bin\cpanm'; @ARGV = ('-n', '-v', '--installdeps', '.'); my $app = App::cpanminus::script->new; $app->parse_options(@ARGV); exit $app->doit;" & mingw32-make test
19:33 bulk88 the cpanm make tool replacement code could probably be removed and switched to the regular  cpanm shell script without the perl -e still
19:33 bulk88 *stuff
19:58 willthechill awesome!
19:58 willthechill I'm about to walk out the door right now, will check it all when I get home.  :D
19:58 willthechill bulk88++
19:58 willthechill afk
20:28 bulk88 cleaned up build script,     set PATH=C:\MinGW\bin;C:\Perl\site\bin;C:\Perl\bin;C:\windows\system32;C:\windows; && gcc -v && g++ -v && perl -V && mingw32-make -v && perl -e "use Config; my $c; open(my $f, '<', $INC{'Config.pm'}) or die $!; local $/; $c = <$f>; close $f; $f = q|    ldlibpthname => '',|; my $r = $f.qq|\n|.q|    make => 'mingw32-make',|; $c =~ s/$f/$r/; system 'attrib -r
20:28 bulk88 '.$INC{'Config.pm'}; print $c;open($f, '>', $INC{'Config.pm'}) or die $!; syswrite($f, $c); close $f;" && perl Makefile.PL && set ACTIVEPERL_CONFIG_DISABLE=1 && perl -e"require CPAN;CPAN::Shell->notest('install','App::cpanminus');" && cpanm -n -v --installdeps . & mingw32-make test
21:40 rurban joined #perl11
21:51 rurban1 joined #perl11
21:54 rurban2 joined #perl11
22:00 rurban joined #perl11
22:02 rurban1 joined #perl11
22:05 rurban2 joined #perl11
22:11 rurban joined #perl11
22:13 rurban1 joined #perl11
22:14 willthechill bulk88: I'm looking at your output now, looks great so far!
22:15 willthechill I am impressed that we are passing up through t/03 so far
22:15 willthechill looks like our error starts here  https://ci.appveyor.com/project/bulk88/rperl/build/1.0.34#L2975
22:15 willthechill I'll have to look into it later today
22:17 rurban2 joined #perl11
22:38 rurban joined #perl11
23:24 basiliscos1 joined #perl11
23:39 rurban1 joined #perl11
23:40 rurban1 thanks for https://travis-ci.org/perl11/cperl/builds/99885017, will merge soon
23:40 rurban1 smoke/cfg_6_06
23:41 rurban1 fixed now most goto's. one case sig2sig left (not used in any corelib)
23:46 rurban joined #perl11
23:47 rurban2 joined #perl11
23:50 rurban1 joined #perl11
23:58 travis-ci perl11/cperl#633 (smoke/cfg_6_06 - c9117f7 : bulk88): The build failed. https://travis-ci.org/perl11/cperl/builds/99885017

| Channels | #perl11 index | Today | | Search | Google Search | Plain-Text | summary