»ö« 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.
gfldex ohh, nice shiny colours 00:17
gfldex that must be a perl fireworks! 00:18
lichtkind perl 6 tablets index A approaching 670 entries 00:20
kshannon Does anyone know the callchain from a sixmodelobject VTABLE_can to find_method? 01:12
dalek ecza: b5d9d05 | sorear++ | / (2 files):
Allow defining multi-subs with inlining annotations

The inline primitive form will be used for calls to the base function. If it is augmented, multi-dispatch will be used.
01:14
ecza: 5dd6ed3 | sorear++ | lib/Kernel.cs:
Avoid creating a dispatcher for single-candidate multis that are marked as primitives
TimToady perl6: constant @primes = 2, 3, -> $n is copy { repeat { $n += 2 } until $n %% none @primes ... * > sqrt $n; $n; } ... *; say @primes[^109]; 01:15
p6eval pugs b927740: OUTPUT«*** ␤ Unexpected "@primes"␤ expecting "=", "::", context, ":" or "("␤ at /tmp/n393IaNIAb line 1, column 10␤»
..niecza v13-36-g6406010: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 3…
..rakudo 2b6f86: OUTPUT«===SORRY!===␤Variable @primes is not predeclared at line 1, near " ... * > s"␤»
kshannon How on earth does the parrot VTABLE 'can' entry get set for sixmodel objects?!?! grep doesn't seem to be my friend today :( 01:19
sorear kshannon: nqp::src/pmc/sixmodelobject.pmc line 96 01:20
kshannon: also, parrot::src/pmc/object.pmc line 668 01:23
any questions? 01:24
kshannon just found the object.pmc one.
OK. Because sixmodel throws an exception if find_method fails, it needs a custom can which can trap them. 01:26
That's the main reason for the --target=past dumping dying now. 01:27
[Coke] kshannon++ 01:52
TimToady niecza: constant @primes = 2, 3, { ($_ + 2, $_ + 4 ... *).first: -> $n { $n %% none @primes ... * > sqrt($n); } } ... *; say @primes[^109]; 01:55
p6eval niecza v13-36-g6406010: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 3… 01:56
kshannon leto++ for not just taking my pull request to parrot and making me find the real problem 02:27
github.com/perl6/nqp/pull/25 02:28
sorear where's leto's comment? 02:31
leto-- dukeleto++ # correct name
kshannon On the parrot pull reuest.
sorear kshannon: find_method should return null on error, I am pretty sure 02:33
your 'can' change is a bad fix because it won't make find_method_null_ok work 02:34
kshannon so you think the catch should be in the find_method VTABLE ?
That's pretty simple to change...
sorear actually I think you should find whatever code is throwing the exception and fix it to return null instead 02:35
[Coke] gist.github.com/1476841 - niecza at 86% (still getting a percentage point a day, even on winter break. ;) 02:36
kshannon But that's part of the sixmodel API as I understand it. the 6model find_method can be called in other ways than through the VTABLE 02:38
kshannon Well, I've pushed a new version doing the catching in VTABLE find_method. I think that's the right place as the comment in the top of the file says "it maps the Parrot world view to the Perl 6 object model one" 02:54
slavik1 Happy New Year! 05:00
Timbus TimToady, odd, i was in a channel yesterday where we sparked a discussion about making a lazy prime sieve in perl6 (vs haskell)
and all my self referential solutions were not so good 05:01
also, happy new year slavik1
:>
more oddly my solution is almost word for word the same as yours, except i used while $n %% all @primes 05:02
heh
niecza: constant @primes = 2, 3, -> $n is copy { my $ff=1; repeat { $n += 2 + ($ff=!$ff)*2 } until $n %% none @primes ... * > sqrt $n; $n; } ... *; say @primes[^10]; 05:14
p6eval niecza v13-38-g5dd6ed3: OUTPUT«2 3 5 7 13 19 31 37 43 61␤»
Timbus bah
niecza: my $ff=1; constant @primes = 2, 3, -> $n is copy { repeat { $n += 2 + ($ff=!$ff)*2 } until $n %% none @primes ... * > sqrt $n; $n; } ... *; say @primes[^10]; 05:17
p6eval niecza v13-38-g5dd6ed3: OUTPUT«2 3 5 11 17 23 29 41 47 53␤»
Timbus feels bad, man
Timbus oh. pffpfpt. you start the pattern from 5, not 3. im dumb. my brain works so much better after a grilled cheese sandwich 05:27
Timbus niecza: my $ff=1; constant @primes = 2, 3, 5 -> $n is copy { repeat { $n += 2 + ($ff=!$ff)*2 } until $n %% none @primes ... * > sqrt $n; $n; } ... *; say @primes[^10]; 05:28
p6eval niecza v13-38-g5dd6ed3: OUTPUT«===SORRY!===␤␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/iUrLUslcWM line 1:␤------> my $ff=1; constant @primes = 2, 3, 5 ⏏-> $n is copy { repeat { $n += 2 + ($f…
Timbus niecza: my $ff=1; constant @primes = 2, 3, 5, -> $n is copy { repeat { $n += 2 + ($ff=!$ff)*2 } until $n %% none @primes ... * > sqrt $n; $n; } ... *; say @primes[^10];
p6eval niecza v13-38-g5dd6ed3: OUTPUT«2 3 5 7 11 13 17 19 23 29␤»
Timbus if perls so smart whycome it cant insert my commas for me
geekosaur sometimes it could. mostly that error message is "psst, this isn't perl5" 06:05
moritz \o 07:05
kshannon o/ 07:07
moritz kshannon: I've given you commit access to roast and other repositories under the perl6 organization 07:08
moritz fwiw my blog post from yesterday got about 4.5k visitors. Thanks to everybody who proof-read or promoted it! 07:36
kshannon thanks moritz. 07:50
dalek ast: abcbbb9 | (Kris Shannon)++ | integration/99problems-01-to-10.t:
Fix typo
07:55
ast: 1449cac | (Kris Shannon)++ | integration/99problems-01-to-10.t:
Missed one when doing compare sensitive to array nesting level
ast: 041da7e | (Kris Shannon)++ | integration/99problems-01-to-10.t:
Merge pull request #13 from KrisShannon/integration-01-fixes

Some small cleanups and logic fixes in integration/99problems-01-to-10.t
moritz kshannon: fwiw Array vs. List has nothing to do with lazyness 08:09
perl6: my $a = [ 1 ... * ]; say "alive"; 08:10
p6eval rakudo 2b6f86: OUTPUT«alive␤»
..niecza v13-38-g5dd6ed3: OUTPUT«(timeout)Potential difficulties:␤ $a is declared but not used at /tmp/XRyGuMtpg_ line 1:␤------> my ⏏$a = [ 1 ... * ]; say "alive";␤␤»
..pugs b927740: OUTPUT«*** ␤ Unexpected "$a"␤ expecting "=", context, ":" or "("␤ at /tmp/N2C54iRIYK line 1, column 4␤»
moritz niecza: my $a = (1 ... *); say "alive"; 08:11
p6eval niecza v13-38-g5dd6ed3: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/r6BvZFbL0z line 1:␤------> my ⏏$a = (1 ... *); say "alive";␤␤alive␤»
moritz so niecza agrees that circumfix:<[ ]> is eager. Interesting.
sorear "agrees"?
dalek ecza: 2580531 | sorear++ | lib/ (9 files):
Rearrange binding process to bind signatures after lexpad setup; (fixes #19)
sorear mm, 11 issues. 08:14
if diakopter returns I'll ask him to check if his .net issues still exist... I think I fixed the causes of most of them
could get to single-digit open issues easily enough I think :) 08:15
sorear wonders who ebassi is and if ey will attempt to send any of eir bootstrap changes upstream
moritz sorear: agrees with a rakudo patch by kshannon++ 08:24
sorear: was it a conscious decision to make circumfix:<[ ]> eager? or did it Just Happen? 08:31
niecza: my Int:D $x = 3; $x = Int; say 'alive' 08:33
p6eval niecza v13-38-g5dd6ed3: OUTPUT«alive␤»
sorear moritz: concious, but it was a path of least resistance 08:36
[ ] needs to recontainerize all the list elements, and it was simpler to do that as a loop than a lazy map
sorear -> sleep 08:38
kshannon There's also the fact that lots of gather/take example code I've found only works if [ ] is eager (including the current tests) 08:47
That could be just becuase rakudo-ng worked that way...
Point number 3 it bypasses the current issues rakudo has with source lists that are re-assigned after partial iteration 08:50
Still trying to wrap my head around that quagmire... 08:51
kshannon perl6: my $a = [ gather { for ^5 { .say; take $_; } } ]; say " MIDDLE "; say +@($a); 09:03
p6eval rakudo 2b6f86: OUTPUT« MIDDLE ␤0␤1␤2␤3␤4␤5␤»
..pugs b927740, niecza v13-38-g5dd6ed3: OUTPUT«0␤1␤2␤3␤4␤ MIDDLE ␤5␤»
kshannon b: my $a = [ gather { for ^5 { .say; take $_; } } ]; say " MIDDLE "; say +@($a); 09:04
p6eval b 1b7dd1: OUTPUT«0␤1␤2␤3␤4␤ MIDDLE ␤5␤»
moritz ah well, I guess I'm fine with eager [ ] for now 09:14
grondilu perl6: constant X = <foo bar>; 09:56
p6eval niecza v13-39-g2580531: ( no output )
..rakudo 2b6f86: OUTPUT«===SORRY!===␤Cannot handle constant X with non-literal value yet at line 1, near "= <foo bar"␤»
..pugs b927740: OUTPUT«*** ␤ Unexpected "="␤ expecting ":" or "("␤ at /tmp/so0MueVvhF line 1, column 12␤»
grondilu I thought <foo bar> was a literal value :(
masak good morning, #perl6 11:40
...fsvo morning...
cedric Bonjour #perl6! 11:59
o/ masak 12:00
masak \o
cedric Context: libparrot.so.3.11.0:utf8_iter_skip() is the function that consumes the most CPU time when running "perl6 S03-operators/basic-types.t" (an arbitrary example). It appears that this function is called many times against the same C strings (c.f. experiment irclog.perlgeek.de/perl6/2011-12-31#i_4904989). 12:01
I had a look at utf8_iter_skip()'s backtraces and found out a repetitive pattern (more than 75000 times with the given example): "... -> runops_fast_core -> Parrot_substr_s_… -> encoding_substr -> utf8_iter_skip". I'm a bit surprise to see that the "substr_s_…" opcodes are called so often, more specifically on the same C strings.
masak cedric: sounds like you're onto something there. 12:03
cedric: I really hopes this leads to a significant speedup in the end. 12:04
24 people have now signed up for p6cc! \o/
24. that's 4! == [*] 1..4 == 1 * 2 * 3 * 4. 12:05
cedric masak: I hope too. I would like to report this strange behaviour to the right guys, I don't have time to investigate more. 12:06
masak: who are the "right guys"? 12:08
masak cedric: well, let mention it to the #parrot people on irc.perl.org.
see what they have to say. 12:09
most of them are in the US, so it may be a few hours before they wake up and respond.
cedric OK, thanks. I will report that in a coulple of hours :) 12:10
masak I just mentioned it on the #parrot channel. 12:11
cedric Thanks!
masak by the way, I've now perused www.keithschwarz.com/darts-dice-coins/ 12:20
it is indeed inspiring.
colomon ;)
masak however, I don't see how it's applicable to what I believe is the main issue for .pick -- namely how to avoid duplicates in a performant way. 12:21
.pick and .roll for Bags will probably benefit from an Alias method implementation, though. 12:24
colomon dang it, niecza's spectest is completely hosed at the moment 12:44
masak :/ 12:50
dalek kudo/nom: b70b105 | (Kris Shannon)++ | src/core/ (2 files):
Fix take over-flattening

circumfix:<[ ]> needs to be made eager as well. This seems to match the wording of the spec (it's an Array, not a List) and doesn't introduce any regressions in roast.
Fixes RT#101316 and RT#106986
14:13
moritz forgot to add the Signed-Off-By line, again :/ 14:14
moritz--
kshannon++
kshannon: in your next rakudo patch, please add yourself to CREDITS
masak hola, moritz 14:17
moritz \o masak
dalek ast: d888c1c | moritz++ | / (4 files):
rakudo unfudges
14:26
albot: a875194 | (Kris Shannon)++ | lib/EvalbotExecuter.pm:
Also allow executing from files in projects on github
14:29
albot: 7d4b9b0 | moritz++ | lib/EvalbotExecuter.pm:
Merge pull request #1 from KrisShannon/patch-1

Also allow executing from files in projects on github
dalek ast: 2e37eb9 | moritz++ | / (4 files):
more rakudo unfudges
14:44
x3nU okay, so now i'm trying to build latest rakudo under windows using msvc 2010 15:36
hope it will compile fine
masak we hope so too :)
masak Trashlord! \o/ 15:41
Trashlord hey masak :) 15:42
masak Trashlord: how's 2012 treating you? :)
Trashlord so far so good, and yourself? 15:43
masak very excited about the new year. :)
2010 was very nice, 2011 was even better, so 2012 will probably be wonderful. 15:44
Trashlord I sure hope so 15:47
x3nU 2012 will be last year of our world :( 15:48
Trashlord heh 15:51
I don't believe the world will be physically destroyed
I believe, and hope, that this "civilization" will collapse
and all humans will achieve greater conciousness
and march onwards into the new world, the new society, with no governments, no religion, no countries, and no money 15:52
only love and respect towards everyone
x3nU or maybe perl 6 will take over the universe
Trashlord perhaps
we'll have to wait and see
masak I don't hope that western civilization will collapse. but that seems to be where we're heading. 15:53
x3nU damn
masak I do hope, to the extent that it is inevitable, that it takes 90 years and not 5.
x3nU compilation of rakudo just crashed ;_;
masak x3nU: could you nopaste the error mesasges? 15:54
were there any error messages?
x3nU: I *think* jnthn is useing some msvc or other to compile Rakudo.
x3nU pastebin.com/vnJy7JjP 15:55
it seems
that nqp crashed
there was no error message or something
just "application nqp.exe stopped working" or something like that
masak :( 15:57
x3nU so it seems that i need to try building using mingw 15:58
masak x3nU: you should definitely bring this up with jnthn++ when he gets back. he will know more. 16:00
x3nU okay 16:02
[Coke] uhoh, moritz is unfudging for rakudo. 16:11
dalek kudo/nom: a7fd89e | masak++ | / (8 files):
[TypePretence -> TypePretense]

  "Pretence" is common in British spelling, whereas the rest of the
code base is written in squeaky-clean International (that is, US) English. Clearly the original spelling was a case of larger guerrilla spelling campaign by our resident .uk core programmer. ;-)
16:13
masak for more information about guerrilla spelling campaigns, see meta.wikimedia.org/wiki/Guerilla_sp..._campaigns 16:14
tadzik happy new year #perl6!
masak Year.new(:happy) 16:15
x3nU i'm not sure if american english is international english 16:16
tadzik Year.new.happify
x3nU in european countries people are taught british english, not american
tadzik woot, 19/20 from OS exam 16:17
masak tadzik++ 16:18
tadzik that's a good start for 2012
masak indeed. 16:20
[Coke] good job!
tadzik wow, mailbox' full of good news. Have you seen the recent booking.com donation?
colomon tadzik: what's the story? 16:21
tadzik colomon: what story?
colomon booking.com donation
tadzik news.perlfoundation.org/2012/01/boo...00-to.html
masak \o/ 16:22
tadzik those guys know how to party
x3nU wow
tadzik booking++
colomon booking++ 16:24
masak if I hadn't been hastily and summarily employed (and subsequently very happy where I am), Id probably have applied for a job at booking.com by now. 16:26
I'd*
tadzik I'm tempted every semester :) 16:27
masak grabs one of tadzik's legs and drags him towards Sweden :) 16:28
tadzik yeah, I remember about you too :)
masak which would you rather have, ~30 skilled Perl developers, or jnthn and me? :P
tadzik I'm thinking about taking a year off after this semester (ends in february), as that's when the first stage of my studies ends
but I'm afraid that once I take a break I'll never want to go back :P 16:29
masak I'll get right on deflating my head now.
tadzik huh, what? :)
masak tadzik: yeah, taking a break to go find a job is a recipe for never finishing your studies.
tadzik yeah, I suppose so
tadzik and I'll find myself sitting in a chair with a pipe and a dog besides me legs and wondering why did I never achieve the dream from my childhood :) 16:30
fsergot o/
tadzik o/
x3nU \o
tadzik happy new years' fsergot!
masak tadzik: yeah, wouldn't want to take your childhood dream from you :) 16:30
fsergot thanks, You too :) 16:31
masak fsergot! \o/
tadzik fsergot: about Bailador: I got templates to work, but I keep that in a branch as it still ignites segfaults from time to time
I'll merge all those new features as soon as we get that fixed
cspencer hello everyone!
tadzik hey cspencer! Happy new year!
cspencer question about the zip operators - are they currently able to produce lazy lists? my code would seem to indicate they are not, unless i'm doing something incorrectly :) 16:32
tadzik: happy new year to you as well!
colomon cspencer: they are!
masak cspencer! \o/
fsergot masak: tonight i thought of how to make task 1 in p6 contest! :) 16:33
colomon nom: my @a := 'a'..'z' Z~ 1..*; say @a[^10]
p6eval nom a7fd89: OUTPUT«a1 b2 c3 d4 e5 f6 g7 h8 i9 j10␤»
masak fsergot: and you still haven't signed up? crazy!
nom: role R { method foo { say "OH HAI" } }; enum A does R <a b c>; a.foo
p6eval nom a7fd89: OUTPUT«OH HAI␤»
masak enums do roles. wow.
cspencer colomon: ah, perhaps on on the wrong branch then
is that only in the nom branch?
fsergot masak: where can i do sign up? :) 16:34
s/do//
masak fsergot: email [email@hidden.address] saying "Sign me up!"
colomon cspencer: that should work in any current p6
cspencer: well, I can't speak for perlito
perl6: my @a := 'a'..'z' Z~ 1..*; say @a[^10]
fsergot masak: ok! :) thanks
p6eval rakudo a7fd89, niecza v13-39-g2580531: OUTPUT«a1 b2 c3 d4 e5 f6 g7 h8 i9 j10␤»
..pugs b927740: OUTPUT«abcdefghij␤»
masak pugs--
colomon masak: go easy on it, last time it was developed the Z metaop wasn't around yet 16:35
masak colomon: oh! right! 16:35
colomon: so easy to forget these things ;) 16:36
nom: enum E <a b c>; class C does E {}; say "alive"
p6eval nom a7fd89: OUTPUT«===SORRY!===␤Cannot yet turn an enum into a role␤»
masak cannot... yet... :)
colomon is not likely to forget the day Zop was invented... :)
cspencer here's the code i'd being trying to use: for zip(1..*;1..*) -> $a, $b { say "a = $a, b = $b" } 16:37
masak colomon: how so?
colomon cspencer: your problem there is the "for"
cspencer i figured as much
it doesn't flatten the list, does it?
x3nU last pugs version is from 2011-10-08 if i understand correctly, not that bad
masak x3nU: yes, but those are releases on essentially the same source code, from mid-2007. 16:38
x3nU masak: so what's the point of these releases?
masak x3nU: upgrading to latest GHC.
colomon masak: I watched (on #perl6) TimToady come up with the idea, and then a) told him it was a keeper and b) implemented the first version in Rakudo myself right then. :)
masak \o/
colomon++
colomon: yeah, it's strange that we had Xop for so long without realizing that Zop was right next door. :) 16:39
colomon masak: if you're not thinking of lazy lists, Zop is just >>op<< 16:41
masak: but if you are thinking of lazy lists, Zop is awesome
masak aye.
cspencer is there a way to get the for loop to evaluate the list lazily?
masak colomon: they optimize for two things we care about: parallelism and laziness, respectively. 16:42
colomon cspencer: I don't understand exactly what's going on, but my impression is nom's "for" is only lazy if it knows for sure that the list is infinite. so for 1..* -> $a { } works, but more complicated things don't
cspencer ah, ok.
masak colomon: pmichaud has a term for that.
colomon: something like "obviously finite" or "proven finite" or something. 16:43
it's that kind of gray-area solution that often gets us out of Halting Problem jail for free.
cspencer so would this be categorized as a "yet to be implemented feature"? :) 16:44
colomon cspencer: charitably speaking, yes. :) 16:46
niecza: for 1..* Z 1..* -> $a, $b { say "a = $a, b = $b" } 16:48
p6eval niecza v13-39-g2580531: OUTPUT«(timeout)a = 1, b = 1␤a = 2, b = 2␤a = 3, b = 3␤a = 4, b = 4␤a = 5, b = 5␤a = 6, b = 6␤a = 7, b = 7␤a = 8, b = 8␤a = 9, b = 9␤a = 10, b = 10␤a = 11, b = 11␤a = 12, b = 12␤a = 13, b = 13␤a = 14, b = 14␤a = 15, b = 15␤a = 16, b = 16␤a = 17, b = 17␤a = 18, b …
colomon cspencer: it does work in niecza
b: for 1..* Z 1..* -> $a, $b { say "a = $a, b = $b" }
p6eval b 1b7dd1: OUTPUT«(timeout)a = 1, b = 1␤a = 2, b = 2␤a = 3, b = 3␤a = 4, b = 4␤a = 5, b = 5␤a = 6, b = 6␤a = 7, b = 7␤a = 8, b = 8␤a = 9, b = 9␤a = 10, b = 10␤a = 11, b = 11␤a = 12, b = 12␤a = 13, b = 13␤a = 14, b = 14␤a = 15, b = 15␤a = 16, b = 16␤a = 17, b = 17␤a = 18, b = 18␤a = 19, b…
colomon and b
and map probably works as a workaround in nom 16:49
cspencer colomon: what's b? i'm not familiar with that one..
masak old branch.
benabik cspencer: Rakudo before the most recent re-write.
masak sometimes we take Rakudo and throw it away because we thought of a better way to implement it :P
cspencer hmmm...i thought i'd been running on the old branch, but hadn't been getting any output 16:50
i'll check again or find a work around
thanks for the help!
masak ooh, SymbolTable is called World now! \o/ 16:57
you're welcome :D
I'm currently investigating OMeta's concept of World... 16:58
masak yass5: \o 17:08
yass5 masak: o/ 17:09
masak nom: sub initial($_) { .substr(0, 1) }; say "yet another static scalar".words.map({ initial($_) }), 5 17:16
p6eval nom a7fd89: OUTPUT«y a s s5␤»
masak pfft :)
nom: sub initial($_) { .substr(0, 1) }; say "yet another static scalar".words.map({ initial($_) }).join, 5
p6eval nom a7fd89: OUTPUT«yass5␤»
masak \o/ 17:16
moritz nom: sub initial($_) { .substr(0, 1) }; say "yet another static scalar".words>>.&initial.join, 5 17:19
p6eval nom a7fd89: OUTPUT«yass5␤»
moritz nom: sub initial($_) { .substr(0, 1) }; say "yet another static scalar".words.mpa(&initial).join, 5 17:20
p6eval nom a7fd89: OUTPUT«Method 'mpa' not found for invocant of class 'List'␤ in block <anon> at /tmp/_ioG2OznRn:1␤ in <anon> at /tmp/_ioG2OznRn:1␤»
moritz nom: sub initial($_) { .substr(0, 1) }; say "yet another static scalar".words.map(&initial).join, 5
p6eval nom a7fd89: OUTPUT«yass5␤»
moritz masak: map { foo($_) } is nearly always an anti-pattern
and map &foo can usually be used instead 17:21
masak ooh, indeed.
nom: sub initial($_) { .substr(0, 1) }; say "yet another static scalar".words.map(&initial).join, 5
p6eval nom a7fd89: OUTPUT«yass5␤»
masak could someone help me understand the role perl6_capture_lex plays in Actions.pm ? 17:29
it's used in exactly two places, the sub block_closure, and the method quote_escape:sym<{ }> 17:30
it's defined last in src/ops/perl6.ops, and doesn't look like it's doing very much. 17:31
sorear++ # irclog.perlgeek.de/perl6/2011-12-10#i_4814872 -- that's the attitude to regressions that Rakudo needs as well, even across big rewrites 17:36
masak smiles at "Plain, Old Documentation" in the backlog 17:40
moritz Call for Papers for the German perl Workshop 2012 in Erlange (March 5-7) ends today 17:44
I hope to extend the deadline for a week, but not sure it'll work
benabik Took a couple times to not read that as "Perl in Erlang Workshop" 17:46
moritz erm, sorry, the town is called "Erlangen" 17:51
masak phenny: de en "Erlange"? 17:56
phenny masak: "Achieve" (de to en, translate.google.com)
masak phenny: de en "Erlangen"?
phenny masak: "gain" (de to en, translate.google.com)
cognominal happy new year to the perl sixers.
masak nom: class Year { has @.d; method description { @.d.sort.ucfirst ~ " " ~ self.^name ~ "!" } }; say Year.new(:d(<new happy>)).description 17:59
p6eval nom a7fd89: OUTPUT«Happy new Year!␤»
masak \o/ 18:00
colomon benabik: are you volunteering to implement p6 in Erlang? ;) 18:11
moritz phenny: de en "Erlen am Hang"
phenny: de en "Erlen am Hang"?
phenny moritz: "Alder on slopes" (de to en, translate.google.com)
moritz that's the origin of the name "Erlangen" 18:12
x3nU mine snails looks so cute <3 18:13
benabik colomon: In my copious spare time? :-D
colomon benabik: exactly!
x3nU creating perl6 implementation in HQ9+ would be a big step forward 18:15
tadzik hah
colomon HQ9+?
x3nU simple.wikipedia.org/wiki/HQ9%2B 18:16
there's no entry in english wiki
colomon okay, that's awesome 18:20
Though the + seems somewhat unneeded. 18:21
tadzik it's an evolution of the HQ9 language 18:22
masak I'm waiting till HQ9++ is released. 18:23
benabik masak: www.dangermouse.net/esoteric/hq9plusplus.html 18:24
masak well, there you go then. 18:27
now, I have two choices.
either I could reject reality and redefined "released" in such a way that I still have a reason not to try the new language. this is clearly less work for me.
or I could admit that HQ9++ actually exists, go ahead and try it, and then give my honest appraisal of it. that sounds really hard. 18:28
so... by "released", I obviously meant "when enough people in my immediate vicinity talk about it". 18:29
...obviously. 18:33
x3nU nqp configure.pl 18:38
is
horribly broken
raiph hi all 18:39
phenny raiph: 29 Dec 18:09Z <TimToady> tell raiph re: irclog.perlgeek.de/perl6/2011-12-18#i_4848275 I'd say 6model is not so much related to moose as it is to the Responder Interface stuff that nothingmuch++ was working on in the same timeframe, but representation polymorphism has been the p6 plan for ages
raiph s05: "A character class is now specified using <[...]>. See also "Extensible metasyntax". " 18:40
the target of "Extens..." link doesn't exist
masak raiph: seems the heading has changed to '=head1 Extensible metasyntax (C<< <...> >>)' 18:43
hm. or not. that line is unchanged since the last repository move.
maybe the link never worked, then. 18:44
colomon "When the sequence ++ is encountered, it (naturally) increments the accumulator twice, and also instantiates an object of a new subclass of the generic superclass. In line with the best data-hiding principles, there is no way to access this object." Wow. It really IS a big improvement over HQ9+! 18:45
still, it could really use meta operators....
benabik colomon: You should try to find HQP9+-
colomon: What - does depends on what operators are before it. :-D 18:46
colomon benabik++
masak ;) 18:48
colomon sorear: ping. (or just try S32-trig/sin.t -- one of many failures in the spectest.)
masak I'm doing a gist about macros and closures to try to make them clear to me. 19:04
I think I finally grok a thing that sorear++ told me: all ASTs are inserted into mainline code as *blocks*, and these blocks still retain their original OUTER. 19:06
this simplifies a lot, if true.
well, um, it makes the COMPILING case the exceptional case, I guess :)
sayu c 19:14
masak c/ 19:16
dalek ast: ba48d7b | Coke++ | S04-phasers/ (4 files):
niecza fudge
19:22
ecza: b5d8efc | Coke++ | t/spectest.data:
run more tests (some fudged)

