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