Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-02-18

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:10 [particle] joined #perl6
00:14 justatheory joined #perl6
00:30 alc joined #perl6
01:09 lisppaste3 joined #perl6
01:19 shinobi-cl joined #perl6
01:20 Oxygenfadd joined #perl6
01:29 hercynium joined #perl6
01:30 [particle] joined #perl6
01:30 Oxygenfadd http://pastebin.com/d694c8822
01:30 Oxygenfadd Why isn't this working ?
01:30 Oxygenfadd :)
01:37 nihiliad joined #perl6
02:04 eternaleye joined #perl6
02:07 aindilis joined #perl6
02:29 mikehh joined #perl6
02:37 alester joined #perl6
02:38 pugs_svn joined #perl6
02:40 agentzh joined #perl6
02:45 xinming joined #perl6
02:45 rhr_ joined #perl6
02:45 |jedai| joined #perl6
02:46 hercynium joined #perl6
02:49 broquaint joined #perl6
03:19 mikehh joined #perl6
03:30 pugs_svn r25371 | wayland++ | S16: Redid things in terms of trees, at least somewhat.
04:30 _jedai_ joined #perl6
04:53 alc joined #perl6
05:07 pugs_svn r25372 | putter++ | [elfparse] analysis.pm: Sketched in a new pass to aggregate intra-regex p5 re equivalents.  Reordered classes to match emit5.pm.
05:09 pugs_svn r25373 | wayland++ | S16: Started adding some DateTime stuff, but stopped pending some questions to the mailing
05:09 pugs_svn r25373 | wayland++ | list.
05:16 shinobi-cl left #perl6
05:25 rhr joined #perl6
05:47 jfredett_ joined #perl6
05:56 alester joined #perl6
06:08 eternaleye joined #perl6
06:15 pugs_svn r25374 | wayland++ | Bits and pieces, but mostly trying to clean up the list of unfiled functions.
06:17 eternaleye joined #perl6
06:26 Tene_ joined #perl6
06:29 pugs_svn r25375 | wayland++ | Fixed operator overloading calls.
06:33 DemoFreak joined #perl6
06:40 justatheory joined #perl6
06:42 meppl joined #perl6
06:42 Caelum joined #perl6
06:49 yahooooo joined #perl6
06:51 PantheraPardus joined #perl6
06:54 ashizawa joined #perl6
07:17 maerzhase joined #perl6
07:56 Sepheebear joined #perl6
07:57 pugs_svn r25376 | moritz++ | [t/spec] many small improvements:
07:57 pugs_svn r25376 | moritz++ |  * variable declarations found by STD.pm
07:57 pugs_svn r25376 | moritz++ |  * accidentially passing junctions to ok() (found by Rakudo)
08:17 pugs_svn r25377 | moritz++ | [t/spec] fudge test in multi.t that throws a backtrace (used to be dies_ok
08:17 pugs_svn r25377 | moritz++ | instead of eval_dies_ok which is why it didn't occured before)
08:19 iblechbot joined #perl6
08:20 masak joined #perl6
08:23 masak it's a bit unfortunate that the identifier 'Tree' is now squatted by an internal class in Perl 6, which is not general enough to reprenest an arbitrary tree data structure.
08:23 moritz_ is it? which class?
08:24 moritz_ (I didn't follow all these commits to S16 all that close)
08:24 masak there's now a Tree role in S16.
08:24 masak it represents some kind of directory structure
08:24 Matt-W Morning
08:24 masak morning, all M people!
08:25 bacek_ joined #perl6
08:25 Matt-W :)
08:26 masak also, the Date (!) role is in S16, and all its date components are typed as NumberName.
08:26 masak I haven't investigated why, but it seems strange to me at first sight.
08:26 masak also, "NumberName", regardless of its purpose, sucks as a name.
08:27 moritz_ aye
08:27 Matt-W hmmm
08:28 Matt-W 'Tree' seems inappropriate for something specialised to directories
08:29 masak mostly a bit squatty, according to me.
08:29 masak 'Tree' is even a common example when implementing recursive data structures.
08:30 Matt-W I could understand if it was File::Tree or something
08:30 masak already much better.
08:31 * Matt-W likes namespaces, probably due to his other life as a C++ programmer
08:39 dalek rakudo: 842ef38 | (Moritz Lenz)++ | Test.pm:
08:39 dalek rakudo: Import Ovid's Test.pm with improved diagnostics.
08:39 dalek rakudo: Also added some type declarations to avoid accidential
08:39 dalek rakudo: dies_ok 'some_string_here' that should really have been eval_dies_ok.
08:39 dalek rakudo: That already caught some instances in the test suite.
08:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​42ef380cc97234a85759f50b17ed652cd239f6a
08:45 masak moritz_++
08:45 masak that makes it feasible to use Test.pm in November and Druid.
08:48 moritz_ and it already caught some mistakes in the test suite
08:48 moritz_ for example eval_dies 'some string'
08:51 masak there you go :) everyone's happier
08:51 masak what about eval_dies 'some string'?
08:51 moritz_ that's why I did it ;-)
08:52 moritz_ erm, I meant dies_ok 'some string'
08:52 moritz_ which should have been eval_~
08:53 moritz_ I'd likek to make an alias 'git svnup' which does 'git svn fetch && git svn rebase' - any idea how to make an alias with two actions?
08:54 moritz_ ah, svnup = !two shell command here
08:54 masak there's a way, but I don't remember how.
08:55 masak I usually just do 'git svn rebase', and that seems to be enough.
08:55 moritz_ svnup = !git svn fetch && git svn rebase
08:56 masak have you tried just 'git svn rebase'?
08:56 moritz_ that doesn't fetch, does it?
08:57 moritz_ it's hard to test unless somebody commits something to the test suite ;-)
08:57 masak now who would that be?
08:57 * masak reads t/TODO
08:58 masak oh, it's t/TASKS
09:01 moritz_ ok, I'm now testing the expose-eigenstates branch
09:01 moritz_ if all goes well and nobody objects, I'll also merge it into master
09:02 masak rakudo: my %h is KeySet; %h = (a => True, b => False, c => True); say %h.elems; %h<c> = 0; say %h.elems
09:02 p6eval rakudo 842ef3: OUTPUT«sh: ./parrot: No such file or directory␤»
09:03 masak oh, it's rebuilding.
09:03 moritz_ it's two minutes after the full hour
09:03 moritz_ :/
09:03 masak I seem to hit that time quite often :)
09:03 moritz_ but I can tell you now that KeySet is NYI in Rakudo
09:04 Matt-W is the expose-eigenstates branch the one that provides a Junction.eigenstates method?
09:06 masak moritz_: I suspected that. but do you think the output should be "2\n1\n"?
09:07 moritz_ Matt-W: yes
09:07 moritz_ masak: I have to re-read the synopsis...
09:07 pugs_svn r25378 | masak++ | [t/spec/S02-builtin_data_types/keyset.t] added some basic tests
09:07 ludan joined #perl6
09:07 masak I can change it later if it turned out to be all wrong.
09:07 moritz_ ah, git-svn rebase really does a git-fetch first
09:08 masak and you tricked me into committing a test file :)
09:08 masak not bad. :)
09:08 moritz_ how very disgusting of me ;-)
09:09 masak aye, highly unethical. :)
09:09 moritz_ masak: but yes, I'd expect 2\n1\n
09:09 masak good.
09:15 wayland joined #perl6
09:15 agentzh joined #perl6
09:15 wayland Hi all.  Can anyone tell me how to have a function run when a new class is created?
09:15 wayland Do I name it "init", or is there something else?
09:16 moritz_ do you mean when a class is instantiated?
09:17 wayland yes, thanks :)
09:17 masak "init" works, then.
09:17 masak no, wait :)
09:17 moritz_ masak: but it's not automatically called, right?
09:17 masak that's what we use as a workaround right now.
09:17 moritz_ wayland: look for BUILD and .new in S12
09:18 wayland Ok, thanks.
09:18 moritz_ wayland: I feare it's not yet implemented in Rakudo
09:18 * masak gets confused between real Perl 6 and fake Perl 6 sometimes
09:18 wayland Fine -- I'm writing specs now, not implementing yet :)
09:18 moritz_ good ;-)
09:19 wayland Incidentally, for all those concerned about the trees, the API is intended for all trees (ie. XML, LDAP), not just files
09:19 wayland That's why I want to move it out of S16 eventually :)
09:21 masak wayland: I noticed that the Tree role contains the variable $cwn. that seems fairly file hierarchy specific to me.
09:22 masak wayland: if you ask me, implementing a general Tree role into the core of Perl 6, and expecting all implementations of Tree-like things to use it, is quite a risky thing to do.
09:22 bacek_ joined #perl6
09:23 masak and I'm not saying this lightly, because the same type of criticism has been directed towards the Web effort, and I'm not sure I buy it there.
09:25 bacek_ pugs: say ~ [\!=]  4, 5, 4
09:25 p6eval pugs: OUTPUT«1␤»
09:25 bacek_ yak.
09:25 wayland I agree that $cwn could appear to be filesystem-specific, but I'd like to suggest that anything that doesn't want to implement a $cwn should just return the same thing as $root
09:25 bacek_ Good evening.
09:26 wayland Incidentally, I don't expect everyone to use it, but I hope they will :)
09:26 wayland To which Web effort do you refer?
09:27 wayland Incidentally, with NumberName, what do you call something that can either be Int 1 or Str "January"? :)
09:27 masak wayland: it's just that I can easily picture a scenario in which the name 'Tree' is taken, and people are inconvenienced by such an important name being taken by something which is not used for very much.
09:27 masak wayland: I just remarked that some very different things all had the same type, and that I didn't immediately understand why it was named that way.
09:28 masak wayland: I'm referring to this grant proposal, and the ensuing discussion: http://news.perlfoundation.org/2009/0​2/2009q1_grant_proposal_webpm_-.html
09:28 wayland Re: Numbername: I agree the things are different; it needs reworking, but I want to design a calendar object before I do more work on that :)
09:29 wayland Re: Tree: I hope we can make it general and yet useful enough that people will *want* to use it
09:30 wayland That's why I'm specifically keeping both filesystems and XML in mind as I work on it :)
09:30 masak wayland: your argumentation sounds so much like mine in the case of Web. :)
09:30 wayland Re: Web stuff, thanks for the link
09:30 masak but I just don't believe that a general Tree class that satisfies everyone, or even a sufficient percentage (whatever that might be) exists, or can exist.
09:30 masak people have too different requirements for trees.
09:31 masak designing a language also involves knowing when not to decide things for the programmer.
09:31 wayland Can you give an example that doesn't work with what I said?
09:31 masak maybe, if I think about it some.
09:32 wayland That would be useful; I want to make trees work for everyone :)
09:32 masak if Tree is included in the synopses, it should be in the same place as all the other "container" classes.
09:32 wayland I agree about knowing when not to decide things.
09:32 moritz_ pugs: say [~] [\!=] 4, 5, 4
09:32 p6eval pugs: OUTPUT«1␤»
09:32 Matt-W Why do the things in Date have to be NumberNames rather than numbers?
09:33 wayland Because sometimes we want them to be "January" instead of a number :)
09:33 masak why not just enums?
09:33 Matt-W that's a formatting issue though
09:33 wayland Ok, I'll add "Investigate using enums" to my list.  And you may be right about it being a formatting issue
09:34 Matt-W If you're going to go down that route I think you need something more intelligent than Int|Str
09:35 wayland I've just written in my "TODO" list: Matt-W claims it's all a formatting issue, and that NumberName should die
09:35 Matt-W hah
09:35 moritz_ btw wayland++ for the spec work
09:35 wayland As I said above, I want to get a Calendar class going first, and try to figure out how that interaces with locale
09:35 pugs_svn r25379 | leto++ | Add tests for log10 with Inf's and NaN's
09:36 wayland Thanks moritz_ :)
09:36 Matt-W I am aware that the whole time/date thing is a right pain to deal with, so I do appreciate your efforts in that direction
09:37 Matt-W Ooh
09:37 wayland No worries :).  I'm going to be heading out for a bit; should be back in just under an hour or so :)
09:37 Matt-W Sorry, reading a bit further it is clearly more intelligent than Str|Int
09:37 masak I also appreciate your efforts, wayland++.
09:37 masak but I do think that Tree needs to go away. :)
09:37 Matt-W If you have subclasses specific to each field type
09:37 Matt-W hmm
09:37 Matt-W it might work
09:37 Matt-W especially if they're called something better than NumberName
09:38 Matt-W it's possible that tying string formatting so closely into it is still a Bad Thing though. I don't know.
09:38 * Matt-W goes away to switch his brain into Perl 5 mode for work
09:39 wayland masak: Have I said that I want to build an XPath-like thing on top of this tree interface?
09:39 masak wayland: it all sounds very intriguing... for a CPAN module.
09:39 masak not for the Perl 6 language, or anywhere near its core.
09:39 wayland masak: But it only works if we can select all kinds of things this way :)
09:40 masak I don't believe that.
09:40 wayland (oh, and the XPath-like wouldn't be part of core :) )
09:40 wayland Just the basic Tree stuff :)
09:40 moritz_ wayland: the beatuy of duct typing is that the select stuff doesn't have to fit into a particular type structure
09:40 wayland anyway, gotta go, but hopefully will get a chance to look at the backlog :)
09:54 PerlJam joined #perl6
09:54 orafu joined #perl6
09:54 buu joined #perl6
09:54 IRSeekBot joined #perl6
09:54 Grrrr joined #perl6
09:54 lisppaste3 joined #perl6
09:54 nihiliad joined #perl6
09:54 Sepheebear joined #perl6
09:54 ludan joined #perl6
09:54 ashizawa joined #perl6
09:54 p6eval joined #perl6
09:54 magnarjg joined #perl6
09:54 PZt joined #perl6
09:54 SamB joined #perl6
09:54 charsbar_ joined #perl6
09:54 BinGOs joined #perl6
09:54 perlbot joined #perl6
09:54 Aisling joined #perl6
09:54 ilogger2 joined #perl6
09:54 ascent_ joined #perl6
09:54 idemal joined #perl6
09:54 silug joined #perl6
09:54 Helios joined #perl6
09:54 mdxi joined #perl6
09:54 dmpk2k joined #perl6
09:54 nipotan joined #perl6
09:54 zev joined #perl6
09:54 awwaiid joined #perl6
09:54 jjore joined #perl6
09:54 wayland joined #perl6
09:54 jrockway joined #perl6
09:54 Eevee joined #perl6
09:54 wolverian joined #perl6
09:54 mtve joined #perl6
09:54 Maddingue joined #perl6
09:54 pmichaud joined #perl6
09:54 bacek_ joined #perl6
09:54 Tene_ joined #perl6
09:54 dalek joined #perl6
09:54 Nom- joined #perl6
09:54 frobnitz joined #perl6
09:54 s1n joined #perl6
09:54 kcwu joined #perl6
09:54 c9s joined #perl6
09:54 cj joined #perl6
09:54 f00li5h joined #perl6
09:54 diakopter joined #perl6
09:54 baest joined #perl6
09:54 spinclad joined #perl6
09:54 cls_bsd joined #perl6
09:54 jnthn joined #perl6
09:54 c1sung joined #perl6
09:54 masak joined #perl6
09:54 PantheraPardus joined #perl6
09:54 yahooooo joined #perl6
09:54 Caelum joined #perl6
09:54 meppl joined #perl6
09:54 rhr joined #perl6
09:54 _jedai_ joined #perl6
09:54 xinming joined #perl6
09:54 [particle] joined #perl6
09:54 araujo joined #perl6
09:54 clkao joined #perl6
09:54 hcchien joined #perl6
09:54 cognominal joined #perl6
09:54 avar joined #perl6
09:54 integral joined #perl6
09:54 oskie joined #perl6
09:54 jan_ joined #perl6
09:54 japhb joined #perl6
09:54 Matt-W joined #perl6
09:54 r0bby joined #perl6
09:54 meteorjay joined #perl6
09:54 ft joined #perl6
09:54 felipe joined #perl6
09:54 gfldex joined #perl6
09:54 revdiablo joined #perl6
09:54 bigpresh joined #perl6
09:54 preflex joined #perl6
09:54 sunnavy joined #perl6
09:54 edenc joined #perl6
09:54 Gothmog_ joined #perl6
09:54 estrabd joined #perl6
09:54 samlh joined #perl6
09:54 [cotto] joined #perl6
09:54 broquaint joined #perl6
09:54 Patterner joined #perl6
09:55 moritz_ joined #perl6
09:55 LCamel joined #perl6
09:55 tcliou|Away joined #perl6
09:55 DemoFreak joined #perl6
09:55 eternaleye joined #perl6
09:55 pugs_svn joined #perl6
09:55 aindilis joined #perl6
09:55 renormalist joined #perl6
09:55 simcop2387 joined #perl6
09:55 zostay joined #perl6
09:55 literal joined #perl6
09:55 drbean joined #perl6
09:55 Southen_ joined #perl6
09:55 Khisanth joined #perl6
09:55 szabgab joined #perl6
09:55 TimToady joined #perl6
09:59 wayland moritz_: You said: wayland: the beatuy of duct typing is that the select stuff doesn't have to fit into a particular type structure
09:59 bacek__ joined #perl6
09:59 wayland I'm assuming you mean "Duck Typing", otherwise I have some new learning to do
10:00 AzureStone joined #perl6
10:00 moritz_ wayland: yes, I did - but it sometimes reminds me of stuff that's hold together with duct tape ;-)
10:00 wayland Yes :)
10:00 moritz_ which is why I use these two terms interchangably
10:01 wayland I'm having trouble seeing the relevance of what you said to anything I said; am I right in presuming it was in reference to trees?
10:01 moritz_ yes
10:02 moritz_ what I meant is that an Xpath like query can work on arbiratry Perl 6 data structures
10:02 wayland And worrying about forcing things into the Tree::Node-type data structure?
10:02 moritz_ it doesn't have to be organized in structures of a particular type
10:02 wayland Oh, I see what you're getting at
10:02 wayland I'll have to think about that one for a while :)
10:02 moritz_ basically Positional and Associative give you two abstractions already
10:02 moritz_ anything list-like does Positional
10:03 moritz_ and anything hash-like does Associative
10:03 moritz_ so if your implicit tress are made out of lists/hashes/similar stuff you don't need a separate tree inerface
10:03 wayland I see what you're saying, but does that cover *everything?
10:04 moritz_ not everything
10:04 moritz_ but you can't treat everything as a tree either
10:04 wayland Sorry, I'm thinking specifically of XML here :)
10:04 pugs_svn r25380 | wayland++ | Fixed .new() methods to have correct name (instead of .init(), like I had)
10:05 wayland Which is definitely tree-like
10:06 moritz_ wayland: if you think of a XML::Simple like representation of XML, then it's certainly tree-like in my sense
10:06 wayland I guess I'm just thinking that things like $parent and $owner could be quite useful :)
10:08 wayland I'm wanting Tree::Node to do Positional and Associative container-like roles, though, so that it will behave "normally"; cleverness under the hood, but easy things easy :)
10:09 riffraff joined #perl6
10:11 wayland masak: In regards to the Web.pm framework, are you aware that XForms has MVC built in? :)
10:12 masak wayland: slightly, yes.
10:13 wayland Ok.  And have you considered developing a HTTP grammar?
10:13 wayland :)
10:13 masak that's certainly a nice idea.
10:14 masak but I don't think it's planned for the 11-week project, no.
10:14 bacek__ masak: HTTP grammar is quite easy :)
10:15 masak I don't doubt it.
10:15 Matt-W useful, too
10:16 wayland Before I got into the S16 spec, I was wondering about protocol grammars, and whether they'd be really cool combined with an event loop (think POE) and a finite-state machine :)
10:17 sri_kraih joined #perl6
10:17 moritz_ wayland: re your last S16 commit, please embrace the power of named parameters for .new()
10:18 bacek wayland: S05 is your friend :)
10:18 moritz_ wayland: and why does it return a Bool?
10:25 wayland bacek: Did you mean S06-subroutines?
10:28 Matt-W it's too late! Perl 6 is sneaking into my Perl 5 code!
10:28 wayland moritz_: Sorry, I appear to have confused named arguments with named parameters
10:28 Matt-W unfortunately perl 5 doesn't understand @*ARGS
10:28 masak Matt-W: tell me about it.
10:28 masak :/
10:28 wayland Matt-W: That's why I'm working on perl 6 :)
10:28 moritz_ what's wrong with perl 5's @ARGV?
10:28 Matt-W nothing, I just keep typing @*ARGS
10:29 wayland Once you've written in perl 6, you can't go back :)
10:29 masak nothing particularly wrong about it, it's just spelled differently.
10:30 wayland moritz_: Aren't named arguments what I want?  That way, they can be done either as positional *or* named, right?
10:30 moritz_ wayland: yes, but for a not-so-small number of parameter I'd like them to be force to be named
10:31 moritz_ wayland: because then the code on the caller side is much easier to understand
10:31 wayland Ok, but what about TMTOWTDI? :)
10:32 masak it's not an excuse to complicate things.
10:32 wayland I presume you have IO::Socket::TCP particularly in mind.  How about we leave the first 4 as they are, and name the rest?
10:32 wayland (sorry, named-parameter the rest?)
10:33 moritz_ wayland: the default .new method inherited from Object is all-named only. It would be just consistent to keep it that way - ymmv
10:35 wayland Ok.  But I think "simple things simple" comes in here, at least with regards to the first two parameters, which always have to be given.  Likewise with the spec (path or whatever) for an IO::File
10:36 masak it would feel a bit strange to me if a class in the spec chose to override the customary way to pass arguments for no good reason.
10:36 moritz_ wayland: maybe there should be a built-in function then that does this stuff?
10:37 moritz_ wayland: like connect($x, $y, *%_) callling Stuff.new(ip => $x, port => $y, |%_)
10:37 moritz_ then we could have a DWIM function and a DWIM constructor all at the same time
10:38 wayland Interesting.  I'll sit here and think about this for a bit :)
10:39 wayland That could get really confusing.  connect('example.org', 80, NoOpen => 1) would give you a socket that hadn't connected yet :)
10:40 wayland I'll keep thinking :)
10:42 wayland Btw, is the face that the default .new() method is all named-only specced somewhere?
10:44 wayland My suggestion would be that the way to think about it is that the customary way to pass arguments is that optional ones should be named-only, but that mandatory ones should be able to be positional as well
10:44 moritz_ probably implictly in S12
10:44 wayland And the fact that the default .new() is all named-only is a side effect of the fact that none of its arguments are compulsory :)
10:45 wayland Ok, I read S12 and changed my mind :)
10:45 wayland Will fix :)
10:47 wayland It may break "easy things easy", though.  Will have to think of a way to work on that.
10:48 wayland Btw, the example I've included of $fobj = new IO::File($filename, :w); is one that I don't know how to write the method declaration for
10:48 wayland What would the thing that receives the :w look like?
10:48 wayland I had it down as $options?, but that's clearly wrong :)
10:55 jnthn Good morning. :-)
10:55 * jnthn is a little ill, but has slept it off mostly this morning and is ready for a day's Rakudo hacking.
10:56 moritz_ OH HAI
10:56 agentzh joined #perl6
10:57 masak jnthn: HAI
10:57 Matt-W wayland: as I understand it, :w is a pair constructor equivalent to :w(1) or w => 1, so it might be an optional named parameter called w
10:57 bacek jnthn: OH HAI
10:58 masak Matt-W: aye.
10:58 moritz_ :$w would accept :w
10:58 Matt-W S02 has a table of what the colon pair syntax does
10:58 jnthn wayland: You can also override new to take whatever you want.
11:00 masak but don't do that unless the standard way is inadequate somehow. :)
11:00 Matt-W There needs to be a statement of convention for standard library stuff
11:01 masak well, things should be as simple as possible, but no simpler, if you ask me :)
11:02 bacek pugs: say ~ [\!=]  4, 5, 4
11:02 p6eval pugs: OUTPUT«1␤»
11:02 bacek What is expected result here? (1,1,1)?
11:03 masak bacek: what is the first comparison done against?
11:03 jnthn Or (1,1) - I'd need to re-check the spec.
11:03 moritz_ I think (1, 1)
11:03 moritz_ what jnthn said ;-)
11:03 Matt-W masak: yes but what's simple?
11:03 bacek in S03/reduce-metaop.t expected (1,0,0) and I don't understand why...
11:04 moritz_ wait... what associativy does != have?
11:04 moritz_ left?
11:04 masak Matt-W: it varies. in this case, I'd say it's not overriding new.
11:04 moritz_ then the result would be (4 != 5), ((4 != 5) != 4)
11:05 wayland jnthn: stomach-ill, cold ill, ???
11:05 Matt-W masak: I would have thought that you'd want to override new in the majority of cases - you just give it an argument list that looks like you didn't
11:05 moritz_ remember, if you overwrite .new to use positional parameters, all subclasses ahve to take extra care
11:05 moritz_ Matt-W: if you just want to do some initialization, a BUILD submethod is just fine
11:06 bacek rakudo: say [!=] 4,5,4
11:06 p6eval rakudo 842ef3: OUTPUT«Class 'Perl6MultiSub' not found␤current instr.: 'parrot;Perl6Role;!add_variant' pc 2691 (src/classes/Role.pir:42)␤»
11:06 Matt-W yes when are we going to get BUILD implemented in Rakudo?
11:06 * masak confesses to not having grokked the Perl 6 OO system fully yet
11:06 Matt-W then we can really start to get used to the idea that we don't override new
11:06 moritz_ masak: but how does? ;-)
11:06 bacek moritz_: so, result (1,1,1) is correct?
11:07 masak moritz_: Larry, hopefully.
11:07 moritz_ pugs: say ([\+] 1, 2, 3).perl
11:07 p6eval pugs: OUTPUT«(1, 3, 6)␤»
11:07 jnthn Matt-W: We already *do* have build, IIRC.
11:07 moritz_ rakudo: class A { submethod BUILD { say "OH HAI" } }; A.new(); say "end"
11:07 p6eval rakudo 842ef3: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
11:08 masak moritz_: shall I?
11:08 bacek bacek@icering:~/src/parrot/languages/rakudo.bacek$ ../../parrot perl6.pbc -e 'say ([\+] 1, 2, 3).perl'
11:08 bacek [1, 3, 6]
11:08 moritz_ masak: no, I'm already doing it
11:08 moritz_ rakudo: class A { submethod BUILD { say "OH HAI" } }; A.new(); say "end"
11:08 masak oki
11:08 p6eval rakudo 842ef3: OUTPUT«too many arguments passed (3) - 1 params expected␤current instr.: 'parrot;A;BUILD' pc 137 (EVAL_19:64)␤»
11:08 moritz_ rakudo: class A { submethod BUILD(%_) { say "OH HAI" } }; A.new(); say "end"
11:08 p6eval rakudo 842ef3: OUTPUT«Non-Associative argument for %_ in call to BUILD␤current instr.: 'die' pc 17013 (src/builtins/control.pir:204)␤»
11:08 moritz_ rakudo: class A { submethod BUILD(*%a) { say "OH HAI" } }; A.new(); say "end"
11:08 p6eval rakudo 842ef3: OUTPUT«positional inside named args at position 2␤current instr.: 'parrot;A;BUILD' pc 137 (EVAL_19:64)␤»
11:09 masak well, there's _something_ there. :)
11:09 moritz_ rakudo: class A { submethod BUILD(%@a, *%a) { say "OH HAI" } }; A.new(); say "end"
11:09 p6eval rakudo 842ef3: OUTPUT«Malformed method definition at line 1, near "BUILD(%@a,"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
11:09 moritz_ rakudo: class A { submethod BUILD(*@a, *%a) { say "OH HAI" } }; A.new(); say "end"
11:09 p6eval rakudo 842ef3: OUTPUT«OH HAI␤end␤»
11:09 bacek Victory!
11:09 moritz_ after onnly a few hundret attempts I start to get it right
11:09 jnthn Hmm.
11:09 moritz_ rakudo: class A { submethod BUILD(*@a, *%a) { say "OH HAI"; say @a.perl } }; A.new(); say "end"
11:09 * masak makes a note to update various projects to use BUILD.
11:09 p6eval rakudo 842ef3: OUTPUT«OH HAI␤Method 'perl' not found for invocant of class 'A'␤current instr.: 'parrot;List;perl' pc 5894 (src/classes/List.pir:224)␤»
11:09 jnthn Should check the spec...
11:09 jnthn But IIRC pm said that it's correct.
11:10 moritz_ ah
11:10 moritz_ it receives an Object of A as argument
11:10 jnthn (On BUILD)
11:10 moritz_ not the same args as new gets (which is what I suspected)
11:10 masak rakudo: class A { method perl { '[]' }; } say A.new.perl
11:10 p6eval rakudo 842ef3: OUTPUT«Statement not terminated properly at line 1, near "say A.new."␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
11:10 masak oops.
11:10 masak rakudo: class A { method perl { '[]' } }; say A.new.perl
11:10 p6eval rakudo 842ef3: OUTPUT«[]␤»
11:11 pugs_svn r25381 | bacek++ | [t/spec] Fix triangle form of reduce metaop tests.
11:11 bacek rakudo: sub foo { 1;; }; say foo
11:11 p6eval rakudo 842ef3: OUTPUT«Null PMC access in isa()␤current instr.: 'parrot;List;!flatten' pc 5976 (src/classes/List.pir:283)␤»
11:12 bacek jnthn: nice bug in PCT :)
11:14 bacek Is reduce metaop should take care about associativy?
11:14 moritz_ bacek: yes
11:14 moritz_ pugs: say [**] 2, 3, 4
11:14 p6eval pugs: OUTPUT«2417851639229258349412352␤»
11:14 moritz_ pugs: say 2 ** 3 ** 4
11:14 p6eval pugs: OUTPUT«2417851639229258349412352␤»
11:14 moritz_ pugs: say (2 ** 3) ** 4
11:14 p6eval pugs: OUTPUT«4096␤»
11:14 moritz_ bacek: see? it does
11:14 bacek rakudo: say [**] 2,3,4
11:15 p6eval rakudo 842ef3: OUTPUT«4096␤»
11:15 bacek heh :)
11:15 moritz_ care to submit a bug report? ;-)
11:15 * bacek summon masak :)
11:15 masak bacek: I'm going to lunch. :)
11:15 masak maybe afterwards.
11:16 moritz_ rakudo: say 2 ** 3 ** 4
11:16 p6eval rakudo 842ef3: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
11:16 moritz_ rebuilding again... :(
11:16 pugs_svn r25382 | wayland++ | Fixed some things people were complaining about.
11:17 bacek moritz_: care to submit unittest? :)
11:17 moritz_ bacek: after lunch ;-)
11:18 bacek Hey! I already got my dinner!
11:18 wayland Its bedtime here in a few minutes :)
11:18 bacek wayland: where are you from?
11:19 wayland Australia/Melbourne/Geelong/Drysdale :)
11:19 wayland Thats why I get som much done when everyone's asleep, and sleep while you're all answering my e-mail :)
11:21 bacek $ date
11:21 bacek Wed Feb 18 22:21:08 EST 2009
11:21 bacek :)
11:21 wayland That's me :)
11:22 bacek No, that's me! :)
11:22 wayland $ date
11:22 wayland Wed Feb 18 22:21:23 EST 2009
11:22 wayland Ok, same zone then.
11:23 bacek Yeah. Australia/Sydney :)
11:23 wayland Oh, I see you're in AU as well :)
11:25 dalek rakudo: af2cace | jnthn++ | build/Makefile.in:
11:25 dalek rakudo: [build] Comment lines must have # at start of line to keep nmake happy.
11:25 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​f2cace504dd5f70fa21f18f7a56dd8b85a8fa84
11:29 dalek rakudo: 044ba5e | jnthn++ | build/Makefile.in:
11:29 dalek rakudo: I have some issues building the fakeexecutable here; making test and spectest just depend on a perl6.pbc (which is what they actually *need*) for now.
11:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​44ba5e77826a512ed4f73eed59c52249592784c
11:36 wayland Btw, does anyone know if we're going to get a release schedule for rakudo now that it's not in the parrot repository any more?
11:38 wayland I'll backlog to read the answer to that, as it's bedtime for me now (and in case the Australians et. al. are wondering, I'll read in bed before sleeping :) )
11:38 bacek wayland: You joking! You are going to have some beer! I know!
11:40 Matt-W bacek: and a bbq, don't forget the bbq
11:41 bacek Matt-W: It's too late for BBQ.. But it always a good time for a beer in Australia :)
11:41 bacek rakudo: say 2**3**4
11:41 p6eval rakudo 044ba5: OUTPUT«4096␤»
11:42 Matt-W never too late!
11:42 Matt-W never!
11:42 bacek one line patch in grammar-oper.pg
11:42 bacek Matt-W: no. It's never too early for BBQ!
11:43 Matt-W it's never too early to start tomorrow's :)
12:00 ruoso joined #perl6
12:02 ruoso wayland, Hi... I've just sent a reply about the date/time thing... can we please use DateTime instead of Time::Piece or Date::Time
12:02 ruoso DateTime is far more complete than any other....
12:02 ruoso just look at its ecosytem in CPAN
12:05 pugs_svn r25383 | ruoso++ | [mildew] advancing a little bit in the bootstrap.dot
12:06 magnarjg joined #perl6
12:14 jan_ joined #perl6
12:32 masak wayland: re release schedule for Rakudo: yes, I heard pmichaud say that it'll be 'two days (or so) after each Parrot release' until further notice.
12:33 * masak submits a but report for bacek
12:33 moritz_ or one week after parrot release
12:36 pugs_svn r25384 | jnthn++ | [t/spec] A couple of tests for class :: is Foo { } stuff.
12:36 pugs_svn r25385 | jnthn++ | [t/spec] Tests for punning of roles into classes used with inheritance.
12:39 dalek rakudo: 5d74999 | jnthn++ | src/parser/ (3 files):
12:39 dalek rakudo: Support :: for declaring anonymous classes etc that can inherit from something. This incorporates the recent STD.pm change for this.
12:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​d749993e2d88e147eecc53eb13979baf2c55af0
13:05 pugs_svn r25386 | ruoso++ | [smop/src-s1p] fix doc of ClassHOW.
13:05 pugs_svn r25386 | ruoso++ | [smop/lowdoc] getting the description of the runloop up-to-date.
13:05 pugs_svn r25386 | ruoso++ | [mildew] more work on bootstrap.dot
13:05 pugs_svn r25386 | ruoso++ | [mildew/prelude] Multi is a role, in the bootstrapping we are going to use an incomplete RoleHOW for the first initialization of it, it should be re-inited later with more complete types as dependencies (see bootstrap.dot)
13:05 dalek rakudo: 6663565 | jnthn++ | src/classes/Object.pir:
13:05 dalek rakudo: Fix initialization of parent attributes; resolves RT#61488.
13:05 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​663565fda7c3137e3aab7b8e3aa92402e481b66
13:07 hanekomu joined #perl6
13:11 ruoso @tell pmurias I've made some changes on Multi.pm, already in the way of the planned bootstrap... It now will look for RoleHOW (as soon as mildew recognizes it), so the simplified RoleHOW can be implemented in SMOP...
13:11 lambdabot Consider it noted.
13:29 pmichaud jnthn: what issues are you having with the fakecutable?  I was sorta planning to switch the tests to use it instead of the .pbc
13:30 pmichaud (good morning, btw :-)
13:30 jnthn pmichaud: My compiler gives out of memory warning while trying to compile it!
13:30 jnthn I could get a newer compiler maybe. ;-)
13:30 pmichaud ouch.
13:30 pmichaud the C compiler does that?
13:30 jnthn Yes!
13:30 jnthn I think I can give it a flag to tell it that it may allocate more memory though.
13:30 jnthn Need to look it up.
13:31 jnthn Then I guess, hack Configure.
13:31 jnthn I'm a tad worried about using the perl6 fakeexecutable for tests because of the lingering destruction ordering issues.
13:31 pmichaud yes, I thought of that too, but I'm more worried about the "I can't build and run Rakudo" issues that newbies typically have
13:32 jnthn Aye, there is that.
13:32 pmichaud and I was hoping to get rid of the "look for ../../parrot and parrot/parrot" hack in t/harness
13:32 jnthn Have you tried it with the fakeexecutable to see what the fallout is?
13:33 pmichaud a few others reported no big issues, I was going to do that here shortly though.
13:33 moritz_ last time I tried it there was no fallout (tested about a week ago)
13:33 jnthn OK.
13:33 moritz_ but it might be worth to check on windows as well
13:33 jnthn Aye.
13:34 moritz_ does system qw(./perl6 scrpit.pl) works on windows?
13:34 moritz_ (ie without the .exe suffix)
13:34 jnthn no
13:34 jnthn ./ will upset windows
13:34 jnthn but perl6 script.pl is fine
13:34 moritz_ but not on unix
13:34 moritz_ unless we first push . to $ENV{PATH}
13:34 jnthn Ah, and .\perl6 is OK too
13:35 jnthn So if you use ${slash} kinda thingy, it'll be OK.
13:35 moritz_ so perl doesn't translate the forward slash automatically? what a pity...
13:35 pmichaud yes, I find that odd also.
13:35 * jnthn smokes a fix for a moritzticket.
13:36 Matt-W invoking stuff just isn't cross-platform
13:36 avar moritz_: This is why we have portable path libraries in the core
13:36 jnthn oh, it seems it does
13:36 jnthn C:\Consulting\parrot\trunk>perl -e "print `./parrot`"
13:36 jnthn parrot -[abcCEfgGhjprStvVwy.] [-d [FLAGS]] [-D [FLAGS]][-O [level]] [-o FILE] <f
13:36 jnthn ile>
13:37 pmichaud I've never had slash issues with Perl on Windows, fwiw, so I'm always a little surprised when others report them.
13:37 moritz_ avar: that are ugly to use, yes
13:37 pmichaud I know there are issues with batch and make files, but not with Perl.
13:37 jnthn pmichaud: OK, so maybe it will work.
13:37 jnthn pmichaud: Yeah, I musta been thinking of the makefile issues.
13:37 xuser joined #perl6
13:37 pmichaud jnthn: but then why do we need ${slash} in Configure.pl ?
13:38 pmichaud (I know we need it for the makefile generation, but I mean in the other places we use it)
13:38 jnthn pmichaud: Not enitrely sure. I doubt I just added them for the fun of it though. ;-)
13:38 pmichaud i.e., in the "list of parrot-configs to invoke"?
13:40 jnthn pmichaud: Ah, hmm.
13:40 * pmichaud is growing very weary of writing build and configure code, wants to do real rakudo and pge and pct hacking again.  :-|
13:40 jnthn OK, more testing later, it seems the ${exe} suffix is needed for open.
13:40 jnthn But it does do stuff with /
13:41 pmichaud you mean "slash works"?
13:41 pmichaud i.e., you mean it works with / as well as \ ?
13:41 jnthn Yeah, I *think* in a perl -e test...
13:41 jnthn Yes.
13:41 pmichaud okay.
13:41 jnthn Let's see if I pull ${slash} out of that list, if it keeps working...
13:42 pugs_svn r25387 | jnthn++ | [t/spec] Tests for does inside package.
13:43 jnthn oh arse, I committed two things in that last pugs repo patch...
13:44 jnthn pmichaud: OK, seems I can remove the ${slash} there after all...
13:44 pmichaud okay, that offers more hope for the fakecutable approach again.
13:44 dalek rakudo: d2d0d84 | jnthn++ | src/parser/ (2 files):
13:44 dalek rakudo: Support use of does inside packages.
13:44 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​2d0d8436dc316f0870d6fb1b1e71bb04ab6bd87
13:45 pmichaud although the fact that it doesn't build on your system is.... interesting.
13:47 pmichaud maybe we just copy the parrot executable into rakudo's root directory.
13:47 pmichaud then we always run ./parrot
13:48 jnthn Gah, I guess I have to patch pbc2exe or something.
13:48 pmichaud I wouldn't expect a patch to pbc2exe to be needed.
13:49 dalek rakudo: 7c5baa4 | jnthn++ | Configure.pl:
13:49 dalek rakudo: Turns out we don't need $slash in the Configure.pl for Windows to work - the $exe was the important thing.
13:49 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​c5baa459d96355609d6a8939984531c16193b4b
13:49 jnthn OK, I need to *somewhere* sneak in an extra flag to the compiler...
13:49 pmichaud seems like one would want to update Parrot's configure
13:49 jnthn Yeah, I guess I can do it globally.
13:49 pmichaud since pbc2exe just uses the flags from the parrot config
13:49 jnthn oh heh
13:49 jnthn We already *are* putting that flag in.
13:49 jnthn -Zm400
13:50 pmichaud it's just that 400 isn't large enough?
13:50 jnthn s/400/800/ will do it ;-)
13:50 pmichaud ah, that works.
13:50 jnthn heh, 1000 for the win ;-)
13:50 jnthn Future proofing ;-)
13:51 pmichaud then we can just update PARROT_REVISION to the new value.
13:51 pmichaud and I don't need to figure out the svn r####  for 0.9.1
13:51 jnthn :-)
13:51 pmichaud (and hopefully the batch of post-release commits to parrot haven't broken rakudo)
13:52 jnthn It's spectesting fine here.
13:52 pmichaud you're using parrot head?
13:52 jnthn Aside from the usual arith
13:52 jnthn Yeah.
13:52 pmichaud okay, good.
13:52 jnthn I got latest Parrot this mroning.
13:52 jnthn OK, just testing my configure change, then I'll put it in.
13:52 pmichaud excellent.
13:53 jnthn Got us back down to 250 RTs. ;-)
13:53 pmichaud I have a couple of short errands; will do that and then clean/update everything on my machine and see where we stand.
13:53 pmichaud jnthn++  # reducing RTs
13:53 jnthn Ok, great.
13:59 jnthn erm. I seem to lack a Parrot commit bit?!
13:59 moritz_ do you? ;-/
13:59 moritz_ jnthn: you need to use the credentials for your trac account
14:00 jnthn Aye...I just checked that those work...even updated password.
14:00 jnthn And...no luck.
14:00 moritz_ jnthn: then bother coke and other meta committers
14:07 jnthn pmichaud: There is another issue in that it now doesn't find libparrot.dll.
14:08 jnthn (That is, it compiles, but running perl6.exe gives the error.)
14:10 pmichaud okay, I have no clue there.
14:12 jnthn copy ..\..\libparrot.dll .
14:12 jnthn Does it.
14:13 moritz_ I've pushed a branch called 'fakexecutable' to github
14:13 jnthn Just not sure where to put that...
14:13 moritz_ where I tried to change all scripts to use ./perl6 for invokation
14:17 pmichaud I'm a little worried about synchronization issues with copying parrot and or dll's around.
14:19 jnthn OK
14:19 jnthn Alternative is path with Parrot in needs to be in the path.
14:19 jnthn That's the only two fixes I'm aware of...
14:19 jnthn erm
14:19 jnthn ...directory with libparrot in...
14:20 jnthn Why/how does it work elsewhere?
14:20 pmichaud I don't know why it has worked for others.
14:20 jnthn Ah. :-)
14:20 pmichaud we've always been able to create the fakecutable before without having to muck with parrot.dll, afaik
14:21 pmichaud *libparrot.dll
14:21 jnthn Sure, well you can if you create it in the same directory as Parrot.
14:21 pmichaud I don't know why it's a problem now.
14:21 pmichaud but we haven't been creating it in the same directory as parrot
14:21 jnthn Which means libparrot.dll was in the same directory as the fakeexecutable.
14:21 pmichaud we've always been creating it in languages/perl6
14:21 jnthn It's not about where you create it.
14:21 jnthn It's about where you run it from.
14:21 pmichaud same thing
14:21 jnthn make perl6 gave you a perl6 in the directory you built Parrot.
14:21 pmichaud afaik people have been running it from languages/perl6
14:22 jnthn On Win32?
14:22 pmichaud yes, at least that's what I thought.
14:22 jnthn It may have worked, but I don't remember every trying that...
14:23 jnthn I ain't sure, what a good solution would be though. Hmm.
14:23 jnthn Twiddling the path is evil.
14:23 jnthn And won't work if people run it later.
14:24 pmichaud agreed, I don't like the path approach.
14:24 jnthn And I can't think of an alternative to copying libparrot. Like it as I don't...
14:24 jnthn I guess we can do it only if we know it's not an installed Parrot.
14:24 dalek rakudo: 9e72b9d | jnthn++ | build/gen_metaop_pir.pl:
14:24 dalek rakudo: Generate min= and max= meta-ops. Patch courtesy of bacek++.
14:24 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​e72b9dec55d4209411238d48de0126acdd6a8a4
14:24 pmichaud well, there's always the alternative of not using the fakecutable.
14:24 jnthn True. ;-)
14:25 pmichaud which means we need a clean mechanism for running the compiler itself.
14:25 moritz_ a batch/shell script generated by Configure.pl?
14:26 moritz_ I fear it doesn't qualify as "clean"
14:26 rindolf joined #perl6
14:27 jnthn Is what we're doing now so terrible?
14:27 jnthn For the time being anyway.
14:27 pmichaud jnthn: at the Frozen Perl hackathon, build and invocation issues far dwarfed anything else we might have been able to do.
14:28 pmichaud it was a serious showstopper.
14:28 jnthn Aside from this Win32 issue, is the fakeexecutble the cleanst solution?
14:28 pmichaud the fakecutable is fairly clean.  With it, the build becomes:   "make;  perl6 hello.pl"
14:29 pmichaud i.e., it falls more naturally into people's expectations.
14:29 jnthn OK
14:29 pmichaud without it, we have to say   "run parrot using perl6.pbc", and we can't say for certain where parrot is located.
14:29 jnthn Then let's do that.
14:29 jnthn And *on Win32 only* we'll copy libparrot.dll into place for the time being.
14:30 pmichaud libparrot.dll gets built in the parrot root?
14:30 jnthn It may not be *perfect* but it's a minor problem compared to the more major ones not doing the fakeexecutable solves.
14:30 jnthn Yes.
14:30 pmichaud weird.
14:30 jnthn Well
14:30 jnthn The reason it gets built there is so it's in the same directory as parrot.exe.
14:30 jnthn So it finds it.
14:30 pmichaud I mean "weird" from a packaging viewpoint, not from a "this is what windows requires" viewpoint.  From a windows perspective, it's completely normal.
14:30 jnthn On Win32 the DLL, AFAIK, needs to be either in the same directory or in a directory that's in the path.
14:30 pmichaud right.
14:31 jnthn Well, the move more and more is for things on Win32 to be isolated.
14:31 jnthn Rather than to depend on shared stuff.
14:31 pmichaud I'd really like to see Win32 isolated.  :-P
14:31 jnthn .Net rather encourage that model.
14:31 jnthn :-P
14:31 pmichaud I try to isolate Win32 as much as I can.
14:32 jnthn Unfortunately, it's run by over 80% of the world. :-P
14:32 jnthn Or something.
14:32 pmichaud I agree that it definitely runs over things.
14:32 maerzhase joined #perl6
14:32 jnthn Anyways...do you think copy on Win32 is a good enough solution for now?
14:32 pmichaud yes.
14:32 pmichaud I can't think of better.
14:33 jnthn Not that I hold much hope of me coming up with a better future one, but somebody may.
14:33 pmichaud we might need to tweak the makefile dependencies to make sure the libparrot.dll remains "current"
14:33 jnthn "patches welcome" ;-)
14:33 pmichaud exactly.  I'm a little disappointed more people haven't been patching the build system.
14:33 jnthn I was pondering copying it each time we build perl6.exe
14:33 pmichaud hmmmm
14:34 moritz_ I'm always afraid to break win stuff when I change the build/configure system
14:34 jnthn So it's always up to date with what we built that against.
14:34 jnthn Also build/configure stuff is...well...boring. ;-)
14:34 jnthn (Alas, important.)
14:35 pmichaud something bugs me about the "copy each perl6.exe build" approach.
14:35 jnthn Specifically?
14:35 jnthn Or rather, where would you do it instead?
14:36 nihiliad left #perl6
14:36 pmichaud I'm bugged that someone might want to have a different libparrot.dll that they copied (more)
14:36 pmichaud however I'm not going to worry about it.  I'm tired of spending cycles on it already.
14:36 pmichaud so, do it that way and we'll say "patches welcome" if it causes problems for anyone.
14:37 jnthn We're not creating the solution for ever. We're creating something that solves enough of the problems now so we can do other stuff and people can play with little hinderance. :-)
14:37 jnthn And yes, patches welcome. :-)
14:39 Tene joined #perl6
14:40 Matt-W Really you shouldn't even need to say that
14:40 Matt-W Patches always seem to be welcome
14:40 pmichaud Matt-W: we generally say that to indicate "yes, it doesn't work right.  Would you like to help us fix it?"
14:41 Matt-W true, true
14:41 moritz_ "patches welcome" is swaheli for "fix it or shut up" ;-)
14:41 Matt-W and no, I wouldn't
14:41 Matt-W it's a can of worms
14:41 Matt-W biting ones
14:41 Matt-W so you're welcome to it :)
14:41 * Matt-W hides
14:42 hercynium joined #perl6
14:44 jnthn pmichaud: OK, done, pushed.
14:46 dalek rakudo: 5c7da38 | pmichaud++ | build/PARROT_REVISION:
14:46 dalek rakudo: Bump PARROT_REVISION to include compiler VM size fix in r36856.
14:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​c7da3815481481524cea4b40cdcd80824a8d66f
14:46 dalek rakudo: c18fafa | jnthn++ |  (2 files):
14:46 dalek rakudo: Copy libparrot.dll into place for Win32, so perl6.exe works.
14:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​18fafaba2c7b90984cb6e46f0920c13b6beb85c
14:46 dalek rakudo: 876c093 | jnthn++ | build/PARROT_REVISION:
14:46 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
14:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​76c09367b84444ff13737da05be979e4687eaef
14:49 dalek joined #perl6
14:56 Southen joined #perl6
14:58 masak joined #perl6
15:00 pmichaud here's been my initial outlines/thoughts
15:01 pmichaud 1.  create src/settings/*.pm
15:01 Util joined #perl6
15:01 pmichaud e.g.,  Int.pm, List.pm, Hash.pm, etc
15:01 pmichaud 2.  adjust build system to concatenate the *.pm files together and compile to .pir
15:02 pmichaud 3.  include the .pir in the final stage compilation step
15:02 pmichaud 4.  profit
15:02 pmichaud inside of the *.pm files, prefer    class Foo is also { ... }  style to   class Foo;   style
15:02 * masak misses the '???' step
15:03 pmichaud at the moment I'm focusing on the non-operator forms
15:03 moritz_ pmichaud: what's the reason for not compiling the .pm's separately?
15:03 moritz_ pmichaud: that would give better error messages
15:03 masak pmichaud: why 'settings' instead of 'setting'?
15:03 pmichaud I can go for setting, yes.
15:03 wknight8111 joined #perl6
15:03 jnthn Yes, singular.
15:03 jnthn OK, so is the aim that we start to move, class by class?
15:04 pmichaud (separate compile) -- right now, every compilation to pir generates a prologue to automatically load perl6.pbc
15:04 pmichaud we need to suppress that prologue in each .pir that gets output
15:04 pmichaud that could perhaps be done as a later optimization
15:04 pmichaud jnthn: I'm actually thinking 'method by method' more than 'class by class'  :-)(
15:05 pmichaud but yes, migrate things over as convenient
15:05 jnthn pmichaud: OK.
15:05 pmichaud we can do simple methods to begin with
15:05 jnthn Sure.
15:05 pmichaud then we need to fix up the 'is export' traits
15:06 jnthn Aye.
15:06 masak is there a day set for the next Rakudo release?
15:06 pmichaud masak: not yet.
15:06 pmichaud masak:  I'm going to tentatively set next Wednesday for this one.
15:06 Matt-W Is this the start of a Perl 6 prelude?
15:07 pmichaud Matt-W: yes, but it's now called "setting" instead of "prelude".
15:07 masak I'm asking because we cannot switch proto to the next Parrot before Rakudo is released.
15:07 pmichaud masak: I'd do it sooner, but I'm leaving out of town Fri-Mon
15:07 Matt-W pmichaud: Excellent
15:07 masak pmichaud: next Wed is ok.
15:07 pmichaud so I don't know how much rakudo stuff I'll get done while on the trip.
15:07 pmichaud masak: and we still have a fair number of build and other not-very-interesting things that need to get resolved.
15:08 masak aye.
15:08 jnthn While we're on away-ness, I've got some holiday in first week of March.
15:08 jnthn And Perl conferences on the surrounding weekends.
15:08 WootKit joined #perl6
15:08 pmichaud jnthn: okay.  Shouldn't be a huge issue.
15:08 jnthn pmichaud: OK, so I agree with the prelude approach.
15:08 jnthn erm
15:09 jnthn setting approach
15:09 pmichaud :-)
15:09 pmichaud jnthn: shall I set up the initial dirs and build, or do you wish to do it?
15:09 Matt-W Is there a reason for calling it the setting?
15:09 jnthn pmichaud: I don't mind either way. :-)
15:09 pmichaud Matt-W: because that's what the spec says?  ;-)
15:09 pmichaud jnthn: I'll let you do this one, if you don't mind.
15:09 jnthn pmichaud: Depends if you trust me, to do it in a way you'll like. ;-)
15:09 Matt-W It does? Then why was everyone calling it the prelude! It's a conspiracy to confuse me, isn't it?
15:10 pmichaud Matt-W: the switch from "prelude" to "setting" was recent.
15:10 jnthn Matt-W: It was a recent change.
15:10 jnthn Matt-W: Thus why I keep getting it wrong.
15:10 Matt-W :)
15:10 pmichaud TimToady wants the word to more rightly indicate "thing that sets up the environment in which we work" as opposed to "thing that is done before anything else"
15:10 Matt-W That makes sense
15:10 Matt-W I look forward to seeing it take shame
15:11 Matt-W err
15:11 Matt-W shape
15:11 Matt-W no shame, hopefully
15:11 pmichaud it may take shame, too :-)
15:11 jnthn ...yes, hopefully...
15:11 Matt-W Maybe I'll send patches :)
15:11 pmichaud jnthn: I trust you to get something working -- I can refactor if I need to.  I'd like to get some messages out and play with some other build system issues.
15:12 pmichaud and maybe I can work on getting the progress graphs going again.
15:13 jnthn pmichaud: OK, I'll dig in. :-)
15:13 pmichaud I'm looking for some good initial methods to try.
15:13 pmichaud oh, I also wanted to switch q:PIR to Q:PIR
15:13 pmichaud hm.
15:14 WootKit joined #perl6
15:15 Matt-W pmichaud: something like Array.elems?
15:15 pmichaud except there isn't an Array.elems
15:15 pmichaud it's Object.elems
15:15 pmichaud or List.elems
15:15 WootKit joined #perl6
15:15 masak Any.elems?
15:16 jnthn pmichaud: Well, it doesn't have to be a class one.
15:16 pmichaud jnthn: hmmm?
15:16 jnthn sub prompt is quite easy ;-)
15:16 pmichaud sub prompt?
15:16 Matt-W oh yes, I guess elems is just a stub in the Array role. stupid me. More coffee.
15:16 jnthn my $name = prompt("Name: ");
15:17 pmichaud does that belong to a package, at least?
15:17 jnthn AFAIK, no.
15:17 pmichaud I thought nearly all of the builtins at least belonged to a package.
15:17 jnthn Unless spec changed since...
15:17 jnthn Well, it's possible it *should*. :-)
15:17 pmichaud and then were exported to the setting
15:18 jnthn .namespace ['List']
15:18 jnthn .sub 'list' :method .return (self)
15:18 jnthn .end
15:18 jnthn Well, can do that one. ;-)
15:18 jnthn Thing is though
15:19 jnthn That can be ordering issues.
15:19 jnthn But hopefully nothing too serious...
15:19 pmichaud ordering issues?
15:20 jnthn The first entries in BUILTINS_PIR matter.
15:20 jnthn In their ordering.
15:20 pmichaud they matter because of the class construction
15:20 pmichaud not because of the methods they define
15:20 pmichaud i.e., it's the loadinit stuff that matters.
15:20 jnthn Yes, true.
15:20 pmichaud I'm not saying we'll eliminate classes/*.pir yet -- we can just move methods out of them
15:21 pmichaud that's why 'is also'
15:21 jnthn Sure.
15:21 Matt-W somewhere, something has to be implemented in PIR...
15:21 jnthn Though for List and Hash we'll need to in the not too distant future have them entirley defined in Perl.
15:21 pmichaud jnthn: why is that?
15:21 jnthn Because they shoudl be parametric roles.
15:22 jnthn And I epicly do *not* want to hand-role those in PIR. ;-)
15:22 masak "hand-role". nice eggcorn.
15:22 Matt-W that would be unpleasant
15:23 pmichaud okay, we'll cross that when we come to it then.
15:23 jnthn OK
15:23 jnthn Oh
15:23 jnthn A lot of the .perl methods
15:23 jnthn Would be rather easy candidates.
15:23 pmichaud yes.
15:23 jnthn For things to convert first as test cases.
15:23 pmichaud I like that.
15:23 pmichaud and they don't export, which is helpful.
15:24 jnthn Aye.
15:25 * pmichaud considers unsubscribing from parrot-commits list.
15:26 * jnthn wonders if we support POD parsing at all in Rakudo yet.
15:28 masak jnthn: POD or Pod?
15:28 moritz_ jnthn: I think it's ignored - that's all
15:28 pmichaud it's just treated as a comment at present.
15:29 masak if the latter, then yes; what moritz_ said.
15:29 pmichaud i.e., as whitespaces.
15:31 jnthn pmichaud: Ah, that's fine.
15:31 jnthn That means we can comment the prelude methods. :-)
15:31 pmichaud yes, just like any other perl 6 code :-)
15:31 masak "setting" :)
15:31 moritz_ without it, the test suite wouldn't suitable for rakudo :)
15:31 Matt-W and then one day, autogenerate a setting reference :)
15:32 * jnthn wonders how long it'll take him to get the name right
15:32 pmichaud jnthn: my experience tells me that as soon as you start getting it right, the name changes.
15:33 masak :)
15:33 justatheory joined #perl6
15:33 masak so whatevery you do, don't start getting it right.
15:34 jnthn pmichaud: Either the name, the syntax or the semantics. ;-)
15:34 wknight8111 question about exceptions: Is the only way to throw an exception with "die" or "fail"?
15:34 moritz_ wknight8111: no, warn() also throws exceptions
15:35 moritz_ wknight8111: and other builtins throw contol exceptions
15:35 pmichaud wknight8111: there's also been speculation of   .throw
15:35 moritz_ rakudo: 1/0
15:35 p6eval rakudo 876c09: OUTPUT«Divide by zero␤current instr.: 'infix:/' pc 21658 (src/builtins/op.pir:194)␤»
15:35 moritz_ that's also an exception ;-)
15:35 wknight8111 okay, so die, warn, and fail allow the user to manually throw exceptions?
15:35 moritz_ yes
15:48 jnthn git add is what you use to put new files under version control?
15:48 moritz_ yes
15:49 PerlJam yes and no.
15:49 moritz_ it is also used for other stuff
15:49 PerlJam right
15:50 masak it's used to put new content under version control.
15:50 masak or halfway, rather.
15:51 PerlJam It's used to tell git about content changes you intend to commit.
15:52 masak right.
15:52 moritz_ rakudo: sub _($x) { say $x }; _ 3;
15:52 p6eval rakudo 876c09: OUTPUT«3␤»
15:54 masak rakudo: eval 'eval "say ~<OH HAI>"'
15:54 p6eval rakudo 876c09: OUTPUT«OH HAI␤»
15:55 moritz_ rakudo: sub _($x) { say $x }; _ _ 3;
15:55 p6eval rakudo 876c09: OUTPUT«3␤1␤»
15:57 masak rakudo: sub O { 3 }; sub o_ { say $^something }; o_ O
15:57 p6eval rakudo 876c09: OUTPUT«3␤»
16:00 jnthn rakudo: class Any is also { method oO($x) { say $x } }; .oO("WTF?!")
16:00 p6eval rakudo 876c09: OUTPUT«sh: ./parrot: No such file or directory␤»
16:00 jnthn Fail!
16:00 moritz_ it's rebuild time again
16:00 pmichaud can't do rakudobugs at the top of the hour.  :-)
16:00 jnthn It's our natural masak-bug-rate-limiter. ;-)
16:01 moritz_ lol
16:01 * moritz_ has to wander off
16:01 masak fools!
16:01 masak nothing can stop me.
16:02 masak except perhaps trying to learn Chinese. that has a detrimental effect on my bug reporting, it seems.
16:02 jnthn rakudo: class Any is also { method oO($x) { say $x } }; .oO("WTF?!")
16:02 p6eval rakudo 876c09: OUTPUT«sh: ./parrot: No such file or directory␤»
16:02 jnthn Aww...
16:02 masak patience... :)
16:03 * jnthn can't even test it in his local, temporarily busted, Rakudo.
16:03 * masak tests
16:03 jnthn pmichaud: I found a slight...kink. The prelude ends up with a :main sub in it!
16:03 pmichaud jnthn: yes, see my note earlier.
16:03 masak jnthn: iz works.
16:03 jnthn masak: AWESOME!
16:03 pmichaud 15:04 <pmichaud> (separate compile) -- right now, every compilation to pir generates a prologue to automatically load perl6.pbc
16:03 pmichaud 15:04 <pmichaud> we need to suppress that prologue in each .pir that gets output
16:03 jnthn use Acme::Thought;
16:03 masak aye, now we can think WTF in native Perl 6 :)
16:03 jnthn pmichaud: Ah, yes.
16:04 jnthn pmichaud: Do you think post-process the file to remove it, or a compiler flag?
16:04 pmichaud is the :main interfering?
16:04 pmichaud it shouldn't be.
16:04 jnthn It is.
16:04 pmichaud then re-order it.
16:04 pmichaud so it doesn't.  :-)
16:04 jnthn Erm.
16:05 jnthn If I do that, then we don't compreg Perl6 early enough and it exploded due to that.
16:05 jnthn Eh, I can do something more subtle.
16:05 jnthn maybe
16:05 pmichaud I don't mind if we have a compiler flag or something to suppress it.
16:05 pmichaud or a pragma.
16:06 pmichaud heh.
16:06 pmichaud no Main;
16:06 jnthn :-D
16:06 jnthn We don't parse "no" yet. ;-)
16:06 pmichaud you mean I can't get "no satisfaction"?
16:06 PerlJam And you can't have "no tea" either.
16:06 jnthn Why would I want no tea?
16:06 jnthn How woudl I work then?
16:07 masak jnthn: it doesn't matter. you can't have it.
16:08 pmichaud I think I prefer a pragma at some point.  If we need to parse 'no', then we can start doing that.
16:08 masak you can have jam yesterday and jam tomorrow, but not jam today.
16:09 pmichaud compiler option sounds a bit more involved (and probably not the way we want to go)
16:09 jnthn True.
16:09 nihiliad joined #perl6
16:09 jnthn OK, I'll parse no
16:09 pmichaud I'm fine with post-process the file if you wish.
16:09 jnthn That felt evil.
16:09 jnthn But quick.
16:09 pmichaud agreed.
16:09 jnthn OK, I'll do that...
16:10 pmichaud parsing 'no' doesn't seem like too much difficulty, though.
16:10 jnthn Hmm, true.
16:10 pmichaud it's basically the same parse as 'use', iiuc.
16:10 jnthn It's a statement_control
16:10 jnthn But yes, easy
16:10 jnthn OK, will do it.
16:10 * jnthn looks forward to protoregexes, so he can lazily copy-paste from STD.pm
16:10 * pmichaud wonders if we should have a 'lo Mein' to go along with 'no Main'
16:12 * masak groans
16:15 alester joined #perl6
16:18 ktne joined #perl6
16:18 ktne hello
16:18 ktne is there any spec for perl 6?
16:19 masak ktne: greetings.
16:19 masak ktne: yes.
16:19 masak http://perlcabal.org/syn/
16:19 ktne hi masak
16:19 jnthn OK, "no Main" is in and it seems that...it works. :-O
16:19 masak incredible!
16:19 ktne masak: thanks
16:19 masak ktne: let us know if you have any questions.
16:20 ktne masak: ok
16:20 ktne a lot of TBDs :)
16:20 masak ktne: well, we're not done yet. :)
16:20 ktne ok
16:20 ktne cya
16:20 ktne left #perl6
16:23 * jnthn smokes
16:37 * jnthn pushes it
16:37 jnthn I *really* hope I didn't screw this commit up...
16:37 dalek rakudo: 9c86a27 | jnthn++ |  (4 files):
16:37 dalek rakudo: Break compile into two stages, the first compiling everything we did before, the second using that first stage to compile the Perl 6 setting and then making the final perl6.pbc. Also adds support for 'no Main' to suppress generating the Parrot :main method. Re-wrote Whatever's perl and ACCEPTS methods into Perl 6 as proof of concept.
16:37 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​c86a27ee38be6f150a7f47d99cf86d460692318
16:37 dalek rakudo: 325cc2e | jnthn++ |  (8 files):
16:37 dalek rakudo: Break compile into two stages, the first compiling everything we did before, the second using that first stage to compile the Perl 6 setting and then making the final perl6.pbc. Also adds support for 'no Main' to suppress generating the Parrot :main method. Re-wrote Whatever's perl and ACCEPTS methods into Perl 6 as proof of concept.
16:37 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​25cc2e25ea507a03ecd5a5eec9e2e230ed51eb8
16:37 jnthn Wow, I sorta maybe did...
16:37 jnthn :-)
16:37 jnthn Well, it went in two bits.
16:38 * pmichaud reviews.
16:38 jnthn Somebody git pull that, make realclean, perl Configure.pl, make.
16:38 jnthn pmichaud: Feedback most welcome, I expect there will be bits to refine.
16:38 jnthn But it should _work_.
16:40 masak jnthn: sounds very exciting. I'm heading home now, but will download a copy and try it out.
16:40 pmichaud can we avoid having the separate perl6_s1.pir and perl6.pir ?
16:41 jnthn They're pretty minimal (just an include list)
16:41 jnthn So we don't duplicate code.
16:41 jnthn It's factoered out into src/cli.pir
16:41 pmichaud I'd like even less duplication :-)
16:41 pmichaud could perl6.pir be run with an empty gen_setting.pir for the stage1 compile?
16:41 pmichaud that seems.... easier.
16:42 jnthn Hmm.
16:42 jnthn Maybe.
16:42 pmichaud i.e., when building stage one, just create an empty gen_setting.pir
16:42 jnthn We'd have to be very careful to have a makefie dependency correct to make sure it did get emptied.
16:42 pmichaud (fwiw, PGE uses the same trick for its self-compiled builtins)
16:42 pmichaud just force it empty prior to building any stage_1 compile
16:42 jnthn True.
16:43 pmichaud in particular, don't have a stage 1 target
16:43 pmichaud although... hmm
16:43 pmichaud I see the value in having a stage 1 target in terms of reducing overall compile time.
16:43 jnthn Yeah
16:43 jnthn Plus it means you *can* build the first stage to play with.
16:43 jnthn If you want to know what it supports.
16:43 jnthn Which I can see being useful for a while.
16:44 jnthn Oh, maybe not.
16:44 jnthn Hmm. :-)
16:44 jnthn We could still do the stage 1 target and -o to somewhere else from the same perl6.pir I guess.
16:45 pmichaud right.
16:46 pmichaud oh!  HLLCompiler has a --combine option that allows multiple source files to be automatically concatenated as a compilation unit.
16:47 pmichaud so we don't really need the separate gen_setting_pm step :-)
16:47 jnthn Oh.
16:47 pmichaud we can leave it for now, though.
16:48 pmichaud it's consistent with the pir generation.
16:48 jnthn OK
16:48 jnthn Aye.
16:48 jnthn May leave that for your tweaking if you feel like it.
16:48 pmichaud reviewing this on github is _sooooo_ much nicer than svn.
16:49 alester pmichaud: I am falling in love w/github
16:49 alester now I see how it works.
16:49 alester Do we need a Rakudo-specific mailing list?
16:49 alester I kinda feel like we do.
16:49 alester that would be separate from all Parrot things
16:49 pmichaud I prefer that we stay on perl6-compiler
16:50 pmichaud perl6-compiler doesn't have so much traffic that rakudo-specific stuff would get in the way.
16:50 jnthn same.
16:50 pmichaud and perl6-compiler is already separate from Parrot things.
16:50 jnthn perl6-compiler is separate from Parrot.
16:50 alester ok
16:50 alester We need to get Jeremy on there then
16:50 alester because he's doing rakudo.org stuff
16:51 alester Y'know, I don't think I'm on there.
16:51 pmichaud a lot of people have never grokked the difference between perl6-compiler (Rakudo, other compiler implementations)  and perl6-internals (obsolete, used to be Parrot development)
16:51 alester where's the list?  does it have a page?
16:51 alester I'll add it to the rakudo docs
16:51 pmichaud alester: http://dev.perl.org/perl6/lists/
16:52 alester yeah, that's not its own list though.
16:52 alester but it's a start
16:52 pmichaud I don't understand "its own list".  You mean a separate list for Rakudo?
16:52 alester no
16:52 alester sorry
16:52 alester I mean its own page
16:53 alester I think we need to get entirely divorced from Parrot
16:53 alester in the minds of users of Rakduo
16:53 alester ok, added to http://dru.rakudo.org/community
16:53 pmichaud I don't think we can.
16:53 pmichaud nor am I sure that we should.
16:53 jnthn Will
16:53 jnthn echo # > src/gen_setting.pir
16:53 jnthn Work on nonWindows?
16:53 pmichaud jnthn: just a sec
16:53 jnthn echo > src/gen_setting.pir won't fly on Windows
16:54 pmichaud $(PERL) -e "" >PGE/builtins_gen.pir
16:54 jnthn Oh
16:54 jnthn win
16:54 pmichaud afaik, there's nothing that currently ties Rakudo to Parrot
16:54 pmichaud in terms of documentation or location of resources
16:54 alester I know, just mindshare.
16:54 PantheraPardus joined #perl6
16:54 [particle] nope, just the output of the compiler :)
16:55 jnthn ;-)
16:55 alester Someone who wants to use Rakudo need not care about Parrot
16:55 alester Perl 5 info page doesn't say "Here are some C mailing lists"
16:55 pmichaud Perl 6 info page doesn't say "Here are some Parrot mailing lists", except for the obsolete one.
16:56 pmichaud as soon as I learn to use combust I can probably fix the Perl 6 pages.
16:56 pmichaud (the ones on dev.perl.org)
16:56 alester Or we just get off dev.perl.org entirely.
16:56 alester You will never learn combust.
16:56 pmichaud who is "we" in this case?
16:56 alester It is pain.
16:56 alester !/$ for learning combust is tiny.
16:57 alester !/$ = "bang for the buck"
16:57 pmichaud I just need to learn enough to get updates to the website
16:58 pmichaud I'm not planning to rebuild/redesign that entire site.  Just remove the obsolete/incorrect items.
16:58 alester ok, meeting time.
16:58 alester pmichaud: "learn enough" is a huge pain.
16:59 pmichaud jnthn: EPIC FAIL
16:59 pmichaud spaces instead of tabs on Makefile:181
16:59 pmichaud also 212
17:00 jnthn pmichaud: Damm! And my make tool doesn't care about them...
17:00 alester oops
17:00 alester Meeting is later
17:00 pmichaud I'll let you fix, also rework the .pm generation
17:01 pmichaud let me know when you want me to git pull and test again
17:01 jnthn pmichaud: Already comitted re-working of that.
17:01 jnthn And just pushed what I hope fixes those whitespace issues.
17:02 jnthn pmichaud: Yup. pull now
17:02 pmichaud okay, building now.
17:03 * jnthn crosses his fingers
17:03 pmichaud also, I could use some testing.  I expecting that the standard build sequence for most people will be
17:03 pmichaud 1.  git clone <rakudo>
17:03 pmichaud 2.  cd rakudo;
17:04 * [particle] can test rakudo builds today
17:04 dalek rakudo: 459a7c8 | jnthn++ |  (2 files):
17:04 dalek rakudo: Re-work things a bit so we just have one perl6.pir, as suggested by pmichaud++.
17:04 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​59a7c8a5c43738a10e0db026981d4d09ce084af
17:04 dalek rakudo: 8fef096 | jnthn++ | build/Makefile.in:
17:04 dalek rakudo: Replace spaces in makefile with tabs.
17:04 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​fef0969c5eb104e1f805d6ca2fccb4f7ef3d85d
17:04 pmichaud 3.   perl Configure.pl --gen-parrot
17:04 pmichaud 4.  make
17:04 alester Is it common that one patch will be red, and when you apply all the green ones, the red one goes green?
17:04 pmichaud where "--gen-parrot" downloads and builds an appropriate copy of parrot as needed.
17:05 alester pmichaud: We need something to say "force a new parrot build"
17:05 alester unless I missed something.
17:05 pmichaud I don't think we need "force a new parrot build"
17:05 pmichaud the --gen-parrot option keeps that for you.
17:06 pmichaud Rakudo no longer tracks parrot 'head' development.
17:06 [particle] (9:05:42 AM) cxreg: particle: did someone rebase rakudo?  I'm getting fetch errors
17:06 [particle] (9:05:50 AM) cxreg: error: Unable to find ab7e710796475e5b4af9f2d68c4af47963bec490 under http://git.rakudoperl.org/rakudo/rakudo.git
17:07 jnthn [particle]: What's he typing to get them?
17:07 jnthn git pull?
17:07 [particle] i just tried git pull, got same
17:07 jnthn BUT GIT IS THE AWESOME. *sigh*
17:07 alester pmichaud: oh?   Oh, we only build a given revision?
17:07 pmichaud alester: if using --gen-parrot, yes.
17:08 alester I see
17:08 pmichaud build/PARROT_REVISION keeps track of the revision wanted.
17:08 pmichaud --gen-parrot checks and rebuilds parrot against PARROT_REVISION
17:08 pmichaud the purpose is to remove parrot management from the standard rakudo builder/user.
17:09 cxreg joined #perl6
17:10 [particle] yep, http:// is busted with git clone, too
17:11 [particle] git clone git://github.com/rakudo/rakudo.git rakudo     # works
17:11 jnthn [particle]: Ah, I hadn't been using the http://
17:11 cxreg everyone should git config remote.origin.url git://github.com/rakudo/rakudo.git
17:12 pmichaud cxreg:  what does that do, exactly?
17:12 [particle] if users are allowed/recommended to use http://, we need to get it working
17:12 pmichaud I'm always wary of "everyone should..." sorts of statements.
17:12 pmichaud [particle]: or we just use the git:// address.
17:12 [particle] pmichaud: it sets the config item for the rakudo remote origin url to git://...
17:12 cxreg pmichaud: updates the config for "origin".  if you're wary, git config remote.origin.url to see what's there now.
17:12 [particle] in the .gitconfig file
17:13 pmichaud I don't understand "updates the config for origin".  Is that a global setting?
17:13 [particle] no, it's in the project config
17:13 cxreg pmichaud: in your local checkout, it sets the url for the upstream repo
17:13 [particle] you'd need to specify --global for global
17:13 pmichaud what about those of us who need to use the git@github... address?
17:13 [particle] or --system (i get confused as to which is which)
17:14 [particle] ...that is, committers.
17:14 cxreg global is ~, system is /etc
17:15 pmichaud pmichaud@orange:~/rakudo$ git config remote.origin.url
17:15 pmichaud git@github.com:rakudo/rakudo.git
17:15 pmichaud is that not correct?
17:15 pmichaud (I did not do any sort of special git config setting, afaik)
17:16 cxreg pmichaud: it's failing over ssh?  that's surprising :/
17:16 pmichaud note that nothing is failing for me at the moment.
17:16 pmichaud you said "everyone should ..."  and I'm trying to decide if I'm part of 'everyone'.
17:17 cxreg pmichaud: no, you're right, that's read-only
17:17 cxreg easily repaired though :)
17:17 pmichaud ...what's 'read-only'?
17:17 cxreg a git:// url
17:18 pmichaud okay, so git:// urls are read-only, git@github.com:  is for committers, yes?
17:18 cxreg right
17:18 pmichaud who needs to be doing the 'git config' step, then?
17:18 pmichaud people who got a copy via http:// ?
17:18 pmichaud or ... ?
17:18 cxreg yes, that's what #git recommended, and it fixed it for me
17:19 cxreg but as for ssh, I've got no idea
17:19 pmichaud anyway, I suggest that we use git://github.com/rakudo/rakudo.git as the canonical location for people wanting to download rakudo, and not the http:// address.
17:20 pmichaud but I'm still learning about git.
17:20 cxreg are any of you guys over in that channel?  they're asking for specifics but I don't have access to the ssh repo
17:20 pmichaud I can join -- on freenode?
17:20 cxreg yeha
17:20 pmichaud joined.
17:21 pmichaud if someone asks a question I can try to answer :-)
17:21 cxreg oh.  well shucks.  I thought you'd said you still had problems and here I was trying to solve them.
17:22 jnthn rakudo: say True;
17:22 p6eval rakudo 876c09: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
17:22 cxreg http:// -> git:// resolved my issue, and if ssh has no issue, then i think your suggestion is sufficient.
17:23 pmichaud cxreg: particle might've had some problems.  I was just trying to get clarity on who should or shouldn't be doing the git config step.
17:24 cxreg ok, he's also talking about http there, so I think we're on the same page.  http--
17:28 pmurias joined #perl6
17:31 pmurias ruoso: grey node in bootstrap.dot mean ones which are meant to be define in Perl 6 not in C right?
17:31 lambdabot pmurias: You have 1 new message. '/msg lambdabot @messages' to read it.
17:31 pmichaud for those following along, apparently the answer is that http:// support is b0rken on github right now.
17:33 ruoso pmurias, I was actually thinking about it
17:33 pmurias ruoso: hi
17:33 ruoso hi pmurias
17:33 kst joined #perl6
17:34 pmurias as it makes no sense to have return defined in C
17:34 ruoso pmurias, indeed..
17:34 ruoso but the failures do make sense
17:35 ruoso maybe 'gray' simply means 'it needs to be implemented in "whatever"'
17:35 pmurias makes sense
17:36 jnthn pmichaud: Erm. Ouch.
17:36 ruoso it's interesting how the dot file shows the number of dependencies that a code as simple as Multi generates
17:37 jnthn pmichaud: Seems we're getting block name conflicts perhaps...
17:37 pmichaud jnthn: that doesn't make much sense to me, though.
17:37 jnthn oh, maybe not...hmm
17:38 pmichaud any blocks that are being generated should be in a different namespace.
17:38 ruoso pmurias, I think we could take the code of smop/src-s1p/Return.pm and simplify it as binding the sub directly in the lexical prelude instead of using "is export"
17:38 ruoso then we consider that code as "simplified Perl 6 (which means that it should be black, not blue)
17:38 jnthn Aye
17:39 ejs joined #perl6
17:40 pmurias ruoso: is return a multi?
17:40 ruoso I don't think so
17:41 pugs_svn r25388 | ruoso++ | [mildew] make a simplified "&return" in the mildew prelude
17:44 jnthn pmichaud: For some reason as soon as I had a class Bool is also { }, then "say True" starts giving errors.
17:44 jnthn Like this:
17:44 pugs_svn r25389 | ruoso++ | [mildew] update dot according to simplified &return
17:44 jnthn too few arguments passed (0) - 2 params expected
17:44 jnthn current instr.: 'parrot;Whatever;ACCEPTS' pc 22950 (src/gen_setting.pir:82)
17:44 jnthn Which is...rather odd.
17:45 pmichaud wasn't Bool defined as an enum?
17:45 pmichaud and automatically generated that way?
17:45 pmichaud or did that get backed out?
17:45 pmichaud or superceded?
17:45 jnthn Bool.pir looks to do it as a class
17:45 jnthn oh but then enums.pir does...something else!
17:45 jnthn Oh
17:45 jnthn Hmm
17:46 nihiliad joined #perl6
17:46 jnthn pmichaud: Yeah, I think what's in Bool.pir isn't what actually sets up Bool::True and Bool::False.
17:46 jnthn OK, my bad.
17:46 pmichaud I know you had reworked Bool at one point, and I never caught up on it to see what was happening.
17:47 jnthn But I got two small code-gen improvements anyway...
17:47 jnthn Well, I think finally now the spec is nailed down on it a bit more.
17:47 pmichaud yes.
17:47 jnthn It's not quite an enum, it's kinda role-ish, IIRC.
17:47 pmichaud and if you can rewrite Bool as p6-setting code, that would be tres cool.
17:47 pmichaud er,  «tres cool»
17:47 jnthn ;-)
17:48 jnthn I could try that.
17:48 pmichaud might have some issues with exporting values.
17:48 jnthn I'll attack a few easier things first.
17:48 pmichaud that's a good plan.
17:49 jnthn For things like List and so on.
17:49 jnthn At the moment we subclass ResizablePMCArray.
17:49 pmichaud do we have 'is export' doing anything useful on methods?
17:50 jnthn But I'm not sure that's going to fly if it'll become a role.
17:50 pmichaud I'm not eager to do a major List refactor right now, fwiw.
17:50 jnthn We might need to create proto-objects for some Parrot types like ResizablePMCArray.
17:50 iblechbot joined #perl6
17:50 jnthn In a namespace like Parrot::ResizablePMCArray or something
17:50 pmichaud I don't have a problem with doing that.
17:50 pugs_svn r25390 | pmurias++ | [mildew] removed is export from &return as we store it in the lexical prelude directly
17:50 jnthn So we can use them as an attribute.
17:51 jnthn I don't plan to do this today.
17:51 pmichaud is there a big dependency on a  List refactor?
17:51 jnthn But OTOH I do need to get typed arrays and hashes done to finish my grant. ;-)
17:51 pmichaud ah, grant.
17:51 jnthn Aye.
17:51 jnthn nopaste?
17:51 jnthn heh
17:52 * pmichaud wonders if Rakudo should have a 'no paste;'   :-)
17:52 jnthn OK, but AFAIK (though I need to review) my remaining grant tasks are:
17:52 jnthn * Detection at compile-time of re-declaration of subs and giving of errors in such situations.
17:52 jnthn * Detection of "only" conflicting with "multi" and reporting of such errors.
17:52 jnthn * Test cases for writing a different dispatcher in a meta-class, to check that we've done it right (note that this means implementing knowhow, which isn't really part of this grant, but I do hope to have done this by January).
17:52 nihiliad joined #perl6
17:52 jnthn * Typed arrays and hashes implemented using parametric roles, usable and working.
17:52 jnthn * Declaring an "of" type for subroutines.
17:52 ruoso pmurias, hmm.. mildew is broken...
17:52 jnthn * handles with s/a/b/ and on a method
17:52 jnthn Erm, actually that test case for different dispatchers wasn't part of my grant proper.
17:52 ruoso pmurias, it fails compiling prelude/Return.pm
17:52 jnthn It was kinda wishlist, for testing dispathcer.
17:53 jnthn But the *big* item in there is typed arrays and hashes.
17:53 jnthn (And subs...)
17:53 ruoso TimToady, "Undeclared name: CALLER:: used at 4" seems like a wrongish warning...
17:53 pmichaud jnthn: can I suggest a branch, then?
17:54 pmichaud I just know how hard it has been to get hashes and lists working in the current version; and while you're finishing up your grant, I've yet to substantially start mine.
17:55 ruoso std: &infix:<==>(int,int)(1,1)
17:55 p6eval std 25390: OUTPUT«############# PARSE FAILED #############␤Unable to parse argument list; couldn't find final ')' at /tmp/hmqVADv1ex line 1:␤------> [32m&infix:<==>(int[31m,int)(1,1)[0m␤    expecting any of:␤    name␤   noun␤     prefix or meta-prefix␤      prefix_postfix_meta_operator␤
17:55 p6eval ..term␤   whitespace␤FAIL...
17:55 ruoso hmm
17:55 Tene_ joined #perl6
17:55 pmichaud (because I've been sidetracked doing things like lexicals and parameter refactors and build system refactors and ... )
17:55 ruoso wasn't that supposed to be valid?
17:55 ruoso std: &infix:<==>(int,int).(1,1)
17:55 p6eval std 25390: OUTPUT«############# PARSE FAILED #############␤Unable to parse argument list; couldn't find final ')' at /tmp/AeVDZvY2TT line 1:␤------> [32m&infix:<==>(int[31m,int).(1,1)[0m␤    expecting any of:␤   name␤   noun␤     prefix or meta-prefix␤      prefix_postfix_meta_operator␤
17:55 p6eval ..term␤   whitespace␤FAI...
17:56 pmurias ruoso: re prelude/Return.pm i'll look into it
17:57 jnthn pmichaud: Yes, if I can work out how to do branches in git. ;-)
17:57 pmichaud it's pretty straightforward, from what I've read.
17:57 jnthn pmichaud: Well, the part of your grant on the Perl 6 prelude got a step closer today. :-)
17:57 pmichaud indeed, so I can say that got started.  :-)
17:57 pmichaud and much of those other items were pre-reqs to my grant.
17:57 pmichaud like the parameter refactoring
17:58 jnthn OK, what do:
17:58 jnthn =item perl()
17:58 jnthn Returns a Perl representation of a List.
17:58 jnthn =cut
17:58 jnthn Become in Perl 6 POD?
17:58 * jnthn has not studied it at all...
17:58 pmichaud jnthn: time to read S26, methinks.  :-)
17:58 jnthn It tells me it's out of date. ;-)
17:58 pmichaud http://perlcabal.org/syn/S26.html
17:59 pmichaud Yes, it's out of date, but it's not _that_ out of date.
17:59 pmichaud I'll inquire about it at today's conference call, though.
18:00 jnthn looks like
18:00 pmichaud and perhaps a brief note to Daiman for an update.
18:00 jnthn =begin item
18:00 jnthn =end item
18:00 pmurias ruoso: you mean it emit code using postcircumfix:< >?
18:00 pmurias * emits
18:00 duke_leto joined #perl6
18:00 duke_leto left #perl6
18:00 ruoso pmurias, hm?
18:00 pmurias do you have an up to date STD
18:01 pmurias and clean lex/
18:01 nihiliad joined #perl6
18:01 pmurias checking it for myself...
18:01 ruoso pmurias, yes, I've just checked that
18:01 TimToady std: &infix:<==>:(int,int)(1,1)
18:02 ruoso TimToady, ah... that second : is new, isn't it?
18:02 p6eval std 25390: OUTPUT«Potential difficulties:␤  Variable &infix:<==>:(int,int) is not predeclared at /tmp/Q80Nxv5zIz line 1:␤------> [32m[31m&infix:<==>:(int,int)(1,1)[0m␤ok 00:03 36m␤»
18:02 pmurias ruoso: how does it fail?
18:02 pmichaud jnthn: S26 also has =item
18:02 TimToady no, quite old
18:02 TimToady but it must be there, or it's a sub call
18:02 pugs_svn r25391 | pmurias++ | [mildew] added missing files
18:02 TimToady with (int,int) as args
18:02 ruoso pmurias, Can't locate object method "emit_m0ld" via package "VAST::semiarglist" at src/VAST/args.pm line 9.
18:02 pmurias fixed
18:02 jnthn pmichaud: Yes, foudn that.
18:03 jnthn pmichaud: Ah.
18:03 jnthn Hmm
18:03 jnthn It wasn't Bool specific.
18:03 TimToady bacek: [\!=] should return False as first result, not True
18:03 jnthn Oddness. As soon as I add another class to the setting...
18:03 jnthn It blows up.
18:03 jnthn The same way.
18:03 ruoso stf: say CALLER::<$foo>
18:03 ruoso std: say CALLER::<$foo>
18:03 jnthn (too few arguments passed (0) - 2 params expected)
18:03 p6eval std 25390: OUTPUT«Undeclared name:␤      CALLER:: used at 1 ␤ok 00:02 33m␤»
18:04 ruoso TimToady, the above warning seems wrong
18:04 jnthn pmichaud: Any program causes it.
18:04 * jnthn signs
18:04 jnthn *sighs
18:04 TimToady ruoso: probably
18:04 jnthn pmichaud: OH!
18:04 jnthn This looks...bad
18:04 jnthn too few arguments passed (0) - 2 params expected
18:04 jnthn current instr.: 'parrot;Whatever;ACCEPTS' pc 23207 (src/gen_setting.pir:181)
18:04 jnthn called from Sub 'parrot;Perl6;Grammar;Actions;statement_block' pc 114836 (src/ge
18:04 jnthn n_actions.pir:453)
18:05 pmurias ruoso: does it compile now?
18:05 maerzhase joined #perl6
18:05 TimToady ruoso: there's no code in STD to handle CALLER yet
18:05 ruoso pmurias, yes... thanks
18:05 jnthn pmichaud: I fear it's subid related. Because we are .include'ing the setting and the actions.pm in one file, we get duplicated subids.
18:05 pmichaud jnthn: okay, that makes sense.
18:05 ruoso TimToady, ok...
18:06 jnthn It's calling directly from the actions to the prelude. :-)
18:06 jnthn Which are in differnt namespaces
18:06 jnthn So it's about all I can think of.
18:06 pmichaud and yes, subids are per-compilation unit, so that makes very good sense.
18:06 pugs_svn r25392 | pmurias++ | [mildew] my $foo = &infix:<+> works
18:06 jnthn Yes
18:07 jnthn .sub "ACCEPTS"  :subid("16") :method :outer("14")
18:07 jnthn And
18:07 pugs_svn r25393 | ruoso++ | [mildew] fix the way the multi variant is called by name.
18:07 pugs_svn r25393 | ruoso++ | [mildew] add the role package_declarator that looks for RoleHOW
18:07 pmichaud okay.  I'm sure I can fix it -- I just need to think how I want to do that.
18:07 jnthn .sub "_block93"  :anon :subid("16") :outer("15")
18:07 jnthn Yes.
18:07 jnthn Hmm.
18:07 jnthn Aye...fixable, just how. :-)
18:07 pmichaud btw, it looks like my Thursday morning meeting is being cancelled/postponed, so I should be around all tomorrow too.
18:08 jnthn OK
18:08 pmichaud I'm needing lunch here.
18:08 jnthn I may do some grant work tomorrow.
18:08 jnthn Yeah, I could do with dinner actually.
18:09 ruoso pmurias, now mildew complains about '&infix:<==>:(int,int)($candidates.elems,0)'
18:09 pmichaud I think subid prefixes might be the answer.
18:09 pmichaud or at least "an answer"
18:09 pmichaud or I could look at uuid generation again.
18:09 jnthn pmichaud: I think they'd do us.
18:10 ruoso pmurias, ah... mildew still requires a '.' between the sub name and the '(' if you use the '&'
18:10 pmichaud okay, lunch here.  bbiaw
18:11 pmurias ruoso: ok i'll fix that
18:13 pmurias ruoso: &infix:<==>:(int,int) is treated as &infix:<==> atm
18:13 ruoso pmurias, the use of $LexicalPrelude in the end of Multi.pm and Return.pm is not needed... the symbols are already being declared there...
18:15 ruoso mildew++ &return already works ;)
18:15 pmurias the LexicalPrelude is specified as the starting scope in the loader
18:17 ruoso hmm.. actually.. it didn't work... I haven't recompiled Return.mildew.so
18:18 schmalbe joined #perl6
18:18 ruoso it seems that the aliasing is still needed after all
18:20 ruoso hmm... it seems that capture dwimmery is not working as expected..
18:20 ruoso it is returning an array even if I only have a single parameter...
18:24 pmurias TimToady: shouldn't postcircumfix:sym<( )> be using semiargslist instead of semilist?
18:24 pmurias ruoso: aliasing?
18:26 ruoso pmurias, $LexicalPrelude.{'&return'} := &return;
18:31 Psyche^ joined #perl6
18:32 PantheraPardus joined #perl6
18:36 pmurias ruoso: found the bug
18:36 ruoso pmurias, cool
18:36 ruoso pmurias, squash it ;)
18:36 pmurias code emitted by mildew was not passing any arguments to return
18:36 ruoso hmm...
18:37 ruoso I assume it is not passing to any function called without parenthesis
18:39 pmurias yes
18:39 ruoso this is probably a regression from changes in STD...
18:39 ruoso I think that had already worked before
18:40 pugs_svn r25394 | pmurias++ | [mildew] failing test for a sub call without parenthesis
18:50 timbunce joined #perl6
18:59 pugs_svn r25395 | pmurias++ | [mildew] sub calls without parenthesis work now
19:00 pmurias ruoso: it was a STD regression
19:01 pmurias that is it was cause by STD changes
19:01 bacek good morning
19:01 pmurias ruoso: do you think the Prelude should be loaded by default now?
19:02 bacek TimToady: ([\!=]) False as first result or last?
19:03 TimToady first result is the identity value
19:04 TimToady which is False for !=
19:04 bacek TimToady: but != right associative.
19:05 TimToady no it isn't
19:05 bacek ah, ok.
19:05 TimToady != is abbrev for !== which is chain assoc
19:06 bacek so what "[\!=] 4,5,4" should produce?
19:06 bacek and [\!=] 4,5,6?
19:06 TimToady they both produce False True True
19:07 bacek TimToady: thanks.
19:08 TimToady and I do think stringifying enums should use True rather than 1
19:08 bacek 4,4,5 -> False, True, False?
19:08 TimToady only for ==
19:08 TimToady not for !=
19:09 jnthn TimToady: Is that a design decison for enums generally? That they stringify to the name of the enum element?
19:09 jnthn erm, that elements stringify to...
19:09 TimToady I think + makes the number, ~ makes the short name, and .perl makes the qualified name
19:09 TimToady if it's not a decision, it's close to it :)
19:09 jnthn What about .WHAT?
19:10 TimToady True.WHAT is a protoobject
19:10 TimToady which has its own rules for stringifying
19:10 bacek rakudo: say (True, False) ~~ (True, False); say (True, False) ~~ (False, True)
19:10 p6eval rakudo 876c09: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
19:10 TimToady Bool() is the current spec for that
19:11 jnthn That is, the proto-object we'd get from taking the role generated by the enum declarator and punning it?
19:11 jnthn And the enum instances are basically instances of a class punned from that role?
19:11 TimToady I've always viewed enums as more like subset types
19:11 jnthn (where instances I mean, the thingies installed in the namespace for each value)
19:12 jnthn Oh?
19:12 jnthn Roles always made more sense to me.
19:12 TimToady in fact, I view all defined values as subset types
19:12 TimToady sub foo (2,2) {...}
19:12 jnthn Given you can do things like $x but Some::EnumValue
19:12 jnthn Or ust $x but EnumValue.
19:13 TimToady Bool is a role, sure
19:13 TimToady True is a value
19:13 jnthn I'm talking enums in generaly.
19:13 jnthn *general
19:13 jnthn OK, what I'm getting at is, what is the relationship between the value True and the role Bool?
19:13 jnthn Or in general for an enum Foo<Bar Baz>, the relationship between Foo and Bar/Baz?
19:14 TimToady you could view values as singleton classes, I suppose
19:15 TimToady or as subsets of a single punned class that happen to be able to tell you their one value
19:15 jnthn I viewed them more as instances of a singleton class got from punning the role Foo...
19:15 TimToady I'm not so concered with what they are as I am with how you may use them :)
19:16 jnthn So enum Foo<Bar Baz> is like role Foo { has $.Foo }; Bar := Foo.new(:Foo(0)); Baz := Foo.new(:Foo(1))
19:16 jnthn Or similar.
19:17 jnthn OK, fair enough. :-)
19:17 TimToady arguably that's the same thing the Foo{:Foo(0)} or Foo(0) syntax does
19:17 TimToady though perhaps not with the closure
19:18 TimToady since that doesn't commit to class creation
19:18 TimToady and indeed, it can, since it's just a list of role initializers that may not make sense without something else mixed in
19:18 TimToady *can't
19:19 TimToady but I do wonder how general the Foo(0) syntax is in "but Foo(0)"
19:19 TimToady and whether it calls .new(0) assuming there's a positional variant
19:20 TimToady or whether it assumes there's a coercion
19:20 jnthn I'd been doing introspection to see what the name of the one attribute tha the role introduced was, and then setting that.
19:20 TimToady and if coercions are always single arg, what about Array(0,1,2,3)?
19:21 pugs_svn r25396 | pmurias++ | [mildew] added a hackish one argument &say and &print to the Prelude
19:21 pugs_svn r25396 | pmurias++ | t/return_function.t uses the Prelude
19:21 TimToady okay for now, but just bear in mind we might generalize it
19:21 jnthn OK
19:21 jnthn I don't think it'll be too painful a change.
19:22 bacek jnthn: can you put one line fix for grammar-oper.pg?
19:22 bacek perl6: say 2**3**4
19:22 pugs_svn r25397 | lwall++ | [STD] change postcircumfix:<( )> to use semiarglist as suggested by pmurias++
19:22 p6eval elf 25395: OUTPUT«2.41785163922926e+24␤»
19:22 p6eval ..rakudo 876c09: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
19:22 p6eval ..pugs: OUTPUT«2417851639229258349412352␤»
19:22 zamolxes joined #perl6
19:22 bacek jnthn: -proto infix:<**> is precedence('w=') { ... }
19:22 bacek +proto infix:<**> is precedence('w=') is assoc('right') { ... }
19:23 jnthn Ah yes, STD.pm agress with you. :-)
19:24 bacek and all other implementations too :)
19:24 pmichaud bacek:  what's the fix?
19:24 pmichaud oops, wrong scrollback.
19:24 bacek right assoc of **
19:24 pmichaud looks like jnthn is working on it already :-)
19:25 * pmichaud 's karma isn't doing so well lately.  :-|
19:25 jnthn pmichaud: I'll give you a ++ if you fix up the subid generator. ;-)
19:25 pmichaud jnthn: that's what I'm about to do now.
19:25 jnthn Yay!
19:25 jnthn pmichaud++
19:26 pmichaud building parrot trunk
19:27 jnthn bacek: Will commit it shortly. :-)
19:28 bacek jnthn: no worries. I already commited it into my repo :)
19:28 jnthn bacek: Are there some spectest we can unfudge?
19:28 jnthn bacek: Or if not would you be able to write one?
19:28 bacek jnthn: running spectest now to check
19:29 jnthn Me too, got a couple of small other (unrelated) tweaks to go in too.
19:30 smtms joined #perl6
19:33 pugs_svn r25398 | bacek++ | [t/spec] Add test for ** right associative
19:33 bacek jnthn: you probably have to fudge test in S03/reduce-metaop.t
19:34 bacek but it works in my version :)
19:34 _timbunce joined #perl6
19:35 jnthn bacek: Ah. But surely that implies, that the test is wrong?
19:35 bacek no, test is right
19:35 bacek [**] 2,3,4 == 2**3**4
19:35 jnthn Ah. And we fail it after this patch because?
19:36 bacek yes
19:36 bacek i've got version of metaops with support [\..] form and right assoc.
19:36 pmichaud we fail it because [**] is probably not honoring associativity.
19:36 jnthn Ah.
19:36 jnthn Makes sense.
19:36 jnthn OK, we can regress on that one for now.
19:37 jnthn bacek: My point more though was that, now we have fixed this, we should have a test for the ** operator that now passes that would not have before I apply this patch.
19:37 jnthn Where it got the wrong answer before and gets it right now.
19:38 bacek <pugs_svn> r25398 | bacek++ | [t/spec] Add test for ** right associative
19:38 perlbot What kind of idiot karmas himself?  Your kind of idiot!
19:38 pmichaud and !REDUCEMETAOP should probably have a :assoc option.
19:38 nihiliad joined #perl6
19:38 pmichaud (unless we have a way to look it up directly)
19:39 jnthn Not that I know of, unless there's some way to poke into the tokenizer and ask it.
19:39 pmichaud oh, we could do that.
19:39 jnthn You'd know that more than I would. ;-)
19:39 pmichaud that's not that hard.
19:39 jnthn Sounds like a winner to me.
19:39 jnthn Because then we handle user defined ops and their associativity.
19:39 jnthn When we get those.
19:41 pmichaud Win!  My regular Thursday morning meeting has been cancelled for this week.  More hacking time for me!
19:41 jnthn Yay!
19:42 jnthn You can improves your karmas. ;-)
19:42 bacek nopaste?
19:48 nihiliad joined #perl6
19:49 bacek pmichaud: jnthn http://nopaste.snit.ch/15665 is reduce with support [\..] and assoc.
19:49 pmichaud bacek: I think I'm going to look up the associativity from the optable instead of putting it here.
19:50 bacek pmichaud: I can't  figure out how to do it...
19:50 bacek parsing grammar-oper.pg?
19:51 pmichaud no, the information for the operator tokens is in the parser.
19:51 pmichaud i.e., I'm going to have REDUCEMETAOP do the lookup.
19:51 pmichaud not the gen_* script.
19:51 jnthn bacek: Applied your ** patch. If you have a commit bit on the Pugs repo, could you un-fudge the ** associativity test, and fudge the failing metaop one?
19:52 bacek jnthn: I did't fudged '**' test.
19:53 dalek rakudo: 75ea93f | jnthn++ | src/parser/grammar-oper.pg:
19:53 dalek rakudo: infix:<**> should be right associative; patch courtesy of bacek++.
19:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​5ea93fbb6d1ec18b9757047dda5618dcf27833b
19:53 dalek rakudo: a020241 | jnthn++ | src/parser/actions.pm:
19:53 dalek rakudo: Some slight tweaks to code generation of is also classses and when no Main is in effect.
19:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​0202411e8754a9e0d3dd72c700d1ed33cf6f744
19:53 jnthn bacek: Oh? I hadn't seen it failing before applying yoru patch though. Hmm...
19:53 bacek pmichaud: how it can be implemented?
19:53 pmichaud bacek: by doing a lookup on the OPTable object, which is just a hash.
19:53 pmichaud at least, I think it's a hash.
19:54 pmichaud anyway, looking up 'infix:**' in the OPTable object will get its traits, including associativity.
19:54 pmichaud (same for other operators, including user-defined ones when we get there.)
19:54 bacek pmichaud: ok, thanks. I can rework my patch.
19:55 pmichaud also, the triangle stuff looks like there's some code duplication present.
19:55 pmichaud (which I'd prefer to avoid)
19:55 bacek PGE;OPTable or Perl6::Grammar::$optable?
19:55 cxreg does the stimulus package have a rakudo grant? :)
19:55 pmichaud Perl6::Grammar::$optable, probably.
19:55 pmichaud I tried to get one in there, but my representative and senators aren't very supportive of such things :-)
19:56 pmichaud (no, I didn't really try to get anything in the stimulus package)
19:57 pmichaud Let's just say that Texas is a very red state.  And yes, we win big from the stimulus package, which seems like it should give us lots of negative karma.
19:59 jnthn texas--
19:59 jnthn ;-)
19:59 jnthn karma texas
19:59 jnthn meh.
20:00 pmichaud jnthn: testing unique subid patch now.
20:00 TimToady phone
20:00 pmichaud danke
20:02 bacek pmichaud: I'll rework triangle handling and try to get metadata from optable.
20:02 bacek $self ~~ $dayjob
20:03 jnthn pmichaud: Great!
20:05 pmichaud jnthn: r36866
20:09 jnthn pmichaud++ # works!
20:09 jnthn awesome I now haz
20:09 jnthn method perl(@self:) {
20:09 jnthn return '[' ~ @self.map({ .perl }).join(", ") ~ ']';
20:09 jnthn }
20:09 jnthn For List
20:09 jnthn That is...shorter than the PIR!
20:13 pmichaud I think I would prefer $self, or even just use inherent 'self'
20:15 jnthn Yeah, we could do that.
20:18 iblechbot joined #perl6
20:20 * jnthn converts several methods and does a make spectest
20:20 jnthn Going to pop to the supermarket while it runs...back soon.
20:31 ascent_ There was any benchmarks on Parrot/Perl6?
20:31 ascent_ s/on/of/
20:48 nihiliad joined #perl6
20:52 jnthn ascent_: Not that I'm aware of.
20:55 ascent_ jnthn: Perl6 can use external libraries in C? I think not?
20:55 allbery_b it wil be able to, don't think it's been specced yet
20:56 jnthn It's not spec'd as such, I don't think, but for Rakudo somebody did already write an NCI module that would be able to do that.
20:58 ascent_ I just hope that Parrot won't be another JVM ;)
20:58 jnthn ascent_: For the NCI module, you did not have to write any C yourself to call C libraires. It's quite nice. :-)
20:58 jnthn ascent_: It's just a thin layer itself over Parrot's own NCI support.
20:59 pmichaud jnthn: (perl 6 pod)  consensus is to go with the current draft for now, trusting that we'll be able to easily adjust the pod later as needed
20:59 jnthn pmichaud: OK, works for me.
20:59 pmichaud maybe someone can write a more detailed perl6pod parser :-)
20:59 jnthn pmichaud: Though I didn't work out how to make =item not parse fail yet..
20:59 jnthn So used =begin item ... =end item for now.
20:59 jnthn But it's a trivial find/replace later.
20:59 pmichaud that's the easy approach for now.
21:00 jnthn Anyway, checked in a few more things moved over to Perl 6.
21:00 jnthn Added 60 lines, removed 350 ;-)
21:00 pmichaud nice.
21:00 jnthn Yeah.
21:00 pmichaud spectests pass?
21:00 jnthn Our codebase is going to *shrink*.
21:00 jnthn Yes, of course!
21:01 jnthn I'm relying on those to tell me I didn't screw it up... ;-)
21:01 ascent_ jnthn: Sounds great! =)
21:01 pmichaud well, at some point we'll want to look at the generated code to make sure we aren't doing lots of unwanted overhead, but that's optimization :-)
21:01 jnthn Sure.
21:01 pmichaud I'll work on 'is export' next, and then see if I can do some operator hacks for short-term stuff.
21:01 dalek rakudo: 80fd5c5 | jnthn++ |  (7 files):
21:01 dalek rakudo: Move a few methods on List and Pair over to the Perl 6 setting.
21:01 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​0fd5c5074f197e96fe326cf94fa384279448c73
21:02 jnthn Ah, yes, operators defined in prelude would indeed be cool.
21:02 pmichaud even if we just drop into Q:PIR { ... }, it would be cool.  We'd get our multis.
21:02 hirschnase joined #perl6
21:02 jnthn Right.
21:02 jnthn I was going to ask about that.
21:03 jnthn Because for say, Pair
21:03 jnthn I've moved almsot every method
21:03 jnthn But
21:03 ruoso how do you plan to get the values from the signature to inside the inner language?
21:03 pmichaud in 80fd5c5, I see that the methods were removed from src/classes/*  but don't see the corresponding adds to src/setting/*
21:03 pmichaud perhaps missing a git add ...?
21:03 jnthn Huh?
21:03 hirschnase left #perl6
21:03 jnthn create mode 100644 src/setting/List.pm
21:03 jnthn create mode 100644 src/setting/Pair.pm
21:03 pmichaud ruoso: we can look them up directly in PIR.
21:03 jnthn Is what it said in my commit.
21:04 pmichaud jnthn: oh, I see  -- it's just not showing up in the diff.
21:04 pmichaud (on github)
21:04 jnthn Oh?
21:04 jnthn That's odd.
21:04 ruoso pmichaud, hmm... ok... does std knows how to tandle Q:FOO { } ?
21:04 pmichaud they're there, I just had to know where to look.
21:04 jnthn But if you pull do you have them?
21:04 jnthn OK, phew.
21:04 jnthn I thought I'd screwed up on git...
21:04 ruoso better put, how do I define a sub-language to be used with Q:FOO ?
21:04 pmichaud ruoso: I'm not worried about std being able to parse Q:FOO
21:04 ruoso pmichaud, I know... I was asking that for mildew
21:05 pmichaud but Q:PIR   is really just an adverb on the Q "quote" operator
21:05 pmichaud so it already knows how to do the { }
21:05 pmichaud it's basically the same as Q:regex
21:05 ruoso std: my $foo = Q:m0ld { my $void; };
21:05 p6eval std 25398: OUTPUT«############# PARSE FAILED #############␤Unrecognized quote modifier: 1 at /tmp/PlSVmFW0cB line 1:␤------> [32mmy $foo = Q:m0ld[31m { my $void; };[0m␤FAILED 00:02 33m␤»
21:06 ruoso right... I should look on how to add a quote modifier in STD
21:06 pmichaud as far as "how to get std to recognize the new adverb"... I'm not immediately concerned with that part yet.  :-)
21:06 jnthn pmichaud: On why it's hard to say, move Pair over fully to Perl 6, for example...
21:06 jnthn What does
21:06 jnthn pairproto.'!IMMUTABLE'()
21:06 jnthn Become?
21:07 pmichaud well, we have to re-do Pair in that sense anyway.
21:07 jnthn But more pressing, how to handle ".sub 'get_string' :method :vtable" ?
21:07 pmichaud because Pair keys are immutable but values are mutable, iirc.
21:07 ruoso TimToady, how hard it would be to add a new quote modifier?
21:07 pmichaud I don't know how to deal with vtable yet.
21:07 pmichaud again, some things will have to remain in PIR for the time being.
21:07 jnthn is vtable('...') # trait that we only make available through use?
21:07 jnthn Sure.
21:07 pmichaud or we start adding rakudo-specific traits, yes.
21:08 pmichaud I just want to get the simple stuff first.
21:08 jnthn Sure.
21:08 jnthn That might be a blocker for list. But adding some Rakudo-specific traits is easy enough.
21:08 pmichaud (also,   .sub 'get_string' :method :vtable is wrong.... it should generally be    .sub '' :vtable('get_string')
21:09 pmichaud (there's quite a few of those hanging around the codebase)
21:09 jnthn not .sub 'Str' :vtable('get_string') ?
21:09 pmichaud possibly that, although we run into problems there as well.
21:09 jnthn How so?
21:09 pmichaud subclasses lose the vtable distinction
21:10 pmichaud i.e., if a subclass overrides Str, its vtable still points to the parent.
21:10 jnthn Oh
21:10 jnthn Yes.
21:10 pmichaud so I'm thinking that all vtable stuff may eventually just end up in Object.
21:10 jnthn OK, makes sense.
21:10 pmichaud Either that or we have logic in the compiler that recognizes certain methods as corresponding to vtable entries.
21:10 jnthn That was the other approach I pondered.
21:10 jnthn Because it saves a re-dispatch.
21:10 dukeleto joined #perl6
21:10 pmichaud so that when someone does    method Str() { ... }   the compiler automatically adds the :vtable item
21:11 [particle] pmichaud: git clone ; perl Configure.pl --gen-parrot # works
21:11 pmichaud for short term I've been thinking we live with re-dispatch
21:11 jnthn *nod*
21:11 [particle] nmake spectest broke
21:11 pmichaud I mean, we re-dispatch so many other places
21:11 dukeleto evalbot: perl6: say (10).log
21:11 pmichaud perl6: say (10).log
21:11 p6eval rakudo 876c09: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
21:11 p6eval ..pugs: OUTPUT«2.302585092994046␤»
21:11 p6eval ..elf 25398: OUTPUT«2.30258509299405␤»
21:11 jnthn [particle]: What broke about it?
21:11 dukeleto pmichaud: thanks
21:11 [particle] svn co "http:\\svn.pugscode.org\pugs\t\spec" t\spec
21:12 pmichaud overagressive slash replacements :-(
21:12 jnthn patches welcome ;-)
21:12 dukeleto perl6: say (1,2).log
21:12 p6eval pugs: OUTPUT«0.6931471805599453␤»
21:12 p6eval ..rakudo 876c09: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
21:12 p6eval ..elf 25398: OUTPUT«0.693147180559945␤»
21:12 [particle] working on a patch now
21:12 jnthn Hmm...why did *I* not get hit by that one?
21:12 dukeleto pmichaud: that looks like the evalbot doesn't have the perl6 binary, cause that is not the error I get on my machine
21:13 pmichaud I'm thinking we should not be doing   s{/}{\\}g   on the Makefile text.
21:13 [particle] you probably had t/spec already
21:13 [particle] i'm using a fresh git clone
21:13 pmichaud Instead, the Makefile should have @slash@ in places where slashes are needed.
21:13 pmichaud (indeed, that's how I had it originally -- not doing the slash replacements)
21:13 pmichaud dukeleto: yes, there seems to be an issue with the evalbot at the moment
21:14 dukeleto pmichaud: ok, just making sure
21:21 bacek joined #perl6
21:28 jnthn pmichaud: We maybe soon can close http://rt.perl.org/rt3/Tic​ket/Display.html?id=49173 ;-)
21:31 pmichaud afaic, we can close it now.  We now allow builtins in Perl 6.  :-)
21:31 pmichaud we still have some more features we need, yes.
21:31 pmichaud but the goal of the ticket is met.
21:32 jnthn Oh, that ticket has a patch for Array.splice written in Perl 6...
21:32 pmichaud feel free to add if appropriate (and working)
21:33 jnthn Sure, it has workaround for earlier bugs in, will check.
21:39 bacek (Array.splice in Perl6)--
21:39 bacek (Reduce metaop in Perl6)++
21:39 bacek :)
21:40 pmurias joined #perl6
21:42 jnthn Heh, we don't have a .splice on Array yet...this could get some more spec tests if it's right...
21:48 jnthn pmichaud: Resolving that ticket will also resolve all of the dependencies on http://rt.perl.org/rt3/Tic​ket/Display.html?id=49171
21:49 pmichaud I'm in favor of resolving the ticket.  :-)
21:50 pmichaud for 49171 we need to pick our new 'high priority items'  :-)
21:50 pmichaud actually, we should get masak to use 49171 to indicate his priorities :-)
21:50 jnthn Doesn't masak already have enough tickets? ;-)
21:54 jnthn oh wtf i haz a fail
21:54 jnthn ...under the harness only.
21:55 jnthn ...and it doesn't segfault. Huh.
21:55 * jnthn treats it as a heisenbug.
21:59 jnthn pmichaud: In answer to, does "is export" do anything, it seems not..
22:00 dalek rakudo: d3cc978 | jnthn++ |  (5 files):
22:00 dalek rakudo: Some more methods from Bool and Pair converted to Perl 6.
22:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​3cc978345c45b65559be2b9759a7bd483ae114d
22:00 pmichaud the purpose of 49171 is so we can say "of the tickets that remain, these are relatively more important"
22:01 jnthn OK
22:01 jnthn I'll leave it and we can attach new important ones to it. ;-)
22:01 jnthn OTOH
22:01 wknight8111 joined #perl6
22:02 jnthn This source ticket is one of the oldest in the queue, so the outcome of adding a dependency on the "this is important" ticket doesn't seem to improve its chances much. ;-)
22:03 jnthn Hmm. I'm pretty sure this splice ain't rigth.
22:03 jnthn If only for its signature...
22:04 wayland Incidentally, for those interested in portable paths, I've changed this in some of the most recent updates of S16 :)
22:04 jnthn oh no, it's right...
22:04 jnthn (By S29)
22:06 pmichaud well, the goal was to have one quick place to say "what's important", and that 49171 would be the canonical place to look
22:07 jnthn OK.
22:07 pmichaud i.e., it becomes important by convention
22:07 pmichaud or, stated another way, next time masak has a list of tickets he'd like us to look at, we tell him to make them dependencies of 49171 :-)
22:08 pmichaud or we could start using (gasp) the 'priority' feature of RT.
22:08 timbunce joined #perl6
22:08 pmichaud oops, I'm being called to dinner.  bbl
22:11 jnthn OH AWESOME splice (after a small fix) gets us passing two more of the 99 problems.
22:14 bacek joined #perl6
22:14 wayland For those discussing prompt(), I agree it belongs on a class/role, but haven't decided which yet.  Maybe one that hasn't been created yet :)
22:15 wayland Term maybe?
22:17 dukeleto perl6: say 42
22:17 p6eval rakudo 876c09: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
22:17 p6eval ..elf 25398, pugs: OUTPUT«42␤»
22:17 bacek_ joined #perl6
22:25 |jedai| joined #perl6
22:27 pugs_svn r25399 | pmurias++ | [mildew] update to work with STD HEAD
22:30 pmurias ruoso: i think marking stuff in bootstrap.dot with black as being in "simplified Perl 6" doesn't make much sense
22:31 dalek rakudo: 444a4c8 | jnthn++ |  (2 files):
22:31 dalek rakudo: Add Array.pm to the prelude. For now it just contains splice, written by cspencer++ and attached to RT#49173. Happily, this gets two more of the 99 problems spectests running.
22:31 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​44a4c817df2b2a6970533b6e4575b01f8cdd8aa
22:32 jnthn pmichaud: OK, I think that's about all from me today...getting tired.
22:32 jnthn Journal here: http://use.perl.org/~Jonath​anWorthington/journal/38508
22:33 pmichaud jnthn: great work today, as usual.  I'll see what I can do with 'is export'
22:33 jnthn pmichaud: OK. Note that one thing that we probably need to fix up to make that work, is that the invocant is currently untyped.
22:34 jnthn If we can implement lexical $?CLASS though, that should become a trivial fix.
22:34 jnthn And I think that should be relatively easy too.
22:34 jnthn But those two are probably needed for export to work properly
22:34 pmichaud agreed... I'm just wanting to get the basic methods exporting for now.  we can fix up the mmd stuff when we get to it.
22:34 jnthn Oh, no doubt some methods need to be marked multi...
22:35 jnthn I didn't mark much multi today.
22:35 pmichaud they're easy fixes when we get to them.  At least, they should be.
22:35 jnthn Aye, agree.
22:35 jnthn Just mentioning them so you don't hit upon them unexpectedly. :-)
22:35 pmichaud good.
22:37 jnthn Hopefully the Perl 6 prelude gets more people involved, anyway.
22:37 jnthn It should certainly make some things seem less mysterious.
22:37 pugs_svn r25400 | pmurias++ | [mildew]
22:37 pugs_svn r25400 | pmurias++ | the prelude is loaded implicitly(use --no-prelude to mildew) to disable this behaviour
22:37 pmichaud as long as it's the right sort of involvement.  I'm not fond of the C<Tree> stuff being discussed on p6l  :-)
22:37 jnthn I've been mostly ignoring it.
22:39 kane_ joined #perl6
22:40 pmurias C<Tree> stuff = "IO, Trees, and Time/Date"
22:40 pmurias ?
22:41 jnthn Probably, or some part thereof.
22:41 jnthn I didn't read it enough to know what the Trees bit is about...
22:42 Tene_ something like a Tree role or something that directory trees can do
22:42 Tene_ iirc
22:42 jnthn Once there's a spec it seems people are mostly agreeing on, I'll start paying attention. :-)
22:46 pmurias jnthn: it's funny that rakudo and mildew both got a Perl 6 prelude on the same day ;)
22:48 jnthn Yeah! :-)
22:48 jnthn Given the duration of both projects (scale of years), both unintentionally ending up with it on the same day is kinda amusing. :-)
22:48 jnthn Maybe it's a sign... ;-)
22:49 wayland The night before Christmas? :)
22:49 wayland Incidentally, the idea of the Tree role is that it be able to represent any kind of tree, including directory trees
22:50 wayland pmichaud: Do you have a specific objection to the Tree ideas?
22:50 jnthn There's...a lot of different types of trees...
22:51 wayland I agree that's a problem.  My experience is with the Unix filesystem and with XML
22:51 wayland Which is why I'm seeking objections, so that I can find weaknesses in the model :)
22:55 jferrero joined #perl6
23:00 pmurias wayland: shouldn't XML be represented in a typed form in most cases (when you have a defined schema)?
23:03 wayland pmurias: Not sure what you mean.  Are you wanting to read the XML elements in as objects, with the XML attributes being instance attributes
23:03 wayland ?
23:10 wayland Btw, I'd be interested to hear people's feedback on whether the new Spec class/role directory should be called "lib" (as moritz suggested), or S32-standard-modules.
23:11 wayland I suggested the second, because it seems to me that lib/ would be appropriate for code, but this is not code
23:12 pmurias wayland: what is suppososed to live in that directory?
23:17 pmurias wayland: re XML i don't have any experience with it (not counting XHTML) so you should propably ignore my question
23:17 shinobi-cl joined #perl6
23:18 pmurias wayland: Perl 6 is supposed not to have a standard library
23:18 wayland pmurias: What is supposed to live in that directory is specs for the various different Perl6 built-in objects, ie. chunks of S29 (but in separate files), and chunks of S16, and maybe others.
23:18 wayland Maybe "standard library" is the wrong term
23:18 wayland predefined objects?
23:19 pmurias "stuff in the prelude"
23:19 wayland For example, the IO spec seems to be requiring that we have eg. a predefined IO::Readable role interface, and a redefined DateTime class (for representing ctime et. al.)
23:20 wayland How about S32-Setting then?
23:21 wayland (maybe redefined isn't the word I want :) )
23:21 mib_p8ocx41b joined #perl6
23:21 mib_p8ocx41b left #perl6
23:21 wayland pmurias: In response to your XML question, I suspect the answer is "sometimes, but not always" :)
23:22 jnthn Note that it's possible to define a role that is optionally typed.
23:22 wayland Btw, for those asking about new quoting constructs, S02 says they can be declared as macros :)
23:23 shinobi-cl "datetime" datatype , just like int ot str, now that would be useful
23:23 wayland jnthn: I don't understand.  Documentation?
23:23 jnthn S12, parametric roles
23:23 wayland shinobi-cl: I'm working on it, but it's been suggested to call it "Instant", instead of DateTime
23:24 wayland jnthn: Thanks.  Investigating...
23:24 jnthn wayland: Not sure if they'll be useful for what you're doing, but worth knowing bout.
23:24 shinobi-cl well... mmmm Instant makes sense.. Because it would represent a specific instant in time, not a period of time
23:25 pmurias wayland: i'm a bit doubt full if adding XML and DateTime handling to the core is a sensible thing
23:25 wayland I'm not adding XML handling
23:25 shinobi-cl But the idea of a time datatype, is to make calculations of, for example, which day of the week would be in 450 weekdays
23:26 shinobi-cl so in that context, instant would not make that much sense
23:26 wayland Merely a tree interface that *could* do XML if a class were written for it :)
23:26 jnthn It's an instant in the future. :-)
23:26 jnthn Instant + Period = Instant? :-)
23:26 wayland shinobi-cl: Ok, the idea is that the Temporal package will do Instant and Duration :)
23:26 jnthn Instant + Instant = Meaningless
23:27 jnthn Instant - Instant = Duration
23:27 jnthn etc
23:27 wayland And other things (like Calendar, for Julian vs. Gregorian vs. ...)
23:27 shinobi-cl yes, but time can be just calculated as a normal vector... a number... but date calculations are not, they have to udestand differente date formats, and, consider "date locales"
23:28 wayland shinobi-cl: There will be room for parsing modules and locales and different calendars, don't worry
23:28 shinobi-cl "date locales" that may change frecuently.. in my country the congress has added at least 3 holydays in the last 10 years
23:28 shinobi-cl ahh cool :)
23:28 shinobi-cl i would like to help, by the way
23:28 wayland The defaults may just be English with Gregorian, but there'll be room for other stuff
23:30 wayland Anyway, back to the question I really want answered -- are there any objections to calling the new Spec directory S32-setting-library?
23:32 pmurias one possible objection is that most of the funtions in S29 have a method counterpart
23:33 pmurias and splitting them apart doesn't seem a wise idea
23:33 timbunce joined #perl6
23:34 duke_leto joined #perl6
23:35 duke_leto left #perl6
23:35 pmurias sleep&
23:35 duke_leto joined #perl6
23:35 duke_leto left #perl6
23:37 gravity joined #perl6
23:38 wayland I'd argue that S29 should mostly be saying "see <other spec>", and that the other specs should define the appropriate functions, with S29 just being a cross-reference

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo