pugscode.org/ planetsix.perl.org/ feather.perl6.nl/syn/ perlcabal.org/svn/pugs/log github.com/rakudo/rakudo | nopaste: sial.org/pbot/perl6 | evalbot: "perl6: say 3;" | irclog: irc.pugscode.org/ | Rakudo.org www.perlfoundation.org/perl6/index.cgi?smop perl.net.au/wiki/Elf |~300 days 'til Xmas
Set by mncharity1 on 25 February 2009.
00:08 aindilis joined 00:33 Maghnus left, Ariens_Hyperion left
pugs_svn r25566 | putter++ | [elfparse] Shrunk remains_of_Regexp_ModuleA.pm - RAST_children p6ified. 00:40
00:50 wayland_ joined 00:54 DemoFreak left
wayland_ frew: The word itself is older than I am, but the current meaning may've been devised by the Perl community 01:00
pugs_svn r25567 | putter++ | [elfparse] Fix pkg-related fields in rx ir nodes. 01:09
01:12 dukeleto joined 01:16 alc joined 01:19 justatheory left 01:23 zaidaus joined
dalek kudo: 2cf2dfe | pmichaud++ | README:
Update README with latest news on building Rakudo.
01:38
pugs_svn r25568 | putter++ | [elfparse] Fixed-up rx ir fields (moving non-field fields to $.notes). 01:46
dalek kudo: e6b7133 | pmichaud++ | (3 files):
Update some references to Parrot, Perl, and/or Rakudo.
01:47 ispy_ joined 01:51 hercynium joined 01:54 eternaleye joined
pugs_svn r25569 | wayland++ | S32: Mentioned IPv6 01:56
r25569 | wayland++ | S28: bugfixes
02:03 justatheory joined
pugs_svn r25570 | lwall++ | [S02] more package and variable name cleanups 02:05
02:10 ispy_ left 02:13 ispy_ joined 02:18 alester joined 02:25 meppl left
pugs_svn r25571 | putter++ | [elfparse] Switch rx ir field access from hash to real accessors. ~3% slowdown on test suite. Also cosmetic s/self./$./g, unbreak IRx1_FromAST2's RxAlias.newp calls, and another field fix (there's no created_in_pkg in RxARegex). 02:34
02:41 dukeleto left 02:45 hercynium left
skids How do you tack more info onto an RT bug? e.g. what's the per-bug email address format? oh and you need that bitcard account even to do that, right? 02:46
pugs_svn r25572 | putter++ | [elfparse] remains_of_Regexp_ModuleA.pm: Drop unicode character classes - they've already been moved to rx_prelude. 02:47
03:01 justatheory left 03:06 Whiteknight left
pmichaud skids: I think sending email to rakudobug with the rt # in the subject will appened a comment. 03:09
03:09 felipe left
pmichaud as mentioned on #parrot a few minutes ago -- rakudo release will likely be tomorrow; my cold is getting steadily worse. 03:10
I'm hoping a night of rest will nip it.
with that, good night all :-)
skids Get well soon!
pmichaud += liquids 03:12
03:27 ispy_ left
alester I'm getting me yucky build error 03:28
03:28 jimmy_ joined
alester sial.org/pbot/35257 03:29
suggestions?
03:33 justatheory joined
pugs_svn r25573 | wayland++ | Numeric.pod: Added some notes on what needs to be documented here 03:43
r25573 | wayland++ | S16 and Exception.pod: Did some work on turning signals into exceptions. I probably need
r25573 | wayland++ | to pre-emptively ask for forgiveness for just making stuff up here :).
03:47 wayland_ left
skids hrm well I didn't update parrot at all, but I don't get that error. 03:48
03:48 alester left 03:53 felipe joined 04:12 Caelum_ joined, aindilis` joined, Caelum left, Caelum joined 04:14 Caelum left, Caelum_ is now known as Caelum 04:15 Limbic_Region left 04:26 aindilis left 04:48 jimmy_ left 05:01 PZt left 05:15 justatheory left 05:17 tarbo2 left 05:18 tarbo2 joined 05:24 baest left, baest_ joined 05:30 dukeleto joined 05:37 masak joined 05:44 justatheory joined 05:47 justatheory left 05:48 dukeleto left 05:54 wayland76 joined
masak morning, all. 05:59
seems I didn't miss the Rakudo release like I thought I would. 06:00
wayland76 Morning 06:01
(although it's 5pm here :) )
carpftb_ its always happy hour in frankston, isn't it? 06:02
wayland76 Yeah. Lucky I live in Drysdale :)
carpftb_ hah. lucky I'm 15000km from "home" (which isn't Frankston, I'm a clueless banana bender) 06:03
06:04 Tene joined
masak 7am here. 06:08
(but in Sweden, we don't really use 'am' and 'pm', and we tend to glare annoyedly at the parts of the global world that assume so.) 06:09
wayland76 What do you use? 24-hour time? 06:17
06:17 alc left
masak yup. 06:17
g'ah! some day I'll track down the person who wrote the test suite to Mac::Carbon and tell him, real carefully, about the downsides of producing blood-curdling screams in someone's speakers without asking when running the test suite... :/
wayland76 I wouldn't mind that, but no-one here uses it, so I'd really confuse everyone
masak wayland76: just as am/pm confuses us.
wayland76 Well, at least he didn't cat /vmlinuz > /dev/audio 06:18
masak: Agreed. Like I said, I'd like it, but still have trouble accustoming myself to it
06:19 Tene_ left
wayland76 Is there any documentation on writing tests in Perl 6? 06:19
masak wayland76: no. but what do you want to know? :) 06:20
wayland76 Where to get info to write S24 :) 06:21
masak I recommend reading through Rakudo's Test.pm.
wayland76 Different question
Ok
masak if that still leaves you unsatisfied, read through November's excellent test suite. :)
wayland76 That implements all the stuff required for writing tests?
masak wayland76: aye.
all of it.
(in fact, you don't need a module for that. you just need to adhere to the TAP.) 06:22
wayland76 Good. Are the spectests written for that?
Ok, what's TAP?
masak wayland76: yes.
"Test Anything Protocol"
IIRC, it's wider than Perl.
06:24 jimmy_ joined
wayland76 Wikipedia doesn't say it is, but it does say Perl 5 has been using it since '87 06:24
jimmy_ morning,masak, where is the release news?
wayland76 no release yet, I think
masak wayland76: furthermore, if you would like to know what I'm proud of having created (or stolen, rather) in terms of test modules, check out this blog post: use.perl.org/~masak/journal/37976
wayland76 pmichaud was feeling sick
masak jimmy_: what wayland76 said. 06:25
but probably today.
wayland76 see backlog for nuances :)
(that was for jimmy_)
Great. I'll keep that information for S24 :) 06:28
(When I get around to it)
jimmy_ I saw some merge info on github/rakudo, but I could'nt see what had been changed. but can see the merging changes about parrot on trac.parrot.org
IIRC, there will be a release for rakudo?
masak aye. 06:29
likely today.
wayland76 I think jimmy_ is asking whether there will be a special *parrot* release for rakudo 06:30
jimmy_ no
wayland76 ok :) I'm wrong :)
Basically, pmichaud wants to do a release tomorrow, but it depends on his health 06:31
jimmy_ on github, i saw some commits like 'moritz merged branch 'move_split_to_any_str', how can I see what had been changed?
masak oh. tomorrow. yes. 06:32
but that's tomorrow USA time, right?
so, today. :)
wayland76 I think so. For you, it's probably today :)
masak jimmy_: I don't know. perhaps ask on #github?
jimmy_ thanks 06:34
Will be it a development release about rakudo, like parrot 0.9.1? 06:35
masak jimmy_: what do you mean? 06:36
jimmy_ ah
masak hm, I'm not sure Rakudo distinguished "development releases" from other kinds of releases. 06:37
jimmy_ Maybe I should say 'Will be it a development release about rakudo, like perl6-alpha1?'? 06:38
06:38 zaidaus left
masak jimmy_: I'm having trouble assigning a meaning to what you're saying. it's not because of any failure to communicate on your part, it's just that I don't really know what being 'like perl6-alpha1' would mean. :) 06:40
jimmy_: I'll go with "no, it won't be like perl6-alpha1".
jimmy_: but it'll still be really, really cool, like most Rakudo releases (bundled with Parrot) so far. 06:41
jimmy_ It said, there was no plain for perl6 alpha release. and now I get a rakudo release news, and then I am excited. :) 06:43
Matt-W I don't think we could call it a perl 6 alpha yet
masak I don't think greek letters need be used in versions at all. 06:44
it's silly.
jimmy_ masak: aye. maybe beta or rc and so on. 06:45
masak jimmy_: beta is a greek letter too.
Matt-W nonetheless, whatever we would call it, alpha implies a certain level of completion
wayland76 and RC is a brand of cola :)
speaking of which, time for me to eat :) 06:46
masak I don't know if you've followed the discussions on the parrot list about versions.
there's something to be said for pure increasing numbers.
no RC, no letters, no silliness.
Matt-W yeah
jimmy_ yes, I used alpha or beta to implies a certain level of completion 06:47
Matt-W there are many strategies to take
masak jimmy_: I see.
jimmy_: 7000 tests passing!
jimmy_ s/implies/imply/
masak jimmy_: that's the level of completion.
I believe that someone estimated the total number of tests needed to about 16k. so we're slightly under halfway there. :) 06:48
Matt-W Woot
06:48 ashizawa joined
Matt-W discovers his problems with rules matching last night were caused by invoking them worng, not by some obscure rules bug 06:49
masak Matt-W: by the way, I believe the bug I worked around for you might be fixed already.
Matt-W masak: there's a commit that might have done it, yes 06:50
I haven't tested it yet
masak ok.
Matt-W jnthn++ did something there though
jimmy_ masak: I have a doubt about articles at use.perl.org/~masak/.
masak jimmy_: let's hear it.
jimmy_ most articles, it said '131 years ago today' or '******* ago today', How did you find these histories about today? 06:52
masak jimmy_: an excellent question.
jimmy_: I went to the Wikipedia article for that date.
jimmy_: and I basically picked the event I found the most interesting.
as I said in the concluding post aftoer the month was done, the things I found were fairly western-biased. next year, I plan to find interesting events outside the western world. 06:54
Matt-W masak: just tested it, it is indeed fixed 06:55
masak jnthn++ 06:56
06:56 szabgab joined
Matt-W so that's tidied up my tests 06:56
also I now pass 8 :)
jimmy_ masak++, It takes patience.
masak Matt-W++
Matt-W next I'll need to make it do something useful with that
masak jimmy_: it was one of the most fun things I did last year, actually.
Matt-W since we don't have { make $thing } in regexes yet
jnthn thought we had the ability to associate an actions class and use {*} but wasn't entirely sure how to do it 06:57
masak Matt-W: there's a November branch that does that. I can dig it out for you.
Matt-W cheers that'd be fab
I just need to see how to do it
time to figure out what's wrong with my field classes :) 06:59
masak Matt-W: <masak> wayland76: furthermore, if you would like to know what I'm proud of having
created (or stolen, rather) in terms of test modules, check out this blog
post: use.perl.org/~masak/journal/37976
<wayland76> pmichaud was feeling sick
<masak> jimmy_: what wayland76 said. [07:25]
<masak> but probably today.
<wayland76> see backlog for nuances :)
<wayland76> (that was for jimmy_)
<wayland76> Great. I'll keep that information for S24 :) [07:28]
<wayland76> (When I get around to it)
<jimmy_> I saw some merge info on github/rakudo, but I could'nt see what had been
changed. but can see the merging changes about parrot on trac.parrot.org
<jimmy_> IIRC, there will be a release for rakudo? 07:00
<masak> aye. [07:29]
<masak> likely today.
<wayland76> I think jimmy_ is asking whether there will be a special *parrot* release
for rakudo [07:30]
<jimmy_> no
<wayland76> ok :) I'm wrong :)
<wayland76> Basically, pmichaud wants to do a release tomorrow, but it depends on his
health [07:31]
<jimmy_> on github, i saw some commits like 'moritz merged branch
'move_split_to_any_str', how can I see what had been changed?
<masak> oh. tomorrow. yes. [07:32]
<masak> but that's tomorrow USA time, right?
07:00 dukeleto joined
masak <masak> so, today. :) 07:00
<wayland76> I think so. For you, it's probably today :)
<masak> jimmy_: I don't know. perhaps ask on #github?
<jimmy_> thanks [07:34]
<jimmy_> Will be it a development release about rakudo, like parrot 0.9.1? [07:35]
<masak> jimmy_: what do you mean? [07:36]
<jimmy_> ah
<masak> hm, I'm not sure Rakudo distinguished "development releases" from other kinds 07:01
of releases. [07:37]
<jimmy_> Maybe I should say 'Will be it a development release about rakudo, like
perl6-alpha1?'? [07:38]
*** zaidaus (n=zaidaus@60-241-74-109.static.tpgi.com.au) has quit: Read error: 110
(Connection timed out)
<masak> jimmy_: I'm having trouble assigning a meaning to what you're saying. it's not
because of any failure to communicate on your part, it's just that I don't
really know what being 'like perl6-alpha1' would mean. :) [07:40]
<masak> jimmy_: I'll go with "no, it won't be like perl6-alpha1".
<masak> jimmy_: but it'll still be really, really cool, like most Rakudo releases
(bundled with Parrot) so far. [07:41]
<jimmy_> It said, there was no plain for perl6 alpha release. and now I get a rakudo
release news, and then I am excited. :) [07:43]
<Matt-W> I don't think we could call it a perl 6 alpha yet
<masak> I don't think greek letters need be used in versions at all. [07:44]
<masak> it's silly.
<jimmy_> masak: aye. maybe beta or rc and so on. [07:45]
<masak> jimmy_: beta is a greek letter too.
<Matt-W> nonetheless, whatever we would call it, alpha implies a certain level of
completion 07:02
<wayland76> and RC is a brand of cola :)
<wayland76> speaking of which, time for me to eat :) [07:46]
<masak> I don't know if you've followed the discussions on the parrot list about
versions.
<masak> there's something to be said for pure increasing numbers.
jimmy_ what's happend?
masak <masak> no RC, no letters, no silliness.
<Matt-W> yeah
<jimmy_> yes, I used alpha or beta to implies a certain level of completion [07:47]
<Matt-W> there are many strategies to take
<masak> jimmy_: I see.
<masak> jimmy_: 7000 tests passing!
<jimmy_> s/implies/imply/
<masak> jimmy_: that's the level of completion.
<masak> I believe that someone estimated the total number of tests needed to about
16k. so we're slightly under halfway there. :) [07:48]
<Matt-W> Woot
*** ashizawa (n=ashizawa@203.152.217.234.static.zoot.jp) has joined channel #perl6
* Matt-W discovers his problems with rules matching last night were caused by invoking
them worng, not by some obscure rules bug [07:49]
<masak> Matt-W: by the way, I believe the bug I worked around for you might be fixed 07:03
already.
<Matt-W> masak: there's a commit that might have done it, yes [07:50]
<Matt-W> I haven't tested it yet
<masak> ok.
<Matt-W> jnthn++ did something there though
<jimmy_> masak: I have a doubt about articles at use.perl.org/~masak/.
<masak> jimmy_: let's hear it.
<jimmy_> most articles, it said '131 years ago today' or '******* ago today', How did
you find these histories about today? [07:52]
<masak> jimmy_: an excellent question.
<masak> jimmy_: I went to the Wikipedia article for that date.
<masak> jimmy_: and I basically picked the event I found the most interesting.
<masak> as I said in the concluding post aftoer the month was done, the things I found
were fairly western-biased. next year, I plan to find interesting events
outside the western world. [07:54]
<Matt-W> masak: just tested it, it is indeed fixed [07:55]
<masak> jnthn++ [07:56]
*** szabgab (n=gabor@p54B11D45.dip0.t-ipconnect.de) has joined channel #perl6
<Matt-W> so that's tidied up my tests
<Matt-W> also I now pass 8 :) 07:04
<jimmy_> masak++, It takes patience.
perlbot What kind of idiot karmas himself? Your kind of idiot!
masak <masak> Matt-W++
<Matt-W> next I'll need to make it do something useful with that
<masak> jimmy_: it was one of the most fun things I did last year, actually.
<Matt-W> since we don't have { make $thing } in regexes yet
<Matt-W> jnthn thought we had the ability to associate an actions class and use {*}
but wasn't entirely sure how to do it [07:57]
<masak> Matt-W: there's a November branch that does that. I can dig it out for you.
szabgab masak, ?
masak <Matt-W> cheers that'd be fab [07:58]
<Matt-W> I just need to see how to do it
<Matt-W> time to figure out what's wrong with my field classes :) [07:59]
ERC> Matt-W: github.com/viklund/november/blob/d7...ate.pm#L31
oops.
terribly sorry about that. :/
Emacs FAIL.
Matt-W: github.com/viklund/november/blob/d7...ate.pm#L31
jimmy_ :(
Matt-W masak--
masak watches the logs in despair as they are filled in slow motion by his mispaste 07:05
szabgab masak, reboot it then :-)
masak perlbot: I deserved that. :/
szabgab: sorry, sorry, sorry :/
07:05 dukeleto left
Matt-W I would've spared you the pain by kicking you, but not got the snail 07:05
masak not good at all.
I just pressed the wrong button, that's all.
Matt-W oh sorry did I mean you I meant me :)
masak rebooting wouldn't have helped, I think.
Matt-W actually I'm kind of surprised freenode didn't kick you 07:06
a lot of networks would
masak consider it an accidental replay of the morning.
Matt-W must've been just slow enough
masak :/
Matt-W aaah so you call TOP and pass :action($instance_of_action_class) as the second parameter
masak I should write a hook in ERC that prevents anyone from ever doing a thing like that. 07:07
Matt-W: aye, it's just a named param.
Matt-W irssi says "hang on you're about to paste hundreds of lines, are you really really sure you want to do that"
so the question is
masak yeah, that's what ERC should do, too.
Matt-W I've got to go to work in a bit 07:08
I'm going to push some stuff that doesn't compile and beg for help
it *looks* like a rakudo bug
masak Matt-W: ok.
Matt-W: as your project grows, you'll want to push stuff like that to a branch. 07:09
now it doesn't matter much, I guess.
Matt-W mmm yes
it's not like there's anything usable there as it is
hmm
Matt-W has an idea
hmm no that didn't work either 07:10
masak: pushed. TextField and VerbatimField blow up when the compiler tries to deal with them, no idea why 07:11
masak Matt-W: ok. will check. 07:12
Matt-W masak++
because I see no reason why this shouldn't work
masak Matt-W: next time we meet, I'll tell you about the git commit message conventions. :) 07:13
Matt-W masak: hey, my project, I can be as inconsistent as I like :P 07:14
masak of course. :)
just spreading some information, s'all.
makes logs easier to read, if nothing else.
Matt-W :)
as long as they make more sense than the ones at work I'll be happy 07:15
which, given past experiences, they probably will
07:16 szabgab left
Matt-W right 07:16
work &
masak can reproduce Matt-W's Null PMC access 07:39
07:41 bacek_ left
masak Matt-W: I fixed your code. all tests pass. 07:45
masak makes a pull request
rakudo: module A { role B {}; class C does A::B {} } 07:46
p6eval rakudo e6b713: RESULTĀ«{ ... }Ā»
masak rakudo: module A { role B {}; class C does B {} }
p6eval rakudo e6b713: OUTPUTĀ«Null PMC access in find_method()ā¤current instr.: '!meta_trait' pc 18327 (src/builtins/guts.pir:609)ā¤Ā»
masak submits rakudobug
07:52 dukeleto joined 07:58 namenlos joined
Matt-W masak++ 08:01
masak: interesting, so is that a bug or are we supposed to qualify the module names?
masak beats me.
Matt-W I'm going to hope for bug 08:02
masak I hedged my bets in the RAKUDO comment and in the bug report.
but the NPMCA is wrong in any case.
Matt-W certainly needs a better error message 08:03
like "I have never heard of this role you are trying to compose"
masak NPMCAs, being Parrot internal errors, are always wrong.
Matt-W yup
masak makes it easy to determine if a bug needs to be reported. :) 08:04
Matt-W :)
unfortunately I don't have time to learn how rakudo works inside
that's why I'm writing Form
it's at a level I can actually cope with at th emoment :)
I just fear it's going to turn into an endless parade of 'hey this breaks strangely, help' and you submitting another bug 08:05
masak Matt-W: it won't.
you're just doing a few things that no-one has done before.
after that, it'll be mostly a clear path.
perhaps one bug a week or so.
Matt-W true
once I get into string munging it should be fairly straightforward
masak aye. 08:06
Matt-W my current plan is to make all those field types it can parse work
then give it the ability to handle a format picture which has other things in it
then it'll be usable for simple things 08:07
and then I can tackle numeric fields
which are... complicated
masak sounds great.
jimmy_ It's funny. perl6 irc at freenode, but parrot irc at perl 08:08
masak jimmy_: aye, kinda backwards. 08:09
literal does this channel predate irc.perl.org?
masak probably not.
Matt-W masak: It's good to have a plan
masak plans++
Matt-W considers writing a TODO so he doesn't forget the plan
I also need things like a script to run the tests with 08:11
masak Matt-W: consider putting the TODO list in the README 08:12
Matt-W: that way, you commit yourself more to actually doing the things you list. :)
Matt-W: re script to run the tests with, see November, Druid et al for a proper Makefile.PL
masak really needs to create a 'create' subcommand in proto to automate Perl 6 project creation 08:13
Matt-W yes
that'd be good
now
08:13 mikehh left
masak Matt-W: :) 08:13
Matt-W what were you saying about git commit messages?
masak Matt-W: oh. well, 08:14
literal it's weird that this .PL convention has lived on with Perl 6
masak Matt-W: they're supposed to be like 50 characters long.
Matt-W: the first line, that is.
Matt-W: then a blank line, and then possibly longer explanations.
literal: it's Perl 5 code, though.
literal ah, ok 08:15
moritz_ good morning
Matt-W masak: any other restrictions?
moritz_: good morning
masak Matt-W: don't think so. but see www.tpope.net/node/106 08:16
moritz_: good morning.
jimmy_ good morning
wayland76 hi moritz_
Matt-W pushes the TODO 08:18
as much as I can do at work, but at least now I won't forget
I should maybe do some work now :)
masak too 08:19
moritz_ I'm a bit surprised that I see no new blog entry... did we have a Rakudo release yesterday night?
Matt-W merges masak's changes too
masak moritz_: no.
Matt-W I love how easy that is
pull
masak moritz_: it'll be today, probably.
Matt-W push
done
masak Matt-W: github rocks. 08:20
Matt-W not just github
you could do it from any git server
masak aye.
wayland76 moritz_: pmichaud unwell, but expects it to be today (see backlog)
masak but github is pretty, and convenient, and accomodating.
Matt-W Take that, moaning people on Planet GNOME: *I* read the documentation.
moritz_ wayland76: ok, thanks.
masak moritz_: skip the part of the backlog where I spam the channel.
Matt-W masak was very naughty 08:21
masak :/
with great Emacs comes great responsibility.
moritz_ sees the "Signed-off-by:" entries in the git-log 08:22
08:22 mikehh joined
moritz_ does that mean that the person how signed it off pushed it to github? 08:22
or somethiing more involved?
masak likes the TODO point "Everything else" 08:23
maybe break that up into smaller items? :P 08:24
Matt-W lol 08:29
no I'm taking a hint from how we do scrum planning here
I'm going to re-breakdown when I get closer to actually doing it
masak fair enough. 08:30
Matt-W it's not in scope for this sprint :D
masak gotcha.
bacek good evening 08:42
masak bacek: mornin' 08:43
bacek masak: you are living in past! 08:44
masak bacek: I like it that way.
08:44 DemoFreak joined
bacek Anything interesting to backlog? 08:44
masak groans 08:45
bacek: no. nothing.
nothing at all.
:/
bacek hmm... Not very good.
masak wears a conical hat with the word STUPID today 08:47
bacek Is there is todo/vision which parts of Rakudo should be moved into Setting?
bacek bough t-shirt with "I mean because you are STUPID" some time ago 08:48
literal is the setting implementation-independent (i.e. written in Perl 6)?
Matt-W Don't listen to masak, he figured out what was wrong with my code for me, he's cool.
masak Matt-W: I'm trying to make amends, that's all. :)
moritz_ literal: it is written in Perl 6, but optimized to work on Rakudo
literal optimized how? 08:49
Matt-W blames Emacs
Matt-W guesses at it not using anything Rakudo can't do yet
masak moritz_: does your Google Code project fill any role, now that Rakudo has its own prel... um, setting?
moritz_ masak: not really 08:51
masak: but I'll see if there's anything usable in there
masak ponders removing it from proto
but it might as well stay for the time being.
it's a nice example of a non-github project :)
moritz_ wayland76: re S24, we still haven't fully decided on how to do built-in testing 08:52
wayland76: see the "RFD: Built-in testing" thread
bacek Looks like localtest_loud isn't loud anymore... 08:55
moritz_ that's deplorable
masak
.oO( loltest_loud )
bacek moritz_: indeed. 08:56
08:56 ejs joined
pugs_svn r25574 | lwall++ | [STD] make $^foo declare $foo; remove duplicate variable check code 08:58
09:02 ejs left, ejs joined
pugs_svn r25575 | moritz++ | [t/spec] autothreading prime test 09:07
masak TimToady: 'make cat' doesn't work. has it bitrotted? 09:08
pugs_svn r25576 | moritz++ | [t/spec] simplify a few tests to use /../ instead of rx/../
r25576 | moritz++ | Also removed tests that referred to the Tuple type, which doesn't exist
r25577 | lwall++ | [STD] don't check &foo for variable predeclaration
TimToady masak: I haven't used try5 in months
masak TimToady: oki. 09:09
TimToady: what's the latest thing to use?
moritz_ teststd
TimToady looks like nothing in Makefile runs try5
tryfile and viv 09:10
tryfile to see if it parses, and viv to get the ast
std: say "I'm running tryfile really" 09:11
p6eval std 25577: OUTPUTĀ«ok 00:04 33mā¤Ā»
masak tries viv 09:12
TimToady: I ran 'tryfile' on github.com/masak/svg/tree/master/lib/SVG.pm -- it reported a lot of 'undeclared routines'. is that something to worry about? 09:14
TimToady it doesn't see implicit imports
so probably not a concern
masak TimToady: no implicit imports involved, I'm afraid. 09:15
just forward references.
TimToady: also, viv has an unadvertised dep YAML::XS 09:16
std: KitchenSink 09:17
p6eval std 25577: OUTPUTĀ«ok 00:02 33mā¤Ā»
TimToady I think I know what's going on; don't worry about it 09:18
it's adding the subs in an inner scope that it throws away before the final check 09:19
I'll fix it tomorrow
masak goodie.
bacek perl6: say ~ [!=] ()
p6eval elf 25577: OUTPUTĀ«pre without a prefix is unimplemented at ./elf_h line 2148ā¤Ā» 09:20
..rakudo e6b713: OUTPUTĀ«0ā¤Ā»
..pugs: OUTPUTĀ«ā¤Ā»
bacek perl6: say ~ [!=] (4)
perl6: say ~ [!=] (4,5)
perl6: say ~ [!=] (4,5,5)
p6eval pugs: OUTPUTĀ«1ā¤Ā»
..elf 25577: OUTPUTĀ«pre without a prefix is unimplemented at ./elf_h line 2148ā¤Ā»
..rakudo e6b713: OUTPUTĀ«0ā¤Ā»
pugs, rakudo e6b713: OUTPUTĀ«1ā¤Ā»
..elf 25577: OUTPUTĀ«pre without a prefix is unimplemented at ./elf_h line 2148ā¤Ā»
elf 25577: OUTPUTĀ«pre without a prefix is unimplemented at ./elf_h line 2148ā¤Ā»
..rakudo e6b713: OUTPUTĀ«0ā¤Ā»
..pugs: OUTPUTĀ«ā¤Ā»
TimToady must zzz & 09:21
bacek hmm.. [\!=] (4,5,5) should produce (1,0,0)? 09:22
09:24 Maghnus joined
moritz_ I think it should produce (1, 0) 09:24
I've registered the domain perl6-projects.org, which I want to host on feather 09:26
and put up an overview page of all active Perl 6 projects
masak perks up
moritz_: we need some kind of collaboration here between that and proto
it also has a list of active Perl 6 projects. 09:27
bacek moritz_: it should produce 3 values I think
moritz_ masak: my main priority are compilers and documentation projects 09:28
masak bacek: what do you compare the first element against?
moritz_ bacek: so what would be a sane value for unary != ?
masak moritz_: ah. I see.
bacek moritz_: True? 09:29
moritz_ masak: I don't want to discriminate against any projects using Perl 6, but I guess that list will start to fluctuate pretty much pretty soon
bacek rakudo: say [!=] (4)
p6eval rakudo e6b713: OUTPUTĀ«0ā¤Ā»
bacek ok, False :)
moritz_ bacek: why True? Why not False? why not "die horribly"=
s/=/?/
don't take rakudo as the reference
perl6: say [!=] 4
p6eval pugs: OUTPUTĀ«1ā¤Ā»
..elf 25577: OUTPUTĀ«pre without a prefix is unimplemented at ./elf_h line 2148ā¤Ā»
..rakudo e6b713: OUTPUTĀ«0ā¤Ā»
masak moritz_: fluctuate? which list? 09:30
bacek interesting :)
moritz_ masak: the list of projects implemented in Perl 6
bacek is (~ [\!=] 4, 5, 5), "0 1 0", "[\\!=] works (2)";
masak moritz_: it's already pretty fluctuant. :)
bacek this this from spectest
moritz_ bacek: that also doesn't mean it's correct :/
bacek moritz_: I know... 09:31
moritz_ actually it's 100% wrong
because ~ @list joins without whitespaces
bacek It's probably should be 1,1,0
09:31 meppl joined
moritz_ it probably should be 1, 0 09:31
but I already said that
bacek perl6: say ~ [!=] () 09:32
p6eval elf 25577: OUTPUTĀ«pre without a prefix is unimplemented at ./elf_h line 2148ā¤Ā»
..rakudo e6b713: OUTPUTĀ«0ā¤Ā»
..pugs: OUTPUTĀ«ā¤Ā»
moritz_ because the operation != has no sane neutral element
Maghnus any projects to put perl6 into a browser as a js alternative?
moritz_ Maghnus: first we try to implement it ;-)
bacek Maghnus: it's after-xmas project 09:33
moritz_ Maghnus: some people thought about embedding parrot into firefox, but I don't think somebody actually did it
Maghnus :) true but it seems mostly orthogonal
moritz_ feel free to try it ;-) 09:35
the thing that's not orthogonal is developer's time
bacek: ok, I was wrong... [!==]() # Bool::False (also for 1 arg) 09:36
from S03
masak could use some orthogonal developer time
moritz_ bacek: so it could very well be a list of three items 09:37
bacek moritz_: so, [\!=] 4,5,5 should be (0,1,0), correct?
masak aye.
moritz_ yes 09:38
bacek perl6: say ~(1..3)
p6eval elf 25577: OUTPUTĀ«No viable candidate for call to multimethod prefix__126(#,#,#) at (eval 122) line 3ā¤ at ./elf_h line 4346ā¤Ā»
..pugs, rakudo e6b713: OUTPUTĀ«1 2 3ā¤Ā»
bacek moritz_: and ~List joins with spaces :) 09:39
literal can one do a method call on a list?
bacek perl6: say ~(1..3); say (1..3)
p6eval elf 25577: OUTPUTĀ«No viable candidate for call to multimethod prefix__126(#,#,#) at (eval 124) line 3ā¤ at ./elf_h line 4346ā¤Ā»
..pugs, rakudo e6b713: OUTPUTĀ«1 2 3ā¤123ā¤Ā»
masak literal: sure, why not?
moritz_ bacek: ah right, I thought about [~]
bacek: don't listen to me today
masak perl6: (1,2,3).reverse.say
p6eval pugs, rakudo e6b713: OUTPUTĀ«321ā¤Ā» 09:40
..elf 25577: OUTPUTĀ«Useless use of a constant in void context at (eval 120) line 3.ā¤Can't call method "reverse" without a package or object reference at (eval 120) line 3.ā¤ at ./elf_h line 4346ā¤Ā»
jnthn morning
moritz_ elf needs more autoboxing ;-)
good morning jnthn
bacek jnthn: evening :)
masak jnthn: dobre rano.
jnthn avoids mentioning the backscroll to avoid further embarasssing masak
masak :/
moritz_ lol
bacek afk & # watching LOTR with kids... Again. 09:41
09:41 ashizawa left
literal masak: what methods does List have? 09:41
just curious
bacek literal: S29
moritz_ a lot ;-)
literal I don't see List there
bacek oh, It's S32 now
moritz_ it's probably in S32*/List.pod or somethiing 09:42
masak remembers he still has a lot of items left on his S29 laundry list
bacek moritz_: Containers.pod
moritz_ ah, bacek beat me again... as I said, ignore me today ;-)
09:43 IllvilJa left
masak the problem aobut the word 'container' right now is that it's used in two senses: about data types and about binding 09:44
jnthn masak: The double free is, hopefully, gone now...
masak jnthn++ jnthn++ jnthn++
jnthn masak: pmichaud++ too
moritz_ masak: they are releated. You can only bind to containers.
masak oh. pmichaud++
09:44 hercynium joined 09:45 hercynium left
jnthn I found where to stick the patch and wrote one that worked. pmichaud then looked at my patch, saw it was to do with contexts, and wrote a patch that was much shorter and better. :-) 09:45
09:45 hercynium joined
moritz_ I saw the commit, very nice and simple fix 09:45
jnthn Yes. 09:47
masak maybe I'll go back to the fakecutable then. 09:49
jnthn masak: I used it all day yesterday. 09:51
masak ok.
I'll try it on my projects.
wayland76 moritz_: Thanks for the S24 info. 09:54
jnthn ponders his excessive list of things to do today
09:55 IllvilJa joined
moritz_ can I somehow tell git-pull to be 100% silent? 09:56
I have a cron job that git-pull's
literal >/dev/null :P
moritz_ and it doesn't get rid of the summary
I already supplied -n -q 09:57
wayland76 May also need 2>&1 *after* the >/dev/null :) 09:58
pugs_svn r25578 | wayland++ | S29: Fix formatting 10:00
r25578 | wayland++ | IO.pod: Get rid of tree, spec stat and LinkNode a bit better
wayland76 masak: Hope you're happy about getting rid of tree :) 10:01
Thank ruoso; he talked me out of it :)
masak ruoso: thank you.
wayland76: I still appreciate your efforts. sorry if I seem at times overly apprehensive. 10:02
moritz_ rakudo: say 2**20 10:04
p6eval rakudo e6b713: OUTPUTĀ«1048576ā¤Ā»
dalek kudo: 2758f79 | (Moritz Lenz)++ | tools/ (2 files):
[tools] use fake executable in autounfudge and test_summary
10:05
wayland76 ruoso++ :) 10:09
masak: Yeah, thanks for the encouragement. I think my motivation to work on IO.pod has disappeared though, and it still needs work. Everyone feel free to hack away at it, keeping in mind "forgiveness, not permission" 10:10
I'd never get anything done if I didn't constantly tell myself that :) 10:11
masak indeed.
I/O is important.
wayland76 I'm still motivated to work on specs though. It's just that IO.pod is now at the bottom of the list :)
Signals are still interesting, though :)
masak I/O seems to be like religion, politics and language: everyone feels entitled to an opinion about it, and there is a lot of bikeshedding.
wayland76 Does anyone else think that IPC and Signals belong in S17 instead of S16? 10:12
masak not necessarily always bad...
...but often enough it leads to few results.
wayland76 Interesting -- politics and religion used to be the two forbidden topics at the meal table :)
10:13 mikehh left
wayland76 masak: What do you think of the event loop idea that Larry and Ruoso were discussing? 10:13
Is that fine by you, or does it worry you too?
moritz_ std: foo:bar
p6eval std 25578: OUTPUTĀ«Undeclared routine:ā¤ foo used at 1 ā¤ok 00:02 33mā¤Ā»
masak wayland76: I didn't pay much attention to it, but I would think I'm alright with such a thing.
moritz_ std: foo\.(:bar) 10:14
p6eval std 25578: OUTPUTĀ«Undeclared routine:ā¤ foo used at 1 ā¤ok 00:02 33mā¤Ā»
10:14 PZt joined
masak wayland76: I'm mostly worried when people provide suboptimal default types. 10:14
moritz_ rakudo: sub succ($x) { $x + 1}; succ .(1+2) * 30
p6eval rakudo e6b713: OUTPUTĀ«invoke() not implemented in class 'Undef'ā¤current instr.: '_block14' pc 95 (EVAL_19:49)ā¤Ā»
moritz_ std: sub succ($x) { $x + 1}; succ .(1+2) * 30 10:15
p6eval std 25578: OUTPUTĀ«ok 00:02 34mā¤Ā»
masak moritz_: wot's .(1+2) supposed to mean? 10:16
moritz_ masak: method call on $_
masak: but I'm looking at a test that thinks differently
masak moritz_: ...which is undefined. yah?
moritz_ right
masak that's odd.
moritz_ why? 10:17
Matt-W yeah if you wanted it to be succ.(1+2) you'd have to write succ\ .(1+2) I believe
unspace thingy
moritz_ Matt-W: exactly
but sub-calls.t has that wrong
s(eval(q/first.second/), 'firstsecond', '`first.second` means `&second(&first())`');
Matt-W tsk!
moritz_ that's also wrong, isn't it?
it should just be ((first()).second()
Matt-W yes I think that's wrong 10:18
it could also be second :first(), if I remember the new indirect object syntax
or something like that 10:19
10:19 ludan joined
Matt-W but you can't pass the invocant as the first param just like that AFAIK 10:19
moritz_ you mean the invocant marker?
pugs_svn r25579 | moritz++ | [t/spec] corrected sub-calls.t, and fudged for rakudo
Matt-W whatever it's called :) 10:20
dalek kudo: e4bd268 | (Moritz Lenz)++ | t/spectest.data:
we now pass sub-calls.t, add to spectest.data
10:21
jnthn moritz_: I put in bare sigils yesterday. 10:27
In signatures.
We had tests already in assign.t for like my ($, $, $three) = 1..3;
So I enabled those.
masak wayland76: no, bless isn't dead. see S12.
jnthn But I didn't see any for sub foo($, $, $oh_this_one_is_useful) { } 10:28
Matt-W I thought * was for ignoring things like that
moritz_ jnthn: I'll put it on my TODO
masak wayland76: if it's a TODO list you're building for S29, please see use.perl.org/~masak/journal/38170
Matt-W I guess in sub params you need to say something more useful... 10:29
Does rakudo do enums?
masak Matt-W: sure!
rakudo: enum Foo <a b c>; say b
p6eval rakudo 2758f7: OUTPUTĀ«1ā¤Ā»
moritz_ rakudo: multi f($ where 0 ) { 1 }; mullti f(Int $x ) { $x * f($x-1) }; say f(4)
p6eval rakudo 2758f7: OUTPUTĀ«Statement not terminated properly at line 1, near "(Int $x ) "ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
moritz_ rakudo: multi f($ where 0 ) { 1 }; multi f(Int $x ) { $x * f($x-1) }; say f(4) 10:30
p6eval rakudo e4bd26: OUTPUTĀ«maximum recursion depth exceededā¤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:96)ā¤Ā»
moritz_ rakudo: multi f($x where 0 ) { 1 }; multi f(Int $x ) { $x * f($x-1) }; say f(4)
p6eval rakudo e4bd26: OUTPUTĀ«maximum recursion depth exceededā¤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:96)ā¤Ā»
moritz_ rakudo: multi f(Int $x where 0 ) { 1 }; multi f(Int $x ) { $x * f($x-1) }; say f(4)
p6eval rakudo e4bd26: OUTPUTĀ«24ā¤Ā»
moritz_ rakudo: multi f($ where 0 ) { 1 }; multi f($x ) { $x * f($x-1) }; say f(4)
p6eval rakudo e4bd26: OUTPUTĀ«24ā¤Ā» 10:31
moritz_ nice ;-)
jnthn iIt took me a while to see why, but yes, I think Rakudo is getting those right.
moritz_ same here 10:32
jnthn (Int is tighter than Any, so the Any variant is never considered)
Matt-W rakudo: enum Foo<a b c>; class Bar { has Foo $.x; }; my $y = Bar.new;
p6eval rakudo e4bd26: OUTPUTĀ«Type mismatch in assignment.ā¤current instr.: 'die' pc 16347 (src/builtins/control.pir:204)ā¤Ā»
wayland76 masak: I guess I see the role of S29 as really being the section labelled "Default functions"; if it's a method on an object, then even when it's exported by default, it should be in S32/*, not S29. 10:33
That's my vision for it; others may differ :)
masak wayland76: makes sense to me.
note though that I wrote the blog post before that distinction existed. :) 10:34
wayland76 Yeah, I saw that :)
masak and most of the things on that list are still missing.
wayland76 Good list; thanks. 10:35
Should there be a Context object? 10:36
masak good question. probably. 10:37
wayland76 I'm not so sure; have you looked at the Context section in S29?
A lot of those functions don't really look like they belong on a Context object :) 10:38
moritz_ std: _foo() 10:39
p6eval std 25579: OUTPUTĀ«Undeclared name:ā¤ _foo used at 1 ā¤ok 00:02 33mā¤Ā»
moritz_ rakudo: say '_' lt 'a'
p6eval rakudo e4bd26: OUTPUTĀ«1ā¤Ā»
moritz_ rakudo: say '_' lt 'A'
p6eval rakudo e4bd26: OUTPUTĀ«0ā¤Ā»
jimmy_ <Hello World>.split(' ').say 10:40
rakudo: <Hello World>.split(' ').say
p6eval rakudo e4bd26: OUTPUTĀ«HelloWorldā¤Ā»
moritz_ that's... experimental
literal rakudo: 'foo'.say.say.say 10:41
p6eval rakudo e4bd26: OUTPUTĀ«fooā¤1ā¤1ā¤Ā»
jimmy_ mine?
moritz_ splitting on an array coerces it to Str
then you split it
jimmy_: yes
but it doesn't have a blank anymore
jimmy_ rakudo: <Hello World>.split('').say
p6eval rakudo e4bd26: OUTPUTĀ«Hello Worldā¤Ā»
Matt-W rakudo: <Hello World>.split(' ').perl
p6eval rakudo e4bd26: RESULTĀ«"[\"Hello\", \"World\"]"Ā»
jimmy_ rakudo: <Hello World>.perl 10:42
p6eval rakudo e4bd26: RESULTĀ«"[\"Hello\", \"World\"]"Ā»
wayland76 context() and caller() are how you get a context. I'm not sure why eval() and evalfile() are in this section. exit() seems like it calls PROCESS::return() or something. sleep() also seems to belong on at least a thread rather than a context. die() and fail() should, to my mind, be keywords rather than functions :).
masak moritz_: it doesn't have a blank anymore because lists are printed as is without a blank.
moritz_ rihgt
rakudo: say <a b c>.join 10:43
p6eval rakudo e4bd26: OUTPUTĀ«a b cā¤Ā»
10:43 jimmy_ left
wayland76 rakudo: "Hello World".split(' ').say() 10:43
p6eval rakudo e4bd26: OUTPUTĀ«HelloWorldā¤Ā»
masak by the way, this is a bit inconsistent, come to think of it: 10:44
rakudo: my @a = 1,2,3; say @a; say @a.fmt("%s"); my %h = "A" => "B"; say %h; say %h.fmt("%s\t%s")
p6eval rakudo e4bd26: OUTPUTĀ«123ā¤1 2 3ā¤A Bā¤A Bā¤Ā»
masak (that's two tabs, they just happen to be of different width here) 10:45
so while an unadorned .fmt on hashes produces the same result as just printing a hash, the same does not hold for arrays. 10:46
lunch & 10:49
10:49 masak left 10:55 mikehh joined
pugs_svn r25580 | wayland++ | Added types to main table 10:57
10:57 ejs1 joined 10:59 ejs left
pugs_svn r25581 | wayland++ | Moved Junctions from S29 to Containers.pod 11:05
r25582 | wayland++ | Updated main table; refactoring after previous additions
11:06 ejs2 joined
moritz_ wayland76: Junctions are some kind of compound types, but they are not containers (you can't bind to them) 11:08
the wonders of unix's fork(): you can upgrade your ssh daemon without loosing the connection 11:12
11:13 ludan left
literal actually I think that's the wonder of unix filesystems 11:13
moritz_ that also
but the upgrade also implies a restart 11:14
11:14 ejs1 left
literal open files can be replaced/deleted without harm to running apps :P 11:14
ah, true
moritz_ yes, in the end you need both features 11:15
wayland76 moritz_: Pity :) 11:21
What if we had an array. Could I do given (any(@exceptions)) { when ...... 11:22
Or does "given" not play well with junctions?
jnthn The mart-match will auto-thread.
wayland76 mart-match? 11:23
moritz_ smart-match
jnthn smart match
wayland76 ah :)
moritz_ the "when" performs one
jnthn mart-match is like, commercial smart-match ;-)
wayland76 So that does what I want, then :)
jnthn Probably.
wayland76 jnthn: Yeah, I figured that when I googled it :) 11:24
moritz_ wayland76: not sure it does; only one when block will match
wayland76: is that what you want?
wayland76 Oops :). Maybe not then 11:26
Unfortunately I just sent another e-mail to the list. Oh well :)
I guess we need foreach(@!) { given { when .... } } 11:28
moritz_ is @! new?
or did you mean @($!)?
wayland76 See my e-mail :).
bacek pmichaud, jnthn, I've finished reduce metaops. github.com/bacek/rakudo/blob/e94df8...ssign.pir. This version passing all tests from spectest except custom operators
wayland76 I'm suggesting that, since $! is a container, it might make more sense to call it @!
moritz_ it's both a single exception and a container 11:29
wayland76 ?
moritz_ like $/ is a match object and a container of match objects
at least that's my impression 11:30
wayland76 Ah, I see
moritz_ I don't like @! because you can't interpolate it in strings easily
wayland76 Ok
Makes sense
But inside a CATCH block, $_ would interpolate easily :) 11:31
moritz_ yes, but that's not the only use
wayland76 OK ;)
Another question; can any Match object act both as a Match and a container of Matches? 11:32
or is it just $/
11:32 hercynium left
jnthn Any 11:34
You can see it as a kinda match tree
wayland76 Ok, all happy then :)
11:34 ludan joined
wayland76 Now we have exception trees :) 11:34
moritz_ rakudo: Match.new(to => 3); say "alive"
p6eval rakudo e4bd26: OUTPUTĀ«invalid arg type in named portion of argsā¤current instr.: 'parrot;PGE;Match;new' pc 28 (compilers/pge/PGE/Match.pir:54)ā¤Ā»
11:35 idemal left
Matt-W ooooh a proper error message 11:46
11:48 [particle] left 11:52 ruoso joined 11:53 renormalist left
pugs_svn r25583 | wayland++ | Lots more stuff in S32. Documented Callable objects, and extended Containers a fair bit. 12:04
r25583 | wayland++ | Added little bits elsewhere in S32.
jnthn wayland76: Callable ojects? 12:05
Callable is a role done by Code, AFAICT.
(And thus by stuff that inherits from it...)
ruoso jnthn, isn't Callable something parrot-specific? 12:06
jnthn ruoso: No
ruoso Isn't it just Code in Perl 6?
jnthn It's a Perl 6 role.
Code does Callable
You can only assign/bind things to something with the & sigil if it does Callable
Just as @ means does Positional, etc.
S02 IIRC
ruoso S02 doesn't seem to mention Callable in the "built-in types" 12:07
hmm...
but it lists it later
hmmm...
inconsistencies--
jnthn I think it mentions it around the same time it's also talking about Positional etc. 12:08
It's parobably a parametric role.
wayland76 Ok, correction -- I documented the classes and roles that depend on the Callable role
grep Callable S02-bits.pod 12:09
C<&x> may be bound to any object that does the C<Callable> role, such
as any C<Block> or C<Routine>. The C<Callable> role implies the ability
:)
ruoso wayland76, one thing I noticed is that you're doing things like "class Foo does Foo {}"
wayland76 Is that bad?
jnthn Foo can't be a class and a role
Well, it can but...
Not liek that...
;-)
ruoso and also
jnthn class Foo does Bar { } would be clearer
wayland76 :). Well, I'm just doing what I perceive the documentation to be saying :)
ruoso "role Foo { }" already behaves like a class fwiw 12:10
it generates a "punned class" when used as one
so, every built-in type can be expressed in terms of roles
(I think it has been said that all built-in types *are* roles)
wayland76 Ok, I love it :) 12:11
ruoso so... what does the Code type do that the Callable type doesn't? 12:14
pugs_svn r25584 | wayland++ | Container.pod fixes, based on IRC advice. 12:15
wayland76 You tell me :)
I'm just extracting stuff from S02 :)
Maybe I'm highlighting inconsistencies
In fact, that's half my point in most of the things I've done tonight is to see whether things line up with other things 12:16
(that was proof that I'm, like, part of the most inarticulate generation in, like, a loooong time. whatever :) ) 12:17
ruoso maybe Callable only defines .()
while Code also defines .signature
wayland76 Quite possibly
Callable is presumably supposed to be analogous with Associative and Positional 12:18
12:18 IllvilJa left
wayland76 While we're here, can someone tell me if it's correct that List does Array, and Array does Container? Or have I got them mixed up? 12:19
ruoso Array does List 12:20
not the other way around
but List is in the "immutable types"
so that's a bit mixed off
wayland76 :) 12:21
ruoso I think the "immutable" section is a bit illustrative... 12:22
since you can't really ensure immutability of non-native types
wayland76 :) 12:23
pugs_svn r25585 | wayland++ | Containers.pod: Got some composition straightened out 12:24
r25585 | wayland++ | Abstraction.pod: Documented these.
12:25 masak joined
ruoso wayland76, there isn't really a class Class 12:25
wayland76 No?
masak rakudo: module A { sub f is export { say "OH HAI" } }; f
p6eval rakudo e4bd26: OUTPUTĀ«Could not find non-existent sub fā¤current instr.: '_block14' pc 53 (EVAL_19:38)ā¤Ā»
masak NO HAI?
we don't have 'is export' in Rakudo? 12:26
wayland76 OH HAI masak :)
masak wayland76: :)
wayland76 If there's no class Class, why is it listed under Mutable Types in S02?
masak meant from Rakudo, but human HAIs are fine, too
12:27 cas left
ruoso wayland76, that's a good question... 12:27
masak wayland76: good question. fossil, p'haps?
wayland76 masak: Well, I'd just said "No", so I made a connection :)
masak ah.
wayland76 Maybe it's the way it should be specced, even if it isn't/can't be implemented that way :)
ruoso wayland76, Perl 6 doesn't enforce a specific OO implementation 12:28
which is what "class Class" would do
everything goes through HOW
wayland76 I started out adding the types to S28, and ended up here :)
ruoso and HOW is implementation specific
mildew has a ClassHOW, for instance 12:29
but not a Class
wayland76 Ok.
So what type should $?CLASS be in S28?
ruoso $?CLASS is of the type of the class being defined
it points to the protoobject
or, if you want to simplify it... it's of the type Object 12:30
wayland76 But shouldn't the type of $?CLASS be the type of the proto-object?
Is the proto-object of type Object? 12:31
ruoso $?CLASS *is* the protoobject
everything is of type Object
including the protoobjects
masak no answer on the 'is export' feature? I was under the impression that Rakudo had it. but maybe that was just internally?
12:32 ejs2 left
ruoso masak, I think the problem is in your code 12:32
masak ruoso: ok. my cup is empty.
12:32 ejs2 joined
ruoso is export requires EXPORTALL to be called 12:32
(at least in theory)
masak ruoso: how would it look, more precisely?
ruoso masak, I think exportation requires a "use" 12:33
masak ruoso: I have a 'use' in my program.
still doesn't work.
ruoso ah... ok then...
masak good point about the one-liner, though. it's probably not a good way to show that it doesn't work.
masak submits rakudobug
ruoso masak, but I'm not actually sure about that... 12:34
I *think* having a class inline doesn't import any symbols it exports
but the spec around that is very much confusing
wayland76, conceptually, you never get *the class*. what you get is the HOW, which should be able to do everything you would do with the class object 12:35
masak maybe a ticket will get things going.
ruoso wayland76, but in SMOP, for instance, all classes share the same HOW, because it's a bit more prototype-based than rakudo 12:36
(and in order to support that, $a.^b() is always the same as $a.HOW.b($a) 12:37
wayland76 What, so Str $foo; Int $bar; $foo.HOW ==== $bar.HOW ?
(ignore my last line)
12:37 cas joined
ruoso wayland76, in SMOP, yes... but comparing HOW identity is not something really usefull 12:38
nor is comparing WHAT, for that matter
wayland76, but rakudo implements a more class-based OO... so the HOW itself is really a class 12:39
wayland76, in SMOP, the HOW implements the logic on how the objects of that HOW behaves... for instance... the logic of inheritance, method resolution order and so on will always be in the HOW object 12:40
while the methods and attributes themselves are stored in the protoobject... 12:41
wayland76 Ok, I think after reading a bit about prototypes I'm getting the hang of that
I don't get how a language spec can refuse to choose between them, and still remain interoperable, though :) 12:42
ruoso my idea of using this more prototype-based implementation is to allow replacing the HOW in a subclass while still being able to inherit from protoobjects that use a different HOW
wayland76, Perl 6 can do that because it doesn't enforce a lowlevel representation
*that* IMNSHO, is the most important feature of Perl 6 12:43
wayland76 I'll take your word for it -- I'm no expert :)
ruoso so in Perl 6 you really can't break the encapsulation of an object
12:43 [particle] joined
wayland76 (on most things, anyway :) ) 12:43
ruoso for the simple fact that you don't know how the object layout 12:44
(actually, in SMOP you can, as long as the object conforms to the REPR API
wayland76 Is REPR non-Perl6 then? 12:45
ruoso non standard...
yes
wayland76 That's what I meant :)
ruoso I know
moritz_ it's below the level of what is currently specced
12:45 r0bby left, r0bby_ joined
ruoso I just had a hard time expressing a yes that was supposed to look like a no 12:46
moritz_ ;-)
wayland76 Does this mean that everything I wrote in Abstraction.pod is wrong, then?
moritz_ isn't it the other way round? ;-)
masak hah, I can work around needing 'is export' by not declaring any package at all! 12:47
:)
moritz_ doesn't 'is export' work? 12:48
ruoso wayland76, I'm quite convinced that the "Abstraction" role is quite confusing by itself
masak moritz_: you tell me!
I can't get it to work.
ruoso wayland76, in fact, if the thing that goes onto the ::Array is the array protoobject, I'm quite convinced the "Abstraction" role simply doesn't make any sense... 12:49
moritz_ masak: maybe I'm wrong 12:50
masak moritz_: I wish you weren't.
wayland76 Well, something to take up with TimToady :)
ruoso because if the protoobject is of the same type of the actual object, it can't compose an additional role
unless everything does Abstraction
rakudo: say Array ~~ Abstraction 12:51
p6eval rakudo e4bd26: OUTPUTĀ«0ā¤Ā»
ruoso rakudo: say ::Array ~~ Abstraction
p6eval rakudo e4bd26: OUTPUTĀ«0ā¤Ā»
wayland76 I'm wondering if Abstraction == Namespace (scope? I'm not sure of the word I want here :) )
masak wayland76: yes, I think so. 12:52
ruoso but that's what Package is for
masak ruoso: Package is one specific Abstraction.
ruoso hmmm... one you can't use in Perl 6
masak no?
ruoso no..
I mean... 12:53
you do use it all the time
because AFAIU, a Module is a Package
wayland76 Not according to S02 :)
masak doesn't think so
wayland76 (cf. Mutable types)
jnthn Abstraction is done by thingies that can act as types. 12:54
e.g. something you can bind to something with the :: sigil.
ruoso jnthn, but if the protoobject is of the same type of the actual object...
masak ah.
jnthn (Subtypes, enums, etc)
ruoso how does the protoobject composes a role that the object doesn't?
jnthn I don't get your question.
We're doing it just fine in Rakudo... 12:55
rakudo: say 42 ~~ Abstraction; say Int ~~ Abstraction;
p6eval rakudo e4bd26: OUTPUTĀ«0ā¤0ā¤Ā»
jnthn gah
ruoso heh
jnthn Oh
wayland76 ruoso: Think of it this way -- "Instantiation" and Abstraction are on different axes :)
masak :)
ruoso wayland76, not really
jnthn rakudo: role Foo { }; say Foo ~~ Abstraction;
p6eval rakudo e4bd26: OUTPUTĀ«0ā¤Ā»
wayland76 No?
jnthn Oooh!
ruoso wayland76, a protoobject is just an empty object 12:56
jnthn That patch didn't make it from the branch and we check explicitly for roles etc in is_type for now...
ruoso wayland76, "Instantiation" is the process of BUILDing that object
i.e. a call to BUILDALL
jnthn is_type should really be checking for does Abstraction though, AFAICT.
ruoso: It's not hard to do, you can just fix in Abstraction to the proto-object... 12:57
ruoso jnthn, I'm not sure... is_type is a string checker
jnthn ruoso: In STD.pm yes
But that's because it doesn't have anything else to look at.
wayland76 ruoso: Ok, but Abstraction should really be called "Namespace" IMO :)
ruoso jnthn, back to "fix in Abstraction to the proto-object" 12:58
what does that mean exactly?
masak wayland76: it's not really a namespace.
jnthn ruoso: Typo, I meant mix in...
wayland76 No? Then I'm all confused still :)
ruoso jnthn, but then you'd have the protoobject with a different type than the objects
wayland76 jnthn: You've been having some good typos today :) 12:59
ruoso it wouldn't be an empty object
then things like Dog{ :name<Fido> } would be weird
since you're getting a new protoobject
so Dog{ :name<Fido> } would also get the Abstraction role... 13:00
which is weird
jnthn OK, let me ask this: how do you get protoobjects in smop to appear undefined, and other instances to appear defined?
Yes, and that's fine.
ruoso by then being either defined or not ;)
I mean
jnthn Because it means we can do ::FidoDog = Dog{ :name<Fido> }
ruoso it is undefined untill BUILDALL is called
and defined after that
jnthn defined is an attribute somewhere? 13:01
ruoso not really an attribute per se...
but it is defined if the "instance storage" is initialized
undefined otherwise
i.e.: after CREATE, the "instance storage" is *not* initialized 13:02
jnthn OK, we do it in Rakudo by a mix-in style mechanism.
So proto-objects get a .defined that returns false.
ruoso so what happens if Dog{ :name<Fido> } autovivifies? 13:03
jnthn Code example?
ruoso my $dog = Dog{ :name<Fido> };
say "undef" unless $dog.defined; # it says it
$dog.wag
jnthn That'd just have the proto-object with the appropriate WHENCE inside $dog at this point... 13:04
ruoso say "defined" if $dog.defined; # it says it
jnthn erm
calling a method on a proto-object auto-vivifies it?
That *can't* be right.
ruoso that's S12
jnthn Otherwise .new would make a proto-object auto-vivify.
ruoso it wouldn't because most protoobjects don't have a WHENCE 13:05
13:05 [particle] left
ruoso jnthn, but the triggering of the autovivification is a bit blurry yet... 13:05
but the fact is that it does get autovivified at some point
wayland76 Midnight. Bed! :) 13:06
ruoso independent of what triggers the autovivification
jnthn Ah, hmm...
But yes, that is a bit blurry.
I just thought that meant you could do a $dog.new and *it* would have name initialized to Fido. 13:07
ruoso no... $dog.new would return a new object that wouldn't even carry the WHENC
13:08 jimmy_ joined
jnthn I didn't say it would carry the whence, just that it gets created with the name attribute initlialized. 13:08
To Fido
ruoso it wouldn't
jnthn :-S
Then we understand S12 differently. 13:09
ruoso new only looks at the named parameters
it creates a new object
jnthn We have it looking at the WHENCE too.
Which IMO is more useful.
ruoso that's not supposed to happen in new
only in bless
and only if you send the $protoobject as a positional parameter
jnthn You take my "in new" to literally there. :-) 13:10
jimmy_ perl6:say ~(1..)
ruoso jnthn, my point is that "new" is the one that calls CREATE
bless doesn't call it
that's the main difference
jimmy_ perl6:say ~(1..)
perl6:say ~(1..3)
ruoso jimmy_, I think you should have a space after the :
jimmy_ rakudo: say 'hello' 13:11
p6eval rakudo e4bd26: OUTPUTĀ«helloā¤Ā»
jimmy_ rakudo: say ~(1..)
p6eval rakudo e4bd26: OUTPUTĀ«Statement not terminated properly at line 1, near "..)"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
ruoso std: say ~(1..)
p6eval std 25585: OUTPUTĀ«############# PARSE FAILED #############ā¤Please use ..* for indefinite range at /tmp/0c46Pr0F1c line 1:ā¤------> say ~(1..)ā¤FAILED 00:02 34mā¤Ā»
jimmy_ rakudo: say ~(1..*)
p6eval rakudo e4bd26: OUTPUTĀ«Use of uninitialized valueā¤ā¤Ā»
jimmy_ std: say ~(1..*)
p6eval std 25585: OUTPUTĀ«ok 00:02 34mā¤Ā» 13:12
jimmy_ std?
what's std
std: say ~(1..)
ruoso jimmy_, it's the STD Perl 6 grammar, written in Perl 6 itself and maintained by Larry Wall
p6eval std 25585: OUTPUTĀ«############# PARSE FAILED #############ā¤Please use ..* for indefinite range at /tmp/CyJJEAkWbh line 1:ā¤------> say ~(1..)ā¤FAILED 00:02 34mā¤Ā»
ruoso jimmy_, it is not a compiler nor a runtime, it's just the grammar
13:13 mberends joined
jimmy_ how to compile it 13:13
ruoso jnthn, I've sketched all the instantiation process as defined by S12 in smop/src-s1p/Object.pm and ClassHOW.pm
jimmy_, rakudo tries to stay as close to STD as possible.
jimmy_, mildew is a compiler backend for STD, but it still has very few features 13:14
jimmy_, there's still elf
jimmy_ thanks
mberends masak: hi, did you pull my proto.perl5 yet? 13:15
masak mberends: oh hai.
nope, will immediately.
ruoso mildew: say "Hello to jimmy_";
p6eval mildew: OUTPUTĀ«Can't locate object method "term__S_389identifier" via package "STD" at ../../src/perl6/STD.pm line 1236.ā¤Ā»
ruoso pfft... 13:16
it seems that a lex needs cleaning
jimmy_ std: say 'hello to jimmy_';
p6eval std 25585: OUTPUTĀ«ok 00:02 33mā¤Ā»
masak mberends: nice. 13:17
mberends: I might as well ask you directly: what do you consider the greatest weakness of the .perl5 version to be? 13:18
(compared to the bash version) 13:19
13:21 pmurias joined
mberends sorry for delay, phone call 13:22
masak np 13:23
another way to ask the same question: when do we switch over?
mberends difficult to answer while at $work, will have to think hard about it. in general, no drawback and even maybe an advantage on Windows. 13:24
jnthn People are more likely to have Perl on Windows than bash... :-) 13:25
mberends I'll be online this evening, must do $job now. your availability?
Matt-W jnthn +5 Insightful
pmurias ruoso: hi
lambdabot pmurias: You have 2 new messages. '/msg lambdabot @messages' to read them.
ruoso hi pmurias 13:26
masak mberends: I'll be here for another three hours.
mberends: will happy-hack tonight, possibly on proto.
mberends: do you use 5.10 features besides 'say'? can we do without the 5.10 req?
Matt-W Hurrah for evening hacking
mberends only 'say' drop to 5.8 if you like.
masak Matt-W: 'bout the only kind I have nowadays. oh, and weekend hacking.
mberends: I'd like to drop as low as I can. :) 13:27
pmurias ruoso: i'm going to work on the little things now so mildew can run (most) of sanity tests now
masak but 5.8 might be enough.
Matt-W masak: me too. Not sure if I'll get any in tonight between music and aikido :(
mberends sorry, must go
masak mberends: o\
o/
mberends waves
ruoso pmurias, I'm actually quite anxious to have the sanity tests passing...
13:28 mberends left
pmurias ruoso: if you know how RoleHOW should look like but are blocking on the little things required for it, i could implement them 13:28
masak Matt-W: I'm very exited about Form. I wish you a lot of time to work on it. :)
ruoso pmurias, the only thing strange in RoleHOW is it being able to create the punned class which will require some more work 13:29
pmurias, the other parts of RoleHOW are basically the same thing as PrototypeHOW
i.e.: adding an attribute, adding a method
although it's simpler than PrototypeHOW in many ways 13:30
(except by having to be able to pun a class)
13:32 skids left
Matt-W masak: Just don't wish for that to be caused by any more aikido accidents, they're painful 13:33
13:33 smtms left
masak Matt-W: I promise not to wish your extra time to be caused by any more Aikido accidents. 13:34
Matt-W masak: excellent, thanks :)
13:37 [particle] joined
ruoso pmurias, it seems you forgot to add RoleHOW.pm 13:39
pugs_svn r25586 | pmurias++ | [mildew] add missing file 13:41
ruoso very happy to see mildew/CORE
it looks amazing :)
13:54 jimmy_ left
pmurias how do i get the first positional from a Capture? 13:56
the n-th positional more generally 13:58
ruoso you can use .[] 13:59
14:01 jimmy_ joined
pmurias and the number of elements with .elems 14:02
ruoso I think so
pmurias, you can already coerce a Capture to an Array 14:03
and it will dwim
14:04 mikehh left 14:10 namenlos left, namenlos joined 14:13 mikehh joined
ruoso pmurias, there are two things that I would need for RoleHOW that maybe you could help me... 14:17
both in PrototypeHOW
(since this basic RoleHOW will pun classes that use PrototypeHOW)
one would be $object.^clone 14:18
and the other $object.^compose_role
14:23 r0bby_ left 14:24 r0bby joined
ruoso pmurias, running perl mildew t/array.t takes forever here... can you successfully execute it? 14:25
14:26 kane_ joined 14:31 pmurias left, pmurias joined
pmurias ruoso: checking 14:32
ruoso: it fails due to a wrong test coutn 14:33
* count
ruoso hmm...
ah...
wait...
maybe I haven't recompiled SMOP after the last update 14:34
pugs_svn r25587 | pmurias++ | [mildew] fixed test count
ruoso cleaning up smop and trying again... 14:35
ruoso running make in src/perl6 as well 14:36
ok... massive recompilation of everything solved the problem 14:40
14:50 skids joined 14:52 ejs1 joined
pugs_svn r25588 | ruoso++ | [mildew][smop] rename PrototypeHow to PrototypeHOW for consistency sake... 14:56
r25588 | ruoso++ | [smop] add PRIMITIVES::idconst_eq
r25588 | ruoso++ | [mildew] first sketch on RoleHOW, still not working... need PrototypeHOW.compose_role and PrototypeHOW.clone
r25589 | ruoso++ | [mildew] make sure the identifier is FETCHed before sent to PRIMITIVES::idconst_eq 14:57
14:59 jimmy__ joined, jimmy_ left, jimmy__ is now known as jimmy_ 15:01 ejs2 left, nihiliad joined 15:04 ejs1 left 15:05 ejs1 joined 15:06 pmurias left 15:07 jimmy_ left 15:12 alester joined
alester I broked da Rakudo! 15:12
15:14 ZuLuuuuuu joined
skids In Containers.pod, Hash::exists only takes one key not a list of keys like the :exists adverb to postcircumfix:<{}> does, and I was wondering why, and also why there's a colon before the method name. 15:14
our Bool method :exists ( %hash: $key )
pmichaud exists used to be a method.
so I suspect that Containers.pod is out of date
skids rakudo: my %f = (1,2); exists(%f,1).perl.say; 15:15
p6eval rakudo e4bd26: OUTPUTĀ«No applicable methods.ā¤ā¤current instr.: '_block14' pc 108 (EVAL_16:49)ā¤Ā»
skids rakudo: my %f = (1,2); %f.exists(1).perl.say;
p6eval rakudo e4bd26: OUTPUTĀ«1ā¤Ā»
pmichaud rakudo still implements the old method form of exists. 15:16
skids And to note that's not a Bool.
alester pmichaud or whoever: My latest commits need to get back to master because my previous commits to master are buggy.
pmichaud alester: looking. 15:17
alester specifically d2f435b2cdca91227608e918352516132782e94f and d5afe72eb254deb5908ee3ada6bcb24c0fbc04ff 15:18
pmichaud I'm not sure we always want to recurse. 15:19
alester well, you don't have anything that checks for a value of $recurse. :-)
pmichaud agreed, that looks like a bug.
alester I think you always do, and the $recurse is just stolen from prove
pmichaud but the current behavior would have been to not recurse. 15:20
alester well, whatever you want to do is fine, but without my fix, t/harness doesn't run at all.
pmichaud it's been running fine for me all morning? 15:21
alester I don't know how.
You must have something different than on rakudo/master
pmichaud oh, I'm definitely using rakudo/master
what error would I be getting? 15:22
alester Look at github.com/rakudo/rakudo/blob/e4bd2.../t/harness
$recurse is only there once.
pmichaud oh. Looks like we don't have use warnings or use strict
15:23 |jedai| left
alester aha 15:23
THat's what I added to t/harness.
pmichaud right, that hasn't merged into rakudo/master yet.
alester Sounds like we've found a good reason to do so then. 15:24
pmichaud sure, I agree with that.
but obviously rakudo isn't broken (as in "fails to run tests") at the moment :-)
skids Another question from last night's reading around: We put pure Perl6 in the setting so other implementations can use it. We put optimized PIR in src/classes. Where would we put implementations that are embedded PIR wrapped in Perl6 declarations? 15:25
pmichaud I'm not sure that setting will be "pure Perl6"
alester yes, but the other patch of mine is definitely a breakage
pmichaud alester: noted, I'll be sure to apply them together.
alester ok
please do, because then I want to update the gen_whatever to not even bother with specifying a filename. 15:26
pmichaud I'm working on getting a release out today -- I need to focus on that first.
alester ok 15:27
pmichaud I'm trying to decide where to put release tarballs. 15:28
I guess I can just stick them on my own server for the time being, until we have a more official place.
alester ok, I just removed the file specifying in build/gen_metaop_pir.pl, since we never use that. 15:31
15:31 ZuLuuuuuu left
alester So all those patches from me need to get applied in sequence. 15:31
pmichaud yeah, I still need to figure out a workflow for managing the queue. 15:32
dalek kudo: d0739a3 | (Patrick R. Michaud)++ | docs/spectest-progress.csv:
spectest-progress.csv update: 314 files, 7041 passing, 0 failing
pmichaud github makes it easy to apply commits, but not necessarily so easy to "test and then apply commits" 15:33
PerlJam pm: isn't that what branches are for? 15:34
pmichaud pj: perhaps, but I haven't seen an "easy" way to do that either.
masak pmichaud: every technological advance clears the way for new, interesting issues. :)
pmichaud masak: agreed. I think it's simply that new advances imply new ways of working, and I haven't figured out the new way of working yet. 15:35
jnthn Meh, we didn't quite quite make 7050 for the release.
Close though.
moritz_ I usually just commit, then test, and if it doesn't work I rest --hard
pmichaud moritz_: yes, but "commit to where"? 15:36
moritz_ pmichaud: to my local repo
PerlJam pm: locallly for sure.
pmichaud so, how do I get commits out of the fork queue into my local repo?
_that's_ the part I haven't figured out yet.
moritz_ pmichaud: git fetch git://url remote_branch; git-cherrypick $commit_sha1
pmichaud what's the url I use there? 15:37
moritz_ for example git://github.com/petdance/rakudo
.git
I don't know if there's a common URL for all of the queue
pmichaud so, for each item (or person) in the fork queue, I have to (manually) do a fetch?
right, it would be nice if I could just refer to the queue itself, rather than having to ask for each submitter's branch. 15:38
jnthn Would you only have to do that once per submitter? Or one per patch you want to apply?
pmichaud once per submitter, I think.
jnthn If it's once per submitter it's not so bad.
Sure, small initial cost. 15:39
pmichaud it's still a bit more copy+paste than I'd like to be doing.
jnthn But not a huge one IMO.
Sure, but it's not like we're getting 10 new submitters a week or something.
pmichaud I suspect it's once per submitter per session.
moritz_ you can 'git remote add $url commiter_name', then you can refer to taht repo by commiter_name
jnthn oh, if it's one per submitter per session it sucks.
PerlJam "per session"?
jnthn As in, can I do the fetch one in a lifetime?
And cherry-pick patches in the future? 15:40
Without having to re-fetch to get latest stuff?
PerlJam for the lifetime of the clone, I would think so.
alester hey, pmichaud, you may also wanna cherry-pick my README fix: 88b9da2ce43c4e8583cda28ace5144e0a618d70b
Explains how to get a tarball w/o GIT
pmichaud PerlJam: you mean that once I do a "git fetch", I can refer to commits in that repo without having to do anything further (even if I do subsequent "git fetch" on other repos)? 15:41
PerlJam pm: I'm not exactly sure. You may have to modify .git/config, but once that's done, yes. 15:42
(I don't know if fetch automatically updates .git/config)
moritz_ I think git-fetch'ing doesn't remove previously fetched stuff 15:43
pmichaud I'm not thinking of "remove previously fetched stuff" as much as "maintain the association for future cherry-picks"
but just a sec, I'll give it a try.
alester: applied 88b9da2, thanks
hmmm, perhaps using the integration branches will actually work for this -- I'll have to give that a try in a bit as well. 15:45
dalek kudo: e9a06c1 | (Andy Lester)++ | README:
Added explanation of how to get Rakudo without git. Minor punctuation fixes.
pmichaud (reaching 7050) the release hasn't been cut yet, it's not too late to reach that goal if someone wants to pass nine more tests.
although that might've happened already :-) 15:46
as my spectest-progress values are always 00:00 CST
15:48 eternaleye left
alester I'm half-considering rolling out rakudo.org w/o the backlog of blog entries converted. 15:48
thoughts?
pmichaud I'd be okay with that. 15:49
especially if the blog entries can remain reachable somehow.
alester mmm, hadn't thought of that.
pmichaud from a user perspective, I don't see a big issue with keeping the existing blog entries in MT, and just putting new blog entries into dru
alester I'd make archive.rakudo.org and redirect /200[89]/ there 15:50
pmichaud sure, that'd be fine.
moritz_ likes that idea
alester I'd just have to turn off all comments on those entries. 15:51
Also, we need some something to put atop dru.rakudo.org
with its new theme that is not the same as Parrot's
pmichaud are there some themes to select from? 15:52
alester themegarden.org
jnthn Who can draw a camel doing marshal arts, with a speech bubble "This is MY way"?
pmichaud drupal 5, 6, ...?
jnthn *martial
pmichaud we have to be careful about using camels. 15:53
jnthn yeah I know
moritz_ jnthn: camel + perl is copyrighted by O'Reilly
alester I was going with themegarden.org/drupal6/?q=search/n...theme=deco
jnthn It wasn't an entirely serious suggestion. ;-)
alester That was Alison's 2nd choice for parrot.org, and I like it. 15:55
Matt-W jnthn: an onion doing martial arts :)
aikido onion 15:56
pmichaud I'm fine with that for now -- we can always switch it later.
skids annoying re-mentions the "oasis" theme meme.
alester I'm an idiot. Idon't need another hostname.
I can jsut redirect /200[89]/ to /archive/200[89]/
and not make Google cranky
skids After all, that's the way of th Camel -- from oasis to oasis.
alester ok back to code review.
I love having an actual task. 15:57
pugs_svn r25590 | ruoso++ | [mildew] implementes $foo.^bar
ruoso std: my $x = 10 but Imprecise(0.1); my $y = 9.99; $y ~~ $x; 16:10
p6eval std 25590: OUTPUTĀ«Undeclared name:ā¤ Imprecise used at 1 ā¤ok 00:02 33mā¤Ā»
16:16 dalek left, dalek joined
masak so, any consensus on the name for the Rakudo A release? 16:23
jnthn Did we choose a naming scheme? 16:24
Was minerals/precious stones the winner?
masak doesn't know 16:25
but let's assume it was. :)
"Amethyst"? 16:26
masak has fond memories of this precious stone from playing Robin Hood in the early '90s 16:27
"Conquest of the Longbow".
s/st/sts/
alester some time we need a "make parrotclean" target. 16:31
no no, stones is yucky.
Let's get more interesting!
For instance, city names are far better than stones. 16:33
ruoso suggests Pindamonhangaba
alester City names that are also band names could do us for at least a year.
Chicago, Boston, Toronto, etc
How about cities that have hosted YAPC in the past?
or jsut general Perl events. 16:34
Houston, Belfast, Toronto, Chicago, San Diego, etc
BETTER STILL 16:35
cities with Perl Monger groups!
Each Rakudo release gets named after a Perl Monger group's city!
And then each group could "sponsor" that release by telling the world about it.
ruoso @tell pmurias the first sketch of RoleHOW is there. We need ^compose_role and ^clone on PrototypeHOW. That way we should be able to do "my $a = ::Multi.new; $a.variants.push(&some_variant)"
lambdabot Consider it noted.
16:36 Tene_ joined
alester Come on, someone love my idea with me! 16:36
pugs_svn r25591 | lwall++ | 1-ary values for chaining operators should always be True even if negated 16:38
masak alester: I'm slightly intrigued. 16:41
but I like stones, too.
16:45 justatheory joined 16:47 Tene left 16:51 dukeleto left
pmichaud I like the perl monger group idea. 16:51
jnthn Aye
I liked the idea of cities generally.
pmichaud but I still want to preserve the alphabetical ordering.
jnthn That's OK, there are probably enough PM groups?
To find ones starting with each letter. 16:52
I'll provide B. ;-)
pmichaud What would A be?
jnthn Amsterdam? Maybe Austin (Texas) has a PM group?
pmichaud oh, sure, I'm familiar with Austin.pm 16:53
jnthn There's gotta be more options than that. :-)
pmichaud they're even reasonably active.
(far more active than DFW.pm, at any rate)
masak Rakudo Austin.
masak likes
jnthn Same.
pmichaud I did like the minerals approach, though.
jnthn Yeah, I don't dislike that one.
masak well, we can't do both. :) 16:54
pmichaud we _can_
masak um.
probably shouldn't.
pmichaud because eventually we'll move out of "development" releases into "official" ones.
jnthn Rakudo Austin Amber
masak Rakudo Amsterdam Amethyst
pmichaud so we could do minerals for one series, and .pm groups for another 16:55
masak very well.
jnthn Aye.
masak (many releases)++
pmichaud so the question becomes ... which first? ;-) 16:56
jnthn .pick ?
masak ooh!
jnthn Yet Rakudo choose. ;-)
16:56 khisanth_ joined
moritz_ jnthn: was about to suggest that ;-) 16:56
masak rakudo: <stones cities>.pick()[0]
p6eval rakudo e9a06c: RESULTĀ«"cities"Ā»
pmichaud rakudo: <Austin Amber>.pick(1).say
masak :)
p6eval rakudo e9a06c: OUTPUTĀ«Austinā¤Ā»
masak double!
pmichaud is there a nice list of .pm groups somewhere? 16:57
jnthn pm.org
16:57 namenlos left, Khisanth left
pmichaud that has it by continent, I was hoping for something more unified. 16:57
oh, XML! cool!
www.pm.org/groups/perl_mongers.xml
16:58 khisanth_ is now known as Khisanth
masak was just going to point out the XML file 16:58
it's not grouped by continent, it seems
16:58 ludan left
pmichaud right, the xml appears to be 'master' 16:58
masak aye.
pmichaud okay, so finding groups is no problem.
jnthn Aye.
pmichaud I suppose we'd be starting off on the wrong foot to use AOL.pm as the first release :-P
jnthn Groups might even start volunteering once they know the scheme. ;-)
I just noticed that and was like, OH RLY? 16:59
masak pmichaud: don't you dare! :)
pmichaud okay, votes: cities or minerals? Rakudo already voted.
masak cities, then.
masak is on Rakudo's side on this one
moritz_ is for minerals, but only cares a tiny bit
pmichaud I think I'll vote cities, I like the idea of highlighting various Perl Monger groups. 17:00
jnthn Yeah, that's what clinches it for me.
pmichaud I like better the idea of getting them to compete for the privilege :-)
jnthn Aye!
cities for me 17:01
moritz_ but don't we want to keep alphabetical order
pmichaud I'm thinking the tar files will be rakudo-200902.tar.gz though.
yes, keeping alphabetical order
jnthn moritz_: Yes, but there are more than one pm group per letter of the alphabet for many letters.
pmichaud so Austin, Bratislava, Chicago, DFW, ... etc 17:02
masak which would be the first problematic letter?
pmichaud oddly, Bratislava.pm doesn't appear in the xml file
masak X is problematic, right?
pmichaud in some sense I'm hoping we don't make it to X 17:03
moritz_ I didn't know there are so many .pm groups
alester wait, alphabetical?
Why's that?
pmichaud alester: so that people can easily determine which release is later.
17:03 namenlos joined
masak alester: increasing versions. 17:03
alester moritz_: That's part of the goal, is to bring to light the PM groups.
pmichaud: That seems fraught with peril.
pmichaud alester: why is that?
PerlJam pm: cities +1 from me.
alester well, eventually you'll run out. 17:04
PerlJam hopefully we'll have a perl6 by then.
pmichaud alester: I think we'll want to switch series or numbering before we run out.
jnthn pmichaud: OH RLY?
pmichaud I'm primarily talking about the development releases at this point for A-B-C-D-...
pugs_svn r25592 | putter++ | [elfparse] Build elfrx without remains_of_Regexp_ModuleA.pm (but it's still used by t/ as a parser bypass for direct-to-IR rx engine testing). rx_prelude: regexen changed to token's, and regex support for t/ improved.
alester And part of the idea of the cities is to get citiies vying for support.
jnthn We exist!
pmichaud: I can find it in the XML file... 17:05
alester how about Rakudo release #1: Chicago
Release #2: Bratislava
etc
jnthn erm
pmichaud I don't like going 1-2-3 at this point.
jnthn No
pmichaud makes it look too much like 1.0 2.0 3.0
alester Why?
hmm
jnthn I agree. Alphabetical ordering will work fine and long enough.
alester So you want sequencing without numbers
PerlJam (hints for humans)++ 17:06
alester What's A going to be?
pmichaud if we want to do cities in non-alphabetical sequence, then I think we should wait until we've imposed a different ordering scheme (i.e., not for the development releases)
I'm leaning towards "Austin" for A. It's close by to where I am, and they have been doing some active p6 stuff lately (at least internally) 17:07
alester The "cities vying for naming" might be a non-issue anyway.
nobody wmight care.
Then yeah, go with Austin.
And then announce when the next one will B
pmichaud (I'm on the Austin.pm mailing list)
I'm pretty sure we know what B will be :-)
alester and the B groups can say "We want it we want it"
why, what will B be?
pmichaud surprisingly, Bratislava.pm isn't in the XML file.
masak Copenhagen.pm... 17:08
alester I think groups ought to WANT it.
have Chicago and Copenhagen duke it out.
masak aye.
pmichaud a key member of the rakudo development team has already spoken for B
yes, I think the C groups might be the first battle :-)
alester What, I'm not a key member? :-)
jnthn pmichaud: Bratislava.pm is there... :-| 17:09
jnthn can find it
alester jnthn: Are you Bratislava?
pmichaud yes, you are. But Copenhagen paid for my trip to YAPC::EU
jnthn alester: Yes
alester OK.
jnthn alester: Well, I *live* there.
alester So you have A & B, and then we can announce that C is up for grabs, and so tell us why YOUR PM group should be the C group.
pmichaud jnthn: odd -- when I search the XML for 'brata' I don't see it.
jnthn pmichaud: that's because you want to search for brat*i* ;-)
PerlJam pmichaud: because it's "brati"
alester I REALLY like this idea. :-)
And not just 'cause I thought of it. :-) 17:10
pmichaud sorry, "brati" doesn't find it.
17:10 ejs2 joined
PerlJam pm: in browser? match case? 17:10
pmichaud decides to try something other than firefox search.
PerlJam pm: found it for me.
jnthn haha!
pmichaud match case is off
masak Fx bug? :)
jnthn I'm used to people not being able to find it on the map, but in an XML file is a new one. :-)
PerlJam jnthn: heh 17:11
alester So Austin goes out today?
pmichaud apparently firefox search doesn't deal well with xml
yes, Austin should be out today.
I'm building a release script at the moment.
PerlJam pm: which version of FF?
alester pmichaud: Is it calendar-based?
will it always be the Nth day of the moth?
pmichaud it's going to be based on parrot's release schedule 17:12
alester last Th of the month?
based how
pmichaud generally 2-3 days after Parrot release
alester ok
So the third week of each month
17:12 hercynium joined
pmichaud yes, depending on week boundaries 17:12
alester why?
It's still always the third Tuesday + 2-3 days
pmichaud for example, the third tuesday might be followed by the fourth thursday. 17:13
alester which is still always "3rd week"
ok
pmichaud but yes, it's always third tuesday + ~2 days
alester So
you can come up with a schdule
or I will.
Want me to?
I'll crank it out real quick
pmichaud I'll do it -- it'll go in the announcement I'm making for the release.
alester I think it oughta be in the file.
pmichaud oh, if you just want to create a file with the schedule, that's fine.
masak has to go now
have a nice release!
alester SCHEDULE?
pmichaud docs/release_guide
alester RELEASES?
pmichaud docs/release_guide.pod 17:14
17:14 masak left
pmichaud (we'll put the schedule in with the guide) 17:14
alester Oh, I was thinking it'd be in the root.
PerlJam Will the rakudo release use whatever revision parrot was at for its release?
pmichaud I'm trying to keep root clean. 17:15
alester make it MORE OBVIOUS
yeah, but our regular releases are a BIG WIN
pmichaud that's what things like NEWS and ChangeLog are for, then.
17:15 ejs2 left
alester ok, docs/release_guide.pod it is 17:15
pmichaud pj: firefox 3.0.5, fwiw
pj: Rakudo will use whatever revision of Parrot is appropriate for the release 17:16
pj: that may or may not be parrot's "head" at the time
jnthn pmichaud: I have that, but on Windows. Clearly Windows is better. :-P
pmichaud pj: but it should always be >= parrot's monthly release
PerlJam gotcha.
pmichaud pj: ideally I'd like it to be the revision of parrot's monthly release, which is part of the reason for doing it shortly after Parrot release 17:17
PerlJam (I used FF 3.0.6 on ubuntu and it's find worked fine for that XML)
pmichaud alester: for now, let's say "two days after planned Parrot release"
PerlJam pm: Would you say that rakudo release X is guaranteed to work for parrot release Y (for some appropriate X and Y)?
alester ok, I was gonna say 3
but ok, two 17:18
PerlJam s/for/wirht/
er, s/wirth/with/
pmichaud alester: we had a discussion about this in the conference call -- minimizing delay between parrot release and rakudo release is desirable (for functional reasons)
alester that's fine, not disagreeing. 17:19
pmichaud PerlJam: each rakudo release is intended to work with whatever version of parrot is in PARROT_REVISION
s/release/snapshot/
17:19 ejs1 left
pmichaud for monthly releases, we'd like PARROT_REVISION to correspond to a Parrot release. 17:19
I'm careful about "guaranteed to work" :-)
PerlJam clearly. 17:20
alester pushed. 17:22
moritz_ I'll probably have time to blog about a Perl 6 or Rakudo topic this coming weekend - any specific suggestions for a topic? 17:24
alester City naming. :-) 17:25
moritz_ alester: I guess that pmichaud will do that as well, so I decline :)
alester Nothing wrong with making more noise. :-)
moritz_ I can mention it. 17:27
any more ideas?
alester mmmmm, do we have a repository of example Perl 6 code somewhere? 17:28
I'd really like to see one.
pmichaud there's one on github
alester That'd be a good topic.
I'd like to get some of that example code into the Rakudo test suite
and run tests against it.
pmichaud I'm not wanting the Rakudo test suite to grow very far.
alester Does ./perl6 fib.pl return "1 1 2 3 5 8 13..."
pmichaud The point of the Rakudo test suite is simply to test enough that it's working.
alester pmichaud: Because it should all be in the spectests? 17:29
pmichaud other tests belong in the official suite.
alester that's fine
I think it's easier to use the rakudo one for intial development and then move it over
if that's not a problem.
pmichaud why is it easier? 17:30
alester one repo
pmichaud I think it's easier to just push it into the pugs repo directly.
alester yeah, i can see that too
anyway, examples == good
and I'd like to publicize them
pmichaud we can certainly create more subdirectories in pugs for tests
alester for my own benefit, if nothing else, because I need more code to read. :-)
pmichaud i.e., at the level of t/spec instead of being within t/spec
alester my $pop = @array[*-1] was entirley new to me, for example. 17:31
pmichaud that's one that I'd prefer to move out of the rakudo suite, actually.
*-1 isn't necessary for running the test harness.
alester that's fine.
But I mean, the more sample code there is to see, the more of these weird differences there are to see.
sample code as in actual usefulness. 17:32
not just *.t
PerlJam when will rakudo's Makefile get an install target? 17:40
(I have no idea what "install" really means for rakudo other than copying the fakexecutable to an appropriate place) 17:41
alester PerlJam: When there's something that's meaningful to install. 17:42
pmichaud PerlJam: it'll get an install target after Parrot's install settles down a bit more.
eventually we're expecting to get rid of the fakecutable
PerlJam I just built rakudo from an installed parrot on feather. It just worked. :-) 17:43
pmichaud PerlJam: I don't quite see how. 17:45
PerlJam what do you mean? 17:46
pmichaud by "installed parrot", what do you mean?
where did Rakudo put the perl6.so shared library?
PerlJam There's a parrot in /usr/local/bin
17:47 ejs joined
PerlJam well, that's why I asked about "install" for rakudo. I got a perl6 binary out of the deal, but I knew that couldn't be all of it. 17:47
alester Ther'es also a lot of *parrot* around your filesystem that it shouldn't be.
pmichaud PerlJam: I'm thinking that your copy that was built didn't use the installed parrot. 17:48
either that or you're the one that installed parrot on feather :-)
in which case rakudo used your build copy instead of the install copy.
looks like it. 17:50
17:50 aindilis` left
pmichaud "/usr/local/bin/parrot_config build_dir" reports "/home/duff/parrot" 17:50
PerlJam rakudo is just too smart then. :)
pmichaud so if you were to "make realclean" in your /home/duff/parrot, then your fakecutable will stop working.
PerlJam gotcha.
pmichaud and anyone else on feather who tries to use the /usr/local/bin copy of parrot to build rakudo will not have write permission to your /home/duff/parrot/runtime/... directory 17:51
PerlJam okay, then I won't worry about it. (I was just seeing if the "easy" things were easy)
pmichaud (to store the shared library)
17:52 [particle] left
PerlJam la 17:52
17:52 Exodist left 17:53 Exodist joined
pmichaud for anyone who wants to try my first cut at a tarball for rakudo: www.pmichaud.com/perl6/rakudo-200902-test.tar.gz 17:53
moritz_ pmichaud: testing it right now 17:54
pmichaud I'm running off to lunch, will read scrollback when I get back 17:55
pugs_svn r25593 | lwall++ | [STD] fix post-declaration to do the re-lookups in the correct pad
18:07 [particle] joined 18:14 ejs left
diakopter TimToady: it would help me to see STD's tree for each of the spectest .t files... is there a way to get it to output each one's to a file in the same dir as the .t? perhaps filename.t.ast? 18:16
moritz_ diakopter: the html syntax hilighter does that 18:17
18:17 Psyche^ joined
diakopter moritz_: oh? cool. :) 18:17
moritz_ diakopter: you get a "tree" when you hover over a piece of code
diakopter: see also perlgeek.de/blog-en/perl-6/parse-tree.html 18:18
diakopter do we have these .html autogenerated on perlcabal.org somewhere? 18:19
TimToady or just run viv on the file
diakopter (because that would be really cool)
moritz_ diakopter: yes, there is such a thing somewhere 18:20
diakopter oh!
wow, all kinds of things I've missed somewhere along the way.
moritz_ perlcabal.org/~azawawi/html/
pugs_svn r25594 | lwall++ | [STD] catch .[-1] error; suppress undef warning from previous patch 18:22
diakopter um, that... rocks.
what determines which colors...? 18:23
moritz_ there's a list of recognized tokens... 18:24
and it walk from leaf to root until it finds the first recognized token
the exact color coding doesn't adher to a particular logic
diakopter ah, cool.
so... if this were ajaxy.. one could click on a node and change stuff, and it might round-trip it to STD on the server? :P 18:26
kinda like trypugs I guess 18:27
18:27 lambdabot left
diakopter wonders if mod_perl could handle STD.pm 18:28
though I guess you'd want it in a separate process. 18:29
18:30 lambdabot joined 18:33 Patterner left, Psyche^ is now known as Patterner 18:40 M_o_C joined 18:45 payload joined 18:47 kane_ left 18:49 justatheory left 18:50 justatheory joined 18:53 frioux joined 18:54 Ariens_Hyperion joined 19:06 schmalbe joined
pugs_svn r25595 | lwall++ | .[-1] is now a parsefail, and .[$minus_one] must fail at run time 19:06
ruoso hmm... how is the way of accessing a list backwards 19:08
?
moritz_ *-1 19:09
ruoso hmm 19:13
PerlJam I guess if you want to programmatically index both ways you have to do [*+$offset] ?
ruoso PerlJam, I don't think that will work for forward access, only bacward... 19:14
PerlJam I'm not sure how you could do $foo = *-1; @arr[$foo] and have it work right 19:15
(unless Whatever was really really lazy
moritz_ PerlJam: *-1 constructs a closure
PerlJam ah. I was thinking it was syntactic 19:16
ruoso and postcircumfix:<[ ]>(Code $closure) calls it with the size of the array as the argument?
moritz_ yes
the question is if @array[2..$-2] can be made to work 19:17
ruoso you mean 2..$_-2
moritz_ *-2
is what I meant 19:18
ruoso hmm... good question.. how far does * contaminates?
std: my $range = 2..*-2 19:19
p6eval std 25595: OUTPUTĀ«ok 00:02 33mā¤Ā»
ruoso let's see what it parses that into
19:20 rodi joined
ruoso std calls it VAST::Nonchaining 19:21
I'm not really aware of what that is...
but it does have the entire 2..*-2 expression into this single VAST::Nonchaining
moritz_, so I presume it would DWYM 19:22
19:23 Maghnus- joined
ruoso oh wait... it does (2)..(*-2) actually 19:23
PerlJam that still sounds like it would DTRT 19:24
ruoso hmm...
it will depends if infix:<..>(Int,Code) DTRT
PerlJam right 19:25
ruoso if it just curries the other closure, it should be ok
std: my @array = 1..100; my @slice = @array[(* * 0.5)..(* - 1)]; # stretching the concept 19:27
p6eval std 25595: OUTPUTĀ«ok 00:02 34mā¤Ā»
ruoso but that should probably be better written as 19:28
PerlJam (* * 0.5) is half of Whatever?
ruoso yes
19:29 mberends joined
ruoso std: my @array = 1..100; my @slice = @array[{ ($_ * 0.5)..($_ - 1) }]; # considerably more readable 19:29
p6eval std 25595: OUTPUTĀ«ok 00:02 34mā¤Ā»
ruoso But it sure needs a very good documentation on which operations just curry the closure and which ones evaluate it 19:31
TimToady yes, that's why I was discussing whether this was a "new mistake" on p6l 19:32
but I think it's a bit like other placeholders--don't use it where it's not clear 19:33
ruoso but "* * 5" is simply weird
while I do like all the lazyness, I have to agree that this is becoming overly confusing 19:35
specially because Whatever shares the same character as the multiplication 19:36
what are other foreseen common uses of this Whatever magic? 19:37
(I mean generating closures)
payload map(* < 3, @array) 19:38
TimToady doctor, it hurts when I do this... 19:39
19:39 Maghnus left, Maghnus- is now known as Maghnus
ruoso maybe it wouldn't be a bad idea to assume that only number operations generated closures... 19:40
pmichaud moritz_: any luck on the tarball build?
TimToady * < 3 can be fed to anything expecting a smartmatch
ruoso and I don't include .. as a number operation
TimToady * lt "A"
ruoso ok, let me rephrase it... 19:41
maybe it should never curry another closure...
I mean...
infix:<lt>(Whatever,Str) returns a closure 19:42
but
infix:<lt>(Closure,Any) doesn't
and resolves that Closure to something
this will drop the support for @a[2..*-2] 19:43
TimToady so you'd disallow * % 3 == 1
ruoso yes...
after all, it's not that all smaller than { $_ % 3 == 1 }
TimToady ETRUENUFF 19:44
ruoso having to maintain a mental list of which operators curry another closure or invoke the closure seems like a nightmare
so this way, every operator that receives a closure, invokes the closure 19:45
every operator that receives Whatever, returns a closure
and that's all
TimToady I'd only remember the special ones, myself, like 42 xx *
well, it'll be easy enough to play with it both ways and see what works out better 19:46
19:46 mberends left
ruoso because if you take that lazyness really seriously... you could think that even .[] could just return a closure 19:46
TimToady I never take anything seriously, except when I do.
and often not even then
diakopter how often do you when you do when you do? 19:47
TimToady all the time 19:48
ruoso .oO( I think #perl6 is the channel that can keep non-senseness mental exercises longer ) 19:51
19:53 mdxi left
pugs_svn r25596 | lwall++ | [STD] do a better job of contextualizing per-parse variables 19:56
r25596 | lwall++ | (tryfile was propagating errors from one file to the next)
dalek kudo: f4d2486 | pmichaud++ | README:
More README improvements.
kudo: 78023fa | pmichaud++ | build/Makefile.in:
Makefile targets for creating MANIFEST and a release tarball.
kudo: b412361 | pmichaud++ | .gitignore:
Ignore any MANIFEST file.
diakopter ruoso: well, the irclogs keep them forever ;) 19:57
moritz_ cd
argl
TimToady or maybe we could say that only comparisons return Closure for Closure
that would give us * op 42 == 582 in general 19:58
19:58 schmalbe left
TimToady and maybe only for the first arg, so any closurely phrase needs to start with the * 19:59
ruoso ok... that seems sane
three rules
maybe it's better not having a fourth
TimToady since most of the specials take * on the end
ruoso so the rules are: 20:00
1) every operator is ellegible to receive Whatever, if they do, they are supposed to return a closure
TimToady which gets us +* and ~*
ruoso 2) every operator is ellegible to receive a Closure. 20:01
3) comparison operators are allowed to curry a closure, if that is the first parameter. Every other case should invoke the closure...
TimToady with what?
ruoso with whatever makes sense to that operator
if nothing makes sense, then it shouldn't receive a closure 20:02
TimToady hmm 20:03
1 < * < 10
they'll want it
ruoso isn't that parsed as ((1 < *) < 10)
pmichaud < is chaining.
TimToady chaining ops
even though it can also be written * ~~ 1..10 or some such 20:04
ruoso but isn't that still called as infix:Ā«<Ā»:(Int,Int)...
?
TimToady sure, but its a rhs, so violates your 3rd rule 20:05
ruoso no, it doesn't... it fits the first rule
infix:Ā«<Ā»:(Int, Whatever)
TimToady ah, okay
ruoso infix:Ā«<Ā»:(Closure, Int)
TimToady interestingly, it disallows 1 < * < 5 < * < 10 rather nicely 20:06
it's even quite likely that the compiler can catch the usual errors and say "you have to write an official closure there" 20:07
given we know the multi candidate list 20:08
pmichaud alester: please please please remove [email@hidden.address] from your address book or wherever you're getting it from. That's no longer a valid mailing list.
ruoso TimToady, indeed... I think I'm pretty happy with it 20:09
20:10 smtms joined
pmichaud so, @a[*/2+$i] would end up with a closure for the first operator that is immediately evaluated? 20:11
or is postcircumfix:<[ ]> special also?
ruoso @a[*/2 + $i] would probably fail
lambdabot Unknown command, try @list
ruoso because infix:<+> doesn't know what to do with a Closure
pmichaud 20:01 <ruoso> 2) every operator is ellegible to receive a Closure.
ruoso <ruoso> if nothing makes sense, then it shouldn't receive a closure 20:12
pmichaud except I think I can argue that @a[*/2+$i] ought to make sense.
ruoso not to +
only to [ ]
.[ ] can indeed receive a closure 20:13
so you can @a[{ $_/2 + 1 }]
which is more readable, IMHO 20:14
TimToady could still relax it later, maybe with a pragma
ruoso it doesn't even need to be a pragma
TimToady use currying :harder
ruoso it just need to install the other variants
pmichaud @a[{ $_/2 + 1 }] feels funny to me also... it's too similar to @a[ $_/2 + 1 ]
lambdabot Maybe you meant: arr ask
TimToady well, probably needs to autogenerate them somehow, if user-defineds are included 20:15
pmichaud but yes, I guess we normally use the braces to delay evaluation, so perhaps the closure form isn't so bad.
ruoso that's my point
pmichaud in which case, is there huge value to the whatever form?
ruoso for the simple cases, it's still worth 20:16
map * < 3, @foo
TimToady sort +*, @list
context( *.label eq 'HERE' )
ruoso hmmm 20:17
ok... that's syntatical
TimToady current spec explicitly allows *.foo
ruoso right... and eq is comparison 20:18
pmichaud so that last one becomes equivalent to context( { { .label } eq 'HERE' } ) ?
TimToady also very useful for list comprehensions
ruoso pmichaud, yes
pmichaud the { .label } acts as an immediate block, then? 20:19
ruoso what do you mean by "immediate block"?
TimToady no
ruoso ah... 20:20
TimToady can't, until it knows its argument
ruoso it's really as it looks like
infix:<eq>:(Closure,Str)
that returns another Closure
TimToady which context smartmatches on
pmichaud but what does that returned closure look like?
TimToady passing the current context frame 20:21
ruoso pmichaud, it looks just like you've written
pmichaud I guess infix:<eq> has to return { { .label }.($_) eq 'HERE' }
ruoso ah... yes... 20:22
pmichaud because { .label } eq 'HERE' would return another closure :-)
ruoso sure sure... I wasn't aware you were talking about the actual implementation of eq
TimToady from the standpoint of eq just returns { $closure($_) eq $y } 20:24
pmichaud okay.
ruoso it might even be :(Closure,Any) actually
pmichaud I wonder what other interesting and useful effects come from allowing the comparisons to delay closure evaluation on their parameters. :-) 20:25
TimToady hmm, really wants the candidate list from the caller's scope though for eq
maybe it's a quasi:COMPILING to get the user's eq 20:26
ruoso TimToady, does :(Any,Any) takes that into acount to call eq:(Str,Str) after coercing to string?
TimToady good question, dunno 20:27
ruoso I'd guess not
TimToady could be a major semantic booboo
ruoso in fact..
pmichaud in Rakudo, eq does :(Any,Any) and coerces its arguments to strings before doing the comparison.
TimToady *which* comparison is the question
ruoso TimToady, I'm not really sure how importing different variants from different modules work 20:28
TimToady the definition of eq may differ in the user's lexical scope
we're trying to get to the point where we know the candidate list at compile time
pmichaud ah, that's tougher, yes.
TimToady but the Any,Any variant needs to call CALLER::eq somehow
ruoso hmmm... in theory it could be simple like that 20:29
sub infix:<eq> (Any $a, Any $b) { CALLER::<&eq>(~$a, ~$b) 20:30
but...
TimToady which could be a hidden parameter that passes the original candidate list down somehow
ruoso did you notice that I've just used other operator?
TimToady seems like it could get optimized to a ref to the existing candidate list, anyway
ruoso are you about to make the candidate list global? 20:31
TimToady the question is whether that has to regen the candidate list; probably it works okay
not at all
the symbol table entry found by CALLER::<&eq> presumably keeps its local candidate list
ruoso right... 20:32
but should it use CALLER for every operator?
because it does make sense, if you really think about it
TimToady then there's ~$a Ceq ~$b
but probably better to keep that explicit for now 20:33
ruoso sub infix:<eq> (Any $a, Any $b) { CALLER::<&infix:Ā«eqĀ»>(CALLER::prefix:<~>($a), CALLER::prefix:<~>($b)) }
TimToady use CALLER;
it's really very nearly almost a macro 20:34
ruoso I just have one thing to say about it... 20:35
gaaaaah ;)
rodi "really very nearly almost"++
TimToady looks like it could use a bit of syntactic relief in any case, but we can see what it desugars too 20:36
Tene_ TimToady: how does try { ... } differ from { ...; CATCH { $! = $^a } } ?
Is it just sugar? 20:37
ruoso TimToady, sub infix:<eq> (Any $a, Any $b) is displaced to CALLER {...}
TimToady macro infix:<eq>(AST $a, AST $b) { quasi:COMPILING { ~$a eq ~$b } }
except for the multiness of it
try ignores control exceptions
ruoso yeah... you just ruined it :)
Tene_ TimToady: does CATCH ignore control exceptions? 20:38
TimToady really very nearly almost I did.
yes, CATCH ignroes CONTROL
s/ro/or/
ruoso TimToady, maybe it's not that absurd to have a trait that says "this code runs with the CALLER as OUTER" 20:39
TimToady pick your setting at runtime
ruoso not just that...
pick a dynamic setting at runtime 20:40
TimToady, CALLER::.eval { } ? 20:41
TimToady ENOBRANESUGAR
lunch & 20:42
basically it's a little role-ish routine that wants to instantiate itself into the caller's symbol table first time it's called, I suspect 20:49
ruoso it is installed 20:50
it wants to *run* in that scope
which is something different
TimToady you're saying basically that it instantiates the generic semantics every time; I'm saying that can be cached 20:52
ruoso maybe we actually need an "operator" keyword
"operator" is a multi sub that runs in the caller scope 20:53
TimToady why wouldn't infix/prefix etc imply that in general? 20:54
ruoso because that's just their names?
TimToady it's probably too blunt an ax, since we will probably want to pick and choose which bits come from outside the caller's scope too 20:57
ruoso do we?
TimToady unless you want a lot of accidental infinite regresses
ruoso how so?
TimToady or force a lot of calls to CORE::
or SETTING, or whatever 20:58
ruoso I don't see the problem
TimToady if op calls back into the user's space when the writer was expecting CORE::op, it could loop
ruoso the "operator" runs *on top* of the CALLER
TimToady, I'd consider erroneus to "expect" CORE::op and not call CORE::op 20:59
but why would anyone "expect" CORE::op?
isn't that the problem we're trying to solve
?
20:59 mberends joined
TimToady here's another angle 21:00
we've pretty much reserved \op 21:01
we could say that \~$a \eq \~$b looks for the caller's version
yeah, I know... 21:02
ruoso but if you overriden Array
and one of this ops create an Array
you want that op to use the overriden Array
for instance... 21:03
infix:<..>
TimToady I just think the user will want fine-grained control of which ops come from where
ruoso if you created your custom Range
you want .. to use that
TimToady without writing everything in FOO:: form
ruoso TimToady, the problem is that Perl 6 reversed the usual way that overloading works 21:04
TimToady which way are you referring to?
ruoso usually the overload is in the object
Perl 6 puts it into the namespace
TimToady more precisely, into the language 21:05
ruoso but in the end, the overload is made by a regular scope lookup
TimToady that's what defines the lexicon
which makes me happy that it's called lexical scoping 21:06
pmichaud alester, others: While walking kids home from school I had another idea for numbering/naming releases.
TimToady but yes, we need a better way to write generic and semi-generic operators
lemme think about it s'more
pmichaud We can do .pm cities and number rakudo releases in sequence, but let's start with #14 21:07
thus this could be Rakudo #14 ("Austin")
moritz_ pmichaud: btw I tested your release candidate, worked fine
pmichaud then the cities don't have to be in alphabetical order.
ruoso TimToady, but I have to say that having the "operator" routine_def really fits very well in my head...
pmichaud starting with #14 avoids any 1.0 2.0 3.0 confusion 21:08
and emphasizes that we've already had quite a few development releases prior to this one.
ruoso TimToady, but again... if I do think sideways, that might not count much...
21:22 bacek left
jnthn pmichaud: Er. 14? 21:24
pmichaud jnthn: because we've already had ~13 rakudo releases 21:25
jnthn pmichaud: Why a number?
Oh, I should read backscroll on #parrot 21:26
pmichaud I'm thinking I don't want .pm groups to have to wait months or years to see their name in lights.
also, #14 emphasizes that we've had a history of regular releases already.
(and that we're still in "development" mode)
jnthn Hmm. 21:27
Don't feel too strongly on it either way.
pmichaud given that we've had a number of .pm groups that have been particularly helpful (Vienna.pm comes to mind), I'd like to give them the opportunity to be earlier.
in fact, I might go ahead and name this release "Vienna" for that reason. 21:28
jnthn Also I didn't find a .pm group starting with G. ;-)
Ooh, yes.
pmichaud waiting two years to honor Vienna.pm seems wrong somehow :-) 21:29
jnthn True!
Especially as they've helped Rakudo advance more quickly.
pmichaud exactly.
jnthn OK, I agree.
pmichaud April could be named "Oslo" then :-)
jnthn Yay!
So long as I get one named after my beloved Bratislava at some point, I'm happy. :-P 21:30
pmichaud especially since Oslo is sponsoring a good Rakudo/Parrot/Perl6 workshop.
jnthn Yeah, agree completely.
Oslo for April.
Vienna for Feb.
pmichaud fwiw, chromatic indicated he thought the system was sane also :-) 21:31
jnthn Does that mean Allison won't? <duck>
pmichaud I think she said it sounded pretty good also. 21:32
jnthn Woo.
pmichaud although she hasn't seen this latest incarnation
(she thought the naming after cities was good)
jnthn :-)
Look forward to the release! :-)
pmichaud yes, I'm just creating a NEWS file now and then I think I'll release what I've got.
if there are any problems with it, we can fix those in the next release. 21:33
jnthn For sure.
They're developer releases. :-)
Are we going to encourage bug reports against releases?
Or are we going to encourage people to verify with latest then report?
pmichaud I still encourage bug reports against head
jnthn OK, agree.
pmichaud and most of what I'm writing indicates that we tend to encourage downloading directly from head rather than a release. 21:34
jnthn Maybe worth noting that somewhere if you didn't already.
OK, cool. :-)
pmichaud The purpose of the release (to my thinking) is to snapshot progress, put some regular milestones in place, and start a cycle.
jnthn Aye.
pmichaud but I still would expect most people to work against 'head', and that we keep 'head' fairly stable.
if/when we discover we can't keep 'head' stable, we'll move to 'release' 21:35
jnthn IMO, head should as best as we can always pass the spectests.
pmichaud agree.
jnthn pmichaud: So, I'm off tomorrow on my travels. 21:39
Will be only occasionally about next week.
pmichaud jnthn: okay, I'll look for you to pop in occasionally. 21:40
jnthn: great work this week, thanks
jnthn It's been a pretty productive end to the month. :-)
pmichaud jnthn: we're likely to launch rakudo.org's redesign in the next few days, so keep an eye for that.
jnthn Sure, I will.
I got a login.
Would like to see a little box on the top of the homepage, like we have on parrot.org 21:41
That has a quick intro
To what Rakudo is
Before the latest news.
pmichaud we'll undoubtedly have that. In fact, I expect rakudo.org home to be more static and less news-y
jnthn Yes, I'd like that. 21:42
pmichaud so yes, like parrot.org
jnthn OK, good 21:43
alester so, pmichaud, are you completely replacing what I committed earlier today? 21:44
pmichaud alester: I'll revise it, yes. 21:45
alester are you creating a new one?
or modifying the one I commmitted?
pmichaud haven't decided yet.
alester More specifically: Should I delete the one I have in mine?
ok.
pmichaud probably easier for me to just create a new one.
I can use the text from yours that is currently in github.
or in the rakudo branch where it was mis-applied. 21:46
21:48 M_o_C left 21:50 skids left 21:52 pmurias joined 22:01 rodi left 22:15 Whiteknight joined
pmurias ruoso: the memory leakage warnings are getting very annoying 22:22
pugs_svn r25597 | pmurias++ | [smop] [mildew] 22:26
r25597 | pmurias++ | hacked in an only infix:<~>
r25597 | pmurias++ | fixed &infix:<==>:(int,int)
r25597 | pmurias++ | &say takes in multiple arguments
r25597 | pmurias++ | moved tests which fail for a long time into midlew/ROADMAP
r25597 | pmurias++ | t/01-sanity/01-tap.t works correctly
alester harness_junit, what? 22:30
Please say no!
dalek kudo: cdcb92c | pmichaud++ | docs/NEWS:
Initial version of NEWS for Rakudo.
22:34
alester Jay Hannah: can we also vie for names like DesMoinesSucks ? 22:36
Jay Hannah: childish sports rivalries might spur the masses
I'm glad we have Jay thinking of these things. :-)
(Tha'ts from an AIM chat w/him)
Vienna? WHy is Vienna the first one? I thought it was Austin.
pmichaud: I'd like to edit and spiff up the NEWS file some, if you don't mind, and can hold on for a bit. 22:41
pmichaud alester: jonathan and I would like Vienna.pm to be first because they've been sponsoring his work. 22:42
alester oh, good move. 22:43
Let's put that in the NEWS
Let's = "I will"
pmichaud that's fine.
alester I'm putting on my reporter/writer hat.
building on what youv'e started.
pmichaud the release won't be for a few hours yet -- I have some family events that will be occupying my time here soon.
I'm about to publish my version of release_guide.pod
based loosely on what you had 22:44
alester ok. I'm updating the NEWS
When do you see releasing?
>20:00?
pmichaud definitely. son has a soccer game at 19:30 22:45
so likely 22h00 or thereabouts.
alester Oh, ok, great.
I'm going to hammer on this a bit then.
jnthn wishes he hadn't screwed up his Rakudo build on his laptop just before having a conference to get up and fly to... 22:46
alester when did Vienna.pm start sponsoring you? 22:47
22:47 justatheory left, justatheory joined
jnthn alester: Let me check... 22:48
alester You can just say "summer of 2008" if you want. 22:49
22:50 mberends left
jnthn alester: use.perl.org/~domm/journal/36228 is announcement 22:50
more like spring I guess
dalek kudo: f45384a | pmichaud++ | docs/release_guide.pod:
First version of release_guide.pod, based on a proposed version
22:52
pmichaud jnthn: fwiw, rakudo now passing 7076 tests.
now I suppose you wish we were passing 7100! :-)
22:52 Caelum left
jnthn pmichaud: Ooh, nice! 22:53
pmichaud we're also failing one test -- I'll just mark it as todo
jnthn Yeah. :-P
Oh, fail?
Which one?
(No, I don't want to fix it. I want to sleep...)
pmichaud @a[-1] is now a runtime error.
lambdabot Unknown command, try @list
jnthn Ah, OK.
pmichaud I'll fix it, I'm planning to work on postcircumfix:[] soon anyway
but I'll todo it for the release.
22:54 kane_ joined
pugs_svn r25598 | pmichaud++ | t/spec: add a ?rakudo todo marker. 22:54
jnthn pmichaud: Perhaps you can do it as part of the refactor to mvoe to has a resizable pmc array? 22:55
Also, postcircumfix needs to become a parametric role and so we really want to have it in the setting...
22:55 Ariens_Hyperion left
jnthn I guess what I'm saying is, we both have bits we want to do with that bit of the codebase. 22:55
And feel free to hack in the branch I started. 22:56
pmichaud okay, although I have quite a few other pieces I'd rather hack on (pge and pct stuff mostly) 22:57
I'll just put in the quick-fix for slices and postcircumfix stuff for now; you can update it as appropriate. 22:58
jnthn OK sure.
If you're only planning on small tweaks rather than major overhaul, that's fine.
pmichaud yes, nothing really major.
jnthn I just didn't want us both trying something bigger at the same time. :-)
pmichaud what I'm doing should fit in to what you're doing pretty easily. Either that or your overhaul will end up completely superceding mine, and I'm not bothered by that. 22:59
my focus is going to be on settings, pge, pct, and public information for a while.
23:01 Caelum joined
jnthn OK 23:03
PGE things will be really great to have. :-)
23:04 skids joined 23:07 pmurias_ joined 23:09 aindilis joined 23:10 pmurias left 23:17 nihiliad left 23:19 alester is now known as AndyAway
diakopter TimToady: is there an expression-level(or thereabouts) syntax for quasi chaining of anonymous results? You know, so I don't *have* to [refactor statements to] name *anything* if I really don't want to... as in the pastebin I'm about to nopaste. 23:28
23:31 cas left, pmurias_ left, cas_ joined 23:35 bacek_ joined
jnthn -> sleep, night all 23:42
pugs_svn r25599 | bacek++ | [t/spec] Update reduce-le1arg to current spec. 23:53
r25600 | bacek++ | [t/spec] Update reduce-metaop to current spec.
wayland76 'night jnthn 23:55
23:59 hercynium_ joined