Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-02-17

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:30 shinobi-cl left #perl6
00:44 aindilis joined #perl6
00:53 Tene joined #perl6
01:00 [particle] joined #perl6
01:14 bacek_ joined #perl6
01:19 shinobi-cl joined #perl6
01:27 alc joined #perl6
02:13 justatheory joined #perl6
02:29 bacek joined #perl6
02:45 shinobi-cl left #perl6
03:02 meppl joined #perl6
03:12 justatheory joined #perl6
03:15 meppuru joined #perl6
03:17 pugs_svn r25360 | wayland++ | Moved "syscall" from S16 to S29, as per discussion on mailing list.
03:35 pugs_svn r25361 | wayland++ | S16: Created IO::FileSystemEntry, and separated out the appropriate stuff from
03:35 pugs_svn r25361 | wayland++ | IO::Filesystem.  I'm glad this is only a draft :).
03:46 alester joined #perl6
04:28 s1n pmichaud++ for the parrot auto-builder
04:32 agentzh joined #perl6
04:33 pugs_svn r25362 | putter++ | [elfparse] Simplify rx IR trees, by combining atoms, and flattening sequences.
04:35 nihiliad joined #perl6
05:14 mtnviewmark joined #perl6
05:16 chid joined #perl6
05:16 lambdabot joined #perl6
05:48 s1n pmichaud: what was it we discussed last week about ranges that you wanted to do?
06:01 magnarjg joined #perl6
06:51 PantheraPardus joined #perl6
06:55 ashizawa joined #perl6
06:55 mberends joined #perl6
07:13 DemoFreak joined #perl6
07:14 szabgab rakudo: for 1..5 -> $x { say $x; last if $x > 2 }
07:14 p6eval rakudo c4f0f9: OUTPUT«Class 'Perl6MultiSub' not found␤current instr.: 'parrot;Perl6Role;!add_variant' pc 2691 (src/classes/Role.pir:42)␤»
07:15 szabgab hmm, it works on my machine...
07:15 szabgab anyway for this does not work for me:    1.. -> $x { say $x; last if $x > 5 }
07:16 szabgab and if I put in 1..Inf   it will "get stuck" without any output
07:27 maerzhase joined #perl6
07:28 maerzhase joined #perl6
07:51 maerzhase joined #perl6
07:52 moritz_ good morning
07:56 mikehh moritz: good morning
08:08 alc joined #perl6
08:10 moritz_ szabgab: ping
08:10 szabgab moritz_, reping
08:10 moritz_ szabgab: sorry, I can't attend the GPW and the hackathon, ETOOMUCHWORK
08:11 szabgab ah
08:11 szabgab :-(
08:11 iblechbot joined #perl6
08:11 szabgab so I'll be alone on the hackathon ?
08:11 moritz_ :(
08:12 moritz_ that would be rather un-hackathonish
08:12 szabgab I am really really surprised that basically no one was interested
08:12 moritz_ I'm afraid that Germany is generally rather uninterested in Perl 6
08:13 szabgab I don't think it is that different from the rest of the world
08:14 WootKit joined #perl6
08:15 masak joined #perl6
08:19 p6eval joined #perl6
08:27 moritz_ rakudo: say 'non-borked'
08:27 p6eval rakudo 8695e4: OUTPUT«non-borked␤»
08:29 WootKit joined #perl6
08:33 masak moritz_: guten morgen.
08:33 moritz_ god dag, god dag
08:34 martin__ joined #perl6
08:34 masak no, not in a few hours :)
08:36 masak someone should do a Perl 6 port of http://search.cpan.org/~dcon​way/Perl6-Form-0.04/Form.pm
08:37 mberends joined #perl6
08:38 martin__ left #perl6
08:39 pugs_svn r25363 | moritz++ | [t/spec] fudged zip.t for Rakudo, and added test for RT #63232
08:43 WootKit_62 joined #perl6
08:45 mberends_ joined #perl6
08:45 mberends joined #perl6
08:47 masak Perl6::Form is beautifully written and documented. it has 14k lines of code and 26k lines of Pod. it has no tests.
08:48 Matt-W masak: complicated, but doable given that Damien already wrote the Perl 5 implementation
08:48 masak Matt-W: that's the one I'm looking at.
08:48 masak as I said, it's not that opaque.
08:48 Matt-W I'm trying to get a glimmer of understanding of how it works going on
08:48 masak Damian did a good job here to be readable.
08:48 masak but it still needs test, IMHO.
08:49 masak s/test/tests/
08:49 moritz_ doesn't it use source filters?
08:49 dalek rakudo: 00307bb | (Moritz Lenz)++ | t/spectest.data:
08:49 dalek rakudo: add zip.t to t/spectest.data
08:49 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​0307bbc91bb597412b5d5421b0d703a82604f7b
08:49 masak moritz_: it has no external dependencies.
08:49 Matt-W masak: yes it does
08:50 Matt-W but it doesn't use a source filter
08:50 masak oops, sorry.
08:50 Matt-W it takes a pile of strings and Does The Right Thing
08:51 Matt-W and rather cunningly seems to maintain a set of global format options for each package it gets called from
08:51 WootKit joined #perl6
08:51 masak heh.
08:51 Matt-W I like that
08:51 Matt-W Can you get your caller's module in Rakudo yet?
08:52 moritz_ don't think so
08:52 masak no.
08:52 Matt-W aww
08:52 Matt-W Can't copy that bit yet then
08:52 masak just add a '# RAKUDO' comment and move on :)
08:52 moritz_ you can use objects instead
08:53 moritz_ maybe somebody should first implement Text::Wrap
08:53 moritz_ it seems that Perl6::Form needs that as well
08:53 Matt-W that would be sensible
08:53 Matt-W I'm tempted to have a stab at some of this
08:54 masak Matt-W: create a github repository.
08:54 Matt-W yes :)
08:54 Matt-W I can't actually start writing any code until home time, because if I do then my company own it
08:54 masak moritz_: where do you find the Text::Wrap dependency? I don't find it.
08:54 Matt-W but...
08:55 Matt-W it is quite nice that over 2/3 of that enormous .pm file is actually the documentation
08:55 moritz_ masak: when you look at the example below 'And both of them would print something like:
08:55 moritz_ masak: then you see that it wraps text
08:55 Matt-W it does that itself
08:55 masak aye.
08:55 moritz_ that doesn't mean a re-implementation should also do this
08:55 Matt-W I suppose you could call out to another module for that, if it had the right sort of interface
08:55 Matt-W you'd have to be able to ask it to do one line and give you the remainder back
08:56 masak moritz_: true, but it might mean subtly breaking compatibility with the Perl 5 Text::Wrap.
08:56 Matt-W or maybe not
08:56 masak not that we haven't done that before :)
08:56 Matt-W I suppose you could get back a wrapped string and split it on \n
08:56 Matt-W or a list of strings
08:56 Matt-W hmm
08:56 moritz_ masak: that's ok. That's why we have a major revision without backwards compatiblitly
08:56 masak aye.
08:56 Matt-W aye!
08:56 * Matt-W makes a github project, to shame him into writing something this evening
08:57 Matt-W remember to nag me
08:57 mberends masak: proto runs on the eeePC here (now re-configured with eeebuntu++). I can try to re-do my efforts in the next few hours if you like.
08:57 masak mberends: I like.
08:57 masak mberends++
08:58 mberends thanks, looking forward to that progress.
08:58 masak speaking of backwards compatibility, I really like the comments on our grant proposal: http://news.perlfoundation.org/2009/0​2/2009q1_grant_proposal_webpm_-.html
09:00 alexn_org joined #perl6
09:01 * masak receives an honest-to-God bug report on proto!
09:02 mberends pray tell
09:02 masak seems someone found a Rakudo build failure and attached the make.log file to me. :)
09:02 masak I'm giddy with happiness over this.
09:02 mberends anyone we know?
09:02 masak "Solomon Foster".
09:03 masak I don't have other emails from him in my Gmail mailbox.
09:03 mberends new to me, but very welcome, yes
09:03 masak indeed.
09:03 masak mberends: by the way, I'll add a copyright statement to the README in proto, and an AUTHORS file with you in it.
09:04 ejs joined #perl6
09:05 sri_kraih joined #perl6
09:05 mberends great. my approach to the dependency thing is basically what you wrote, with two queues. the download queue is processed FIFO and the build queue LIFO.
09:05 agentzh joined #perl6
09:06 masak sounds right to me.
09:14 mikehh joined #perl6
09:15 WootKit joined #perl6
09:24 pmurias joined #perl6
09:35 agentzh joined #perl6
09:49 bacek moritz_: around?
09:50 moritz_ bacek: mostly
09:50 bacek moritz_: I can't reproduce your multis bug. It actually works
09:51 * moritz_ tests again
09:51 bacek rakudo 10909da98, parrot 36769
09:52 * moritz_ rebuilds
09:53 moritz_ no such luck here, with parrot r36809 and rakudo 00307bbc91bb597412b5d5421b0d703a82604f7b
09:54 masak love those long SHA-1 identifiers.
09:54 moritz_ bacek: without any local modifications?
09:54 bacek moritz_: indeed. But I'll check again
09:54 jeremiah masak: Hello again :)
09:55 masak jeremiah: greetings.
09:55 jeremiah Regarding your blog post about irb and _why's documentation
09:55 bacek moritz_: yes (if I can trust git)
09:55 moritz_ that's weird
09:56 jeremiah I think I mentioned my friend the cartoonist. Well, I went out and bought a domain name so that we can come up with a cool cartoon / instruction for perl6
09:56 bacek moritz_: I'll try to update to latest parrot.
09:56 jeremiah The domain name is perl6.withea.se
09:56 masak jeremiah: awesome.
09:56 jeremiah Not live yet.
09:56 jeremiah (Obviously, the withea.se is the root)
09:56 masak aye.
09:56 jeremiah So one can have foo.withea.se
09:56 masak yes, that's the way domain names work.
09:57 jeremiah Funny that
09:57 masak not particularly. :)
09:57 jeremiah In IPv8 it is completely different.
09:58 szabgab jeremiah,  if you have a cartoonist friend how come Padre does not have a nice logo yet ?
09:58 jeremiah szabgab: It will now!
09:58 jeremiah I will mail him today. :)
09:58 szabgab jeremiah++
09:59 jeremiah szabgab: I also am going to check padre out of a git repo on debian, dam built a complete version I believe.
09:59 szabgab let me try this again:
09:59 szabgab rakudo: for 1..5 -> $x { say $x; last if $x > 2 }
09:59 masak I'd like the logo to be a catholic priest, blessing scalars and other Perl data types.
09:59 p6eval rakudo 00307b: OUTPUT«1␤2␤3␤»
09:59 szabgab fixed, great
09:59 jeremiah masak: Too much like the San Diego Padres
09:59 szabgab what if I removed 5 from there ?
09:59 szabgab what if I replaced 5 by Inf there ?
09:59 masak jeremiah: I have no idea who those are.
10:00 masak szabgab: rakudo does not support lazy arrays yet.
10:00 moritz_ rakudo: class Scissor { }; class Paper { }; multi wins(Scissor $x, Paper   $y) { 1 }; multi wins(::T     $x, T       $y) { 0 }; multi wins($x, $y) { -1 }; say wins(Paper.new, Paper.new)
10:00 p6eval rakudo 00307b: OUTPUT«sh: ./parrot: No such file or directory␤»
10:00 moritz_ meh
10:00 masak s/lazy/lazily infinite/
10:00 szabgab masak, ok, I was just making sure
10:00 masak szabgab: otherwise, it should work. :)
10:01 ludan joined #perl6
10:05 moritz_ rakudo: class Scissor { }; class Paper { }; multi wins(Scissor $x, Paper   $y) { 1 }; multi wins(::T     $x, T       $y) { 0 }; multi wins($x, $y) { -1 }; say wins(Paper.new, Paper.new)
10:05 p6eval rakudo 00307b: OUTPUT«Class 'Perl6MultiSub' not found␤current instr.: 'parrot;Perl6Role;!add_variant' pc 2691 (src/classes/Role.pir:42)␤»
10:05 moritz_ it seems that whenever I rebuild parrot i also have to rebuild rakudo
10:06 masak aye, that's what I do locally.
10:07 pugs_svn r25364 | wayland++ | S16: Added cwd to FileSystem
10:07 moritz_ rakudo: class Scissor { }; class Paper { }; multi wins(Scissor $x, Paper   $y) { 1 }; multi wins(::T     $x, T       $y) { 0 }; multi wins($x, $y) { -1 }; say wins(Paper.new, Paper.new)
10:07 p6eval rakudo 00307b: OUTPUT«Null PMC access in find_method()␤current instr.: '_block44' pc 503 (EVAL_19:170)␤»
10:08 moritz_ bacek: and that works for you?
10:08 masak moritz_: is there a ticket for that?
10:08 moritz_ (note that it works if the multi with ::T is the only candidate)
10:08 moritz_ masak: yes
10:08 masak oh, good.
10:09 bacek moritz_: this one - no. But code from RT works...
10:09 moritz_ rakudo: class Scissor { }; class Paper { }; multi wins(Scissor $x, Paper   $y) { 1 }; multi wins( $x, $y where { $x.WHAT eq $y.WHAT ) { 0 }; multi wins($x, $y) { -1 }; say wins(Paper.new, Paper.new)
10:09 p6eval rakudo 00307b: OUTPUT«Unable to parse block; couldn't find final '}' at line 1, near ") { 0 }; m"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
10:10 moritz_ rakudo: class Scissor { }; class Paper { }; multi wins(Scissor $x, Paper   $y) { 1 }; multi wins( $x, $y where { $x.WHAT eq $y.WHAT } ) { 0 }; multi wins($x, $y) { -1 }; say wins(Paper.new, Paper.new)
10:10 p6eval rakudo 00307b: OUTPUT«Null PMC access in find_method()␤current instr.: '_block44' pc 529 (EVAL_20:182)␤»
10:10 moritz_ bacek: that's a subset of the code from RT
10:10 bacek rakudo: class Scissor { }; class Paper { }; multi wins(Scissor $x, Paper   $y) { 1 }; multi wins( $x, $y where { $x.WHAT eq $y.WHAT ) { 0 }; multi wins($x, $y) { -1 }; say wins(Scissor.new, Paper.new)
10:10 p6eval rakudo 00307b: OUTPUT«Unable to parse block; couldn't find final '}' at line 1, near ") { 0 }; m"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
10:15 masak early lunch &
10:15 Matt-W masak: oh no, don't mention lunch
10:15 Matt-W <- very hungry
10:15 masak lunch lunch lunch lunch lunch lunch lunch lunch lunch
10:15 bacek rakudo: class Scissor { }; class Paper { }; multi wins(Scissor $x, Paper   $y) { 1 }; multi wins( $x, $y where { $x.WHAT eq $y.WHAT } ) { 0 }; multi wins($x, $y) { -1 }; say wins(Scissor.new, Paper.new)
10:15 p6eval rakudo 00307b: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
10:16 bacek dinner!
10:16 Matt-W aaargh
10:16 * Matt-W dives headfirst into a pile of messy C++
10:16 zamolxes joined #perl6
10:17 moritz_ rakudo: class Scissor { }; class Paper { }; multi wins(Scissor  $x, Paper   $y) { 1 }; multi wins( $x, $y where { $x.WHAT eq  $y.WHAT } ) { 0 }; multi wins($x, $y) { -1 }; say  wins(Scissor.new, Paper.new)
10:17 p6eval rakudo 00307b: OUTPUT«1␤»
10:18 Matt-W now add Stone
10:18 moritz_ rakudo: class Scissor { }; class Paper { }; multi wins(Scissor  $x, Paper   $y) { 1 }; multi wins( $x, $y where { $x.WHAT eq  $y.WHAT } ) { 0 }; multi wins($x, $y) { -1 }; say  wins(Paper.new, Scissor.new)
10:18 p6eval rakudo 00307b: OUTPUT«Null PMC access in find_method()␤current instr.: '_block44' pc 529 (EVAL_20:182)␤»
10:19 Matt-W aww
10:28 pugs_svn r25365 | moritz++ | [t/spec] tests for rt #63276
10:34 alexn_org joined #perl6
10:44 WootKit joined #perl6
10:47 moritz_ @tell pmichaud 'make parrot all' alwayss fails for me, every time i rebuild parrot i also have to 'make clean' in rakudo. Any chances of fixing this? or should 'make parrot' implicitly clean rakudo?
10:47 lambdabot Consider it noted.
10:48 bacek rakudo: multi foo($x,$y where { $x==$y }) { 1 }; foo(0,1)
10:48 p6eval rakudo 00307b: OUTPUT«Parameter type check failed for $y in call to foo␤current instr.: 'die' pc 17013 (src/builtins/control.pir:204)␤»
10:48 bacek nice...
10:49 bacek rakudo: multi foo($x,$y where { $x==$y }) { 1 }; foo(0,0)
10:49 p6eval rakudo 00307b: RESULT«1»
10:49 bacek rakudo: multi foo($x,$y where { $x==$y }) { 1 }; multi foo($x,$y) { 0 }; foo(0,0)
10:49 p6eval rakudo 00307b: OUTPUT«Null PMC access in get_number()␤current instr.: 'infix:==' pc 16233 (src/builtins/cmp.pir:15)␤»
10:49 bacek moritz_: this is reduced version of your bug
10:50 Tene_ joined #perl6
10:54 moritz_ bacek: yes, but probably not the same as the one with generics
10:55 pugs_svn r25366 | moritz++ | [t/spec] simple tests for multis and subset types, bacek++
10:55 bacek rakudo: multi foo(::T $x, T $y) { 1 }; multi foo($x,$y) { 0 }; foo(0,0)
10:55 p6eval rakudo 00307b: OUTPUT«Null PMC access in find_method()␤current instr.: '_block27' pc 246 (EVAL_16:101)␤»
10:56 bacek same :)
10:56 moritz_ bacek: one is in get_number (called from infix:==), the other in find_method
10:56 moritz_ bacek: I don't dare to judge if they are really the same bug
10:57 bacek moritz_: they produces same code. And bug in "!SIGNATURE_BIND" function which fails to rebind lexicals
10:57 moritz_ bacek: ok
11:01 bacek moritz_: ok. SIGNATURE_BIND isn't guilty. But actions.pm is :)
11:04 * moritz_ goes to lunch
11:27 pugs_svn r25367 | wayland++ | S16: Made some improvements based on
11:27 pugs_svn r25367 | wayland++ | http://www.mail-archive.com/perl6​-language@perl.org/msg28566.html
11:27 pugs_svn r25367 | wayland++ |
11:27 pugs_svn r25367 | wayland++ | (Thanks to Mark Overmeer for the link)
11:29 jeremiah left #perl6
11:35 grizzlysmit joined #perl6
11:39 xinming joined #perl6
11:41 grizzlysmit left #perl6
11:45 WootKit joined #perl6
12:06 ejs joined #perl6
12:13 ruoso joined #perl6
12:15 ruoso HellO!
12:17 mberends joined #perl6
12:18 * masak thinks that ruoso must embody at least part of the spirit of TSa when he greets like that
12:19 ruoso why?
12:21 masak revdiablo: because TSa starts every email with 'HalloO <person>'
12:21 masak sorry, ruoso, not revdiablo
12:21 ruoso ah
12:22 masak (with great tab completion comes great responsibility)
12:22 ruoso I think it's probably because I press "shift" too soon
12:22 * masak guessed that
12:22 ruoso maybe it's the spirit that's making me press shift earliser
12:23 ruoso maybe it will start moving my finger from "e" to "a" as well
12:23 masak sounds likely to me.
12:24 masak ruoso: does 'int where { 2 }' really DWYM? I thought the block after 'where' contained a boolean expression.
12:24 ruoso maybe I'm wrong...
12:24 masak ...making it necessary to write 'int where { $_ == 2 }' or something.
12:24 moritz_ masak: int where 2 should do
12:24 ruoso pugs: sub foo (int where { 2 } $i) {say $i}; foo(4);
12:25 p6eval pugs: OUTPUT«*** ␤    Unexpected "int"␤    expecting "|", ":", "*", parameter name or ")"␤    at /tmp/OmfkdTES2R line 1, column 10␤»
12:25 moritz_ masak: because where without a block does a smartmatch
12:25 masak moritz_: ah, ok.
12:25 ruoso int where 2 looks even better :)
12:25 masak I've sometimes wished this could be written 'multi infix:<+> (2, 2) { ... }'
12:25 moritz_ rakudo: multi a($x where 2) { say 'two' }; multi a ($x) { say 'normal' }; a(3); a(2)
12:25 p6eval rakudo 00307b: OUTPUT«normal␤two␤»
12:25 masak but I don't know if that clashes with anything.
12:26 ruoso std: multi infix:<+> (2, 2) { ... }
12:26 p6eval std 25367: OUTPUT«ok 00:02 33m␤»
12:26 moritz_ masak: actually yesterday I was about to propose that on p6l, but didn't have internet access
12:27 masak moritz_: :)
12:29 ruoso std: multi infix:<+> (int $i where 2, int $j where 2) {...}
12:29 p6eval std 25367: OUTPUT«ok 00:02 34m␤»
12:40 masak we talked about http://www.perlmonks.org/?node_id=735910 last week.
12:40 masak I have now finally read it.
12:41 masak I can't say it convinced me of being skeptical towards LP, largely because I've only read about LP, not actually used it myself.
12:41 masak then again, I don't actually think I'd feel comfortable working in a full LP stack...
12:42 masak ...but it seems to me that many of the ideas in there are worthwhile.
12:43 moritz_ I think there are use cases for it
12:43 WootKit joined #perl6
12:43 moritz_ for example if you write a book "how to write a $foo-Compiler in $language"
12:44 moritz_ but i don't think it's appropriate to use it fully for "normal" programs
12:44 masak what makes that use case LP-worthy, in your opinion?
12:45 WootKit joined #perl6
12:45 moritz_ that the focus is more on the prose
12:46 pmurias joined #perl6
12:46 masak oh, I think parts of the LP message are applicable in a wider scope than that.
12:47 moritz_ masak: I know.
12:48 moritz_ and in the wider scope I receive that message as "documentation is important"
12:48 masak not only that.
12:48 WootKit joined #perl6
12:48 masak but documenting the intent and "narrative" of a program is important.
12:48 masak I've been thinking about making a week into "documentation week", and just going through all of the files in November, Druid and Proto, and adding vital documentation.
12:49 moritz_ my problem is that there doesn't seem to be a perfect time to write documentation
12:49 SamB yeah, literate programming is not for every situation -- it's great if you are writing a paper about a program or something like that
12:50 masak moritz_: hence "documentation week" :)
12:51 masak SamB: I just don't believe that it need be confined to that small a scope.
12:52 SamB doesn't need to be
12:53 SamB but it doesn't necessarily fit so well with a full-size production compiler, for instance
12:55 masak maybe not.
12:56 masak I hope that in 2029, the tools we use today will seem as quaint and outdated as the tools from 1989 seem to us. including how we manage code documentation.
12:57 masak it's entirely possible that LP contains only a seed to the tools we will see, but I do think it contains such a seed.
12:57 masak and, IIUC, it has already influenced things like JavaDoc.
12:58 SamB ah. that sort of thing is definately good, yes.
12:58 moritz_ and perldoc ;-9
12:58 masak yes, of course.
12:59 moritz_ http://www.perlmonks.org/?node_id=744347 # tangenting a similar subject
13:00 masak see you in a week on that, then.
13:00 moritz_ lol
13:01 moritz_ (not having internet access at home)--
13:01 masak I don't, and I think it's good for my sleep, my reading books, and my offline productivity.
13:02 masak but I can see how it might be tough when it's forced upon you.
13:02 moritz_ writing the tidings post is rather hard without internet access :/
13:03 masak undoubtedly.
13:06 iblechbot joined #perl6
13:25 mberends masak: I just hit a blocker with parrot 0.9.0: your :f filetest is not supported there. I'm reluctant to go back to the eyesore workarounds, but are you ready to let go of 0.9.0?
13:26 moritz_ mberends: 0.9.1 will be released today ;-)
13:26 mberends without perl6
13:27 mberends what Rakudo versioning do you prefer for proto? monthly releases or bleading edge git?
13:29 mberends or double my workload and just say 'both' ;)
13:30 masak mberends: monthly releases.
13:30 moritz_ both, and then have a server where we assemble build reports
13:30 moritz_ and automatically pick the newest revision that's known to work
13:30 masak I've been kinda waiting for Rakudo to be released standalone for the first time.
13:30 * moritz_ ducks and runs
13:30 masak moritz_: simple! :)
13:32 * mberends throws an infrared clog at moritz_, but moritz_ had found cover
13:34 masak mberends: by necessity we have to support all possible installations of Parrot and Rakudo.
13:34 mberends did I miss some recent development of a Parrot autobuild within Rakudo?
13:34 masak but I also think we should default to installing the one most likely to succeed.
13:34 masak that means the latest stable.
13:34 mberends you said 'both' without using the word ;)
13:34 masak mberends: no.
13:35 masak because 'installing' and 'knowing how to handle' are different things.
13:35 masak the latter process means we'll soon have to get RAKUDO_DIR involved as a possible factor.
13:35 mberends so if you provide a PARROT_DIR it's at your own risk?
13:36 masak mberends: if you provide proto with your own PARROT_DIR, it's taken as an implicit assertion that there's a working Rakudo/Parrot in that vicinity.
13:36 masak ...or that, if there isn't, you want proto to try to build them there.
13:37 masak *download/build
13:37 mberends got it
13:37 mberends and proto goes for stable monthly releases unless overridden
13:38 masak right.
13:38 masak because bleeding stuff might be temporarily broken, and proto is meant to succeed as often as possible.
13:39 masak also, it's easier to provide workarounds for things that aren't moving :)
13:39 mberends right. the problem of detecting the release number remains, the repos do not have a 'current' symlink at the moment.
13:40 masak I don't mind flags in proto for all kind of chicanery, like installing Parrot inside Rakudo, installing bleeding revisions of stuff, and so on.
13:40 masak but the default should be 'latest stable'.
13:41 mberends the hardcoded version number must be updated inside proto and published asap after a new stable comes out.
13:41 masak as long as all the Perl 6 projects out there also target 'latest stable' (at least in their master branches), we shouldn't have to worry about versioning. :)
13:41 moritz_ why is proto in shell script, and not for example in perl5? ideologic reasons?
13:42 masak moritz_: I don't think Perl 5 should be required for running Perl 6, 's all.
13:42 masak not everyone is so lucky as to sit on a Perl 5-installed system.
13:42 mberends perl5 is a build dependency anyway
13:42 masak dang. :/
13:42 moritz_ masak: no parrot without perl
13:42 masak but it might not always be.
13:42 masak IIUC.
13:42 mberends until parrot 3.0
13:43 masak heh :)
13:43 pmurias a shell script isn't preferable
13:43 pmurias as it's not avalibe on windows for example
13:43 masak I felt a shell script to be quite a natural medium for what I do in the proto script.
13:44 masak pmurias: if you provide me with a Perl 5 script that does what proto does and works across Win/Lin/Mac, I promise to use that.
13:44 mberends no, leave it to me
13:45 masak mberends: gladly.
13:45 mberends your days of bash hacking are over...
13:45 masak seems like it.
13:48 masak mberends: but please push your much-awaited installer improvements before attacking proto. :)
13:49 mberends it's broken on :f right now. I should push it to a branch, right?
13:49 masak mberends: there's an easy fix to :f
13:49 moritz_ try { $file ~~ :f }
13:49 masak $file ~~ :e && $file ~~ :f
13:50 masak with a '# RAKUDO' comment on top
13:51 mberends no, :f does not exist in 0.9.0
13:51 masak oh.
13:51 masak right.
13:51 masak make a sub.
13:51 mberends ok
13:51 masak with a '# RAKUDO' comment on top. :)
13:52 masak and branch if you like, but push first :P
13:54 mberends after the sub, I'm not done yet ;) but want to get this out before evening, I'll be mainly offline until Saturday evening.
13:55 sri_kraih joined #perl6
13:55 masak yes, Show Us The Code! :)
13:56 mberends soon! btw, have you looked at SVG::Tiny? I'll do more of that offline next.
13:57 masak I've only seen commits to it drop in. not actually looked at the code.
13:57 masak I'd be happy to, though.
13:57 masak I still have some ideas for an SVG module, but very little time to spend realizing them.
13:58 masak I wish I could do $masak.clone()
13:58 gfldex did you try mating yet?
13:59 moritz_ that's not quite the same ;-)
14:00 mberends the architecture is pretty, using named slurpy hash params and a readable grammar, but going farther into SVG is stretching my perl6, which is good of course.
14:01 mberends mating: a shallow copy with mixins
14:02 moritz_ lol
14:10 masak gfldex: though the idea is intriguing, it doesn't solve my current lack of time. in fact, I suspect it'd do the opposite.
14:13 gfldex i agree that the outcome is quite random. But keep in mind that the replicas can be even better then yourself, so the effort could be worth it.
14:14 masak I realize that.
14:14 moritz_ gfldex: yes, but don't forget the time scales that are involved
14:14 masak that, and the actual immediate degradation of productivity.
14:18 gfldex all very true but you will get exponential growth fairly quickly and after just 20 years the process will get self-maintaining
14:19 masak aye.
14:20 masak I've seen it happen many times. it's very reproducible (in a manner of speaking).
14:30 Aankhen`` joined #perl6
14:38 hercynium joined #perl6
14:46 nihiliad joined #perl6
14:48 dalek joined #perl6
14:51 masak szabgab: oh, and if you haven't already noticed: the directory structure in the November repository changed (to look more like all the other Perl 6 repositories out there), so your @*INC.push path will need to be rewritten if you pull November.
14:53 szabgab Maddingue, thanks for notifying me
14:54 szabgab Maddingue, that was supposed to go to masak
14:54 szabgab masak, thanks for notifying me
14:54 masak np.
14:54 szabgab I really did not have time to look at November lately
14:54 masak me neither :)
14:54 szabgab busy with other things
14:55 masak but what's happening right now is that November is becoming the first Perl 6 project to actively use proto.
14:56 masak general question: is it possible to put an assertion in a Makefile so that it won't build if PERL6LIB isn't set? cheating is allowed.
14:56 szabgab sure
14:57 szabgab normally (or rather abnormally but this is what is expected) you should then call exit(0)
14:58 masak szabgab: yes, but how do I check it?
14:58 szabgab what do you mean ?  if (not $ENV{PERL6LIB}) { print "You need PERL6LIB\n"; exit(0) }
14:58 masak Makefile isn't a script, it's more like a recipe.
14:59 szabgab ah sorry, you should  put that in Makefile.PL
14:59 masak I did.
14:59 masak but I don't always feel that's enough.
14:59 szabgab then Makefile won't be generated
14:59 masak right.
15:00 szabgab it will stop the installation process
15:00 masak aye.
15:00 szabgab and the user will start saying bad words
15:00 masak but if it was at an earlier date, and I come back to it without the PERL6LIB variable set, things will break.
15:00 masak it'd be nice to provide a nice error message in the make process.
15:00 szabgab sure and if you install it and it works but later you unplug the poser it will stop working too
15:01 szabgab poser/power
15:01 szabgab why in the make process ?
15:01 masak because it'd be an extra service to the user checking it there.
15:02 masak since the make process is essentially independent of the configure process.
15:05 szabgab it won't help if PERL6LIB disappears after the installation so I don't really see why to be sooo nice :-)
15:07 masak well,
15:07 masak I usually remake after modifying some code.
15:07 masak but I don't usually reconfigure before remaking.
15:08 PantheraPardus joined #perl6
15:10 Exodist joined #perl6
15:49 alester joined #perl6
15:55 dusty joined #perl6
16:01 Tene joined #perl6
16:04 mberends masak: deps.proto works, but the code has no branch workaround for november, and html-template has build errors. Are you ready to take over from this point?
16:05 masak sure.
16:05 masak I wasn't aware html-template had build errors.
16:05 masak the branch workaround I handled manually when I tried out 'showdeps'
16:05 mberends Can't locate File/HomeDir.pm in @INC
16:05 masak but, ah, that's not as easy when doing the install in one go, of course.
16:06 masak mberends: you get that? when?
16:06 mberends 16:02 UTC ;)
16:06 masak 哈哈
16:06 masak I mean, issuing what command? :)
16:07 mberends BEGIN failed--compilation aborted at Makefile.PL line 8.( building html-template)
16:08 masak mberends: I think you're missing a CPAN module, sir.
16:08 moritz_ aye. cpan install File::HomeDir should do it
16:08 mberends yes, I am. of course.
16:08 masak it's a bit bad to be depending on non-core modules in a Makefile.PL, I guess.
16:08 mberends eeebuntu will have another syntax, but yes, that's it.
16:09 masak maybe I should copy+paste the relevant sub out of File::HomeDir and remove the dep.
16:09 mberends for a builder utility, certainly
16:10 masak mm.
16:10 * masak puts it on his TODO list
16:12 pmichaud moritz_: I'm guessing that 'make parrot' should implicitly clean rakudo.
16:12 lambdabot pmichaud: You have 2 new messages. '/msg lambdabot @messages' to read them.
16:12 pmichaud if we do that, though, we need to be carefuly not to make the 'parrot' target a dependency on 'all'
16:12 pmichaud *careful
16:14 mberends masak: eeebuntu doesn't have Home::Dir in its 26195 packages, and I don't feel like the whole CPAN trip right now. I'll push the current proto and it will probably work for you, ok?
16:14 masak probably. :)
16:14 mberends ok
16:14 moritz_ mberends: install dh-make-perl, and then 'dh-make-perl --build --cpan File::HomeDir' ;-)
16:14 masak as a favour, I'll try and remove the File::HomeDir dep for you for next time.
16:15 mberends moritz_: thanks
16:19 aindilis joined #perl6
16:20 masak mberends: actually, the 'use File::HomeDir;' line is a relic and should be removed from the Makefile.PL of November, Druid and HTML::Template
16:20 masak fixing.
16:21 mberends would it not be necessary for Windows? that normally has homedir and tempdir problems.
16:21 moritz_ on unixish systems a simple glob('~') would work
16:22 masak it was used instead of an earlier solution involving '~', to make things more platform-independent.
16:22 masak but we've since moved away entirely from doing things that way.
16:22 masak and now we don't use anything homedir-related at all.
16:22 masak the 'use' statement has simply propagated through aggressive copying.
16:23 nihiliad joined #perl6
16:24 mberends dh-make-perl is  doing the whole CPAN trip automatically now
16:25 masak there, fixed. 'use File::HomeDir;' is no more.
16:26 mberends and both builds worked \o/
16:26 mberends committing
16:26 masak \o/
16:28 masak mberends: I predict that before long, proto will include parrot, rakudo and proto in the %project_info hash.
16:28 masak it will then, in a very real sense, be self-aware.
16:29 mberends merge conflict, must pull and merge manually. sorry.
16:29 masak likewise. :/
16:30 masak oh well, at least it's git.
16:34 dalek rakudo: f9a9ea6 | pmichaud++ | Configure.pl:
16:34 dalek rakudo: Improve error message when parrot_config not found.
16:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​9a9ea6da49fc01b4e4cea7237d8b00e712701a6
16:37 mberends I dont know how to get out of 'You are in the middle of a conflicted merge.'
16:37 masak mberends: 'git add $checked-file'
16:37 [particle] 'you have been eaten by a git.'
16:37 masak specifically, 'git status'
16:37 masak which will invariably tell you what to do :)
16:38 masak s/specifically/or, in general,/
16:40 mberends add and commit worked, push said failed to push some refs to 'git@github.com:masak/proto.git'
16:41 masak did it say why?
16:41 masak I snuck in a commit in the meanwhile, try pulling... :/
16:41 masak and then pushing.
16:41 mberends ! [rejected]        master -> master (non-fast forward)
16:41 masak :/
16:42 mberends pulled ok
16:42 masak ah, good.
16:42 masak that should do it.
16:43 mberends I guess I have to manually merge my edits into the newly pulled files
16:44 masak not if it pulled without complaining.
16:44 masak if it did, git just fixed everything for you.
16:44 masak it was just a small commit I did: I removed two lines of commented out junk in 'installer'
16:45 masak it shouldn't conflict with anything.
16:45 masak now, push already! :)
16:45 mberends then I'll re-test, takes a few minutes for the downloads
16:45 masak if you insist :)
16:46 mberends no I don't, a push attempt is quicker :)
16:46 Grilinctus joined #perl6
16:48 masak I think you'll find that my last two commits didn't affect the outcome of your new code.
16:49 mberends yeah, but git add proto is ignoring the file now, even after a touch
16:49 ejs joined #perl6
16:50 masak which file?
16:50 masak a, proto.
16:50 mberends proto and installer
16:50 masak well, if you didn't change it, git will consider it unchanged.
16:50 masak touch or no touch.
16:51 mberends can't I burn a CD and mail it to you?
16:51 masak git sees the inside of files.
16:51 masak mberends: what is it you're blocking on?
16:51 masak why not just push?
16:52 mberends because I never thought of that, I wanted to commit. empty the cup... pushed
16:52 masak \o/
16:52 Grilinctus left #perl6
16:52 * masak reviews
16:53 masak mberends: you need to set your email in .gitconfig
16:54 mberends ok
16:55 * mberends needs to even create a .gitconfig
16:56 dalek rakudo: 13b84ef | pmichaud++ | build/Makefile.in:
16:56 dalek rakudo: Temporarily disable the pmc tests until we resolve the ../../parrot issue.
16:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​3b84ef799ce5ff12874963b3bc3857b7a51a558
16:57 masak heh, I knew you'd straighten out the table. :)
16:58 mberends heh
16:59 masak hm, global @downloads and @build_queue...
16:59 masak yes, perhaps that is easiest.
16:59 mberends @downloads is redundant, recursion was easier
16:59 lambdabot Unknown command, try @list
17:00 masak oh, sorry, meant @projects
17:00 masak but it's only @build_queue that's global.
17:01 masak hm, the reading of deps.proto needs to be unified as I outlined.
17:01 mberends there was a @download_queue earlier, but I removed it. You had me worried that git resurrected it somehow...
17:02 masak and my way of parsing is slightly superior (if not entirely correct)
17:02 masak I'll merge the two.
17:02 masak all in all, great work!
17:02 masak looking forward to trying it myself.
17:03 mberends my time online is running out, will you give it a test run in the next hour?
17:03 masak sure, I'll test it now.
17:03 masak how do I make it download the appropriate november branch?
17:04 mberends dunno, I fudged a deps.proto in manually along the way.
17:04 masak along the way?
17:04 masak doesn't the installer do it in one go?
17:05 mberends ran ./proto install twice in succession with an echo html-template >deps.proto in between
17:05 masak :)
17:05 mberends you'll update november soon, I figured
17:05 masak aye.
17:05 masak and then I'll test it again to make sure it does it as it should.
17:06 mberends cool
17:09 * masak gives some thought about how to detect if a project is already downloaded and/or built
17:10 masak oh! it would seem it already does some detection of the former, yes?
17:11 masak http://gist.github.com/65839
17:11 masak mberends++ mberends++ mberends++
17:12 masak you've just made proto into what I conceived it to be two Thursdays ago.
17:12 * masak moves the note in the README down a bit
17:14 mberends hey, thanks, man!
17:15 masak another interesting question is how to implement uninstall, given that the dependencies are unidirectional...
17:15 masak maybe trawl through all the installed projects and build a dep graph on the fly? :)
17:16 * mberends shudders
17:16 masak I'll have to think a bit about that.
17:17 mberends I'll have to say goodbye for a few days. It will be interesting what you come up with, or could you shelve proto for a while?
17:18 masak I could, no problem.
17:18 masak I need to get back to blogging, and to November.
17:18 mberends always plenty to do there.
17:18 masak aye.
17:19 masak um, I promised to update the proto sctipt a bit, since it turns out that bash has three possible init files, not just .bash_profile
17:19 masak will do that, and then probably not much else.
17:19 masak maybe a refactor or two.
17:21 masak besides that, I'll leave proto alein. :)
17:21 masak no big features, promise.
17:21 masak mberends: have a nice few offline days.
17:22 masak thanks again for the deps patch.
17:22 * masak takes bike to get box with food absent-mindedly left at home this morning
17:24 * mberends waves
17:43 pmurias ruoso: is adding support for &infix:<+>(int,int)(...) to mildew is the thing i should work for now?
17:44 ruoso pmurias, hi
17:44 pmurias ruoso: hi
17:44 ruoso sorry for being away for so long... but I'm way overbooked...
17:44 pmurias np
17:45 ruoso it seems that &infix:<+>(int,int)($a,$b) is a "legal" way of breaking the circularity
17:46 Whiteknight joined #perl6
17:47 ruoso pmurias, but I've been thinking about how to do the typesystem bootstrap
17:48 ruoso and I think it might be the time to do the carefull planning of that
17:48 schmalbe joined #perl6
17:53 mib_docwun9c joined #perl6
17:53 pmurias ruoso: do you have an initial plan?
17:55 mib_docwun9c left #perl6
18:12 justatheory joined #perl6
18:18 ruoso pmurias, kind of
18:18 ruoso I have a plan on how to plan
18:32 Psyche^ joined #perl6
18:38 ruoso pmurias, basically, I'd take the types that are declared at smop_init and consider them as the stage 0
18:39 ruoso then we take the first type that we're going to init in mildew (which seems to be Multi) and trace the dependencies, both at INIT time and runtime
18:40 ruoso (INIT time is actually confused here, but BEGIN and INIT are actually confusing anyway)
18:41 ruoso then we go to the next item (which I think is the "multi trait_auxiliary:<is>($sub, $export, *%tags")
18:41 ruoso and again trace the init and runtime depends
18:41 ruoso and then we go moving onto the bootstrapping
18:42 ruoso up to the point that we're probably going to be able to re-init Multi in a way to loose the connection to the stage 0 types
18:43 PerlJam what's confusing about BEGIN and INIT ?
18:45 ruoso BEGIN code might require INIT being called
18:45 ruoso i.e. "use"
19:23 meppl good night
19:25 spooneybarger joined #perl6
19:50 hcchien_ joined #perl6
19:51 clkao joined #perl6
19:56 pmurias ruoso: use only calls INIT at run-time (that is after the compilation has ended)
19:56 pmurias (leaving eval aside)
19:56 araujo joined #perl6
19:56 ruoso but how do you call Foo::Bar::.EXPORTALL without calling INIT?
19:57 jnthn pmichaud: Still plan to Rakudo-day tomorrow. :-)
19:57 pmichaud jnthn: okay, I should be here.
19:57 jnthn OK, great.
19:57 pmichaud today I'm working on install and documentation issues.
19:57 jnthn Nice. :-) Would really like to get moving on the prelude tomorrow if that works for you.
19:58 jnthn But if not I'm sure there's plenty of other bits.
19:58 pmichaud yes, although the specs have recently changed there so I need to re-review.
19:58 pmichaud in particular, 'is also' changed I think
19:58 jnthn Yeah, at least in that you need to "use MONKEY_TYPING" but I fear it got twiddled further beyond that too. :-|
19:58 pmichaud right.  Maybe we just go with the existing 'is also' for now.
19:59 jnthn If it's not too different, we can.
19:59 pmichaud I think that's also what is in the spectests.
19:59 jnthn We didn't do lexical classes yet...
19:59 pmichaud ('is also' being in the spectests)
19:59 jnthn And if is also has changed beyond just needing MONKEY_TYPING I suspect it'll be to do with those.
20:00 jnthn Like, unless you use that pragma it makes a local derivation and name-binds it. I *think* that was discussed at one point...
20:00 jnthn Anyway, yes, we need to review specs.
20:00 jnthn Also I noticed globals are kinda gone...
20:00 jnthn And context vars more important.
20:00 pmichaud well, I think they merged with context vars.
20:00 jnthn Yeah
20:00 pmichaud so perhaps I need to go ahead and create the contextual dynop.
20:01 jnthn I didn't read the details yet...
20:01 jnthn Aye.
20:01 jnthn Or I can write that up if you want, and leave the PCT changes for you. ;-)
20:01 pmichaud if you want to do the contextual dynop, that'd be great.
20:01 jnthn OK, will try and do it in the morning.
20:02 jnthn moritz_ also wanted me to look at interaction between multi and type capture.
20:02 pmichaud that's good also.
20:02 jnthn It's giving a weird result in one place.
20:02 pmichaud I also need people to be testing the new Configure.pl scripts and reporting bugs there.
20:02 jnthn Though a basic test case gives what IMO is the correct answer...
20:02 pmichaud oh!  Any ideas how we can fix 'make test' for the PMC tests?
20:02 pmichaud currently they depend on ../../parrot
20:03 jnthn rakudo: multi f(::T $x, T $y) { "first" }; multi f(Int $x, Num $y) { "second" }; say f(1, 2)
20:03 p6eval rakudo 13b84e: OUTPUT«sh: ./parrot: No such file or directory␤»
20:03 jnthn rakudo: multi f(::T $x, T $y) { "first" }; multi f(Int $x, Num $y) { "second" }; say f(1, 2)
20:03 p6eval rakudo 13b84e: OUTPUT«sh: ./parrot: No such file or directory␤»
20:03 jnthn fail
20:03 pmichaud (I commented out the 'prove' line for now in the Makefile until we can get the pmc tests working again somehow.)
20:03 jnthn pmichaud: In what way do they depend on it, such that other tests don't?
20:04 ruoso jnthn, I think in the end "is also" and "is instead" simply fails in the absense of "use MONKEY_PATCHING"
20:04 ruoso but i like your solution better
20:04 jnthn ruoso: Ah, OK. Then that's easy.
20:04 pmichaud ruoso: there was some discussion that the meaning of 'multi' and 'proto' would change.
20:04 ruoso by default it makes a localized custom version
20:04 jnthn ruoso: Maybe that's another pragma BUT WE DO NOT PUT IT IN UPPER CASE. ;-)
20:04 ruoso :)
20:04 pmichaud (when used on classes)
20:05 bacek good morning
20:05 jnthn pmichaud: In that example I posted above, I expect it would give second.
20:05 bacek pmichaud: prove -e ../path/to/parrot t/pmc/ "works for me"
20:06 jnthn Because we compute the type ordering for all calls. And we don't know what T is until call time.
20:06 bacek pmichaud: but it requires some recent version of prove
20:06 pmurias ruoso: why can't you call EXPORTALL at BEGIN time?
20:06 pmichaud bacek: if it requires a recent version of prove, that's probably not helpful.
20:06 pmichaud jnthn: currently 'prove' looks at the #! line in the *.t files to decide what interpreter to use.
20:06 pmichaud while the other tests all go through t/harness
20:06 pmichaud (which is a perl script that then figures out what to do)
20:07 jnthn Ah.
20:07 jnthn Is there any reason we cannot run the PMC tests through a harness?
20:07 jnthn Other than, needing to have a harness?
20:07 bacek pmichaud: actually it requires prove from Test::Harness
20:07 pmichaud well, we have to have a harness anyway, in order to do fudging
20:08 pmichaud but the problem then becomes "how do we know where parrot is?"
20:08 jnthn pmichaud: Alternatively make them depend on "#! parrot" on run them through something that twiddles the path to include the path to Parrot...
20:08 pmichaud I guess we have to pass it as a parameter from the makefile.
20:08 ruoso pmurias, because it is probably going to call EXPORT on that module, so I presume that module must be fully initialized for you to call some sub on it
20:08 jnthn The test harness for the spectets must today know the path to Parrot, though?
20:08 pmichaud _currently_ the harness looks for ../../parrot and parrot/parrot
20:08 jnthn Oh.
20:08 pmichaud but I'm not fond of that approach
20:08 jnthn Right.
20:09 jnthn I say one of (1) it passes it in from the makefile or (2) it loads it from a file that Configure.pl writes.
20:09 jnthn I think we do not want it to look for Parrot independently of the one we use to compile.
20:09 jnthn Otherwise we could end up testing on a Parrot we didn't configure with, or didn't expect to...
20:09 pmichaud would it be worthwhile to rewrite the pmc tests in Perl 6?  ;-)
20:10 pmichaud they could use Q:PIR
20:10 jnthn pmichaud: For the Perl 6 multi-sub ones, I ain't entirely opposed to tossing them
20:10 pmichaud then it's something of a non-issue where parrot is located, as the perl6 binary knows the answer.
20:10 jnthn Because they don't test anything that the Perl 6 spectests don't exercise.
20:11 jnthn They were very useful to me when developing the PMCs before we switched Rakudo to using them.
20:11 pmichaud they do point out when a problem is from the PMC as opposed to the compile sequence, though.
20:11 jnthn Yes, true.
20:11 jnthn They're of value for that.
20:11 pmurias ruoso: i'm not that sure about your presumption, use needs to happend at compile time and we don't need to initialise everything to call EXPORT
20:11 bacek pmichaud: Why don't replace invokation of prove with "prove -e $(PARROT) t/pmc" in Makefile?
20:12 pmichaud bacek: because not all versions of 'prove' support -e?
20:12 ruoso pmurias, you don't need  to initialize *everything*... just the module you're importing...
20:12 pmichaud bacek: in particular, the version currently installed on my system doesn't support -e.
20:12 bacek pmichaud: but Test::Harness can be in mandatory dependency
20:12 pmichaud bacek: I have Test::Harness
20:12 bacek pmichaud: ouch. 2.*?
20:12 pmichaud do you mean Test::Harness 3.??
20:13 pmichaud I'd prefer not to require updating modules just for testing at this point.
20:13 bacek pmichaud: looks like -e is 3.* only.
20:13 pmichaud bacek: yes, I think it was added at the request of parrot folks.
20:13 pmurias ruoso: but INIT explicitly marks stuff which should be initialised at runtime so i don't see why we need to run it at BEGIN time
20:13 bacek pmichaud: and Test::Harness 3 is 2.5 years old.
20:14 pmichaud bacek: I don't think the -e option is that old, though.
20:14 pmichaud bacek: at any rate, as long as there are popular distros that aren't using the newer T::H, I'm not a fan of requiring it (esp if it's the only such module we require)
20:14 pmichaud if we reach a point where someone has to have multiple such modules around, I might change my mind.
20:14 ruoso pmurias, I'm not thinking straight right now... I've already gone through that issue once... but I don't remember all the bits of it... but it's not quite a fundamental issue right now...
20:15 pmichaud jnthn: for the immediate present I think we just leave the PMC tests disabled.
20:15 jnthn pmichaud: OK, works for me.
20:15 bacek pmichaud: even Debian Stable support -e :)
20:15 pmichaud jnthn: if we want to re-enable them, we'll fix it then.  My leaning would be to turn them into things that could be run from Perl 6.
20:15 pmichaud (e.g., using inline PIR, since they're parrot-specific tests)
20:15 jnthn pmichaud: Aye, that would work too.
20:16 jnthn And as you say, does solve the issue somewhat.
20:16 pmichaud alternatively, we could rewrite the tests in NQP.  :-P
20:16 jnthn If we write them in Perl 6, we have to eat our own dog food. :-P
20:16 pmichaud again using inline PIR, but it would avoid the rakudo dependency -- i.e., we could test them even if rakudo isn't building.
20:17 pmurias ruoso: we do everything at INIT time as the compiler isn't bootstraped yet so it's not a big issue for now
20:17 jnthn Ah, good point.
20:17 jnthn I do worry a little, about what the prelude will do to our testability.
20:18 pmichaud I'm not too worried about that.
20:18 ruoso pmurias, I'm starting a .dot file with the types declared in the smop prelude scope
20:18 pmichaud the basic tests are likely to be builtins
20:18 jnthn Like, if we break things to a point where the pre-lude don't compile any more, we don't have much to go on as to why...
20:18 ruoso pmurias, and making note of the dependencies...
20:18 jnthn True.
20:19 pmichaud we can also ship with a "known working" prelude compilation.
20:19 bacek pmichaud: 1. Replace #! with #!/usr/bin/env parrot. 2. Replace prove call with "PATH=$(BUILD_DIR):$(PATH) prove t/pmc"
20:19 bacek ...
20:19 bacek 4. Profit!
20:19 pmichaud bacek: it's not worth the trouble right now.
20:19 pmichaud bacek: I suspect #!/usr/bin/env parrot  might not help with Windows.
20:20 jnthn It wouldn't.
20:20 bacek oh... Windows...
20:20 jnthn pmichaud: Sure, my concerns may be unfounded.
20:20 bacek gotta go.
20:20 bacek away &
20:21 pmichaud jnthn: best way for us to find out is probably to do it and see what breaks :-)
20:21 jnthn Aye!
20:21 jnthn :-)
20:22 pmichaud also, note that it's now called "setting" instead of "prelude", unless the term was changed yet again.
20:23 pmichaud although the thespian in me would've prefered 'scene', I think.  :-)
20:23 masak rakudo: "alive"
20:23 p6eval rakudo 13b84e: RESULT«"alive"»
20:23 masak \o/
20:24 * masak is doing science and he's still alive
20:24 hanekomu joined #perl6
20:24 jnthn pmichaud: Yes, I need to learn to use the correct name.
20:24 jnthn At least it didn't end up being circumlude. ;-)
20:25 pugs_svn r25368 | ruoso++ | [mildew] started bootstrap.dot.
20:25 pmichaud "circumlude" sounds like some sort of crazy new drug
20:25 pmichaud or the street name for one.
20:27 dalek joined #perl6
20:27 ruoso pmurias, would you like to adventure yourself into a simplified RoleHOW that creates a punned class that uses PrototypeHOW?
20:28 * jnthn takes his daily circumlude
20:28 ruoso pmurias, this would allow us to have Multi.pm as a role, which is how it is going to be...
20:28 jnthn ...hey, I'm hullucinating a complete Perl 6 implementation...
20:29 masak :)
20:30 jnthn Ah, geck, did I just create a dupe ticket by accident...
20:30 pmurias ruoso: punned?
20:30 masak jnthn: it happens.
20:30 masak there are many open tickets.
20:31 ruoso pmurias, when you invoke a method on a Role, it automatically "puns" a class that does that role and calls the method on it
20:31 jnthn ruoso: That's not spec yet, AFAIK.
20:31 jnthn ruoso: It rasies the issue of, what about methods that roles themselves have?
20:32 ruoso jnthn, hmmm... AFAIK, none
20:32 pmurias ruoso: ok
20:32 ruoso if want to know something about a role, use HOW
20:33 jnthn Hmm. Yeah.
20:33 pmurias later& # think unclearly
20:33 jnthn I got some privates on my current Role implementation.
20:33 jnthn But can probably avoid that.
20:33 jnthn It's better than .new being special case, anyways.
20:34 jnthn Oh, hmm...could pun in the dispatcher.
20:34 * jnthn will work something out.
20:38 ruoso jnthn, since the "HOW API" includes "dispatch"... it would be a pretty sane place to put it
20:38 ruoso at least that's how I plan to do
20:39 jnthn Aye, didn't think so much about how the "HOW API" might apply to roles yet.
20:40 ruoso I've been thinking that it should apply the same way
20:40 ruoso because they're just objects that have a different HOW
20:40 ruoso also considering the relationship between the package_declarator keyword and the HOW
20:46 jnthn Aye.
20:46 jnthn Probably something like that can work.
20:47 * ruoso the dot file for the bootstrap planning seems promising...
20:47 jnthn I'm pondering ways we can optimize away actually having to call .^dispatch too...two dispatches per dispatch is kinda sucky...but anyway, that's for The Future.
20:47 ruoso optimizers are free to optimize, I think ;)
20:48 ruoso I mean... caching and stuff should just work
20:48 ruoso I think a jit might also rescue
20:49 jnthn Sure.
20:49 jnthn I just know that while adding ^dispatch has made a lot of things very easy to implement, it also has carried its cost.
20:49 jnthn Anyway, won't worry too much on performance yet.
20:50 ruoso sure sure... all evil is premature optimization squared
20:50 jnthn Aye.
20:51 * jnthn makes a cuppa and goes back to $DAYJOB for a little bit longer
20:52 pugs_svn r25369 | ruoso++ | [mildew] bootstrap.dot looks a bit more promising, it shows the lexical dependencies of the proposed Multi.pm, which shows us which types will need o be redefined before we can re-init Multi
20:53 aindilis joined #perl6
20:54 dalek joined #perl6
20:56 * ruoso later &\
21:02 alexn_org joined #perl6
21:03 bacek joined #perl6
21:03 bacek hi again
21:05 pugs_svn r25370 | ruoso++ | [mildew] a bit more detailed bootstrapped.dot,
21:28 mtnviewmark joined #perl6
21:29 mtnviewmark rakudo: [\*] 1..6
21:29 p6eval rakudo 13b84e: OUTPUT«Statement not terminated properly at line 1, near "1..6"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
21:30 mtnviewmark rakudo: [\*] (1 .. 6)
21:30 p6eval rakudo 13b84e: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
21:30 bacek rakudo: say [*] 1..6
21:30 p6eval rakudo 13b84e: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
21:30 mtnviewmark oh well, our oracle is out to lunch, apparently
21:31 bacek mtnviewmark: what is [\*]?
21:32 mtnviewmark the "triangle form" of [op] is [\op] which returns a list of each successive result
21:33 mtnviewmark someone was trying to say that J, an ASCII only successor to APL was even more terse than Perl 6's proposed operators
21:33 mtnviewmark they gave this example:
21:34 mtnviewmark Note that a recursive factorial definition can be given in just a few characters:
21:34 mtnviewmark executing 1:`(]*$:@<:) @. * "0 i. 6
21:34 mtnviewmark yields 1 1 2 6 24 120
21:34 bacek mtnviewmark: it's not implemented in Rakudo AFAIK
21:34 mtnviewmark it dawns on me that in Perl 6 this is even easier:  [\*] 1..6
21:34 mtnviewmark not to mention more clear
21:35 bacek mtnviewmark: it is not "recursive factorial".
21:35 mtnviewmark well, no, it acheives the same answer, no?
21:36 bacek [*] 1..6 is factorial.
21:36 bacek rakudo: say [*] 1..6
21:36 p6eval rakudo 13b84e: OUTPUT«720␤»
21:36 mtnviewmark but yes, it is iterative -- though I can't see how the J version is, well, recursive!
21:37 mtnviewmark right, but [\*] would yield a list of successive products: 1 2 6 24 120 720
21:37 bacek mtnviewmark: I don't understand APL :)
21:37 bacek mtnviewmark: it should.
21:51 nihiliad left #perl6
21:56 Whiteknight joined #perl6
21:57 bacek_ joined #perl6
21:57 bacek_ bacek@icering:~/src/parrot/languages/rakudo.bacek$ ../../parrot perl6.pbc -e 'say ~([\*] 1..6)'
21:57 bacek_ 1 2 6 24 120 720
21:57 bacek_ heh. It was easy :)
21:59 Cyrus left #perl6
22:24 maerzhase joined #perl6
22:32 diakopter rakudo: say ~([\*] 1..6)
22:33 p6eval rakudo 13b84e: OUTPUT«Statement not terminated properly at line 1, near "1..6)"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
22:42 bacek_ joined #perl6
22:54 Limbic_Region joined #perl6
22:58 aindilis` joined #perl6
23:04 kane_ joined #perl6
23:37 mikehh joined #perl6
23:49 ejs joined #perl6

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

Perl 6 | Reference Documentation | Rakudo