pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/ | ~315 days 'til Xmas
Set by mncharity on 8 February 2009.
00:08 mikehh left, kane_ left 00:09 maerzhase left, hercynium left 00:10 [particle] joined 00:14 justatheory joined 00:30 alc joined 00:36 hanekomu left 00:38 [particle] left 01:03 lisppaste3 left 01:09 lisppaste3 joined 01:13 mtnviewmark left 01:19 shinobi-cl joined 01:20 Oxygenfadd joined 01:29 hercynium joined 01:30 [particle] joined
Oxygenfadd pastebin.com/d694c8822 01:30
Why isn't this working ?
:)
01:37 nihiliad joined 02:04 eternaleye joined 02:07 aindilis joined 02:16 ejs left 02:20 aindilis` left, Whiteknight left 02:22 hercynium left 02:29 mikehh joined 02:37 alester joined, pugs_svn left 02:38 pugs_svn joined 02:39 agentzh left 02:40 agentzh joined 02:45 xinming left, rhr_ left, |jedai| left, xinming joined, rhr_ joined, |jedai| joined 02:46 hercynium joined 02:49 broquaint left, broquaint joined 03:07 Oxygenfadd left 03:15 mikehh left 03:19 mikehh joined
pugs_svn r25371 | wayland++ | S16: Redid things in terms of trees, at least somewhat. 03:30
03:54 Limbic_Region left 03:57 hercynium left 04:16 alc left 04:30 _jedai_ joined 04:32 |jedai| left 04:38 spooneybarger left 04:53 alc joined 04:55 justatheory left
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:07
r25373 | wayland++ | S16: Started adding some DateTime stuff, but stopped pending some questions to the mailing 05:09
r25373 | wayland++ | list.
05:16 shinobi-cl left 05:25 rhr joined 05:27 eternaleye left 05:39 rhr_ left 05:40 alester left 05:47 jfredett_ joined 05:56 jfredett_ left, alester joined 06:08 eternaleye joined
pugs_svn r25374 | wayland++ | Bits and pieces, but mostly trying to clean up the list of unfiled functions. 06:15
06:15 eternaleye left 06:17 eternaleye joined 06:22 yahooooo left 06:26 Tene_ joined
pugs_svn r25375 | wayland++ | Fixed operator overloading calls. 06:29
06:33 DemoFreak joined 06:40 justatheory joined, Tene left 06:41 Caelum left 06:42 meppl joined, Caelum joined 06:49 yahooooo joined 06:51 PantheraPardus joined 06:54 ashizawa joined 07:00 justatheory left 07:17 maerzhase joined, maerzhase left 07:52 alester left 07:56 Sepheebear joined
pugs_svn r25376 | moritz++ | [t/spec] many small improvements: 07:57
r25376 | moritz++ | * variable declarations found by STD.pm
r25376 | moritz++ | * accidentially passing junctions to ok() (found by Rakudo)
08:04 bacek_ left
pugs_svn r25377 | moritz++ | [t/spec] fudge test in multi.t that throws a backtrace (used to be dies_ok 08:17
r25377 | moritz++ | instead of eval_dies_ok which is why it didn't occured before)
08:19 iblechbot joined 08:20 masak joined
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?
(I didn't follow all these commits to S16 all that close) 08:24
masak there's now a Tree role in S16.
it represents some kind of directory structure
Matt-W Morning
masak morning, all M people!
08:25 bacek_ joined
Matt-W :) 08:25
masak also, the Date (!) role is in S16, and all its date components are typed as NumberName. 08:26
I haven't investigated why, but it seems strange to me at first sight.
also, "NumberName", regardless of its purpose, sucks as a name.
moritz_ aye 08:27
Matt-W hmmm
'Tree' seems inappropriate for something specialised to directories 08:28
masak mostly a bit squatty, according to me. 08:29
'Tree' is even a common example when implementing recursive data structures.
Matt-W I could understand if it was File::Tree or something 08:30
masak already much better.
Matt-W likes namespaces, probably due to his other life as a C++ programmer 08:31
08:31 bacek_ left
dalek kudo: 842ef38 | (Moritz Lenz)++ | Test.pm:
Import Ovid's Test.pm with improved diagnostics.

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