S04-phasers/ascending-order.t S04-phasers/descending-order.t S04-phasers/init.t S04-phasers/multiple.t S04-phasers/rvalue.t S06-multi/positional-vs-named.t
19:23
kshannon src/core/Any.pm: proto infix:<===>($?, $?) { * } 19:44
Ummm, why optional?
moritz kshannon: because [===] reduction uses the nullary infix:<===>() candidate to provide the default value
nom: say [===]()
p6eval nom a7fd89: OUTPUT«Bool::True␤»
moritz nom: say [*]()
p6eval nom a7fd89: OUTPUT«1␤» 19:45
moritz nom: say [+]()
p6eval nom a7fd89: OUTPUT«0␤»
x3nU it's kinda sad that i found so many things broken when i'm trying to build rakudo 19:46
tadzik we can't help if you won't give us any info 19:47
kshannon OK, then why a few lines down does infix:<cmp> not have an optional case?
x3nU tadzik: i'm not asking for help
tadzik alright
x3nU most problems are unrelated
to rakudo
for example
moritz sad indeed; we could use developers on windows who fix the build system 19:48
nom: say [cmp]()
p6eval nom a7fd89: OUTPUT«Not enough positional parameters passed; got 0 but expected 2␤ in sub infix:<cmp> at src/gen/CORE.setting:1171␤ in sub <anon> at src/gen/CORE.setting:8605␤ in block <anon> at /tmp/2wnMryVQAI:1␤ in <anon> at /tmp/2wnMryVQAI:1␤»
x3nU gmake in mingw-w64 uses non-existing command 'cc' in $(COMPILE.c)
moritz kshannon: an omission, I think
x3nU or configure.pl for nqp can only use nmake (that's easily fixable)
kshannon No,, thinking about it, [cmp]() can't really have a defined answer. 19:49
moritz ah right, it's not boolean, and thus not chainable either 19:55
std: [cmp] () 19:56
p6eval std dc62e1d: OUTPUT«===SORRY!===␤Cannot reduce with cmp because structural infix operators are diffy and not chaining at /tmp/qlFthYUzoQ line 1:␤------> [cmp]⏏ ()␤Check failed␤FAILED 00:01 120m␤»
moritz that's what rakudo should do :-)
masak I've been writing up the state of the art of macro thinking here: gist.github.com/1548053 20:00
feedback welcome.
tadzik it's interesting :) 20:01
masak :) 20:02
it put into words something that I've known for a few months now, but not been able to express clearly. 20:03
the short version is "ASTs need to carry their environment around, and applying them means sometimes having to do nasty things"
moritz "There's no corresponding mechanism for closures. Closures are too clean for that kind of thing." there is, it's called CALLER:: 20:21
masak I see where you're coming from with that. I'm not sure I'd go so far as to call it "corresponding". 20:22
masak yes, the mainline code is in some sense the caller of the applied AST. but the traces of that relationship have intentionally been erased at the point we're running the code. for all intents and purposes, the code from the AST is *part* of the mainline code, not in a callee-caller relationship with it. 20:23
with closures, we're one stack frame down and CALLER is somewhere completely different. with macros, not so. 20:24
of course, the *macro* may use the CALLER namespace and access the (static) lexpads of the mainline code. but that's something different. 20:26
:-)
masak though maybe it's not so obvious that the CALLER there is the mainline code and not, say, the parser. 20:28
sorear good * #perl6 20:34
masak sorear! \o/ 20:35
sorear niecza: [cmp] () 20:39
p6eval niecza v13-39-g2580531: OUTPUT«===SORRY!===␤␤Cannot reduce with cmp because structural infix operators are diffy and not chaining at /tmp/crjEYKVV4H line 1:␤------> [cmp]⏏ ()␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.…
sorear masak! \o/ 20:40
masak \o/ 20:41
sorear colomon: studying the S32-trig/sin.t regression now.
x3nU 20:43
oops
sorear colomon++ # "set nomodifiable" 20:44
moritz
.oO( nom-odifiy-able )
20:45
sorear moritz: I wonder why nobody has commented on your retrospection itself. 20:46
moritz sorear: that's because people read "Perl 6" and immediately run off to discuss whether it's ready, promosing or doomed 20:46
masak without fail.
moritz I've seen that many times; basically each time I've written about Perl 6, and got at least moderate amounts of attention 20:47
masak and not too surprising; people discuss things from within their frame of reference, and outsiders' frame of reference is outside that of insiders.
moritz this frame-of-reference-mismatch is also why I haven't discussed more spec changes 20:48
masak if I saw a reddit thread about quantum computing, I wouldn't be able to comment more than to the effect of "so, when will I be able to use it?" or make a pun on entanglement somehow.
moritz TimToady++ suggested mentioning % in regexes, and I considered it too. But it doesn't really matter for an outsider
outsiders don't understand its importance, scope or motivation; I could explain that, but it would take a complete blog post on its own 20:49
masak: yes, but *you* would refrain from commenting at all :-)
... if your only comment were something only slightly related 20:50
s/were/was/
where was my grammar? :-)
masak right, but that only means that there are a bunch of (if I may) sensible people whose comments we never see on reddit. :) 20:51
the only way to create positive discussion on a site like reddit is to change the default perception of Perl 6. 20:53
moritz for now I'm happy that enough people like to read it to upvote it 20:54
and that some of the commenters ask questions (even if biased ones) instead of condemning Perl 6 outright 20:55
anyway, time to sleep &
sorear I am getting the feeling I have deeply borked something in the binder here 20:56
sorear sleep well moritz 20:56
masak dream of Reddit upvotes and HN praise :) 20:57
sorear tries to golf a failing file, gets a completely different error! 20:58
at least the compiler is having the decency to ignore comments this time 21:00
dalek ecza: 92420ba | sorear++ | lib/Kernel.cs:
When reusing allocated frames, clear the "this is only a bindability check" flag :D colomon++
21:32
sorear *phew*
colomon o/ 21:42
masak \o 21:43
colomon oooo, the niecza spectest almost passes again 21:58
sorear what file(s) are still having issues? 22:00
colomon S06-advanced/callsame.t
our todo there is now passing, but the previously passing tests are now failing
sorear the test which is "now passing" is very dubios 22:02
masak what is it? 22:03
sorear and I don't think either of them ever *should* have worked for niecza
I'm willing to just remove the file from spectest.data
masak: "callsame" in an only-sub with no outer dispatcher is supposed to live...wtf?
masak hmmm. 22:04
no, I agree. supporting that doesn't give much, and will probably only prevent optimizations.
sorear I'm not _really_ sure what nextsame & co are supposed to do with multis anyway 22:07
They work for methods because we specify a specific method resolution order
but multis are mostly unordered 22:08
maybe nextsame should be interpreted as "re-run MMD but ignore all candidates that have been invoked so far"
masak ...as opposed to?...
what I learned from en.wikipedia.org/wiki/Free_variable..._variables : variables in a function whose lookup reaches outside of the function, are referred to as "free variables". in the case of a closure, free values are sometimes referred to as "upvalues". 22:10
sorear masak: do you still want to talk promotion? 22:17
masak also, the "funarg problem" basically says "if you want closures, you can't put all local variables on the stack".
sorear: yes, but I'm not sure how much help I'll be. 22:18
sorear: what do you want to talk about?
sorear I don't remember exactly; the two of us were going to discuss increasing Niecza's visibility, but then we kept missing each other 22:19
masak aye. 22:20
I also don't remember how that discussion started.
I remember you deliberating whether to get a blog or not.
my advice -- get one. if only because I personally want to read your blog posts :) 22:21
(but I also think it would be good for Niecza.)
Wordpress makes it very easy to start blogging.
wordpress.com, to be exact.
sorear mm. I dunno what people would be interested in 22:22
tadzik I suppose "look what cool stuff niecza can do"
that'll interest me, at least 22:23
masak :)
tadzik I think that for reaching non-perl6 audience it'd be "look what cool stuff we did write" 22:23
just my 2zł 22:24
masak blogs "reach out" more than emails, or tweets, or IRC does.
mainly thanks to aggregation sites like Reddit and Slashdot and Hacker News.
I remember "playing" those sites much more back in 2009 -- writing things that were basically targeted for such audiences. 22:25
nowadays I mostly write what I want :P
sorear I have a certain bias towards thinking that everything I do is boring :P 22:28
colomon sorear: that most definitely is NOT the case.
though a lot of it is quite esoteric
for sure 22:29
on the publicity front, I have to admit I've been a bit disappointed in the reception of the gtk mandelbrot script. 22:30
I mean, on the one hand, it certainly isn't rocket science.
sorear how bad was it?
the only comment I saw was positive
colomon right; but there was only the one comment. 22:31
sorear o/ masak 22:31
o/ Moukeddar
Moukeddar hello guys :d
\o/
sorear why does irssi continue to expand m\t to masak? 22:32
colomon like I had started saying, it wasn't rocket science, but I'm pretty sure it was the first threaded GUI in perl 6, no? it felt like a milestone of sorts to me.
tadzik sorear: respecting character case?
hello Moukeddar!
sorear tadzik: nope, even M\t does it
tadzik sorear: odd indeed 22:33
masak hello Moukeddar! \o/ 22:33
Moukeddar guys, i'll have my first public course on thursday, wish me luck :D
tadzik it's this feeling "how did they write it so it behaves like this..." 22:34
Moukeddar i'll be the teacher
tadzik Moukeddar: whoa. What will you be teaching?
masak sorear: I guess irssi just likes me very much :)
dalek ast: c359f30 | (Solomon Foster)++ | S02-types/nan.t:
Unfudge tests that now work!
x3nU so building of rakudo on windows using msvc crashes 22:34
Moukeddar tadzik, C# :D
x3nU and building using gcc is impossible
:(
sorear I wonder what "rocket science" means and why it's used as a comparison so often.
tadzik puts on the etymologist's cloak 22:35
sorear I was doing some stuff in Perl last month with numerical integration of solar-sail trajectories, was probably simpler than the mandelbrot script
tadzik I suppose people always treated rockets as something close to magic, so rocket science became an equivalent of Very, Very Hard Stuff 22:36
sorear notes the people in #mono talking about smuxi release candidates, ponders trying it
tadzik + people like the phrase, for some reason
tadzik takes off the cloak
colomon think of the post WWII days, when we Americans had to import ex-Nazi scientists to build our rockets....
it was dark and mysterious and complex 22:37
x3nU building NQP under windows using gcc is impossible because stupid build system of dyncall
:F
sorear No, the real magic here is the Runge-Kutta method
As in, "I have absolutely no clue how or why this works, but it makes a HUGE difference so I use it anyway" 22:38
tadzik :)
colomon all I was trying to say was, I don't expected to be showered in praise, because the script is pretty pedestrian, really, and sorear++ did half the hard work. but on the other hand, threaded, GUI code is now pedestrian in p6!! that's huge.
tadzik :) 22:39
masak \o/ 22:42
colomon it's like we should have a committee (ugh!) dedicated to figuring out really cool stuff you can already do in p6. 22:45
masak news flash: that's us. 22:46
tadzik :D 22:51
masak 'night, #perl6 23:00
sorear bye masak
tadzik o/
dalek ast: 94ec2d4 | (Solomon Foster)++ | S32-num/roots.t:
Unfudge working test.
23:02
ecza: 9b00872 | (Solomon Foster)++ | lib/CORE.setting:
Allow split's $limit to be Whatever.
ecza: d7bbde0 | (Solomon Foster)++ | t/spectest.data:
Turn off S06-advanced/callsame.t, it's kind of dodgy and fails miserably on Niecza at the moment.
sorear o/ ggoebel 23:58