Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-03-20

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 timotimo one of those days i'll implement a json parser with ugly code but a bit faster than the simple one :)
00:02 FROGGS in C or asm?
00:18 dalek rakudo/nom: 9b61420 | FROGGS++ | t/spectest.data:
00:18 dalek rakudo/nom: skip flapping tests for release
00:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9b61420a89
00:20 dalek rakudo/nom: ce69bb6 | FROGGS++ | docs/ChangeLog:
00:20 dalek rakudo/nom: update changelog
00:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ce69bb6da0
00:23 skids left #perl6
00:25 ostomachion joined #perl6
00:33 timotimo not *that* ugly :)
00:33 FROGGS :D
00:34 timotimo for very fast we already have the binding to ... what was the library called again? jansson?
00:35 timotimo FROGGS: http://t.h8.lv/p6bench/2015-03-20-virtual_devirtual.html
00:36 timotimo huh, what.
00:36 coffee` joined #perl6
00:36 timotimo i should re-run the virtual part of that with an up to date moar that just lacks the devirt branch
00:37 FROGGS yeah, jansson
00:38 timotimo bah. the only difference between up-to-date master and what was in there already is docs changes :(
00:38 FROGGS :/
00:39 jdv79 i wouldnt call jansson very fast
00:39 timotimo oh?
00:40 timotimo well, it's certainly a whole lot faster than JSON::Tiny
00:40 jdv79 last i checked p5's json::xs beat it pretty hard
00:40 jdv79 yes, that is true
00:40 timotimo how the f* can devirtualized be so much slower in some cases?!
00:41 timotimo i had not expected this
00:42 dayangkun joined #perl6
00:43 FROGGS gnight
00:43 timotimo gnite FROGGS
00:50 laouji joined #perl6
00:59 tinyblak joined #perl6
01:01 grondilu m: my $σ0;
01:01 camelia rakudo-moar ce69bb: ( no output )
01:01 grondilu ^I'm told this is broken on Windows
01:02 dayangkun joined #perl6
01:02 grondilu https://github.com/grondilu/libdigest-perl6/issues/7#issuecomment-83799274
01:09 ugexe C:\Users\Nick>"C:\Users\Nick\Documents\Perl6\.rakudobrew\moar-nom\install\bin\pe
01:09 ugexe rl6.bat" -e "my $I0;"
01:09 ugexe er oops
01:09 ugexe C:\Users\Nick>"C:\Users\Nick\Documents\Perl6\.rakudobrew\moar-nom\install\bin\perl6.bat" -e "my $I0;"
01:09 ugexe C:\Users\Nick>"C:\Users\Nick\Documents\Perl6\.rakudobrew\jvm-nom\install\bin\perl6.bat" -e "my $I0;"
01:09 ugexe both no output. whatever that means
01:11 flussence .u σ
01:11 yoleaux U+03C3 GREEK SMALL LETTER SIGMA [Ll] (σ)
01:14 itz_ joined #perl6
01:23 skids joined #perl6
01:26 ugexe joined #perl6
01:36 kaare_ joined #perl6
01:41 ugexe grondilu: if you have a runnable example i'll test it on jvm and moar on windows if you need it
01:49 japhb avuserow: Re IO.resolve.  Gah, I think my testing on r-j did not test everything that I thought it tested.  I'll build a fresh r-j and see what the current state is.
01:52 adu joined #perl6
01:57 grondilu ugexe: de Nanotruss [image] | EurekAlert ...
01:57 grondilu This image shows a three-dimensional, hollow titanium nitride nano truss with tessellated octahedral geometry. Each unit cell is on the order of 10 microns, each strut length within the unit cell is about three to five microns, the diameter of each strut is less than one micron, and the thickness of
01:57 grondilu eurekalert.org/multimedia/pub/61477.phpMore results
01:57 grondilu NanoTruss / Truss-systems / Showtec / Highlite
01:57 grondilu ooopps
01:57 grondilu wrong paste, sorry
01:58 grondilu ugexe: my $σ0; # should fail.  Just use the unicode sigma
02:01 ugexe grondilu: yeah its not failing for me
02:02 grondilu I dunno then.
02:02 grondilu Please consider interacting with whoever wrote https://github.com/grondilu/libdigest-perl6/issues/7#issuecomment-83799274
02:02 grondilu me, I can't help much on this since I don't run Windows.
02:05 ugexe http://testers.p6c.org/reports/35961.html
02:05 ugexe mind you, all my win32 test reports are win7 (not win8 as the OS version would have you belive)
02:11 skids m: my $℘0; # Here's one that does it on linux.  Rakudo does not think it is alphanum.
02:11 camelia rakudo-moar ce69bb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ITEaUFvA9r␤Two terms in a row␤at /tmp/ITEaUFvA9r:1␤------> 3my $7⏏5℘0; # Here's one that does it on linux. ␤    expecting any of:␤        constraint␤        postfix␤        infix stopper…»
02:13 colomon .u ℘
02:13 yoleaux U+2118 SCRIPT CAPITAL P [Sm] (℘)
02:16 skids So the question is what does "uniprop('σ')" say on that install.
02:22 chenryn joined #perl6
02:28 zakharyas joined #perl6
02:37 colomon m: say uniprop(‘℘’)
02:37 camelia rakudo-moar ce69bb: OUTPUT«Sm␤»
02:38 * colomon wonders if uniprop is documented anywhere…
02:39 skids S15-unicode it appears.  But not in doc repo yet.
02:40 skids And amazingly no roasts.
02:45 skids (Not that I'm arguing for ℘ to be idenfier-legal.  Sticking to a unicode properties based lemma is probably reasonable.)
02:45 * grondilu notices S15 is in Perl 6 pod format and wonders if there is something to turn it into groff
02:45 grondilu (as with pod2man, that is)
02:46 * grondilu wonders if Pod::Man should not be added to the most wanted modules
03:01 kurahaupo1 joined #perl6
03:09 japhb Awww, Inline::Python failed on install.  :-(
03:10 japhb Looks like lots of tests failing because of array call issues
03:13 noganex joined #perl6
03:32 dj_goku joined #perl6
03:35 skids m: sub f (uint8 $v is rw) { $v += 5; }; my $s = array[uint8].new(255); f($s[0]); $s[0].say # \o/
03:35 camelia rakudo-moar ce69bb: OUTPUT«4␤»
03:35 skids m: sub f (uint8 $v is rw) { $v += 5; }; my @s = array[uint8].new(3); f(@s[0]); @s[0].say # /o\
03:35 camelia rakudo-moar ce69bb: OUTPUT«Expected a native int argument for '$v'␤  in sub f at /tmp/PuXvPUYuSl:1␤  in block <unit> at /tmp/PuXvPUYuSl:1␤␤»
03:36 skids But all things considered, I am happy :)
03:36 skids Oh I'm being an idiot aren't I.
03:37 skids m: sub f (uint8 $v is rw) { $v += 5; }; my @s := array[uint8].new(3); f(@s[0]); @s[0].say # more \o/
03:37 camelia rakudo-moar ce69bb: OUTPUT«8␤»
03:40 avuserow japhb: I recall looking at IO.resolve but I didn't see any obvious reason that the JVM would fail but Moar would work. But I'm far from knowledgeable on that sort of thing.
04:02 FROGGS_ joined #perl6
04:07 lsm01 joined #perl6
04:17 anaeem1 joined #perl6
04:19 anaeem1 joined #perl6
04:24 sunnavy joined #perl6
04:29 ash_gti joined #perl6
04:42 jack_rabbit joined #perl6
04:46 ugexe grondilu: he is using parrot
04:47 ugexe cant believe we missed that
04:47 ash_gti joined #perl6
04:50 MMMII joined #perl6
05:05 nige joined #perl6
05:07 kaleem joined #perl6
05:10 ash_gti joined #perl6
05:24 Sqirrel joined #perl6
05:26 zakharyas joined #perl6
05:51 chenryn joined #perl6
06:04 laouji joined #perl6
06:07 laouji joined #perl6
06:22 chenryn joined #perl6
06:24 gfldex joined #perl6
06:36 [Sno] joined #perl6
06:59 alini joined #perl6
07:03 rindolf joined #perl6
07:07 diana_olhovik joined #perl6
07:20 yoleaux joined #perl6
07:24 telex joined #perl6
07:26 baest joined #perl6
07:49 Ven joined #perl6
07:50 FROGGS joined #perl6
07:52 rurban joined #perl6
07:55 FROGGS o/
07:55 * FROGGS yawns
07:55 Ven \o FROGGS
07:56 FROGGS hi Ven
07:56 sjn good *, #perl6
07:57 FROGGS I did an ecosystem smoke yesterday with 2015.03 on linux, and 75% PASS, 15% FAIL and 10% NA does not look too bad
07:57 FROGGS I also skimmed the module list and all of the "important" modules passed
07:57 FROGGS (did these tests on linux/moarvm)
07:58 nwc10 FROGGS++ # the BBC for Perl 6
07:58 FROGGS BBC?
07:58 nwc10 Bleadperl Breaks CPAN
07:59 nwc10 p5p gets reports from the BBC
07:59 nwc10 (Andreas)
07:59 nwc10 you're in Berlin too?
07:59 FROGGS ahh :o)
07:59 FROGGS ohh yes
07:59 nwc10 and you hack on PAUSE? :-)
07:59 FROGGS not at the moment, no :P
07:59 FROGGS and also not at the QA
08:00 vike joined #perl6
08:00 FROGGS http://act.qa-hackathon.org/qa2015/wiki?node=Projects
08:01 FROGGS I'm going to help out for "Perl 6 CPANish client and ecosystem", but my main concern is "Spectest coverage for "Perl 6.0.0""
08:01 FROGGS and the latter might be done at the first day... hopefully
08:02 FROGGS [Sno] also wants to do something about ffi's, but I consider the spectest/ecosystem thingy more important tbh
08:04 Rounin joined #perl6
08:05 [Sno] FROGGS: I think my discussion with you about that is about 30 minutes or so
08:05 [Sno] rest can be done remotely
08:06 FROGGS ohh, even better :o)
08:06 [Sno] I just want to give you a picture of what we discussed at fosdem and why the described way is reasonable
08:06 FROGGS for the ecosystem stuff we basically just need to achieve consensus across the parties, but the spectest thingy should probably be done at the QA
08:07 [Sno] I fully agree
08:07 FROGGS so that pmichaud++ and all others can start annotating the spectests
08:10 moritz anybody fancy doing the star release this month?
08:13 burnersk joined #perl6
08:13 FROGGS moritz: I do not fancy it but I can probably do it
08:14 darutoko joined #perl6
08:14 [ptc] joined #perl6
08:17 moritz raydiak: you module Math::ThreeD should be updated, method at_pos -> AT-POS
08:17 moritz *your
08:17 moritz masak: ^^ same for yapsi
08:18 Ven joined #perl6
08:18 moritz .tell supernovus in HTTP::Easy and XML::Query, please replace at_pos by AT-POS
08:18 yoleaux moritz: I'll pass your message to supernovus.
08:18 moritz timotimo: SDL2_Raw uses at_pos in an example; please change that to AT-POS
08:19 vike joined #perl6
08:30 rurban_ joined #perl6
08:41 sergot joined #perl6
08:42 fhelmberger joined #perl6
08:44 alini joined #perl6
08:46 kurahaupo joined #perl6
08:54 brrt joined #perl6
08:54 brrt \o
08:54 brrt anyone trying to watch the eclipse today?
08:55 FROGGS brrt: should already be dark at your place, right?
08:55 brrt no, it's just starting
08:55 brrt but it's cloudy as hell here
08:55 FROGGS I've heard it is darker in cologne already, but not so in berlin
08:55 FROGGS ohh, we've nice weather
08:55 grondilu non-cooperating weather here in France
08:56 brrt who stages an eclipse on a cloudy day
08:56 brrt really
08:56 FROGGS grondilu: https://github.com/grondilu/openssl
08:56 FROGGS err
08:56 grondilu what about it?
08:56 FROGGS grondilu: https://github.com/grondilu/openssl/pull/2
08:57 grondilu oh yeah
08:58 FROGGS I guess I'll drop two modules from mrhdies from the ecosystem, I've four unapplied PRs in his repos
08:58 FROGGS (for a year now)
08:58 FROGGS this would be about Inlib2 and IUP
08:58 FROGGS grondilu++
08:59 abraxxa joined #perl6
08:59 abraxxa no 2015.03?
09:01 FROGGS abraxxa: there is: http://rakudo.org/downloads/rakudo/
09:01 FROGGS abraxxa: compiler release though, not star yet
09:02 FROGGS brb
09:02 cschwenz joined #perl6
09:05 abraxxa FROGGS: i see
09:05 abraxxa how long is star usually delayed?
09:05 moritz "until it's done"
09:06 moritz just look at the dates of the blog posts on rakudo.org to get a feeling
09:08 dakkar joined #perl6
09:08 kaleem joined #perl6
09:08 abraxxa for my dbiish development rakudo itself is ok
09:09 coffee` joined #perl6
09:09 moritz also you can always 'panda install Task::Star' to get the modules that are shipped with star
09:13 abraxxa would you recommend the tarball or rakudobrew? i'm still switching between both
09:13 kjs_ joined #perl6
09:13 moritz rakudobrew
09:14 abraxxa ok
09:19 nige joined #perl6
09:21 baest joined #perl6
09:32 abraxxa moar built ;)
09:34 baest joined #perl6
09:36 abraxxa so point me at the right loc to improve the Cannot call 'OCIBindByName'; none of these signatures match: error message
09:46 timotimo i think the rakudo star release this month ought to refer to the solar eclipse in some way
09:47 brrt yes
09:47 brrt (any luck seeing it so far? almost nothing happened here)
09:48 timotimo yeah, i had luck
09:48 timotimo we put a small hole in a cereal box with a needle (after unfolding said box) and that gave us a few nice projections
09:48 timotimo i believe i'm much further to the south compared to you, as you're in the netherlands
09:49 timotimo oh! you are here, brrt! time to pester you about my not working repr op devirt patches %)
09:49 moritz yes, it's pretty nice here
09:49 moritz just a slice of sun remaining
09:52 timotimo http://imgur.com/PuZVakU
09:53 tinyblak joined #perl6
09:54 brrt yes, pester
09:54 timotimo http://imgur.com/KkZBewO
09:55 timotimo can you have a look at t/spec/S03-metaops/hyper.rakudo.moar and t/spec/S06-operator-overloading/workout.t ? for some reason they give "this repr doesn't support associative operations" oslt
09:55 timotimo also, one of the ops is "commented out" with a very early break statement
09:55 timotimo http://imgur.com/Jn2Xj6i
09:56 brrt i'll look
09:57 timotimo and then explain to me why there's no performance improvements, only penalties :(
09:57 espadrine joined #perl6
10:00 morjo joined #perl6
10:01 eli-se joined #perl6
10:06 dalek star: 3be6a38 | moritz++ | / (7 files):
10:06 dalek star: Prepare parrot suspension
10:06 dalek star: review: https://github.com/rakudo/star/commit/3be6a386b5
10:06 dalek star: 79d9752 | moritz++ | / (7 files):
10:06 dalek star: Merge branch 'birdless'
10:06 dalek star: review: https://github.com/rakudo/star/commit/79d9752325
10:07 dalek star: da8a9d3 | moritz++ | / (3 files):
10:07 dalek star: Bump some versions
10:07 dalek star: review: https://github.com/rakudo/star/commit/da8a9d3335
10:07 moritz m: say 42."floor"
10:08 camelia rakudo-moar ce69bb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SQKDJHt_Q6␤Quoted method name requires parenthesized arguments. If you meant to concatenate two strings, use '~'.␤at /tmp/SQKDJHt_Q6:1␤------> 3say 42."floor"7⏏5<EOL>␤»
10:09 timotimo hmm, good point
10:11 dalek star: 1ec5cfe | moritz++ | modules/ (6 files):
10:11 dalek star: Update module versions
10:11 dalek star: review: https://github.com/rakudo/star/commit/1ec5cfe54a
10:11 kjs_ joined #perl6
10:13 dalek star: 2ca0f6e | moritz++ | Configure.pl:
10:13 dalek star: Fix syntax error in Configure.pl
10:13 dalek star: review: https://github.com/rakudo/star/commit/2ca0f6ee03
10:14 timotimo brrt: http://t.h8.lv/p6bench/2015-03-20-virtual_devirtual_2.html - see the sadness for yourself
10:15 timotimo it can't be because the generated ASM is a bit roundabout, can it?
10:15 timotimo compared to non-virtual, we pass many more arguments
10:16 timotimo and the same kind of call might be made more efficiently by the gcc-generated code we've had before
10:24 masak moritz: teaching now, but might patch Yapsi tonight.
10:31 dalek Heuristic branch merge: pushed 30 commits to rakudo/newio by lizmat
10:39 chenryn joined #perl6
10:39 |Tux| joined #perl6
10:40 brrt let me see
10:44 morjo Hi. Im using "@files = dir ($folder); for @files -> $fil { my $fil_jpg = $fil; $fil_jpg ~~ s/\.jpeg$/\.jpg; }"  But then Im getting an error: Cannot call 'subst-mutate'....   Any tips?
10:50 grondilu m: say dir(".")
10:50 camelia rakudo-moar ce69bb: OUTPUT«"/home/camelia/nqp-js".IO "/home/camelia/rakudo-inst-2".IO "/home/camelia/ugexe-was-here".IO "/home/camelia/evalbot".IO "/home/camelia/test".IO "/home/camelia/.viminfo".IO "/home/camelia/rakudo-inst-1".IO "/home/camelia/rakudo-star-2015.01".IO "/home/camel…»
10:51 xfix joined #perl6
10:51 grondilu try coercing to Str with my $fil_jpg = ~$fil
10:51 grondilu m: for dir(".") { say ~$fil }
10:51 camelia rakudo-moar ce69bb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zc_xO7x4j5␤Variable '$fil' is not declared␤at /tmp/zc_xO7x4j5:1␤------> 3for dir(".") { say ~$fil7⏏5 }␤    expecting any of:␤        postfix␤»
10:52 grondilu m: for dir(".") { say ~$f_ }
10:52 camelia rakudo-moar ce69bb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5N8VTOw3M4␤Variable '$f_' is not declared␤at /tmp/5N8VTOw3M4:1␤------> 3for dir(".") { say ~$f_7⏏5 }␤    expecting any of:␤        postfix␤»
10:52 grondilu m: for dir(".") { say ~$_ }
10:52 camelia rakudo-moar ce69bb: OUTPUT«nqp-js␤rakudo-inst-2␤ugexe-was-here␤evalbot␤test␤.viminfo␤rakudo-inst-1␤rakudo-star-2015.01␤.bashrc␤.ssh␤std␤mbox␤niecza␤p2␤rakudo-star-2014.12.tar.gz␤.cpanm␤rakudo-inst␤bin␤rakudo2␤rakudo-star-2015.02␤perl5␤rakudo…»
10:52 morjo grondilu: That seems to work. Thanks :)
10:56 colomon joined #perl6
11:00 |Tux| shame that π works DWIM, but $i² (nor ($i)²) does not
11:02 FROGGS m: sub postcircumfix:<²>(\a) { a ** a }; say π²
11:02 camelia rakudo-moar ce69bb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Aa3ocQWB6P␤Not enough symbols provided for categorical of type postcircumfix; needs 2␤at /tmp/Aa3ocQWB6P:1␤------> 3sub postcircumfix:<²>7⏏5(\a) { a ** a }; say π²␤»
11:02 FROGGS m: sub postfix:<²>(\a) { a ** a }; say π²
11:02 camelia rakudo-moar ce69bb: OUTPUT«36.4621596072079␤»
11:02 FROGGS |Tux|: ^^
11:02 |Tux| :)
11:03 FROGGS |Tux|: it is just not defined yet...
11:03 |Tux| that is wrong :)
11:03 |Tux| ² = **2
11:03 FROGGS perhaps :o)
11:03 FROGGS err, yes
11:03 FROGGS m: sub postfix:<²>(\a) { a ** 2 }; say π²
11:03 camelia rakudo-moar ce69bb: OUTPUT«9.86960440108936␤»
11:05 * grondilu is not sure it should be in the core, but would not be offended if it was.
11:05 abraxxa can someone please point me at the correct file to improve the multi sub not matching error message?
11:05 grondilu after the symbol ² seems to be on most keyboards.
11:05 FROGGS well, ² only has one meaning AFAICT, so it could be in core...
11:06 |Tux| and ³
11:06 grondilu there are exponent symbols up to nine, right?
11:07 |Tux| ² and ³ are in iso-8859-1 iirc
11:07 * |Tux| checks ...
11:07 grondilu on the other hand, perl6 is not quite great to write maths anyway.
11:07 grondilu hopefully there will be a slang for it.
11:07 FROGGS abraxxa: did you provide any information on this? I don't sport it in the clogs
11:08 abraxxa FROGGS: hi! information on what?
11:08 |Tux| ² and ³ are in a lot of cp****, all iso-8859-*
11:08 abraxxa i changed CArray              $bindpp, to OCIBind             $bindpp is rw,
11:08 FROGGS abraxxa: about your "multi sub not matching error messag"
11:08 FROGGS +e
11:08 grondilu . ²
11:08 grondilu .u ²
11:08 abraxxa which should now work with 2015.03
11:08 yoleaux U+00B2 SUPERSCRIPT TWO [No] (²)
11:09 FROGGS abraxxa: how shall I point you to a file if I dont even see a backtrace?
11:09 abraxxa FROGGS: ack found it in src/core/Exception.pm line 1589
11:09 FROGGS abraxxa: I mean, I could (somehow) point to your harddisk but that's not quite helpful
11:09 abraxxa i want rakudo to give a better error message
11:09 abraxxa no harddisk here ;)
11:09 FROGGS ahh, now I got it
11:09 FROGGS :o)
11:10 abraxxa does the dispatcher object provide information on what matched and what didn't?
11:10 FROGGS so you want to do what larry proposed yesterday?
11:10 abraxxa maybe, not sure if I was around when he wrote something regarding this
11:11 grondilu m: sub prefix:<√> { sqrt $_ }; say √pi
11:11 camelia rakudo-moar ce69bb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/adjIdKS_u9␤Calling 'prefix:<√>' will never work with argument types (Num)␤    Expected: :()␤at /tmp/adjIdKS_u9:1␤------> 3sub prefix:<√> { sqrt $_ }; say 7⏏5√pi␤»
11:11 abraxxa if you have 10 params like I do it's quite hard to figure out which one didn't match
11:11 grondilu m: sub prefix:<√> { sqrt $^x }; say √pi
11:11 camelia rakudo-moar ce69bb: OUTPUT«1.77245385090552␤»
11:12 grondilu std: { $^ }
11:12 camelia std 28329a7: OUTPUT«5===SORRY!5===␤Bogus term at /tmp/kOrnVZzdaT line 1:␤------> 3{ $^ 7⏏5}␤Parse failed␤FAILED 00:00 138m␤»
11:12 * grondilu kind of expected $^ to mean 'anonymous self-declared parameter'
11:13 abraxxa FROGGS: can't find it in my backlog
11:14 FROGGS abraxxa: http://irclog.perlgeek.de/perl6/2015-03-19#i_10306728
11:14 abraxxa LTA?
11:14 FROGGS less than awesome
11:15 |Tux| FROGGS, https://gist.github.com/Tux/5d19ab1758e6b37538ae
11:15 |Tux| just built from git
11:15 FROGGS |Tux|: you forgot to start with 'sub '
11:16 |Tux| :(
11:16 * |Tux| hides in shame
11:16 FROGGS :D
11:17 FROGGS abraxxa: btw, turning ':(Int $, Str $)' into ':(Int, Str)' as TimToady suggested mean tweaking the gist method of Signature I think
11:18 FROGGS m: say :(Int, Str).gist
11:18 camelia rakudo-moar ce69bb: OUTPUT«:(Int $, Str $)␤»
11:18 FROGGS yeah
11:18 FROGGS we can drop the $ if it really is only $
11:18 FROGGS (and not slurpy or so)
11:18 abraxxa no idea what you're talking about, sorry
11:18 kaleem joined #perl6
11:19 abraxxa my NativeCall method definition has varnames so I can recall what to pass where
11:19 FROGGS abraxxa: you wanting to improve the error message TimToady was talking about, no?
11:19 abraxxa you mean it should be possible to remove them and only define the types?
11:19 FROGGS err, no
11:19 FROGGS abraxxa: what are you up to?
11:19 abraxxa i want to improve "Cannot call 'OCIBindByName'; none of these signatures match:"
11:20 abraxxa because it lists the available multi subs which don't help me really because I can look at them in the source and they only make the error message longer
11:20 FROGGS okay, that a related error message, but not quite the one I was talkign about
11:20 abraxxa i want it to tell me the name of the method and which of the params failed a match
11:20 FROGGS hmmmm
11:20 FROGGS can you gist an example?
11:21 abraxxa or highlight the matched for each multi sub at least
11:21 abraxxa at the bottom: https://gist.github.com/abraxxa/c0f5cf283a90e143c286
11:21 FROGGS maybe we should fake up how we'd wish this error message should look like, and think about how we get there
11:21 abraxxa yes, good plan
11:22 abraxxa but that might depend on what's possible
11:22 abraxxa i'd say failing on the first non-match and reporting it is ok
11:22 moritz that's not how multi dispatch works
11:22 FROGGS ahh, your error message is infact about the same thing like "my" error message... just thrown from different places so that's why they look different
11:25 FROGGS your message could also state: Calling 'OCIBindByName' will never work with argument types (Pointer, Pointer, int32, ...)\nExpected any of:\n
11:25 FROGGS so we can potentially unify both error messages
11:32 kjs_ joined #perl6
11:32 rurban joined #perl6
11:50 Ven joined #perl6
11:56 eli-se joined #perl6
11:59 cdc_ joined #perl6
11:59 cdc_ Hello #perl6
11:59 FROGGS hi cdc_
11:59 cdc_ perl6: say { True }.count
11:59 camelia rakudo-moar ce69bb: OUTPUT«1␤»
12:00 cdc_ o/ FROGGS
12:00 cdc_ I was expecting 0 ^^
12:00 cdc_ ie .count == .arity
12:01 cdc_ do I hit a bug?
12:01 FROGGS m: say say { True }.WHAT
12:01 camelia rakudo-moar ce69bb: OUTPUT«(Block)␤True␤»
12:01 FROGGS m: say { True }.signature
12:01 camelia rakudo-moar ce69bb: OUTPUT«:($_? is parcel)␤»
12:01 FROGGS m: say { True }.signature.arity
12:01 camelia rakudo-moar ce69bb: OUTPUT«0␤»
12:01 psch m: say ({ True })(1)
12:01 camelia rakudo-moar ce69bb: OUTPUT«True␤»
12:01 FROGGS count seems to be about something else
12:02 psch m: say ({ True })(1, 2)
12:02 camelia rakudo-moar ce69bb: OUTPUT«Too many positionals passed; expected 0 or 1 arguments but got 2␤  in block <unit> at /tmp/7ZuB3vO9Vi:1␤␤»
12:02 psch o/
12:02 psch any block can take $_ from the outside, no?
12:02 FROGGS ahh, yes
12:02 FROGGS and the signature even shows it
12:02 abraxxa FROGGS: anything i can do to help?
12:03 FROGGS well, do what I said :o)
12:04 FROGGS you sketch how it should look like, and then you try to implement the changes in rakudo
12:04 psch m: sub f(*@a) { }; say &f.arity; say &f.count
12:04 camelia rakudo-moar ce69bb: OUTPUT«0␤Inf␤»
12:05 psch cdc_: .arity is the minimum number of positionals, .count is the maximum number of positionals
12:06 cdc_ psch: I didn't understand the $_? thing at first, thanks!
12:07 cdc_ perl6: say (sub { True }).count
12:07 camelia rakudo-moar ce69bb: OUTPUT«0␤»
12:07 cdc_ that what's I need it seems
12:07 cdc_ *that's what
12:15 lichtkind joined #perl6
12:15 abraxxa i was hoping moritz could give me an insight how multi subs work so I don't design somthing that won't work
12:17 noganex joined #perl6
12:18 FROGGS maybe that helps: https://github.com/perl6/book/blob/master/src/multi-dispatch.pod
12:19 FROGGS and also: http://blogs.perl.org/users/tyler_curtis/2010/08/age-discrimination-in-perl-6-using-subsets-and-multiple-dispatch.html
12:20 dalek rakudo-star-daily: db091eb | coke++ | log/ (9 files):
12:20 dalek rakudo-star-daily: today (automated commit)
12:20 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/db091ebf4a
12:21 tinyblak joined #perl6
12:21 Ven joined #perl6
12:25 raiph joined #perl6
12:28 brrt timotimo, no idea why it's slower
12:33 abraxxa FROGGS: i'll look into it next week
12:35 rindolf joined #perl6
12:48 anaeem1 joined #perl6
12:53 abraxxa FROGGS: when i define a ub4 var with value 0 and pass it instead of the OCI_DEFAULT constant i get Cannot invoke object with invocation handler in this context
12:53 abraxxa makes me think that now multi dispatch works but this triggers a different error
12:58 FROGGS can you gist the backtrace?
12:58 FROGGS I mean, it must point to some line number
12:58 abraxxa the OCIBindByName call
12:59 abraxxa in sub OCIBindByName at /home/ahartmai/perl6/git/DBIish/lib/DBDish/Oracle.pm6:135 # the first multi sub definition
12:59 abraxxa in method execute at /home/ahartmai/perl6/git/DBIish/lib/DBDish/Oracle.pm6:424 # the call of the multi sub
13:01 abraxxa when i pass a var for which $v.^name() returns 'Int' I get NativeCall op sizeof expected type with CPointer, CStruct, CArray, P6int or P6num representation, but got a P6opaque
13:02 FROGGS what's $v.REPR?
13:02 FROGGS ahh nvm, p6oaque
13:02 abraxxa Cannot find method 'Str': no method cache and no .^find_method
13:02 FROGGS you cannot call natviesizeof of an big integer (Int)
13:03 abraxxa BTW $v ~~ long doesn't match an Int
13:03 FROGGS correct
13:03 abraxxa i think the type matching should use the Perl 6 types and convert those to C types
13:03 FROGGS m: use NativeCall; say long ~~ Int
13:03 camelia rakudo-moar ce69bb: OUTPUT«True␤»
13:03 FROGGS m: use NativeCall; say Int ~~ long
13:03 camelia rakudo-moar ce69bb: OUTPUT«False␤»
13:03 FROGGS see
13:04 abraxxa can that be translated to: 'can the left type be represented by the right one'?
13:04 abraxxa so a long can be converted to an Int but not the other way round?
13:05 arnsholt That's how subclasses normally work, yeah =)
13:05 abraxxa what C type do I need to be able to pass an Int? long long?
13:05 FROGGS that... does not make much sense
13:06 psch abraxxa: some kind of bigint, but you'd have to convert manually i think
13:06 abraxxa based on the Perl 6 type I have to decide how to pass the value to the C lib
13:06 FROGGS you can pass a integer value to a function that takes an int8, int16, int32, long and longlong
13:06 * abraxxa looks at Pg and SQLite binding
13:07 arnsholt Have you made sure that it's not something going wrong with NativeCall and multis?
13:07 abraxxa arnsholt: i've disabled multi dispatch for now because I can't get it to work
13:08 FROGGS m: use NativeCall; sub malloc(long) returns OpaquePointer is native { * }; my Int $biginteger = 42; my $ptr = malloc($biginteger); say $ptr
13:08 camelia rakudo-moar ce69bb: OUTPUT«Pointer<0x4bb5c00>␤»
13:08 FROGGS abraxxa: do you see what I mean? ^^
13:09 abraxxa FROGGS: you can pass a P6 Int to a C long?
13:09 arnsholt abraxxa: Disabled multi dispatch? You mean you made the subs not multi, or something else?
13:09 abraxxa arnsholt: yes, like before just a single method
13:09 masak btw, re http://irclog.perlgeek.de/perl6/2015-03-16#i_10288676
13:09 masak it was ALGOL 60
13:09 arnsholt IIRC Int gets converted to 64-bit
13:09 masak arnsholt came closest with ALGOL 68
13:09 abraxxa FROGGS: that showed that OCIBind             $bindpp is rw, doesn't seem to work, I had to revert to CArray[OCIBind]     $bindpp, and assign an array that i pass
13:10 arnsholt Oh, I was meaning to go through the logs to find the answer. Thanks!
13:10 arnsholt masak: But that quote is from an internet essay of some kind, no?
13:10 abraxxa FROGGS: so what do you propose to handle that?
13:10 arnsholt I think I've read it, which helped =)
13:11 FROGGS abraxxa: yes, you can pass an Int to a long param because long isa Int
13:11 masak arnsholt: seems to be from http://web.eecs.umich.edu/~bchandra/courses/papers/Hoare_Hints.pdf
13:11 masak (and so it was C.A.R. Hoare who said it)
13:11 abraxxa FROGGS: but Int ~~ long still returns true?!
13:11 masak teaching &
13:11 FROGGS m: use NativeCall; say Int ~~ long
13:11 camelia rakudo-moar ce69bb: OUTPUT«False␤»
13:12 FROGGS abraxxa: no
13:12 abraxxa i meant false
13:12 FROGGS ó.ò
13:12 abraxxa which i don't understand if it is the same
13:12 FROGGS m: use NativeCall; say long ~~ Int
13:12 camelia rakudo-moar ce69bb: OUTPUT«True␤»
13:12 FROGGS m: use NativeCall; say long.^mro
13:12 camelia rakudo-moar ce69bb: OUTPUT«(long) (Int) (Cool) (Any) (Mu)␤»
13:13 FROGGS see?
13:13 abraxxa my thinking was: test the P6 type against the C type I use to pass it and use ~~ to check if it is able to
13:13 FROGGS a long inherits from Int
13:13 FROGGS so you can pass an Int to a long param
13:13 abraxxa so my if/elsif tree is wrong?
13:13 abraxxa if $v ~~ Int {
13:13 abraxxa it should be the other way round?
13:13 abraxxa where are the docs for the ~~ operator?
13:14 abraxxa http://doc.perl6.org/language/operators#infix_~~
13:14 abraxxa RHS.ACCEPTS(LHS)
13:14 abraxxa Int.ACCEPTS(long) returns false?
13:14 abraxxa why?
13:15 psch m: use NativeCall; say Int.ACCEPTS(long)
13:15 camelia rakudo-moar ce69bb: OUTPUT«True␤»
13:15 psch m: use NativeCall; say long ~~ Int
13:15 camelia rakudo-moar ce69bb: OUTPUT«True␤»
13:15 rurban joined #perl6
13:16 FROGGS abraxxa: it does not help to mix up true and false :/
13:16 FROGGS (or left and right for that matter)
13:16 abraxxa my RHS are types and the LHS (typed) variables
13:16 abraxxa is the smartmatch operator the correct way?
13:16 psch m: use NativeCall; my long $x = 5; say $x ~~ Int
13:16 camelia rakudo-moar ce69bb: OUTPUT«True␤»
13:17 skids joined #perl6
13:17 FROGGS abraxxa: yes, smart match is fine
13:18 FROGGS abraxxa: but the question is, what do you want to achieve there?
13:18 FROGGS what if the user passes an Int with value 42? what do you want to do then?
13:18 abraxxa in words: can the var be passed as integer/float/string
13:18 FROGGS yes, sure
13:18 abraxxa because that's what OCI differentiates when binding
13:19 FROGGS if it is *only* about int/num/str distinction, then you smart match agains Int, Num and Str
13:19 abraxxa i want to bind as an integer and tell OCI it's of type SQLT_INT
13:19 FROGGS because:
13:19 abraxxa not Rat?
13:19 FROGGS m: my int8 $a; say $a ~~ Int
13:19 camelia rakudo-moar ce69bb: OUTPUT«True␤»
13:20 FROGGS hmm, probably Int, Real, Str
13:20 abraxxa ok, and how do i find the length in bytes for the numeric types?
13:20 abraxxa i'd thought nativesizeof on the p6 var
13:21 abraxxa but that gives me 'NativeCall op sizeof expected type with CPointer, CStruct, CArray, P6int or P6num representation, but got a P6opaque'
13:21 abraxxa for an Int
13:21 abraxxa m: use NativeCall; my Int $v = 1; say nativesizeof($v);
13:21 camelia rakudo-moar ce69bb: OUTPUT«NativeCall op sizeof expected type with CPointer, CStruct, CArray, P6int or P6num representation, but got a P6opaque␤  in sub nativesizeof at lib/NativeCall.pm:423␤  in block <unit> at /tmp/VnuDwBQy3z:1␤␤»
13:21 FROGGS abraxxa: there is no nativesive for an Int, because that has no representation in C
13:22 abraxxa to what does NativeCall convert it then?
13:22 arnsholt On call, an Int is converted into a 64-bit int IIRC
13:22 FROGGS abraxxa: but if you are going to pass all values that inherit from Int as long (or longlong), then do nativesizeof(long) or nativesizeof(longlong)
13:22 abraxxa I've used 'long' for the multi method definition
13:22 FROGGS arnsholt: grr, stop!
13:22 FROGGS arnsholt: it is not a good idea to mix that up
13:23 FROGGS Int has nothing to do with C
13:23 arnsholt FROGGS: Well, last I looked at the code, that's what happens
13:23 abraxxa FROGGS: what i don't like about the multi sub is the separation of the if/elsif and the multi sub definition
13:23 FROGGS arnsholt: it is what happens, but it should be disallowed
13:23 FROGGS abraxxa: I'd say that you can refactor it when it works
13:24 abraxxa FROGGS: as the OCI docs you linked yesterday at say that SQLT_INT can go from char up to longlong, should I use longlong to be able to pass very large numbers?
13:24 FROGGS abraxxa: that might be sane
13:25 abraxxa same for the floats to use double instead of float?
13:25 FROGGS yes
13:25 abraxxa hm, i've used num32 for the floats
13:25 FROGGS otherwise you'd have to check in what type your value fits into
13:26 FROGGS use num64 for double
13:26 FROGGS but you also need to pass the correct type id
13:26 FROGGS so oracle knows you are passing a double there
13:26 abraxxa ok, so far so good
13:27 abraxxa now we need to make multi dispatch work because I now can't pass an Int to the one method which i've defined as Str is encoded(utf8)
13:27 abraxxa even if i only have a single multi sub for the string type it doesn't match without changing anything else
13:28 FROGGS abraxxa: you can also give them three different names... bindparam_int, bindparam_num, bindparam_str
13:29 FROGGS and give them via 'is symbol' the right symbol
13:29 abraxxa oh, changing the typed CArray to just a CArray results in Cannot invoke object with invocation handler in this context
13:29 abraxxa FROGGS: yeah, that's the intermediate solution i'm opting for
13:30 abraxxa FROGGS: the 'is rw' for Pointers seems to still not work
13:30 abraxxa constant OCIBind        = OpaquePointer;
13:30 abraxxa should i use Pointer instead?
13:30 FROGGS the 'is rw' is *not* for pointers
13:31 abraxxa you said it will for 2015.03 yesterday?!
13:31 FROGGS it is for int8 and friends
13:31 abraxxa to get rid of my @bindpp := CArray[OCIBind].new; @bindpp[0]  = OCIBind;
13:31 abraxxa and replace it with my OCIBind $bindpp;
13:31 abraxxa maybe I misunderstood you yesterday on this
13:32 abraxxa i often need to pass pointer to pointers in OCI
13:34 thilp joined #perl6
13:34 anaeem1 joined #perl6
13:34 kjs_ joined #perl6
13:35 FROGGS abraxxa: 'longlong $valup is rw' will result in a long long* in C, *but*, the good about this is that you just pass an integer to that function and it will work
13:36 abraxxa FROGGS: yeah, understood that
13:36 abraxxa i just need it for pointers too
13:36 abraxxa for return by pointer
13:36 FROGGS the return type is something different
13:36 FROGGS there you can return a Pointer, and cast that
13:36 rjbs Is "nom" still the branch I want when I want to install latest?
13:36 timotimo yup
13:37 rjbs Holy cow there are a lot of merge commits!
13:37 timotimo hehe, possibly the newio branch
13:38 abraxxa FROGGS: you pass pointers to the function which will be filled by a pointer to an object
13:38 abraxxa FROGGS: the OCI functions all return an sword
13:38 abraxxa you pass it pointers to an error handle, bind handle, etc
13:39 abraxxa i tried setting $method to the methodname and calling my $errcode = $method()
13:39 FROGGS there you still need CArray I think
13:39 abraxxa i'm sure that's supported but my syntax is wrong
13:39 abraxxa FROGGS: ok
13:40 abraxxa the error i get is Cannot find method 'postcircumfix:<( )>'
13:40 nebuchadnezzar joined #perl6
13:40 FROGGS I should try if passing a Pointer[Pointer] works, but cannot guide you to do that :o)
13:40 FROGGS abraxxa: when you do what?
13:40 FROGGS you cannot just throw error messages around and dont talk about what you did
13:40 abraxxa i now have three different methods OCIBindByName_Int, OCIBindByName_Real and OCIBindByName_Str
13:41 abraxxa in the if/elseif block i decide which to call later and store its name in $method
13:41 abraxxa FROGGS: i did: (14:39:35) abraxxa: i tried setting $method to the methodname and calling my $errcode = $method()
13:41 FROGGS but these are not methods, right?
13:41 hahainternet joined #perl6
13:42 abraxxa they are
13:42 FROGGS these should be subroutines, really
13:42 abraxxa yes, sorry
13:42 abraxxa they are subs
13:42 FROGGS good
13:42 FROGGS you exactly do you store something $method?
13:43 abraxxa the name
13:43 abraxxa for example $method = 'OCIBindByName_Int';
13:43 FROGGS you cannot invoke a string just like that
13:44 FROGGS m: sub foo { say 42 }; my $sub = 'foo'; $sub()
13:44 camelia rakudo-moar ce69bb: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤  in block <unit> at /tmp/FS1GsVH3XX:1␤␤»
13:44 FROGGS m: sub foo { say 42 }; my $sub = 'foo'; "$sub"()
13:44 camelia rakudo-moar ce69bb: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤  in block <unit> at /tmp/YsEOa_PTrH:1␤␤»
13:44 FROGGS m: sub foo { say 42 }; my $sub = 'foo'; ::($sub)()
13:44 camelia rakudo-moar ce69bb: OUTPUT«===SORRY!===␤No such symbol 'foo'␤»
13:44 FROGGS m: sub foo { say 42 }; my $sub = 'foo'; ::('&' ~ $sub)()
13:44 camelia rakudo-moar ce69bb: OUTPUT«42␤»
13:44 FROGGS erks
13:44 FROGGS m: sub foo { say 42 }; my $sub = &foo; $sub()
13:44 camelia rakudo-moar ce69bb: OUTPUT«42␤»
13:44 FROGGS that's how you want to do it
13:44 FROGGS m: sub foo { say 42 }; my &sub = &foo; &sub()
13:44 camelia rakudo-moar ce69bb: OUTPUT«42␤»
13:44 FROGGS or even like that
13:45 abraxxa works
13:45 abraxxa Unknown type longlong used in native call.
13:45 abraxxa the NativeCall docs mention longlong
13:46 FROGGS I bet you are using and old NativeCall.pm from somewhere
13:46 abraxxa I've built 2015.03
13:46 abraxxa long works
13:47 FROGGS m: use NativeCall; say longlong
13:47 camelia rakudo-moar ce69bb: OUTPUT«(longlong)␤»
13:47 abraxxa 4.85 of type Rat gives me This type cannot unbox to a native number
13:47 pecastro_ joined #perl6
13:47 moritz yes, you have to coece to Num
13:47 FROGGS abraxxa: call .Num on it
13:48 abraxxa nice ORA-01024: invalid datatype in OCI call
13:48 eli-se joined #perl6
13:48 abraxxa i'll commit that because I have to go
13:49 FROGGS now I need some coffee and skrillex to come down... having a cold sucks
13:49 FROGGS I can't think properly :o(
13:51 abraxxa FROGGS: pushed
13:51 abraxxa FROGGS: get well soon!
13:51 abraxxa bye!
13:52 iv I wrote a quick web page checker yesterday. Things just worked. I used panda to install HTTP::UserAgent and used cperl-mode in Emacs. Great experience for a newbie to the language.
13:52 moritz iv: wow, that's good to hear
13:52 TimToady \o/
13:53 iv I especially liked that there's FRP support in the standard library.
13:53 Ulti iv out of interest how did you get your copy of Rakudo?
13:53 moritz iv: please blog about it
13:53 Ulti ^
13:53 TimToady .oO(fantasy role playing?)
13:53 moritz functional reactive programming?
13:53 iv Ulti: I used rakudo star from git on OS X.
13:54 moritz .oO( fast, responsive perl )
13:54 iv Yes, functional reactive programming, i.e. Supply.
13:54 Ulti iv cool, were you aware of any other options?
13:54 * Ulti should make a questionnaire >:3
13:55 iv Ulti: I had rakudo star installed via homebrew first, but running panda gave me an error. I think it said that there were no writable installation directories. It might have been an old version, though.
13:55 Ulti hmmm I've not used the brew install myself but good to know there is an issue with it
13:56 kjs_ joined #perl6
13:56 Ulti iv there is also rakudobrew which makes the git install and update a little easier
13:57 iv Thanks, I didn't know about that.
13:57 iv It was really easy to build rakudo star, though. I assume rakudobrew isn't tied to star releases, though
13:58 Ulti no you choose a version otherwise it gets you the latest commit
13:59 Ulti well the latest commit to the nom branch
13:59 Ulti iv the nice thing is if you want several versions and backends it lets you manage that in the same style as perlbrew
13:59 iv Nod, though I don't see I need that
14:00 Ulti really I should start making sure code snippets I post online work with the star release
14:00 iv Another thing I liked was the stringification of Match
14:00 moritz the one thing that rakudobrew doesn't give you is the mapping of compiler versions to module versions
14:01 Ulti moritz I thought you had different module installs for each compiler version though?
14:01 moritz Ulti: yes. But if you you rakudobrew build moar 2014.01, and then panda install Task::Star, it'll give you today's star modules with the compiler from 2014.01
14:02 moritz Ulti: well, it'll try. And fail horribly
14:02 Ulti ahh yeah
14:02 iv Sorry, I meant Match.trim, not stringification.
14:02 iv Er.
14:02 iv Match.gist
14:02 moritz iv: Match.gist?
14:02 Ulti does panda understand versions yet?
14:02 iv There we go. Sheesh.
14:02 * moritz too slow
14:02 FROGGS Ulti: no
14:02 Ulti does it have to be a tag in the git repo?
14:02 Ulti ahh ok
14:10 |Tux| RFC7111 finished
14:10 retupmoca joined #perl6
14:13 iv So, I just installed rakudobrew and built moar and panda. Now running `panda` gives me nothing on the terminal. It doesn't terminate either.
14:13 iv It's not using any CPU.
14:13 FROGGS it should print its usage
14:14 iv Yep, Rakudo Star's version does that.
14:15 moritz iv: maybe it's trying to fetch project.json, and hangs?
14:15 moritz I mean, the network or DNS hangs?
14:15 iv Maybe, yeah.
14:15 iv `panda --help` hangs too, so I can't see if I can give it debug flags
14:18 iv `curl http://ecosystem-api.p6c.org/projects.json` works. Strange.
14:21 timotimo it's very unfortunate that panda hangs for the ecosystem thingie even when you don't actually need it
14:21 eli-se joined #perl6
14:21 timotimo maybe that part ought to be exported to be done by a promise? or maybe a lazily loaded scalar with a proxy?
14:21 iv Hm. I wanted to see if IO::Socket::INET.send has a timeout, but Rakudobrew didn't install a p6doc.
14:21 hoelzro doesn't panda get mad if you have IPv6 set up, but no routing?
14:22 timotimo yeah, you'd install p6doc manually
14:22 hoelzro I've noticed panda problems when that's my situation
14:22 timotimo mhm :(
14:22 iv Maybe Star is the better installation mechanism for me :)
14:23 moritz panda install doc
14:23 moritz oh wait, panda doesn't work for you :(
14:24 moritz http://doc.perl6.org/type/IO::Socket#method_send
14:24 moritz no timeout
14:27 hoelzro moritz: did you get a chance to think about how to add introspection to the linenoise completion branch?
14:27 iv https://github.com/tadzik/panda/issues/140 This is the issue I had with Homebrew's panda.
14:27 hoelzro I don't mind doing the work, I just need to know how to accomplish it
14:28 iv And this is the bug about `panda --help` needing network access: https://github.com/tadzik/panda/issues/64
14:28 iv I was going to submit new bugs but as they already exist, I suppose I should submit PRs instead…
14:29 iv Ah. Does Panda have to run on all backends?
14:29 iv Relevant in case there are concurrency differences.
14:29 moritz hoelzro: not really, sorry. Only that it should probably go through OUTERS::
14:29 moritz hoelzro: or LEXICAL::
14:29 moritz m: my $x = 42; say LEXICAL::<$x>
14:29 camelia rakudo-moar ce69bb: OUTPUT«42␤»
14:29 hoelzro moritz: no worries; I didn't have time for it last night, and I don't think I will until Sunday (maybe)
14:30 moritz m: my $x = 42; say LEXICAL::<&sin>(pi/2)
14:30 camelia rakudo-moar ce69bb: OUTPUT«1␤»
14:30 moritz m: say LEXICAL::.keys.grep(*.name.match(/sin/))
14:30 camelia rakudo-moar ce69bb: OUTPUT«No such method 'name' for invocant of type 'Str'␤  in whatevercode  at /tmp/JF8J7D1g9s:1␤  in block  at src/gen/m-CORE.setting:1882␤  in method reify at src/gen/m-CORE.setting:9618␤  in block  at src/gen/m-CORE.setting:9454␤  in method reify at s…»
14:30 moritz m: say LEXICAL::.keys.grep(Callable & *.name.match(/sin/))
14:30 camelia rakudo-moar ce69bb: OUTPUT«␤»
14:30 moritz m: say LEXICAL::.keys[^20]
14:30 camelia rakudo-moar ce69bb: OUTPUT«$! $/ $_ GLOBALish EXPORT $?PACKAGE ::?PACKAGE $=pod !UNIT_MARKER␤»
14:31 anaeem1_ joined #perl6
14:31 moritz m: say OUTERS::.keys[^20]
14:31 camelia rakudo-moar ce69bb: OUTPUT«␤»
14:31 moritz hm
14:31 moritz guess I need to study those a bit more
14:32 eli-se joined #perl6
14:33 cdc_ sub a { !!! }; a(); CATCH { say .WHAT }
14:33 cdc_ perl6: sub a { !!! }; a(); CATCH { say .WHAT }
14:33 camelia rakudo-moar ce69bb: OUTPUT«(X::AdHoc)␤Stub code executed␤  in sub a at /tmp/tmpfile:1␤  in block <unit> at /tmp/tmpfile:1␤␤»
14:33 cdc_ I was expecting something like X::Stub instead
14:33 * [Coke] hears "homebrew has rakudo" and tries to find out if this is true. homebrew's main page doesn't help me answer this question.
14:33 moritz +1
14:34 anaeem1 joined #perl6
14:34 Ven [Coke]: https://github.com/Homebrew/homebrew/blob/a76ec51b34d73449554ddd2013ae9fd0257ef9d6/Library/Formula/rakudo-star.rb
14:35 [Coke] yes, found it thanks to github search. Thanks.
14:35 [Coke] Don't recall that being mentioned here before.
14:36 anaeem1 joined #perl6
14:38 ugexe ugh, that delete PANDA_SUBMIT_TESTREPORTS in panda randomly borks my smoke tests :(
14:42 dalek rakudo/nom: 6851a1f | TimToady++ | src/Perl6/Actions.nqp:
14:42 dalek rakudo/nom: fix busted indentation in make_yada
14:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6851a1fde8
14:42 TimToady cdc_: I think it's that way for parallelism between warn, fail, and die cases, see make_yada ^^^
14:45 TimToady m: warn X::NYI.new(:feature<Stub code>);   # can you warn with an exception?
14:45 camelia rakudo-moar ce69bb: OUTPUT«Stub code not yet implemented. Sorry.   in block <unit> at /tmp/owx9GvQ5sl:1␤␤»
14:46 TimToady I guess you can
14:46 TimToady there is no X::Stub yet, feel free to add one
14:52 rurban joined #perl6
14:55 hoelzro ok, I'll give those a shot when I find some time
14:56 molaf joined #perl6
14:56 hoelzro [Coke]: I used to maintain that formula until I stopped using a macbook
14:56 rmgk_ joined #perl6
15:01 cdc_ TimToady: thanks, I'll take a look at it.
15:09 FROGGS[mobile] joined #perl6
15:19 rmgk_ joined #perl6
15:20 FROGGS[mobile] TimToady: what would be your reaction to a postfix:<*> exported by NativeCall?
15:21 FROGGS[mobile] hmmm, that would not even work in attribute or parameter declarations...
15:22 * TimToady thinks that wildly adopting C syntax is likely to turn Perl 6 into C :/
15:24 psch https://gist.github.com/peschwa/8969d227fb3b2e799e92 \o/
15:25 psch r-j uses CLASSPATH quite differently than presumably intended though, which means the CLASSPATH any run-perl6-from-java project needs has to be somewhat unusual
15:25 [particle] joined #perl6
15:25 * psch wonders where to doc that
15:26 FROGGS[mobile] I just dont want to write Pointer[foo] everywhere
15:28 FROGGS[mobile] 'is rw' works fine in params, but means something else for attrs for example
15:30 * hoelzro .oO( OUTERS:: just makes me think of "ouders" )
15:31 hoelzro m: say OUDERS::<moeder>
15:31 camelia rakudo-moar 6851a1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dawE0ataW8␤Variable '&OUDERS' is not declared␤at /tmp/dawE0ataW8:1␤------> 3say 7⏏5OUDERS::<moeder>␤»
15:31 hoelzro didn't think so =)
15:32 hoelzro the issue with LEXICAL and OUTERS is that it's the lexical/outer scopes of the completion routine, not the REPL itself
15:32 hoelzro is there a way we could get *that*?
15:33 * hoelzro actually has no idea on how my $var works in the REPL
15:34 Ven https://gist.github.com/vendethiel/fc7a5de4738da4c2f70b converted from awk https://github.com/rightfold/tools/blob/master/todo.awk
15:35 TimToady hoelzro: poorly
15:35 hoelzro =(
15:35 dalek Heuristic branch merge: pushed 219 commits to rakudo/eval-server-improvements by peschwa
15:36 dalek Heuristic branch merge: pushed 36 commits to nqp/eval-server-improvements by peschwa
15:36 [particle]1 joined #perl6
15:37 eli-se joined #perl6
15:41 arnsholt hoelzro: Black magic, more or less =)
15:41 arnsholt (Basically, the REPL code keeps adding outer scopes to each successive line in the REPL)
15:42 hoelzro whoa
15:45 nige joined #perl6
15:45 dalek Heuristic branch merge: pushed 38 commits to nqp by peschwa
15:46 psch uh
15:46 psch that's probably not right :/
15:46 arnsholt hoelzro: https://github.com/perl6/nqp/blob/master/src/HLL/Compiler.nqp#L97 is the line that actually does the eval
15:48 hoelzro thanks arnsholt
15:48 dalek nqp: 9d3e790 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/tools/EvalServer.java:
15:48 dalek nqp: Revert "Merge branch 'eval-server-improvements'"
15:48 dalek nqp:
15:48 dalek nqp: This reverts commit b771669cf71b15f62c9406e751e4ff8432f11a3f, reversing
15:48 dalek nqp: changes made to 29758294da90027fec88385987ae5c16f9e288be.
15:48 dalek nqp: review: https://github.com/perl6/nqp/commit/9d3e7908cb
15:48 telex joined #perl6
15:49 hoelzro arnsholt: what actually calls CTXSAVE, though?
16:01 dalek nqp: 34fdea8 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/tools/EvalServer.java:
16:01 dalek nqp: Simplify running NQP code from Java.
16:01 dalek nqp:
16:01 dalek nqp: This adds two 'run' methods to the EvalServer which lets us use the EvalServer
16:01 dalek nqp: from any Java application.
16:01 dalek nqp: review: https://github.com/perl6/nqp/commit/34fdea8549
16:01 dalek rakudo/nom: 8ffcb2d | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoEvalServer.java:
16:01 dalek rakudo/nom: Add a RakudoEvalServer to call Rakudo from Java.
16:01 dalek rakudo/nom:
16:01 dalek rakudo/nom: This builds on the NQP EvalServer and simplifies the Interface.
16:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8ffcb2d4fa
16:01 dalek rakudo/nom: 8c0ff7f | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoEvalServer.java:
16:01 dalek rakudo/nom: Only search until we found it
16:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8c0ff7f04d
16:02 skids joined #perl6
16:03 arnsholt hoelzro: One of the action methods in the HLL's grammar, IIRC
16:03 arnsholt Possibly some interpolated code in the Grammar
16:03 hoelzro I see
16:03 arnsholt It's pretty clever, if a bit mindbending when you try to figure out the code =)
16:04 arnsholt The same mechanism is used to supply an outer context to string evals
16:04 dalek rakudo/nom: 970b89e | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoEvalServer.java:
16:04 dalek rakudo/nom: Document neccessary CLASSPATH entries.
16:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/970b89ef74
16:05 hoelzro ah ha
16:07 anaeem1_ joined #perl6
16:07 hoelzro NativeCall doesn't support var arg functions, does it?
16:07 arnsholt Not really
16:08 hoelzro =/
16:08 arnsholt Although I guess you could hack it in with a lot of subs with different signatures all mapping to the same native symbol
16:08 arnsholt Depends on if it's printf levels of varargs, or a bit less volatile than that
16:09 hoelzro arnsholt: it's just fcntl
16:11 japhb Varargs though has a special argument passing convention, doesn't it?
16:12 japhb You'd have to hack that as well
16:12 mr-foobar joined #perl6
16:12 FROGGS[mobile] hoelzro: dyncall supports it btw
16:13 hoelzro I figured it would; it would just be a matter of getting our usage of it to support it as well
16:13 hoelzro now that NativeCall is core, should bugs with it go into RT?
16:14 Ven joined #perl6
16:15 eli-se joined #perl6
16:17 muraiki joined #perl6
16:17 FROGGS[mobile] yes, why not
16:18 FROGGS[mobile] most stuff is coupled to all VMs anyway
16:19 hoelzro ok
16:20 eli-se joined #perl6
16:20 gfldex joined #perl6
16:22 raydiak m: use NativeCall; sub malloc (int32 $ = 1) returns Pointer is native {*}; say malloc; # didn't defaults used to work on native functions?
16:22 camelia rakudo-moar 970b89: OUTPUT«This representation (Null) cannot unbox to a native int␤  in method CALL-ME at lib/NativeCall.pm:233␤  in block <unit> at /tmp/AQ7ii8e730:1␤␤»
16:23 raydiak m: use NativeCall; sub malloc (int32 $ = 1) returns Pointer is native {*}; say malloc 1;
16:23 camelia rakudo-moar 970b89: OUTPUT«Calling 'malloc' will never work with argument types (Int)␤    Expected: :(int32 $ = { ... } --> Pointer)␤  in method CALL-ME at lib/NativeCall.pm:226␤  in block <unit> at /tmp/H3iZhbXuag:1␤␤»
16:23 raydiak m: use NativeCall; sub malloc (int32 $) returns Pointer is native {*}; say malloc 1;
16:23 camelia rakudo-moar 970b89: OUTPUT«Pointer<0x4628e20>␤»
16:29 eternaleye joined #perl6
16:35 lnr joined #perl6
16:35 lnr joined #perl6
16:35 lnr joined #perl6
16:36 lnr joined #perl6
16:36 lnr joined #perl6
16:36 lnr joined #perl6
16:37 lnr joined #perl6
16:37 lnr joined #perl6
16:37 lnr joined #perl6
16:38 lnr joined #perl6
16:38 lnr joined #perl6
16:38 lnr joined #perl6
16:39 lnr joined #perl6
16:39 moritz Mouq: toml-pm6 has a method bind_key which you should rename to BIND-KEY
16:39 lnr joined #perl6
16:39 moritz Mouq: likewise assign_key -> ASSIGN-KEY
16:39 jnthn skids: Note that instead of my @arr := array[int].new you can just say my int @arr;
16:39 lnr joined #perl6
16:40 lnr joined #perl6
16:40 lnr joined #perl6
16:40 lnr joined #perl6
16:41 lnr joined #perl6
16:41 lnr joined #perl6
16:41 lnr joined #perl6
16:41 jnthn grmbl
16:43 flussence .oO( a good algorithm for hiding joinspam is one of the great unsolved problems in computing )
16:44 moritz uhm, no
16:45 jnthn Seems to have quietened down now, so...
16:45 moritz iirc weechat allows you to only show joins/leaves of people when they also speak
16:45 moritz so, delay showing joins/leaves until they are relevant for the discussion
16:45 moritz and in irssi, I simply ignore them altogether in full-ish channels like this on (or #git with >1k participants)
16:46 flussence that's what I do too (had to check the clogs to figure out what just happened...)
16:46 timotimo yes, weechat makes that work very well
16:46 timotimo i didn't see a single join/part before i read what you complained about and turned the filter off temporarily
16:47 flussence I'm kinda torn between switching to weechat or sticking with irssi and seeing where the new increase in development speed takes it.
16:48 moritz the big hurdle to switching is that I'd have to disconnect to start a different chat client :-)
16:49 timotimo Could not open the file "/home/timo/perl6/bench/callgrind.out.20836". Check it exists and you have enough permissions to read it.
16:49 timotimo aren't i supposed to open callgrind data files with kcachegrind?
16:49 timotimo oh, it's an empty file. great.
16:51 timotimo (had to cat (which perl6) in order to make callgrind pick up the right process)
16:52 eli-se joined #perl6
16:52 jnthn timotimo: I often use callgrind_analyze or whatever it's called
16:52 jnthn (for command line view)
16:52 eli-se hola
16:52 timotimo ah
16:53 raiph joined #perl6
16:54 pecastro_ hi guys. I'm getting a java.nio.charset.MalformedInputException: Input length = 1 in method slurp at gen/jvm/CORE.setting:17813 in block <unit> at test-slurp.pl6:10
16:55 pecastro_ The file isn't that big and before hitting it I manage to slurp other stuff like .js and .css ? Perhaps becasue this one is binary ?
16:55 pecastro_ What's the best way to report this ?
16:56 FROGGS[mobile] pecastro_: can you try to. slup(:bin) it?
16:56 psch pecastro_: are you slurping with :bin?  otherwise iirc utf8 is assumed and that could throw if you have a non-utf8 char
16:56 FROGGS[mobile] slurp*
16:57 psch although we probably don't want to have the java exception bubble up in any case
16:57 timotimo there are many non-utf8 chars out there
16:58 FROGGS[mobile] but there are also many a's and e's out there
16:59 pecastro_ FROGGS[mobile]: Yap slurp(:bin) ... that seems to work ...
16:59 pecastro_ I've bumped into it here -> https://github.com/azawawi/farabi6/blob/master/lib/Farabi6.pm6#L166 and then I wrote a small script to try to understand what was going on ...
17:00 timotimo ah, yeah. cool that you look into farabi :)
17:00 pecastro_ So, will the code need to be changed to check the type of the file prior to slurping it or ...
17:01 psch pecastro_: well, it definitely shouldn't throw a java exception
17:01 psch i'll have a look if i can wrap that to something you can CATCH in the perl6 level
17:02 psch or rather, i would, if my screen would respond to ^A^C and not give me a black window... :/
17:02 prime joined #perl6
17:02 psch ah, there
17:03 jnthn going to find my train; bbiab
17:05 FROGGS joined #perl6
17:12 psch hrm, all this IO
17:13 psch pecastro_: fwiw, you can already CATCH it, but you still get the java exception text
17:14 psch which obviously doesn't help much, seeing as "Input length = 1" can't be easily interpreted as "wrong encoding"
17:14 psch i suppose we could throw an AdHoc with a different error message
17:14 eli-se joined #perl6
17:15 psch although i think an X::EncodingMismatch or something is probably the cleaner solution, but i'm not sure how to implement that
17:15 eli-se woohoo
17:17 psch eli-se++ # general cheerfulness
17:17 larion joined #perl6
17:18 eli-se woohoo
17:20 rurban joined #perl6
17:22 flussence m: sub foo(int8() $a) { say $a }; foo(257); # random bout of curiosity, don't mind me
17:22 camelia rakudo-moar 970b89: OUTPUT«No such method 'int8' for invocant of type 'Int'␤  in sub foo at /tmp/Sy9vvRMzKH:1␤  in block <unit> at /tmp/Sy9vvRMzKH:1␤␤»
17:22 flussence m: sub foo(int() $a) { say $a }; foo(257);
17:22 camelia rakudo-moar 970b89: OUTPUT«No such method 'int' for invocant of type 'Int'␤  in sub foo at /tmp/C46xfgcf2g:1␤  in block <unit> at /tmp/C46xfgcf2g:1␤␤»
17:22 flussence m: sub foo(int $a) { say $a }; foo(257);
17:22 camelia rakudo-moar 970b89: OUTPUT«257␤»
17:22 flussence m: sub foo(int8 $a) { say $a }; foo(257);
17:22 camelia rakudo-moar 970b89: OUTPUT«257␤»
17:24 flussence (my assumption is the first one would truncate if it worked, and the last one would've thrown an error)
17:24 flussence m: sub foo(int8 $a) { say $a.WHAT }; foo(257);
17:24 camelia rakudo-moar 970b89: OUTPUT«(Int)␤»
17:25 psch flussence: .WHAT promotes
17:25 psch m: say (int).WHAT
17:25 camelia rakudo-moar 970b89: OUTPUT«(int)␤»
17:25 psch uh
17:25 psch or maybe not?
17:25 psch i know there's a test marked as todo because of this
17:25 jnthn The int *type object* does not
17:26 jnthn 'cus it's an object
17:26 pecastro psch: This has to be a recent thing right, otherwise Farabi would have never worked. I'm not sure I'm interested in CATCHing it more in how can I fix it ...
17:26 psch oh, right
17:26 pecastro anyway ... I'll leave a note to the author ...
17:26 jnthn Native values, otoh, aren't objects.
17:26 flussence I'm guessing things like int8 only make sense in var declarations right now...
17:27 jnthn flussence: Well, they're interesting in parameter decls for th esake of native calling too, which does pay attention to them.
17:27 jnthn Also native arrays do store stuff compactly.
17:27 psch pecastro: maybe something changed about which encoding the files are saved/created with?  i don't know if you can put the blame so easily onto IO.slurp
17:28 jnthn my int8 @arr takes 8 times less space then my int @arr, for example
17:29 psch pecastro: in any case, if the file *isn't* in ASCII it shouldn't slurp, i'd say
17:30 psch but rather throw something that says "hey, this is obviously not ASCII"
17:30 flussence something I've been wondering... aren't native arrays and Bufs basically the same thing in memory but with different UIs?
17:34 colomon joined #perl6
17:34 kaare_ joined #perl6
17:35 TimToady m: my bit @vector;  # NYI?
17:35 camelia rakudo-moar 970b89: OUTPUT«5===SORRY!5===␤Type 'bit' is not declared␤at /tmp/vz1irmGH7M:1␤------> 3my bit7⏏5 @vector;  # NYI?␤Malformed my␤at /tmp/vz1irmGH7M:1␤------> 3my7⏏5 bit @vector;  # NYI?␤␤»
17:35 skids joined #perl6
17:37 FROGGS m: my int1 @vector
17:37 camelia rakudo-moar 970b89: OUTPUT«===SORRY!===␤MVMArray: Unsupported int size␤»
17:38 jnthn flussence: They use the same REPR, yes. Though arrays will not always use that REPR
17:38 jnthn Resizable native arrays will; sized ones will be a difference REPR
17:39 jnthn TimToady: No sub-byte sized types yet
17:39 flussence FROGGS: you'd probably want "uint1" there :)
17:40 jnthn darn this train wifi is crap today
17:40 FROGGS :P
17:42 skids m: my uint8 $i; $i = 257; $i.say; $i--; $i.say; $i--; $i.say; # These single ints are getting better but aren't there yet.
17:42 camelia rakudo-moar 970b89: OUTPUT«1␤0␤-1␤»
17:43 jnthn .oO( All the single ints...if you liked it shoulda put an abs on it )
17:43 jnthn But yeah, I didn't get to the uint stuff yet really
17:44 skids The uints inside a Buf or Array seem flawless as far as I've been able to tell.
17:44 skids *array
17:44 jnthn I think uint64 in those ain't quite right in array yet
17:45 geever joined #perl6
17:48 skids Good to know.  I was just about to use those :-).  Is uint32 also squirrely on a 32-bit machine?
17:49 jnthn Doubt it; think that should work reliably
17:49 arnsholt m: say Array[int] ~~ Array[int]
17:49 camelia rakudo-moar 970b89: OUTPUT«True␤»
17:49 arnsholt m: use NativeCall; say CArray[int] ~~ CArray[int]
17:49 camelia rakudo-moar 970b89: OUTPUT«False␤»
17:52 * [Coke] wonders if we can perl6 this: http://blogs.perl.org/users/itcharlie/2015/03/new-york-city-perl-hackathon-2015.html
17:52 retupmoca m: my $b = buf32.new(1, 2, 3); say $b.unpack('nn') # :(
17:52 camelia rakudo-moar 970b89: OUTPUT«Cannot .shift from an empty Array␤  in method Numeric at src/gen/m-CORE.setting:15767␤  in sub infix:<+> at src/gen/m-CORE.setting:5273␤  in block  at src/gen/m-CORE.setting:6656␤  in block  at src/gen/m-CORE.setting:6654␤  in method reify at src…»
17:53 retupmoca (not that I need it, more curious as to if it worked)
18:02 dalek rakudo/nom: 5112625 | TimToady++ | src/ (3 files):
18:02 dalek rakudo/nom: Regularize compile-time sig mismatch reporting
18:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/51126257ad
18:03 dalek roast: 9416576 | TimToady++ | / (3 files):
18:03 dalek roast: conform to new 'will never work' error messages
18:03 dalek roast: review: https://github.com/perl6/roast/commit/9416576d70
18:03 jnthn +            # this works because methods always have at least one
18:03 jnthn +            # other parameter, *%_
18:04 jnthn ...oops, not with "is hidden" :)
18:05 koo6 joined #perl6
18:08 eli-se I found the solution to Perl lacking recursive glob!
18:08 eli-se test => { TESTS => `zsh -c 'echo t/**/*.t'` }, # :D :D :D
18:08 geekosaur :p
18:10 TimToady now to figure out how to get the argument profile for a run-time dispatch failure...
18:12 jnthn Search for X::Multi::NoMatch in src/Perl6/Metamodel/BOOTSTRAP.nqp
18:17 TimToady yeah, that's the easy part :P
18:18 TimToady finding a string representation for $capture might be a bit tricksier
18:22 diana_olhovik joined #perl6
18:22 nige joined #perl6
18:23 jnthn I'd try to turn it into a Perl 6 Capture
18:23 jnthn And pass that along to the error reporting thing
18:23 jnthn And have the typed exception do something with it when it produces the message
18:24 bayprogrammer joined #perl6
18:24 TimToady seems sane
18:25 TimToady certainly don't wanna insert any more into the hotpath
18:25 jnthn Indeed
18:26 jnthn Also it means that folks will be able to dshittunnel
18:26 jnthn lol
18:26 * jnthn is hating this internet connection
18:26 skids joined #perl6
18:26 jnthn Folks will be able to CATCH it and do stuff with the original arg tuple.
18:28 jnthn The $capture there is quite a funky low level one, however
18:29 jnthn TimToady: I can get a Capture being sent along with the exception if you like
18:29 jnthn TimToady: And leave sanely gisting it to you
18:31 skids joined #perl6
18:32 TimToady I would appreciate that
18:32 skids joined #perl6
18:32 jnthn OK, will look at it nowish :)
18:36 rurban_ joined #perl6
18:39 rurban joined #perl6
18:41 kjs_ joined #perl6
18:47 anaeem1 joined #perl6
18:49 dalek doc: a56714e | (Ilmari Vacklin)++ | bin/p6doc (2 files):
18:49 dalek doc: Prettier usage output.
18:49 dalek doc: review: https://github.com/perl6/doc/commit/a56714e8a0
18:49 dalek doc: 94e302f | moritz++ | bin/p6doc (2 files):
18:49 dalek doc: Merge pull request #61 from wolverian/master
18:49 dalek doc:
18:49 dalek doc: Prettier usage output for p6doc and p6doc-index.
18:49 dalek doc: review: https://github.com/perl6/doc/commit/94e302ffb3
18:50 FROGGS m: say Int.^can('Num')
18:50 camelia rakudo-moar 511262: OUTPUT«Num Num␤»
18:51 FROGGS m: say Int.can('Num')
18:51 camelia rakudo-moar 511262: OUTPUT«Num Num␤»
18:51 [Coke] FROGGS: I just answered him.
18:51 FROGGS yeah, me too sadly
18:51 [Coke] (if that's for the p6u question)
18:55 rindolf joined #perl6
18:56 spider-mario joined #perl6
19:00 dalek Inline-Perl5: ebd228c | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
19:00 dalek Inline-Perl5: s/hidden_from_backtrace/hidden-from-backtrace/
19:00 dalek Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/ebd228ccbd
19:01 dalek rakudo/nom: a8ed359 | jnthn++ | src/ (2 files):
19:01 dalek rakudo/nom: Include capture in multi-dispatch exceptions.
19:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a8ed359b21
19:01 jnthn TimToady: ^^
19:05 [Coke] m: use TeSt;
19:05 camelia rakudo-moar 511262: OUTPUT«===SORRY!===␤Could not find TeSt in any of: /home/camelia/rakudo-inst-2/languages/perl6/lib, /home/camelia/rakudo-inst-2/languages/perl6␤»
19:05 [Coke] ^^ that works on OS X.
19:06 FROGGS case insensitive clod^Wfilesystem?
19:07 nine_ What is this error message trying to tell me? Calling py_fetch_error(TypedCArray[Pointer], TypedCArray[Pointer], TypedCArray[Pointer], TypedCArray[Pointer]) will never work with declared signature     Expected: :(TypedCArray[Pointer] $, TypedCArray[Pointer] $, TypedCArray[Pointer] $, TypedCArray[Pointer] $)
19:07 nine_ Seems to me like it's getting what it's expecting?
19:07 FROGGS nine_: please only put CArray into your signature
19:08 lizmat [Coke] FROGGS : that type of issue (use tEst) is on my radar  :-)
19:08 FROGGS m: use NativeCall; say CArray[Pointer] ~~ CArray[Pointer]
19:08 camelia rakudo-moar 511262: OUTPUT«False␤»
19:08 Hor|zon joined #perl6
19:08 FROGGS lizmat++
19:08 lizmat [Coke] FROGGS: I don't think we can give an error message at that point per se
19:08 FROGGS nine_: see? jnthn++ fixed that for "normal" typed roles, but not for the CArray weirdness
19:08 nine_ FROGGS: Calling py_fetch_error(Positional) will never work with declared signature (CArray, CArray, CArray, CArray)
19:09 lizmat but we *should* make sure that if someone does use Test later, that it dies
19:09 FROGGS nine_: :o(
19:10 FROGGS nine_: that looks like you're calling it with one arg only
19:10 lizmat *or* that we keep that silent, and handle it as a different shortname in that scope
19:10 FROGGS lizmat: I've not a good feeling what the right fix is tbh
19:10 lizmat perhaps a compile time warning would be better
19:10 nine_ FROGGS: indeed I am: my @exception; for ^4 { @exception[$_] := CArray[Pointer].new(); @exception[$_][0] = Pointer; } py_fetch_error(@exception);
19:10 FROGGS then please flatten it
19:11 lizmat fortunately, in Perl 6 the same module can live under different short names in different scopes
19:11 [Coke] lizmat: I just opened a rakudobug
19:11 FROGGS [Coke]++
19:11 lizmat [Coke]: good, let's make sure it doesn't fall through the cracks
19:11 FROGGS m: use NativeCall; say CArray[Pointer] ~~ CArray
19:11 camelia rakudo-moar a8ed35: OUTPUT«True␤»
19:11 nine_ I really start hating these unpredictable flattening rules :/
19:12 FROGGS nine_: but this one really is predictable
19:12 moritz nine_: py_fetch_error has four args, right?
19:13 moritz nine_: so it'd need to be   my @exception = CArray[Pointer].new() xx 4; py_fetch_error(|@exception);
19:13 nine_ moritz: it had. I just fixed to to only have one which is all it ever should have had.
19:13 jnthn lizmat: I don't get what you're saying on shortname stuff, the problem is all about the file system being case insensitive, the stuff the module exports won't change name...
19:14 dalek nqp: 8564111 | moritz++ | / (3 files):
19:14 dalek nqp: Install dir layout: replace "languages" with "share"
19:14 dalek nqp:
19:14 dalek nqp: on MoarVM only, atm
19:14 dalek nqp: review: https://github.com/perl6/nqp/commit/8564111fd2
19:14 dalek nqp: 216b72e | moritz++ | tools/build/ (2 files):
19:14 dalek nqp: Adjust install dirs on the JVM
19:14 dalek nqp: review: https://github.com/perl6/nqp/commit/216b72eb5b
19:14 dalek nqp: 6e87561 | moritz++ | / (5 files):
19:14 dalek nqp: Merge branch 'install-dir-layout'
19:14 dalek nqp: review: https://github.com/perl6/nqp/commit/6e875614d2
19:14 jnthn lizmat: If it's going to die anywhere it needs to be on the "use" really...
19:14 FROGGS \o/
19:14 lizmat jnthn: true
19:15 lizmat jnthn: it all depends on the dev id/inode of the file being loaded that needs to be checked for duplicity
19:15 lizmat jnthn: and preventing the same file from being loaded twice
19:15 FROGGS lizmat: what if your are loading from a database/cloud/webservice?
19:15 lizmat well, that's the whole point of making the CompUnitRepo responsible for taking care of that
19:16 jnthn lizmat: What does Perl 5 do with these cases, ooc?
19:16 lizmat there's an %INC that keeps module name and file path
19:16 lizmat and it suffers the same problem
19:16 skids joined #perl6
19:17 dalek rakudo/nom: 7920c16 | moritz++ | / (5 files):
19:17 dalek rakudo/nom: Install dir layout: replace /languages/ with /share/
19:17 dalek rakudo/nom:
19:17 dalek rakudo/nom: MoarVM only so far
19:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7920c16b8d
19:17 dalek rakudo/nom: 1c58dd2 | moritz++ | tools/build/ (2 files):
19:17 dalek rakudo/nom: Tweak install layout for the JVM
19:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1c58dd2691
19:17 dalek rakudo/nom: 81e8b48 | moritz++ | docs/ChangeLog:
19:17 dalek rakudo/nom: Changelog: language improvements (I hope :)
19:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/81e8b48fbd
19:17 dalek rakudo/nom: 2a0f0d2 | moritz++ | / (7 files):
19:17 dalek rakudo/nom: Merge branch 'install-dir-layout' into nom
19:17 dalek rakudo/nom:
19:17 dalek rakudo/nom: Conflicts:
19:17 dalek rakudo/nom: docs/ChangeLog
19:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2a0f0d2ba8
19:17 dalek rakudo/nom: ca16e95 | moritz++ | tools/build/NQP_REVISION:
19:17 dalek rakudo/nom: bump NQP revision to get the install-dir-layout merge result
19:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ca16e95216
19:17 jnthn perl -e "use Test::MorE;" # works on Windows :)
19:17 jnthn lizmat: Given I don't hear yelps of pain about this in Perl 5, I'm not sure it's a huge priority...
19:18 raiph joined #perl6
19:18 dalek Inline-Python: 73a833f | (Stefan Seifert)++ | lib/Inline/Python.pm6:
19:18 dalek Inline-Python: Fix py_fetch_error signature. We really pass only one array of 4 pointers.
19:18 dalek Inline-Python:
19:18 dalek Inline-Python: Seems to be a refactoring left over that started throwing an error.
19:18 dalek Inline-Python:
19:18 dalek Inline-Python: Thanks to FROGGS++ and moritz++ for helping to track this down.
19:18 dalek Inline-Python: review: https://github.com/niner/Inline-Python/commit/73a833f6bf
19:18 dalek Inline-Python: a224217 | (Stefan Seifert)++ | lib/Inline/Python.pm6:
19:18 dalek Inline-Python: invoke seems now be called CALL-ME
19:18 dalek Inline-Python: review: https://github.com/niner/Inline-Python/commit/a22421730f
19:19 dalek Inline-Python: 3cce952 | (Stefan Seifert)++ | lib/Inline/Python.pm6:
19:19 dalek Inline-Python: hidden_from_backtrace seems to be called hidden-from-backtrace now
19:19 dalek Inline-Python: review: https://github.com/niner/Inline-Python/commit/3cce952434
19:20 lizmat afk again&
19:21 dalek rakudo/nom: 6ebad24 | moritz++ | docs/ChangeLog:
19:21 dalek rakudo/nom: Note install dir changes in ChangeLog
19:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6ebad24f77
19:22 moritz FROGGS: fwiw this doesn't build the install dir exactly as you envisioned it, it just s:g/languages/share/
19:33 Hor|zon joined #perl6
19:34 baest joined #perl6
19:36 dalek rakudo/nom: 8d82da9 | jnthn++ | src/core/natives.pm:
19:36 dalek rakudo/nom: Add bit and byte native types.
19:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8d82da97eb
19:37 eli-se I'm writing my first multimodule Perl program woo
19:38 mr-foobar joined #perl6
19:38 dalek rakudo/nom: db5cb84 | moritz++ | docs/announce/2015.03.md:
19:38 dalek rakudo/nom: retroactively use markdown table in release announcement
19:38 dalek rakudo/nom:
19:38 dalek rakudo/nom: github should render it nicer this way
19:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/db5cb841a4
19:39 dalek rakudo/nom: a34bb56 | moritz++ | docs/ChangeLog:
19:39 dalek rakudo/nom: Add bit and byte native types to changelog
19:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a34bb56096
19:39 dalek Inline-Python: 8199039 | (Stefan Seifert)++ | lib/Inline/Python.pm6:
19:39 dalek Inline-Python: Use recent NativeCall's Blob support for speedup
19:39 dalek Inline-Python: review: https://github.com/niner/Inline-Python/commit/81990390d5
19:39 dalek Inline-Python: b45abdf | (Stefan Seifert)++ | pyhelper.c:
19:39 dalek Inline-Python: Don't normalize an exception if there was none
19:39 dalek Inline-Python:
19:39 dalek Inline-Python: Avoids unneccessary work on every single call into Python
19:39 dalek Inline-Python: review: https://github.com/niner/Inline-Python/commit/b45abdf7f0
19:39 baest_ joined #perl6
19:40 nine_ .tell japhb Inline::Python should work again
19:40 yoleaux nine_: I'll pass your message to japhb.
19:40 dalek rakudo/nom: b7a9744 | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoEvalServer.java:
19:40 dalek rakudo/nom: Correct CLASSPATH example
19:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b7a974462a
19:41 moritz nine_++
19:41 moritz now I can update the rakudo for the perl6/doc cron job to 2015.03
19:41 lucas_ joined #perl6
19:43 lucas_ Hey, thanks for the releases!
19:43 Ulti out of interest why doesn't a literal numeric value in scientific notation create a Rat?
19:44 jnthn Because that's how you create a Num
19:44 Ulti heh
19:44 jnthn uh, that sounded like a legit and good answer whlie I was writing it :P
19:44 Ulti :P
19:45 * jnthn defers to the language designer ))
19:45 Ulti MySQL has an annoying feature where it keeps things as 0.0001 upto a certain point then switches to scientific notation
19:45 [Coke] scientific notation is the sugar for Num.new(....)
19:46 psch scientific notation is uncommon enough to lead people to Rat on the normal path, but huffmanized enough to mean IEEE754 when that's actually what you want
19:46 mst because mathematicians aren't allowed to use scientific notification
19:46 psch (that'd be my take on the why, but i'm not the designer)
19:46 mst it's reserved for Real Science
19:46 Ulti real scientists want to avoid floating point errors
19:47 eli-se How do you decide which sigil to use?
19:47 eli-se For new variables.
19:47 Ulti do they have a dimensionality to them?
19:47 Ulti if not $
19:47 psch moritz: do you have an idea where i could doc jvminterop and the evalserver?  i don't think it fits onto doc.perl6.org
19:48 eli-se But I can assign arrays to $x just fine.
19:48 Ulti sure
19:48 mst Ulti: meh, science is all an approximation anyway
19:48 mst that's why it's real and maths is rational
19:48 Ulti mst only because people fail at floating point endlessly
19:48 * psch .oO( between 7 and g_64 )
19:48 eli-se ok
19:48 mst Ulti: this is probably funnier if you know I'm a pure maths grad
19:49 Ulti the best is p-values of 0 because they underflow
19:49 moritz psch: it could go into the doc/ dir of rakudo
19:49 Ulti and you get a little section in a paper saying the computer couldnt work it out
19:49 moritz psch: or it could go into perl6/doc aka doc.perl6.org
19:49 moritz psch: as long as it's clearly marked as rakudo-jvm only
19:49 Ulti mst this is probably less funny if you know I am a scientist ;P
19:49 psch moritz: i'll go with the former.  doc.perl6.org seems more as "what we roast for" to me
19:50 moritz psch: yes
19:50 lucas_ use-ok was added to Test.pm. The other methods use underscores. Any plans to change underscores/hyphens in Test.pm in the future?
19:50 skids eli-se: Whether you want it to flatten is a key deciding point.
19:50 mst Ulti: I assumed. It'd've been no fun otherwise.
19:50 skids m: my @a = 1,2; my $a = [1,2]; say 3,4 Z @a; say 3,4 Z $a;
19:50 camelia rakudo-moar 8d82da: OUTPUT«3 1 4 2␤3 1 2␤»
19:51 Ulti mst though I am mostly a webdev since I rage quit a month ago to make $$$
19:51 Ulti its a hard sell for Perl 6 at work
19:51 moritz lucas_: there was a debate about that some days ago
19:51 Ulti depressingly so
19:51 lucas_ moritz: Thanks, I missed it. I'll look for it.
19:52 mst I expect initial perl6 adoption will be snuck in around the edges on tools that nobody specified anything for
19:52 mst that's how earlier perls got their initial users, AFAIK
19:53 raydiak m: my @a = 1,2,3; say @a; my $a = 1,2,3; say $a; # eli-se the choice of sigil affects how the variable will behave in different contexts, like list assignment and flattening
19:53 camelia rakudo-moar 8d82da: OUTPUT«WARNINGS:␤Useless use of "," in expression "my $a = 1,2,3" in sink context (line 1)␤1 2 3␤1␤»
19:53 moritz mst: or "OK if I use perl for that?" without specifying the version :-)
19:53 Ulti I think NativeCall, native packed/shaped arrays along with BioPerl will sell it to most people I know
19:53 eli-se hmmmmmmmmmmmmmmmmmmmmmmmm
19:54 labster mst: I have dreams about using Perl 6 in production, but for now I just use it for development tools.
19:55 eli-se using it in production right now would be a moronic thing to do
19:55 skids Obscure tools like mrtg probably did perl5 a lot of favors.
19:55 Ulti I cannot wait until I can, I waited for 9 seconds for a Moose app to start and give me usage today :S apparantly that's production ready so Rakudo has a hope
19:55 mst Ulti: that's why increasingly Moose is used for daemons and Moo for CLI apps
19:55 Ulti also the mantra "its not production ready though" is horrible entrenched... I heard it today and they couldnt even remotely tell me what production ready even meant
19:56 Ulti like as in any definition
19:56 lucas_ Would you people like if "is hidden-from-USAGE" was lowercase "is hidden-from-usage"?
19:56 mst Ulti: it means "I have encountered sufficient social proof to feel like I won't be blamed if it goes wrong"
19:56 Ulti it was just meaningless words they had read somewhere for why they cant use Perl 6
19:56 yqt joined #perl6
19:56 moritz lucas_: not really, because the sub is called USAGE
19:56 labster I think the language is ready, but there aren't enough frameworks and modules available yet.  It's more of an ecosystem problem.
19:56 mst of course people don't generally like admitting that to themselves, so they come up with random rationalisations
19:56 Ulti labster perf is not quite there yet for everything I do
19:57 labster And yeah, I'm part of the problem.  Need to port more modules.
19:57 moritz lucas_: no, you're part of the solution :-)
19:57 moritz sorry, meant labster
19:57 labster lucas_ is part of the solution too :)
19:57 moritz aye
19:57 dalek star: f2041f4 | moritz++ | docs/announce/2015.03.md:
19:57 dalek star: release annoucement draft
19:57 dalek star: review: https://github.com/rakudo/star/commit/f2041f4c6e
19:57 moritz lucas_++
19:57 moritz labster++
19:57 lucas_ moritz, labster: thanks :D
19:58 zjmarlow joined #perl6
19:58 Ulti labster Inline::Perl5 goes some of the way to get around the ecosystem problem... also Java interop
19:59 moritz https://github.com/rakudo/star/blob/master/docs/announce/2015.03.md feedback very welcome
19:59 moritz psch++ and FROGG++ (iirc) for reducing the JVM failures to three modules
19:59 Ulti hmmm actually if I got our DBIC schema working from Perl6 really transparantly I think people might have a go
19:59 psch moritz: mostly FROGGS++
19:59 labster I have not tried Inline::Perl5 in a long time, I should see how it's working these days
20:01 raydiak m: <1/2>.perl
20:01 camelia rakudo-moar 8d82da: ( no output )
20:02 nine_ Ulti, labster: I'd be quite interesting in your experiences with Inline::Perl5
20:02 raydiak m: say <1/2>.perl
20:02 camelia rakudo-moar 8d82da: OUTPUT«"1/2"␤»
20:02 raydiak rat literals broken again :P
20:02 moritz raydiak: did they ever work?
20:03 isacloud joined #perl6
20:03 raydiak moritz: am I mistaken?  coulda swore they used to
20:03 raydiak then broke again, then someone fixed at some point, now broken again...or else I'm confused again :)
20:04 eli-se joined #perl6
20:05 Ulti "Failed to unbox object to number" for Rat into a num
20:06 lumimies joined #perl6
20:06 TimToady raydiak: they worked in niecza
20:06 Ulti nine_ I'll have a go at DBIC, wont be until later next week though
20:07 mst Ulti: remember you can bug riba and I :)
20:08 raydiak hm
20:09 * raydiak forked an alternate reality again, pay no mind
20:10 raydiak on that subject though...what's blocking rat literals from implementation?
20:10 moritz raydiak: a champion that does it, afaict
20:10 moritz also, should <1/2> return a Rat or a RatStr?
20:11 raydiak "Literals specified in angle brackets are always subject to val() processing, so <1/2> produces a value that is both a Rat and a Str."
20:12 raydiak so RatStr, if that's still accurate
20:12 psch val() doesn't really exists, afaik
20:13 psch a minimal prototype exists for &MAIN handling, but it doesn't do all it should
20:13 raydiak was gonna ask about that thing it mentioned...
20:13 TimToady no
20:13 moritz m: say <a b c>.pairs.^name
20:13 camelia rakudo-moar b7a974: OUTPUT«List␤»
20:13 psch at least &MAIN handling is where i saw &val...
20:13 TimToady <1/2> is Rat
20:13 moritz shouldn't that return a PairMap now?
20:14 raydiak TimToady: is S02 wrong, or my reading of it?
20:15 TimToady S02 is wrong
20:16 jercos m: "1e99".Rat.say
20:16 camelia rakudo-moar b7a974: OUTPUT«999999999999999967336168804116691273849533185806555472917961779471295845921727862608739868455469056␤»
20:16 * jercos hrooms
20:16 jercos I understand that, and realize that's entirely justified, but I still don't like it :p
20:16 moritz jercos: same here
20:16 vendethiel o/
20:16 raydiak \o
20:17 moritz m: say '9999999999999999'.chars
20:17 camelia rakudo-moar b7a974: OUTPUT«16␤»
20:17 psch o/ vendethiel
20:17 moritz jercos: but hey, 16 digits accuracy aren't bad
20:18 psch grr
20:18 japhb nine_: Thank you, I'm rebuilding all the things now, so I'll include Inline::Python and see if it's working again.  :-)
20:18 yoleaux 19:40Z <nine_> japhb: Inline::Python should work again
20:18 psch starting to doc jvm interop and i run into NYIs :/
20:18 TimToady the intent was that the absence of whitespace in <1/2> or in <1+2i> would suppress the val() semantics
20:18 TimToady but someone change S02 since the last time I looked...
20:18 moritz that should make things easier
20:18 jercos m: "1*10**99".Rat.say
20:18 camelia rakudo-moar b7a974: OUTPUT«1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000␤»
20:18 TimToady *ed
20:18 jercos shiny.
20:19 psch after less than 120 words
20:19 moritz psch: I know that feeling very well
20:19 psch moritz: so i don't have to feel bad for stashing the docs and hacking on it instead? :)
20:19 moritz psch: lots of my doc writing lead to discussions in here about inconsistencies, or NYIs, or "this is really awkward to explain; why don't we ...?"
20:20 moritz psch: not at all (as long as you eventually come back to the docs :-)
20:21 skids Writing docs is an essential part of writing code.  It's when you step back and say "what was I doing this for, again?" :-)
20:21 japhb jercos: Str.Numeric is ... a tad overdesigned.  :-)
20:21 moritz TimToady: hah, guess who last touched the "so C<< <1/2> >> produces a value that is both a C<Rat> and a C<Str>."
20:22 moritz some guy called Larry, in 2012
20:22 moritz https://github.com/perl6/specs/commit/dc8b0a4faf4a9147e266546cd794ce9fb10e9ee2
20:25 dalek specs: 5d45b82 | TimToady++ | S02-bits.pod:
20:25 dalek specs: fix up bad edits by that Larry guy
20:25 dalek specs: review: https://github.com/perl6/specs/commit/5d45b8277f
20:27 moritz TimToady: rakudo's PairMap makes values only mutable if they already are containerized. That's intended, right?
20:28 TimToady don't remember, you'll have to ask that Larry guy, who was probably wrong
20:29 TimToady but sounds rightish
20:29 japhb String him up by his toenails and feed him organic carrots until he recants!
20:30 TimToady m: say (1/2).perl
20:30 camelia rakudo-moar b7a974: OUTPUT«0.5␤»
20:31 TimToady m: say (1/3).perl
20:31 camelia rakudo-moar b7a974: OUTPUT«<1/3>␤»
20:31 TimToady note the angles, and the fact taht at least on output, that is considered equivalent to a Rat
20:34 baest joined #perl6
20:37 dalek doc: 3085663 | moritz++ | lib/Type/PairMap.pod:
20:37 dalek doc: Add PairMap stub documentation
20:37 dalek doc: review: https://github.com/perl6/doc/commit/3085663cac
20:39 kjs_ joined #perl6
20:42 TimToady joined #perl6
20:43 Ulti mst hopefully there wouldn't be anything to bug you about :P other than thinking about what a Perl 6 ORM might look like with all the new goodies
20:44 moritz Ulti: if you think about a Perl 6 ORM, I highly recommend looking at sqlalchemy
20:44 moritz Ulti: I'm using it for a $work project now, and frankly, it feels much more mature/thought-out/designed than DBIx::Class
20:45 FROGGS joined #perl6
20:48 * Ulti looks
20:49 dalek rakudo/nom: 179d453 | moritz++ | src/core/PairMap.pm:
20:49 dalek rakudo/nom: PairMap cleanup
20:49 dalek rakudo/nom:
20:49 dalek rakudo/nom: * die instead of fail in ASSIGN-KEY and ASSIGN-POS. Assignents
20:49 dalek rakudo/nom:   and bindings are not sunk (because that would make them eager),
20:49 dalek rakudo/nom:   so those failures were all silent
20:49 dalek rakudo/nom: * do not randomize order in .perl; it is supposed to be an ordered
20:49 dalek rakudo/nom:   type (or at least that is how I understood S32...)
20:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/179d453cff
20:49 moritz oops, I did it again
20:49 moritz started writing docs, ended up patching Rakudo instead
20:50 skids moritz++
20:52 timotimo :)
21:03 anaeem1 joined #perl6
21:09 japhb nine_: Still having problems with Inline::Python: t/call_p6_function_from_p5.t .. ok
21:09 japhb panic: MUTEX_LOCK (22) [op.c:697].
21:09 japhb t/callables.t .................
21:09 japhb Dubious, test returned 2 (wstat 512, 0x200)
21:09 japhb All 3 subtests passed
21:09 japhb What I really want is a paste that converts newline into ␤
21:10 japhb Although points to irssi for asking me if I actually wanted to paste.
21:10 timotimo you know xclip? :)
21:10 timotimo (weechat also has this confirmation thingie for pasting)
21:11 japhb timotimo: xclip will do that conversion?
21:11 timotimo no
21:11 timotimo but you can use it to get the contents, fix them up, and put them back in
21:11 timotimo and bind that to a key or very short command
21:11 japhb Hmmmm
21:11 japhb Would work when I'm seated at my workstation, though less useful when I'm ssh'ed in from the laptop
21:14 timotimo ah
21:14 jdv79 how come panda can't install from a url?
21:15 jdv79 for instance - can panda install JSON::Jansson?
21:20 retupmoca ok, OpenSSL should now bundle .dll files for windows (installed only if you don't already have ssleay32.dll in $PATH)
21:20 retupmoca can I get somebody else on windows to 'panda install OpenSSL' and double-check my work?
21:21 japhb jdv79: Last I looked, panda could only install from a local directory or from something that exists in the ecosystem master list.
21:29 raiph joined #perl6
21:43 rurban joined #perl6
21:45 alini joined #perl6
21:52 telex joined #perl6
22:16 TimToady hah, Mu.perl assumes that if its object has an attribute, it can be accessed via self."$name"(), which is not always the case
22:18 jnthn Well, it assumes it's a public attr, no?
22:18 TimToady S12-methods/multi test 30 specifically violates that, causing infinite recursion if you try to .perl the class as part of a capture .perl
22:19 TimToady changing Mu's .perl to use self! instead of self. fixes the infinite recursion
22:19 timotimo oh, neat
22:20 TimToady though why self! works from Mu, I dunno...
22:20 jnthn Uh...yes, beats me
22:20 jnthn Also becasue, uh...
22:20 jnthn ...wait, how can that ever work?
22:20 jnthn Private method calls look up in a totally separate table
22:20 timotimo yeah
22:21 jnthn And we don't generate private accessor methods.
22:21 timotimo but it doesn't infiniloop any more
22:21 timotimo so that's a good thing at least :)
22:21 TimToady oh, it just dies differently
22:21 jnthn :P
22:21 TimToady and it's in a dies_ok
22:22 TimToady so that's not the solution either
22:22 TimToady but the test is written to override the accessor, but then it doesn't actually access it
22:22 TimToady so Mu.perl gets very confused
22:23 timotimo now my benchmarks are running for the devirtualization branch
22:23 TimToady this test: '$.foo attribute has no accessor when foo() method is present
22:23 jnthn I think that if you write has $.foo, and then write your own accessor that fails to match up to the (rather modest) expectations .perl has that it can call your method and expect it to behave as an accessor, then you're doing somehting wrong. Not .perl.
22:23 TimToady but Mu.perl is relying on $.foo returning the value of the attribute
22:24 jnthn Not especially, it's just expecting it to behave accessor-like afaik.
22:24 moritz joined #perl6
22:25 TimToady I can work around it in the test easily enough, but having an error message infinite loop (the one you have me the capture for) is kinda suboptimal
22:25 TimToady can I get the value through the MOP instead of through the accessor?
22:25 jnthn Yes, you can .get-value
22:25 jnthn On the meta-attribute
22:26 TimToady maybe that's appropriate here...
22:26 jnthn It's perhaps more robust in general.
22:26 jnthn Though I still think anybody writing an accessor that causes what you're seeing is probably doing something wrong.
22:26 timotimo could it be much slower, though?
22:27 jnthn timotimo: I'm not sure .perl needs to be that fast, given it's primarily a debugging mechanism...
22:27 timotimo hm, fair enough i suppose
22:27 jnthn "It's too slow to use as a persistence mechanism" is probably a feature, given how wonderfully injectable EVAL is as a deserializer ;)
22:28 jnthn .get-value isn't overly awful, anyways.
22:28 anaeem1_ joined #perl6
22:28 timotimo hehehe
22:28 timotimo OK
22:29 TimToady now I just have to figure out how to get to the meta-attribute...
22:29 TimToady is there a searcher for the meta-attribute of a specific name?
22:30 timotimo hm, don't you want all attributes anyway?
22:30 timotimo so maybe you can just for self.^attributes?
22:31 TimToady I guess
22:32 TimToady it's still get_value in S12-introspection/attributes.t
22:33 jnthn TimToady: Aren't you already looping over .^attributes already?
22:33 jnthn (in .perl)
22:33 jnthn It may still be .perl in Rakudo :)
22:34 jnthn uh, .get_value
22:34 TimToady that's what timotimo just said
22:34 jnthn But no, there is (deliberately) no method to get one by name.
22:34 jnthn And we aren't going to have one.
22:34 jnthn Because it's not *meant* to be easy to do that.
22:34 TimToady sure, I can buy that :)
22:34 TimToady Uglification and Derision, and all that
22:34 jnthn aye :)
22:38 nine_ japhb: you sure you're talking about Inline::Python? t/call_p6_function_from_p5.t sounds an awful lot like Inline::Perl5
22:40 LonelyGM joined #perl6
22:40 LonelyGM Good evening
22:41 TimToady o/ from sunny California
22:42 LonelyGM Rainy and cold Hungary :/ was your trip good?
22:42 timotimo http://t.h8.lv/p6bench/2015-03-20-virtual_devirtual_actually.html  - YES.
22:44 timotimo oh
22:44 timotimo hmm
22:44 timotimo but we also turned on lazy deserialization directly after the release
22:44 timotimo that would explain the first two results
22:44 TimToady LonelyGM: yes, good meaning uneventful
22:44 TimToady well, at least once we got on the airplane...
22:45 TimToady the bit in Romania was eventful, though perhaps not quite so many events as in Hungary :)
22:46 japhb nine_: Yes, I am indeed an idiot.  Yep, Inline::Perl 5 was failing (they're right next to each other in my script, I was thinking about Inline::Python, and ... oops).
22:46 raydiak only here for a few more minutes, but would somebody please check out https://github.com/rakudo/rakudo/pull/392 and give feedback if I need it?  haven't attempted anything like this in rakudo before
22:49 LonelyGM TimToady: so waiting for the next opportunity to see ypu in Budapest or in Mountain View ;)
22:50 nine_ japhb: I've only found mention of this error once in http://irclog.perlgeek.de/perl6/2014-10-04/text at 8:31
22:53 dalek rakudo/nom: c13d1b4 | TimToady++ | src/core/Mu.pm:
22:53 dalek rakudo/nom: Mu's .perl should use raw primitives
22:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c13d1b48e7
22:53 dalek rakudo/nom: 0bb0370 | TimToady++ | src/core/Exception.pm:
22:53 dalek rakudo/nom: X::Multi::NoMatch message now includes capture
22:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0bb037003e
23:00 larion joined #perl6
23:02 captain-adequate joined #perl6
23:02 timotimo nine_: by clicking on the time you'll get a permalink to that line
23:02 LonelyGM joined #perl6
23:02 jnthn TimToady: Nice :)
23:03 TimToady arguably some of that code should be in a Capture method of some sort
23:04 TimToady method args or so
23:21 jnthn TimToady: The .perl of the Capture might work out rather sizable too...
23:22 dalek roast: a5f67aa | TimToady++ | S12-class/basic.t:
23:22 dalek roast: test for Foo.new.perl leaving out parens
23:22 dalek roast: review: https://github.com/perl6/roast/commit/a5f67aaf01
23:22 dalek rakudo/nom: ffd6616 | TimToady++ | src/core/Mu.pm:
23:22 dalek rakudo/nom: leave parens off Foo.new when no attributes
23:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ffd66165e0
23:23 jnthn m: multi foo(Int $x) { }; foo(1 x 10000)
23:23 camelia rakudo-moar 0bb037: OUTPUT«Cannot call foo("11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111…»
23:23 TimToady well, there is that
23:24 census joined #perl6
23:24 TimToady Moral: don't write bad code :)
23:24 timotimo http://t.h8.lv/p6bench/2015-03-20-virtual_devirtual_actually.html - refresh for up-to-date moar on rakudo-cluj thrown into the mix
23:28 TimToady m: say (1 x 10000).gist
23:28 camelia rakudo-moar 0bb037: OUTPUT«1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111…»
23:29 TimToady it's not like .gist does any better...
23:29 jnthn I was going to go with the types...
23:29 TimToady and I don't want to .gist the bits of it because then it drops quotes, which is rather unreadable
23:29 jnthn Like the compile-time one does.
23:30 TimToady which can be confusing, especially if you failed constraints
23:30 TimToady would be nice to know if we actually failed a type match, and if so, just use the types
23:30 jnthn I'd still prefer that over my thousand element array or few kilobyte string in the error :)
23:31 jnthn Well, you'd really need to write another explain-y implementation of the multi-dispatcher for that.
23:33 jnthn And when there's multiple parameters involved, it's a bit tricky to know what "failed a type match" exactly means...
23:33 jnthn Well, an easy heuristic is possible though
23:33 jnthn "Do any of the candidates have where clauses?"
23:33 MadcapJake joined #perl6
23:33 census left #perl6
23:34 TimToady troo
23:38 TimToady testing a fix
23:43 dalek rakudo/nom: cfa4974 | TimToady++ | src/core/Exception.pm:
23:43 dalek rakudo/nom: on NoMatch, just show arg types unless where seen
23:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cfa4974c46
23:45 TimToady okay, I think that finally does something people have been asking for for a long time now...
23:45 TimToady though it's not good enough yet to tell them why each match failed, which we may yet write a super-slow path for...
23:50 TimToady nap &
23:51 LonelyGM joined #perl6
23:51 LonelyGM_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo