»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:01 mtk left 00:05 Lorn left 00:06 risou joined 00:09 jedai_ joined 00:11 jedai left 00:27 Chillance left 00:29 yarp_ joined 00:33 alester joined 00:36 yarp_ left 00:40 kcwu joined
TimToady sorear: perhaps Mu and other "immutable" stuff can start out in PROCESS but we make mutable copies (at compile time) into GLOBAL of any interp if/when we notice MONKEY_TYPING. 00:43
alternately, the immutable copies just live in the setting, not PROCESS 00:44
00:47 starcoder is now known as elp, elp is now known as starcoder 00:50 yarp_ joined 00:57 jferrero left 00:58 TiMBuS joined 00:59 yarp_ left
sorear TimToady: how many copies of the setting exist per PROCESS? 01:01
01:06 obra joined
TimToady to the extent that the setting is immutable, it doesn't matter 01:07
and possibly monkey patching relocates to UNIT, not GLOBAL 01:08
hmm, except that doesn't do the monkey patching, nevermind :)
01:12 obra left 01:21 cdarroch left 01:35 ggoebel__ left, uvtc joined
uvtc From S01, what does "Everyone wants the colon" mean? 01:36
01:40 ggoebel__ joined
uvtc Ah. Should've searched more first. Found the rest of the expression in a transcript of an older talk: "Everyone wants the colon for their particular syntax". 01:42
01:44 uvtc left 01:50 jql joined, whiteknight left 01:53 woosley joined 02:02 Moukeddar joined 02:31 isBEKaml left 02:34 Moukeddar left
dukeleto tadzik++ # getting your gsoc proposal accepted 02:37
02:50 bluescreen10 left 02:59 coldhead joined
TiMBuS im wondering what uvtc was interpreting that as.. 03:36
probably not a good idea to name anatomy after character symbols 03:37
i got a caret stuck in my colon
03:38
sorear syntactic sugar causes cancer of the semi-colon --Perlis(?); the pun has not been lost on others 03:39
TiMBuS hehe
why was i here again? oh. does anyone know if i need to add my module to perl6/ecosystem again? or does someone else do that now or is there some automated way of doing it 03:41
03:47 Helios` left 03:48 Helios` joined, hudnix left 03:54 Transformer joined, Transformer left 04:03 HarryS left 04:05 a2n joined, a2n left 04:16 _twitch joined 04:17 drbean left, orafu left 04:18 orafu joined 04:19 drbean joined 04:30 _twitch left 04:33 [particle]1 joined 04:36 [particle] left 04:39 ymasory left 04:40 plobsing_ left 04:42 jfried left 04:43 kaare_ joined 05:10 dukeleto left 05:13 Mowah joined 05:16 SHODAN joined 05:38 bacek left 05:43 dju_ joined, alester left 05:46 dju left 05:50 SHODAN left 05:56 wtw joined
moritz TiMBuS: you need to add it to github.com/perl6/ecosystem/blob/ma.../META.list 06:13
TiMBuS moritz, thanks
ill do that
06:19 coldhead left
moritz jnthn++ # blog post 06:26
jnthn++ # awesome nqp work
dalek osystem: 53bb38d | Jarrod++ | META.list:
Added Net::IRC to META.list
06:32
06:32 justatheory left
TiMBuS who th heck is jarrod :v 06:33
06:36 donri joined 06:42 birdwindupbird joined 06:43 birdwindupbird left 07:04 mj41 joined
mathw o/ 07:21
tadzik o/
donri o\
TMTWTDI 07:22
tadzik TiMBuS: we've been secretly calling you Jarrod when you weren't looking
donri Anything interesting happening in Parrot/Rakudoland lately? 07:23
mathw jnthn blogged about some interesting things in NQP 07:25
07:25 Su-Shee joined
Su-Shee good morning everyone. 07:25
tadzik donri: I got into GSoC :)
Su-Shee: hello!
donri \o/ What's the project?
mathw tadzik: grats!
hi Su-Shee 07:26
tadzik donri: Pod Parser for Rakudo
donri Pod6?
tadzik www.google-melange.com/gsoc/proposa...1/tadzik/1
yep, Pod6
donri Nice
07:26 domidumont joined
donri Now if we could get that .WHY thing working and get some nice API docs eh? 07:27
Where, as always, by 'we' I mean 'other people' or 'not me'.
tadzik donri: the biggest work will be to poddocument Rakudo itself :) 07:29
donri yea
tadzik social-life &
donri OTOH it doesn't require deep technical knowledge about parrot or rakudo 07:30
donri might include himself in 'we' afterall?
introspectable 'docstrings' are a nice feature of python and i understand .WHY is effectively the same thing 07:34
07:35 miso2217 left 07:39 miso2217 joined 07:45 birdwindupbird joined 07:48 fhelmberger joined
jnthn morning, #perl6 07:51
moritz \o
mathw o/ jnthn
exciting blog post
jnthn Yes, I made one at last. :) 07:53
jnthn looks forward to getting all the good stuffs into Rakudo.
donri is it about 6model? 07:54
moritz more or less 07:55
mathw It's exciting 07:56
It makes me want to write compilers
But I'd need another couple of days per week
donri linky?
mathw Can anybody arrange that?
moritz planetsix.perl.org
donri i should be subscribed to that, hm
moritz you should indeed
it has a surprisingly high signal/noise ratio for an aggregator 07:57
donri ah there we go
wasn't updated
08:00 Mowah left
mathw Argh, programmers! 08:01
Other programmers, that is, not you lovely people :)
08:06 Mowah joined 08:07 nymacro joined 08:15 JimmyZ joined 08:21 pmurias joined
donri I'm lovely. *me gusta* 08:27
mathw yup you're lovely :) 08:28
moritz hugme: hug mathw
hugme hugs mathw
moritz hugme: hug donri
hugme hugs donri
mathw hugs moritz 08:29
It's really weird here today 08:30
Virtually nobody is actually in the office
moritz is alone here too
mathw We just had a four-day weekend due to easter, and now we're about to have another one due to a royal wedding and the may day bank holiday 08:31
moritz yesterday I had some fun working on my private db project
mathw so lots of people wanted to have three days off and get a ridiculous amount of time to laze about at home and drink beer
moritz imported some data from a ~5MB dump, lots of cleanups, wiki scraping to complete the information... all in all a single run takes about an hour 08:32
s/5/50/
then dumped the db, gzip'ed it... and only 1MB was left :-)
mathw nice
moritz it felt very unimpressive :-) 08:33
08:39 Axius joined
mathw well that kind of thing has a habit of compressing well 08:39
08:40 skangas left
moritz <rant>the original database is a bit weird... a db with foreign keys that are not enforced by the DB engine 08:41
and with no unique contraints except for primary keys 08:42
so they have a many-to-many table for mapping authors and books
and some books have the same author twice
moritz shakes head
</rant>
mathw oh I used to do things like that a lot 08:43
when MySQL didn't support such things
moritz thing is, it supports it now, but not in the default engine
mathw yeah
been ages since I wrote a database app
can't say I miss it
moritz so you have to actively chose a different engine to enfcorce referential integrity
that's like having to say 'use strict;' at the start of every program to get sanity 08:44
mathw Worse
it's very easy to get people to 'use strict' 08:45
and it's very easy to change to it if you started off without it
you just get them to write in Perl 6 :P
08:46 domidumont left
mathw Unfortunately I'm the only person on my team in the office today and someone just sent me a production bug report 08:46
donri www.reddit.com/r/programming/commen...df_slides/ totally karmastealing from jnthn
08:46 SHODAN joined
mathw Even more unfortunately, it actually looks like somebody's been randomly unplugging network cables, so I just have to convince them of that now... shouldn't take more than a month or two 08:46
moritz donri: should the comma after "intriguing" really be there? 08:47
donri: my grammar knowledge sucks, but it feels wrong :-)
donri moritz: edited
moritz seems the comments page is cached - the comma is still there on the link you posted, but is gone when I go to the permalink of the comment 08:48
donri toying with your own language, i think, is a fantasy of many programmers, so i think those slides can gain interest 08:51
regardless of existing interest in parrot or perl 6 08:52
09:03 domidumont joined
SHODAN hm 09:04
moritz www.reddit.com/r/programming/new/ why don't I see donri's submission there? 09:07
mux this is most likely a very stupid question, but if I'm computing a checksum on hexadecimal data of the form "A000F342...", using Digest.pm, is it ok to split(/(..)/) the data to get individual bytes and then call $ctx->add(chr(hex($byte)) for each one? 09:19
09:20 skangas joined
mux I don't get the expected results so I assume I confused myself somehow and am doing something stupid 09:20
moritz mux: that' doesn't really look like Perl 6 code
mux guilty, that's perl5 code 09:21
moritz might work that way. Might want unpack 'H'
09:22 JimmyZ left, justatheory joined
mux mmm, I'll check if I get the same results with unpack(), thanks 09:22
I wasn't sure whether I actually need to call chr() or not, it's not clear to me what format the add() method expects data to passed in 09:23
09:25 Tedd1 joined
moritz we can't know that either, since you didn't tell us where $ctx comes from :-) 09:26
mux from Digest.pm, I mentioned that
$ctx being as usual a Digest object, to be perfectly precise, it's the result of Digest->new('SHA-1'); 09:27
pmurias mux: nopaste the code
moritz "The string value of the $data provided as argument is appended to the message we calculate the digest for.
mux sure thing, just a second
moritz "
seems pretty clear to me (from perldoc Digest)
mux moritz: yeah, that 'string value' thing strikes me as vague, but that may be just me
moritz mux: before the chr() you don't have a string value, but a byte number 09:28
mux pastebin.com/Ka6k1TjL here's the code 09:29
moritz oh
09:29 Axius left
mux moritz: I've always been unclear as to what is a number in Perl, and it seems the very notion is vague/weird/surprising in the language (is "1234" a number? sometimes it is) 09:29
moritz split /(..)/ will return empty strings inbetween 09:30
mux I'm entirely ready to blame that on my ignorance :-P
mathw it is if it's treated as a number
mux moritz: oh shi-
moritz so you get lots of 0s
mux slaps self hard
let's try this again - thanks
moritz mux: it's simple: if you use it as a number, it's a number. If you use it as a string, it's a string
"1234" + 5 -> used as a number
print "1234" -> used as a string
mux moritz: I don't find this simple; you cannot easily know how a function is going to "use" your number if the docs aren't clear about it 09:31
it's confusion-prone is what I mean
anyways, brb
moritz that's why I find "string value" so very not-confusing.
it tells you exactly that the valuei s used as a string
mux in that case yeah, I have to admit, but since I wasn't getting correct results, I started being suspicious 09:32
09:33 Exodist left
mux yay, good result! thanks again moritz 09:33
09:34 justatheory left
donri moritz: did i get stuck in the nasty spam filter? 09:37
moritz donri: no idea 09:38
09:48 domidumont left 10:04 domidumont joined 10:06 woosley left 10:34 xinming left 10:47 yarp_ joined 10:53 ggoebel__ left 10:54 xinming joined 10:55 awwaiid left 10:59 ggoebel__ joined 11:01 woosley joined 11:04 herzen left 11:24 mtk joined 11:28 pernatiy left 11:33 rhebus joined
rhebus hello 11:34
colomon \o
rhebus i'm looking at make spectest_smolder for rakudo and i get dubious results locally which don't show up in the uploaded version
smolder.parrot.org/app/projects/rep...ails/15546 <-- my report
smolder.parrot.org/app/projects/tap.../15546/454 <-- dubious result (no plan at the top, strange error message) 11:35
and looking at the test, it seems like it died before finishing 11:36
colomon ICU is an optional library, which it looks like you do not have.
rhebus ok 11:38
colomon looks like indent.t is newish (or at least has a lot of new tests) and isn't properly marked as needing ICU.
rhebus I'd like to improve the error message and fix the output here
and perhaps add a plan to indent.t 11:39
colomon Improving the error message is probably a pain, alas. At least, I'm guessing it's coming from Parrot. 11:40
How about you add a plan to indent.t, and I'll get it flagged as needing ICU?
rhebus i'll look into it
sure thing
colomon did any other files have similar problems? 11:41
rhebus no other file reported "Dubious, test returned 1" 11:42
colomon rhebus++
rhebus it worries me that this info isn't captured in the online smolder page
but I'll start with the test plan, since that's something i can do 11:43
colomon hmmm.... I wonder if the problem is that it doesn't capture that sort of info, or if the problem is that everyone else has ICU?
what's the URL of the smolder page?
oh, smolder.parrot.org 11:44
rhebus pasted above already
also, there's an escaping issue in the TAP output
pastebin.com/eFbwRDyT <-- mine vs smolder --> smolder.parrot.org/app/projects/tap.../15546/454 11:45
its losing the <anon>s
or rather, it's serving it as html in <pre> tags rather than just as text/plain 11:46
dalek kudo: 8533c3c | colomon++ | t/spectest.data:
Flag S32-str/indent.t as needing ICU.
11:46 Sarten-X left
moritz rhebus++ colomon++ 11:47
colomon rhebus: just so I'm clear -- that 15546/454 is the indent.t error in the smolder results, and smolder is completely missing it, yes? 11:48
rhebus that 15546/454 is the TAP output of indent.t from my smolder test, and smolder is presenting it as HTML rather than plain text (do view source and you see <anon> "tags")
colomon rhebus: gotcha 11:50
moritz: who's in charge of smolder?
flussence dukeleto, iirc
moritz asked in parrot, but the parrots seem to be sleepign 11:51
11:52 Patterner left
colomon moritz++ 11:53
btw, moritz, whatever happened to your underscore? ;)
rhebus bbiab lunch
moritz colomon: the previous registration of nick 'moritz' expired, so I acquired it 11:54
11:57 Psyche^ joined, Psyche^ is now known as Patterner 11:58 Sarten-X joined, awwaiid joined 12:04 Moukeddar joined 12:05 Moukeddar left, Moukeddar joined 12:08 yegor joined
takadonet morning all 12:10
Moukeddar good morning Sir
12:12 icwiener joined 12:16 bluescreen10 joined 12:20 hudnix joined
colomon huh 12:25
12:26 pernatiy joined
colomon rakudo: class A { has $.a, $.b; }; A.new(a => 1, b => 10); 12:27
p6eval rakudo 8533c3: OUTPUT«Null PMC access in find_method('b')␤ in main program body at line 2:/tmp/omKsZib4Dk␤»
colomon known?
moritz rakudo: class A { has ($.a, $.b); }; A.new(a => 1, b => 10);
p6eval rakudo 8533c3: ( no output )
moritz colomon: it tries to call self.b at compile time, because the 'has' scope doesn't extend to second thing 12:28
12:28 risou_ joined
moritz btw search.cpan.org/~wonko/Smolder-1.51/ 12:28
std: class A { has $.a, $.b }
p6eval std 3468e14: OUTPUT«ok 00:01 121m␤»
colomon ooooooo
moritz std: my $x, $y 12:29
p6eval std 3468e14: OUTPUT«===SORRY!===␤Variable $y is not predeclared (declarators are tighter than comma, so maybe your 'my' signature needs parens?) at /tmp/n6hLzKwChs line 1:␤------> my $x, $y⏏<EOL>␤Check failed␤FAILED 00:01 121m␤»
colomon moritz: even if my code is wrong, it still shouldn't be Null PMC....
moritz the error is LTA, yes
12:31 risou left
colomon reported 12:33
moritz rakudo: class A { self.b }
p6eval rakudo 8533c3: OUTPUT«===SORRY!===␤Symbol 'self' not predeclared in <anonymous> (/tmp/9ZnwDJfSgF:22)␤»
moritz rakudo: class A { $.b }
p6eval rakudo 8533c3: OUTPUT«Null PMC access in find_method('b')␤ in main program body at line 2:/tmp/xVZ8XV4BDS␤» 12:34
pmichaud good morning, #perl6
colomon o/
moritz good am, pm
takadonet pmichaud: morning sir 12:37
12:47 woosley left 12:48 woosley joined 12:50 kaare_ left 12:57 LoRe left 12:59 LoRe joined 13:03 ggoebel__ left, yegor_ joined 13:05 pyrimidine joined 13:06 yegor left, sftp joined 13:08 ggoebel__ joined 13:09 miso2217 left, leprevost joined 13:10 am0c left 13:12 Layla_91 joined
Layla_91 hola hola! 13:19
Moukeddar hello hello
colomon o/ 13:20
13:23 larsen left
pmichaud o/ 13:23
13:23 domidumont left, larsen_ joined
Moukeddar Layla_91, arabic name :) 13:23
13:23 JodaZ left
Layla_91 how are you all doing? working hard for p6? :D am just passing by ^_^ 13:23
13:24 bbkr_ left, bbkr_ joined, miso2217 joined, JodaZ joined 13:25 kaare__ joined
Layla_91 Moukeddar: that is correct 13:25
13:26 pernatiy left
Moukeddar pretty good name 13:26
13:26 pernatiy joined
Moukeddar Qays & Layla :) the arabic love story 13:27
Layla_91 Moukeddar: well i do not really know arabic but will look for a translation :)
13:29 risou joined
colomon One of my good friends in college was named Qais. :) 13:31
13:31 risou_ left
Moukeddar really ? 13:32
it's a beautiful name
colomon really. :)
Moukeddar Qais means : Strong , Arrogant 13:33
:p
colomon heh, we'd have given him a good bit of ribbing if we'd known that.
Moukeddar should ask about it earlier :) 13:34
13:34 domidumont joined, yarp_ left, birdwindupbird left
Moukeddar Layla_91, where you from ? 13:37
Layla_91 Moukeddar: am Russian 13:41
Moukeddar Oh , nice :)
Layla_91 Moukeddar: yeah, and you? 13:43
Moukeddar Morocco 13:44
Layla_91 Moukeddar: oh that is were we originally are from :D 13:45
should visit it someday..
Moukeddar sweet :)
you're welcome
how's Russia?
Layla_91 great :D 13:46
13:46 Layla_91 left 13:47 [particle]1 left 13:52 PacoLinux joined 13:56 ymasory joined, [particle] joined 14:03 yegor__ joined 14:04 Axius joined 14:06 yegor_ left 14:10 mtk left, mtk joined 14:13 alester joined 14:15 fhelmberger left, fhelmberger joined 14:16 Axius left 14:23 Axius joined 14:25 Lorn joined 14:29 Exodist joined 14:30 SHODAN left 14:42 birdwindupbird joined 14:43 birdwindupbird left 14:51 justatheory joined 14:54 birdwindupbird joined 14:55 leprevost left 14:56 leprevost joined 14:57 pmurias left 15:01 Rotwang joined 15:03 MayDaniel joined, hercynium joined, yegor_ joined 15:04 leprevost left 15:06 yegor__ left
jnthn back from $meeting 15:11
sjn welcome back! ^^
oh, that reminds me... 15:12
sjn prods jnthn and masak about you-know-what
15:12 [particle]1 joined 15:13 [particle] left
moritz don't talk about You Know Who, he might track and kill you! 15:13
TimToady wakes up
jnthn sjn: Sent a mail to the you-know-where asking for the you-know-what to be put live last night.
sjn ah, cool :) 15:14
sjn found the mail 15:17
15:18 Moukeddar left 15:20 [particle]1 is now known as [particle]
jnthn beer shop & 15:20
.oO( it closes way too öl-y... )
15:21
15:22 Axius left 15:30 MayDaniel left 15:32 plobsing joined 15:43 dukeleto joined 15:55 newbee joined
bbkr_ tadzik: another weird bug happened when bootstrapping Pies - bbkr.org/pies_bootstrap.png , any ideas? 15:56
on "TAP::Harness v3.12 and Perl v5.10.0"
15:57 dukeleto left 15:58 dukeleto joined
TimToady colomon: you have an X/Y problem; instead of insisting on using the Pair type you can just use [$u,$v] which unpacks in sigs just like in Haskell 16:03
16:04 yegor_ left
TimToady (though you raise the issue of whether a Pair should have an easy way to unpack as a subsig) 16:04
colomon what's the syntax for array unpacking in sigs?
16:04 yegor joined
TimToady [$u,$y] 16:04
er, [$u,$v]
pmichaud sub foo([$u, $v]) { ... } 16:05
TimToady -> [$u,$v], $y { $y == floor(($u + 1) * $v * $n); },
and such
colomon TimToady++
that's much easier than I thought
TimToady but an argument can be made for allowing a pair to bind to something like that too 16:06
biab &
jnthn rakudo: my @foo := :a(1), :b(2); for @foo -> ($key, $value) { say "$key = $value" } 16:10
p6eval rakudo 8533c3: OUTPUT«Not enough positional parameters passed; got 0 but expected 2 in sub-signature␤ in <anon> at line 2:/tmp/uyeUkPVRRt␤ in main program body at line 1␤»
jnthn rakudo: my @foo := :a(1), :b(2); for @foo -> (:$key, :$value) { say "$key = $value" } 16:11
p6eval rakudo 8533c3: OUTPUT«Mu() = Mu()␤Mu() = Mu()␤»
jnthn hm
rakudo: say Pair.^attributes(:local)>>.name
p6eval rakudo 8533c3: OUTPUT«␤»
jnthn Oh.
Fix that and both of the above will work :) 16:12
16:18 mj41 left, woosley left 16:19 alester left 16:25 colomon left
TimToady but only works for specific argument names, which makes it hard to give short names to the kv 16:31
not sure if [$k,$v] can be made to work though 16:32
possibly we could allow [$k => $v]
jnthn Well, if Pair.Capture produces something with k and v in it... :) 16:33
But that'd be a hack... ;)
16:33 pernatiy left
jnthn We could say that .Capture on Pair actually populates the list part, not the hash part. 16:33
Then they'd bind to positional args with whatever name.
TimToady not sure whether that undoes something nice on the other side 16:34
the underlying problem seems to be not distinguishing the Pair type from a Name type
*Named
jnthn std: sub foo($k => $v) { } 16:35
p6eval std 3468e14: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix > instead at /tmp/fjNnztsYoU line 1:␤------> sub foo($k =⏏> $v) { }␤Parse failed␤FAILED 00:01 122m␤»
jnthn Well, that doesn't mean anything yet. :)
It kinda breaks the unpack symmetry though 16:36
(e.g. of having some explicit bracketing thinguymmy)
std: my @x; for @x -> $k => $v { } 16:37
p6eval std 3468e14: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix > instead at /tmp/MczBBpWxLm line 1:␤------> my @x; for @x -> $k =⏏> $v { }␤Parse failed␤FAILED 00:01 123m␤»
jnthn Phew. :)
nqp: class Foo is LolWut { }
p6eval nqp: OUTPUT«Can only use get_how on a RakudoObject␤current instr.: 'nqp;NQPClassHOW;compute_c3_mro' pc 1498 (gen/nqp-how.pir:430)␤»
jnthn meh, not updating...
16:43 ranguard joined 16:52 ranguard left 16:55 yegor left, birdwindupbird left 16:57 bacek joined 16:59 bacek left 17:05 colomon joined 17:07 bacek joined 17:10 cdarroch joined, cdarroch left, cdarroch joined
colomon TimToady++ # the function works beautifully using [$u, $v] instead of Pair. blog post will be updated soon. 17:11
17:15 yegor joined 17:17 Moukeddar joined 17:20 molaf__ left 17:21 bluescreen10 left 17:31 fhelmberger left 17:35 bluescreen10 joined 17:38 Chillance joined 17:40 icwiener left
dalek osystem: d4e2880 | dukeleto++ | spec.pod:
Fixify the spec POD
17:43
17:44 Moukeddar left 17:47 mj41 joined, szr left 17:51 Axius joined 17:53 Vlavv_ left 17:55 masak joined
masak evenin', zebras. 17:55
moritz \o 17:56
pmichaud changes his stripes.
colomon o/
18:00 impious joined
masak #phasers in 60? 18:02
Util Yes
(well, 57 now) 18:03
masak :)
18:04 yegor_ joined 18:05 rgrau joined
moritz thanks for the reminder 18:05
masak I wonder if a library could be built to handle the recurring intricacies of lagging variables in loops, and table-join-like loops.
18:05 Vlavv_ joined, _ilbot left, s1n left, sivoais left, itz_ left, stepnem left, Tene left, tty234 left, tty234_ joined
masak I dealt with both at $work today. 18:05
18:05 itz joined 18:06 yegor left, Tene joined, Tene left, Tene joined, sivoais joined, stepnem joined, _ilbot joined
moritz you mean like an iterator that offers a .previous method, or something? 18:06
masak no, I mean this:
Util masak: Lagging variables? Do you mean like $value_from_the_last_loop_iteration? 18:07
masak Util: yes.
which means things always happen on the iteration after.
and after the last iteration.
and sometimes there are nested lagging variables, which would have been written as nested loops, were it not for the fact that they're lagging. 18:08
it's basically what appears to be an ordinary set of loops, but slightly skewed and thus rendered tricky. I'm wondering whether a library might be able to skew it back :)
18:09 Moukeddar joined
masak Moukeddar: hey there :) 18:09
Moukeddar hello
i lost the Colon 18:10
:(
masak ^ there it is
Moukeddar is my ip v6 ?
Rotwang n0
masak nope. you're among the rest of us today.
Moukeddar heh 18:11
weird
masak but you can have Perl v6 ;)
TimToady state $x will leave { .= newvalue() } # or some such...
Moukeddar it is
Util For any list, you can use .kv instead of just the value. But then how to refer to a list element when the list is not an array?
Moukeddar i'm waiting for a friend to get me a book on Perl
masak TimToady: it's not the assignment that contains the complexity. it's the triggering of updates whenever newvalue() differs from oldvalue() (and with nesting between levels of these) 18:12
I'll draw up a mock example so y'all'll see.
TimToady ah, the when to print a subtotal problem--how RPGIIish
18:13 Moukeddar left
masak TimToady: oh, I had a feeling this was a known problem :P 18:13
got any literature on it?
TimToady I wrote one of those in BASIC/PLUS lo these many years ago
18:13 s1n joined
colomon masak: List::Utils sliding-window is designed exactly to handle the lagging variable issue. Probably not the most graceful solution possible, though... 18:13
Util Moukeddar: chromatic's new book, Modern Perl, is available as a free PDF download, or printed on paper: onyxneon.com/books/modern_perl/ 18:14
masak in my case, it's not subtotals, it's Moose instantiations and setter calls on these. but yeah.
colomon: oh, I'll check it out with that in mind. thanks.
TimToady it's the 1st derivative, basically :)
18:14 Axius left
BinGOs is reading Modern Perl on his Kindle. 18:14
moritz for @a Z @a[1..*-1] -> $a, $b { say $a, $b }
masak TimToady: whoa. yes. it is. 18:15
Util TimToady: The lagging var is my 2nd favorite example when explaining that RPG does not *completely* suck (just *almost* completely)
TimToady I am occasionally the smartest person you'll ever meet. :)
masak moritz: right, that's your "sliding window" solution :)
TimToady but most of the time not...
masak hugs TimToady
I want to think bigger. can't I just, like, add a custom library-provided keyword 'lagging' before my 'for' loop, and just have a source filter^W^W grammar-modding module take care of all the complexity for me? 18:17
though that would preclude a solution that worked with -p and -n...
colomon masak: seems like doing for lagging @a -> $a, $b { say $a, $b }
would be trivial. 18:18
pmichaud RPGII -- that was my first college course :)
masak colomon: yes, but still hides only the variables part of the complexity, which is the small part.
Util pmichaud: ouch!
pmichaud maybe a function?
masak fancy, a whole programming language for role-playing games.
pmichaud lag $a, $b
colomon masak: btw, that article on abstraction you tweeted was Very Nice. 18:19
masak colomon: I like it too, but... I don't grok it :/
jnthn back from noms :)
o/ pmichaud
Util masak: Report Program Generator
colomon woah, full house!
masak Util: yes, I googled it before I made the n00b joke :P 18:20
Util Doh!
pmichaud RPG is a fill-in-the-blank language :)
masak here's the article that colomon liked: lukepalmer.wordpress.com/2010/11/23...d-harmful/
historical note: luqui used to be a regular here. his name is still in some synopses. 18:21
colomon and luqui is Luke Palmer?
masak yes. 18:22
ah; he's @luqui on Twitter, and he used to be luqui here ;)
18:22 HarryS joined
colomon masak: what don't you grok about it? 18:24
pmichaud updates ohloh projects 18:25
18:25 bluescreen10 left
masak colomon: it's like, I see that what he's saying makes sense, up to and including the duality between abstraction and encapsulation. it's a cool way to view it. 18:27
colomon: but what I *don't* see is how I would turn any class that I've ever written inside out they way he mentions.
colomon ah.
masak I'd like to understand it. but right now I don't. 18:28
the example with List doesn't illuminate much.
colomon agreed, it's a weak example.
not least because he didn't point out how horribly inefficient his example was. indexing into a List? shudder... 18:29
Su-Shee hm, I wonder if I can slip in the diagrams in this article as "OF COURSE IT'S UML!1!" into the next code review.. ;)
moritz this is all verify artifical 18:30
using a function instead of an operator
colomon masak: I didn't see it as a system for turning classes inside out, but rather an importantly different view on the importance of abstraction.
moritz just because you can't overload that operator in C
the "correct" abstraction is for List to offer a reduce() 18:31
colomon heh, I was just going to argue that the "correct" abstraction is for List to offer an iterator. :)
masak moritz: and luqui is one of those guys who probably knows that
s/knows/know/
18:33 molaf joined 18:34 Lorn left
colomon fundamentally, I'd argue the article is just "relearning" the insight behind C++'s Standard Template Library. 18:35
masak so did a commenter.
colomon it's an obvious insight. :) 18:37
(at least if you know STL.)
sorry, I mean, the comparison between this article and STL is an obvious insight.
I still think it's very worthwhile reminding the world of the power of abstraction, though. 18:38
18:38 bluescreen10 joined 18:45 bacek left 18:47 nymacro left 18:51 risou left 18:55 araujo left
Util What is the planned release date for next Rakudo Star? 18:57
pmichaud today 18:58
(I'm planning to put it together later tonight... may not actually release until tomorrow sometime)
Util Thanks! 18:59
pmichaud++
jnthn pmichaud wins the bet on when my 6model work will land (e.g. not April) :P 19:00
pmichaud I wonder how much of that is due to my own inactivity, though. :-P 19:01
I don't mind preparing an interim Star release if it's done before the next scheduled release
jnthn pmichaud: Part of it is because I distracted myself doing the packages refactor that I was trying to run away from. :)
pmichaud needed to be done, though
jnthn pmichaud: You...er...may not recognize NQP any more. But I hope mostly in a /good/ way. :)
pmichaud it's okay, I somewhat expect to not recognize it 19:02
I just fixed up the nqp and nqp-rx projects on ohloh: ohloh.net/p/nqp and ohloh.net/p/nqp-rx
colomon jnthn++
masak TimToady, pmichaud, colomon, moritz: here's my example: gist.github.com/942868 19:04
pmichaud seems like it should be doable with 'when'
19:04 yegor__ joined
pmichaud when changed $shop { ... } 19:05
masak I pondered whether to use 'when'.
pmichaud changed() could be a function that monitors state or something like that
when changed $shop | $person { ... }
when changed $person { ... }
masak hm, I don't seem to have captured the outer-inner relationship between $person and $shop in my fantasy code... 19:06
pmichaud tis okay; I know what you're aiming for. Standard control-break sort of stuff.
masak I'm aiming for less cruft. 19:07
pmichaud right
19:07 [Coke] left
masak there's no actual loop control in the example. 19:07
pmichaud "elegant control breaks"
masak just a lot of change management.
19:07 yegor_ left
masak and this isn't a piece of code that would be helped by something like 'next LABEL' or 'last LABEL'. 19:08
for once.
19:09 [Coke] joined
colomon masak: I just get an angry unicorn when I try to look at your example. :( 19:10
masak pmichaud: even as a function 'changed' would have to be deeply magical in order to conjure up the hidden $last-seen-* variables, and all the surrounding conditionals.
colomon: works here :/
pmichaud yes, it would be magic. but I think you're looking for magic.
masak I am. 19:11
pmichaud or, perhaps we want containers to have triggers
masak I guess what I mean is that it would be more disingenous to hide magic in a function than in a keyword.
pmichaud why?
masak just a subjective feeling.
pmichaud many of our keywords are just syntactic sugar for functional magic anyway 19:12
masak I guess 'lagging' and 'notice' feel more like control structures (like 'if' and 'while') to me.
yes, but there's a difference between a keyword being syntactic sugar for a (non-magic) function, and a function being syntactic sugar for a set of magic transformations.
pmichaud yeah, I can see that 19:13
fwiw, it might be helped by 'redo'
masak hm. 19:14
pmichaud not completely, but 'redo' might be a part of it
since it gives you the ability to re-enter the block from the top without iterating
masak you keep suggesting alterations of control flow :)
the original code doesn't contain any such.
19:14 birdwindupbird joined
pmichaud well, other than 'if' 19:15
masak right.
pmichaud I could also see: if changed $person { ... }
masak hm.
it does read quite well... :) 19:16
pmichaud but the whole notion of "control-break" to me implies exceptions, which implies control flow
masak "control-break"?
jnthn "I'm a changed person" :)
pmichaud control-break --- do something different when a particular variable changes value (e.g., in an iteration)
en.wikipedia.org/wiki/Control_break 19:17
or is that not what this is intended to be doing?
masak oh!
pmichaud++
colomon masak: seems to me the lagging concept is kind of wrong for this example?
masak colomon: why?
pmichaud: I just didn't know it was called that. thanks for putting a name to the concept :) 19:18
pmichaud sure
it's a long-standing pattern :)
colomon masak: at least as I normally think of examples, the lagging is because it's interesting to compare the previous entry with the current. In this case, it's more of "the previous N with N changing repeatedly".
masak "Quite often there is a hierarchy of nested control breaks in a program" -- yes, exactly.
colomon masak: wouldn't this be more easily done with a hash?
pmichaud so, maybe do more research on "control break" and perhaps find something that already solves the problem 19:19
masak colomon: I didn't specify the requirements so clearly.
pmichaud also, wikipedia says that SQL and 4GLs handle this sort of stuff, so perhaps look to them for examples
masak colomon: the shops have to be added in order. and the person objects shouldn't be keps in memory (because there are, say, a billion of them)
oh right. SQL has to handle it, since that's how GROUP BY works. 19:20
pmichaud so, maybe what you want is an iterator that understands a "group by" equivalent :-)
masak that's not a half-bad idea. 19:21
pmichaud I mean, they're called *cursors* :-)
maybe some group-by options to map()
19:21 yegor__ is now known as yegor
pmichaud i.e., a way to specify blocks that fire when certain conditions are met 19:21
PerlJam greetings! 19:22
masak PerlJam: \o
PerlJam is sitting in IAH waiting for a flight to Orlando FL
pmichaud ...orlando?
fun or business or both?
PerlJam I wish it was fun.
19:22 yegor left
pmichaud no time for WDW? 19:23
:(
masak by the way, hakank suggested a really nice syntax for 'for' loops with inter-dependent loop variables: 'for 1..10 -> $i, 1..$i -> $j { ... }'
would have to be a grammar extension, of course.
PerlJam Gary and I submitted a paper to a conference there and since CBI has to host the new TGLO person this week, I get to present the paper tomorrow and fly home Thu
masak but it's relatively intuitive.
pmichaud pj: ever been to wdw? 19:24
PerlJam pm: long time ago.
pmichaud masak: seems like there ought to be a metaoperator that could produce $i,$j w/o the syntax
some sort of triangle cross or something like that
masak well, a triangular pattern was just a simple example. 19:25
pmichaud ah.
19:25 spq left
masak could have more involved dependencies of later variables on earlier. 19:25
19:25 vividsnow joined
pmichaud is frightened that the series operator might be able to do it. 19:26
masak :P
...the operator formerly known as the series operator...
colomon seems like the sequence op should be able to do it easily? 19:27
PerlJam seems like this sort of "counting" is a common pattern. I mean, it's very similar to string increment but you've restricted the "alphabet"
masak colomon: IIRC, the real code on which my example was based started out with hashes. but then we realized that with the "control-break" pattern, we could ease the memory footprint quite a lot.
19:27 xinming left 19:28 xinming joined
masak PerlJam: TimToady once wanted to overload infix:<X> to handle this... 19:28
PerlJam oh ... now the triangle comment makes more sense. 19:29
jnthn pmichaud: Little NQP thought. At the moment we always treat Foo::Bar::Baz as a type, never as possibly a call if that isn't a known type. Nowadays, it's trivial to know that (it woulda been a pain once).
Not sure that we should change anything, mind... 19:30
colomon rakduo: my @a := [0], -> @x is copy { @x.push(@x[*-1]++); @x; } ... *; say @a[0].perl; say @a[1].perl; say @a[2].perl; say @a[3].perl
rakudo: my @a := [0], -> @x is copy { @x.push(@x[*-1]++); @x; } ... *; say @a[0].perl; say @a[1].perl; say @a[2].perl; say @a[3].perla
p6eval rakudo 8533c3: OUTPUT«[0]␤[1, 0]␤[1, 1, 0]␤Method 'perla' not found for invocant of class 'Array'␤ in main program body at line 22:/tmp/nzjsH4crpb␤»
colomon rakudo: my @a := [0], -> @x is copy { @x.push(@x[*-1]++); @x; } ... *; say @a[0].perl; say @a[1].perl; say @a[2].perl; say @a[3].perl
p6eval rakudo 8533c3: OUTPUT«[0]␤[1, 0]␤[1, 1, 0]␤[1, 1, 1, 0]␤»
colomon declares himself king of typos 19:31
pmichaud jnthn: yeah, I'm not sure what I want to do there.
it'll be trivial now, yes.
colomon rakudo: my @a := [0], -> @x is copy { @x.push(@x[*-1] + 1); @x; } ... *; say @a[0].perl; say @a[1].perl; say @a[2].perl; say @a[3].perl
p6eval rakudo 8533c3: OUTPUT«[0]␤[0, 1]␤[0, 1, 2]␤[0, 1, 2, 3]␤»
jnthn pmichaud: Anyway, good news is that overall, I'm relatively free of blockers at the moment. So I expect to be able to keep things moving along. :) 19:33
pmichaud good deal.
my main blocker now is that I'm doing a limited search for $newjob
19:34 spq joined
jnthn Sounds somewhat time-consuming. 19:34
19:36 spq left
masak colomon: yes, but can you have it loop with [0, 0], [1, 0], [1, 1], [2, 0], [2, 1], [2, 2], [3, 0] ... [10, 10]? :) 19:37
masak guesses that's quite easy with an implementation of 'state'
jnthn pmichaud: There's also a couple of places where I'd quite like PAST::Compiler to be aware of 6model (like, when handling natively typed attributes). PAST is still the PIR implementation at the moment, but I can monkey-patch it to have something like attribute_6model for the time being. Does that sound sane-ish? 19:39
colomon rakudo: my @a := [0], -> @x is copy { @x.push(@x[*-1] + 1); @x; } ... *; my @b := @a.map(-> @x { @x[*-1] X @x }); say @b[10].perl 19:40
PerlJam masak: $j = lag $i :by(1); # something like that could encapsulate the "lag state"
19:40 stkowski joined
p6eval rakudo 8533c3: OUTPUT«((10, 0), (10, 1), (10, 2), (10, 3), (10, 4), (10, 5), (10, 6), (10, 7), (10, 8), (10, 9), (10, 10))␤» 19:40
masak PerlJam: ooh
colomon ouch.
masak decides he would prefer 'if $person.CHANGED { ... }'
PerlJam: yours is better if I would ever want a lag larger than 1.
PerlJam: I've never had a need for that, I think. 19:41
PerlJam masak: yours reminds me of Rails and ActiveModel :)
colomon rakudo: my @a := [0], -> @x is copy { @x.push(@x[*-1] + 1); @x; } ... *; my @b := @a.map(-> @x { @x[*-1] X @x }); say @b[^4].perl
p6eval rakudo 8533c3: OUTPUT«(((0, 0)), ((1, 0), (1, 1)), ((2, 0), (2, 1), (2, 2)), ((3, 0), (3, 1), (3, 2), (3, 3)))␤»
colomon ah! correct modulo flattening. :)
masak PerlJam: right, but it doesn't hook into a DB. :)
PerlJam: just jiggles the AST a little.
PerlJam masak: mine could also end up like this: for 0..10 -> $i { my $j = lag $i; my $k = lag $j; ... } 19:43
That's usually the case where you want a lag larger than 1 IME
(I've never wanted lag :by(2) without also having a lag :by(1) ) 19:44
at least that I can recall
masak hm, true.
I like that latter syntax better.
but it still makes me have to manage the change comparisons explicitly.
PerlJam yes.
masak at least for the control-break scenario, I don't want that. 19:45
but now that pmichaud mentioned SQL and cursors, I think I'd prefer some idea that played off that.
maybe a parameterized phaser inside the loop that responded to 'callsame'? 19:46
PerlJam Hmm.
masak that would make it possible to do things both before and after chunks of similar iterations. 19:47
also, it might help localize variables even better.
PerlJam for the simple case of iterating a range of integers, you could use smart match for the lag 19:51
you can also transmogrify any iteration into something that involves an integer count.
masak could you give an example?
PerlJam (not sure if this is helpful, just thinking out loud)
I think y'all mentioned it earlier ... didn't someone say something about using when ? 19:52
Tene In a previous project, I had a function 'sliding-window-map' that accepted a window size, block, and list.
pmichaud jnthn: yes, I think PAST::Compiler needs to be aware of 6model (and should likely be built as 6model)
I was thinking of working on a nqp-implementation of PAST::Compiler
Tene In Perl 6, a nicer option would be infer the window size from the arity of the block. 19:53
moritz pmichaud: just rewriting the PIR in NQP, or also a redesign?
colomon Tene: ooooo. Don't think it's really applicable to what masak is talking about, but that's an interesting idea. :)
pmichaud mainly converting to NQP and 6model
I wasn't planning on a significant redesign
Tene so, possibly a :sliding or whatever modifier to map
right now, given 1,2,3,4 and an arity-2 block, map will run on 1,2 and 3,4 19:54
PerlJam Tene: and a :step modifier as well to jump more than 1 item at a time?
Tene would be nice for there to be a convenient way to run on 1,2 2,3 3,4
PerlJam: Maybe.
moritz pmichaud: since PAST nodes are really just captures, 6model basis shouldn't change too much, should it?
masak Tene: @list Z @list.rotate 19:55
jnthn fwiw, I'd rather they stopped being captures.
masak too
jnthn Otherwise we can't take advantage of a bunch of stuff 6model offers.
PerlJam my @ffts = map { fft(@_) } :window(32) :step(16) @stuff; # assuming @_ holds the window into @stuff. 19:56
Tene masak: 1) that's not quite the same at the ends, 2) that gets awkward with sindow size > 2, and 3) that's generally awkward to type out, compared to putting it in a function.
masak them being captures reeks a bit of bounded contexts leaking together.
jnthn blocktype could just point straight off to a Parrot-level string, for example. Block arity can just be an int.
The memory use when compiling is kinda high.
masak Tene: aye, agreed on all counts. 19:57
pmichaud jnthn convinced me that PAST notes should be attribute-based instead of hash-based
Tene masak: given the nested nature of your data, there's an elegant solution that I don't quite have the time to work out right now.
jnthn pmichaud: fwiw, somebody is doing a GSoC project on converting PAST::Compiler to NQP.
pmichaud: But they also plan to do (new)POST straight to PBC. No PIR intermediate step.
Tene masak: basically, apply a sliding window over individual lines, and then you know at what minimum depth your new line varies from the previous. 19:58
masak Tene: hm.
newbee what's the use of binding a variable to a constant?
pmichaud jnthn: yes, I'm thinking I shouldn't halt what I think needs to be done just because there's a GSoC project
also, is the GSoC for nqp or for nqp-rx?
masak newbee: you mean like 'my $a := 5'? 19:59
jnthn pmichaud: nqp-rx
pmichaud right
newbee yes, masak
jnthn pmichaud: Feel free to go ahead if you wish to work on that.
masak newbee: it's one way among at least two to set a variable to be a certain value. 20:00
jnthn pmichaud: It's certainly needed for the clr/jvm/worreva backend compilers to run on new nqp.
pmichaud jnthn: exactly
masak newbee: basically, it's binding a value to a variable without going through the intermediate container.
pmichaud and it helps us get nqp much closer to bootstrap
20:00 JeffreyKegler joined
jnthn pmichaud: *nod* 20:00
masak newbee: from the perspective of nqp, it's actually a more basic mechanism than assignment. 20:01
tadzik hello zebras
masak tadzik! \o/
Tene masak: your function takes a list of lists, and on each block invocation, give it the current item, and the minimum-depth item that varies from the previous run, which you can dispatch on with 'when'
jnthn pmichaud: Note that I didn't put the MMD cache into nqp yet so multi-dispatch will be slow as hell :)
pmichaud no problem
tadzik seen bbkr
aloha bbkr was last seen in #perl6 38 days 21 hours ago joining the channel.
pmichaud past::compiler isn't that slow to begin with
masak Tene: oh. interesting.
tadzik seen bbkr_
aloha bbkr_ was last seen in #perl6 4 hours 5 mins ago saying "on "TAP::Harness v3.12 and Perl v5.10.0"".
jnthn It's not a lack of having a new MMD cache design. I implemented in on the clr already.
Just didn't port it yet. 20:02
It's allocation free on lookups that get a hit, unlike the one in Parrot.
newbee so $a := 5 is faster than $a = 5 ?
Tene magic-lolducks(@list-of-lists, -> $_, $person, $shop, $item { when 0 { person changed }; when 1 { $shop changed }; when 2 { item changed } }) 20:03
jnthn newbee: In Rakudo today? Probably not. In the future? Very possibly.
In NQP it's certainly cheap. But it's also the only choice. :)
Tene masak: it's your choice whether you pass an index, a pair of index -> prev value, pass names into the function so it can generate string indexes instead of numbes, etc. 20:04
masak nod.
20:04 JeffreyKegler left, MayDaniel joined
masak I'd probably define a bunch of integer constants and when on those. 20:04
Tene masak: I don't know whether -> $_, $a { ... } works for setting the topic like that; I haven't tried it.
masak should. 20:05
20:05 vividsnow_ joined
masak rakudo: for 1..6 -> $_, $a { .say } 20:05
jnthn rakudo: for 1,2,3,4 -> $_, $a { .say; }
p6eval rakudo 8533c3: OUTPUT«1␤3␤5␤»
rakudo 8533c3: OUTPUT«1␤3␤»
masak jnthn: uncanny :P
Tene Hahaha, that's cute.
jnthn Curiosities. We share them. :P
masak jnthn: clearly we should spend less time together :P 20:06
Tene That's a cute little idiom; I kind of like it.
20:06 sivoais left
jnthn :P 20:06
masak rakudo: for 1..6 -> $_, $ { .say }
p6eval rakudo 8533c3: OUTPUT«1␤3␤5␤»
Tene Also, I'm pretty sure I haven't seen this algorithm used anywhere before, but it rather jumped out at me. I haven't reasoned about it in any detail, so I'm very curious to hear if this works well for you or not.
masak will report back. 20:07
Tene++
20:07 vividsnow left
tadzik phenny: tell bbkr_ what os is that? Is that possible that 0 is not a success on it? 20:08
phenny tadzik: I'll pass that on when bbkr_ is around.
tadzik phenny: thank you darling
Tene That's always an interesting experience for me, when an algorithm leaps out from behind a dark corner and steals all the loose minutes out of my wallet. 20:09
masak by the way, both jnthn and I were surprised at least once each last Friday by the (re-)realization that in Perl 5, you have to precede your closure blocks with 'sub' :) 20:10
Tene haha, nice. 20:12
jnthn I also kept trying to write signatures on my subs... :) 20:14
TimToady I keep trying to use the method forms of various listops... 20:16
Tene Hmm, I bet jnthn would like my Devel::Declare::Declarative syntax for defining Perl 5 macros. I should actually finish that someday.
My prototype sketch was fairly promising.
20:18 vividsnow_ is now known as vividsnow
masak hey, look what jnthn++ and I made: conferences.yapceurope.org/npw2011/ 20:21
20:23 MayDaniel left
jnthn Scary, my first time co-organizing a conference, rather than just showing up and nattering about stuff. :) 20:24
tadzik oh, That's the viking-helmeted-polar-bear!
jnthn masak++ for drawing it
moritz \o/
tadzik it resembles masak a bit, if I can say that :>
jnthn *lol*!!
masak :D
tadzik ...but my sight may be a bit confused :) 20:25
jnthn Just how hard did you celebrate? ;)
moritz don't belittle your cognitive abilities :-)
tadzik oh, notmuch
jnthn :) 20:26
tadzik jnthn: two words: Zlaty Bażant :)
masak map { $tadzik.have(Beer.new) }, ^Inf # :)
moritz I'd love to attend, but this year it's not possible :/
jnthn tadzik: Slovenske pivo! Strasne dobre! \o/
moritz wonders if masak has sink context implemented :-)
tadzik also, board games and a PM meeting. That was a good day :)
masak moritz: the runtime in my head has lots of bells and whistles. 20:27
jnthn Happily, that beer is also available in Sweden. But the price is...different. :)
20:29 vividsnow left
sjn jnthn++ masak++ # For organizing conferences.yapceurope.org/npw2011/ 20:30
20:31 alester joined
moritz indeed 20:32
jnthn++
masak++
moritz hopes it's not a too short notice
pmichaud mmmm, NPW 20:33
jnthn pmichaud: ;)
tadzik oh, I regret that I can't come :| 20:34
pmichaud looks like airfare is currently US$1100 20:35
a bit pricey for me at the moment :( 20:37
I like the logo :-)
tadzik say, doesn't it look even a little bit like masak++ himself? :P 20:38
20:38 ymasory left
masak I guess we tend to make things in our own image... :) 20:38
but I don't usually wear helmets. I prefer towels.
pmichaud ...you mean that's not a towel? 20:39
I figured it was an exceptionally round one.
moritz horned towel
20:40 stkowski left 20:51 dju_ is now known as dju 20:57 mj41 left, alester left, alester joined 21:00 noganex_ joined 21:04 noganex left
colomon loliupdatedmyblogpostwiththewisdomofTimToady: justrakudoit.wordpress.com/2011/04/26/more-pi/ 21:11
21:12 Rotwang left
masak can't spot the difference 21:13
21:21 vert2 left 21:24 bluescreen10 left 21:26 Lorn joined 21:31 newbee left 21:32 vert2 joined 21:36 mark__ joined 21:37 vert2 left 21:38 mark__ left 21:39 mds_ joined 21:40 hercynium left 21:41 hercynium joined, hercynium left, hercynium joined
mds_ Perl 6: sub abc { return 47; } $a = 'abc'; how can I call using $a Thanks 21:42
21:43 kaare__ left
mds_ and what to do if there are arguments 21:46
masak rakudo: sub abc { return 47 }; my $a = 'abc'; my $sub = eval( '&' ~ $a ); say $sub() 21:47
p6eval rakudo 8533c3: OUTPUT«47␤»
21:48 Mowah left
TimToady rakudo: sub abc { return @_ }; my $a = 'abc'; my $sub = &::($a); say $sub(47); 21:51
p6eval rakudo 8533c3: OUTPUT«===SORRY!===␤Indirect name lookups not yet implemented at line 22, near "; say $sub"␤»
masak great. Rakudo is sorry. :P
21:51 MayDaniel joined
TimToady alpha: sub abc { return @_ }; my $a = 'abc'; my $sub = &::($a); say $sub(47); 21:51
p6eval alpha : OUTPUT«Confused at line 10, near "= &::($a);"␤in Main (file <unknown>, line <unknown>)␤»
masak better than... that, I guess. :)
TimToady niecza: sub abc { return @_ }; my $a = 'abc'; my $sub = &::($a); say $sub(47); 21:52
p6eval niecza v4-76-g7bf5ef9: OUTPUT«===SORRY!===␤␤Non-simple variables NYI at /tmp/VdTzU2pgaW line 1:␤------> n @_ }; my $a = 'abc'; my $sub = &::($a)⏏; say $sub(47);␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 388 (CORE die
..@ 2)␤ at /h…
masak everyone has an excuse.
jnthn At least I know how to implement that now :)
Mostly because I spent my Easter re-doing packages from the ground up. :)
TimToady
.oO(I notice he didn't say, "implement correctly"...)
Util *startle* I just read the error as "simple variables NYI" 21:53
jnthn TimToady: What would be the obvious incorrect way? :)
.oO(Better to be subtley incorrect, if I'm gonna be...)
21:55
masak actually, I'd prefer it if you were blatantly incorrect. :P 21:56
TimToady prefers subtly correct
masak again, under the assumption that you have to be incorrect in some way... :)
jnthn masak: Yeah but you just want your 2000 :P
masak g'ah, found out! :) 21:57
colomon masak: new stuff is in the section at the end marked "Update" in bold. :) 21:58
21:58 mds_ left
TimToady moritz: well, I thought it was a hoot, even if no one else did... 22:01
masak colomon: oh :)
I think I must have had an old cached version... 22:02
22:03 whiteknight joined
masak 'night, #perl6 22:07
22:09 masak left 22:11 hercynium left 22:12 coldhead joined 22:24 MayDaniel left 22:33 coldhead left
dalek p/ctmo: 98eb233 | jonathan++ | src/ (2 files):
Add attribute meta-objects to the HOW exports.
22:49
p/ctmo: 591efd8 | jonathan++ | src/Regex/Cursor-builtins.pir:
Fix FAILGOAL.
p/ctmo: 4b81716 | jonathan++ | src/stage0/ (7 files):
Update bootstrap to get FAILGOAL fix.
p/ctmo: 0c07f7d | jonathan++ | src/ (3 files):
Add attributes to compile time meta-object for all packages except knowhow (got a circularity issue to resolve there).
22:58 birdwindupbird left 22:59 mtk left 23:07 mtk joined 23:13 cdarroch left 23:14 ymasory joined 23:15 cosimo joined 23:18 ymasory left, donri left 23:20 bacek joined 23:22 ymasory joined 23:26 Chillance left 23:27 alester left 23:31 fridim_ joined 23:32 fridim_ left
dalek p/ctmo: cdae853 | jonathan++ | src/NQP/Actions.pm:
Oops, fix that type lookup.
23:40
p/ctmo: 509ee04 | jonathan++ | src/HLL/SerializationContextBuilder.pm:
Fix an attribute access that was wrong, caught by the in-progress undeclared attribute detection.
p/ctmo: 1a79be7 | jonathan++ | / (4 files):
Add .type to PAST::Var nodes. Also twiddle the build a bit to make sure we build changes to the PAST extensions.
p/ctmo: eafc258 | jonathan++ | src/NQP/ (2 files):
Detect undeclared attributes at compile time and complain about them. Possible now that we register them with the compile timemeta-object. Also, pass any declared type along to the PAST::Var node, though it's not used yet.
p/ctmo: cf88f9e | jonathan++ | src/how/NQP (2 files):
Standardize introspection interface implemented in the role meta-objects. Unregresses the roles.t breakage in the last commit.
jnthn Few steps further. :) 23:42
sleep &
23:43 impious left 23:47 yarp_ joined 23:49 molaf_ joined 23:52 ymasory left 23:53 molaf left 23:54 am0c joined 23:56 ymasory joined 23:57 am0c left 23:58 yarp_ left