»ö« 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:03 whiteknight joined
dalek kudo/nom: 3c22598 | pmichaud++ | src/core/ (2 files):
Update Array.new and List.new to be more robust.
00:07
00:12 nrr left 00:15 nrr joined
dalek ast: 319bec5 | sorear++ | S06-signature/arity.t:
Unfudge S06/arity for Niecza
00:19
ast: 55f9056 | sorear++ | S06-traits/precedence.t:
Modernize and fix S06-traits/precedence
00:25 wolfman2000 left 00:26 prettyrobots left, prettyrobots joined, benabik joined
sorear What is %*PID? 00:31
00:32 daniel-s left 00:34 prettyrobots left 00:41 wolfman2000 joined
sorear $*DISTRO is bothersome. Why does Perl 6 need to include a distribution probing system? 00:41
00:54 flatwhatson left 01:00 jaldhar_ left 01:01 noganex_ joined 01:02 jaldhar_ joined 01:05 eebrah left, noganex left 01:06 Reaganomicon joined 01:17 donri left 01:24 woosley joined 01:26 jaldhar_ left, jaldhar_ joined 01:28 tokuhirom left 01:29 pernatiy joined 01:35 jaldhar_ left 01:37 flatwhatson joined, flatwhatson left 01:38 jaldhar_ joined, starcoder2 left 01:41 icwiener_ joined 01:43 alester joined 01:45 icwiener left
dalek ecza: ecfc817 | sorear++ | / (7 files):
Implement %*ENV, $*PROGRAM_NAME
01:47
01:48 whiteknight left
dalek kudo/nom: 8812718 | pmichaud++ | / (11 files):
Create an opcode for building Parcels; the opcode also handles replacing
01:52
01:54 lichtkind left 01:58 jaldhar_ left, jaldhar_ joined 02:02 eebrah joined 02:03 eebrah left 02:04 eebrah joined 02:05 eebrah left 02:06 bluescreen10 left 02:14 [Coke] left 02:17 [Coke] joined 02:20 jaldhar_ left 02:24 jaldhar_ joined 02:25 thou left 02:26 thou joined 02:38 jferrero left 02:42 envi joined 02:45 _jaldhar_ joined, jaldhar_ left 02:53 benabik left, prettyrobots joined
colomon sorear: don't think I'm going to get inbox:<**> sorted out tonight. ended up playing music for two hours longer than I expected, and now I'm all done in. will get back to it in the morning. 02:53
02:53 prettyrobots left 02:57 benabik joined, aesop joined 03:14 alester left
dalek kudo/nom: ab1dda5 | pmichaud++ | src/core/ (15 files):
Convert some more pir:: opcodes to nqp:: .
03:18
03:24 Su-Shee_ joined 03:26 Su-Shee left
dalek ecza: 836acfc | sorear++ | / (3 files):
Fix outer-frame issues that broke $_ in REPL
04:15
04:34 kaare_ joined
dalek ecza: 0fdbd7c | sorear++ | src/NieczaBackendDotnet.pm6:
Fix REPL getting wedged after late compiler failures (#44)
04:43
ecza: 1735ca0 | sorear++ | src/Op.pm6:
Fix prefix:<|> adverbing bug (#45) thou++
05:01
05:07 thou_ joined 05:08 thou_ left 05:09 wamba joined
dalek kudo/nom: c58a3dd | pmichaud++ | NOMMAP.markdown:
More NOMMAP notes.
05:14
05:15 koban joined
thou sorear: this seems buggy to me -- you agree? paste2.org/p/1491224 05:18
05:31 birdwindupbird joined 05:39 bakedb joined
sorear thou: I don't understand. 05:46
oh 05:47
thou sorear: S02 says Leading whitespace equivalent to the indentation of the delimiter will be removed from all preceding lines.
which niecza does OK
sorear I see what's going on here.
thou ok 05:48
sorear niecza is treating the end of interpolations as the begininning of a new line
thou dunno, it still does it if the 2nd heredoc is indented more than 1 space 05:49
sorear yes 05:51
thou related, there's a weirdness in the spec, it seems. it says that :to means "Parse result as heredoc terminator". taken on its own, it sounds like the other adverbs would apply to the terminator itself, not to the heredoc string. i.e., qq :to /$foo/ should interpolate, while q :to /$foo/ shouldn't. But that's clearly not what we mean. 05:56
I guess the result itself is parsed as Q, and all adverbs apply to the heredoc text. 05:57
sorear it's actually a little bit more complicated than that
qq :to means Q :qq :to, which parses the body with :qq 05:58
there's also Q :to :qq, which would interpolate the terminator
thou ah
sorear (except it won't work. no BEGIN)
05:59 jdhore1 left, mberends left 06:04 wamba left 06:06 Su-Shee_ is now known as Su-Shee 06:14 agentzh joined 06:17 icwiener_ left 06:19 wtw joined
moritz good morning 06:33
06:34 noganex_ is now known as noganex, bakedb left 06:38 jdhore joined 06:42 daxim joined 06:43 kanishka joined, kanishka left 06:45 kanishka joined
dalek kudo/nom: 27cef7c | pmichaud++ | src/core/ (2 files):
Gather needs to execute its body in sink context.
06:45
kudo/nom: 8c2ecf4 | pmichaud++ | src/core/ (2 files):
Add Any.grep, Any.min. Fix &infix:<cmp> to handle infinity arguments.
sorear goood morning moritz 06:49
06:53 jdhore left
dalek ecza: ba002dd | sorear++ | / (3 files):
Fix heredoc interpolation space oddity (thou++)
06:57
thou sorear: i don't think that regression test is accurate. the $x can't be at the end of the line, or it won't show the bug. 07:03
i.e., $x Foo becomes BarFoo; but Foo $x becomes Foo Bar even in buggy impl. 07:04
sorear yeah
I'll fix that
dalek kudo/nom: b1195a8 | moritz++ | t/spectest.data:
three more passing spectest files
07:05
07:05 zby_home_ left
TiMBuS why is planetsix frozen 07:11
has someone tried banging the side of the server to unstick the feed 07:12
07:22 wamba joined
sorear TiMBuS: try scrolling down 07:25
masak postdated a post
and is too consumed by NIH to have used software to prevent that :(
TiMBuS lol 07:26
i see now
jnthn morning, #perl6 07:28
pmichaud++ # nice :)
07:32 wamba left 07:41 Chillance left
dalek ecza: ae25334 | sorear++ | src/ (5 files):
Mergeback augments
07:50
ecza: 4d02280 | sorear++ | / (2 files):
Fix heredoc despacing for real, now with a working test too
07:50 bakedb joined
sorear now... to write a concise description of 208 commits 07:50
tadzik Files=50, Tests=441, 67 wallclock secs ( 0.35 usr 0.12 sys + 61.34 cusr 4.01 csys = 65.82 CPU)
and some tests passed
* todo tests
07:59 cooper left 08:04 mj41 joined
moritz phenny: tell masak about xkcd.com/917/ when he appears 08:15
phenny moritz: I'll pass that on when masak is around.
08:18 thou left 08:21 dakkar joined
dalek ast: a1e4daa | moritz++ | S03-operators/numeric-context.t:
[numeric-context.t] remove outdated, wrong tests
08:21
ecza: 1ea7e81 | sorear++ | docs/announce.v7:
Draft v7 announce
08:28
sorear I now sleep; comments wanted
moritz sorear: "INVOKE has been renamed postcircumfix:<( )>, at_key and at_pos likewise." the "likewise" isn't very telling 08:31
make a small table instead
otherwise quite nice 08:33
sorear++
(but I don't have a good idea for a new name either)
pmichaud wow 08:35
check this out
my $i = 0; my $j = 1; while $j <= 10000 { $i = $i + $j; $j++ }
0.2103 sec
my $i = 0; for 1..10000 { $i = $i + $_ }
0.2663 sec
jnthn pmichaud: wow :) 08:36
pmichaud: That's got 'em closer.
pmichaud that wasn't my goal at this point, but it's a nice side-effect :)
I was just adding next/last/redo support to map 08:37
moritz pmichaud: what did you do?
jnthn Accidentally the win
:)
pmichaud in order to do next/last/redo, I had to replace the while { } loop in MapIter with Q:PIR, in order to get the exception handling correct (and semi efficient)
otherwise the cost of creating the exception handlers on each iteration was going to kill us.
(indeed, this is probably part of what makes .map in master slow) 08:38
jnthn aha
yes, exception handlers in Parrot are a pig.
pmichaud when we have good CONTROL { } handling, we can perhaps go back to a more pure p6-solution
but for now I'll take the speed win
(and the Q:PIR is fairly straightforward) 08:39
jnthn Yeah, we need a new, fast exceptions implementation relly.
*really
But that's a post-nom task.
And may need some co-ordination with Parrot folks.
Control flow is one of the least easily plug-in-your-own-able bits. 08:41
08:42 lue left
jnthn "Is there a handler of some kind here?" should really be something like checking a flag/bitfield on a context. 08:42
08:46 tokuhirom joined
pmichaud we're likely to need lexotics soon 08:46
at least lexotic return 08:47
jnthn That also.
pmichaud right now for @list { return if ... } fails badly.
jnthn I may be able to hack that into the existing system though.
pmichaud because now that all of the low-level stuff is written in p6, we have return handlers all over the place.
moritz jnthn: how far are roles in nom? 08:48
nom: say 'a' ~~ /a/
p6eval nom: OUTPUT«too many positional arguments: 3 passed, 1 expected␤current instr.: 'nqp;Perl6;Actions;block_closure' pc 21670 (src/gen/perl6-actions.pir:7029)␤»
jnthn moritz: roles or rules? :) 08:49
moritz jnthn: roles
jnthn moritz: ah :)
moritz jnthn: that regex test was rather unrelated
more related to "stuff that needs to be put back"
jnthn moritz: Still some significant missing things.
moritz: The heart of the roles implementation is there.
moritz: But there's still quite a few other bits to do yet. 08:50
moritz jnthn: how feasible is it to turn the X:: classes into roles?
jnthn moritz: We already have some roles in the setting, so at that level it's possible. 08:51
pmichaud jnthn: did you see my note about Positional/Associative not working for multidispatch?
(in NOMMAP)
jnthn pmichaud: Yeah. How exactly did you trigger it? (more)
Did you explicitly write Positional/Associative or just use the sigils?
pmichaud just the sigils 08:52
jnthn ah
Yeah, then it's not MD that's busted, just that I didn't put the sigil => role mapping back yet.
pmichaud okay
testing.
jnthn nom: proto x(|$) { * }; multi x(Positional $x) { say 1 }; multi x(Associative $x) { say 2 }; x(my @a); x(my %h) 08:53
p6eval nom: OUTPUT«Rebuild in progress␤»
jnthn aw
dalek kudo/nom: 01af805 | moritz++ | NOMMAP.markdown:
add missing regexes to NOMMAP
jnthn nom: proto x(|$) { * }; multi x(Positional $x) { say 1 }; multi x(Associative $x) { say 2 }; x(my @a); x(my %h)
p6eval nom: OUTPUT«No type check cache and no type_check method in meta-object␤current instr.: 'x' pc 463 ((file unknown):38168184) (:1)␤»
pmichaud that's the error I get
gist.github.com/1048533
jnthn nom: sub x(Positional $x) { say 1 }; x(my @a) 08:54
p6eval nom: OUTPUT«1␤»
jnthn nom: sub x(Positional $x) { say 1 }; x(my %h)
p6eval nom: OUTPUT«Nominal type check failed for parameter '$x'; expected Positional but got Hash instead␤current instr.: 'x' pc 345 ((file unknown):30256379) (:1)␤»
jnthn hm
moritz nom: my @a := 1
p6eval nom: ( no output )
jnthn oh
I know why
moritz nom: my Num $x := 1 08:55
p6eval nom: OUTPUT«Type check failed in binding␤current instr.: '_block1002' pc 28 ((file unknown):0) (:1)␤»
jnthn It's in the narrowness analysis.
pmichaud: Can try to fix that later today, but need to look after some $dayjob things first. 08:56
pmichaud no problem
it's a blocker on slices for me
(but I have plenty else to work on)
jnthn pmichaud: In ParametricRoleHOW, if you add a method type_check($obj, $checkee) { 0 # XXX TODO } 08:57
That'll probably make it work
In general, the composition-y aspects of rules work fairly well, the type checking is muchly still to do and the parametricism is awesome in the places it works but not finished yet. 08:59
*roles
pmichaud how would you feel about a 3-part block structure instead of the 2-part one we have now? ;-) 09:03
.[0] = initialization
.[1] = body
.[2] = return
you can do type constraint checking in [2], if you want :-) 09:04
(return type constraint, that is :-)
actually, that's probably not going to work 09:06
hrm
jnthn pmichaud: Can we somehow unify the code path we take for both return exception and fall-off-the-bottom return?
pmichaud that's what this would do, yes.
jnthn pmichaud: That was always the factoring headache I had before when putting in the return type constraint check.
pmichaud return stuff would always end up being "fall off the bottomish" -- a return exception just gets you to the bottom. 09:07
jnthn *nod*
If you give me a place I can put the return type constraint check, I can easily enough add it :) 09:08
pmichaud okay, just wanted to make sure that mucking with the block structure slightly wouldn't cause too much grief
jnthn Adding another one on the end shoudl not.
pmichaud (mainly in the .[1] node, it looks like
I'm thinking we'll end up remaining 2-node, but it should work out okay. 09:09
jnthn Breaking the current 0/1 meanings probably would hurt a bit.
09:09 huf joined
pmichaud we'll definitely keep the 0 meaning. 1 should be mostly the same 09:09
09:12 jdhore joined 09:13 JimmyZ joined
dalek kudo/nom: 30f5cc9 | pmichaud++ | src/core/MapIter.pm:
Add last/next/redo handling to map loops in MapIter. Unfortunately,

for much of the MapIter body, although it's very straightforward code. Fortunately, this gives us another huge speed boost, such that using map to iterate over a range is twice as fast as it was before
  (about 80% faster than master).
while loop with an increment variable.
09:15
pmichaud hmm, don't know what happened to my commit message there. oh well. 09:19
jdhore Well this sucks 09:20
09:21 grandmoun joined, awoodland left 09:31 donri joined 09:42 _twitch joined 09:43 koban left
moritz blogs.perl.org/users/leanan/2011/06...rever.html sigh 09:43
daxim »That people don’t think Perl6 is dead confounds me; we’ll get to that later, though.« - first, make sure 'e's dead. - *bang* OK, what now? 09:45
09:45 koban joined
moritz wonders if people will continue to call perl 6 vapourware even when it has fast, stable compilers and a big module repository 09:47
I kinda have the feeling that it's so ingrained in some people that they won't change their opinions, no matter what the facts say 09:48
daxim the argument already shifted from "vapour" to "production ready". keep up with the distractors!!
jlaire like the title says, perl6 is like dnf; it will be released, eventually :)
moritz well, leanan still says "vapour"
jlaire: and contain lots of unnecessary rudeness? :-) 09:49
jlaire moritz: oh, don't take the analogy *too* far :)
daxim Perl6's gonna pop off your head and shift down your neck? 09:50
jnthn I love how in one sentence there's "still no software4" and in the following sentences it turns out you can even run it.
daxim now, fixing these mistakes in the article, does the overall intended assertion still hold? 09:51
jlaire that post doesn't have even an epsilon of constructiveness, just ignore it
moritz daxim: I fear there's a grain of truth in there 09:52
pmichaud Oh, I think it can be constructive. Basically it's identifying the problem that there's an assumption that X(n+1) is always newer/better/supercedes X(n)
daxim that's realistic. I'd blog about it
moritz daxim: many people still think that Perl 6 will obsolete Perl 5 one day, just because of the version nubmers
jdhore My biggest reason I don't think people will be happy with P6 is the same reason DNF is getting horrid reviews. 09:53
Eevee afaict, DNF is getting horrid review because it's genuinely a bad game
moritz we've tried to tell everybody that that's not true, but we're reaching only very few people
jdhore No, you won't have to pull some feces out of Perl 6's urinal in the first 5 minutes, but VERY little can live up to 14 years of hype
pmichaud so, as far as identifying that problem, it's got something to add. But I think most of the people discussing it at length are already painfully aware of that issue, and the post doesn't do anything to move the discussion forward.
jdhore and while Perl 6 will be really really good, I sort of doubt that it will be able to live up to the 10-12 years of hype. 09:54
moritz pmichaud: agreed
pmichaud i.e., he didn't really address how one might dissociate any connection between Perl5 and Perl6, nor how to get Larry to possibly consider a different name.
simply yelling "Perl 6 needs a new name" isn't really moving the discussion.
frettled It's just another thimblefull of vitriol.
jdhore I know what this argument is, but i think here's a good idea for a name: Perl-ng/Perlng 09:56
09:56 pernatiy left
tadzik let's name it Parrot. 09:57
oh, wait...
moritz jdhore: not good. Too lang, to hard to pronounce
tadzik perl-angie
frettled Camelia 09:59
moritz that's a nice name for a logo, but not good for a programming language 10:00
10:00 grandmoun left
jdhore moritz, That's as maybe, but perl-ng fits what Perl 6 is perfectly 10:00
tadzik screw this naming issues. No one is arguing over C# killing C++ killing C. The problem lies not in the naming
jdhore If you think of Perl 1-5 as all scaling in a linear fashion (they did), Perl 6 is scaling in a exponential fashion, so -ng fits 10:01
tadzik I don't think this will fool anybody
moritz jdhore: assuming that "ng" stands for a "new generation", it's a terrible postfix. In 20 years it won't be any "new" 10:02
dalek kudo/nom: 3f99683 | moritz++ | t/00-parrot/09-pir.t:
adapt t/00-parrot/09-pir.t to current reality
pmichaud btw, we can liberally change the 00-parrot and 01-sanity test files
moritz (same argument for "next" - if what it is next to is forgotten, it makes no sense whatsoever)
10:03 daniel-s joined 10:04 burning_aces joined, woosley left
daxim (raptor|butterfly) perl? 10:05
moritz never really associated 'raptor' with any Perl version 10:06
jdhore moritz, It's the new generation of Perl...If I created a car with the same principles of the Model T or the E-Type Jaguar, everyone would call it a new generation of the Model T or the E-Type Jaguar.
pmichaud Let's all agree to call it Perl 5.20 and see if that fixes the problem. :)
moritz and "butterfly" is way too long
jdhore: so? it's still a terrible name in the long run
jdhore I disagree
pmichaud "Window NT" 10:07
"Windows NT"
moritz can't be won with "everybody does"-style arguments
10:07 _twitch left
jdhore moritz, Then what would you call this: www.jaguarspeedster.com/ ? 10:09
pmichaud What nobody ever addresses directly is #2 from the blog post. (more)
moritz jdhore: an URL
pmichaud I see three possibilities.
(a) Larry is convinced to start calling Perl 6 something else. 10:10
jdhore moritz, What's on (behind?) the URL :P
moritz jdhore: a website about a car
moritz really doesn't see the point jdhore is trying to make
pmichaud (b) The community collectively decides to call Perl 6 something else regardless of what Larry says, does, or thinks.
(c) The name remains Perl 6.
moritz (d) the community decides to rename Perl 5 10:11
pmichaud I don't see "b" happening. I wouldn't be part of such a movement.
flussence *groan* this again... :)
pmichaud yes, (d) is a possibility also.
moritz as I keep saying, a really good, new name is prerequisite for both (a) and (b)
(and for (d) too) 10:12
I haven't seen one yet.
pmichaud and (d) doesn't supplant either (a), (b), or (c)
it's kind of on another axis.
flussence we could offer to name it "21st Century Perl" to differentiate it from the language users of other languages usually call unreadable ;)
moritz well, if perl 5 was renamed, we wouldn't have to worry about the name clash anymore
pmichaud for those people who say that Perl 6 needs to be called something else, the options are (a), (b), and (c). 10:13
TiMBuS i like it as perl 6 10:14
10:14 _jaldhar_ left
TiMBuS its perl and a next major revision of it 10:14
moritz wonders if he should throw another blog post into the mix
TiMBuS oh my god *scrolls back*
daniel-s Perl Xtreme!!
flussence besides, aren't people already renaming Perl 5 to "Modern Perl" to differentiate it from... Perl 5? :) 10:15
moritz to distinguish it from post-modern Perl 5? :-)
flussence
.oO( post-mortem? )
10:16
tadzik <a dead language joke> 10:17
moritz <a meta joke about dead language jokes>
daniel-s you could just name it as a misspelling of another semi-precious stone that's similar to pearls
moritz rby?
gem? 10:18
Eevee safire
I think 'gem' is already taken as a binary name :) 10:19
moritz quarz
japer
jlaire just another ...?
just another perl
moritz mis-spelled "jasper" 10:20
(or "berl" as a mis-spelled "beryl" :-) 10:21
jlaire or "jaspr", in the true spirit of web 2.0
moritz NOOO
10:23 _twitch joined
flussence I think the p5 people are missing the point. There's *three* versions of Perl now - 6, 5, and the horrible mess non-perlers associate with the word "perl". Trying to force p6 to rename won't fix that at all, it'll exacerbate their public image problems if anything. 10:24
tadzik +1
jdhore I have it. 10:25
Call Perl 6 Lerp.
daniel-s that sounds gross
tadzik derp 10:26
10:26 burning_aces left
daniel-s sounds like a bodily function, like berp 10:26
jdhore crap...That won't work...didn't think that's though...It's 6AM and i've had a horrible evening
*that
daniel-s likes Perl 6 (fwiw) 10:32
10:34 am0c joined 10:49 pernatiy joined
Su-Shee flussence: "their" image problem? all perl 6 image problems are perl 5 image problems and vice versa. noone outside out (shrinking ;) perl world actually cares for the distinction... ;) 11:29
outside of our is that supposed to mean :) 11:30
11:31 lichtkind joined
flussence it'll become their problem if they force Perl 6 out; right now if someone brings up the "perl is ugly" meme I just point them to random bits of p6 code and they quickly shut up :) 11:33
Su-Shee good thing then that more or less noone really cares what's up with either 5 and 6 all in all and most developers moved on to other languages entirely. ;) and until this bickering on _both_ sides doesn't stop, barely anyone will come (back).. ;) 11:36
flussence and when people claim perl6 will never be released/production-ready, I point them to tryrakudo and ask them where PHP 6 is :) 11:43
11:43 Mowah joined
frettled where's my flying car? 11:46
I was promised one by 2000.
flussence there is one, you just have to share it with everyone else 11:47
moritz blogs.perl.org/users/mithaldu/2011/...again.html
JimmyZ if name change fixes the problem, let's change it everyday 11:50
flussence I can't help but wonder if people would stop complaining if there was a perl6 that could run v5 code as well as perl5...
frettled flussence: they probably wouldn't, because then the v6 would be 'too slow', and the incompatibilities would cause bitching and whining, which of course will continue to be greater in strength and quantity than when we had the v4 -> v5 hullabaloop. 11:51
flussence isn't lexically-scoped "use v5" in our spec already? 11:52
moritz is too young to have witnessed the v4 -> v5 hullabaloop.
11:53 mj41 left
flussence S11:625! 11:53
frettled there's a small remnant here: www.cygwin.com/ml/automake/1999-04/msg00311.html 11:55
flussence regex changed between 4 and 5? I'm not sure I want to know what it looked like before... 11:56
11:59 mtk joined, wamba joined 12:03 am0c left 12:04 wamba left 12:08 orafu left, orafu joined 12:09 mberends joined
gfldex "people would stop complaining" - Whining gets you stuff. That's why humans deem themself at the top of the food chain. (What they are not. Zombies, bacteria and maggots > human) 12:24
12:25 icwiener joined
mberends sorear: niecza v7 has a truly impressive release announcement. For a name suggestion, how about p6sharp? And +1 for CLR libraries, if that includes callbacks we can work towards a GUI. 12:35
12:38 leprevost joined
eiro hello all 12:39
felher Is there something like haskells where-operator in perl6?
12:39 colomon left
daxim gfldex, I *demand* a pony. 12:39
felher o/ eiro
eiro ho ... masak's missing. 12:40
anyone else interested to join the perlude list ?
moritz what is perlude?
eiro (perlude is an haskell prelude in perl5)
moritz so... you implement Haskell functions in Perl 5? 12:41
eiro yep
moritz sounds like fun
but /me has already too many other projects
flussence looks up the where-operator... 12:42
jlaire where is not an operator, it's part of the core syntax of Haskell 12:43
12:43 benabik left, tokuhirom left, tokuhirom joined 12:44 vam joined
eiro you can write things like say sum take 10, filter { /3/ } fibo 1,1 12:44
gfldex daxim: there you go: img4.hostingpics.net/pics/935404cqlol1024.jpg
felher Thnx jlaire. I don't know enough haskell for sure. :) 12:45
eiro moritz, we are already 3 core developpers and it mostly work. what i need now is users we can ask for ideas, feedback and feature requests
flussence if you're writing haskell functions in p5, does that mean eventually pugs will run on it? :) 12:46
eiro haha ... not at all :)
jlaire felher: 'where' desugars to 'let .. in', so the equivalent in perl6 is just normal local variables :)
eiro actually there are still some differences 12:47
and that's why i would appreciate members on the list
for exemple: mapM and mapM_ are really annoying perl people. it became apply and traverse 12:48
(traverse was a masak idea)
jlaire how'd you implement mapM? o_O
moritz eiro: sounds like jlaire is your first "victim" :-) 12:49
jlaire goes to cpan 12:51
felher jlaire: ah, okay. thnx alot. :)
eiro jlaire: by lying to myself: i used closures as monads 12:52
and basically: mapM_ is
jlaire felher: np, the more people interested in haskell the better ;) 12:53
eiro: I see
eiro my ( $block , $C ) = @; sub { (my $v = $C->() ) or return; $block->() for $v; $v }
jlaire an interesting project :)
eiro thanks
jlaire, interested to join the list ? 12:54
(it's just an alias for the moment, that's why i came to ask masak)
jlaire eiro: I have too much to do already :| 13:01
eiro jlaire, i just asked : you're welcome 13:02
13:10 vam left, Holy_Cow joined 13:12 bluescreen10 joined 13:16 colomon joined
colomon o/ from yapc::na! 13:16
mberends o/
jnthn o/ 13:19
13:20 cheeseboy joined, Katibe joined
cheeseboy can someone help me with ilbot? 13:21
Can't locate Config/File.pm in @INC (@INC contains: lib /usr/lib/perl5/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl .) at ./ilbot2.pl line 5.
BEGIN failed--compilation aborted at ./ilbot2.pl line 5.
docs are non existent :/
13:23 Katibe left, agentzh left 13:24 molaf joined 13:26 Katibe joined
JimmyZ good evening, #perl6 13:26
13:31 f00li5h joined
flussence cheeseboy: "Can't locate Config/File.pm" means you don't have Config::File installed in a place where the script can find it. 13:34
13:34 Kivutarrr joined
cheeseboy flussence, pastebin.com/0DQdXVqx any guesses on which i need? 13:36
flussence none of those are the right one, you'll need to use CPAN 13:37
cheeseboy cant find it 13:39
flussence You should have the "cpan" or "cpanm" command, one of those will install it.
colomon sorear: ping? 13:41
cheeseboy: or perl -MCPAN -eshell
cheeseboy: and then "install Config::File"
cheeseboy: might need sudo... 13:42
sorear: I appear to have completely broken my niezca somehow. :( 13:45
sorear: never mind, back in business 13:48
niecza: say 1000000 / 8 13:49
p6eval niecza v6-209-g1ea7e81: OUTPUT«125000/1␤» 13:50
colomon niecza: say 1000000000000000000 / 8 13:52
p6eval niecza v6-209-g1ea7e81: OUTPUT«125000000000000000/1␤»
JimmyZ nom: say 1000000 / 8 13:53
p6eval nom: OUTPUT«125000␤»
JimmyZ nom: say 8 / 1000000 13:55
p6eval nom: OUTPUT«8e-06␤»
14:00 tokuhir__ joined 14:03 PacoLinux joined 14:04 tokuhirom left
colomon rakudo: say 2.54e0 ** 3 14:12
p6eval rakudo b2bc99: OUTPUT«16.387064␤»
14:13 wtw left
colomon TimToady's keynote at the moment! 14:14
14:15 mberends left, mberends joined
colomon rakudo: say 2.54e0 ** -3 14:17
p6eval rakudo b2bc99: OUTPUT«===SORRY!===␤Confused at line 22, near "say \x{2}2.54e"␤»
colomon rakudo: say 2.54e0 ** -3
p6eval rakudo b2bc99: OUTPUT«0.0610237440947323␤»
jnthn wonders what this year's keynote is about :) 14:18
jnthn should maybe wait to YAPC::EU to find out ;) 14:19
(if it's the same one :))
colomon jnthn: community 14:21
jnthn ooh, nice :)
14:23 thou joined 14:33 kanishka left, drbean left 14:36 _twitch left 14:38 avidguy joined
colomon "We've tried to change the Perl 6 community into a roach motel." :) 14:39
14:39 koban left 14:44 alester joined
PerlJam colomon: is someone recording it? 14:46
colomon PerlJam: I assume so, but I don't know for certain
14:47 bluescreen10 left 14:50 kanishka joined 14:51 bluescreen10 joined 14:52 Kivutarrr left 14:54 Moukeddar joined 14:55 mkramer joined, jevin left
colomon rakudo: say 1i ** 2 14:55
p6eval rakudo b2bc99: OUTPUT«-1 + 1.22464679914735e-16i␤» 14:56
14:56 avidguy left 14:57 jevin joined 14:59 mberends left 15:01 mkramer left 15:03 tokuhir__ left 15:04 tokuhirom joined 15:08 donri left
colomon well poop. 15:09
just went through the spectests looking for some juicy Complex ** Complex tests, and there don't appear to actully be any.
15:10 donri joined 15:16 daxim left 15:19 tokuhirom left 15:20 tokuhirom joined 15:31 molaf left 15:32 bloonix joined 15:33 spq2 joined 15:44 Moukeddar left
colomon TimToady mentioned "Keep your core contributors sane", but not how to find contributors that are sane in the first place? ;) 15:45
slavik colomon: that is the magic 15:50
pmichaud good morning, #perl6 15:53
15:53 mkramer1 joined
JimmyZ good morning, pmichaud 15:53
15:56 slavik left 15:57 slavik joined
colomon o/ 16:02
JimmyZ why perl6 -e '' goes into interactive mode? 16:03
16:05 mkramer1 left
TimToady maybe a || that should be // 16:09
16:14 tokuhirom left 16:16 spq2 left, tokuhirom joined
jlaire perl6: say (pi + 20) ** i 16:17
p6eval rakudo b2bc99: OUTPUT«-0.99999999924368 - 3.88926694022219e-05i␤»
..pugs: OUTPUT«*** No such subroutine: "&i"␤ at /tmp/DVmM6o42gm line 1, column 5 - line 2, column 1␤»
..niecza v6-209-g1ea7e81: OUTPUT«23.1415926535898␤»
TimToady niecza: say i 16:18
p6eval niecza v6-209-g1ea7e81: OUTPUT«0+1i␤»
16:18 MayDaniel joined
colomon jlaire: my fixed local copy of niecza gets that right 16:18
jlaire colomon: nice 16:19
colomon jlaire: now we just need sorear++ to wake up and apply my patch. :) 16:20
dalek p: fa94a60 | pmichaud++ | src/PAST/NQP.pir:
Add first pass at handling lexical returns; create a new :pasttype<lexotic>
16:20 mberends joined
sorear good * #perl6 16:23
colomon speak of the devil 16:24
sorear: infix:<**> is incredibly fugly
but it's in your mailbox
mberends o/ sorear: another niecza rename suggestion: call it Sprixel, and hope that diakopter++ doesn't notice ;) 16:26
sorear heh, diakopter's already used that name for 2-3 entirely unrelated names 16:29
things
TimToady so he's even less likely to notice one more :)
colomon sorear: power running low on laptop, then will be questing for nom. should be back online 2:30ish est
sorear bye!
dalek kudo/nom: f647b57 | pmichaud++ | / (3 files):
Switch to using lexical returns. A return invocation now attaches

