»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
retupmoca If I want to connect to mysql, should I be using MiniDBI or DBIish? 01:02
looks like DBIish 01:06
dalek Iish: 054bf43 | (Andrew Egeler)++ | lib/DBDish/mysql.pm6:
Fix compile (for moarvm at least)

Rakudo on MoarVM was refusing to compile CArray[Int], as Int isn't a native type.
01:26
Iish: c9c012d | (Andrew Egeler)++ | lib/DBDish/mysql.pm6:
Merge pull request #2 from retupmoca/master

Fix compile (for moarvm at least)
retupmoca ^-- forgot I had commitbit >.>
simula67 is still hunting the bailador problem which now seem to be in HTTP::Easy postimg.org/image/gngfi80bj/full/ 06:06
FROGGS hi from a train! 06:10
retupmoca++
simula67 Is that a rakudo bug ? It treats "\r\n" as line terminator when I said use "\r\n\r\n". No special case seems to be mentioned here : github.com/perl6/specs/blob/master...-separator 06:25
sergot morning #perl6 :) 08:23
moritz \o sergot, * 08:25
moritz j: say 42 08:47
camelia rakudo-jvm 15ece8: OUTPUT«42␤»
lizmat_ good *, #perl6, from the German Perl Workshop in Hanover 08:56
moritz \o lizmat_ 08:57
lizmat FROGGS has arrived :-) 09:13
nwc10 with a /16 network. 09:19
corecatcher good morning 09:26
corecatcher with a very stable network 09:33
nwc10 sometimes stable :-/ 09:52
dalek volaj: 7489ec0 | (Andrew Egeler)++ | / (2 files):
Fix library extension guessing for MoarVM

Without this patch, is native('libfoo') would try and load libfoolib.so instead of libfoo.so
09:55
volaj: 7f7c849 | jonathan++ | / (2 files):
Merge pull request #32 from retupmoca/master

