Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-05-20

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:02 mncharity ah, :)
00:10 Level1Tech joined #perl6
00:10 Level1Tech left #perl6
00:17 pugs_svnbot r20456 | putter++ | [elf] New IR node Given.  Parses, but no emitter yet.
00:22 cognominal_ TimToady, in S05:392 an apparent typo  s/equivalant/equivalent/
00:27 wknight8111 joined #perl6
00:32 lisppaste3 joined #perl6
00:46 speckbot r14543 | larry++ | typo from cognominal++
00:53 mncharity print STDERR ">$s< ",autobox->type($s),"\n";  #=>  >str< INTEGER   :/
00:57 lisppaste3 joined #perl6
01:03 cjfields joined #perl6
01:09 justatheory joined #perl6
01:14 eternaleye joined #perl6
01:27 Ched joined #perl6
01:29 * mncharity finds himself knee deep in perlguts... wondering "how did I get here?"
01:32 Psyche^ joined #perl6
01:35 ofer joined #perl6
01:48 mncharity hmm.  one can have an SVt_PVIV which is not SvIOK.  curious.  ah well, have working autobox patch.  will wait on checking in new elf until a patched autobox release occurs.
02:07 Lorn joined #perl6
02:38 ofer joined #perl6
02:48 [particle1 joined #perl6
02:49 [particle1 left #perl6
02:57 mncharity sigh.   the definition of statement_control:default, "no 'when'-block mached in the current scope", means when() needs to be present at the IR level. :/
03:02 mncharity wow.  when is magical.  ok...
03:04 TimToady I think you're reading more into "default" than is intended
03:05 TimToady it's just "when *"
03:05 TimToady it doesn't have to track whether other whens matched other than by being reached in the ordinary way of control flow
03:06 TimToady of course, when * -> ($x) {...} is a bit more magical...
03:06 TimToady or rather, when * -> $x {...}
03:09 TimToady well, packing up for Narita, so afk till earlier today :)
03:10 TimToady &
03:10 cognominal_ do pod5 processor support entities?
03:11 TimToady supposed to support E<...>
03:11 TimToady & really
03:11 cognominal_ I ask that question because rakudo does not support utf-8
03:11 cognominal_ thx
03:15 mncharity TimToady: thanks.  I was discovering the magic of when() via default.  :)
03:16 [particle2 joined #perl6
03:20 syle joined #perl6
03:24 pugs_svnbot r20457 | putter++ | [elf,STD_red] Added support for statement modifiers.  'say 3 if 4' no longer crashes.
03:37 pbuetow_ joined #perl6
03:48 mncharity good night &
03:55 vixey left #Perl6
03:55 vixey joined #Perl6
04:00 pugs_svnbot r20458 | putter++ | [elf] Statment modifier bugfixes.
04:01 schmalbe joined #perl6
04:20 [particle2 left #perl6
04:36 cj moo
05:01 Psyche^ joined #perl6
05:36 eternaleye joined #perl6
05:53 mediogre joined #perl6
06:01 meppl joined #perl6
06:24 lambdabotx joined #perl6
06:36 meppl joined #perl6
06:42 Entonian joined #perl6
06:45 xdg_ joined #perl6
06:48 iblechbot joined #perl6
07:04 elmex joined #perl6
07:26 integral joined #perl6
07:28 mj41 joined #perl6
07:54 vixey joined #Perl6
09:15 IllvilJa joined #perl6
09:54 mncharity joined #perl6
09:57 lvh_ joined #perl6
09:57 lvh_ hello :-)
09:57 lvh_ I'm trying to understand reduction. my $q = [<] @nums; Does what exactly?
09:58 vixey lvh_: it inserts < between every element of nums
09:58 lvh_ If I understand correctly, it's boolean and tells me wether @nums has ascending numbers, ie 1>2>3>4>.. etc
09:58 moritz_ it's the same as @nums[0] < @nums[1] < ... @nums[*-1]
09:58 lvh_ ah :-)
09:58 lvh_ okay, thanks.
09:58 lvh_ Also, if I want to play with this stuff, should I be using Rakudo/Parrot or pugs?
09:59 moritz_ both ;)
09:59 lvh_ right :-p
09:59 moritz_ pugs is more feature complete, but it isn't being developed anymore
09:59 lvh_ Seriously, though, are you guys moving towards two equivalent implementations? That sounds hairy.
09:59 lvh_ Ah, the end goal is having parrot work?
10:00 moritz_ rakudo is the fast moving frontier, but not yet very feature complete
10:00 moritz_ lvh_: the "end goal" is to have as many perl 6 implementations as we can get. One would be a great start.
10:00 lvh_ Okay, but in a year from now people will most likely be using rakudo and not pugs?
10:00 moritz_ presumably, yes
10:01 moritz_ pugs: say [<] <1 2 3 4>
10:01 exp_evalbot OUTPUT[1␤]
10:01 moritz_ pugs: say [<] <1 2 2 4>
10:01 exp_evalbot OUTPUT[␤]
10:01 moritz_ rakudo: say [<] <1 2 3>
10:01 exp_evalbot OUTPUT[Statement not terminated properly at line 1, near "[<] <1 2 3"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;Perl6::Grammar;statementlist' pc 18770 (src/gen_grammar.pir:2734)␤called from Sub
10:01 exp_evalbot ..'parrot;Perl6::Grammar;statement_block' pc 15616 (src/gen_grammar.pir:1612)␤called f...
10:01 moritz_ rakudo: say [<] <1 2 3>;
10:01 exp_evalbot OUTPUT[Statement not terminated properly at line 1, near "[<] <1 2 3"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;Perl6::Grammar;statementlist' pc 18770 (src/gen_grammar.pir:2734)␤called from Sub
10:01 exp_evalbot ..'parrot;Perl6::Grammar;statement_block' pc 15616 (src/gen_grammar.pir:1612)␤called f...
10:02 moritz_ ah well, meta operators not yet implemented in rakudo
10:02 lvh_ moritz_: what is this vector notation?
10:02 moritz_ lvh_: <foo bar> is the same as qw(foo bar) in Perl 5
10:02 moritz_ lvh_: that is "split at whitespace and make a list out of it"
10:03 moritz_ pugs: my @list = 1, 2, 3; say [+] @list; # the same
10:03 exp_evalbot OUTPUT[6␤]
10:03 lvh_ moritz_: okay. Single space separators? So <this,is,a,single,item>; is ugly, but returns a singleton list?
10:04 moritz_ right
10:04 cognominal_ this is what is infuriating with rakudo, high level stuff  is implemented but "trivial" way to enter literate structures are missing.
10:04 moritz_ also I wouldn't call it "singleton"
10:04 lvh_ moritz_: I don't mean signleton in the java sense
10:05 moritz_ cognominal_: parsing <...> and <<...> and chained comparison isn't very trivial ;)
10:05 moritz_ cognominal_: but that's right, it's annoying
10:05 lvh_ cognominal_: ooh, trivial! I can do trivial
10:05 moritz_ rakudo: my @l = 1, 2, 3; say @l;
10:05 exp_evalbot OUTPUT[1␤]
10:05 moritz_ d'oh
10:05 moritz_ rakudo: my @l = (1, 2, 3); say @l;
10:05 exp_evalbot OUTPUT[123␤]
10:06 moritz_ ah well, parsing assignment with list context isn't easy either
10:06 moritz_ rakudo: my @l = (1, 2, 3,); say @l;
10:06 lvh_ moritz_: eh.... I thought (in perl5) @'s evaluated in scalar context returned the length of the array
10:06 exp_evalbot OUTPUT[123␤]
10:06 moritz_ lvh_: where did I have scalar context?
10:06 lvh_ moritz_: oh, nvm, perl6 vs perl5 sigils are confusing me
10:06 moritz_ ah
10:07 moritz_ sigils are invariant in p5
10:07 mncharity TimToady: (n+1) STD.pm doesn't seem to have an infix_prefix_meta_operator:sym<[ ]> for '[<] <2 3 4>'.
10:07 moritz_ s/p5/p6/
10:07 lvh_ moritz_: yeah. I forgot that
10:07 cognominal_ rakudo: my @l = (1)
10:07 exp_evalbot RESULT[1]
10:08 moritz_ lvh_: happens to the best of us. Even TimToady++ confuses p5 and p6 syntax at times
10:08 cognominal_ rakudo: my @l = (1);  say @a[0];
10:08 exp_evalbot OUTPUT[Scope  not found for PAST::Var '@a'␤current instr.: 'parrot;PCT::HLLCompiler;panic' pc 158 (src/PCT/HLLCompiler.pir:103)␤called from Sub 'parrot;PAST::Compiler;keyed' pc 6040 (src/PAST/Compiler.pir:1675)␤called from Sub 'parrot;PAST::Compiler;post_children' pc 1664
10:08 exp_evalbot ..(src/PAST/Compiler.pir:364)␤called from Sub 'parrot;PAST::Compiler;call' p...
10:08 cognominal_ oops
10:08 cognominal_ rakudo: my @a = (1);  say @a[0];
10:08 exp_evalbot OUTPUT[get_pmc_keyed() not implemented in class 'Integer'␤current instr.: '_block11' pc 43 (EVAL_11:24)␤called from Sub 'parrot;PCT::HLLCompiler;eval' pc 785 (src/PCT/HLLCompiler.pir:458)␤called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1067 (src/PCT/HLLCompiler.pir:587)␤called from Sub
10:08 exp_evalbot ..'parrot;PCT::HLLCompiler;command_line' pc 1246 (src/P...
10:09 lvh_ moritz_: right, I don't know enough perl6 but I feel a junction is in order here: timtoady and larry are the same person?
10:09 moritz_ lvh_: yes
10:09 cognominal_ moritz, you see
10:09 cognominal_ rakudo: my @a = (1,2 );  say @a[0];  # with two elts : ok
10:09 exp_evalbot OUTPUT[1␤]
10:10 moritz_ rakudo: my @a = 1,; say @a[0]
10:10 exp_evalbot OUTPUT[get_pmc_keyed() not implemented in class 'Integer'␤current instr.: '_block11' pc 53 (EVAL_11:25)␤called from Sub 'parrot;PCT::HLLCompiler;eval' pc 785 (src/PCT/HLLCompiler.pir:458)␤called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1067 (src/PCT/HLLCompiler.pir:587)␤called from Sub
10:10 exp_evalbot ..'parrot;PCT::HLLCompiler;command_line' pc 1246 (src/P...
10:11 moritz_ that would be the "assignment in list context" thingy
10:11 mncharity TimToady: (n+1) it vaguely looks like, in expect_infix, the ordering of infix before infix_prefix_meta_operator causes ipmo:! to never be tried on '!< ...'.
10:19 mncharity TimToady: (n-=2) The last too comments are obviously bogus.  Too early in the morning. :/
10:32 FurnaceBoy joined #perl6
10:35 pugs_svnbot r20459 | putter++ | [STD_red] Parse '[<] <2 3>;', but not '[<] 2,3;'.
10:37 moritz_ mncharity: btw I tries run-tests in elf_f_src today and got 0 run 0%.  0 ok 0%.
10:37 moritz_ mncharity: do I have to rebuild elf?
10:39 mediogre left #perl6
10:48 ruoso joined #perl6
10:48 mncharity ah well.  STD_red [<] not going to happen this morning.
10:49 mncharity moritz_: 0% !
10:50 moritz_ mncharity: yes. 0%. Did you break something?
10:50 mncharity what does  ./elf_f ../../t/01-sanity/02-counter.t  say?
10:51 mncharity re broke, not that I know of... :/
10:52 moritz_ Can't locate autobox.pm in @INC
10:52 moritz_ ok
10:52 moritz_ I broke it :(
10:52 agentzh left #perl6
10:52 moritz_ I updated my debian (testing), which installed perl 5.10
10:53 moritz_ thus making all previous installed modules (via cpan) unavailable
10:53 mncharity upside is, hopefully a new version of autobox coming out today... ;)
10:54 mncharity ah, it's been uploaded.  autobox-2.51 propagating through CPAN...
10:56 moritz_ now it starts passing stuff
10:56 moritz_ sorry for the noise
10:58 mncharity oh, so very no problem.  great to have feedback.
11:07 agentzh joined #perl6
11:11 moritz_ mncharity: are there any tasks that can be done without much compiler knowledge? like writing builtins and the like
11:12 pugs_svnbot r20460 | putter++ | [elf] run-tests now does a "is elf running at all?" sanity check, with visible stderr.  moritz_++
11:13 mncharity hmm...
11:15 mncharity let's see... there's easy stuff, like taking PrimitiveP5's $*PID and doing similar $*GID, etc, etc.  ...
11:16 mncharity figure out what say() is really supposed to do with arrays, and tweak it (its body is p5, it's also in PrimitivesP5.pm). ...
11:17 mncharity that and adding a method say to STRING would get ../../../t/spec/S16-io/say.t to pass...
11:18 moritz_ mncharity: consider writing a TODO file with a section "low difficulty"
11:18 mncharity oh, good idea
11:18 moritz_ mncharity: maybe I'll get around to some of it, but it's also a good thing to point people to
11:20 mncharity at the other extreme is someone needs to really understand the p6 object model, and design a non-glacial p5 runtime for it.  elf is currently just faking it, which is fine for implementing the compiler, but at some point it would be nice to be more real.
11:20 mncharity at some point the attempt to "be real p6" diverges from Moose.
11:21 moritz_ jonathon is currently doing similar work for rakudo
11:22 mncharity mid-range, and all p5, is creating a p5 multimethod module which does something realish.  eg, take Class::Multimethods and sync it's policies with p6.
11:22 mncharity * its
11:26 mncharity The original vision for elf was "good enough to make p6 compiler development non-unpleasant".  So one idea is just "try to do something, anything, and complain when it doesn't work".  Ie, handling a more normal map() form is on the todo list from earlier feedback.
11:28 mncharity I shall scramble to quickly fill any gaps in the road thus encountered.
11:29 mncharity perl6: say(2,3,4);
11:29 exp_evalbot kp6: OUTPUT[234␤]
11:29 exp_evalbot ..pugs: OUTPUT[234␤]
11:29 exp_evalbot ..rakudo: OUTPUT[234␤]
11:29 mncharity perl6: say([2,3],[4,5]);
11:29 exp_evalbot kp6: OUTPUT[2 34 5␤]
11:29 exp_evalbot ..pugs: OUTPUT[2 34 5␤]
11:29 exp_evalbot ..rakudo: OUTPUT[2345␤]
11:30 smtms joined #perl6
11:31 mncharity perl6: say([2,[3,4],5);
11:31 exp_evalbot kp6: OUTPUT[syntax error at position 3, line 1 column 3:␤say([2,[3,4],5)␤   ^ HERE␤]
11:31 exp_evalbot ..pugs: OUTPUT[*** ␤    Unexpected "["␤    expecting ":", identifier or ")"␤    at /tmp/zUlUKdj2UX line 1, column 5␤]
11:31 exp_evalbot ..rakudo: OUTPUT[Statement not terminated properly at line 1, near "([2,[3,4],"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;Perl6::Grammar;statementlist' pc 18770 (src/gen_grammar.pir:2734)␤called from Sub
11:31 exp_evalbot ..'parrot;Perl6::Grammar;statement_block' pc 15616 (src/gen_grammar.pir:1612)␤called f...
11:31 mncharity perl6: say([2,[3,4],5]);
11:31 exp_evalbot kp6: OUTPUT[2 3 4 5␤]
11:31 exp_evalbot ..pugs: OUTPUT[2 3 4 5␤]
11:31 exp_evalbot ..rakudo: OUTPUT[2345␤]
11:43 iblechbot joined #perl6
11:47 lvh_ make test shows a lot of lines like         7/160 skipped: various reasons
11:47 pugs_svnbot r20461 | putter++ | [elf] say() formatting slightly improved.  Any::say() method added.  Autoboxing no longer unavailable in EmitSimpleP5's prelude.
11:47 lvh_ Normal?
11:47 moritz_ lvh_: normal
11:48 moritz_ lvh_: which "make test" are you talking about? parrots?
11:49 mncharity That elf now (almost) passes t/spec/S16-io/say.t says unfortunate things about its coverage.  Things like "there are no tests of hashes".  Contribution of failing tests would be appreciated.
11:56 moritz_ I'll put that into Auzon++s TODO for is summer of code project ;)
11:57 mncharity :)
11:57 moritz_ actually there's quite a lot of stuff mentioned during the last week regarding test suite TODOs
11:58 moritz_ so I think the project is really worth it
11:58 mncharity agreed.
12:02 mncharity oh wow.  t/blocks/placeholders.t actually parses.  insufficiently evil corner cases. :)
12:04 mncharity yeah, having folks sit down to generate a truly rigorous test suite is badly needed.
12:04 mncharity hmm, will be badly needed.  can't say it's really the bottleneck at the moment, but will hopefully become so.
12:10 * mncharity contemplates converting STD_red into p6... lot's o hours...
12:16 lvh_ moritz_: yes
12:18 Psyche^ joined #perl6
12:28 lvh_ why do people here always say Auzon++ instead of just Auzon? I know about karmabots but this is ridiculous :-p
12:37 moritz_ programmers love ridiculous stuff ;)
12:37 moritz_ lvh_: even you increment his karma ,)
12:48 [particle] lvh_++ # this is ridiculous :-p
12:53 pugs_svnbot r20462 | putter++ | [elf] Require new autobox-2.51, and decompose SCALAR into STRING, INTEGER, and FLOAT.  Also make sure Moose is current.
12:54 moritz_ it's not even on my cpan mirror, and you already require it as the minimum version ;)
12:56 mncharity lol
12:56 mncharity :/   sorry about that.
12:57 moritz_ nah, don't bother. It's the right thing to do ;)
13:06 FurnaceBoy joined #perl6
13:21 FurnaceBoy joined #perl6
13:26 moritz_ mncharity: run-tests hangs after printing xx-uncategorized/io_finalize_part1.t
13:30 mncharity looking...
13:31 mncharity (my guess is now that more loops are recognized and emitted, we'll start seeing non-terminations.  run-tests should probably use ulimit)
13:31 rdice joined #perl6
13:34 masak joined #perl6
13:35 mncharity yeah, part2.t sleep's in a loop, waiting for part1.t to successfully run... a long wait.
13:35 ispy_ joined #perl6
13:35 masak how can I emulate coro/yield with given/take? by calling given in a void context?
13:36 mncharity adding ulimit to run-tests.  you should be able to kill the elf which is waiting, and thus unstick run-tests.
13:41 mncharity masak: I think you mean gather/take?
13:42 masak oops, yes
13:42 masak still, how?
13:46 mncharity re ulimit... but that won't help us here. :/  it's not running cpu-bound, but sleeping.  can bound cpu sec, but not runtime sec.
13:46 mncharity re how,
13:46 * mncharity tries to remember gather/take...
13:46 masak :)
13:47 masak I know about it closing over a dynamic scope
13:47 masak and I can see how that would enable amulation of coros
13:47 masak but I feel I need to be spoon-fed a complete example
13:47 masak doesn't need to be fancy, tho'
13:51 mncharity the only thing which comes immediately to mind is that gather is defined to return a lazy list.  so that list becomes a handle for transferring control back into the gather block (by looking for the next value in the list).
13:52 alester joined #perl6
13:54 masak mncharity: I'm with you so far
13:54 masak seems we are stuck at about the same place along the road to findout
13:55 masak maybe an example of how gather/take could be used to emaulate coro could be included in the spec
13:55 mncharity maybe something like  my @a = gather { while 1 { say "again!"; take(13) }};  @a.pop; #=>again!  @a.pop; #=>again!   gimme_the_ability_to_again(@a);
13:56 masak yes, that looks like some sort of coro-ing
13:56 * masak 's head swims
13:56 masak it _is_ a powerful construct
13:58 mncharity there is no doubt a cute little unix command for limiting the realtime duration of a process... /me struggles to find it...
14:01 [particle] IPC::Run has a portable timeout implementation
14:07 jhorwitz joined #perl6
14:07 mncharity "In words of the author of IPC::Run > I would personally recommend IPC::Cmd rather than IPC::Run right now."
14:08 TJCRI joined #perl6
14:08 [particle] i have been using IPC::Run in production on windows for 4+ years
14:09 [particle] if IPC::Cmd has timeout, that may be fine too. just don't know it.
14:10 wknight8111 joined #perl6
14:11 mncharity re timeout, yeah, I don't see it. :/
14:21 pbuetow joined #perl6
14:26 pmurias joined #perl6
14:29 Psyche^ joined #perl6
14:39 pmurias use v5 is assumed to be a lexical grammar changing module right?
14:39 pmurias by STD.pm
14:41 pmurias rephrasing my question in a human-readable form, STD.pm assumes that v5 invokes v5.pm (or similiar) that changes the grammar?
14:41 pmurias s/in/into
14:42 moritz_ I'd expect it to take over the parsing
14:43 moritz_ do you really think you can built a sane parse tree or even AST for perl5 code?
14:44 pmurias moritz_: you = me? or you = someone?
14:45 moritz_ you = anybody
14:45 moritz_ they say "nothing but perl can parse Perl", and I believe this to be true for Perl 5
14:46 pmurias why not? MAD does it
14:46 pmurias moritz_: it's even more true for Perl6
14:46 [particle] it's also true for perl 6
14:46 [particle] however, if you ignore BEGIN in perl 6, you can parse it without perl 6
14:46 [particle] this is not true for perl 5
14:53 moritz_ aye
14:55 pmurias [particle]: an example please ;)
14:56 [particle] http://www.perlmonks.org/index.pl?node_id=44722
14:57 moritz_ pmurias: p5 has really nasty things like prototypes, and heuristics when a { is a block or a hash
14:58 moritz_ pmurias: and things like foo / ... is ambigous, you don't know if / a division or a beginning regex unless you know foo's prototype
14:59 Khisanth but perl5 is a bit of a moving target anyway :)
15:00 moritz_ all the worse ;)
15:01 moritz_ but let's finish the thought - even if we could parse p5, what then? We can't reimplement all of perl5 on parrot
15:01 moritz_ so we'd have to link in a perl interpreter anyway
15:05 Khisanth can't or don't have the resources to do it?
15:06 moritz_ both
15:06 Patterner 5.4: 1997  5.6: 2000  5.8: 2002  5.10: 2007    Moving like greased snails.
15:06 moritz_ I believe it's impossible to clone such a complex piece of software that's defined by implementation, not by specs
15:07 Patterner the Test Suite is the Spec.
15:07 moritz_ I wish it were so
15:08 moritz_ the Spec is a mixture of test suite, documentation, previous behaviour and a what you might call "common sense"
15:09 pmurias mncharity: if you wish to do start a second backend and port the STD_red to perl6, doing a ruby backend might make sense
15:14 sscaffidi joined #perl6
15:14 * mncharity surfaces, backlogs
15:14 pugs_svnbot r20463 | putter++ | [elf] run-tests will now timeout non-terminating tests.  moritz_++ particle++
15:15 pmurias a proper js backend would be very usefull, but js would likely require lots of workarounds
15:15 pmurias mncharity: hi
15:16 mncharity hi pmurias
15:18 mncharity re IPC, what a zoo.  the python folks "recently" did a cleanup of their IPC stuff.  Someone should clone their api.  This seems to be one of those "pile of CPAN modules, variously unmaintained, buggy, or not quite the right thing".
15:19 mncharity re porting STD_red to p6,
15:21 justatheory joined #perl6
15:22 mncharity pros include () lower barrier to entry for elf. () elf can become a p5 module, and then relocatable/renamable (ie, so you can have multiple p6 instances in a p5 process). () full bootstrap. () closer to running on non-p5 languages. () perhaps easier for more people to hack on it. () ...
15:23 mncharity cons include () extra source of uncertainty while debugging (but what is _really_ running?).  () somewhat longer edit-test cycle. () ...
15:24 mncharity () lots of hours work...
15:25 mncharity s/IPC/process management/
15:25 pmurias i don't understand the first con
15:27 mncharity with ruby, one can be fairly sure that the source you are looking at corresponds closely to what is running.  with the extra p6 compiled to p5 step, without looking at the p5, you would never quite certain if something odd isn't an elf compiler artifact.
15:27 pmurias happend with mp6 a lot
15:27 pmurias a couple of times
15:28 pmurias but the generated code was clean so it could be hand checked if the bug appeared to be strange enough
15:31 mncharity so far it hasn't been a big issue with elf.  but part of that may just be that I've been conservative in dialect, and having written it, have a feel for what is less likely to bite.  be interesting to see what happens as others start writing hunks of code.
15:32 mncharity but big hit is hours.  probably cost 2 or 3 person days.
15:33 moritz_ elf can already parse 70% of the tests. Shouldn't you focus on running mor of them first?
15:33 moritz_ *more
15:35 mncharity could be.  would you be more enthused by pure p6/p5-ness, or say 90% non-parsefail?
15:36 mncharity pmurias: re js, yeah, that would be nifty. :)
15:36 moritz_ 90% non-parsefail
15:37 moritz_ because then it could be a *real* help for writing the test suite
15:37 moritz_ having a syntax checker helps
15:37 mncharity as long as the performance wasn't too bad.  PIL2JS was too slow to be usable.  we should be able to do better compilation in elf (if not, something is very wrong), and js implementations are faster, so in principle we should be able to get near native js speed, just as we currently have near native p5 speed.
15:39 mncharity re syntax checker, one difficulty is that you never really know if a parse is correct until you try to use it and test the result.  hmm, though that's less of a problem with STD than it was with redsix - backtracking lets the parser search out all sorts of weird false parses one didn't anticipate.
15:41 moritz_ mncharity: even a non-authoritive syntax checker is great
15:44 mncharity pmurias: re "lots of workarounds", ... I started to ask which... yeah, lots of work.
15:45 mncharity moritz_: re checker, I guess the gotcha is it doesn't seem to get me closer to other people working on elf...
15:46 mncharity or using it even
15:51 mncharity http://search.cpan.org/~vpit/Variable-Magic-0.17/lib/Variable/Magic.pm  <- intriguing
15:51 lambdabot Title: Variable::Magic - Associate user-defined magic to variables from Perl. - search. ..., http://tinyurl.com/65bqv9
15:52 pmurias mncharity: why do you use (sub {})->()?
15:52 pmurias isn't do {} better
15:54 mncharity http://search.cpan.org/~tbusch/JavaScript-SpiderMonkey-0.19/  http://search.cpan.org/~claesjac/JavaScript-1.08/lib/JavaScript.pm
15:54 lambdabot Title: Thomas Busch / JavaScript-SpiderMonkey-0.19 - search.cpan.org
15:55 mncharity pmurias: for 'is p5'?  me greps...
15:56 mncharity err, which/where?
15:57 pmurias output of t/builtins/my.t
15:58 mncharity looking...
16:00 pmurias should i paste the offending bit?
16:00 pmurias ;)
16:00 mncharity ah, bare blocks.  my impression is
16:00 cjfields joined #perl6
16:02 mncharity bare blocks are param-less self-executing routines.  could be wrong.  was thinking that this way, whatever we eventually do to get routines more real (local()ization, $_, etc) would then "just happen".
16:02 mncharity also didn't think of it :)
16:03 pmurias you are likely right
16:04 mncharity it's actually happening on the AST->IR conversion step, rather than the emitter.  hmm... having the emitter then try to optimize, having lost information, seems non-ideal.  could have an extra IR node... :/
16:05 moritz_ beware that 'return' does something different
16:05 moritz_ in do { ... } it exits the surrounding sub
16:05 moritz_ in (sub { ... })->() it doesn't
16:05 mncharity I guess the key would be whether things like $?ROUTINE are altered inside of a block or not.  if not, then it really isn't a sub, and the IR should be changed.
16:06 mncharity ah, there's an even better one.
16:08 mncharity hmm... svn up is hanging again...
16:11 chris2 joined #perl6
16:13 moritz_ 17:22 <@Juerd> Oh, outage. Have to run.
16:13 moritz_ don't know if that's connected
16:13 moritz_ I can't ssh to feather
16:15 mncharity ^.^
16:17 mncharity ok, I've a fixed version for whenever we get svn back.  good catch.
16:18 mncharity re "you are likely right"... or so not :)
16:18 moritz_ Juerd: I can ping feather, but there's no way to connect to it (ssh and http time out)
16:22 mncharity pmurias: anything else seem odd?
16:24 mncharity or, whenever you notice or are puzzled by something, let me know... odds are good it's a thinko.
16:24 pmurias haven't found anything yet ;)
16:24 mncharity :)
16:27 pmurias the syntax error (lack of semicolon) was a bit out of the ordinary too
16:27 mncharity my.t?
16:28 meppl joined #perl6
16:29 pmurias yes
16:30 pmurias svk pull hangs :(
16:31 pasteling Someone at 81.168.228.98 pasted "error isolated" (10 lines, 279B) at http://sial.org/pbot/31080
16:31 pmurias semi-isolated :(
16:35 mncharity re my.t, looks like a misparse...
16:40 braceta joined #perl6
16:42 mncharity hmm.  so there seem to be at least two problems.  there's an infix:is which is preempting the interpretation of the sub is().  and the infix:is is crawling out of the block, likely via the EXPR "lets move the ops around" system.  upside is it probably affects a lot of files.
16:43 mncharity "Why did p6 take 5 years 'till Christmas?  Well, we had to write a parser for it..." :)
16:45 mncharity that clears up the question of what to work on today... thanks :)
16:45 pmurias np ;)
16:53 Psyche^ joined #perl6
16:53 mncharity re 'two problems', nope.  "{4}\nis(3);".  it's not stopping after the }, and since there's an infix:is, it becomes  infix:is({4},(3)).  cute.
17:07 eternaleye joined #perl6
17:10 pmurias swimming&
17:10 mncharity *envious*
17:10 alanhaggai joined #perl6
17:14 mncharity TimToady: (n+1) It looks like EXPR is willing to eat "{3}\nis(4)" because there is currently no stopper check between the expect_term and the expect_infix, and Test's sub is() resembles infix:is.  Adding a 'last if stdstopper' avoids the over eating.
17:16 mncharity bummer no svn
17:36 mncharity hmm, and search.cpan.org is busted.
17:37 mncharity ie, returning no matches for "any" search.
17:38 braceta joined #perl6
17:39 pmurias mncharity: what do you want to find on cpan?
17:41 mncharity used kobesearch.cpan.org , was looking for padwalker
17:42 mncharity do you know of any module which provides a "current-environment" aka "binding" abstraction?  ie,
17:43 mncharity eval('$b',Binding.new)    where Binding.new captures the enclosing sub and package, so a padwalker elsewhere can access '$b'.
17:43 pmurias no
17:45 mncharity oky.  that's one which would be easier in ruby&CL, but can deal...
17:45 pmurias but walker only works on the pads which are in the current call chain
17:45 pmurias so the absoulte depth would be enough
17:47 mncharity challenge is p6 eval calls compiler which calls assorted methods which eventually calls eval_perl5 and p5's eval().  oh, which doesn't take an environment, so even if the info is routed, you still lose with lexicals. :/
17:47 FurnaceBoy joined #perl6
17:49 pmurias mncharity: you can still access them by passing the right int to peek_my()?
17:50 mncharity re lexicals, so p6 eval() has to be emitted as  foo(sub{my($p5)=@_;eval($p5)}) so the p5 gets eval()ed in the right place.
17:52 mncharity re int, yes, with everyone... was going to say everyone tracking their frames, but since the p5 compiler is free to discard frames, that would be problematic.  might be able to use a marker variable, so
17:52 mncharity search up the stack until you see the "I am eval()" marker, and then go one frame further.
17:53 pmurias but we would accessing the vars in a funny way
17:53 pmurias or playing with LexAlias a lot
17:54 pmurias really swimming&
17:54 mncharity but that still leaves the problem of "yes you can look up vars, but that doesn't directly help you evaluate code".  where the sub approach perhaps work.
17:54 mncharity :)
17:54 dalek joined #perl6
17:54 pugs_svnbot joined #perl6
17:56 [particle] svn's back up
17:56 pugs_svnbot r20464 | particle++ | [fudge] recognize 'nok' as a valid test function
17:59 pugs_svnbot r20465 | particle++ | [spectest] use 'nok' where appropriate to test truth, add tests for True vs Bool::True, etc.
17:59 Auzon particle++ indeed. ok(not(...)) is annoying to write.
18:00 [particle] Auzon, moritz_: btw `svn log | ack -A 99 -iw auzon -r 20000:HEAD` works great to get the log of just your commits since r20000
18:00 Auzon Excellent.
18:00 Juerd joined #perl6
18:00 Auzon Now to figure out what all those ack commands do... :P
18:01 [particle] --thppt
18:02 Auzon My version mentions --thpppt, but --thppt works too
18:04 Tene as does --thppppppppppppppppppppppppt
18:05 alester Auzon: EVERYTHING.  THEY DO EVERYTHING.  THEY ARE ALL POWERFUL.
18:05 Auzon alester:  "It does awesome is what it does."?
18:06 alester THAT IS CORRECT
18:06 alester AWESOME IS ACK'S MIDDLE NAME.
18:06 Juerd I'm DISABLING apache2 on feather until someone has tuits to find out what the hell causes the memory problems
18:07 [particle] that's gonna hurt somebody's feelings, juerd :)
18:07 Juerd [particle]: The current situation is that feather crashes every few days, and people lose work because of that.
18:08 Juerd I have no tuits to find the problem. Someone must know what happened because it started happening one specific moment.
18:08 Juerd Letting apache2 run like this is no option as far as I'm concerned.
18:09 Juerd Either something has to be made that kills it when it consumes too much memory, or the leak must be found and plugged.
18:09 [particle] understood. i'm sure with apache2 being down, somebody'll find it
18:09 [particle] any way to notify folks who may try to restart it about the problems?
18:09 [particle] ...rather than have somebody blindly restart it and cause problems again.
18:14 Auzon Juerd: Does that include the main Apache2 instance?
18:15 Eevee you know, computers suck
18:16 braceta joined #perl6
18:16 mncharity  Juerd: if it happens every few days... what about a nightly reboot?  *innocent look*
18:18 kanru joined #perl6
18:18 wolverian joined #perl6
18:21 [particle] fix >> hack
18:23 * mncharity notes  ulimit -v    # The maximum amount of virtual memory available to the shell
18:24 TimToady back home
18:24 silbirs joined #perl6
18:24 TimToady re infix, my expect_infix contains     <!infixstopper>
18:25 TimToady which should also check stdstopper
18:25 Auzon oh. Regarding limiting resources, you might want BSD::Resource
18:25 TimToady (but apparently doesn't yet)
18:26 schmalbe joined #perl6
18:31 Juerd Auzon: I don't know and I don't have time to figure it out.
18:31 Juerd [particle]: Whoever wants to investigate can get root access to enable apache2 and then fix it.
18:32 Juerd But I'm not going to start Apache2 without that volunteer.
18:32 [particle] ok, i figured there are folks with root that might just restart apache2 blindly
18:32 [particle] i'll watch the channel for traffic wrt that
18:39 TimToady in any case, I'm refactoring all the stopper logic in various directions to be more LTM friendly
18:43 TimToady on the plane home I rewrote the regex parser to use EXPR to parse ||, |, &&, & for instance
18:43 TimToady it just derives a new expect_term and expect_infix
18:58 meppl joined #perl6
19:19 meppl joined #perl6
19:21 [particle] cooooool
19:31 PerlJam joined #perl6
19:40 pmurias mncharity: you could even emitt it as eval(foo(...)) it looks cleaner but is less flexible
19:50 mncharity pmurias: got it working.  awaiting svn.
19:50 mncharity re "to parse ||, |, &&, &",  ^.^!
19:51 mncharity hmm, someone will just have to create a Smiley.pm with lots of smiley ops which do something.
19:51 mncharity ooo, svn back
19:51 spinclad *<8oO
19:52 spinclad *<8-0
19:53 spinclad ?:-[  # headscratch
19:53 lambdabot Unknown command, try @list
19:56 pugs_svnbot r20466 | putter++ | [STD_red] Added stdstopper to EXPR, to avoid "{3}\nis(4)" being one EXPR.  TT reports it should be in infixstopper instead.
19:59 pugs_svnbot r20467 | putter++ | [elf] Emit bare blocks as do{}.  pmurias++ moritz_++
19:59 pugs_svnbot r20468 | putter++ | [t] Added ;'s to improperly terminated "ends in the middle of a line" blocks.
20:00 mncharity r20466 should have been pmurias++ too
20:00 Caelum joined #perl6
20:01 peepsalot joined #perl6
20:02 * mncharity waits for self bootstraping cycle to complete.  pmurias: it's about to be eval($expr,sub{my$s=eval($_[0]);Carp::carp($@)if$@;$s})  where the later is passed around as an environment handle.
20:03 mncharity should be doing a wantarray, but... will wait for testfails to add it.
20:05 Caelum joined #perl6
20:08 pugs_svnbot r20469 | putter++ | [elf] my $d;eval('$d') now works.
20:12 mncharity pmurias: re eval(foo), oh.... there's an idea...
20:13 mncharity though eval($exp,$env?) perhaps requires less magicalness from eval().  and can grow into a non-hack (we really should have a current-environment concept).
20:23 pmurias i meant it to be eval(compile_to_p5("...p6 code...")) so it would use the minimum of magicalness
20:28 mncharity right, but then eval() isn't really a p6 sub any more.  we're treating it like a macro.  which is fine, but... perhaps not clearly preferable.
20:28 pugs_svnbot r20470 | putter++ | [elf] Update run-tests.result_faster .
20:35 mncharity ie, the p6 eval('') macro-expands to  <the underlying p5 eval>(compile_to_p5(''))  vs moving towards something vaguely like   sub *eval($expr,$env=CALLER::binding){}   or somesuch
20:35 mncharity CALLER::environment  ... whatever
20:40 pugs_svnbot r20471 | putter++ | [elf] 'loop (my $x=1;$x<4;$x++) {say $x}' now runs.  Scoping is no doubt in need of fixing.
20:42 mncharity http://ruby-doc.org/core-1.9/classes/Binding.html  http://docs.python.org/ref/exec.html  ha, but not CommonLisp http://www.lisp.org/HyperSpec/Body/fun_eval.html#eval
20:42 lambdabot Title: Class: Binding
20:43 mncharity http://www-sop.inria.fr/mimosa/fp/Bigloo/doc/r5rs-9.html#Eval
20:43 lambdabot Title: R5RsScheme Revised(5) Report on the Algorithmic Language Scheme
20:45 cjfields joined #perl6
20:45 mncharity so t/builtins/my.t still shows some scoping (and other?) issues, but the whole thing now runs.
20:48 mncharity might be nice to have something like ruby's somewhat-smalltalk-inspired http://ruby-doc.org/core-1.9/index.html documentation.
20:48 lambdabot Title: RDoc Documentation
20:51 mncharity pmurias: btw, thank you so much for championing elf_f_faster.  it makes this exercise sooo much more pleasant.
20:54 mncharity eep.  ./STD_red_run  -e '!foo()' #=> dotty:!  !?!
20:54 mncharity spinclad: assorted exclamations "!#*!?!" could also be operators. :)
20:56 spinclad (: balanced brackets :)
20:57 mncharity lol
20:57 mncharity oh my, nofat_space et al are gone from STD.pm...
20:57 spinclad *<8-O SHOUT! O-8>*
20:58 ruoso joined #perl6
21:00 mncharity TimToady: (n+1) statement_control:loop's rule() seems to require ws between 'loop' and '('?  the hints example about it shows it without
21:01 mncharity re SHOUT!, boldface ansi terminal code print STDERR.
21:04 pmurias in RED ;)
21:05 mncharity TimToady: is '!foo()' _supposed_ to parse as a dotty:! instead of a prefix:! ??  /me puzzled.
21:05 mncharity :)
21:07 ilogger2_ joined #perl6
21:09 ilogger2 joined #perl6
21:10 Eevee mncharity: !foo() is always prefix
21:10 Eevee http://perlcabal.org/syn/S12.html#line_237
21:10 lambdabot Title: S12
21:14 Auzon joined #perl6
21:16 mncharity ah, thanks!
21:17 mncharity TimToady: (n+1) it looks like noun parsers '!foo()' as dotty:<!> rather than prefix:<!> ?
21:18 mncharity btw, I've been using the 'TimToady: (' format consistently, so it can be searched out of the web-or-other log.
21:19 peepsalot joined #perl6
21:20 mncharity Does anyone know of a way to tell the perl compiler "please don't optimize away variables - look, there's an eval() here"?
21:21 moritz_ don't think so, except just listing the variables
21:21 moritz_ $var1; $var2; $var3; etc
21:24 mncharity that does it.  ok, something for the infinite compiler todo list... maybe, depending on spec.
21:25 mncharity hmm, though  t/spec/S29-context/eval.t  test 1 depends on an unused variable not being optimized away.
21:28 moritz_ I think an eval() should prevent a compiler from optimizing away any variables, except for including them in closures
21:28 moritz_ which is the way perl 5 works
21:28 pmurias does perl5 optimize away variables?
21:28 moritz_ but that's a nice question for p6l
21:28 moritz_ pmurias: only from closures
21:31 pmurias moritz_: example please? can't find out anything myself?
21:31 pmurias s:2nd/?//
21:32 moritz_ pmurias: wait a sec
21:34 pasteling "moritz_" at 89.13.241.101 pasted "perl5 optimizes variables away from closures (for pmurias)" (15 lines, 202B) at http://sial.org/pbot/31081
21:34 pugs_svnbot r20472 | putter++ | [STD_red] Disabled dotty:<!> so '!foo()' gets prefix:<!> instead.
21:35 Eevee ..ah, tricky
21:35 moritz_ pmurias: in this example you'll see that $y isn't in $closure's lex pad
21:37 pmurias thanks
21:43 pmurias g' night
21:48 mncharity good night
22:05 mncharity Anyone know what lexical scope $/ should have?
22:06 mncharity rakudo: "ab" ~~ /b/; say $/;
22:06 exp_evalbot OUTPUT[Parrot VM: Can't stat languages/perl6/perl6.pbc, code 2.␤main: Packfile loading failed␤]
22:06 mncharity :/
22:06 moritz_ uhm, are there different lexical scopes?
22:06 moritz_ rakudo: "ab" ~~ /b/; say $/;
22:06 exp_evalbot OUTPUT[b␤]
22:07 moritz_ mncharity: it was just a race condition with the build cronjob
22:08 mncharity wondering about  "ab" ~~ /b/; say $/; { "abc" ~~ /c/; say $/; } say $/;
22:08 mncharity re cronjob, ah! :)
22:09 mncharity namely, is $/ my'ed in any block which contains a rx?  a single $/ my'ed at the top of a sub?
22:09 moritz_ uhm, good question
22:10 mncharity rakudo: "ab" ~~ /b/; say $/; { "abc" ~~ /c/; say $/; }; say $/
22:10 exp_evalbot OUTPUT[b␤c␤b␤]
22:10 moritz_ pugs: "ab" ~~ m/a/; { "ab" ~~ m/b/; say $/; }; say $/;
22:10 exp_evalbot OUTPUT[b␤b␤]
22:11 moritz_ so they behave quite differently
22:12 mncharity with the rakudo behavior, one wouldn't be able to do  given $n { when 3 { $x ~~ /3/ }; when 4 { $x ~~ /4/ }; }; say $/;
22:12 mncharity re differently, yeah.
22:13 [particle] the answer lies within the #parrot log for last night
22:13 mncharity LOL
22:13 mncharity grasshopper goes in search of the log...
22:14 [particle] http://www.parrotcode.org/misc/parrotsketch-logs/irclog.parrot-200805/irclog.parrot.20080519
22:14 lambdabot http://tinyurl.com/629aef
22:15 [particle] starting around "<pmichaud> I still have to figure out the real semantics of $/, $_, and $?"
22:15 [particle] shower &
22:15 moritz_ http://irclog.perlgeek.de/parrot/2008-05-19#i_299699 and later
22:15 lambdabot Title: IRC log for #parrot, 2008-05-19
22:16 moritz_ though I don't quite understand the discussion I'm afraid
22:18 moritz_ ah, reading a bit on it seems to get a bit clearer
22:21 IllvilJa joined #perl6
22:22 mncharity 'my $+x;' declared bogus, ah well, elf will need edits.
22:28 audreyt joined #perl6
22:30 * mncharity wants lots of tests capturing that conversation
22:31 mncharity looks like there might be distinct Block and "immediate block" concepts...  sounds like maybe a new IR node... but I'm still unclear on it
22:31 Auzon Duly noted.
22:31 mncharity :)
22:32 mncharity eep.  looks like a bunch of local()s are needed in every sub call.  :/
22:33 fridim_ joined #perl6
22:34 Auzon I'm still slowly experimenting with a safemode for elf. I'm thinking of just disabling the file IO, Perl 5 evals, and running it under BSD::Resource or similar. Ideally I could make an EmitSaferPerl5.pm with all of these hacks in it, but I'm a bit lost in elf's architecture.
22:34 Auzon I found out that I can just add croak("...") if $ENV{ELF_SAFEMODE} in the prelude, but that seems a bit invasive.
22:35 Auzon s/in the prelude/in the relevant subroutines in the prelude/
22:35 moritz_ and you'd need a way of disabling $ENV{ELF_SAFEMODE} = 0;
22:35 pugs_svnbot r20473 | putter++ | [elf,STD_red] Parse regex adverbial modifiers.
22:36 Auzon I checked, and it doesn
22:36 Auzon doesn't matter if you do that
22:37 mncharity Auzon: re architecture, any questions?
22:37 Auzon I believe that's because Elf doesn't give a copy of the environment to the scripts.
22:37 mncharity re disable p5 evals, I'm not sure you can.  eg, PrimitivesP5's  getting $*PID from $$.
22:38 moritz_ but you can formulate that as subs exported from the prelude
22:38 moritz_ sub get_pid { $$ }
22:39 mncharity re "Elf doesn't give a copy of the environment to the scripts", you mean elf doesn't have a %*ENV?
22:39 moritz_ no need for a perl 5 eval that's callable from p6
22:39 Auzon I hand-modified a copy of elf_f_faster to have eval_perl5 croak if ELF_SAFEMODE was set. It seemed to work OK.
22:40 mncharity re get_pid, trying to go in the other direction.  moving things to PrimitivesP5.  any runtime calling convention changes would have to be hand edits in the EmitSimpleP5 core prelude, but happen automagically in Primitives.
22:41 mncharity any p5 based runtime should be able to use Primitives.  but the p5 code in Emit is specific to a particular runtime design.
22:41 moritz_ ok, I don't know how the different parts of your runtime are called
22:42 Auzon elf_f_safe -e 'say $*PID' works.
22:42 Auzon oh, duh
22:43 Auzon Hm.
22:43 Auzon my elf_f_safe isn't correct somehow
22:43 mncharity the prelude is composed of  () stuff in EmitSimpleP5.pm (as a string), () PrimitivesP5.pm which is p6, but is allowed to do  sub foo() is p5 {'this is p5'}, and () Prelude.pm which is supposed to be backend independent p6.
22:43 moritz_ mncharity: do you have some kind of architectural overview of elf_f?
22:44 mncharity so  () depends on particular p5 runtime, () depends on p5, () works anywher.
22:44 mncharity no, still just winging it.
22:45 mncharity ie, the current set of design choices are considered all experimental/peliminary, and subject to "may change at any moment without notice".
22:46 moritz_ heh ;)
22:46 * moritz_ notices that his waking times don't overlap too much with mncharity's and Auzon's :(
22:47 mncharity :/
22:47 Auzon Waking times? What're those? :P
22:47 moritz_ off to bed now
22:47 Auzon Ah...
22:47 Auzon I'll try to wake up earlier then. :)
22:47 mncharity good night moritz_.  thanks for the help today
22:47 Auzon See you, moritz_
22:48 moritz_ how do you say "waking times" in proper english?
22:48 mncharity Auzon: I really don't think the "disable <pause>
22:48 mncharity err, hmm...
22:48 Auzon I don't know. I was just joking about my messed up sleep schedule.
22:48 moritz_ ok ;)
22:48 moritz_ bed &
22:48 mncharity "when you are away" ?
22:48 mncharity *awake
22:49 mncharity "work hours", so... "sleeping hours"?  so...
22:49 mncharity hmm.  puzzlement
22:52 Auzon Seems that $*PID is forbidden under my safemode hack, too.
22:52 mncharity <unpause> Auzon: I really don't think the "disable p5 eval" is a viable strategy... hmm... if it happened after the prelude was loaded... and obviously didn't apply to p5 eval via p6 eval... which is a big hole there... hmm, I just don't know...
22:54 mncharity if you can delay safety until after the prelude runs, then maybe.  but if before, I expect the prelude to go boom.
22:55 mncharity (note of context: I was quite dubious for a while about pmurias's seeking a non-Moose variant of elf... which turned out to be a big win, so... I may well be wrong).
22:58 mncharity what I'm very reluctant to do is alter how elf gets architected in pursuit of "safe", where the RightThing is instead an external vm box.
22:59 mncharity which means theirs "the other shoe drops" potential... it works... a new bit of prelude gets built... it can no longer work...  .   maybe.
22:59 mncharity *there's
23:01 mncharity sound vaguely plausible?
23:02 Auzon Hm...
23:03 Auzon Well, evalbot is already in a chroot.
23:07 mncharity as long as it doesn't have permission to edit the filesystem, can't access sensitive info, can't send spam, has short runtime limit, etc, then that should be fine, no?
23:07 Auzon spam and runtime limit are what I'm trying to prevent
23:07 Auzon I'm thinking that BSD::Resource could help, without imposing any requirements on elf itself.
23:09 Auzon Or maybe something in evalbot to keep it from running beyond ~5 seconds.
23:09 mncharity spam is controlled by what (isn't) in the chroot.  limits can be imposed by a wrapper script.  runtime, memory, filehandles, etc.  ulimit handles much of it.  run-tests is using a simple alarm timer for runtime.  looking at BSD::Resource...
23:11 mncharity re 5 sec, sounds plausible.  elf_f has a ~2 sec startup overhead.  for the usual irc channel stuff, responses should be sub-second after that.
23:13 Auzon Would you rather use elf_f_faster in the evalbot?
23:14 Auzon That's what I was planning, but I'm not sure how much it sacrifices compared to elf_f
23:15 eternaleye joined #perl6
23:15 mncharity good question.  it's very slightly less capable than elf_f.  i don't know how that will play out.  ?   perhaps a elf/elf_bot symlink?  that also deals with elf_g eventually coming out.
23:16 mncharity at the moment, I believe the only difference is array instance variables are not initialized.  has @.a;  but I haven't looked closely at it.
23:16 mncharity s/it/the issue/
23:17 Auzon Yeah. I'm making the build script, so I could do something like that. Maybe look for the recommended version in README, or have it find the latest version
23:17 mncharity BSD::Resource looks neat.
23:17 Auzon Or maybe I'll just need to update the build script for every new elf iteration, unless they can all be compiled in a similar way
23:18 mncharity the latest version has sometimes been "known not to work".  so a manual approach is probably better.
23:18 mncharity don't have to compile anything.  elf is in the repo.
23:18 Auzon re BSD::Resource, indeed. I recall using it a few years ago for something or other.
23:21 mncharity that was literally a one-line change. :)
23:21 pugs_svnbot r20474 | putter++ | [elf] Added %*ENV.  'say %*ENV<PATH>' works.  Auzon++
23:22 Auzon Does elf support the .perl method yet?
23:22 mncharity no.  was waiting for someone to be interested or to do it.
23:23 Juerd What is elf?
23:24 Auzon supper &
23:26 mncharity thanks Auzon.  may do a .perl(), taking your question as interest. :)
23:27 Zygo joined #perl6
23:27 mncharity Juerd: you're kidding, no?  /me seems to have seriously misjudged visibility among #perl6 folks.  elf is...
23:28 Juerd mncharity: Really I have no idea.
23:28 Zygo left #perl6
23:28 mncharity elf is an implementation of p6, composed of a backend written in p6, and a frontend written in ruby hand derived from STD.pm.
23:28 Juerd mncharity: I have very, very few tuits available to Perl 6.
23:28 Juerd I see
23:29 Juerd My main complaint about Perl 6 development is that it's so invisible if you're not actively tracking it.
23:29 Juerd There are no mailing list summaries, there's just a bunch of blogs. And that's very limited.
23:30 mncharity the backend self-compiles, it uses a p5 runtime in an almost-but-not-quite pure manner (there are one or two dangling kludges), and a small single digit percent of the t/ test suite is passing.
23:30 Juerd Mainly, my impressions of Perl 6 are limited to the design meeting minutes posted by chromatic, and the rakudo progress info posted by jnthn
23:30 Juerd Which t/ test suite?
23:30 mncharity pugs
23:30 Juerd Then anything >1% is impressive for something so young that I didn't know about it yet :)
23:30 mncharity misc/elf/run-tests.result_faster
23:30 mncharity lol
23:31 Juerd That test suite is huge.
23:31 mncharity misc/STD_red is actually up to parsing ~70% of the files.
23:31 mncharity some fraction of which are even correct parses. ;)
23:31 Juerd ...correctly? :)
23:31 mncharity lol
23:31 Juerd Right.
23:33 mncharity maybe I should do another design meeting.  or send a note.  previous experience of the former was not a win.
23:34 mncharity visibility has been intentionally lowish.  t/ just started being run a few days ago.
23:36 mncharity Files: 813.  602 parsed 74%.  239 run 29%.  44 ok 5%.  Tests: 16409+.  620 ok <3.77%, 15789+ not.   Though a commit or two behind.
23:37 mncharity run means a plan was seen, so the p5 emitted wasn't so invalid perl or strict died.
23:37 mncharity *died immediately
23:42 meppl good night
23:42 mncharity the primary objective of elf is to encourage potential p6 implementation developers to be active.  ie, to write a p6 compiler in p6.  with the resulting pushing on spec, and on p5 runtime.  current attempt to achieve that is to focus on t/.  other possibilities are
23:42 mncharity good night meppl :)
23:43 mncharity completing the bootstrap by translating STD_red to p6, providing a fast p6 regex on p5 implementation that p5 developers can use, and... other ideas welcome.
23:50 meppl ;)
23:55 Auzon Juerd: re elf, it compiles/runs in Perl 5, and is quite fast. The regular variant is <3s for say "hello, world", and the fast variant is ~.25s
23:58 Auzon elf also only requires Ruby 1.9, Perl, and a few modules, so it's pretty easy to get running

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

Perl 6 | Reference Documentation | Rakudo