purely dynamic. This implementation uses continuations directly instead of Parrot's exception handling, which may be both good and bad. We'll have to see how it all works out.
16:30
kudo/nom: 8b62352 | pmichaud++ | t/00-parrot/09-pir.t:
Merge branch 'nom' of github.com:rakudo/rakudo into nom
pmichaud nom: say 1,1,*+* ... { * > 100 }; # just checking 16:31
p6eval nom: OUTPUT«1 ␤»
16:31 Chillance joined
pmichaud hmmmm 16:31
TimToady $_ not * 16:32
16:32 Chillance left
pmichaud oh 16:32
nom: say 1,1,*+* ... { $_ > 100 }; # just checking
p6eval nom: OUTPUT«1 1 2 3 5 8 13 21 34 55 89 144 ␤»
16:32 Chillance joined
pmichaud TimToady: thanks 16:32
colomon thought that was what pmichaud was trying to test....
pmichaud nope, I just think-o'd there
how's the conference?
colomon nice so far 16:33
TimToady fine now
PerlJam TimToady: now that you're done with your public-facing portion? :)
TimToady well, the one where I can't just wing it
colomon it was fine when TimToady was talking, too -- at least for the rest of us. 16:35
PerlJam TimToady: at some point you need to do a talk themed around you answering for your transgressions at the perly gates ;) 16:36
sorear colomon: as it turns out I broke @*ARGS, again
colomon: so... last minute fixes :/
16:36 colomon left
PerlJam TimToady: unless you've already done one of those and I missed it. 16:36
TimToady well, kinda 16:37
I had Gloria and Aron being the good and bad angels on my shoulders
PerlJam sure, but that usually happens while you're still alive. Once you're at the pearly gates, it's usually clear which side won 16:38
pmichaud istr that TimToady++ gets hit by a bus in that particular episode :) 16:39
dalek ecza: 27122b4 | sorear++ | / (5 files):
Fix binding to package-scoped arrays (yet again), @*ARGS and %*ENV flattening
PerlJam The perl community bears a striking resemblence to a bus now that you mention it .... 16:40
But he gets hit by that bus all the time
sorear now to look at that patch of colomon
16:40 drbean joined
pmichaud tries to figure out what to hack on next in nom. 16:41
oh, fail().
16:42 moritz_ joined 16:43 moritz_ is now known as moritz
TimToady nomsville & 16:43
16:45 pernatiy left 16:46 colomon joined
sorear colomon: big_pow is kindof unnecessary 16:47
16:47 MayDaniel left
sorear BigInteger cannot represent any number larger than 2 ** (32 * int.MaxValue) 16:49
16:50 cdarroch joined, cdarroch left, cdarroch joined 16:58 _jaldhar_ joined
mberends sorear: what do you think of renaming niecza to p6sharp (or perl6sharp) ? 17:05
17:05 birdwindupbird left
sorear mberends: it makes me wonder what I'll do with the JVM backend I keep speculating about 17:06
mberends oh, good point :) 17:07
17:10 mkramer joined
dalek ecza: e5fa57e | (Solomon Foster)++ | lib/ (2 files):
Initial implementation of infix:<**>. Not properly tested, completely broken for Complex numbers.
17:11
ecza: 1948f60 | (Solomon Foster)++ | lib/Builtins.cs:
Fixes, first implementation of Complex infix:<**>.
ecza: d6516ab | sorear++ | test2.pl:
Incorporate colomon's power tests
17:12 noganex_ joined, _jaldhar_ left
dalek ecza: be28ad1 | sorear++ | docs/announce.v7:
Revise announcement
17:14
JimmyZ niecza: use v7 17:15
p6eval niecza v6-209-g1ea7e81: ( no output )
17:15 noganex left 17:17 cooper joined, cooper left, cooper joined, cooper left, odrm joined 17:18 cooper joined, cooper left, cooper joined, cooper left, cooper joined 17:20 dakkar left 17:26 mkramer left 17:28 colomon left 17:30 pernatiy joined 17:31 mkramer joined
[Coke] pmichaud: so, you still interesting in hacking on partcl? (Or pointing me at how the next-big-rewrite needs to be done?) 17:31
*interested
pmichaud [Coke]: yes, I'm interested. nqp needs to be moved a little farther along, I think.
maybe a week or so
it's much the same as before, though 17:32
we should be able to use the same grammar and actions for the most part (that's what Rakudo nom hss done)
but it's also a chance to clean up any cruft :) 17:33
[Coke] Hokay. 17:34
17:35 colomon joined
jlaire perl6: say (-1)**-i 17:37
p6eval rakudo b2bc99: OUTPUT«NaN + NaNi␤»
..pugs: OUTPUT«*** ␤ Unexpected "i"␤ at /tmp/KXGRXyGznY line 1, column 12␤»
..niecza v6-214-gbe28ad1: OUTPUT«23.1406926327793+0i␤»
jlaire niecza++ 17:38
(colomon++)
sorear NaN? really? 17:39
17:39 wamba joined
colomon niecza: say (2/5)**4 17:39
p6eval niecza v6-214-gbe28ad1: OUTPUT«16/625␤»
colomon how does 23.1406926327793 make sense for that? 17:40
jlaire colomon: en.wikipedia.org/wiki/Gelfond%27s_constant
17:40 mj41 joined, mkramer left
colomon woah. okay, I'll take that ++ as earned. ;) 17:40
jlaire niecza: say (-1)**-i == e**pi
p6eval niecza v6-214-gbe28ad1: OUTPUT«Bool::False␤»
jlaire niecza: say (-1)**-i - e**pi
p6eval niecza v6-214-gbe28ad1: OUTPUT«-5.32907051820075E-14+0i␤» 17:41
colomon doesn't have a good intuitive grasp of what complex powers should look like
17:41 mkramer joined
dalek kudo/nom: 3cefeb4 | pmichaud++ | / (4 files):
Make fail() into a soft-fail.
17:41
17:41 mkramer left
colomon niecza: say (4/25)**.5 17:41
p6eval niecza v6-214-gbe28ad1: OUTPUT«0.4␤»
colomon niecza: say (4/25)**-1
p6eval niecza v6-214-gbe28ad1: OUTPUT«25/4␤» 17:42
pmichaud perl6: say (-1).log
p6eval niecza v6-214-gbe28ad1: OUTPUT«Unhandled exception: Unable to resolve method log in class Int␤ at /tmp/gkX3_IjKo0 line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1787 (CORE C849_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1788 (CORE module-CORE …
..pugs, rakudo b2bc99: OUTPUT«NaN␤»
pmichaud perl6: say (-1e0).log 17:43
p6eval niecza v6-214-gbe28ad1: OUTPUT«Unhandled exception: Unable to resolve method log in class Num␤ at /tmp/Dlr2v1rxXZ line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1787 (CORE C849_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1788 (CORE module-CORE …
..pugs, rakudo b2bc99: OUTPUT«NaN␤»
pmichaud that's why Rakudo is reporting NaN :-)
colomon yes
but then I don't know why niecza is getting it right 17:44
sorear perl6: say (2 ** (1/1)).WHAT 17:45
p6eval rakudo b2bc99, niecza v6-214-gbe28ad1: OUTPUT«Num()␤»
..pugs: OUTPUT«Rat␤»
colomon oh, wait
17:46 bakedb left
colomon rakudo: (-1 + 0i).log 17:46
p6eval rakudo b2bc99: ( no output )
colomon rakudo: say (-1 + 0i).log
p6eval rakudo b2bc99: OUTPUT«0 + 3.14159265358979i␤»
colomon that's.... kind of weird
but it's right, too. 17:48
pmichaud rakudo: say (-1+0i).log * -1i
p6eval rakudo b2bc99: OUTPUT«3.14159265358979 + 0i␤»
pmichaud rakudo: say ((-1+0i).log * -1i).exp
p6eval rakudo b2bc99: OUTPUT«23.1406926327793 + 0i␤»
pmichaud nice
easy fix for rakudo :-) 17:49
colomon yeah, I'm just worried about the math of it.
17:49 JimmyZ left
colomon oh, wait, I see 17:49
if you're only in the reals, then -1.log is NaN 17:50
yeah, easy fix. shall I?
pmichaud right 17:51
yes, please do :)
colomon okay, should be able to get it in (with tests!) before the next talk
pmichaud that'd be great 17:52
colomon++ jlaire++ 17:53
colomon I suppose I need a colomon-- for getting the Rakudo version wrong. :)
pmichaud not at all -- we all learned something cool.
be sure to add a spectest for it, though. that'd be worth an extra ++
17:54 tokuhir__ joined
pmichaud lunchtime here 17:54
colomon pmichaud: if you're still there, any thought on where infix:<**> spectests should go? There are vanishing few of the things in the spec at the moment. 17:56
pmichaud S03-operators, probably 17:57
sorear S32-num/power.t
17:57 tokuhir__ left, tokuhirom left
pmichaud I'd probably do S03-operators/exponentiation.t for the basic <**> tests... complex tests could conceivably be in a separate spectest file 17:57
oh, yes, power.t works
colomon power.t looks appropriate. thanks! 17:58
pmichaud maybe rename power.t to exponentation.t. I'm thinking we may want some significant test file renames
sorear niecza: say 1.015 ** 200
p6eval niecza v6-214-gbe28ad1: OUTPUT«NaN␤»
colomon hmmm. 17:59
niecza: say 1.015
p6eval niecza v6-214-gbe28ad1: OUTPUT«203/200␤»
sorear niecza: say (1.015 ** 200).nude
p6eval niecza v6-214-gbe28ad1: OUTPUT«Unhandled exception: Unable to resolve method nude in class Num␤ at /tmp/WppG0Xzp7L line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1787 (CORE C849_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1788 (CORE module-CORE…
sorear ohright it overflows the Rat denominator
colomon sorear: it's going to be a Num, because... right
so why doesn't it get the correct Num? 18:00
Am I using the C# Rat constructor incorrectly?
sorear because 200 ** 200 > double.MaxValue
colomon ooooooo
sorear the division operator on line 397 sees Inf / Inf
colomon right, guess it would be.
rakudo: say 1.015 ** 200 18:01
p6eval rakudo b2bc99: OUTPUT«19.6430286394751␤»
colomon niecza: say 1.015.Num ** 200
p6eval niecza v6-214-gbe28ad1: OUTPUT«19.6430286394751␤»
pmichaud lunchtime, afk 18:03
dalek ast: 0f596fe | (Solomon Foster)++ | S32-num/power.t:
Add test for (-1) ** -i power.
18:09
kudo/nom: c461a7d | pmichaud++ | / (2 files):
Update NOMMAP (remove fail() from things-to-do).
kudo: 1fcb142 | (Solomon Foster)++ | src/core/Complex.pm:
Fix (-1) ** -i bug by switching to Complex log.
18:10
18:22 colomon left 18:24 colomon joined 18:25 buubot_backup left 18:39 Bzek left 18:46 buubot_backup joined, Mowah left 18:50 colomon left 18:51 spq2 joined 18:53 colomon joined
thou is glad he rebuilt niecza from fresh git before reporting a bug that's no longer there :-) 18:53
moritz nom: say fail("foo").WHAT 18:55
p6eval nom: OUTPUT«Null PMC access in invoke()␤current instr.: '_block3494' pc 219633 (src/gen/CORE.setting.pir:58412) (:2681)␤»
moritz nom: say fail("foo")
p6eval nom: OUTPUT«Null PMC access in invoke()␤current instr.: '_block3494' pc 219633 (src/gen/CORE.setting.pir:58412) (:2681)␤»
moritz that looks... LTA
colomon rakudo: say -1.sqrt 18:59
p6eval rakudo 1fcb14: OUTPUT«-1␤»
colomon rakudo: say (-1).sqrt
p6eval rakudo 1fcb14: OUTPUT«NaN␤»
19:02 huf left
colomon rakudo: say (-1).Complex.sqrt 19:03
p6eval rakudo 1fcb14: OUTPUT«0 + 1i␤»
pmichaud moritz: the problem is that fail() doesn't have a Routine to return from. I can fix that. 19:06
dalek ecza: 67cc261 | sorear++ | FETCH_URL:
Update bootstrap for v7
19:08 spq2 left
sorear v7 message sent 19:08
19:09 bakedb joined 19:12 _jaldhar_ joined 19:16 SAAMVME joined 19:26 dalek left 19:27 p6eval left
mberends pmichaud: I can add our sub chop in nom/src/core.Str.pm as nqp::p6box_s(pir::chopn__Ssi(nqp::unbox_s($a), 1)). Is that the right way, if so, should I commit that? 19:27
pmichaud looks good to me, and yes, you should commit 19:28
mberends ok :) plenty more LHF in that case
pmichaud wait... looks to me like Str already has chop
line 26
sorear niecza: say 2 + 2
[Coke] sorear: how to pronounce niecza? 19:29
mberends pmichaud: Str has method chop but not sub
pmichaud nom: say 'abc'.chop
oh, *sub*
the real way to do it will be with 'is export' on the method, I suspect. But I also think that's nyi
mberends tries 'is export' 19:30
pmichaud maybe write sub chop as sub chop($s) { $s.chop } then
sorear [Coke]: I need to learn IPA someday :/ I usually say like Hepburn niecha or niekka. It needs a new name 19:31
pmichaud and it might belong in Cool instead of Str
mberends yes, so that we can chop(421) and get 42 19:32
19:32 birdwindupbird joined
mberends 'is export' spews 'Could not find sub &DYNAMIC' 19:33
pmichaud yeah, nyi then.
I think it's already in the nommap
mberends will try the Cool way now 19:34
pmichaud hmm, it's not.
19:36 bakedb left 19:37 dalek joined, ChanServ sets mode: +v dalek, p6eval joined, ChanServ sets mode: +v p6eval 19:40 cheeseboy is now known as Josh|Jr
ggoebel sorear: a name suggestions... shebang 19:43
diakopter gigles
19:43 kanishka left
ggoebel shebang perl6 rolls off the tongue 19:44
but then... so do associations with William Hung and Shazam!
19:45 Tedd1 joined 19:59 Holy_Cow left, Josh|Jr is now known as Josh|Sr 20:00 Josh|Sr is now known as Lil|Josh, Lil|Josh is now known as cheeseboy 20:03 birdwindupbird left 20:04 daniel-s left, NineTailedDemonF joined 20:05 NineTailedDemonF left
jnthn is export is fine. Just not in the setting. 20:05
And if it does go in the setting, not until after DYNAMIC is defined. 20:06
20:06 jferrero joined, explorer__ joined
jnthn And only then when I fix stuff up so it can be found. 20:06
pmichaud oh, I can move DYNAMIC earlier in the setting then
jnthn Yeah, but it won't help just yet.
pmichaud that's fine, at least it'll be in place :)
jnthn BEGIN time stuff doesn't yet see the lexical scope. 20:07
20:07 lue joined, jferrero left, explorer__ left 20:08 bakedb joined
mberends I'm making subs for all existing Str methods now, without 'is export'. All unfudged tests pass. 20:08
pmichaud niiiice
jnthn Trouble with using "is export" in the setting is that something's gotta import them. Well, we could implement import too I guess :)
mberends only the optional params fail when omitted on substr, index, rindex 20:09
lichtkind who was the guy who suggested to write a git based wiki in perl 6? 20:10
thou: cheers 20:13
thou hi, lichtkind! o/ 20:14
lichtkind thou: any tuits for today?
thou lichtkind: a few, yes! 20:15
lichtkind: as long as nothing blows up at work :-)
lichtkind: i'm starting a crappy e-mail module in perl6, hoping to just learn a bit more practical stuff and get grounded a bit more. 20:16
ideally once i write a crappy one, i'll write a nice one.
20:16 bakedb left
lichtkind :) 20:17
20:17 envi left
thou lichtkind: btw, i saw a talk you did on "what we can learn from rebol" 20:17
lichtkind what about military disciplin and go down the index A ? :)
thou: yes whyt you want to know? 20:18
thou i didn't have the patience to listen to the end of it because the audio was so bad, but at least i got to see who you are :-)
lichtkind thou: im much better looking now :)
thou nothing in particular. just watching it while i did the dishes
that's a relief.
moritz pmichaud: are you sure that Nil assignment is a LHF? looks like it needs digging in src/binder/container.c or so... 20:19
pmichaud moritz: I think it's mainly a change to Rakudo's assignment opcode
jnthn LHF but C ;) 20:20
pmichaud basically, assigning Nil to a scalar should cause the Scalar to revert to its original defined type
my $x = Nil; # assigns Any to $x
jnthn That one is tricky. :)
pmichaud okay, maybe it's not lhf then :-)
jnthn Because we can't just grab the type constraint.
my Int $x = Nil # easy 20:21
pmichaud isn't my $x just the same as my Any $x ?
jnthn No, it's like my Mu $x = Any
pmichaud oh. I thought the spec folks wanted to change that.
i.e., all scalars default to Any 20:22
(in type, as well as initial value)
jnthn I thought that idea was successfully put down by the junctionists. :)
pmichaud hmmmm
jnthn I for one didn't like it.
pmichaud I thought we decided that storing a junction required declaring the variable as Mu
jnthn my $x = 1 | 2; # error
I remember it being discussed
I'm not sure it made it to a decision. 20:23
20:23 kaare_ left, spq2 joined
sorear pmichaud: it was discussed but I backed down 20:23
PerlJam But what does the spec say? :)
pmichaud I think the spec is thus far silent. although the spectests probably aren't.
jnthn No, I think we have a load of spectests taht expect my $x = 1 | 2; style things to work. 20:24
sorear pmichaud: allowing my $x = ANYTHING seems like useful behavior, and the spectests use it
pmichaud sorear: yes, I was the one that originally advocated it. :)
jnthn pmichaud: Anyway, we can have my $x = Nil lead to Any easy enough
sorear pmichaud: I'm dubious about 'my $x = Nil' though :/
jnthn pmichaud: It'd just be rather hard to make my Mu $x = Nil not put Any there. :) 20:25
lichtkind thou: so whats our plan for today? do a section of the tut or 2 chapters of a tablet?
jnthn But maybe that's not an issue. :)
pmichaud irclog.perlgeek.de/perl6/2011-05-16#i_3751984
thou lichtkind: let's do tablets
pmichaud the only thing more definitive than that statement would be if it showed up in the spec :-) 20:26
sometimes it's rare to get TimToady++ to say something so clearly. :)
jnthn Hmm. 20:27
pmichaud this also gets regular my declarations to be consistent with parameter declarations :-)
jnthn Yeah, but that's useful. It makes auto-threading work.
pmichaud sub xyz($a is rw) { $a = 2|3; }
jnthn my $a = 1 | 2 can't auto-thread. 20:28
Well, it *chould*. :)
"Guess what $a might be?" ;)
But the only thing making it Any there would do is make it die.
pmichaud which might be good, if you weren't expecting a Junction result. 20:29
jnthn Hm
Maybe.
pmichaud anyway, I was simply going on TimToady++'s comment of 05/16
20:30 masak joined
jnthn We tend to lean towards making stuff work in absence of type constraitns though. 20:30
masak o/, #perl6
phenny masak: 08:15Z <moritz> tell masak about xkcd.com/917/ when he appears
masak moritz: yes, I like :)
pmichaud I'm looking forward to attacking lots of RT tickets soon :)
("now works in nom, ticket closed")
jnthn :)
pmichaud anyway, if we just had a version of $x = Nil that reverted $x to its type object (regardless of special Mu/Any semantics), that'd be enough for what I wanted from the LHF 20:31
masak sorear: re NIH: while the problem could've been solved by me using someone else's blogging software, it could also have been solved by me scratching a few more itches and having the datetime be autogenerated. I haven't gotten to that point for various tuit-related reasons.
pmichaud I definitely don't want $x to end up as Nil -- that's the part that needs avoiding. 20:32
jnthn ok
sorear o/ masak
masak sorear: I'm sorry for the inconvenience that poisoning the planetperl6 feed causes. I still think/hope that having a Perl 6 blog in production is a net win.
20:32 huf joined
pmichaud one could equally blame the feed for not having robust date handling :) 20:32
masak well, it just has a good memory, is all. 20:33
PerlJam has always blamed the feed for that
mberends forgives masak
masak ;)
pmichaud hugs masak
masak smiles
I'm also glad I didn't typo in 2012 or something :P 20:34
PerlJam wait ... where are all of your posts on renaming or not renaming Perl 6?!?
masak those were tweets.
pmichaud: I nicked your line about 5.20 -- hope that's OK. I saw it in the backlog and thought it was really funny :) 20:35
pmichaud sure thing :-)
jnthn pulls latest nom to see how we're doing with tests :) 20:36
moritz we're doing quite fine on those we pass 20:37
t/spec/S06-advanced_subroutine_features/lexical-subs.rakudo .... Failed 1/10 subtests 20:38
jnthn oh, hm
I thought we passed all of that before
pmichaud No wait! Let's name it "Perl ڪⅸ" lolololol
moritz we did
masak :D
pmichaud I might have an unpushed commit for that fail 20:39
just a sec
masak pmichaud: sub foo { return { return 42 } }; my $a = foo(); say $a() # what should it do/print? 20:40
pmichaud masak: I have no idea :-)
jnthn nom: sub foo { return { return 42 } }; my $a = foo(); say $a()
p6eval nom: OUTPUT«invoke() not implemented in class 'Int'␤current instr.: '_block1002' pc 93 ((file unknown):77) (:1)␤»
masak pmichaud: I mean, if returns are lexical...
pmichaud nom: sub foo { return { return 42 } }; my $a = foo(); say $a.WHAT; 20:41
p6eval nom: OUTPUT«Block()␤»
pmichaud nom: sub foo { return { return 42 } }; my $a = foo(); $a()
p6eval nom: OUTPUT«invoke() not implemented in class 'Int'␤current instr.: '_block1002' pc 93 ((file unknown):24300965) (:1)␤»
jnthn nom: sub foo { return { say 'here'; return 42 } }; my $a = foo(); say $a() 20:42
p6eval nom: OUTPUT«here␤invoke() not implemented in class 'Int'␤current instr.: '_block1002' pc 93 ((file unknown):81813485) (:1)␤»
masak odd/strange. 20:43
jnthn Yeah
pmichaud if someone will tell me what it should do, I'm sure I can make it do that. :)
I know this discussion has come up many times.
jnthn Probably complain.
masak pmichaud: it should say "can't return from exhausted sub" or something like that.
jnthn "You already returned from this."
exhausted sub :D
masak you only get one return :)
and you have to be this tall to ride. 20:44
PerlJam "no deposit, no return" 20:46
[Coke] are nom commits showing up in the default github commit feed for raudo? 20:47
*rakudo?
lichtkind thou: allright let to basics
jnthn [Coke]: yes
thou ok! brb 20:48
20:48 thou left
[Coke] hurm. I haven't seen any big number of commits that would make me think you could close any RTs. Will look harder. 20:48
sorear pmichaud: is this an attempt to force a spec change?
[Coke]: lots of buggy code has been completely rewritten, so the old RTs are invalid 20:49
[Coke] ah.because I'm looking at "rakudo/master".
... I hate branch development sometimes. ;)
how long til nom becomes master?
dalek kudo/nom: b79c7b3 | (Martin Berends)++ | src/core/Cool.pm:
[src/core/Cool.pm] add sub equivalents of 11 Str methods
20:50
pmichaud 20:48 <sorear> pmichaud: is this an attempt to force a spec change?
...is _what_ an attempt to force a spec change?
masak this.
whatever it is, it's very subtle! :) 20:51
oh, speaking of spec change...
is it reasonable to expect private attrs from a role to not be visible from the class it's mixed into? I'd argue it is, and that it's saner/more useful than having it be visible. 20:52
jnthn
.oO( oh no, what did I say at dinner... :) )
masak :) 20:53
PerlJam masak: define "private attr"?
jnthn has $!x
masak PerlJam: that's really the only kind.
PerlJam: pecause a public attr is just a private attr + an accessor.
PerlJam oh, I guess so. You mentioned privacy and I immediately thought of "my $foo" as "private attr" 20:54
masak ah.
PerlJam but that's not an attr so ...
masak no, I consider that an ordinary lexical.
'has $x', however...
PerlJam in any case, what's your argument? :) 20:55
eiro masak, want to join perlude list ?
TimToady it's sort of an attribute of that lexical scope as a type, with each object being the closure clone
masak eiro: oh hai. yes, I might do that :)
jnthn Rakudo master and nom treat has $!x differently in roles.
In master, you can refer to $!x in the body of the class
In nom, you can't
eiro masak, give me your email (it's not a mailing list for now: just an alias) 20:56
20:56 thou joined
masak PerlJam: my argument is one of encapsulation. the class has no way of knowing the correct use of the attribute, and lots of ways of stepping on its toes. 20:56
we already have that behaviour for derived classes. so why not for composed classes as well? 20:57
jnthn Admittedly in nom it's more a result of the way things naturally fall out than a deliberate change of behavior from master.
masak but that's a sign of something, too :)
jnthn But I can kinda see why we'd want to keep it that way.
sorear pmichaud: &return used to throw a control exception which is caught by the nearest dynamically enclosing Routine 20:58
pmichaud sorear: that's the way it was implemented, but not the way it was specced, iiuc.
sorear pmichaud: in the interests of performance, you seem to have changed it to lexotically thow to the nearest lexically enclosing Routine frame
masak PerlJam: if the class shares the attribute, the concept of "attribute merging" has to be considered. will 'has $!x' merge will 'has Int $!x'? and so on. 20:59
jnthn sorear: I think the spec has had it as lexotic.
pmichaud sorear: no, what I did today has nothing to do with performance.
jnthn er, for a while
pmichaud (it may be more performant, but that wasn't my motivation for doing it.)
jnthn sorear: sub foo { @a.map: { ... return $x ... } } # should return from foo, not from map
sorear I see now 21:00
pmichaud so no, I'm not trying to force a spec change, I'm trying to (finally) conform to the spec.
PerlJam masak: also, I guess from the flip side ... how is the class to know a role will be composed into it? The only useful place to use the private attr would be in the role itself.
sorear (ugh)
masak PerlJam: yes. the role should encapsulate the use of the attr completely, that's my point.
PerlJam masak: makes sense to me even when I'm looking for a "fatal flaw" :) 21:01
masak it's free to define/compose a public accessor, of course.
sorear jnthn: how does this fall out from the definitions of roles? 21:02
jnthn: I think I need your help understanding Perl 6 roles...
masak PerlJam: well, as jnthn pointed out, we run into interesting issues when we have a parametric role with such a private attribute and compose several specializations of it into the same class.
jnthn sorear: It's not really the definition of roles here.
sorear: It's simple pre-declaration semantics in this case.
sorear: Roles aren't composed until the closing } of the class
sorear: Until then we don't know what attributes we'll have 21:03
And at the moment nom checks for attribute declaration just as it'd check for lexical declaration, apart from it consults the meta-object rather than the lexpad.
masak PerlJam: in that case it might actually be easier to have the attribute be "copied" over to the class, instead of kept around in several specialized "versions" with each role.
jnthn master got away with it working because it didn't compile-time check attrs names.
PerlJam aye 21:04
jnthn masak: We *do* copy. Role composition is denormalization.
masak: The problem is that there's only want $!x slot.
masak PerlJam: because in the end, an attribute is a storage slot in some object, even a role attribute. so the "same" attribute from several specializations of a parameterized role would have to translate to different slot.
jnthn: yes :)
jnthn masak: That's fine apart from we need to wrok out how to differentiate those slots. 21:05
masak s:2nd/slot/slots/
jnthn masak: I can probably think of something.
masak ++jnthn
21:05 Transformer joined
masak Transformer: hi! 21:05
jnthn oh, yay, my hotel tomorrow is easy to find. :) 21:06
21:06 spq2 left
masak jnthn: does it have a big sign saying "Close to Forbidden Hotel"? :P 21:07
21:07 pmurias joined, Transformer left
jnthn :P 21:07
masak or maybe "Forbidden View"...
pmurias sorear: re p6sharp, you'll just call the jvm backen jp6 ;) 21:08
phenny pmurias: 29 May 15:07Z <tadzik> tell pmurias no, haven't yet
masak (jnthn's hotel is close to the Forbidden City)
jnthn masak: No, it's easy to find from Tianeman Sq or the Forbidden City (well, you can see one from the other..)
masak aye.
jnthn: Tian an men
jnthn ooh, I recognize two of the Chinese chars in Tiannemen :)
oh, it's an
dalek kudo/nom: 0594102 | (Martin Berends)++ | t/spectest.data:
[t/spectest.data] uncomment tests for chomp chop and flip
jnthn Yes, I recognize Tian and men :)
masak yes. 安 21:09
jnthn an =... peace?
pmichaud afk for a bit
masak means "stillness" or "to install" :)
jnthn ah
Heavenly Stillness Gate?
TimToady well, I call that one "easy"
masak I guess peace is a better translation.
jnthn :)
masak the picture is of a woman under a roof.
TimToady I got tired of typing "woman", so it's "fem" :) 21:10
jnthn reads masak and TimToady's comments one after the other and chuckles
masak: I see that now. Gah, I'm rusty. :)
masak TimToady: I hope some day your character database gets published in some form. it sounds very nice.
jnthn really should spend his flight playing with That Stroke Order iPhone App. :)
masak jnthn: stroke order is a finite problem. it's remembering the damn characters that's the real challenge. :/ 21:11
jnthn masak: Well, it actually has a mode for learning those too
masak: It's quite flexible. :)
masak more specifically, learning (char, sound, meaning) triplets. 21:12
jnthn huh, I have to *speak* too? :P
masak and then also the character's occurrance in words.
jnthn Sounds like hard work. :)
masak it's a full-time job.
jnthn I know what "beef" and "beer" look like :)
21:12 bluescreen10 left
TimToady I also got tired of typing "person", so that one's just "guy" 21:14
(in the Californian non-gendered sense)
21:15 rindolf joined
rindolf Hi all. 21:15
thou hello, rindolf
21:15 spq2 joined
rindolf thou: hi. 21:15
thou: what's up?
thou no mucho
TimToady 你好
masak yo, rindolf.
rindolf Did work on Rakudo resume?
masak: hi.
masak it's ongoing, not just on the master branch.
rindolf masak: s/not just/just not/? 21:16
masak oh. yes.
well, there are commits on the master branch too, but the great majority are on the nom branch.
nom will close a massive amount of RT tickets :) 21:17
TimToady automatically, since nom is an AI project
[Coke] I wonder how many languages beef/beer are so close in other than english.
21:17 leprevost left
rindolf masak: nice. 21:18
TimToady they're pretty close in American too
and Canadian, unless you consider them Americans
masak [Coke]: one day I'll have a knowledge agent that I can just turn to and ask that question, and it will answer immediately with an estimate :)
TimToady the answer will, of course, be wildly inaccurate, but no one will care 21:19
21:19 cognominal_ joined
[Coke] needs to make his bot smart enough to join IRC and not just the weird one-off MOO server from his college. 21:19
rindolf In Hebrew it's "Birah" and "Baqar"
TimToady knowledge agents will also make up 92.3% of statistics on the spot :)
rindolf Well, Beef is more like "Basar Baqar"
sorear Birah sounds like a loan word...
TimToady agents down't actually care about you as long as they get paid 21:20
colomon TimToady: be careful not to tell the Canadians they are American. ;)
sorear masak: what if it becomes sentient and lazy?
TimToady sentient Canadians? 21:21
the mind boggles
[Coke] I doubt that.
masak sorear: "sentient" is a sliding grayscale thing. "lazy" sounds like an advantage; I don't want it to do megawatts of work just for a silly question :) 21:22
sorear ...megawatts?
TimToady that's why you just want it to make up a plausible answer
masak er. megajoules.
21:22 cognominal left
masak TimToady: I did say "estimate" :) 21:22
TimToady "Please place your knowledge agent out in the sun every day to keep your joule balance in the green." 21:23
"And never ask it hard questions." 21:24
masak awww
living in the future sucks.
diakopter also the past
masak the Singularity is riddled with electrical outages.
TimToady come to think of it, living in the present also presents difficulties 21:25
masak only the fantasy world has some claim to perfection.
TimToady KA: I know that I will know the answer to that someday, but I cannot predict on which day I will know it.
masak (yeah, that's a mood, not a tense.)
PerlJam Those Long Now folks are building their 10,000 year clock in Texas somewhere. 21:26
TimToady KA: especially if you forget to put me out in the sun.
PerlJam wonders what "present" and "past" and "future" really mean
masak TimToady: my futuristic KA isn't a physical object. it just hangs around in the Cloud all day. Google powers it.
PerlJam: only physics can make you uncertain about such a thing... :) 21:27
PerlJam masak: so then it's a matter of powering your interface
masak I can put my interface out in the sun.
diakopter that's what she said
masak *lol*
PerlJam masak: it runs off of your body-heat or possibly even your electrochemical interactions 21:28
masak: and that's *really* what she said :)
diakopter cheap humor is gassy
jnthn *lol*
TimToady cheese humor is gappy, esp if swiss 21:29
diakopter I want to be powered by the cloud. cloud 9, specifically. 21:31
diakopter idly wonders the origin of that phrase
TimToady is that a swiss cloud?
masak Claud, Nein!
PerlJam Something like joelonsoftware.com/items/2011/06/27.html but for Perl would be a nice addition to a YAPC I think 21:32
masak swiss clouds are holy, too.
eiro what's the world for "not lazy" ?
diakopter finds en.wikipedia.org/wiki/Cloud_Nine
eiro the word
TimToady in p6 context, eager
PerlJam "great preseneters from the community who will write code and compile code and explain it while you watch"
TimToady in cultural context, industrious 21:33
eiro TimToady, so we call it eager in Perlude too
thanks
masak we're eager to help :)
TimToady mostly eager
21:34 BooK joined
masak eager, id, and super-eager. 21:34
diakopter igor,
oops
masak yes, massster?
TimToady just so you don't support shared libidos 21:35
masak what's that, a C library?
TimToady except with a .so
thou masak, :-) # masssster
masak apt-get install libido-dev
diakopter bets it exists 21:36
masak thou: the whole joke is: "Igor, you IDIOT!" -- "Yes, masssster?"
jlaire aur/klibido exists 21:40
"kLibido - the KDE3 Linux Binadires Downloader"
Binaries*
apparently, there's an app for that 21:41
masak I can have libido, but I have to run KDE? figures.
21:42 Psyche^ joined 21:44 stephanepayrard_ joined 21:45 Patterner left, Psyche^ is now known as Patterner
mberends that's because Gnomes need no libido, being made of cement and all. 21:46
masak :)
21:47 cognominal_ left
pmichaud masak: 21:49
> sub foo { return { return 42 } }; my $a = foo(); say $a();
Attempt to return from exhausted sub
masak pmichaud++ 21:51
every time I see that error message, I will envision a really tired submarine :)
21:52 daniel-s joined
pmichaud > sub bar($x) { $x() }; sub foo() { my $x = -> { return 42 }; say 'in foo'; bar($x); say 'still in foo'; }; say foo(); 21:52
in foo
42
or, more clearly: 21:53
> sub bar($x) { $x(); 'oops' }; sub foo() { my $x = -> { return 42 }; say 'in foo'; bar($x); say 'still in foo'; }; say foo();
in foo
42
invoking $x forces a return from foo() 21:54
masak how continuation-y.
but totally per spec.
arnsholt_ Indeed. The possibilities are mind-bending 21:55
21:55 arnsholt_ is now known as arnsholt
masak arnsholt: yes, up to exhausting the submarines. routines. 21:55
jlaire is dalek another reference to drwho? 21:56
tardis is an awesome name
masak thanks. hope to make it a useful tool as well :) 21:57
dalek p: 342cd53 | pmichaud++ | tools/build/PARROT_REVISION:
Bump PARROT_REVISION to get PAST::Node signatures.
21:57 nsh left 21:59 nsh joined 22:03 huf left
jlaire hm, there's probably a nice replacement for 'niecza' somewhere in drwho 22:06
22:07 lichtkind left
jlaire goes digging 22:08
22:10 spq2 left
dalek kudo/nom: dc16a4f | pmichaud++ | / (3 files):
Refactor return handling to be in a single place (DRY). Handle the case where someone tries to return from an already-exited subroutine.
22:10
kudo/nom: 3efe8f8 | pmichaud++ | NOMMAP.markdown:
NOMMAP update.
sorear jlaire: new here?
jlaire sorear: well, I've been lurking for a few years 22:11
(changed nick at some point)
haven't contributed to anything yet
22:12 Chillance left, whiteknight joined
masak never too late to start :) 22:13
jlaire :))
masak blog post! strangelyconsistent.org/blog/more-planning
22:13 whiteknight left 22:14 whiteknight joined, Chillance joined
dalek kudo/nom: 872a536 | jonathan++ | NOMMAP.markdown:
Comment on a couple of nommap items.
22:15
[Coke] asks timtoady if he's played with minecraft yet.
22:15 lichtkind joined
pmichaud loliblogged: pmthium.com/2011/06/27/lots-of-raku...spectests/ 22:18
felher masak: yeah :) *longing for the adventure game in the not too distant future* 22:19
masak \o/
tadzik nom progress makes me think I want to move gsoc work to nom
1 exam remaining!
pmichaud tadzik: we still don't have regexes in nom yet, though. But I suspect that'll happen this week.
tadzik pmichaud: the parser has regexes, that's what I need as for now 22:21
jnthn pmichaud: whoa whoa we did that in the last week?! :)
tadzik time flies
masak lie can arrow.
jlaire fruit files / like a banana
flies 22:22
22:24 jevin left
felher rosettacode.org/wiki/Align_columns#Perl_6 , the second way. As i don't know Perl6 all that well, critics are highly welcome. 22:24
jnthn nom: proto rbd(|$) { * }; multi rbd(Positional $p) { say "ok positional" }; multi rbd(Associative $a) { say "ok associative" }; rbd(my @a); rbd(my %h); 22:25
p6eval nom: OUTPUT«No type check cache and no type_check method in meta-object␤current instr.: 'rbd' pc 463 ((file unknown):30842368) (:1)␤»
22:26 stepnem left, jevin joined
tadzik Files=53, Tests=478, 69 wallclock secs ( 0.36 usr 0.14 sys + 64.72 cusr 3.92 csys = 69.14 CPU) 22:27
4 TODO tests passed
jnthn tadzik: I saw some extras pass too
22:27 Vlavv_ left
pmichaud tadzik: then yes, I'd say it's okay to be targeting nom. 22:30
jnthn: yes, in the last week. I basically looked at the nom log entries since Jun 20. :)
tadzik jnthn: does nom give any more proper way for "build it in compile time, expose it in runtime"? 22:31
dalek kudo/nom: 4fc90f1 | jonathan++ | src/Perl6/Metamodel/ParametricRoleHOW.pm:
Fix role-based dispatch up a bit more. Should be able to distinguish by Positional and Associative now.
jnthn tadzik: It's still more work that it will be with full-blown serialization. 22:32
tadzik: But it's far easier than in master.
mberends do remember that the 478 tests include 47 skips and 14 todos, there are now 417 passes (from tools/test_summary.pl)
22:33 stepnem joined
lichtkind thou: back? 22:33
thou yes
so ... basics, huh?
jnthn pmichaud: That patch hopefully lets you do slicing.
pmichaud jnthn: testing 22:34
jnthn pmichaud: I didn't make sigils map to roles yet 22:35
pmichaud no problem, I'm just testing the basic type checking on $vars
22:36 PacoLinux left
jnthn pmichaud: The one I pasted above that failed works. 22:37
nom: proto rbd(|$) { * }; multi rbd(Positional $p) { say "ok positional" }; multi rbd(Associative $a) { say "ok associative" }; rbd(my @a); rbd(my %h);
p6eval nom: OUTPUT«No type check cache and no type_check method in meta-object␤current instr.: 'rbd' pc 463 ((file unknown):10497536) (:1)␤»
jnthn ENOTYET :)
pmichaud: ^ that one works locally (and with the patch)
pmichaud it's not working here
nopaste coming
oh, wait
gist.github.com/1050030 22:38
jnthn oh 22:39
er
:/
Yeah, roles are "magically" meant to be narrower than..Mu? Any?
pmichaud Any in this case, yes?
22:40 mj41 left
jnthn rakudo: role Foo { }; say Foo ~~ Mu; say Foo ~~ Any; 22:40
p6eval rakudo 1fcb14: OUTPUT«Bool::True␤Bool::True␤»
jnthn rakudo: role Foo { }; say Foo ~~ Cool
p6eval rakudo 1fcb14: OUTPUT«Bool::True␤»
jnthn rakudo: role Foo { }; say Foo ~~ Int
p6eval rakudo 1fcb14: OUTPUT«Bool::False␤»
jnthn hm
22:40 eternaleye left
jnthn I wonder why we made it narrower than Cool. 22:41
22:41 eternaleye joined
lichtkind thou: no www.perlfoundation.org/perl6/index...._io_tablet 22:42
thou: just did a few lines
jnthn pmichaud: Will make it narrower than Any for now 22:43
thou lichtkind: OK
masak 'night, #perl6
pmichaud later, masak
22:43 masak left
tadzik jnthn: how far are we from full-blown serialization? 22:45
I'll probably need to nag you a bit in the nearish time :)
jnthn tadzik: A while. It's post-nom, and probably not top of the post-nom list. 22:46
tadzik: That is, don't wait for it. :) 22:47
tadzik: What sort of things do you need to assemble?
dalek kudo/nom: eda6101 | jonathan++ | src/Perl6/Metamodel/ParametricRoleHOW.pm:
is_composed in ParametricRoleHOW so we can stub a role.
22:48
kudo/nom: 144660f | jonathan++ | src/core/traits.pm:
Stub Positional/Associative/Callable in preparation for making sigils map to roles. Need to do this really early.
22:48 jdhore left
lichtkind thou: did you correct something? 22:49
thou lichtkind: nope
lichtkind: stuck w/ some work stuff at the moment
... customers .... ;-) 22:50
pmichaud jnthn: I still get the same result... ? 22:51
gist.github.com/1050054 22:52
lichtkind thou: its much better now i think
tadzik jnthn: build a POD AST and expose it to runtime
jnthn pmichaud: Above patches weren't The Fix You're Looking For :) 22:54
pmichaud oh.
pmichaud moves along. :)
jnthn tadzik: What do the AST nodes look like, ooc? 22:59
thou lichtkind: what's better? 23:01
lichtkind: afaik i didn't touch it :-)
jnthn pmichaud: Patch coming up, I think. Just spectesting. 23:03
pmichaud: My brane exploded a little and I had to go draw myself a diagram to make it happy again :)
tadzik jnthn: github.com/tadzik/gsocmess/blob/ma...Actions.pm at the top 23:04
jnthn (First effort caused the multi-dispatcher to tell me I'd got circles in my DAG. :-))
tadzik: Oh, I think we can handle that fine. 23:05
23:05 daniel-s left
tadzik jnthn: care to elaborate? I'm curious :) 23:06
lichtkind thou: no i rewrote it its now much more and much better
thou aaah, OK 23:07
pmichaud jnthn: (draw diagram) yeah, I do that a fair bit also :)
jnthn :)
thou lichtkind: i'll hope to get to it once i get off the IM with this customer
dalek kudo/nom: 0035ddb | jonathan++ | / (5 files):
Roles should be narrower than Cool/Any/Mu.
jnthn Yeah, you know you're in trouble when you're drawing a DAG and your pen does a cycle :)
thou lichtkind: looking forward to learning some more, as I help w/ some editing :-)!
jnthn tadzik: SymbolTable.pm ;)
tadzik: But basically we do the kinda thing you want to for signatures and parameters and code objects and so on. 23:08
pmichaud: That patch should do it.
pmichaud: Your example, and another more complex one I have that does associative into the mix also, should work. 23:09
er, *do* work :)
colomon wooo, nom passes spectest! :)
jnthn colomon: subset of ;) But yes, it's nice that we're running tests again. :)
tadzik jnthn: I see 23:10
colomon jnthn: oh, I just thought it was 100x faster than master. ;)
tadzik that's very nice :)
jnthn tadzik: I can help you out some with those.
colomon jnthn: passing what spectests are in place is great from the perspective of someone looking to hack on it.
jnthn colomon: Yes, it's an important mark to have reached.
tadzik: Catch me when you are going to start hacking on it. 23:11
tadzik jnthn: I'm looking at how rakudo uses the SymbolTable. I'll probably ask you about two days from now. Technically, my exam is tomorrow
jnthn tadzik: Though first step is get those classes into CORE.setting.
tadzik but that's because it's 1 AM already :)
jnthn Though as lexical ones.
tadzik so that doesn't count
jnthn ;)
OK
tadzik jnthn: I see
jnthn We may have some fun with timezones :)
tadzik $*ST.install_lexical_symbol 23:12
woooo :)
jnthn
.oO( I guess if I'm this night-owlish in Beijing I'll just look like a normal European )
pmichaud: Any other things you want me to especially look at? 23:13
pmichaud checking 23:14
23:14 jdhore joined
tadzik oh, and add_phaser(). So cool 23:14
jnthn++
colomon afk # yapc noms, I hope 23:15
lichtkind does promt outputs like say or like print?
jnthn pmichaud: May have a little time tomorrow in the day also
pmichaud jnthn: okay. I'm not seeing anything atm other than things already identified.
jnthn pmichaud: OK
tadzik sleepytime &
jnthn I'm just looking at sigil based dispatch. 23:16
tadzik: night o/
pmichaud having positional work should open up a lot of stuff (and spectests)
jnthn pmichaud: Other priorities for me are $_/$!/$/ working
tadzik 'night and thank you!
jnthn pmichaud: (since they're "magically" handled...)
23:16 stepnem left
jnthn That'll open up a bunch more tests. 23:16
pmichaud I've been thinking about metaops a bit more
23:17 pmurias left
pmichaud instead of installing into the package, we might be able to just generate closures at runtime and cache them 23:17
23:17 donri left
jnthn hm 23:17
Could work
pmichaud or even at compile time, really. 23:18
jnthn Though why not...yes, that :)
It's FAR easier to cache something at compile time, in a way.
pmichaud right
jnthn Just shove 'er in SC. :)
Like you did for whatevercodes :)
pmichaud well, I'm not entirely familiar with how "shove 'er in SC" is done :)
but I can follow the whatever_curry template, yes.
jnthn pmichaud: $*ST.create_code(... 23:19
er, create_code_object ;)
pmichaud well, it's the caching that is a bit trickier there :)
with whatever_curry, we don't cache.
jnthn What do you mean by cache exactly?
pmichaud do we want a separate closure for every metaop occurrence?
i.e., if someone does += four times, should that be four closures?
jnthn oh, I see what you mean. 23:20
Nah
Keep a hash.
Like we do today
But put either the code objects in it, or the SC ref PAST
BUT it needs care.
pmichaud right
I'm not sure where the hash should go :)
jnthn Since we need to know when we can't use the cache because somebody did a language tweak.
pmichaud actually, I'm not too worried about that case. 23:21
jnthn Oh
Then :my %*METAOPCACHE; in comp_unit :)
lichtkind thou: im done for today please have a look
thou lichtkind: thanks, i will
lichtkind thanks :) 23:22
pmichaud and it's okay for the SC ref PAST to appear multiple times in the past tree?
23:22 bluescreen10 joined
thou lichtkind: my goal: 1) all of the IO tablet; 2) the rest of the punctuation in Index. :-) 23:22
pmichaud (I'm thinking that's why it exists, yes )
jnthn pmichaud: Of course, that's...right :)
pmichaud perfect
I'll likely give that a shot in the next day or so.
23:22 rindolf left
jnthn pmichaud: If you're worried about multiple PAST node occurences, just keep the code object in the hash and $*ST.get_object_sc_ref_past($code_object) 23:23
pmichaud okay
jnthn It's actually only a single PAST::Op that you get there, iirc.
(e.g. what that method produces) 23:24
pmichaud I'll give it a shot with op=
jnthn get_object_sc_ref_past is basically your way of getting hold of anything that's in the SC.
But at the moment it must be an SC root node.
Code objects, signatures, parameters and constants always will be. 23:25
As will type objects. 23:26
pmichaud Positional seems to work for me now.
jnthn++
I can do slices :)
23:27 stepnem joined
jnthn \o/ 23:27
pmichaud time for dinner here 23:29
bbiaw
[Coke] pmichaud++ 23:30
jnthn++
dalek kudo/nom: f670236 | jonathan++ | src/Perl6/Actions.pm:
Dispatch by sigil.
23:36
kudo/nom: d6c905b | jonathan++ | / (2 files):
Fix &infix:<cmp> proto.
23:41
pmichaud we'll want to fix the protos for the other operators, too :) 23:42
jnthn pmichaud: Some 23:43
pmichaud: Thing is...
pmichaud: infix:<+> has 0, 1 and 2 arity
pmichaud: Maybe it should be infix:<+>($?, $?)
So .arity is 0 but .count is 2
pmichaud that works for me
jnthn The proto sig has to admit all that the multi one would. 23:44
*ones
Anyway, that patch shows the way. :)
pmichaud: In a routine, $_, $! and $/ default to empty rw scalars, yes? 23:45
pmichaud: And in a nested block it's fresh scalars, with the outer's value assigned, rather than a binding? 23:46
pmichaud I think it's a binding
jnthn Ah
OK, that's even easier
pmichaud it's a is rw binding
jnthn Well, it doesn't make much difference. :)
(as in, to implementation difficulty)
:)
pmichaud I'm not sure about $! and $/, but for $_ it's certainly a binding 23:47
jnthn ah
pmichaud we expect modifications of $_ in a nested block to affect $_ in the outer
jnthn Yeah
pmichaud I'm not sure what will happen with $/, I need to review that in light of regex matches 23:48
jnthn I'll just Do Something for now and we can diddle it later. 23:49
pmichaud yes, that's what I was trying to say (but not very well)
a bit distracted on this end
jnthn np
pmichaud okay, we're really heading off to dinner now. 23:53
sorear jnthn: $/ should default to something rw 23:56
jnthn: $/ = ... is syntactically illegal, it makes little sense to have $/ be a rw container
matches should probably bind it
jnthn std: $/ = 42
p6eval std 37a0cdd: OUTPUT«===SORRY!===␤Unsupported use of $/ variable as input record separator; in Perl 6 please use the filehandle's :irs attribute at /tmp/jdg6zWQNPz line 1:␤------> $/⏏ = 42␤Parse failed␤FAILED 00:01 118m␤» 23:57
jnthn oh :)
sorear *should default to something ro 23:58