Fix library extension guessing for MoarVM
FROGGS timotimo: ping 12:43
[Coke] bah. I didn't get back to checking the late java run, so the new run started already, which means we'll miss a day. ah well. 13:03
lizmat poep happens 13:03
[Coke] ja 13:04
FROGGS TimToady: you can haz tickets: github.com/perl6/std/issues/7 :P 13:19
FROGGS Program received signal SIGSEGV, Segmentation fault. 13:24
0x00007ffff588a96b in p6listitems (tc=0x603500) at src/vm/moar/ops/perl6_ops.c:284
284 if (!items || !IS_CONCRETE(items) || REPR(items)->ID != MVM_REPR_ID_MVMArray) {
bt full at: gist.github.com/FROGGS/fa6338946ce510420d3a 13:25
jnthn gets curious with v5 is using p6listitems... 13:26
*why
FROGGS (gdb) p *items
$3 = {header = {owner = 0, flags = 0, size = 0, sc_forward_u = {forwarder = 0x0, sc = 0x0, st = 0x0}}, st = 0x0}
I dunno
let me check 13:27
jnthn Hm, curious error
I wonder if it's trying to de-ref the null sentinel or something...but that shoudln't have flags = 0. 13:28
FROGGS seems to happen in P5each: github.com/rakudo-p5/v5/blob/maste...ms.pm#L388
lizmat wonders what this means: 13:29
r: say (More | Less).list.pick
camelia rakudo-moar 15ece8: OUTPUT«any(Less, More)␤»
..rakudo-jvm 15ece8: OUTPUT«any(Less, Less)␤»
..rakudo-parrot 15ece8: OUTPUT«any(Same, Less)␤»
lizmat r: say (More | Less).list.pick
camelia rakudo-jvm 15ece8: OUTPUT«any(Less, More)␤» 13:30
..rakudo-moar 15ece8: OUTPUT«any(More, Same)␤»
..rakudo-parrot 15ece8: OUTPUT«any(Less, Same)␤»
FROGGS Same? 13:30
jnthn lizmat: It auto-threads the method call I imagine.
FROGGS r: say Less
jnthn lizmat: So calls .pick on each item in the Junction.
camelia rakudo-parrot 15ece8, rakudo-jvm 15ece8, rakudo-moar 15ece8: OUTPUT«Less␤» 13:31
jnthn r: say More.pick;
camelia rakudo-jvm 15ece8, rakudo-moar 15ece8: OUTPUT«Same␤»
..rakudo-parrot 15ece8: OUTPUT«More␤»
lizmat aha
FROGGS ahh
weird
jnthn And pick on an enum type picks one of the enum
lizmat I didn't know that
jnthn And since the method is defined ont he type object, it applies to the elements too.
FROGGS m: say True.pick
camelia rakudo-moar 15ece8: OUTPUT«Invocant requires a type object, but an object instance was passed␤ in method pick at src/gen/m-CORE.setting:3793␤ in block at /tmp/I_9IQaO_JJ:1␤␤»
jnthn r: enum Options < Fast Cheap Good >; say Options.pick(2) 13:32
camelia rakudo-jvm 15ece8: OUTPUT«Good Cheap␤»
..rakudo-parrot 15ece8, rakudo-moar 15ece8: OUTPUT«Cheap Good␤»
FROGGS r: enum Options < Fast Cheap Good >; say Fast.pick(2)
jnthn ...well yeah, noen of them are fast :P
camelia rakudo-parrot 15ece8: OUTPUT«Fast Cheap␤»
..rakudo-moar 15ece8: OUTPUT«Good Cheap␤»
..rakudo-jvm 15ece8: OUTPUT«Good Fast␤»
jnthn lol
FROGGS that is a weird behaviour
jnthn Well, methods - unless you do something special - exist on a type and its instances 13:33
And enum elemnets are simply instances of the enumeration type.
FROGGS yeah...
jnthn If we want to spec soemthing different we can...it just means making pick in Enumeration be a multi that does something different on the instances than one the type object.
FROGGS r: enum Options < Fast Cheap Good >; say Fast ~~ Cheap
camelia rakudo-parrot 15ece8, rakudo-jvm 15ece8, rakudo-moar 15ece8: OUTPUT«False␤» 13:34
jnthn ACCEPTS is already doing that. :)
FROGGS which is *very* good :o)
jnthn I don't mind if pick ends up that way too, though I'm curious...
r: say List.pick 13:35
camelia rakudo-parrot 15ece8, rakudo-jvm 15ece8, rakudo-moar 15ece8: OUTPUT«Nil␤»
lizmat r: enum Options < Fast Cheap Good >; say Options.pick(2) # this I understand
jnthn Hm :)
camelia rakudo-jvm 15ece8: OUTPUT«Fast Cheap␤»
..rakudo-parrot 15ece8: OUTPUT«Good Cheap␤»
..rakudo-moar 15ece8: OUTPUT«Fast Good␤»
lizmat r: enum Options < Fast Cheap Good >; say Fast.pick # this I don't 13:35
camelia rakudo-moar 15ece8: OUTPUT«Good␤»
..rakudo-parrot 15ece8, rakudo-jvm 15ece8: OUTPUT«Cheap␤»
jnthn lizmat: I think you do understand.
lizmat it feels wrong
jnthn r: class Foo { method m() { say self } }; Foo.m; Foo.new.m; # it's exactly this. 13:36
lizmat I see an enum as an item
camelia rakudo-parrot 15ece8, rakudo-jvm 15ece8, rakudo-moar 15ece8: OUTPUT«(Foo)␤Foo.new()␤»
lizmat and a .pick on an item, would always return the item 13:37
hmmm....
jnthn lizmat: As I said, we can decalre pick on enums as a multi and make that happen.
lizmat I see how this can be done
jnthn lizmat: But then you force folks who do the current behavior to have to write Fast.WHAT.pick 13:38
lizmat I'm trying to see if / why TimToady would like to see the current behaviour
jnthn lizmat: Which of course looks silly when you've a literal, but maybe less so if you'd the thing in a variable.
lizmat: I don't feel strongly anyway. Just explaining why it behaves the way it does today.
lizmat gotcha 13:39
jnthn r: 4.pick.say
camelia rakudo-parrot 15ece8, rakudo-jvm 15ece8, rakudo-moar 15ece8: OUTPUT«4␤»
jnthn r: 4.pick(2).say
camelia rakudo-parrot 15ece8, rakudo-jvm 15ece8, rakudo-moar 15ece8: OUTPUT«4␤»
jnthn r: 4.roll(2).say
camelia rakudo-parrot 15ece8, rakudo-jvm 15ece8, rakudo-moar 15ece8: OUTPUT«4 4␤»
jnthn There's an expensive way to say 4 xx 2 :)
Anyway, yeah, I can see what you're arguing for. I think it's reasonable. 13:40
r: List.pick(2).say
camelia rakudo-parrot 15ece8, rakudo-jvm 15ece8, rakudo-moar 15ece8: OUTPUT«Nil␤»
jnthn r: List.roll(2).say
camelia rakudo-jvm 15ece8: OUTPUT«Cannot look up attributes in a type object␤ in method roll at gen/jvm/CORE.setting:7956␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot 15ece8: OUTPUT«Cannot look up attributes in a type object␤ in method roll at gen/parrot/CORE.setting:7976␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar 15ece8: OUTPUT«Cannot look up attributes in a type object␤ in method roll at src/gen/m-CORE.setting:8013␤ in block at /tmp/tmpfile:1␤␤»
FROGGS /o\
jnthn Might want to see what sematnics we want out of those two along the way. :) 13:41
lizmat indeed
jnthn There's a weird thing going on there
lizmat yup
jnthn With non-Enum types we'd like to see the type object as an item and instances a list of things to pick from 13:42
With Enum types we'd like to see the type object as having a source of things to pick from and an instance being a 1-item list :)
If masak was here he might say something category-theoretic at this point :P 13:43
lizmat hehe
but yes, that makes sense to *me*
jnthn Yeah, it's a DWIM, just not sure if we're missing a lurking WAT :) 13:44
FROGGS jnthn: btw, "REPR(items)->ID" explodes 13:46
jnthn It's gonna if all the stuff in there is le null...
FROGGS jnthn: some of 'em are zeros :o) 13:47
jnthn: so we want to check if STABLE(items) is trueish before trying to accessing REPR? 13:49
jnthn FROGGS: No, that's hiding the problem. 13:50
FROGGS hmmm, I was fearing that
jnthn FROGGS: I thought it might be that you were hitting the ass_null in P6opaque.
Alas...
ass_null->header.flags = MVM_CF_TYPE_OBJECT;
So IS_CONCRETE should should come out true. 13:51
FROGGS ahh
jnthn And you should never end up looking into REPR(items)
FROGGS p IS_CONCRETE(items)
$5 = 1
O.o
jnthn Right, so I doubt it's that.
Well, objects are born with their flags 0. 13:52
FROGGS ahh well, it checks for !IS_CONCRETE(items)
jnthn It's the cheapest thing.
FROGGS yeah
jnthn For the commonest case.
Anyway, ugh.
d2 13:53
uh, ww
FROGGS hehe, jnthn is playing chess while debugging rakudo and supporting liz 13:54
lizmat hugs jnthn, good vi(m) user
jnthn Both wrong :P
"d2" means "compile and show the slides for day 2 of the course I'm currently working on" :)
FROGGS aha 13:55
weird anyway :o)
timotimo meeeeeeeh, i overslept to the max 14:05
jnthn Does that mean you didn't manage to get on a train, or slept through getting off one? 14:06
timotimo i'm feeling very groggy ~_~
tadzik happy timo
timotimo i didn't manage to get on a train, or out of bed at all
timotimo okay, might as well skip gpw ~_~ 14:13
i'll be with you in spirit
tadzik aww
that kind of overslept :(
FROGGS timotimo: wth? 14:14
timotimo: well, my talk got recorded :o)
talks*
timotimo yay \o/
lizmat was looking forward to finally settle the debt she has to timotimo 14:24
:-(
timotimo i feel a bit dumb now
lizmat don't, when you sleep this late, you need it 14:25
(been there, do it regularly :-) 14:26
FROGGS jnthn: it is some sort of heisenbug... when I strip comments, the segfaults goes away
timotimo i wish i would at least feel somewhat refreshed >_>
FROGGS segfault*
retupmoca DBIish on moarvm goes from passing tests to failing tests when I precompile DBDish.pm6 14:31
retupmoca which is interesting, since that file only contains a couple of roles 14:32
jnthn I thought I fix the roles pre-comp thing already :/ 14:39
*fixed
jnthn And as usual with pre-comp, nobody seems to want to learn how stuff works there, so they all bottleneck on me fixing them :/ 14:40
timotimo where exactly does one have to look at to figure out what could be wrong?
jnthn timotimo: Typically, it's just a lot of golfing.
timotimo: Most golfed pre-comp things I get actually go further... 14:41
timotimo: At that point it's then either some SC write barrier issue, or some fixup related issue.
timotimo i forget what exactly SC write barriers are for again 14:42
jnthn Well, augment is the easiest construct to consider
FROGGS jnthn: I know about an URI precomp bug you fixed
moritz jnthn: maybe you'll have to do a "hunt down precomp bugs" online workshop. I'll certainly attend :-)
retupmoca FWIW, my nativecall precomp issue seems to be related to roles in some way: gist.github.com/retupmoca/9744166
jnthn FROGGS: I fixed a nativecall related one too.
timotimo ah, SC WB's are about repossession?
jnthn timotimo: Exactly
timotimo: Hitting the WB is the trigger for it.
timotimo what is the nature of such a WB? 14:43
jnthn They're placed in various ops that write 14:44
timotimo i mean, what objects does the "call" operate on, where is the information stored?
jnthn And check if obj->header.sc is set, and if so know you're writing to an SC-owned object
This then goes and looks a bit further and checks it the currently compiling SC is the one owning the object (in which case, we're fine) or not (in which case, repossession) 14:45
The code in Moar do to it is quite well commented.
But I dunno if that's the issue in this case.
(as in, not all pre-comp issues are SC-barrier related) 14:47
timotimo OK 14:48
is there a macro or function that does everything necessary?
jnthn MVM_SC_WB_OBJ and MVM_SC_WB_ST 14:50
timotimo ah, one for STables, one for Objects 14:51
seems easy enough
timotimo most of these seem to be placed in the interp.c, that seems like a good choice 14:51
jnthn The other piece of the puzzle is to understand the various things going on in HLL::World and thus Perl6::World with regard to building up SCs. 14:52
And also post-deserialize fixup actions
timotimo that's mostly declarations of classes and subs that are to end up in serialized storage (constants, too, right?) and things that modify existing objects, like mixins, subclassing(?)? 14:53
jnthn Sorta.. 14:54
It's the way objects get added into SCs, at lesat.
corecatcher slaps timotimo 14:57
timotimo :[ 14:59
corecatcher you abandonded us?
:D
timotimo not entirely by choice :|
corecatcher: i'll be there for you on IM/IRC, though 15:02
yesterday i talked a bit with the creator of Nimrod 15:03
Araq, he's been on this very channel a few times in the past
jnthn meeting & 15:09
vendethiel timotimo: Nimrod looks cool ! 15:10
it uses a bit too much blocks (and it's still pretty buggy) but I'm definitely looking at it, too
timotimo hmm. maybe the output of viv would be a good source of info for an IDE code model thingie 16:28
FROGGS lizmat_: please tell wendy that my forks and me are working now in a cheap cafe 16:30
so we won't be around later
tadzik my forks 16:31
this has so many meanings
folks, repo forks, actual eating forks 16:32
timotimo does the STD.pm CORE.setting need lots and lots of updates? or has it been kept up to date recently? 16:33
FROGGS tadzik: they are actual eating forks atm 16:34
tadzik :)
nwc10 and there was me thinking it was FROGGS TNG 16:35
FROGGS *g* 16:37
well, only the bigger one is TNG
lizmat_ FROGGS: will do 16:38
FROGGS nwc10: you'll see #3 when it is 2 weeks old in sofia :o) 16:38
nwc10 in the flesh? (that imlpies efficient passport issuance)
FROGGS in the what? 16:39
well, the plan is to ome with wife and all kids
come*
timotimo FROGGS: will there be FROGGS JJ-Abrahms re-imagining with lots of lensflares? 16:40
tadzik nooo
Jar-Jar Abrams
FROGGS timotimo: no, there is only one lensflare :o)
timotimo :D
moritz comes with lenzflares 16:45
timotimo :D 16:46
FROGGS moritz: would be nice to finally meet you :o)
moritz FROGGS: aye. If you're ever in the Nürnberg area, just drop by :-) 16:47
timotimo FROGGS: if you come to the nürnberg area, notify me, too. maybe i'll find an opportunity to come by, too 16:47
FROGGS moritz: unlikely, but I will tell you then :o)
timotimo nürnberg is so much closer to karlsruhe than hannover is ... :| 16:48
moritz google maps say 2.5h between Nürnberg and Karlsruhe 16:49
and a around 4h by train 16:50
moritz still wants to do a German p6 mini hackathon eventually 16:51
timotimo huh. there seems to be no good direct connection from Ka to Nrmbrg 16:52
still, it's about 2h less than to hannover
(and also much cheaper)
nwc10 Nürnberg is about 5 hours on the train from Vienna 16:54
or shoult that sentance be Nürnberg,Wien or Nuremberg/Vienna? :-) 16:55
timotimo :)
moritz nwc10: "yes" :-)
Nürnberg,Wien or Nuremberg,Vienna 16:56
nwc10 I can't spell.
timotimo i cant sell
tadzik Norymberga, Wiedeń. Easy
nwc10 I still like the obfuscation the Hungarians use: hu.wikipedia.org/wiki/B%C3%A9cs 16:59
moritz yes, that's impressive 17:00
huf is it an obfuscation of vienna? 17:02
also serbians/croatians seem to use be'cs of some form :)
lizmat moritz: re P6 hackathon, woolfy and I are considering organising a hackathon after the YAPC::EU, or otherwise in July 17:07
moritz lizmat: \o/
timotimo how hard would it be to teach STD to output XML instead of YAML? 17:08
lizmat signing off for this evenings social
moritz I'm just afraid I'm not as willing to travel with small kids as others here
lizmat will check backlog later
FROGGS timotimo: how does STD output YAML? 17:40
timotimo -y 17:40
oh, you probably mean "using what lib%
YAML::XS apparently 17:41
FROGGS timotimo: no, I meant the -y 17:44
moritz timotimo: iirc the problem is that STD doesn't output a tree, but an acyclic graph, and XML has no standard serialization for that 18:20
Araq timotimo: just fyi I got the train 18:54
[Coke] quiet on here today. 19:19
dalek kudo-star-daily: 6da38fa | coke++ | log/ (5 files):
today (automated commit)
19:21
rl6-roast-data: 9fde962 | coke++ | / (4 files):
today (automated commit)
[Coke] only rakudo.parrot has a clean test run. 19:27
moar's at the state where we can fudge things and open RTs for them.
(ditto JVM) 19:28
vendethiel mmh ? 19:45
[Coke]: what's RT ? 19:46
[Coke] rt.perl.org/ - rakudo's bug tracker. 19:53
"Request Tracker"
to open a ticket, email [email@hidden.address]
timotimo Araq: how could you possibly have caught that train? 20:02
was it massively late? :)
raiph FROGGS, lizmat: blog.versioneye.com/2014/01/15/whic...e-manager/ # nice 2014 roundup 20:21
vendethiel the only time it's signed, it's actually typo-ed "singed" haha 20:24
vendethiel but it's definitely an interesting point - no scripting language manager has signed packages 20:29
timotimo i think it would be nice if we could have that, for example based on git tags 20:30
they are cryptographically nice
moritz thought he saw PGP/gpg signatures for distributions on CPAN 20:47
Araq timotimo: turns out I can't read my hand writing and the train left at 22:07 instead of 22:04 :-) 20:50
jnthn evening o/ 20:55
moritz Araq: better than the other way round :-) 20:56
\o jnthn, *
timotimo sounds good! 21:24
Araq: btw, i didn't have time to tell you about it yesterday, but i think i can clear up some of your confusion WRT sigils
Araq go ahead 21:25
timotimo i may be interrupted by Zero-K in a few minutes again ;)
the sigils are mostly about "interface"
there's also a big difference between "scalar context" in p5 and p6
my $foo = @my_list; # this no longer gives you the number of elements in @my_list. instead, it gives you a "reference" to the list that will not flatten by default 21:26
PerlJam I know ... I'm always trying to use +@foo in P5 these days.
timotimo the "item context" thing that you get with $ is quite nice, because it means that if the programmer sees "for $foo, $bar { ... }" they will know it's exactly two iterations
PerlJam :)
timotimo and with an @, you can get things that'll flatten out in iterations and such 21:27
timotimo new game's about to start 21:27
Araq tbh these arguments about how the programmer "easily sees" things in a dynamic language never make any sense to me 21:29
timotimo :D
Araq it's also often completely arbitrary "oh look, I can see I passed an output parameter at callsite. sweet!" 21:30
I just move the mouse over the function call to get all the information I need ...
[Coke] m: say (26+10)*6 22:15
camelia rakudo-moar 15ece8: OUTPUT«216␤»
[Coke] m: say (26+10)**6
camelia rakudo-moar 15ece8: OUTPUT«2176782336␤»
segomos m: say (26*10)**6 * (26*10)*6; 23:03
camelia rakudo-moar 15ece8: OUTPUT«481908610560000000␤»