»ö« 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.
sjn jnthn: ^ 00:01
Mouq m: my $z =15; my ($a, $b is rw) := 5,$z; $b=5; say $z # neat 00:04
camelia rakudo-moar 19d2de: OUTPUT«5␤»
Mouq m: my $z =15; my ($a, $b is rw) := 5,$z; $b=42; say $z # clearer
camelia rakudo-moar 19d2de: OUTPUT«42␤»
timotimo mouq!
can you help me? :\
Mouq timotimo: With what? :)
timotimo cairo 00:05
Mouq Uh, sure, give me some time to try installing it ^_^ 00:06
timotimo right 00:07
i just pushed my newest crap
Mouq still hasn't set up homebrew, hopefully installing from source won't cause any issues finding the library
timotimo you're on a mac?
Mouq mmhm 00:08
timotimo one second
i didn't push the gtk stuff yet 00:09
dalek k-simple: e83d346 | (Timo Paulssen)++ | lib/GTK/Simple.pm6:
let NativeCall figure out the library filename
00:10
k-simple: da75547 | (Timo Paulssen)++ | lib/GTK/Simple.pm6:
couple cairo, get queue_draw and add_draw_handler.
timotimo there we go.
tony-o homebrew is awesome 00:19
Mouq tony-o: Unfortunately, my laptop crashed this summer. I don't really mind installing from source... but this has a few more dependencies than I'm willing to do by hand XP 00:22
Mouq tony-o: But I haven't had to install homebrew up until this point 00:22
*after the crash, that is 00:23
tony-o i went without for 2 years but it does make installing stuff (libraries, in particular) a whole lot easier
i originally had ports
Mouq And now it's telling me that all the stuff I installed by hand need to go -_-
(how about: no.) 00:24
timotimo oke :(
tony-o Mouq: ouch
just trying to test something or actually use it? 00:25
Mouq looks like it's installing cairo fine :D
timotimo m: enum Foo ( INVALID => -1, "A", "B", "C" ); say INVALID.Int; say A.Int; 00:26
camelia rakudo-moar 19d2de: OUTPUT«-1␤0␤»
timotimo i've got something semi-working now ... 00:37
timotimo sweet. 00:38
Mouq Lol, now that I finally have Cairo and GTK installed and unborked my shell from the changed brew had me make.. 00:39
What is it you wanted help with? :) 00:40
timotimo do you see my query? 00:41
Mouq no..? 00:42
Alas.. Cannot locate native library 'libgtk-3.dylib'
AKA why sanity tests are a good thing :P 00:43
timotimo damn
yeah yeah
feel free to contribute :)
please
Mouq Haha :)
timotimo you're in the perl6 team on github? 00:44
yes, you are
Mouq Oh, it would help if I installed gtk+3 m) 00:45
timotimo surely would
tony-o it works in linux/osx without any .dylib or .so 00:48
from what i've seen so far
timotimo aye, i've removed the '.so.0' from the "is native" traits
tony-o it doesn't work in osx with either of those appended, from what i've experienced
timotimo please make sure the source you're getting doesn't have extensions 00:49
Mouq No, it seems to function, and the GTK examples summon XQuartz, but nothing actually shows up 00:51
timotimo aaw damn
gtk still requires X on osx even in version 3?
Mouq Looks like it doesn't get past GTK::Simple::App.new(title => "Hello GTK!") 00:52
timotimo huh :\ 00:59
Mouq github.com/timo/cairo-p6/pull/1
timotimo uh dude 01:01
i already committed and pushed that
didn't i?
oops.
now i pushed it. :)
Mouq Haha :) well at least Cairo works great 01:04
timotimo hooray i guess? 01:04
but not gtk?
i didn't even put an example up that draws a simple png or something ... 01:05
Mouq timotimo: I used the example in the README
timotimo oh, i put an example there?
wow, go me!
timotimo hooray, my starry background scroller is working! 01:06
timotimo awesome 01:08
the profile says that after the 7th collection, it always retains less than 20 KB from one nursery to the next 01:09
and after gc number 24 the "promoted" number is always 0 KB
can't wait for NativeCall to become jitted ... 01:11
the winner in exclusive time is postcircumfix:<( )> inside NativeCall with 23.89% of time spent there
out of 22k entries only about a fifth seems to get spesh'd ... huh.
m: enum Foo ( "INVALID" => -1, "A", "B", "C" ); say INVALID.Int; say A.Int; 01:12
camelia rakudo-moar 19d2de: OUTPUT«===SORRY!=== Error while compiling /tmp/SZqYEXpjX4␤Undeclared name:␤ INVALID used at line 1␤␤»
timotimo m: enum Foo ( "INVALID" => -1, "A", "B", "C" ); say A.Int;
camelia rakudo-moar 19d2de: OUTPUT«1␤»
timotimo this is VERY weird
m: enum Foo ( INVALID => -1, "A", "B", "C" ); say A.Int;
camelia rakudo-moar 19d2de: OUTPUT«0␤»
timotimo this bit me in my cairo binding
japhb m: enum Foo ( INVALID => -1, "A", "B", "C" ); say C.Int; 01:14
camelia rakudo-moar 19d2de: OUTPUT«2␤»
timotimo i wouldn't mind if someone beat me to it; i'd like to rakudobug that tomorrow 01:18
but first i'll catch up on some sleep 01:19
timotimo Mouq: would be super awesome if you could build some tests some way ... 01:20
not quite sure how that would work, tbh
(in both the gtk and the cairo case ...)
BenGoldberg m: enum Foo ( INVALID => -2, "A", "B", "C" ); say C.Int; 01:21
camelia rakudo-moar 19d2de: OUTPUT«1␤»
timotimo m: enum Foo ( "INVALID" => -2, "A", "B", "C" ); say C.Int 01:22
camelia rakudo-moar 19d2de: OUTPUT«3␤»
BenGoldberg m: enum Foo ( "INVALID" => -2, "A", "B", "C" ); say INVALID.Int; 01:24
camelia rakudo-moar 19d2de: OUTPUT«===SORRY!=== Error while compiling /tmp/SJXKrSu_G4␤Undeclared name:␤ INVALID used at line 1␤␤»
BenGoldberg m: enum Foo ( INVALID:-2, "A", "B", "C" ); say C.Int;
camelia rakudo-moar 19d2de: OUTPUT«===SORRY!=== Error while compiling /tmp/rWj4ufhOD6␤Two terms in a row␤at /tmp/rWj4ufhOD6:1␤------> enum Foo ( INVALID⏏:-2, "A", "B", "C" ); say C.Int;␤ expecting any of:␤ argument list␤ po…»
BenGoldberg m: enum Foo ( INVALID:(-2), "A", "B", "C" ); say C.Int;
camelia rakudo-moar 19d2de: OUTPUT«===SORRY!=== Error while compiling /tmp/OBcLlW8YiB␤Malformed parameter␤at /tmp/OBcLlW8YiB:1␤------> enum Foo ( INVALID:(⏏-2), "A", "B", "C" ); say C.Int;␤ expecting any of:␤ colon pair␤ si…»
BenGoldberg m: enum Foo ( "INVALID":(-2), "A", "B", "C" ); say C.Int;
camelia rakudo-moar 19d2de: OUTPUT«===SORRY!=== Error while compiling /tmp/ZeISisEiGy␤Malformed parameter␤at /tmp/ZeISisEiGy:1␤------> enum Foo ( "INVALID":(⏏-2), "A", "B", "C" ); say C.Int;␤ expecting any of:␤ colon pair␤ …»
Mouq timotimo: I tried gist.github.com/Mouq/53bf7f18a34e84d4fc40 01:27
timotimo: But it's just hanging instead of timing out 01:28
Mouq m: enum Foo «:INVALID(-1) A B C»; say C.Int 01:37
camelia rakudo-moar 19d2de: OUTPUT«===SORRY!=== Error while compiling /tmp/6mSwHsXsgR␤Undeclared name:␤ C used at line 1␤␤»
Mouq m: enum Foo «:INVALID<-1> A B C»; say C.Int
camelia rakudo-moar 19d2de: OUTPUT«===SORRY!=== Error while compiling /tmp/AudDT4RgMm␤Undeclared name:␤ C used at line 1␤␤»
araujo hello... for those around... does perl6 have already a xmlrpc lib/module? 02:04
Mouq I've gotten GTK::Simple from hanging to "Cannot locate native library 'libgobject-2.0.so'" \o/ 02:07
araujo: If one exists, modules.perl6.org doesn't know about it 02:09
araujo: Though we have JSON::RPC :P
araujo I see....
thanks Mouq , I will check better around
Mouq I GOT GTK::SIMPLE TO WORK! \o/ 02:22
Mouq Besides all the problems with getting the libraries to work right for me personally, NativeCall wasn't spotting my "libgobject-2.0.dylib" 02:24
So AFAICT it's a bug with NativeCall
tony-o f.lux is screwing with me 02:36
dalek k-simple: 67066be | Mouq++ | t/01_sanity.t:
Add sanity test
02:59
tony-o more io stuff breaks :/ 03:01
tony-o there we go, is there a mechanism in panda to install stuff to a 'bin' directory? 03:39
dalek osystem: 3beaefe | tony-o++ | META.list:
pandapack - empty shell of hopes/dreams/etc

don't get excited, it does nothing and succeeds thus far
03:51
dalek c: 5788b6d | Mouq++ | lib/ (2 files):
Revamp Signature.pod some and have functions.pod point to it
05:01
teagan Hello again! I'm working on a different problem now!
I'm getting an error when I try to work with variables using ! instead of . 05:02
This is the class I'm using right now: pastebin.com/cWreaRfK
What seems to be happening is that the password parameter is not being saved into the $!password variable
Any thoughts on how I might be able to set this value? 05:05
Mouq teagan: Hmm, are you sure you're actually getting the password passed to method new? 05:09
teagan When I put "say $password;" right above the self.bless line both passwords display in terminal properly so I believe so! 05:10
Mouq Oh, you know what, I think that might be correct behavior... according to doc.perl6.org/language/objects#Obje...nstruction anyway 05:11
But you might want to try adding `submethod BUILD (:$!username, :$!password, :@!characters) { }`
m: class Foo { has $!bar; method new ($bar) { self.bless :$bar }; method bar { $!bar } }; Foo.new(42).bar.say 05:13
camelia rakudo-moar 19d2de: OUTPUT«(Any)␤»
teagan So I should put exclamation points in front of all variables in that BUILD line even though they're not that way in the class? 05:14
Mouq teagan: `has $.bar` creates a $!bar attribute and an setter/getter method self.bar, i.e., $.bar 05:17
As I understand it
Mouq m: class Foo { method bar { 42 }; method baz { $.bar } }; say Foo.baz 05:18
camelia rakudo-moar 19d2de: OUTPUT«42␤»
teagan So are setter/getter methods a bad idea on passwords?
Mouq teagan: Depends on what you want to do with them, I suppose 05:19
If you don't want other bits of code to be able to read what password they've supplied the User class with, then yes 05:20
(And my bad again: it only makes a setter if you write `is rw`) 05:21
m: class Foo { has $.bar is rw }; my $baz = Foo.new; $baz.bar = 42; # etc
camelia ( no output )
Mouq m: class Foo { has $.bar is rw }; my $baz = Foo.new; say $baz.bar.VAR.name 05:23
camelia rakudo-moar 19d2de: OUTPUT«$!bar␤»
teagan Okay, so if I want to keep the class' variable as $!password and take the parameter $password, what's involved in making that work? Or are you saying that it can't? Sorry, I'm a little confused! 05:26
Mouq teagan: I was a little confusing 05:28
But if you add `submethod BUILD (:$!username, :$!password, :@!characters) { }` in addition to what you already have, it should work
teagan In new(), or just in User? 05:29
Mouq or ``submethod BUILD (:$!password) { callsame }`
oops
in User
teagan Okay, and from where should I call it? 05:31
Mouq BUILD is called by self.bless 05:32
teagan Oh really? That's cool!
Mouq See doc.perl6.org/language/objects#Obje...nstruction
Though I admit I find that section a little hard to read myself 05:33
teagan Hmm, adding BUILD has resulted in a new error, "use of uninitialized value of type Any in string context... 05:35
"
Actually, that's the same error as I was getting with password, except now I'm getting it for username too 05:36
Here's the new code: pastebin.com/U5JmPngW
teagan Would doing a pastebin of the 100-line program as a whole be helpful? 05:38
Mouq Ah! No, don't use the or `` thing I wrote, that was me pressing paste by accident >_<
teagan Do I need callsame in the curly brackets or just leave it empty? 05:39
Mouq I'm sorry I'm so confusing. Objects aren't my strong spot with Perl 6
No, as in use submethod BUILD (:$!username, :$!password, :@!characters) { }
That should fix it..
teagan Wow, that did it! Thanks so much! 05:40
I hate to be That Guy but... why did that work?
Mouq teagan: NP, sorry for taking so long to explain it! :) 05:41
User.new() first makes a new User object, and then it looks for a BUILD method to call 05:43
The default BUILD method is in Mu 05:44
And I should have been clearer -- I mean self.bless() rather than User.new.. 05:45
teagan Okay, so when it executes the bless instruction it looks for any BUILD methods to help it out? 05:47
Mouq Yeah.. and, so, calling .BUILD( password => 12345 ) will make $!password = 12345 because it's the parameter of the method. 05:48
teagan How come a BUILD method that referred to $.variables as $!variables and then didn't do anything help? Haha
Mouq You mean the one I accidentally pasted?
teagan This one that works has nothing in the curly brackets 05:49
So it's not executing any instructions?
Yet it still fixes the problem?
:P
Mouq Yep. You *could* write it as `submethod BUILD (:$username, :$password, :@characters) { $!username = $username; $!password = $password; @!characters = @characters }` 05:50
But writing (:$!username, :$!password, :@!characters) does all that for you
teagan Ohh! So it's another example of Perl's magic shorthand!
Snazzy
Mouq Perl likes magic shorthands :9 05:51
teagan It's a lot to wrap my head around having just started today 05:52
But thanks so much for taking the time to help me understand!
Mouq teagan: Definitely. Perl 6 has a lot of features, but at least be consoled you can get by knowing a relatively small subset of it. 05:56
teagan: Sure thing! :)
teagan :) 05:57
Have a good night!
Mouq 'night teagan! 06:03
jnthn morning, #perl6 07:06
lizmat jnthn o/ 07:51
FROGGS morning
lizmat is about to be offline for most of the day 07:52
FROGGS lizmat: woolfy and the shower is well? 07:55
woolfy FROGGS: the shower is hell... I've stepped inside, and I'm just too tall for the damn thing, and lizmat has even more problems. So, no shower. Brr. 07:56
FROGGS eww
bloody iShower
too modern to be useful
moritz woolfy, lizmat: where are you? 07:58
woolfy moritz: in Amsterdam, in a Fletcher hotel. www.booking.com/hotel/nl/fletcher-a...en-gb.html 07:59
moritz woolfy: looks cute :-) 08:00
woolfy Last night we had a nice Amsterdam.pm meeting with 16 attendees and 6 presentations. 08:01
woolfy One about Perl 6 by Tux. He is converting Text::CSV to Perl 6 and was showing us his (considerable) progress. Tuxx++ 08:02
hmmm... Tux++
lizmat or: [Tux] ++ :-) 08:05
jnthn lizmat: Starting the long trip Austria-wards today? :) 08:08
lizmat well, in a way, yes 08:09
FROGGS don't tell nwc10 about Austria-warts /o\
lizmat first some shopping in Amsterdam, then some shopping in Ghent, then a meeting in Ghent, then home, then onwards to Karlsruhe, and then onwards to Salzburg
nwc10 Austria-warts include
1) not enough lamb
2) not enough cider 08:10
3) "cappochino", if you're not careful in your specification
FROGGS 4) ppl talk weird in Vienna
lizmat hope to arrive around 19:00 tomorrow in Salzburg
FROGGS lizmat: at the same time like timotimo and me :o) 08:11
nwc10 They talk differently weird in Stiermark
and all of them aren't using proper German words for some things
FROGGS nwc10: true, but I like that one
nwc10 I can't spell it either, it seems
FROGGS Topfen /o/
nwc10 maybe I should have tried Styria
woolfy FROGGS: strangely enough, leont will arrive at almost exactly the same time! 08:12
FROGGS it is Steyermark, no?
woolfy: nice :o)
nwc10 oh, nice
FROGGS damn... can't stand it
nwc10 I wasn't certain he was coming because he's not confirmed
woolfy He will come if he will be at our home tomorrow at 09:15. :-) 08:12
Nice to arrive with four Perl 6 people in Salzburg. 08:14
jnthn much wow 08:18
woolfy: I'll wait around for y'all at the hotel (probably madly scribbling my talk), and guess can all head out for noms :)
jnthn gets in earlier 08:19
nwc10 I don't yet know when I'm arriving 08:20
(other than "Thursday early evening")
weather looks good: www.zamg.ac.at/cms/de/wetter/wetter...nachmittag
woolfy jnthn: OK, will take you with us in the car. Nice to arrive with five Perl 6 people at social event. :-) 08:21
laben hello #perl6 08:24
moritz nwc10, woolfy, lizmat: if any of you want to visit me on your way from or to APW, that would be very nice 08:26
(or any other 6er that I might have forgotten to hilight, for that matter)
lizmat moritz: *on* the way, would be difficult...
on the way back, definitely an option 08:28
woolfy moritz: lizmat seems tohave your address...
jnthn nwc10: Yeah, weather here is crap! Will be glad of the improvement in Salzburg :)
lizmat but it would not be much more than having lunch on Wed, because we need to be back home late Wed
moritz lizmat: do you already know when you'll drive back
lizmat: lunch would suit me fine
lizmat 3.5 hours to Erlangen, then 5.5 hours home
moritz lizmat: it's actually Fuerth/Nuernberg now, but that's close to Erlangen 08:29
lizmat yup, close :-)
moritz (20km away)
lizmat let's try to get that together on Wed then :-)
moritz lizmat: aye!
(but not I'm afk for a bit, meeting) 08:30
woolfy moritz: on the way to Salzburg, we will probably have a lot of road work problems, and we are picking up timotimo up, and if we are lucky, we will be in time in Salzburg to join the pre-event social.
So, no visiting you on our way to Salzburg...
Ah... I was superfluous... :-)
woolfy and lizmat now on the road to Amsterdam and then off to Ghent. 08:31
afk
lizmat commuting :-) & 08:31
TimToady drive good 08:31
laben_ welp, some net problems 08:34
laben_ m: class T { has $.a; has $!b; has $.c; method new($a, $b) {self.bless(:$a, :$b);}}; my $t = T.new(1,2); $t.perl.say; 08:36
camelia rakudo-moar 19d2de: OUTPUT«T.new(a => 1, c => Any)␤»
laben_ why does this not work?
i mean, why doesn't it initialize $!b?
laben_ it doesn't even set it to Any like $.c 08:37
jnthn laben_: It's private. 08:38
laben_: So the outside of the class shouldn't know about it.
laben_ but $.a too, it just has a getter...
jnthn Yes, that is what indicates that bless is allowed to set it. 08:39
And that it shoudl show up in .perl
laben_ m: class T { has $.a; has $!b; has $.c; method new($a, $c) {self.bless(:$a, b => 5, $:c);}}; my $t = T.new(1,2); $t.perl.say;
camelia rakudo-moar 19d2de: OUTPUT«===SORRY!=== Error while compiling /tmp/mFhfVjzUZe␤Redeclaration of symbol $:c as a placeholder parameter␤at /tmp/mFhfVjzUZe:1␤------> new($a, $c) {self.bless(:$a, b => 5, $:c⏏);}}; my $t = T.new(1,2); $t.perl.say;…»
laben_ m: class T { has $.a; has $!b; has $.c; method new($a, $c) {self.bless(:$a, $:c, b => 5);}}; my $t = T.new(1,2); $t.perl.say;
camelia rakudo-moar 19d2de: OUTPUT«===SORRY!=== Error while compiling /tmp/5vOY5J0QTP␤Redeclaration of symbol $:c as a placeholder parameter␤at /tmp/5vOY5J0QTP:1␤------> method new($a, $c) {self.bless(:$a, $:c⏏, b => 5);}}; my $t = T.new(1,2); $t.pe…»
jnthn :$c, not $:c 08:40
laben_ m: class T { has $.a; has $!b; has $.c; method new($a, $c) {self.bless(:$a, b => 5, :$c);}}; my $t = T.new(1,2); $t.perl.say;
camelia rakudo-moar 19d2de: OUTPUT«T.new(a => 1, c => 2)␤»
jnthn As I said though, *bless* will not set it
write a submethod BUILD
jnthn gotta go back to teaching, sorry...
laben_ jnthn: thanks, but why? this is extremely confusing
laben_ what is the use of new if i need to write an additional BUILD method? not trying to be abrasive, i would just like to understand the reasoning 08:43
laben_ m: class T { has $.a; has $!b; has $.c; submethod BUILD(:$!a, :$!b = 5, :$!c) {}}; my $t = T.new(a => 1, c => 2); $t.perl.say; 08:50
camelia rakudo-moar 19d2de: OUTPUT«T.new(a => 1, c => 2)␤»
TimToady the point of privacy is to not let people write code that depends on that part of the interface because the name might change in the future; on the other hand, if you want to expose the name, there's little reason not to declare it $.b instead, since you can still refer to it internally as $!b
and if you change the name of the internal attribute, you can still map that name to the new attribute 08:51
laben_ i know the point of privacy, but if i do it inside the new method, no one knows but the class and it still doesnt work
now, why the BUILD way doesnt work either? 08:52
wait, .perl doesnt show it?
TimToady I don't know why your default doesn't work, other than that people usually put it on the 'has' instead 08:53
laben_ m: class T { has $.a; has $!b; has $.c; submethod BUILD(:$!a, :$!b = 5, :$!c) {}; method dd {$!b}}; my $t = T.new(a => 1, c => 2); $t.perl.say; $t.dd.say 08:54
camelia rakudo-moar 19d2de: OUTPUT«T.new(a => 1, c => 2)␤5␤»
TimToady oh, it does work, sorry, not awake yet
laben_ yep, .perl doesn't show it
TimToady m: class T { has $.a; has $!b; has $.c; submethod BUILD(:$!a, :$!b = 5, :$!c) {}}; my $t = T.new(a => 1, c => 2); say $t.DUMP 08:55
camelia rakudo-moar 19d2de: OUTPUT«T<1>(␤ :a(1),␤ :$!b(5),␤ :c(2)␤)␤»
laben_ i still think it's confusing and certainly undocumented outside of the synopses, assuming it's explained there
TimToady well, language design is all tradeoffs... 08:56
so it's impossible to reduce confusion to 0
that's not, of course, an excuse for excess confusion :) 08:57
laben_ but why the distinction between new and BUILD?
personally, i would be satisfied if i could read the reasoning between several design decisions, that would make me understand the language better 08:58
TimToady because new for creating an object as a whole, not for monkeying with the class's particular infrastructure
especially when you have inheritance, each parent class is in charge of its own infrastructure, via BUILD
laben_ you mean initializing a private attribute with some value (even non static) which can be done only with BUILD is monkeying with the class infrastucture? i don't understand 09:00
TimToady if you declare an attribute private, it means you are reserving the right to change it without the consent of your parent or child classes, as well as any random users of your class 09:01
laben_ at least, initializing a $! attribute out of build should trigger a warning, don't you think? 09:02
laben_ s/build/BUILD/ 09:03
TimToady why would we want a warning if the programmer is doing it on purpose? then they'd just have to suppress the warning 09:04
TimToady warnings are for when we're pretty sure that the user is confused 09:04
but if we start guessing about that, we make everyone mad :) 09:05
laben_ i should get a warning because setting it in new does not work, and i don't see hint of that
TimToady well, there should probably be a warning that the argument is unused, but we haven't figured out how to do that yet 09:06
timotimo o/ 09:06
TimToady we'd need a bit somewhere that says "some level of this multilevel call used this value" 09:07
laben_ indeed, i'm confused because i would think that setting an attribute in new() works, while i should read a warning like "Private attribs like $!b can only be init'ed in BUILD submethod"
TimToady but we can't just delete it on use, because multiple levels may reuse the value
timotimo laben_: i have a few points for you
1) the new method doesn't implicitly call parent or child news inside your class hierarchy for you
2) the BUILD method, however, does get called for all classes in your hierarchy 09:08
that means that we can't simply error out when we get an additional parameter passed that doesn't correspond to a $!foo in your class C if C is derived from B which is derived from A
because even if B or A don't have a $!foo either, they might want to take a named parameter "foo" and do something with it
also, your default value is better placed in the "has" clause, IMO
hope that helps at all? 09:09
laben_ timotimo: but i'm not talking about a parameter which seems not used, i'm talking about trying to use a parameter to init an attrib with the same name, but it silently does not work because it needs to be done in BUILD 09:10
timotimo there's also the thing where every method has an implicit *%_ to it that'll silently swallow excess named attributes 09:10
laben_ i see in doc a little of this behaviour is documented, but only in a few lines which leaves it pretty confusing 09:11
timotimo yeah, that's bad. 09:12
TimToady maybe you should switch from OO to FP programming, where everything is perfectly clear :) 09:13
laben_ TimToady: not to me and i'm not asking every behaviour to be clear, just for it to be documented a bit more clearly, not everyone is a rakudo developer :/ 09:14
laben_ m: class T { has $.a; has $.c; method new($a, *%opts) {self.bless(:$a, |%opts)}}; my $t = T.new(1, b => 2); $t.DUMP.say 09:20
camelia rakudo-moar 19d2de: OUTPUT«T<1>(␤ :a(1),␤ :c(Any)␤)␤» 09:21
laben_ man, i dunno what to do here, how can i make it work?
TimToady declare $.b maybe 09:23
FROGGS laben_: how should it know that you want to assign b to c?
laben_ i don't want to assing b to c
assign*
FROGGS m: class T { has $.a; has $.c; method new($a, *%opts) {self.bless(:$a, :c(%opts<b>))}}; my $t = T.new(1, b => 2); $t.DUMP.say
camelia rakudo-moar 19d2de: OUTPUT«T<1>(␤ :a(1),␤ :c(2)␤)␤»
FROGGS ohh 09:23
I thought so 09:24
laben_ i would like to pass additional params for the class via new
FROGGS laben_: what should happen with these? 09:24
laben_ i thought %opts would get filled with b => 2, then with |%opts i would get the equiv of bless(:$a, b => 2), therefore creating an attrib b with value 2 09:25
TimToady p6 objects are not hashes 09:26
timotimo attribs have to be defined with "has" clauses
FROGGS laben_: an attribute won't be created out of thin air just because you pass it to new
TimToady you can't just shove a new attribute in
laben_ i need to tell that to XML guys
FROGGS one would have to use the MOP to add attribute conditionally... but I am not sure how good that idea is :o) 09:27
laben_ but there is a way to add attribs at runtime, no?
TimToady sounds more like you want a hash attribute
moritz laben_: or you could have a hash attribute inside an object
laben_ otherwise how do you support prototype-based inheritance
FROGGS something like: $target.HOW.add_attribute($target, $add_attr);
moritz via a custom meta object protocol
FROGGS and one has to add the public accessors then too 09:28
laben_ moritz: can you explain or link some material?
Ven Well backlogged, #perl6 09:29
timotimo o/ ven
Ven I am arriving at salzburg at 4pm (tomorrow, that is). Will there be some 6ers? 09:30
timotimo FROGGS: actually, adding an attribute before you compose the package will create the accessor for you, too, IIRC
FROGGS ohh
timotimo: but what is about doing would happen when instantiating an object... the package will be composed already, no? 09:31
timotimo well, an XML file has to have a DTD 09:32
build the classes based on that DTD
:P
laben_ timotimo: so, can i do that in a BUILD submethod?
timotimo no 09:33
not the way i'm proposing, i mean
Ven class A { has %.attrs is bucket; }
laben_ is bucket? what is it?
Ven nothing :P 09:34
timotimo what is it? you decide! :)
laben_ ? i'm getting confused? 09:35
Ven It's nothing *yet*, but you're very free to define it yourself 09:35
laben_ i know is rw, but there is no other in the docs
Ven in the docs? 09:36
dalek ast: 05bf75e | usev6++ | S04-phasers/begin.t:
Add test for RT #115502
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=115502
Ven I know I explain how `is` works in my tutorial, at least
laben_ doc.perl6.org, reading from these for now, synopses are a bit much too
Ven laben_: have you tried learnxinyminutes.com/docs/perl6/ ?
I'd love some feedback ;) 09:37
laben_ Ven: thanks for the link, i'll tell you
Ven hopes there will be some other people by salzburg at 4pm :) 09:38
laben_ Ven: first thing right off the bat is the first :truey and :!falsey, you should make clear that the result is not based on the names. i mean, it works even if you call them :foo and :!bar 09:39
Ven takes note 09:40
laben_ with-named(3, :4named); #=> 7 is this seriously a thing? this is a typo nightmare 09:42
Ven how so 09:43
FROGGS laben_: that is a pair constructor syntax, usually used in: s:2nd/foo/bar/
m: say :2nd; say :4named;
camelia rakudo-moar 19d2de: OUTPUT«Unexpected named parameter 'nd' passed␤ in sub say at src/gen/m-CORE.setting:15835␤ in block <unit> at /tmp/rlIaHBIajO:1␤␤»
Ven hahah 09:44
laben_ Ven: if i typo and write :3end instead of :end
FROGGS m: say (:2nd); say (:4named)
camelia rakudo-moar 19d2de: OUTPUT«"nd" => 2␤"named" => 4␤»
Ven laben_: why would you do that, though?
that's the same problem as every other typo. I don't understand your argument
if you write :eend instead of :end... That's the same problem
laben_ Ven: with this mechanism is perfectly legal and even returns a value, instead of giving warning beacuse you use undefined 09:45
because*
FROGGS I once typo'd: if(someconditionhere); {ahugeblockhere} and it took me quite a while to find it
Ven laben_: I still don't understand. What's undefined?
FROGGS still, a typo is a typo
Ven m: say (:eeeend); # I just typo'd "end" here. same problem 09:46
camelia rakudo-moar 19d2de: OUTPUT«"eeeend" => Bool::True␤»
Ven How is it a "typo nightmare"? 09:47
laben_ Ven: i want to put a param :end, i mistype :eend, when i try to use end it says undefined because i did not pass anything, while if i mistype :3end, it's not undefined 09:47
Ven now imagine if you mistyped :!end :) 09:48
laben_ Ven: because i made a typo and the usual system that warns me doesn't
FROGGS laben_: looks more like you are complaining about the fact that additional named arguments passed to methods are just swallowed
Ven if you do Bool :$end, then you're certainly gonna get an error.
laben_ Ven: that is if who wrote the sub code specified a type, but what if he didn't? 09:49
Ven laben_: (it's gonna be truthy anyways)
FROGGS m: sub foo(:$end) { }; foo(:3end)
camelia ( no output )
FROGGS err
m: sub foo(:$end) { }; foo(:$eend)
camelia rakudo-moar 19d2de: OUTPUT«===SORRY!=== Error while compiling /tmp/D6HZI5ncjm␤Variable '$eend' is not declared␤at /tmp/D6HZI5ncjm:1␤------> sub foo(:$end) { }; foo(:$eend⏏)␤»
FROGGS m: sub foo(:$end) { }; foo(:eend)
camelia rakudo-moar 19d2de: OUTPUT«Unexpected named parameter 'eend' passed␤ in sub foo at /tmp/MXzZNingbI:1␤ in block <unit> at /tmp/MXzZNingbI:1␤␤»
FROGGS laben_: you basically want that message me thinks, but you'll only get it for subs, not methods 09:50
arnsholt laben_: If you misspell a named, in most cases dispatch will complain about an unknown argument
laben_ FROGGS: if i come off as complaining it's just because i would like an explaination, not that i want to change Perl 6 behaviour
arnsholt And well, I don't see how that named syntax is more prone to misspellings than other syntaxes 09:51
FROGGS arnsholt: not for methods
arnsholt Are methods magically *%nameds? 09:51
FROGGS yes
arnsholt Oh. Didn't know that 09:52
laben_ i'm truly sorry if i come off as scathing, it's not my intention, i hope you can continue to view me as friendly
timotimo that's fine :)
Ven arnsholt: yeah, it's for nextsame etc. 09:55
colomon Debugger::UI::CommandLine, GTK::Simple, NCurses, and Semantic::Versioning all started failing overnight. :\ 10:02
oh, "failed cloning repository" 10:03
timotimo huh
colomon launches another smoke test.
laben_ Ven: the "arbitrary precondition" you speak of in the Multi Dispatch section doesn't have a specific name? If so, you should cite it 10:10
Ven laben_:well, it's called "wheres" 10:11
laben_ Ven: the capability to restrict a type to a subset resulting true of a predicate, it doesn't have a name? sorry, i thought i read it somewhere 10:12
jnthn Refinement type, maybe 10:13
Though we typically just say "subset type" here, I think 10:14
laben_ jnthn: i see
jnthn On new/BUILD, I typically write a new when I want to change the API for construction from named parameters to something else, and use BUILD when I want more control over how attributes are initialized in my class 10:15
laben_ jnthn: you can only use one or the other? 10:16
jnthn laben_: You can do both 10:16
FROGGS jnthn: "in your class" is ambiguous :o)
jnthn FROGGS: I know exactly what my class is :P 10:17
FROGGS yeah, probably :o)
jnthn laben_: That said, in reality, I quite often write a BUILD, and only rarely write a new
laben_: 'cus culturally, "pass named args to new" is the common thing 10:18
Ven jnthn: noted. s06 doesn't give it a name
jnthn So I tend to want a fairly strong reason to do that.
laben_ jnthn: culturally, for perl. not if you want to attract people from other languages 10:19
jnthn Typically when I go to a language, I read code and figure out its cultural norms. :) 10:21
abraxxa i'm looking for a way to define a variable in test files that use a single test file via an eval
in github.com/abraxxa/DBIish/blob/mas...e-common.t 10:22
but i want to define the default value in the t/99-common.pl6 file and not define it in each test file 10:23
this works with $* scoped vars but still requires to define the var in each evaling test file
laben_ jnthn: i agree, but i don't think that behaviour is the norm. basically, i'm saying that people not used to that will try and complain about those differences unless told explicitely and strongly 10:25
arnsholt jnthn: Yeah. Just like natural language there are constructions that are correct and make sense, they're just (almost) never used 10:26
jnthn arnsholt: Yeah. You should see how friously my colorless green ideas are sleeping... :) 10:26
*furiously
arnsholt My favourite example is "pepper and salt". Makes perfect sense, and yet it's just wrong =)
FROGGS laben_: surely, but we can't change Perl 6 into something that everyone expects... you only can make some ppl happy out of the box 10:27
jnthn arnsholt: Isn't there a photetics explanation for why that sounds wrong compared to "salt and pepepr"...
laben_: So, we need to document/explain this more prominently/clearly?
arnsholt Not that I've encountered, but could be something like that
laben_ FROGGS: again i agree, it's just that there is a lot of documentation work to be done to prevent complaints to the max
jnthn: in my humble opinion, yes 10:28
FROGGS jnthn: d followed by s is problematic me thinks
laben_: true
jnthn laben_: OK, that gives me/us something concrete to work on. Thanks. 10:29
Maybe I can dig up some concrete examples from modules that illustrate it well...
rurban lizmat: what's with this "heat death parsing times" for my constant π := pi? RT #122785
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122785
laben_ also, a clear collection of examples of class building and attribute wrangling would be probably the best solution. remember why people love(d) StackOverflow, it's because you see example, you copy example, then work it out 10:30
FROGGS rurban: when we stick literal unicode characters in rakudo's core setting, the stage parse will increase exponential on parrot 10:31
lichtkind cheers pplz, i have an interesting bug for you
FROGGS rurban: so we have to avoid that 10:31
azawawi hi
FROGGS lichtkind: do tell
rurban numbers?
FROGGS rurban: I have none 10:32
(atm)
rurban maybe I should attack that first. encodings are handled very inefficiently between imcc and the core parrot API
FROGGS rurban++ 10:33
laben_ or a good faq, an example question would be "What is the difference between a private method and a sub in a class" coupled with short codes that illustrates the q 10:33
lichtkind unhandled exception: failed to load library 'dynext/libperl6_ops_moar.dylib' at <unknown>:1 (long/path/rakudo/perl6.moarvm:<dependencies+deserialize>:306)
which comes at any call of perl6-m on my macbook 10:34
laben_ btw, what is the answer to that question?
lichtkind built just yesterday
jnthn laben_: A private method can access attributes, a sub can not
laben_ jnthn: that's exactly the type of answer needed, precise and concise 10:35
the things one can remember from heart
FROGGS lichtkind: and that happens inside the rakudo directory as well?
lichtkind yes 10:36
FROGGS does that file exist?
lichtkind no actually no
my fault
FROGGS O.o
jnthn And how the heck did it get through the build without that file? :)
lichtkind in the dir all is fine
FROGGS ahh
jnthn lichtkind: did you "make install" :)] 10:37
FROGGS lichtkind: did you "make install"?
jnthn lol
FROGGS ehh
rurban added github.com/parrot/parrot/issues/1097 for imcc bad handling of encoded strings
lichtkind yes i redid make install
same problem
i do whole thing again 10:38
FROGGS lichtkind: can you no-paste the output of make install?
lichtkind just to make sure
hardly so since i dont have an irc client on my macbook but mom please
FROGGS rurban: the timings are from your box? 10:39
rurban yes, my slow macair
a bigger box would be faster 10:40
FROGGS rurban: that explosion to 440s is just crazy :o)
rurban well, I knew that for a long time, but didn't know that it affects rakudo that much. I thought method call slowness is more important for now 10:41
we'll see how to prioritize
will need a few months probably
FROGGS yeah
rurban could or Coke you add the reference to the parrot ticket into the RT?
you or Coke 10:42
FROGGS I can
FROGGS done. 10:43
lichtkind_mac ah actually i had chat :) 10:43
paste comes in a sec 10:44
laben_ phasers seems really cool 10:52
rurban FROGGS: thanks 10:54
lichtkind_mac pastebin.com/xbCdddUD
hope that helps
laben_ Ven: no mention of appending to or concatenating an array or a hash in your guide 10:56
jnthn , 11:00
laben_ m: my @a = 1, 2; my @b = 3, 4; say @a,@b 11:02
camelia rakudo-moar 19d2de: OUTPUT«1 23 4␤»
laben_ m: my @a = 1, 2; my @b = 3, 4; my @c = @a, @b; @c.perl.say 11:03
camelia rakudo-moar 19d2de: OUTPUT«Array.new(1, 2, 3, 4)␤»
laben_ m: my @a = 1, 2; my @b = 3, 4; @a = @a, @b; @a.perl.say
camelia rakudo-moar 19d2de: OUTPUT«Array.new(1, 2, 3, 4)␤»
jnthn
.oO( I like it when I can answer in a single char :) )
m: my @a = 1, 2; my @b = 3, 4; @a ,= @b; @a.perl.say
camelia rakudo-moar 19d2de: OUTPUT«Array.new(1, 2, 3, 4)␤»
laben_ jnthn: cool, are there performance diff with push? 11:04
jnthn Maybe but I couldn't tell you which way :)
laben_ jnthn: i suppose the end target is to have them equivalent on performance, right? 11:05
jnthn well, or close enough you won't care :)
teaching time again :)
laben_ like if , is a fun call to push, inline it and it's great
laben_ Ven: i think there's an error on the line where you exmplain list-associative property for binary operators. that or it needs a better explaination 11:09
.tell Ven no mention of appending to or concatenating an array or a hash with the "operator ," in your guide 11:10
yoleaux laben_: I'll pass your message to Ven.
laben_ .tell Ven i think there's an error on the line where you exmplain list-associative property for binary operators. that or it needs a better explaination
yoleaux laben_: I'll pass your message to Ven.
lichtkind FROGGS: you want any additional info? 11:18
dalek ast: 0a2c9a8 | usev6++ | S04-phasers/enter-leave.t:
Add test for RT #116314
11:28
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116314
FROGGS lichtkind: that file gets installed: perl -MExtUtils::Command -e cp dynext/libperl6_ops_moar.dylib /Users/lichtkind/code/perl/six/rakudo/install/languages/perl6/runtime/dynext 11:56
lichtkind: does the file exist at that path?
lichtkind it does 11:59
colomon Second smoke came out much better, but GTK::Simple is still failing. 12:00
FROGGS lichtkind: what gives you `which perl6-m`? 12:01
lichtkind the one in code/perl/six/rakudo 12:02
FROGGS so /Users/lichtkind/code/perl/six/rakudo is in PATH? 12:04
FROGGS lichtkind: ? 12:08
rurban probably, otherwise wouldn't have found it 12:10
which wouldn't have found it 12:11
FROGGS lichtkind: in case the rakudo build directory is in PATH, please remove it, and only put /Users/lichtkind/code/perl/six/rakudo/install/bin in PATH 12:12
dalek ast: 95bf03a | usev6++ | S04-statements/last.t:
Add test for RT #116204
12:13
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116204
timotimo hmm 12:14
oh damn 12:22
RT hides things that are quoted by default
FROGGS yaeh 12:23
or so
timotimo jnthn: how does the profiler react to something like $app.run() and callbacks being called from there? will those be properly removed from the exclusive time of postcircumfix:<( )>? 12:24
moritz that's the very definition of exclusive vs. inclusive time, no? 12:25
moritz so far I've seen no indication that the profiler mixes up the two 12:25
Ven leont: irclog.perlgeek.de/perl6/2014-10-08#i_9475067 <- right, I know I need to explain flattening :) 12:26
yoleaux 11:10Z <laben_> Ven: no mention of appending to or concatenating an array or a hash with the "operator ," in your guide
11:10Z <laben_> Ven: i think there's an error on the line where you exmplain list-associative property for binary operators. that or it needs a better explaination
timotimo moritz: it's just because when we have a callback, we have an inferior runloop, afaict
and that could be weird
jnthn I don't think the inferior runloop will upset the profiler much 12:27
moritz uhm, what?
Ven leont: not sure I get the second message
jnthn Or at all
timotimo good
moritz I hope not every callback starts an inferior runloop?
Ven lichtkind: I've got that "bug" before.
lichtkind: you added the wrong bin to your path
jnthn moritz: Well, each callback needs to call into the interpreter, but that's not really more costly than a normal invocation. 12:28
There's no runloop object that gets created, and the frame is just a normal frame creation on top of the normal call stack
BSc_tadzik harr harr 12:29
jnthn :D
BSc_tadzik++
timotimo BSc_tadzik: \o/
FROGGS BSc_tadzik++ 12:29
/o/ 12:30
timotimo what's our status regarding "is export('FOOBAR')" (or is that "is export(:FOOBAR)"?) and the use side of things?
nwc10 BSc_tadzik++
BSc_tadzik: so, you can come to the ball?
BSc_tadzik I even got a 5 :o
BSc_tadzik a 12:30
FROGGS a 5? on what scale? 12:31
BSc_tadzik apparently all those conference talkpractice paid off
FROGGS of course
:o)
BSc_tadzik FROGGS: 2-5, where 2 is a failure
FROGGS ahh
interesting
Ven o// 12:32
FROGGS they could have called it it 39-4a too, would make as much sense
Ven FROGGS: you sank my ship
FROGGS *g* 12:33
BSc_tadzik nwc10: I may be able to pull it off
timotimo that would be hella sweet
nwc10 BSc_tadzik: if so, that would be awesome 12:33
FROGGS \o/
BSc_tadzik nwc10: at least sunday, saturday will be quite tricky
BSc_tadzik fri and mon are pretty much out of reach :/ 12:34
nwc10 just Sunday might not be worth it
I don't know how hard the travelling is
timotimo that would be a whole lot of travelin'
nwc10 but it seems a lot of travelling for not much conference 12:35
BSc_tadzik I don't mind :)
moritz BSc_tadzik++ 12:38
timotimo BSc_tadzik: can you make panda exit with an error number when installing modules has failed? :) 12:48
Ven nwc10: when will know the schedule is final?
BSc_tadzik timotimo: sure :)
nwc10 Ven: I don't actually know.
timotimo Calling 'gdk_event_get_keycode' will never work with argument types (GdkEvent, IntTypedCArray[uint16])
Ven ha, hmm. 12:49
timotimo Expected: :(GdkEvent $event, IntTypedCArray[uint16] $keycode)
grrr
nwc10 work has something somewhat urgent currently
Ven timotimo: known bug, right?
timotimo not sure?
Ven 'think so.
timotimo i thought our ZMQ implementation did things like that all the time and it worked out then ...
this puts a pretty harsh damper on my APW project 12:52
jnthn: you know what i could do here? 12:54
i can probably not just set that to OpaquePointe?
timotimo maybe i actually can. 12:54
timotimo well, at least i get an exception now. 12:57
pepl Ven: re schedule - i did not get a response from daxim_ yet
Ven pepl: I received an email WRT talk... "deduplications" - was that you? 12:58
pepl yup
Ven alright :)
pepl deduplications is not the fully correct term.
pepl early talks were accepted early because we were not sure how full we would get the schedule. because of that few speakers have more than one in the schedule. IIRC daxim_ gave at least one of those talks already. So, no extra preparation effort and thus an opportunity to have your talk instead if he would be OK with that. otherwise - backup talk 13:05
timotimo is there still room for a lightning talk, i wonder? 13:08
Ven pepl: I'd just like to know if I need to prepare mine or not :P 13:09
timotimo FROGGS or jnthn, how do i "convert" a CArray[uint16] into an OpaquePointer? (what i'm trying to do in the "big picture" is get around the "expected IntTypedCArray[uint16] but got exactly that" error)
Ven 'guess I could do it in the train... 13:10
FROGGS hmmm
timotimo Type check failed in assignment to '$tgt'; expected 'IntTypedCArray[uint16]' but got 'Array'
i'm not entirely sure how this happens 13:11
oh!
i forgot to .new that!
Ven should say got 'Array:U" :p
timotimo that is silly
no
i wrote my CArray[uint16] $tgt; $tgt[0] = 0;
Ven oh :P
timotimo that autovivified an array
the question stands ... it seems like i need to get the memory address of the CArray 13:12
is that .WHERE?
pepl timotimo: lightning talks: yes 13:14
timotimo cool
should i register beforehand somehow?
pepl Ven: don't prepare unless you can make use of it otherwise. can't promise anything besides a backup talk 13:15
timotimo: yes, please submit it via act.use.perl.at as lightning talk
Ven pepl: well, I mean, I'm not one to write really fast my talks soo 13:16
is lizmat doing her c-day is coming talk?
timotimo OK 13:17
pepl: i'm not sure if i've purchased my conference ticket yet :o
nine timotimo: to pass the address of a pointer variable, you can also use a $pptr = CArray[OpaquePointer] with $pptr[0] = $pointer; 13:18
Ven oh, I havn't purchased my ticket easier. 13:19
Well, student pass is 10e, I can afford that..
pepl it would be great if you could pay via bank transfer (which itself should be free inside SEPA land) 13:22
timotimo aye 13:27
pepl: can you confirm that i still have to pay?
nine: that's not *quite* what i want, though
i want to pass the address of the CArray as a pointer
the function i'm trying to bind would put data into a bit of space i'm supposed to allocate, that's why it wants me to pass a pointer 13:28
and since we model pointers like that as CArray, that's what i'm doing
but i can't just put CArray[uint16] into the type signature of the native sub, as that will give me a BS error
FROGGS a solution would be to have OpaquePointer.alloc instead
I think
or just to solve that bloody issue about "got X[y] but expected Y[y]" :o) 13:29
pepl timotimo: in the sense that you're not sure if you already have? 13:30
Ven Errrm... I think I'm going to split the regex part of my tutorial into another tutorial. 13:39
clojure has "clojure macros" as an aside 13:40
The tutorial is already massive.
nine timotimo: put OpaquePointer into the signature. You can nativecast that to CArray and vice versa.
timotimo: I did the same with callbacks that get passed a **: github.com/niner/Inline-Perl5/blob...5.pm6#L517 13:41
lichtkind FROGGS thanks it works now 13:45
FROGGS lichtkind: \o/ 13:46
lichtkind good so i have something to write for the article :)
FROGGS :o) 13:53
timotimo nine: i'm sorry, i think i'm confused. 14:01
the signature has OpaquePointer right now
froggs told me when i nativecast an OpaquePointer, that's actually a dereference 14:02
oh yay, Internal error: invalid thread ID in GC work pass 14:03
moritz that's a new one for me :-) 14:04
timotimo now OpaquePointer<140112394061936> turns into GdkEvent<140112394079928> 14:05
i'm not sure that's right
timotimo that's when i nqp::box_i($the_opaque_pointer.Int, GdkEvent) 14:06
i kind of thought that should leave the number the same?
leont Given a key argument like foo.bar.baz of unknown lengt, how do I set %hash<foo><bar><baz>? 14:11
leont My naive approach of while (...) { $current = $current{$next}; } $current{$last} = $value doesn't seem to work 14:12
timotimo is your "foo.bar.baz" a string?
leont Yes 14:12
moritz my $current = %hash; for 'foo.bar.baz'.split('.') { $current = $current{$_} }
m: my %h; %h<a><b><c> = 42; my $c = %h; for 'a.b.c'.split('.') { $c .={$_} }; say $c 14:13
camelia rakudo-moar 19d2de: OUTPUT«No such method '&postcircumfix:<{ }>' for invocant of type 'Hash'␤ in method dispatch:<.=> at src/gen/m-CORE.setting:1308␤ in block <unit> at /tmp/Tmpoqwsynh:1␤␤»
moritz m: my %h; %h<a><b><c> = 42; my $c = %h; for 'a.b.c'.split('.') { $c = $c{$_} }; say $c 14:14
camelia rakudo-moar 19d2de: OUTPUT«42␤»
moritz I forgot that postcircumfix { } isn't a method anymore
it might be nice to have a .dive method that did that for you
%h.dive('foo', 'bar', 3); 14:15
leont Well, I'm trying to set a value, not get it, that is a minor complication too
timotimo m: my %h; my $c = %h; for 'a.b.c'.split('.') { $c = $c{$_} }; $c{"d"} = "hi"; say %h; 14:16
camelia rakudo-moar 19d2de: OUTPUT«␤»
moritz m: my %h; %h<a><b><c> = 42; my $c = %h; for 'a.d.x'.split('.') { $c := $c{$_} }; $c = 42; say %h.perl
camelia rakudo-moar 19d2de: OUTPUT«("a" => {"b" => {"c" => 42}, "d" => {"x" => 42}}).hash␤»
moritz leont: ^^ quite minor, IMHO :-)
yay for binding 14:17
timotimo ah, of course
moritz and autovivication
leont Right, binding. Yes that makes live much easier
TimToady m: my %h; %h{'foo';'bar';'baz'} = 1; say %h<foo><bar><baz>
camelia rakudo-moar 19d2de: OUTPUT«(Any)␤»
leont moritz++ that did the trick
Ven TimToady: I tried it as well :)
moritz (also, if you read, the loop should have a 'last unless defined $c' or so)
Ven m: my %h; %h{'foo';'bar';'baz'} = 1; say %h
camelia rakudo-moar 19d2de: OUTPUT«␤»
TimToady m: my %h; %h<foo><bar><baz> = 1; say %h{'foo';'bar';'baz'} 14:20
camelia rakudo-moar 19d2de: OUTPUT«1␤»
TimToady works the other way, so just autoviv is busted
leont I'm writing a TOML parser, it has a useful but somewhat unusual syntax for hashes
TimToady m: my %h; %h<foo><bar><baz> = 1; say %h{lol <foo bar baz>} 14:21
camelia rakudo-moar 19d2de: OUTPUT«"bar" => {"baz" => 1} (Any) (Any)␤»
TimToady hmm
m: my %h; %h<foo><bar><baz> = 1; say %h{<foo bar baz>.lol}
camelia rakudo-moar 19d2de: OUTPUT«1␤»
TimToady m: my %h; %h<foo><bar><baz> = 1; say %h{<foo bar baz>.lol} = 42; say %h{'foo';'bar';'baz'} 14:22
camelia rakudo-moar 19d2de: OUTPUT«42␤42␤»
TimToady m: my %h; %h{<foo bar baz>.lol} = 42; say %h{'foo';'bar';'baz'} 14:22
camelia rakudo-moar 19d2de: OUTPUT«␤»
xfix github.com/rakudo/rakudo/commit/de...6da3ed63bf 14:27
Reminds me of my old Math::Tau module.
For Perl 6.
github.com/xfix/Math-Tau/blob/mast...ath/Tau.pm 14:28
jnthn timotimo: Looks like a bug. Try making a constant aliasing the IntTypedCArray[uint16] and using it in both places 14:29
jnthn survived the teaching o/ :) 14:32
Now I just have to...write my talk and get to Salzburg :)
lichtkind jnthn what do you teach that is so horrible php% 14:33
?
jnthn lichtkind: Oh, I was teaching something very nice
Just tiring, especially when I still felt a tiny bit jetlagged from last week at the start of it :)
lichtkind ah
TimToady must be nice to have something to talk about
I get to talk about how screwed up my summer was :)
lichtkind i wish i could make it to slazburg 14:34
lichtkind but i did it once to miss a whole week and it took me 􏿽x9A weeks to catch up 14:34
i mean 3 still had czech keyboard
jnthn no šit!
lichtkind haha 14:35
jnthn: but you didnt looked reall bad in sofia :)
jnthn Well, no, I'd had some relatively quiet weeks leading up to it :) 14:36
I mean, all I did was write a profiler.
And drink ale.
Quite easy life. :)
lichtkind 􏿽x9Ait which reminds me i should learn fo the exam tomorrow :) 14:37
gtodd maybe one of the big YAPC's should have a BoF or community event on "Travel and Productivity Tips"
lichtkind definite
gtodd "How to avoid burnout while travelling the world, raising your kids and writing massive amounts of code ..."
TimToady
.oO("Are we there yet, Daddy, are we there yet?")
14:38
lichtkind jnthn: and please tell me when we start build gui on perl six
gtodd hahah
jnthn doesn't yet have any kids to raise, so has a little less to juggle. :) 14:39
lichtkind: On GUI stuff, see the GTK::Simple stuff I hacked up on a train, then timotimo++ (and I think others) have been working on :) 14:42
lichtkind ah which reminds me that i have a panda problems 14:45
Ven explain TimToady's sample to some people...
timotimo hi, i'm doing GTK stuff, yes
Ven m: my %h; my $a = 'a.b.c'; say %h{||$a.split('.')}; say %h.perl
camelia rakudo-moar 19d2de: OUTPUT«===SORRY!===␤Variable '&prefix:<|>' is not declared␤at /tmp/WVfbLzuEau:1␤------> my %h; my $a = 'a.b.c'; say %h{|⏏|$a.split('.')}; say %h.perl␤Variable '&prefix:<|>' is not declared␤at /tmp/WVfbLzuEau:1␤--…»
itz salzburg is warm 14:46
moritz Ven: just one |
Ven we don't have ||, I guess :). Not even sure it should work ehre tho
moritz m: my %h; my $a = 'a.b.c'; say %h{|$a.split('.')}; say %h.perl
Ven moritz: no. one | is "," - two is ";"
camelia rakudo-moar 19d2de: OUTPUT«===SORRY!=== Error while compiling /tmp/frxEcekfmi␤Variable '&prefix:<|>' is not declared␤at /tmp/frxEcekfmi:1␤------> my %h; my $a = 'a.b.c'; say %h{⏏|$a.split('.')}; say %h.perl␤»
moritz oh
ok
Ven itz: are you in salzburg :)?
itz yes with virtualsue on the slowest hotel wifi in austria 14:47
Ven itz: ah, nice. would you be up for meeting up tomorrow around 4pm?
erm, I need to know when I can get into the hotel... Need timotimo or lizmat
timotimo well, that's a good question 14:48
i'm the person they're expecting
Ven they are :P
timotimo oh holy crap
jnthn: that helped!
Ven: maybe i should shoot them a mail or contact them via booking that my roomie is going to arrive quite a bit earlier 14:49
Ven timotimo: I'd appreciate it :)
even more so that I don't speak german.
I do intend to take a german dictionary, though :P
itz ven: probably doing tourist things tomorrow and not sure what our plans are
Ven has been learning some vocabulary... Not to much extent or success
timotimo that'll be fine 14:50
itz ven: but my email is [email@hidden.address] and you can contact me tomorrow and I'll read on my phone
jnthn timotimo: yay 14:51
aww, one of my students left their brolley behind... 14:52
dalek kudo-star-daily: d70a24a | coke++ | log/MoarVM-version.log:
today (automated commit)
rl6-roast-data: 9d12f67 | coke++ | / (4 files):
today (automated commit)
timotimo Ven: Ven i think i'll need to know your full name
jnthn anyways, I should probably go find my train, and maybe pick up some food and a pint on the way...
lichtkind Sub cwd (from GLOBAL) called at:
/home/lichtkind/code/perl/six/panda/lib/Panda.pm, line 82
Please use $*CWD instead.
jnthn probably bbiab, if the train wifi works... :)
lichtkind liz broke panda
timotimo jnthn: in any case, i wish you good travels!
lichtkind: did you make extra sure to pull in the panda repository?
jnthn timotimo: Thanks! :)
gtodd cd ~/src/rakudo ; git pull ; "Already up-to-date. Everyone is drinking beer in Austria so be patient"
jnthn &
Ven timotimo: ah, yes, indeed. that might be desirabe... 14:53
timotimo :)
Ven
.oO( better cancel my trip! )
lichtkind timotimo argh 14:56
pyrimidine lichtkind: panda works for me with latest nom. just gives some deprecation warnings 14:56
timotimo lichtkind: i made that same mistake quite often recently :) 14:57
lichtkind it does 14:58
installing gtk simple right now
dalek k-simple: 9618975 | (Timo Paulssen)++ | lib/GTK/ (2 files):
add a bit of GDK stuff

allows the user to enable events via event masks and then you can subscribe to an event supply via the signal_supply method of GTK::Widget
15:00
timotimo lichtkind: if you re-install now, you can get this commit as well -^
lichtkind i did by accisdent because i missed the dev libs for gtk 15:02
pyrimidine just curious, but how are reports for host08.perl6.com:8080/report being generated?
(or more specifically, how do I test different stages for my project?)
moritz pyrimidine: there's a project called emmentaler which creates the smoke reports 15:03
github.com/tadzik/emmentaler
nneds panda, iirc 15:04
pyrimidine moritz: thanks!
timotimo you can test your project by just running "panda install ." inside the project's folder
pyrimidine timotimo: so there isn't a 'panda test' variant? 15:05
timotimo i think there's a binary "panda-tester" or something
otherwise, you can use "prove" directly (or via the simpler route which used to be ufo, but i'm not sure if ufo works 100% at the moment)
pyrimidine timotimo: ok. 'prove' works fine but it's build that's having issues (BioPerl6) 15:07
tony-o how often does panda update its module listing? 16:22
BSc_tadzik you have to do that manually 16:24
'panda update'
tony-o ahh 16:26
BSc_tadzik ooh, pandapack
I should take a look at that 16:27
tony-o it's an empty shell right now, i'm writing a POD to Readme.md converter for it right now
the dependency on Pluggable doesn't let it install, hmm :/ 16:28
psch hi #perl6 16:30
timotimo ... the readme of zavolaj still claims arrays of structs are NYI ... 16:42
jnthn that's LTA...
jnthn waves from the train
timotimo :) 16:43
BSc_tadzik waves his fabolous hair 16:51
nwc10 jnthn: train all the way? 16:55
what's the best way to get a message to lizmat? 16:56
xenowoolfy Just type now, lizmat is reading :-)
ingy lizmat is in Ghent and a talk I believe 16:57
s/and/at
but yeah, she'll backlog 16:58
xenowoolfy Indeed, lizmat and i just finished dinner in Ghent. The lecture starts in an hour...
ingy ok :)
I had dinner with her 24 hours ago
leont ingy: what a coincidence, me too! ;-) 16:59
nwc10 PMs
ingy oh, xeno*woolfy*! 17:00
ingy is slow
leont: like my CSV grammar?
leont ingy: you're a brave man. Live demoing is dangerous, but live coding is really living on edge ;-)
nwc10 lizmat++ # APW talks will be recorded (and edited by a third party)
ingy :) 17:01
github.com/ingydotnet/pegex-csv-pm...re/csv.pgx
nwc10 FROGGS: so the good news is that the t-shirts have been delivered
jnthn nwc10: Train all the way home. Flight tomorrow morning to Salzburg, via Frankfurt.
nwc10 FROGGS: and the bad news is that they're at domm's flat, not pepl's
xenowoolfy is very xeno
ingy leont: yeah I was in rough shape too :[
nwc10 so I get to collect them tomorrow morning - hand trolley and U2
(domm is in California, just to add to the fun) 17:02
jnthn Oh my, my talk will be *recorded*? I had better behave! :P
xenowoolfy ncw10++ for orga skills and service
nwc10 jnthn: but it will not be live streamed, so you can try to outbid liz to ensure that the recording "failed" for some mysterious reason 17:03
xenowoolfy: you have to thank nina, pepl and Roland too
ingy that link is "Pegex: Perl 6 Rules for the rest of us™
nwc10 or I do, on your behalf
I still have to make slides for my talks
(they got "written" about 3 weeks ago)
jnthn nwc10: You and me both! 17:04
xenowoolfy ncw10: nina++ pepl++ Roland++
(Difficult to type on iphone)
[Coke] Ghent? there's a Ghent about 30m from my house! 17:06
xenowoolfy Is that a Belgian Ghent?
Locally it is spelled Gent 17:07
[Coke] "The name has its origin in the Flemish city Ghent, in Flanders, Belgium." 17:09
dalek k-simple: c506039 | (Timo Paulssen)++ | lib/GTK/Simple.pm6:
remove debug output
17:11
xenowoolfy Afk (off to lecture)
tony-o flanders has a cool bike race 17:13
vendethiel ingy: will you be at APW? 17:14
vendethiel m: role Refl[::T, T]{}; if Refl[Int, Int].new { say "hey" } # how do you like your dependently typed perl6? 17:15
camelia rakudo-moar 19d2de: OUTPUT«hey␤»
vendethiel m: role Refl[::T, T]{}; if Refl[Int, Bool].new { say "hey" } # how do you like your dependently typed perl6?
camelia rakudo-moar 19d2de: OUTPUT«None of the parametric role variants for 'Refl' matched the arguments supplied.␤Cannot call ''; none of these signatures match:␤:(Mu ::$?CLASS ::::?CLASS, Mu ::T, T)␤ in any specialize at src/gen/m-Metamodel.nqp:2214␤ in any specialize at src/gen…»
vendethiel :-)
ingy vendethiel!!! 17:16
vendethiel \o, ingy 17:17
ingy vendethiel: saadly no. I'm at c-base in Berlin
vendethiel ah; too bad :)
ingy I'll be in Berlin until next weds
at least same TZ
vendethiel: yeah, I really would have enjoyed meeting you 17:18
sometime soon…
vendethiel ingy: ...and maybe everybody else!
ingy I've met everyone else!
vendethiel sorry then!
BSc_tadzik :D 17:19
tony-o BSc_tadzik: any idea why panda won't recognize & install 'Pluggable' as a dependency? I get the error that 'Pluggable' is not available in the ecosystem but if I install Pluggable by itself, it works fine 17:22
BSc_tadzik tony-o: no typo?
tony-o doesn't appear to be 17:23
BSc_tadzik I'm not sure if we have this levenshtein hinting system for deps
tony-o github.com/tony-o/perl6-pandapack/.../META.info
BSc_tadzik yeah, it all looks fine. Very weird 17:24
tony-o the Pluggable thing is a Role, not a class though, would that affect it?
BSc_tadzik I'll check here in a second
it should not
as far as panda is concerned it may be a JS file
dalek rl6-roast-data: 6570195 | coke++ | / (4 files):
today (automated commit)
17:25
[Coke] S32-io/spurt.rakudo.parrot 17:27
^^ two failures today
nine BSc_tadzik: congratulations! But isn't the BSc supposed to come after the name? 17:31
tony-o what is bsc
nine tony-o: Bachelor of Science 17:32
BSc_tadzik nine: dunno, in Polish it doesn't :)
tony-o ahh, congrats
BSc_tadzik it's also Dr House and not Hours DR :P
or something
jnthn m: say 'BSc_tadzik'.subst(/<:Ll>/, *.Str.succ) 17:35
camelia rakudo-moar 19d2de: OUTPUT«BSd_tadzik␤»
tony-o now he is unix
jnthn ;)
nine BSc_tadzik: it's kind of complicated here. Most traditional titles and degrees go in front of the name but those newfangled Bachelors and Masters are postfixes.
jnthn Same in English, really. BSc comes last, but Dr comes first... 17:36
TimToady it's not at all complicated in America; we just omit 'em all, except for Dr :) 17:37
timotimo except for "House, MD"
tony-o oh, is that something that is said when addressing someone? 17:38
BSc ?
TimToady the only place you see those in America is if someone puts it on their door at their business 17:39
nine In Austria everyone and their pet has some title and likes to see it. Goes back to the monarchy when some wise leader discovered that it's much cheaper to give people titles instead of a pay raise...
tony-o i don't even call Dr 'Dr so and so'
interesting, i don't remember ever seeing it in germany 17:40
vendethiel helloworldquiz.com/#/game 17:41
nine Germans are much more relaxed with regard to titles. In Germany you should use the Dr. when addressing someone in a business letter but other titles or degrees are not as important.
vendethiel got 3k2. I don't know any weird or old languages...
tony-o good to know 17:42
psch gist.github.com/peschwa/f5aa95ef7e751572924e does this seem like a sensible way forward? 17:43
we don't have a mechanism in the parser for deprecated switches or "only once" 17:44
so i made that up...
where "the parser" is HLL::CommandLine::Parser
vendethiel actually, just got 4800
liztormato [Coke]: Does that test fail by itself? 17:52
tony-o vendethiel: thank you for leading me to this: xeny.net/Homespring
liztormato It passed for me 2 days ago 17:53
[Coke] liztormato: yes.
vendethiel tony-o: np, I guess
[Coke] both tests get '' as a result.
liztormato Hmmm.... Well, can't look at it now ;-( 17:54
tony-o vendethiel: the hello world program for that 'lang' was ridiculous so i had to check it out
vendethiel tony-o: yeah, I got that one 17:58
FROGGS nwc10: hopefully they arrive :o)... though, I guess the shirts are the things that I won't miss that much compared to others 18:08
nwc10 nine: I found a tombstone near here for some dude with 4 titles 18:17
and I don't think that any of the set he'd collected were massively high powered
offhand I can't remember them
seems like the Austrians had it figured out well before modern coperates 18:18
give someone their own office and a job title with "manager"
jnthn nwc10: How many titles did you get yet? :) 18:19
Or is it not just a caes of, "live in Austria, magically get titles"? :) 18:20
nwc10 jnthn: well, the Austrians refuse to let you play with your furrien titles, unless you need them for your job
this is probably in breach of EU treaties, as they clearly have different rules for Austrians vs non-Austrians 18:21
but I'm not going to push it
jnthn :) 18:22
nwc10 FROGGS: t-shirts should arrive.
FROGGS awesome :o)
carlin a divinity student named Fiddle, refused to take his degree 18:24
he said it's bad enough being Fiddle without being Fiddle, D.D.
jnthn :D 18:25
I have a friend whose surname is Doctors. He got a PhD, thus now he's Doctor Doctors. :)
timotimo i can't find the place where i could submit a lightning talk :\ 18:26
hagiri TimToady, hello man, how r u ?
hagiri hello all, good morning or afternoon? 18:27
:D
nine Good evening, hagiri. 18:28
nwc10 we had lectures on Saturday morning at 9am from Dr D'eath. This guy, I believe: www.damtp.cam.ac.uk/people/p.d.death/
jnthn :D 18:30
tony-o jnthn: that's like the Catch 22 book, Major Major Major Major 18:33
jnthn timotimo: Aint' it the submit talk page
and then in duration you pick lightning?
timotimo i don't see the "submit talk" page anywhere :o 18:35
am i derping to the max here?
jnthn Are you lug in?
timotimo yup
maybe i'm just too late to the party 18:36
FROGGS nah
hagiri nine, thanks man 18:37
=)
timotimo hello hagiri 18:38
nine Oh, seems like I got a couple of minutes to spare in my talk. 18:41
jnthn nine: I can always ask a hard question? :P 18:44
FROGGS "What is the opposite of a duck?"
err no, damn
"What is the difference between a duck?" 18:45
(I know, I messed it up :/)
nine But...what _is_ the opposite of a duck?
jnthn Reliable method dispatch?
FROGGS nine: you have time to think about it until your talk starts :o)
nwc10 nine: you're allowed to run early 18:46
nine I will use at least some of the time just to speak slowlier 18:47
FROGGS nine: you could use different talking styles when it comes to P5 specifics or P6 specifics... 18:48
FROGGS so you speak P5 stuff slowly and boring and the P6 stuff totally motivating :o) 18:48
all of us should do that actually :D
vendethiel maybe I should register for a lightning talk 18:50
something like "how to get into p6" just giving links for the tutorial, irc, faq, et al
FROGGS +1
timotimo yays 18:56
tony-o m: say $*EXECUTABLE.WHAT, $*CWD.WHAT 18:57
camelia rakudo-moar 19d2de: OUTPUT«(IO::Path)(IO::Path)␤»
dalek ast: c58e197 | usev6++ | S04-statements/for.t:
Add tests for RT #77738
19:02
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77738
dalek ast: 054665c | (Pepe Schwarz)++ | S06-macros/unquoting.t:
Add test for RT #122746.
19:12
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122746
BSc_tadzik jnthn: hmm, weirdness :) 19:20
BSc_tadzik tony-o: installing Pandapack works for me 19:32
vendethiel oooh, scalaz's founder was kicked from scalaz. 19:40
today is a great day
nine vendethiel: this is good why? 19:46
vendethiel because this guy was the biggest asshole ever. always insulting
FROGGS well, there is some kernel hacker that might fit in that category too :o) 19:49
PerlJam FROGGS: that's just "opinionated" not "always insulting"
FROGGS: but ... maybe "asshole" anyway ;)
geekosaur immediately thought djb or theo 19:50
FROGGS PerlJam: probably... thing is that one often only hears the bad stuff
nine After seeing what people do to Lennart Poettering, I don't give too much about negative comments about people. 19:52
dalek kudo/nom: 442a465 | jonathan++ | src/Perl6/ (2 files):
Liberalize attribute-having.

Make it so that custom declarators are allowed to have attributes to, and use the default Attribute class as a fallback.
20:16
timotimo what kinds of thing end in '-attr'? 20:23
itz „Larry Wall ist für Perl-Programmierer wie Steve Jobs für Apple-Fans“ 20:25
jnthn timotimo: So far, always Attribute
timotimo mhm mhm
AFKbbl
jnthn timotimo: The idea was that different meta-objects might want to use a different meta-attribute
jnthn But...I'm really not sure %*HOW is the right hook to hang that off 20:26
timotimo ah, hmm
in any case, i'm intrigued by your talk title
and interested to find out how the recent EXPORTHOW work ties into that
jnthn me too ;) 20:27
timotimo oh, or i could just read the abstract
jnthn ooh, I think my train is about to get me home on time o.O
timotimo neato 20:28
in that case, gnite jnthn :)
jnthn detrains
pepl itz: I guess the simplifications in content and language at the salzburg.at APW entry is systematic 20:30
TimToady FROGGS: obviously, one leg is both the same. 20:31
azawawi hi 20:32
TimToady o/
tony-o BSc_tadzik: panda runs 'perl6 -Irv' for tests? 20:41
BSc_tadzik tony-o: no, prove -e perl6 20:41
tony-o weird, it's not picking up the ./lib folder 20:47
BSc_tadzik by default it won't 20:48
panda does make it work though :)
tony-o how would i test it? locally i can do: prove -e 'perl6 -Ilib' t/ 20:50
and get a success, if i do prove -e perl6, then i fail, and it fails with panda
BSc_tadzik huh 20:52
pepl TimToady: FYI: there will be parking space for a few cars for the APW - they will be sign-posted when coming in via Jakob-Haringer Straße
BSc_tadzik tony-o: you could hack panda to make it print the commands it runs 20:52
azawawi any idea how to make panda retrieve the latest META.info of a Perl 6 module?
BSc_tadzik there will be one prefixed with PERL6LIB=... most likely
azawawi: 'panda update' should do it
azawawi cool thanks... 20:53
tony-o prove -e /Users/tony/Downloads/rakudo/install/bin/perl6 -r t/ 21:05
the error i get is could not find module and a list of @*INC, but it doesn't include the './lib' folder 21:06
bartolin tony-o: I often just add "PERL6LIB=lib " at the beginning of the command line to include "./lib" for a single command 21:09
(though I don't know if that helps in this case) 21:10
azawawi feather.perl6.nl:3030/ # Farabi6 proof of concept Perl 6 editor... will break under pressure :)
azawawi panda install Farabi6 # for a local installation 21:11
tony-o bartolin: that doesn't seem to affect @*INC at all
tony-o azawawi: ENV{FARABI6_UNSAFE} is not enabled 21:12
azawawi yeah i didnt enable it... panda install it locally and try it plz
it cant handle multiple connections well 21:13
bartolin tony-o: oh, you are executing prove. what's about "PERL5LIB=lib "? 21:14
tony-o still nada 21:15
feel like i'm missing something very obvious
timotimo azawawi: what syntax highlighting does that use? 21:16
azawawi timotimo: perl5+perl6 keywords workaround js mode
timotimo ah 21:17
having a ' as an apostrophe in a pod block makes it think the rest of the file is a single-quoted string %)
azawawi true it is a perl5 mode afterall 21:18
timotimo that's fair
azawawi i noticed finding files is so slow in perl6 21:19
timotimo aye, the 'Fetching $modulename" part of panda is painfully slow 21:20
azawawi enabled running code for a while 21:21
and then im going to turn it off :)
timotimo it needs to learn to interpret ANSI escape codes for colors in its output :) 21:22
azawawi sure :)
open a github issue please so i can remember 21:23
timotimo will do 21:23
azawawi but overall im impressed with the MoarVM stability 21:25
azawawi it is way better than before 21:25
azawawi timotimo: try Alt-F11 for full screen editing 21:26
azawawi & 21:33
carlin tony-o: if you have panda in your path you should be able to run `panda-test` 21:42
timotimo jnthn: your g_idle_add has "returns int32", but in the docs it says it actually returns a guint; we may want to correct this 21:59
dalek ast: e8fd9ec | usev6++ | S02-types/set.t:
Add tests for RT #116096
22:00
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116096
dalek k-simple: 5e263c1 | (Timo Paulssen)++ | lib/GTK/Simple.pm6:
expose the timeout function of gtk's event loop
22:07
jdv79 nopaste.info/a3cb6f413c.html seems to disagree with S07 - why? 22:16
tony-o gonna rebuild panda .. panda-test succeseds but panda install fails
timotimo how does it disagree? 22:17
jdv79 i thought from the comment in S07 it would return (10, 11, 12, 13, 14, 15..50) 22:18
oh, right. seems fine i guess.
cool 22:19
timotimo :) 22:22
timotimo m: my $a = 1; my $b = 2; say $a + $b i 22:38
m: my $a = 1; my $b = 2; say $a + $b * i
camelia rakudo-moar 442a46: OUTPUT«===SORRY!=== Error while compiling /tmp/AE2la6JSsq␤Two terms in a row␤at /tmp/AE2la6JSsq:1␤------> my $a = 1; my $b = 2; say $a + $b ⏏i␤ expecting any of:␤ postfix␤ infix stopper␤ …»
rakudo-moar 442a46: OUTPUT«1+2i␤»
tony-o moar doesnt build now either .. 23:07
Stage parse : moar(15135,0x7fff78887310) malloc: *** error for object 0x7ff91f1ed290: pointer being freed was not allocated 23:08
lizmat moar build failure confirmed, reconfiguring seeing if that hekps 23:22
helps
BenGoldberg Here's an interesting possible speedup... compare: 23:40
m: sub foo ($a) { $a+1 }; my $start = now; foo(42) for 1..1e6; say now - $start; 23:41
m: sub foo ($a is rw) { $a+1 }; my $start = now; foo(42) for 1..1e6; say now - $start;
camelia rakudo-moar 442a46: OUTPUT«9.74894771␤»
rakudo-moar 442a46: OUTPUT«9.00733102␤»
BenGoldberg Suppose we can detect a *lack* of assignments to a container; if there's no chance of the contents of the container being mutated, generate the same code as if "is rw" had been there. 23:42
lizmat nukes the install directory and starts building again just before hitting the sack 23:54
starting to wonder whether we might be missing a moar / nqp revision bump 23:55
lizmat borkedness of rakudo on moar confirmed after a complete rebuild 23:59