»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31
Set by jnthn on 28 February 2015.
timotimo one of those days i'll implement a json parser with ugly code but a bit faster than the simple one :) 00:00
FROGGS in C or asm? 00:02
dalek kudo/nom: 9b61420 | FROGGS++ | t/spectest.data:
skip flapping tests for release
00:18
kudo/nom: ce69bb6 | FROGGS++ | docs/ChangeLog:
update changelog
00:20
00:23 skids left 00:25 ostomachion joined 00:26 osto left 00:30 adu left
timotimo not *that* ugly :) 00:33
FROGGS :D
timotimo for very fast we already have the binding to ... what was the library called again? jansson? 00:34
FROGGS: t.h8.lv/p6bench/2015-03-20-virtual_...rtual.html 00:35
huh, what. 00:36
00:36 coffee` joined
timotimo i should re-run the virtual part of that with an up to date moar that just lacks the devirt branch 00:36
FROGGS yeah, jansson 00:37
00:37 coffee` left
timotimo bah. the only difference between up-to-date master and what was in there already is docs changes :( 00:38
FROGGS :/
jdv79 i wouldnt call jansson very fast 00:39
timotimo oh?
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
yes, that is true
timotimo how the f* can devirtualized be so much slower in some cases?!
i had not expected this 00:41
00:42 dayangkun joined
FROGGS gnight 00:43
00:43 tinyblak left
timotimo gnite FROGGS 00:43
00:45 kaare_ left 00:49 dayangkun left 00:50 laouji joined 00:59 tinyblak joined
grondilu m: my $σ0; 01:01
camelia ( no output )
grondilu ^I'm told this is broken on Windows
01:02 dayangkun joined
grondilu github.com/grondilu/libdigest-perl...t-83799274 01:02
ugexe C:\Users\Nick>"C:\Users\Nick\Documents\Perl6\.rakudobrew\moar-nom\install\bin\pe 01:09
rl6.bat" -e "my $I0;"
er oops
C:\Users\Nick>"C:\Users\Nick\Documents\Perl6\.rakudobrew\moar-nom\install\bin\perl6.bat" -e "my $I0;"
C:\Users\Nick>"C:\Users\Nick\Documents\Perl6\.rakudobrew\jvm-nom\install\bin\perl6.bat" -e "my $I0;"
both no output. whatever that means
flussence .u σ 01:11
yoleaux U+03C3 GREEK SMALL LETTER SIGMA [Ll] (σ)
01:14 itz_ joined 01:16 itz left 01:18 rurban left 01:23 skids joined 01:25 ugexe left 01:26 ugexe joined 01:36 kaare_ joined
ugexe grondilu: if you have a runnable example i'll test it on jvm and moar on windows if you need it 01:41
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:49
01:52 adu joined
grondilu ugexe: de Nanotruss [image] | EurekAlert ... 01:57
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
eurekalert.org/multimedia/pub/61477.phpMore results
NanoTruss / Truss-systems / Showtec / Highlite
ooopps
wrong paste, sorry
ugexe: my $σ0; # should fail. Just use the unicode sigma 01:58
ugexe grondilu: yeah its not failing for me 02:01
grondilu I dunno then. 02:02
Please consider interacting with whoever wrote github.com/grondilu/libdigest-perl...t-83799274
me, I can't help much on this since I don't run Windows.
ugexe testers.p6c.org/reports/35961.html 02:05
mind you, all my win32 test reports are win7 (not win8 as the OS version would have you belive)
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…»
colomon .u ℘ 02:13
yoleaux U+2118 SCRIPT CAPITAL P [Sm] (℘)
skids So the question is what does "uniprop('σ')" say on that install. 02:16
02:22 chenryn joined 02:28 zakharyas joined 02:29 dj_goku left
colomon m: say uniprop(‘℘’) 02:37
camelia rakudo-moar ce69bb: OUTPUT«Sm␤»
colomon wonders if uniprop is documented anywhere… 02:38
skids S15-unicode it appears. But not in doc repo yet. 02:39
And amazingly no roasts. 02:40
(Not that I'm arguing for ℘ to be idenfier-legal. Sticking to a unicode properties based lemma is probably reasonable.) 02:43
grondilu notices S15 is in Perl 6 pod format and wonders if there is something to turn it into groff
(as with pod2man, that is) 02:44
grondilu wonders if Pod::Man should not be added to the most wanted modules 02:46
03:01 kurahaupo1 joined
japhb Awww, Inline::Python failed on install. :-( 03:09
Looks like lots of tests failing because of array call issues 03:10
03:13 noganex joined 03:14 kurahaupo1 left 03:16 noganex_ left 03:32 dj_goku joined
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␤»
skids m: sub f (uint8 $v is rw) { $v += 5; }; my @s = array[uint8].new(3); f(@s[0]); @s[0].say # /o\
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␤␤»
skids But all things considered, I am happy :) 03:36
Oh I'm being an idiot aren't I.
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␤»
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. 03:40
03:42 skids left 03:45 raiph left 03:47 lsm01 left 03:54 sunnavy left 04:02 FROGGS_ joined 04:05 Sqirrel left 04:06 FROGGS left 04:07 lsm01 joined 04:13 ash_gti left 04:17 anaeem1 joined, koo6 left 04:19 anaeem1 left, anaeem1 joined 04:24 sunnavy joined 04:29 ash_gti joined 04:36 ash_gti left 04:42 jack_rabbit joined
ugexe grondilu: he is using parrot 04:46
cant believe we missed that 04:47
04:47 ash_gti joined 04:50 MMMII joined 04:57 chenryn left 05:04 laouji left 05:05 nige joined 05:06 MMMII left 05:07 ash_gti left, kaleem joined 05:10 ash_gti joined 05:14 ash_gti left 05:24 Sqirrel joined, zakharyas left 05:26 adu left, zakharyas joined 05:30 BenGoldberg_ left 05:51 chenryn joined 06:02 mr-foobar left 06:04 laouji joined 06:07 laouji left, laouji joined 06:18 chenryn left 06:22 chenryn joined 06:24 gfldex joined 06:26 dayangkun left, kaleem left 06:34 [Sno] left 06:36 [Sno] joined 06:39 FROGGS_ left 06:59 alini joined 07:03 rindolf joined 07:04 prime left 07:07 diana_olhovik joined 07:16 yoleaux left 07:19 gfldex left 07:20 yoleaux joined, ChanServ sets mode: +v yoleaux 07:21 baest left 07:22 telex left 07:24 telex joined 07:26 baest joined 07:49 Ven joined 07:50 FROGGS joined 07:51 nige left 07:52 rurban joined
FROGGS o/ 07:55
FROGGS yawns
Ven \o FROGGS
FROGGS hi Ven 07:56
sjn good *, #perl6
07:57 baest left, vike left
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
I also skimmed the module list and all of the "important" modules passed
(did these tests on linux/moarvm)
nwc10 FROGGS++ # the BBC for Perl 6 07:58
FROGGS BBC?
nwc10 Bleadperl Breaks CPAN
p5p gets reports from the BBC 07:59
(Andreas)
you're in Berlin too?
FROGGS ahh :o)
ohh yes
nwc10 and you hack on PAUSE? :-)
FROGGS not at the moment, no :P
and also not at the QA
08:00 vike joined
FROGGS act.qa-hackathon.org/qa2015/wiki?node=Projects 08:00
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
and the latter might be done at the first day... hopefully
08:02 Ven left
FROGGS [Sno] also wants to do something about ffi's, but I consider the spectest/ecosystem thingy more important tbh 08:02
08:03 alini left 08:04 Rounin joined
[Sno] FROGGS: I think my discussion with you about that is about 30 minutes or so 08:05
rest can be done remotely
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
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
[Sno] I fully agree 08:07
FROGGS so that pmichaud++ and all others can start annotating the spectests
moritz anybody fancy doing the star release this month? 08:10
08:13 burnersk left, [ptc] left, vike left, burnersk joined
FROGGS moritz: I do not fancy it but I can probably do it 08:13
08:14 darutoko joined, [ptc] joined
moritz raydiak: you module Math::ThreeD should be updated, method at_pos -> AT-POS 08:17
*your
masak: ^^ same for yapsi
08:18 Ven joined
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.
moritz timotimo: SDL2_Raw uses at_pos in an example; please change that to AT-POS
08:19 vike joined 08:30 rurban_ joined 08:37 J-L left 08:41 sergot joined, zakharyas left 08:42 fhelmberger joined 08:44 alini joined 08:46 kurahaupo joined 08:51 rindolf left 08:54 brrt joined
brrt \o 08:54
anyone trying to watch the eclipse today?
FROGGS brrt: should already be dark at your place, right? 08:55
brrt no, it's just starting
but it's cloudy as hell here
FROGGS I've heard it is darker in cologne already, but not so in berlin
ohh, we've nice weather
grondilu non-cooperating weather here in France
brrt who stages an eclipse on a cloudy day 08:56
really
FROGGS grondilu: github.com/grondilu/openssl
err
grondilu what about it?
FROGGS grondilu: github.com/grondilu/openssl/pull/2
grondilu oh yeah 08:57
FROGGS I guess I'll drop two modules from mrhdies from the ecosystem, I've four unapplied PRs in his repos 08:58
(for a year now)
this would be about Inlib2 and IUP
grondilu++
08:59 abraxxa joined
abraxxa no 2015.03? 08:59
FROGGS abraxxa: there is: rakudo.org/downloads/rakudo/ 09:01
abraxxa: compiler release though, not star yet
brb 09:02
09:02 cschwenz joined
abraxxa FROGGS: i see 09:05
how long is star usually delayed?
moritz "until it's done"
just look at the dates of the blog posts on rakudo.org to get a feeling 09:06
09:07 kurahaupo left 09:08 dakkar joined, kaleem joined
abraxxa for my dbiish development rakudo itself is ok 09:08
09:08 spider-mario left 09:09 coffee` joined
moritz also you can always 'panda install Task::Star' to get the modules that are shipped with star 09:09
09:11 tinyblak left
abraxxa would you recommend the tarball or rakudobrew? i'm still switching between both 09:13
09:13 kjs_ joined
moritz rakudobrew 09:13
abraxxa ok 09:14
09:15 jack_rabbit left 09:19 nige joined 09:21 baest joined 09:29 baest left
abraxxa moar built ;) 09:32
09:34 baest joined
abraxxa so point me at the right loc to improve the Cannot call 'OCIBindByName'; none of these signatures match: error message 09:36
timotimo i think the rakudo star release this month ought to refer to the solar eclipse in some way 09:47
brrt yes
(any luck seeing it so far? almost nothing happened here)
timotimo yeah, i had luck 09:48
we put a small hole in a cereal box with a needle (after unfolding said box) and that gave us a few nice projections
i believe i'm much further to the south compared to you, as you're in the netherlands
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
just a slice of sun remaining
timotimo imgur.com/PuZVakU 09:52
09:53 tinyblak joined
brrt yes, pester 09:54
timotimo imgur.com/KkZBewO
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
also, one of the ops is "commented out" with a very early break statement
imgur.com/Jn2Xj6i
brrt i'll look 09:56
timotimo and then explain to me why there's no performance improvements, only penalties :( 09:57
09:57 espadrine joined, kjs_ left 10:00 morjo joined 10:01 laouji left, eli-se joined 10:04 chenryn left
dalek ar: 3be6a38 | moritz++ | / (7 files):
Prepare parrot suspension
10:06
ar: 79d9752 | moritz++ | / (7 files):
Merge branch 'birdless'
ar: da8a9d3 | moritz++ | / (3 files):
Bump some versions
10:07
moritz m: say 42."floor"
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:08
timotimo hmm, good point 10:09
dalek ar: 1ec5cfe | moritz++ | modules/ (6 files):
Update module versions
10:11
10:11 kjs_ joined
dalek ar: 2ca0f6e | moritz++ | Configure.pl:
Fix syntax error in Configure.pl
10:13
timotimo brrt: t.h8.lv/p6bench/2015-03-20-virtual_...ual_2.html - see the sadness for yourself 10:14
10:15 eli-se left
timotimo it can't be because the generated ASM is a bit roundabout, can it? 10:15
compared to non-virtual, we pass many more arguments
and the same kind of call might be made more efficiently by the gcc-generated code we've had before 10:16
10:16 kaleem left
masak moritz: teaching now, but might patch Yapsi tonight. 10:24
10:24 Ven left
dalek Heuristic branch merge: pushed 30 commits to rakudo/newio by lizmat 10:31
10:32 |Tux| left 10:39 chenryn joined, |Tux| joined
brrt let me see 10:40
10:44 colomon left
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:44
10:47 rurban left 10:48 tinyblak left
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
grondilu try coercing to Str with my $fil_jpg = ~$fil 10:51
m: for dir(".") { say ~$fil }
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␤»
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␤»
grondilu m: for dir(".") { say ~$_ }
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…»
morjo grondilu: That seems to work. Thanks :)
10:56 colomon joined
|Tux| shame that π works DWIM, but $i² (nor ($i)²) does not 11:00
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 π²␤»
FROGGS m: sub postfix:<²>(\a) { a ** a }; say π²
camelia rakudo-moar ce69bb: OUTPUT«36.4621596072079␤»
FROGGS |Tux|: ^^
|Tux| :)
FROGGS |Tux|: it is just not defined yet... 11:03
|Tux| that is wrong :)
² = **2
FROGGS perhaps :o)
err, yes
m: sub postfix:<²>(\a) { a ** 2 }; say π²
camelia rakudo-moar ce69bb: OUTPUT«9.86960440108936␤»
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?
grondilu after the symbol ² seems to be on most keyboards.
FROGGS well, ² only has one meaning AFAICT, so it could be in core...
|Tux| and ³ 11:06
grondilu there are exponent symbols up to nine, right?
|Tux| ² and ³ are in iso-8859-1 iirc 11:07
|Tux| checks ...
grondilu on the other hand, perl6 is not quite great to write maths anyway.
hopefully there will be a slang for it.
FROGGS abraxxa: did you provide any information on this? I don't sport it in the clogs
abraxxa FROGGS: hi! information on what? 11:08
|Tux| ² and ³ are in a lot of cp****, all iso-8859-*
abraxxa i changed CArray $bindpp, to OCIBind $bindpp is rw,
FROGGS abraxxa: about your "multi sub not matching error messag"
+e
grondilu . ²
.u ²
abraxxa which should now work with 2015.03
yoleaux U+00B2 SUPERSCRIPT TWO [No] (²)
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
FROGGS abraxxa: I mean, I could (somehow) point to your harddisk but that's not quite helpful
abraxxa i want rakudo to give a better error message
no harddisk here ;)
FROGGS ahh, now I got it
:o)
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?
abraxxa maybe, not sure if I was around when he wrote something regarding this
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␤»
abraxxa if you have 10 params like I do it's quite hard to figure out which one didn't match
grondilu m: sub prefix:<√> { sqrt $^x }; say √pi
camelia rakudo-moar ce69bb: OUTPUT«1.77245385090552␤»
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␤»
grondilu kind of expected $^ to mean 'anonymous self-declared parameter'
abraxxa FROGGS: can't find it in my backlog 11:13
FROGGS abraxxa: irclog.perlgeek.de/perl6/2015-03-19#i_10306728 11:14
abraxxa LTA?
FROGGS less than awesome
|Tux| FROGGS, gist.github.com/Tux/5d19ab1758e6b37538ae 11:15
just built from git
FROGGS |Tux|: you forgot to start with 'sub '
|Tux| :( 11:16
|Tux| hides in shame
FROGGS :D
abraxxa: btw, turning ':(Int $, Str $)' into ':(Int, Str)' as TimToady suggested mean tweaking the gist method of Signature I think 11:17
m: say :(Int, Str).gist 11:18
camelia rakudo-moar ce69bb: OUTPUT«:(Int $, Str $)␤»
FROGGS yeah
we can drop the $ if it really is only $
(and not slurpy or so)
abraxxa no idea what you're talking about, sorry
11:18 kaleem joined
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?
abraxxa you mean it should be possible to remove them and only define the types?
FROGGS err, no
abraxxa: what are you up to?
abraxxa i want to improve "Cannot call 'OCIBindByName'; none of these signatures match:"
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
abraxxa i want it to tell me the name of the method and which of the params failed a match
FROGGS hmmmm
can you gist an example?
abraxxa or highlight the matched for each multi sub at least 11:21
at the bottom: gist.github.com/abraxxa/c0f5cf283a90e143c286
FROGGS maybe we should fake up how we'd wish this error message should look like, and think about how we get there
abraxxa yes, good plan
but that might depend on what's possible 11:22
i'd say failing on the first non-match and reporting it is ok
moritz that's not how multi dispatch works
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
your message could also state: Calling 'OCIBindByName' will never work with argument types (Pointer, Pointer, int32, ...)\nExpected any of:\n 11:25
so we can potentially unify both error messages
11:31 kjs_ left 11:32 kjs_ joined, rurban joined 11:42 rurban left 11:50 Ven joined 11:56 eli-se joined 11:59 cdc_ joined
cdc_ Hello #perl6 11:59
FROGGS hi cdc_
cdc_ perl6: say { True }.count
camelia rakudo-moar ce69bb: OUTPUT«1␤»
cdc_ o/ FROGGS 12:00
I was expecting 0 ^^
ie .count == .arity
do I hit a bug? 12:01
FROGGS m: say say { True }.WHAT
camelia rakudo-moar ce69bb: OUTPUT«(Block)␤True␤»
FROGGS m: say { True }.signature
camelia rakudo-moar ce69bb: OUTPUT«:($_? is parcel)␤»
FROGGS m: say { True }.signature.arity
camelia rakudo-moar ce69bb: OUTPUT«0␤»
psch m: say ({ True })(1)
camelia rakudo-moar ce69bb: OUTPUT«True␤»
FROGGS count seems to be about something else 12:02
psch m: say ({ True })(1, 2)
camelia rakudo-moar ce69bb: OUTPUT«Too many positionals passed; expected 0 or 1 arguments but got 2␤ in block <unit> at /tmp/7ZuB3vO9Vi:1␤␤»
psch o/
any block can take $_ from the outside, no?
FROGGS ahh, yes
and the signature even shows it
abraxxa FROGGS: anything i can do to help?
FROGGS well, do what I said :o) 12:03
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
camelia rakudo-moar ce69bb: OUTPUT«0␤Inf␤»
12:05 noganex left
psch cdc_: .arity is the minimum number of positionals, .count is the maximum number of positionals 12:05
cdc_ psch: I didn't understand the $_? thing at first, thanks! 12:06
perl6: say (sub { True }).count 12:07
camelia rakudo-moar ce69bb: OUTPUT«0␤»
cdc_ that what's I need it seems
*that's what
12:11 eli-se left 12:15 lichtkind joined
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:15
12:17 noganex joined, kaare_ left
FROGGS maybe that helps: github.com/perl6/book/blob/master/...spatch.pod 12:18
and also: blogs.perl.org/users/tyler_curtis/2...patch.html 12:19
12:20 Ven left
dalek kudo-star-daily: db091eb | coke++ | log/ (9 files):
today (automated commit)
12:20
12:21 tinyblak joined, Ven joined 12:25 raiph joined
brrt timotimo, no idea why it's slower 12:28
12:29 andreoss left
abraxxa FROGGS: i'll look into it next week 12:33
12:35 rindolf joined 12:36 chenryn left 12:43 baest left 12:46 kaleem left 12:47 anaeem1 left 12:48 anaeem1 joined 12:52 anaeem1 left
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
makes me think that now multi dispatch works but this triggers a different error
FROGGS can you gist the backtrace? 12:58
I mean, it must point to some line number
abraxxa the OCIBindByName call
in sub OCIBindByName at /home/ahartmai/perl6/git/DBIish/lib/DBDish/Oracle.pm6:135 # the first multi sub definition 12:59
in method execute at /home/ahartmai/perl6/git/DBIish/lib/DBDish/Oracle.pm6:424 # the call of the multi sub
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:01
FROGGS what's $v.REPR? 13:02
ahh nvm, p6oaque
abraxxa Cannot find method 'Str': no method cache and no .^find_method
FROGGS you cannot call natviesizeof of an big integer (Int) 13:03
abraxxa BTW $v ~~ long doesn't match an Int
FROGGS correct
abraxxa i think the type matching should use the Perl 6 types and convert those to C types
FROGGS m: use NativeCall; say long ~~ Int
camelia rakudo-moar ce69bb: OUTPUT«True␤»
FROGGS m: use NativeCall; say Int ~~ long
camelia rakudo-moar ce69bb: OUTPUT«False␤»
FROGGS see
abraxxa can that be translated to: 'can the left type be represented by the right one'? 13:04
so a long can be converted to an Int but not the other way round?
arnsholt That's how subclasses normally work, yeah =) 13:05
13:05 kjs_ left
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
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
FROGGS you can pass a integer value to a function that takes an int8, int16, int32, long and longlong
abraxxa looks at Pg and SQLite binding
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
camelia rakudo-moar ce69bb: OUTPUT«Pointer<0x4bb5c00>␤»
FROGGS abraxxa: do you see what I mean? ^^
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?
abraxxa arnsholt: yes, like before just a single method
masak btw, re irclog.perlgeek.de/perl6/2015-03-16#i_10288676
it was ALGOL 60
arnsholt IIRC Int gets converted to 64-bit
masak arnsholt came closest with ALGOL 68
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
arnsholt Oh, I was meaning to go through the logs to find the answer. Thanks! 13:10
masak: But that quote is from an internet essay of some kind, no?
abraxxa FROGGS: so what do you propose to handle that?
arnsholt I think I've read it, which helped =)
FROGGS abraxxa: yes, you can pass an Int to a long param because long isa Int 13:11
masak arnsholt: seems to be from web.eecs.umich.edu/~bchandra/course..._Hints.pdf
(and so it was C.A.R. Hoare who said it)
abraxxa FROGGS: but Int ~~ long still returns true?!
masak teaching &
FROGGS m: use NativeCall; say Int ~~ long
camelia rakudo-moar ce69bb: OUTPUT«False␤»
FROGGS abraxxa: no 13:12
abraxxa i meant false
FROGGS ó.ò
abraxxa which i don't understand if it is the same
FROGGS m: use NativeCall; say long ~~ Int
camelia rakudo-moar ce69bb: OUTPUT«True␤»
FROGGS m: use NativeCall; say long.^mro
camelia rakudo-moar ce69bb: OUTPUT«(long) (Int) (Cool) (Any) (Mu)␤»
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
FROGGS a long inherits from Int
so you can pass an Int to a long param
abraxxa so my if/elsif tree is wrong?
if $v ~~ Int {
it should be the other way round?
where are the docs for the ~~ operator?
doc.perl6.org/language/operators#infix_~~ 13:14
RHS.ACCEPTS(LHS)
Int.ACCEPTS(long) returns false?
why?
psch m: use NativeCall; say Int.ACCEPTS(long) 13:15
camelia rakudo-moar ce69bb: OUTPUT«True␤»
psch m: use NativeCall; say long ~~ Int
camelia rakudo-moar ce69bb: OUTPUT«True␤»
13:15 rurban joined
FROGGS abraxxa: it does not help to mix up true and false :/ 13:16
(or left and right for that matter)
abraxxa my RHS are types and the LHS (typed) variables
is the smartmatch operator the correct way?
psch m: use NativeCall; my long $x = 5; say $x ~~ Int 13:17
camelia rakudo-moar ce69bb: OUTPUT«True␤»
13:17 retupmoca left, skids joined
FROGGS abraxxa: yes, smart match is fine 13:17
abraxxa: but the question is, what do you want to achieve there? 13:18
what if the user passes an Int with value 42? what do you want to do then?
abraxxa in words: can the var be passed as integer/float/string
FROGGS yes, sure
abraxxa because that's what OCI differentiates when binding
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
FROGGS because:
abraxxa not Rat?
FROGGS m: my int8 $a; say $a ~~ Int
camelia rakudo-moar ce69bb: OUTPUT«True␤»
FROGGS hmm, probably Int, Real, Str 13:20
abraxxa ok, and how do i find the length in bytes for the numeric types?
i'd thought nativesizeof on the p6 var
but that gives me 'NativeCall op sizeof expected type with CPointer, CStruct, CArray, P6int or P6num representation, but got a P6opaque' 13:21
for an Int
m: use NativeCall; my Int $v = 1; say nativesizeof($v);
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␤␤»
FROGGS abraxxa: there is no nativesive for an Int, because that has no representation in C
abraxxa to what does NativeCall convert it then? 13:22
arnsholt On call, an Int is converted into a 64-bit int IIRC
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)
abraxxa I've used 'long' for the multi method definition
FROGGS arnsholt: grr, stop!
arnsholt: it is not a good idea to mix that up
Int has nothing to do with C 13:23
arnsholt FROGGS: Well, last I looked at the code, that's what happens
abraxxa FROGGS: what i don't like about the multi sub is the separation of the if/elsif and the multi sub definition
FROGGS arnsholt: it is what happens, but it should be disallowed
abraxxa: I'd say that you can refactor it when it works
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
abraxxa same for the floats to use double instead of float? 13:25
FROGGS yes
abraxxa hm, i've used num32 for the floats
FROGGS otherwise you'd have to check in what type your value fits into
use num64 for double 13:26
but you also need to pass the correct type id
so oracle knows you are passing a double there
abraxxa ok, so far so good
13:26 rurban left
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
even if i only have a single multi sub for the string type it doesn't match without changing anything else
FROGGS abraxxa: you can also give them three different names... bindparam_int, bindparam_num, bindparam_str 13:28
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
FROGGS: yeah, that's the intermediate solution i'm opting for
FROGGS: the 'is rw' for Pointers seems to still not work 13:30
constant OCIBind = OpaquePointer;
should i use Pointer instead?
FROGGS the 'is rw' is *not* for pointers
abraxxa you said it will for 2015.03 yesterday?! 13:31
FROGGS it is for int8 and friends
abraxxa to get rid of my @bindpp := CArray[OCIBind].new; @bindpp[0] = OCIBind;
and replace it with my OCIBind $bindpp;
maybe I misunderstood you yesterday on this
13:31 thilp left
abraxxa i often need to pass pointer to pointers in OCI 13:32
13:34 thilp joined, anaeem1 joined, kjs_ joined 13:35 kjs_ left
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:35
abraxxa FROGGS: yeah, understood that 13:36
i just need it for pointers too
for return by pointer
FROGGS the return type is something different
there you can return a Pointer, and cast that
rjbs Is "nom" still the branch I want when I want to install latest?
timotimo yup
rjbs Holy cow there are a lot of merge commits! 13:37
timotimo hehe, possibly the newio branch
abraxxa FROGGS: you pass pointers to the function which will be filled by a pointer to an object 13:38
FROGGS: the OCI functions all return an sword
you pass it pointers to an error handle, bind handle, etc
i tried setting $method to the methodname and calling my $errcode = $method() 13:39
FROGGS there you still need CArray I think
abraxxa i'm sure that's supported but my syntax is wrong
FROGGS: ok
13:39 nebuchadnezzar left
abraxxa the error i get is Cannot find method 'postcircumfix:<( )>' 13:40
13:40 nebuchadnezzar joined
FROGGS I should try if passing a Pointer[Pointer] works, but cannot guide you to do that :o) 13:40
abraxxa: when you do what?
you cannot just throw error messages around and dont talk about what you did
abraxxa i now have three different methods OCIBindByName_Int, OCIBindByName_Real and OCIBindByName_Str
in the if/elseif block i decide which to call later and store its name in $method 13:41
FROGGS: i did: (14:39:35) abraxxa: i tried setting $method to the methodname and calling my $errcode = $method()
13:41 hahainternet left
FROGGS but these are not methods, right? 13:41
13:41 hahainternet joined
abraxxa they are 13:42
FROGGS these should be subroutines, really
abraxxa yes, sorry
they are subs
FROGGS good
13:42 lichtkind left
FROGGS you exactly do you store something $method? 13:42
abraxxa the name 13:43
for example $method = 'OCIBindByName_Int';
FROGGS you cannot invoke a string just like that
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␤␤»
FROGGS m: sub foo { say 42 }; my $sub = 'foo'; "$sub"()
camelia rakudo-moar ce69bb: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block <unit> at /tmp/YsEOa_PTrH:1␤␤»
FROGGS m: sub foo { say 42 }; my $sub = 'foo'; ::($sub)()
camelia rakudo-moar ce69bb: OUTPUT«===SORRY!===␤No such symbol 'foo'␤»
FROGGS m: sub foo { say 42 }; my $sub = 'foo'; ::('&' ~ $sub)()
camelia rakudo-moar ce69bb: OUTPUT«42␤»
FROGGS erks
m: sub foo { say 42 }; my $sub = &foo; $sub()
camelia rakudo-moar ce69bb: OUTPUT«42␤»
FROGGS that's how you want to do it
m: sub foo { say 42 }; my &sub = &foo; &sub()
camelia rakudo-moar ce69bb: OUTPUT«42␤»
FROGGS or even like that 13:45
abraxxa works
Unknown type longlong used in native call.
the NativeCall docs mention longlong
FROGGS I bet you are using and old NativeCall.pm from somewhere 13:46
abraxxa I've built 2015.03
long works
FROGGS m: use NativeCall; say longlong 13:47
camelia rakudo-moar ce69bb: OUTPUT«(longlong)␤»
abraxxa 4.85 of type Rat gives me This type cannot unbox to a native number
13:47 pecastro_ joined
moritz yes, you have to coece to Num 13:47
FROGGS abraxxa: call .Num on it
abraxxa nice ORA-01024: invalid datatype in OCI call 13:48
13:48 eli-se joined
abraxxa i'll commit that because I have to go 13:48
13:49 pecastro left
FROGGS now I need some coffee and skrillex to come down... having a cold sucks 13:49
I can't think properly :o(
abraxxa FROGGS: pushed 13:51
FROGGS: get well soon!
bye! 13:52
13:52 abraxxa left
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
TimToady \o/
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?
moritz iv: please blog about it
Ulti ^
TimToady
.oO(fantasy role playing?)
moritz functional reactive programming?
iv Ulti: I used rakudo star from git on OS X.
moritz
.oO( fast, responsive perl )
13:54
iv Yes, functional reactive programming, i.e. Supply.
Ulti iv cool, were you aware of any other options?
Ulti should make a questionnaire >:3
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
Ulti iv there is also rakudobrew which makes the git install and update a little easier 13:56
iv Thanks, I didn't know about that. 13:57
It was really easy to build rakudo star, though. I assume rakudobrew isn't tied to star releases, though
Ulti no you choose a version otherwise it gets you the latest commit 13:58
well the latest commit to the nom branch 13:59
iv the nice thing is if you want several versions and backends it lets you manage that in the same style as perlbrew
iv Nod, though I don't see I need that
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
moritz the one thing that rakudobrew doesn't give you is the mapping of compiler versions to module versions
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
Ulti: well, it'll try. And fail horribly 14:02
Ulti ahh yeah
iv Sorry, I meant Match.trim, not stringification.
Er.
Match.gist
moritz iv: Match.gist?
Ulti does panda understand versions yet?
iv There we go. Sheesh.
moritz too slow
FROGGS Ulti: no
Ulti does it have to be a tag in the git repo?
ahh ok
14:07 cschwenz left
|Tux| RFC7111 finished 14:10
14:10 retupmoca joined
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
It's not using any CPU.
FROGGS it should print its usage
iv Yep, Rakudo Star's version does that. 14:14
moritz iv: maybe it's trying to fetch project.json, and hangs? 14:15
I mean, the network or DNS hangs?
iv Maybe, yeah.
`panda --help` hangs too, so I can't see if I can give it debug flags
`curl ecosystem-api.p6c.org/projects.json` works. Strange. 14:18
14:20 eli-se left
timotimo it's very unfortunate that panda hangs for the ecosystem thingie even when you don't actually need it 14:21
14:21 eli-se joined
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.
hoelzro doesn't panda get mad if you have IPv6 set up, but no routing?
timotimo yeah, you'd install p6doc manually 14:22
hoelzro I've noticed panda problems when that's my situation
timotimo mhm :(
iv Maybe Star is the better installation mechanism for me :)
moritz panda install doc 14:23
oh wait, panda doesn't work for you :(
doc.perl6.org/type/IO::Socket#method_send 14:24
no timeout
14:27 Diederich left
hoelzro moritz: did you get a chance to think about how to add introspection to the linenoise completion branch? 14:27
iv github.com/tadzik/panda/issues/140 This is the issue I had with Homebrew's panda.
hoelzro I don't mind doing the work, I just need to know how to accomplish it
iv And this is the bug about `panda --help` needing network access: github.com/tadzik/panda/issues/64 14:28
I was going to submit new bugs but as they already exist, I suppose I should submit PRs instead…
Ah. Does Panda have to run on all backends? 14:29
Relevant in case there are concurrency differences.
moritz hoelzro: not really, sorry. Only that it should probably go through OUTERS::
hoelzro: or LEXICAL::
14:29 eli-se left
moritz m: my $x = 42; say LEXICAL::<$x> 14:29
camelia rakudo-moar ce69bb: OUTPUT«42␤»
hoelzro moritz: no worries; I didn't have time for it last night, and I don't think I will until Sunday (maybe)
moritz m: my $x = 42; say LEXICAL::<&sin>(pi/2) 14:30
camelia rakudo-moar ce69bb: OUTPUT«1␤»
moritz m: say LEXICAL::.keys.grep(*.name.match(/sin/))
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…»
moritz m: say LEXICAL::.keys.grep(Callable & *.name.match(/sin/))
camelia rakudo-moar ce69bb: OUTPUT«␤»
14:30 anaeem1 left
moritz m: say LEXICAL::.keys[^20] 14:30
camelia rakudo-moar ce69bb: OUTPUT«$! $/ $_ GLOBALish EXPORT $?PACKAGE ::?PACKAGE $=pod !UNIT_MARKER␤»
14:31 anaeem1_ joined
moritz m: say OUTERS::.keys[^20] 14:31
camelia rakudo-moar ce69bb: OUTPUT«␤»
moritz hm
guess I need to study those a bit more
14:32 eli-se joined
cdc_ sub a { !!! }; a(); CATCH { say .WHAT } 14:33
perl6: sub a { !!! }; a(); CATCH { say .WHAT }
camelia rakudo-moar ce69bb: OUTPUT«(X::AdHoc)␤Stub code executed␤ in sub a at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤»
cdc_ I was expecting something like X::Stub instead
moritz +1
[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:34 anaeem1_ left, anaeem1 joined
Ven [Coke]: github.com/Homebrew/homebrew/blob/...do-star.rb 14:34
[Coke] yes, found it thanks to github search. Thanks. 14:35
Don't recall that being mentioned here before.
14:35 anaeem1 left 14:36 anaeem1 joined
ugexe ugh, that delete PANDA_SUBMIT_TESTREPORTS in panda randomly borks my smoke tests :( 14:38
14:40 anaeem1 left
dalek kudo/nom: 6851a1f | TimToady++ | src/Perl6/Actions.nqp:
fix busted indentation in make_yada
14:42
TimToady cdc_: I think it's that way for parallelism between warn, fail, and die cases, see make_yada ^^^
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␤␤»
TimToady I guess you can 14:46
there is no X::Stub yet, feel free to add one
14:52 rurban joined
hoelzro ok, I'll give those a shot when I find some time 14:55
14:56 molaf joined
hoelzro [Coke]: I used to maintain that formula until I stopped using a macbook 14:56
14:56 rmgk_ joined, rmgk is now known as Guest49010, Guest49010 left, rmgk_ is now known as rmgk
cdc_ TimToady: thanks, I'll take a look at it. 15:01
15:09 FROGGS[mobile] joined, FROGGS left 15:12 [particle] left 15:13 brrt left 15:19 rmgk_ joined, rmgk is now known as Guest27883, Guest27883 left, rmgk_ is now known as rmgk
FROGGS[mobile] TimToady: what would be your reaction to a postfix:<*> exported by NativeCall? 15:20
15:21 Rounin left
FROGGS[mobile] hmmm, that would not even work in attribute or parameter declarations... 15:21
TimToady thinks that wildly adopting C syntax is likely to turn Perl 6 into C :/ 15:22
psch gist.github.com/peschwa/8969d227fb3b2e799e92 \o/ 15:24
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
15:25 [particle] joined
psch wonders where to doc that 15:25
FROGGS[mobile] I just dont want to write Pointer[foo] everywhere 15:26
'is rw' works fine in params, but means something else for attrs for example 15:28
hoelzro .oO( OUTERS:: just makes me think of "ouders" ) 15:31
m: say OUDERS::<moeder>
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>␤»
hoelzro didn't think so =)
the issue with LEXICAL and OUTERS is that it's the lexical/outer scopes of the completion routine, not the REPL itself 15:32
is there a way we could get *that*? 15:33
hoelzro actually has no idea on how my $var works in the REPL
Ven gist.github.com/vendethiel/fc7a5de4738da4c2f70b converted from awk github.com/rightfold/tools/blob/master/todo.awk 15:34
TimToady hoelzro: poorly 15:35
hoelzro =(
dalek Heuristic branch merge: pushed 219 commits to rakudo/eval-server-improvements by peschwa
Heuristic branch merge: pushed 36 commits to nqp/eval-server-improvements by peschwa 15:36
15:36 eli-se left, [particle]1 joined 15:37 eli-se joined, eli-se left 15:39 [particle] left, nige left
arnsholt hoelzro: Black magic, more or less =) 15:41
(Basically, the REPL code keeps adding outer scopes to each successive line in the REPL)
hoelzro whoa 15:42
15:43 fhelmberger left 15:45 nige joined
dalek Heuristic branch merge: pushed 38 commits to nqp by peschwa 15:45
psch uh 15:46
that's probably not right :/
15:46 telex left
arnsholt hoelzro: github.com/perl6/nqp/blob/master/s...er.nqp#L97 is the line that actually does the eval 15:46
hoelzro thanks arnsholt 15:48
dalek p: 9d3e790 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/tools/EvalServer.java:
Revert "Merge branch 'eval-server-improvements'"

This reverts commit b771669cf71b15f62c9406e751e4ff8432f11a3f, reversing changes made to 29758294da90027fec88385987ae5c16f9e288be.
15:48 telex joined
hoelzro arnsholt: what actually calls CTXSAVE, though? 15:49
dalek p: 34fdea8 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/tools/EvalServer.java:
Simplify running NQP code from Java.

This adds two 'run' methods to the EvalServer which lets us use the EvalServer from any Java application.
16:01
kudo/nom: 8ffcb2d | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoEvalServer.java:
Add a RakudoEvalServer to call Rakudo from Java.

This builds on the NQP EvalServer and simplifies the Interface.
kudo/nom: 8c0ff7f | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoEvalServer.java:
Only search until we found it
16:02 Ven left, skids left, skids joined
arnsholt hoelzro: One of the action methods in the HLL's grammar, IIRC 16:03
Possibly some interpolated code in the Grammar
hoelzro I see
arnsholt It's pretty clever, if a bit mindbending when you try to figure out the code =)
The same mechanism is used to supply an outer context to string evals 16:04
dalek kudo/nom: 970b89e | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoEvalServer.java:
Document neccessary CLASSPATH entries.
hoelzro ah ha 16:05
16:07 anaeem1_ joined
hoelzro NativeCall doesn't support var arg functions, does it? 16:07
arnsholt Not really
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
Depends on if it's printf levels of varargs, or a bit less volatile than that
16:09 raiph left
hoelzro arnsholt: it's just fcntl 16:09
japhb Varargs though has a special argument passing convention, doesn't it? 16:11
You'd have to hack that as well 16:12
16:12 mr-foobar joined
FROGGS[mobile] hoelzro: dyncall supports it btw 16:12
hoelzro I figured it would; it would just be a matter of getting our usage of it to support it as well 16:13
now that NativeCall is core, should bugs with it go into RT?
16:14 Ven joined 16:15 eli-se joined, eli-se left 16:17 muraiki joined
FROGGS[mobile] yes, why not 16:17
most stuff is coupled to all VMs anyway 16:18
hoelzro ok 16:19
16:20 eli-se joined, gfldex joined
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␤␤»
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␤␤»
raydiak m: use NativeCall; sub malloc (int32 $) returns Pointer is native {*}; say malloc 1;
camelia rakudo-moar 970b89: OUTPUT«Pointer<0x4628e20>␤»
16:24 eternaleye left 16:27 eli-se left 16:29 eternaleye joined 16:30 alini left 16:34 lnr left 16:35 lnr joined, lnr left, lnr joined, lnr left, lnr joined, lnr left 16:36 lnr joined, lnr left, lnr joined, lnr left, lnr joined, lnr left 16:37 lnr joined, lnr left, lnr joined, lnr left, lnr joined, lnr left 16:38 lnr joined, lnr left, lnr joined, lnr left, lnr joined, lnr left 16:39 lnr joined, lnr left
moritz Mouq: toml-pm6 has a method bind_key which you should rename to BIND-KEY 16:39
16:39 lnr joined, lnr left
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, lnr left 16:40 lnr joined, lnr left, lnr joined, lnr left, lnr joined, lnr left 16:41 ChanServ sets mode: +o jnthn, lnr joined, lnr left, jnthn sets mode: +b *!lnr@aim.engr.arizona.edu, lnr joined, lnr left, lnr joined
jnthn grmbl 16:41
flussence
.oO( a good algorithm for hiding joinspam is one of the great unsolved problems in computing )
16:43
moritz uhm, no 16:44
jnthn Seems to have quietened down now, so... 16:45
16:45 jnthn sets mode: -o jnthn
moritz iirc weechat allows you to only show joins/leaves of people when they also speak 16:45
so, delay showing joins/leaves until they are relevant for the discussion
and in irssi, I simply ignore them altogether in full-ish channels like this on (or #git with >1k participants)
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
i didn't see a single join/part before i read what you complained about and turned the filter off temporarily
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:47
moritz the big hurdle to switching is that I'd have to disconnect to start a different chat client :-) 16:48
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
aren't i supposed to open callgrind data files with kcachegrind?
oh, it's an empty file. great.
(had to cat (which perl6) in order to make callgrind pick up the right process) 16:51
16:52 eli-se joined
jnthn timotimo: I often use callgrind_analyze or whatever it's called 16:52
(for command line view)
eli-se hola
timotimo ah 16:53
16:53 raiph joined
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:54
16:54 eli-se left
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
What's the best way to report this ?
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
FROGGS[mobile] slurp*
16:56 Ven left
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
FROGGS[mobile] but there are also many a's and e's out there 16:58
pecastro_ FROGGS[mobile]: Yap slurp(:bin) ... that seems to work ... 16:59
I've bumped into it here -> github.com/azawawi/farabi6/blob/ma...6.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 :)
pecastro_ So, will the code need to be changed to check the type of the file prior to slurping it or ...
psch pecastro_: well, it definitely shouldn't throw a java exception 17:01
i'll have a look if i can wrap that to something you can CATCH in the perl6 level
or rather, i would, if my screen would respond to ^A^C and not give me a black window... :/ 17:02
17:02 prime joined
psch ah, there 17:02
jnthn going to find my train; bbiab 17:03
17:05 FROGGS joined
psch hrm, all this IO 17:12
pecastro_: fwiw, you can already CATCH it, but you still get the java exception text 17:13
which obviously doesn't help much, seeing as "Input length = 1" can't be easily interpreted as "wrong encoding" 17:14
i suppose we could throw an AdHoc with a different error message
17:14 eli-se joined
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
psch eli-se++ # general cheerfulness 17:17
17:17 larion joined
eli-se woohoo 17:18
17:20 rurban left, rurban joined, tinyblak left
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␤␤»
flussence m: sub foo(int() $a) { say $a }; foo(257);
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␤␤»
flussence m: sub foo(int $a) { say $a }; foo(257);
camelia rakudo-moar 970b89: OUTPUT«257␤»
flussence m: sub foo(int8 $a) { say $a }; foo(257);
camelia rakudo-moar 970b89: OUTPUT«257␤»
flussence (my assumption is the first one would truncate if it worked, and the last one would've thrown an error) 17:24
17:24 pecastro_ is now known as pecastro
flussence m: sub foo(int8 $a) { say $a.WHAT }; foo(257); 17:24
camelia rakudo-moar 970b89: OUTPUT«(Int)␤»
psch flussence: .WHAT promotes 17:25
m: say (int).WHAT
camelia rakudo-moar 970b89: OUTPUT«(int)␤»
psch uh
or maybe not?
i know there's a test marked as todo because of this
jnthn The int *type object* does not
'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 ...
psch oh, right
pecastro anyway ... I'll leave a note to the author ...
jnthn Native values, otoh, aren't objects.
flussence I'm guessing things like int8 only make sense in var declarations right now...
jnthn flussence: Well, they're interesting in parameter decls for th esake of native calling too, which does pay attention to them. 17:27
Also native arrays do store stuff compactly.
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
jnthn my int8 @arr takes 8 times less space then my int @arr, for example 17:28
psch pecastro: in any case, if the file *isn't* in ASCII it shouldn't slurp, i'd say 17:29
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:32 colomon left 17:34 colomon joined, kaare_ joined 17:35 skids left, espadrine left
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
FROGGS m: my int1 @vector 17:37
camelia rakudo-moar 970b89: OUTPUT«===SORRY!===␤MVMArray: Unsupported int size␤»
jnthn flussence: They use the same REPR, yes. Though arrays will not always use that REPR 17:38
Resizable native arrays will; sized ones will be a difference REPR
TimToady: No sub-byte sized types yet 17:39
17:39 diana_olhovik left
flussence FROGGS: you'd probably want "uint1" there :) 17:39
jnthn darn this train wifi is crap today 17:40
FROGGS :P
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␤»
jnthn
.oO( All the single ints...if you liked it shoulda put an abs on it )
17:43
But yeah, I didn't get to the uint stuff yet really
skids The uints inside a Buf or Array seem flawless as far as I've been able to tell. 17:44
*array
jnthn I think uint64 in those ain't quite right in array yet
17:45 geever joined
skids Good to know. I was just about to use those :-). Is uint32 also squirrely on a 32-bit machine? 17:48
17:48 dakkar left
jnthn Doubt it; think that should work reliably 17:49
arnsholt m: say Array[int] ~~ Array[int]
camelia rakudo-moar 970b89: OUTPUT«True␤»
arnsholt m: use NativeCall; say CArray[int] ~~ CArray[int]
camelia rakudo-moar 970b89: OUTPUT«False␤»
17:50 nige left
[Coke] wonders if we can perl6 this: blogs.perl.org/users/itcharlie/2015...-2015.html 17:52
retupmoca m: my $b = buf32.new(1, 2, 3); say $b.unpack('nn') # :(
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 kjs_ left
retupmoca (not that I need it, more curious as to if it worked) 17:53
dalek kudo/nom: 5112625 | TimToady++ | src/ (3 files):
Regularize compile-time sig mismatch reporting
18:02
ast: 9416576 | TimToady++ | / (3 files):
conform to new 'will never work' error messages
18:03
jnthn + # this works because methods always have at least one
+ # other parameter, *%_
...oops, not with "is hidden" :) 18:04
18:05 koo6 joined
eli-se I found the solution to Perl lacking recursive glob! 18:08
test => { TESTS => `zsh -c 'echo t/**/*.t'` }, # :D :D :D
geekosaur :p
TimToady now to figure out how to get the argument profile for a run-time dispatch failure... 18:10
18:11 Hor|zon left
jnthn Search for X::Multi::NoMatch in src/Perl6/Metamodel/BOOTSTRAP.nqp 18:12
TimToady yeah, that's the easy part :P 18:17
finding a string representation for $capture might be a bit tricksier 18:18
18:22 diana_olhovik joined, rurban_ left, nige joined
jnthn I'd try to turn it into a Perl 6 Capture 18:23
And pass that along to the error reporting thing
And have the typed exception do something with it when it produces the message
18:24 bayprogrammer joined
TimToady seems sane 18:24
certainly don't wanna insert any more into the hotpath 18:25
jnthn Indeed
Also it means that folks will be able to dshittunnel 18:26
lol
18:26 skids left
jnthn is hating this internet connection 18:26
18:26 skids joined
jnthn Folks will be able to CATCH it and do stuff with the original arg tuple. 18:26
The $capture there is quite a funky low level one, however 18:28
TimToady: I can get a Capture being sent along with the exception if you like 18:29
TimToady: And leave sanely gisting it to you
18:31 skids left, skids joined, skids left
TimToady I would appreciate that 18:32
18:32 skids joined
jnthn OK, will look at it nowish :) 18:32
18:34 rurban left 18:36 rurban_ joined 18:39 rurban joined 18:40 lumimies left, isacloud left 18:41 kjs_ joined, sunnavy left 18:46 anaeem1_ left 18:47 anaeem1 joined
dalek c: a56714e | (Ilmari Vacklin)++ | bin/p6doc (2 files):
Prettier usage output.
18:49
c: 94e302f | moritz++ | bin/p6doc (2 files):
Merge pull request #61 from wolverian/master

Prettier usage output for p6doc and p6doc-index.
FROGGS m: say Int.^can('Num') 18:50
camelia rakudo-moar 511262: OUTPUT«Num Num␤»
FROGGS m: say Int.can('Num') 18:51
camelia rakudo-moar 511262: OUTPUT«Num Num␤»
[Coke] FROGGS: I just answered him.
FROGGS yeah, me too sadly
18:51 anaeem1 left
[Coke] (if that's for the p6u question) 18:51
18:54 rindolf left 18:55 rindolf joined 18:56 spider-mario joined 18:58 grondilu left
dalek line-Perl5: ebd228c | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
s/hidden_from_backtrace/hidden-from-backtrace/
19:00
kudo/nom: a8ed359 | jnthn++ | src/ (2 files):
Include capture in multi-dispatch exceptions.
19:01
jnthn TimToady: ^^
[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␤»
[Coke] ^^ that works on OS X.
FROGGS case insensitive clod^Wfilesystem? 19:06
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
19:07 nige left
nine_ Seems to me like it's getting what it's expecting? 19:07
FROGGS nine_: please only put CArray into your signature
lizmat [Coke] FROGGS : that type of issue (use tEst) is on my radar :-) 19:08
FROGGS m: use NativeCall; say CArray[Pointer] ~~ CArray[Pointer]
camelia rakudo-moar 511262: OUTPUT«False␤»
19:08 Hor|zon joined
FROGGS lizmat++ 19:08
lizmat [Coke] FROGGS: I don't think we can give an error message at that point per se
FROGGS nine_: see? jnthn++ fixed that for "normal" typed roles, but not for the CArray weirdness
nine_ FROGGS: Calling py_fetch_error(Positional) will never work with declared signature (CArray, CArray, CArray, CArray)
lizmat but we *should* make sure that if someone does use Test later, that it dies 19:09
FROGGS nine_: :o(
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
FROGGS lizmat: I've not a good feeling what the right fix is tbh
lizmat perhaps a compile time warning would be better
nine_ FROGGS: indeed I am: my @exception; for ^4 { @exception[$_] := CArray[Pointer].new(); @exception[$_][0] = Pointer; } py_fetch_error(@exception);
FROGGS then please flatten it
19:10 raiph left
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
FROGGS [Coke]++
lizmat [Coke]: good, let's make sure it doesn't fall through the cracks
FROGGS m: use NativeCall; say CArray[Pointer] ~~ CArray
camelia rakudo-moar a8ed35: OUTPUT«True␤»
nine_ I really start hating these unpredictable flattening rules :/
FROGGS nine_: but this one really is predictable 19:12
moritz nine_: py_fetch_error has four args, right?
19:12 Hor|zon left
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.
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...
dalek p: 8564111 | moritz++ | / (3 files):
Install dir layout: replace "languages" with "share"

on MoarVM only, atm
19:14
p: 216b72e | moritz++ | tools/build/ (2 files):
Adjust install dirs on the JVM
p: 6e87561 | moritz++ | / (5 files):
Merge branch 'install-dir-layout'
jnthn lizmat: If it's going to die anywhere it needs to be on the "use" really...
FROGGS \o/
19:14 rindolf left
lizmat jnthn: true 19:14
jnthn: it all depends on the dev id/inode of the file being loaded that needs to be checked for duplicity 19:15
jnthn: and preventing the same file from being loaded twice
FROGGS lizmat: what if your are loading from a database/cloud/webservice?
lizmat well, that's the whole point of making the CompUnitRepo responsible for taking care of that
jnthn lizmat: What does Perl 5 do with these cases, ooc? 19:16
19:16 skids left
lizmat there's an %INC that keeps module name and file path 19:16
and it suffers the same problem
19:16 skids joined
dalek kudo/nom: 7920c16 | moritz++ | / (5 files):
Install dir layout: replace /languages/ with /share/

MoarVM only so far
19:17
kudo/nom: 1c58dd2 | moritz++ | tools/build/ (2 files):
Tweak install layout for the JVM
kudo/nom: 81e8b48 | moritz++ | docs/ChangeLog:
Changelog: language improvements (I hope :)
kudo/nom: 2a0f0d2 | moritz++ | / (7 files):
Merge branch 'install-dir-layout' into nom

Conflicts: docs/ChangeLog
kudo/nom: ca16e95 | moritz++ | tools/build/NQP_REVISION:
bump NQP revision to get the install-dir-layout merge result
jnthn perl -e "use Test::MorE;" # works on Windows :)
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
dalek line-Python: 73a833f | (Stefan Seifert)++ | lib/Inline/Python.pm6:
Fix py_fetch_error signature. We really pass only one array of 4 pointers.

Seems to be a refactoring left over that started throwing an error.
Thanks to FROGGS++ and moritz++ for helping to track this down.
19:18
line-Python: a224217 | (Stefan Seifert)++ | lib/Inline/Python.pm6:
invoke seems now be called CALL-ME
line-Python: 3cce952 | (Stefan Seifert)++ | lib/Inline/Python.pm6:
hidden_from_backtrace seems to be called hidden-from-backtrace now
19:19
lizmat afk again& 19:20
dalek kudo/nom: 6ebad24 | moritz++ | docs/ChangeLog:
Note install dir changes in ChangeLog
19:21
moritz FROGGS: fwiw this doesn't build the install dir exactly as you envisioned it, it just s:g/languages/share/ 19:22
19:24 kjs_ left 19:33 Hor|zon joined 19:34 baest joined
dalek kudo/nom: 8d82da9 | jnthn++ | src/core/natives.pm:
Add bit and byte native types.
19:36
eli-se I'm writing my first multimodule Perl program woo 19:37
19:37 mr-foobar left 19:38 mr-foobar joined
dalek kudo/nom: db5cb84 | moritz++ | docs/announce/2015.03.md:
retroactively use markdown table in release announcement

github should render it nicer this way
19:38
kudo/nom: a34bb56 | moritz++ | docs/ChangeLog:
Add bit and byte native types to changelog
19:39
line-Python: 8199039 | (Stefan Seifert)++ | lib/Inline/Python.pm6:
Use recent NativeCall's Blob support for speedup
line-Python: b45abdf | (Stefan Seifert)++ | pyhelper.c:
Don't normalize an exception if there was none

Avoids unneccessary work on every single call into Python
19:40 baest_ joined, baest left
nine_ .tell japhb Inline::Python should work again 19:40
yoleaux nine_: I'll pass your message to japhb.
dalek kudo/nom: b7a9744 | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoEvalServer.java:
Correct CLASSPATH example
moritz nine_++ 19:41
now I can update the rakudo for the perl6/doc cron job to 2015.03
19:41 lucas_ joined 19:42 rurban left
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?
jnthn Because that's how you create a Num 19:44
Ulti heh
jnthn uh, that sounded like a legit and good answer whlie I was writing it :P
Ulti :P
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
[Coke] scientific notation is the sugar for Num.new(....)
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
19:46 darutoko left
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)
mst it's reserved for Real Science
Ulti real scientists want to avoid floating point errors 19:47
eli-se How do you decide which sigil to use?
For new variables.
Ulti do they have a dimensionality to them?
if not $
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
eli-se But I can assign arrays to $x just fine. 19:48
Ulti sure
mst Ulti: meh, science is all an approximation anyway
that's why it's real and maths is rational
Ulti mst only because people fail at floating point endlessly
psch .oO( between 7 and g_64 )
eli-se ok
mst Ulti: this is probably funnier if you know I'm a pure maths grad
Ulti the best is p-values of 0 because they underflow 19:49
moritz psch: it could go into the doc/ dir of rakudo
Ulti and you get a little section in a paper saying the computer couldnt work it out
moritz psch: or it could go into perl6/doc aka doc.perl6.org
psch: as long as it's clearly marked as rakudo-jvm only
Ulti mst this is probably less funny if you know I am a scientist ;P
psch moritz: i'll go with the former. doc.perl6.org seems more as "what we roast for" to me
moritz psch: yes 19:50
19:50 raiph left
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.
mst Ulti: I assumed. It'd've been no fun otherwise.
skids m: my @a = 1,2; my $a = [1,2]; say 3,4 Z @a; say 3,4 Z $a;
camelia rakudo-moar 8d82da: OUTPUT«3 1 4 2␤3 1 2␤»
Ulti mst though I am mostly a webdev since I rage quit a month ago to make $$$ 19:51
its a hard sell for Perl 6 at work
moritz lucas_: there was a debate about that some days ago
Ulti depressingly so
lucas_ moritz: Thanks, I missed it. I'll look for it.
mst I expect initial perl6 adoption will be snuck in around the edges on tools that nobody specified anything for 19:52
that's how earlier perls got their initial users, AFAIK
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␤»
moritz mst: or "OK if I use perl for that?" without specifying the version :-)
Ulti I think NativeCall, native packed/shaped arrays along with BioPerl will sell it to most people I know
eli-se hmmmmmmmmmmmmmmmmmmmmmmmm
labster mst: I have dreams about using Perl 6 in production, but for now I just use it for development tools. 19:54
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.
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 eli-se left, baest_ left
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
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 zjmarlow_ left
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
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.
mst of course people don't generally like admitting that to themselves, so they come up with random rationalisations
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.
moritz lucas_: no, you're part of the solution :-)
sorry, meant labster
labster lucas_ is part of the solution too :)
moritz aye
dalek ar: f2041f4 | moritz++ | docs/announce/2015.03.md:
release annoucement draft
moritz lucas_++
labster++
lucas_ moritz, labster: thanks :D
19:58 zjmarlow joined
Ulti labster Inline::Perl5 goes some of the way to get around the ecosystem problem... also Java interop 19:58
moritz github.com/rakudo/star/blob/master...2015.03.md feedback very welcome 19:59
psch++ and FROGG++ (iirc) for reducing the JVM failures to three modules
Ulti hmmm actually if I got our DBIC schema working from Perl6 really transparantly I think people might have a go
psch moritz: mostly FROGGS++
labster I have not tried Inline::Perl5 in a long time, I should see how it's working these days
raydiak m: <1/2>.perl 20:01
camelia ( no output )
nine_ Ulti, labster: I'd be quite interesting in your experiences with Inline::Perl5 20:02
raydiak m: say <1/2>.perl
camelia rakudo-moar 8d82da: OUTPUT«"1/2"␤»
raydiak rat literals broken again :P
moritz raydiak: did they ever work?
20:03 isacloud joined
raydiak moritz: am I mistaken? coulda swore they used to 20:03
then broke again, then someone fixed at some point, now broken again...or else I'm confused again :)
20:04 eli-se joined
Ulti "Failed to unbox object to number" for Rat into a num 20:05
20:06 lumimies joined, lucas_ left
TimToady raydiak: they worked in niecza 20:06
Ulti nine_ I'll have a go at DBIC, wont be until later next week though
mst Ulti: remember you can bug riba and I :) 20:07
raydiak hm 20:08
raydiak forked an alternate reality again, pay no mind 20:09
on that subject though...what's blocking rat literals from implementation? 20:10
moritz raydiak: a champion that does it, afaict
also, should <1/2> return a Rat or a RatStr?
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
so RatStr, if that's still accurate
psch val() doesn't really exists, afaik
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...
TimToady no
moritz m: say <a b c>.pairs.^name
camelia rakudo-moar b7a974: OUTPUT«List␤»
psch at least &MAIN handling is where i saw &val...
TimToady <1/2> is Rat
moritz shouldn't that return a PairMap now?
raydiak TimToady: is S02 wrong, or my reading of it? 20:14
TimToady S02 is wrong 20:15
jercos m: "1e99".Rat.say 20:16
camelia rakudo-moar b7a974: OUTPUT«999999999999999967336168804116691273849533185806555472917961779471295845921727862608739868455469056␤»
jercos hrooms
I understand that, and realize that's entirely justified, but I still don't like it :p
moritz jercos: same here
vendethiel o/
raydiak \o
moritz m: say '9999999999999999'.chars 20:17
camelia rakudo-moar b7a974: OUTPUT«16␤»
psch o/ vendethiel
moritz jercos: but hey, 16 digits accuracy aren't bad
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. :-)
yoleaux 19:40Z <nine_> japhb: Inline::Python should work again
psch starting to doc jvm interop and i run into NYIs :/
TimToady the intent was that the absence of whitespace in <1/2> or in <1+2i> would suppress the val() semantics
but someone change S02 since the last time I looked...
moritz that should make things easier
jercos m: "1*10**99".Rat.say
camelia rakudo-moar b7a974: OUTPUT«1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000␤»
TimToady *ed 20:19
jercos shiny.
psch after less than 120 words
moritz psch: I know that feeling very well
psch moritz: so i don't have to feel bad for stashing the docs and hacking on it instead? :)
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
psch: not at all (as long as you eventually come back to the docs :-)
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. :-)
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>."
some guy called Larry, in 2012 20:22
github.com/perl6/specs/commit/dc8b...9fb10e9ee2
dalek ecs: 5d45b82 | TimToady++ | S02-bits.pod:
fix up bad edits by that Larry guy
20:25
moritz TimToady: rakudo's PairMap makes values only mutable if they already are containerized. That's intended, right? 20:27
TimToady don't remember, you'll have to ask that Larry guy, who was probably wrong 20:28
but sounds rightish 20:29
japhb String him up by his toenails and feed him organic carrots until he recants!
TimToady m: say (1/2).perl 20:31
camelia rakudo-moar b7a974: OUTPUT«0.5␤»
TimToady m: say (1/3).perl
camelia rakudo-moar b7a974: OUTPUT«<1/3>␤»
TimToady note the angles, and the fact taht at least on output, that is considered equivalent to a Rat
20:34 baest joined 20:35 Khisanth left
dalek c: 3085663 | moritz++ | lib/Type/PairMap.pod:
Add PairMap stub documentation
20:37
20:39 kjs_ joined 20:40 TimToady left 20:42 FROGGS left, TimToady joined
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:43
moritz Ulti: if you think about a Perl 6 ORM, I highly recommend looking at sqlalchemy 20:44
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
20:45 kjs_ left, FROGGS joined
Ulti looks 20:48
dalek kudo/nom: 179d453 | moritz++ | src/core/PairMap.pm:
PairMap cleanup

  * die instead of fail in ASSIGN-KEY and ASSIGN-POS. Assignents
   and bindings are not sunk (because that would make them eager),
   so those failures were all silent
  * do not randomize order in .perl; it is supposed to be an ordered
   type (or at least that is how I understood S32...)
20:49
moritz oops, I did it again
started writing docs, ended up patching Rakudo instead
skids moritz++ 20:50
timotimo :) 20:52
21:03 anaeem1 joined, skids left 21:04 Woodi left
japhb nine_: Still having problems with Inline::Python: t/call_p6_function_from_p5.t .. ok 21:09
panic: MUTEX_LOCK (22) [op.c:697].
t/callables.t .................
Dubious, test returned 2 (wstat 512, 0x200)
All 3 subtests passed
What I really want is a paste that converts newline into ␤
Although points to irssi for asking me if I actually wanted to paste. 21:10
timotimo you know xclip? :)
(weechat also has this confirmation thingie for pasting)
japhb timotimo: xclip will do that conversion? 21:11
timotimo no
but you can use it to get the contents, fix them up, and put them back in
and bind that to a key or very short command
japhb Hmmmm
Would work when I'm seated at my workstation, though less useful when I'm ssh'ed in from the laptop
timotimo ah 21:14
jdv79 how come panda can't install from a url?
for instance - can panda install JSON::Jansson? 21:15
21:17 muraiki left
retupmoca ok, OpenSSL should now bundle .dll files for windows (installed only if you don't already have ssleay32.dll in $PATH) 21:20
can I get somebody else on windows to 'panda install OpenSSL' and double-check my work?
japhb jdv79: Last I looked, panda could only install from a local directory or from something that exists in the ecosystem master list. 21:21
21:23 pyrimidine left 21:29 raiph joined 21:32 xfix left 21:43 rurban joined 21:45 diana_olhovik left, alini joined 21:51 telex left 21:52 telex joined 21:55 geever left 21:56 alini left, rurban left 22:07 coffee` left
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:16
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 gfldex left
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...
jnthn Uh...yes, beats me
Also becasue, uh...
...wait, how can that ever work?
Private method calls look up in a totally separate table
timotimo yeah
jnthn And we don't generate private accessor methods. 22:21
timotimo but it doesn't infiniloop any more
so that's a good thing at least :)
TimToady oh, it just dies differently
jnthn :P
TimToady and it's in a dies_ok
so that's not the solution either 22:22
but the test is written to override the accessor, but then it doesn't actually access it
so Mu.perl gets very confused
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
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.
TimToady but Mu.perl is relying on $.foo returning the value of the attribute
22:24 moritz left
jnthn Not especially, it's just expecting it to behave accessor-like afaik. 22:24
22:24 moritz joined
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
can I get the value through the MOP instead of through the accessor?
jnthn Yes, you can .get-value
On the meta-attribute
TimToady maybe that's appropriate here... 22:26
jnthn It's perhaps more robust in general.
Though I still think anybody writing an accessor that causes what you're seeing is probably doing something wrong.
timotimo could it be much slower, though?
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 anaeem1 left
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:27
.get-value isn't overly awful, anyways. 22:28
22:28 anaeem1_ joined
timotimo hehehe 22:28
OK
TimToady now I just have to figure out how to get to the meta-attribute... 22:29
is there a searcher for the meta-attribute of a specific name? 22:30
timotimo hm, don't you want all attributes anyway?
so maybe you can just for self.^attributes?
TimToady I guess 22:31
it's still get_value in S12-introspection/attributes.t 22:32
22:32 anaeem1_ left
jnthn TimToady: Aren't you already looping over .^attributes already? 22:33
(in .perl)
It may still be .perl in Rakudo :) 22:34
uh, .get_value
TimToady that's what timotimo just said
jnthn But no, there is (deliberately) no method to get one by name.
And we aren't going to have one.
Because it's not *meant* to be easy to do that.
TimToady sure, I can buy that :)
Uglification and Derision, and all that
jnthn aye :) 22:35
22:35 CurtisOvidPoe left
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:38
22:40 LonelyGM joined
LonelyGM Good evening 22:40
TimToady o/ from sunny California 22:41
LonelyGM Rainy and cold Hungary :/ was your trip good? 22:42
timotimo t.h8.lv/p6bench/2015-03-20-virtual_...ually.html - YES.
22:43 raiph left
timotimo oh 22:44
hmm
but we also turned on lazy deserialization directly after the release
that would explain the first two results
TimToady LonelyGM: yes, good meaning uneventful
well, at least once we got on the airplane...
the bit in Romania was eventful, though perhaps not quite so many events as in Hungary :) 22:45
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 github.com/rakudo/rakudo/pull/392 and give feedback if I need it? haven't attempted anything like this in rakudo before
LonelyGM TimToady: so waiting for the next opportunity to see ypu in Budapest or in Mountain View ;) 22:49
nine_ japhb: I've only found mention of this error once in irclog.perlgeek.de/perl6/2014-10-04/text at 8:31 22:50
dalek kudo/nom: c13d1b4 | TimToady++ | src/core/Mu.pm:
Mu's .perl should use raw primitives
22:53
kudo/nom: 0bb0370 | TimToady++ | src/core/Exception.pm:
X::Multi::NoMatch message now includes capture
22:53 larion left 22:56 LonelyGM left 23:00 larion joined 23:02 captain-adequate joined
timotimo nine_: by clicking on the time you'll get a permalink to that line 23:02
23:02 LonelyGM joined
jnthn TimToady: Nice :) 23:02
TimToady arguably some of that code should be in a Capture method of some sort 23:03
method args or so 23:04
23:05 LonelyGM left 23:18 lnr left
jnthn TimToady: The .perl of the Capture might work out rather sizable too... 23:21
dalek ast: a5f67aa | TimToady++ | S12-class/basic.t:
test for Foo.new.perl leaving out parens
23:22
kudo/nom: ffd6616 | TimToady++ | src/core/Mu.pm:
leave parens off Foo.new when no attributes
jnthn m: multi foo(Int $x) { }; foo(1 x 10000) 23:23
camelia rakudo-moar 0bb037: OUTPUT«Cannot call foo("11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111…»
TimToady well, there is that
23:23 spider-mario left 23:24 census joined
TimToady Moral: don't write bad code :) 23:24
timotimo t.h8.lv/p6bench/2015-03-20-virtual_...ually.html - refresh for up-to-date moar on rakudo-cluj thrown into the mix
TimToady m: say (1 x 10000).gist 23:28
camelia rakudo-moar 0bb037: OUTPUT«1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111…»
TimToady it's not like .gist does any better... 23:29
jnthn I was going to go with the types...
TimToady and I don't want to .gist the bits of it because then it drops quotes, which is rather unreadable
jnthn Like the compile-time one does.
TimToady which can be confusing, especially if you failed constraints 23:30
would be nice to know if we actually failed a type match, and if so, just use the types
jnthn I'd still prefer that over my thousand element array or few kilobyte string in the error :)
Well, you'd really need to write another explain-y implementation of the multi-dispatcher for that. 23:31
And when there's multiple parameters involved, it's a bit tricky to know what "failed a type match" exactly means... 23:33
Well, an easy heuristic is possible though
"Do any of the candidates have where clauses?"
23:33 MadcapJake joined, census left
TimToady troo 23:34
23:34 MadcapRusso left
TimToady testing a fix 23:38
dalek kudo/nom: cfa4974 | TimToady++ | src/core/Exception.pm:
on NoMatch, just show arg types unless where seen
23:43
TimToady okay, I think that finally does something people have been asking for for a long time now... 23:45
though it's not good enough yet to tell them why each match failed, which we may yet write a super-slow path for...
nap & 23:50
23:51 LonelyGM joined, LonelyGM_ joined 23:54 LonelyGM_ left