»ö« 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/ITEaUFvA9rTwo terms in a rowat /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_Q6Quoted 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_xO7x4j5Variable '$fil' is not declaredat /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/5N8VTOw3M4Variable '$f_' is not declaredat /tmp/5N8VTOw3M4:1------> 3for dir(".") { say ~$f_7⏏5 } expecting any of: postfix» | ||
grondilu | m: for dir(".") { say ~$_ } | ||
camelia | rakudo-moar ce69bb: OUTPUT«nqp-jsrakudo-inst-2ugexe-was-hereevalbottest.viminforakudo-inst-1rakudo-star-2015.01.bashrc.sshstdmboxnieczap2rakudo-star-2014.12.tar.gz.cpanmrakudo-instbinrakudo2rakudo-star-2015.02perl5rakudo…» | ||
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/Aa3ocQWB6PNot enough symbols provided for categorical of type postcircumfix; needs 2at /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_u9Calling '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 failedFAILED 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«0Inf» | ||
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/dawE0ataW8Variable '&OUDERS' is not declaredat /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 declaredat /tmp/vz1irmGH7M:1------> 3my bit7⏏5 @vector; # NYI?Malformed myat /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«10-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 23 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 31» | ||
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
|