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 foundcurrent 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«123» | ||
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 foundcurrent 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 foocurrent 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«normaltwo» | ||
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
|