|
-Ofun: xrl.us/hxhk | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6 Set by apple-gunkies on 11 November 2005. |
|||
| autrijus | yo | 00:00 | |
| wolverian | evening/night | 00:03 | |
| dduncan | so, I was looking into the die() thing yesterday ... | ||
| is removing the Str cast an easy thing to do, or would there be complication side effects? | 00:04 | ||
| such as issues with various back-ends | |||
| wolverian | btw, does sub foo (Str @bar) only accept Str-typed @bars, or does it coerce? | 00:05 | |
| dduncan | In my experience, ... | 00:06 | |
| declaring the container type of an argument such as with Str doesn't do anything yet ... | |||
| or at least, I have declared arguments to only take Locale::KeyedText::Message objects, and still have to do an explicit does() test inside the function to actually catch bad args, such as if a Str is passed instead | 00:07 | ||
| I assume such checks by the runtime itself or compiler will come later | 00:08 | ||
| wolverian | yeah, I was asking for the perl6 behaviour really, not pugs | ||
| dduncan | aka, the system seems to act the same as if you said: sub foo (@bar) | ||
| wolverian | sorry for the confusion | 00:09 | |
| dduncan | still, I don't have a problem with that right now | ||
| autrijus | wolverian: it only accepts Str-typed @bars, but each type has a chance of coercing into Str | 00:10 | |
| dduncan | in the short term, I see it more important that Pugs enables correct behaviour, than that it blocks incorrect behaviour ... so if you code right, it works | ||
| autrijus | there's no type system before 6.2813 | ||
| dduncan | so correct code still runs | ||
| autrijus | I totally agree | ||
| 6.2831, even | |||
| dduncan | fyi, in case you didn't see my comments from 16 hours ago, I see 2 main problems left before Locale::KeyedText works correctly ... one concerns die coercing arg to Str, and I had committed a test for that ... hopefully this is easy to fix | 00:12 | |
| autrijus | ok. path to that test? | ||
| (sounds easy to test) | |||
| dduncan | the other is that I don't yet know the correct syntax for checking if a module is loaded | ||
| it is easy to test ... | 00:13 | ||
| its in built-ins | |||
| control-flow | |||
| ... | |||
| autrijus | t/builtins/control_flow/die_arg_preservation.t | ||
| dduncan | yes | ||
| autrijus | ok... I need to modify the exception type in Eval monad from Str to Val | 00:14 | |
| guess that's all it takes | |||
| dduncan | if you backlog to 15 hours ago, I wrote some comments about where I thought the problem was | ||
| autrijus | will fix. you can probe for loaded modules using | ||
| %INC{'Test.pm'} | |||
| dduncan | thank you ... will try that ... | ||
| autrijus | same as p5 currently | 00:15 | |
| dduncan | oh | ||
| ? | |||
| autrijus | in p5 you test $INC{'Test.pm'} | ||
| dduncan | in that case, I should probably fix my Perl 5 code, which does it using a symbol table test | ||
| autrijus | *nod* | ||
| dduncan | the only place in my code I ever said 'no strict' | ||
| autrijus | glad you can rid of that now | 00:16 | |
| dduncan | indeed ... I don't like having to turn strict off to do anything | ||
| maybe it is the same, but what I actually want to check is whether a package was already declared ... | 00:17 | ||
| eg, I want to see if myapp.pl already declared package Foo, and only if not, do I try to load Foo.pm | 00:18 | ||
| svnbot6 | r8074 | autrijus++ | * Test::Builder::Test - fixing parameter list syntax for defaults: | 00:22 | |
| r8074 | autrijus++ | (?$x = 1) is now just ($x = 1) | |||
| autrijus | oh... in that case you need a if ( $::{'Foo::'} ) { ... } in p5 | ||
| in p6 you can try | 00:23 | ||
| if ( ::Foo.isa(Package) ) { ... } | |||
| or something along that line | |||
| don't need strict either way. | |||
| dduncan | will try that ... what I had been doing in perl 5 is "no strict 'refs'; return defined %{$module_name . '::'};", but your way looks better | 00:24 | |
| autrijus | *nod* have fun | ||
| I'll take a look at die() | |||
| dduncan | thank you | ||
| fixing that will help a lot of programs | |||
| autrijus | :) | 00:26 | |
| autrijus goes back to Alias's talk | |||
| clkao | autrijus! | 00:42 | |
| autrijus | hey clkao | 00:44 | |
| stevan | heya autrijus | 01:33 | |
| autrijus | hey stevan! | ||
| stevan | how is .au? | ||
| autrijus | excellent wonderful weather | ||
| quite productive environment | 01:34 | ||
| stevan | very nice :) | ||
| stevan shoveled snow today | |||
| autrijus | the first open source conference I attended that py and pl people are actually friendly toward each other's languages | ||
| refreshingly | |||
| stevan | nice | ||
| I never disliked Python, I just like Perl better :) | 01:35 | ||
| autrijus: did you discuss with luqui about his new type system ideas? | |||
| autrijus | stevan: I did... his idea is basically that p6 should not have a fixed static type engine | ||
| although I think we'll still need a structure to collect annotations | |||
| and share them between modules | |||
| stevan | yes | ||
| yes | 01:36 | ||
| autrijus | but the idea of the other static analysis tools being pluggable | ||
| is sound | |||
| the problem is whether this should pass compilation by default: | |||
| 1 = 2.{3.[4]} | |||
| I still conjecture no | |||
| but would be yes under his scheme | |||
| stevan | yeah I agree | ||
| autrijus | which I'm afraid of | ||
| so maybe we still need a minimal typechecker. | |||
| stevan | I think the idea is very interesting, but my concern is we will end up with another strict.pm | 01:37 | |
| but it will be static.pm instead | |||
| autrijus | I think because strict is on by default, a minimal (perl5ish) static should be on by default as well. | ||
| stevan | yes | ||
| autrijus | so I think we are in vehement agreement | ||
| stevan | hell yeah :) | ||
| SamB | is that anything like heated agreement? | ||
| stevan | so my latest side venture has been to explore PIR and assess it's suitability as a metamodel host | 01:38 | |
| autrijus | oh! how goes? | ||
| (I may drop and resume within 20mins) | |||
| 0% battery since Alias required my laptop running Wx and PPI::Tester for demo | |||
| stevan | it goes. | ||
| autrijus | PPI::Tester absolutely rocks btw. we need that for pugs | ||
| stevan makes a note to look on CPAN | |||
| autrijus | AST visualizer | ||
| interactive ones too | |||
| stevan | oohhhh | ||
| very nice | 01:39 | ||
| autrijus | that doesn't bail on syntax errors | ||
| but rather point out where the error might be | |||
| and resume parsing | |||
| stevan | even better | ||
| autrijus | perfect for editor/refactorere/whatever | ||
| stevan | Alias++ | ||
| autrijus | Alias++ | ||
| stevan | so mostly right now I am fighting against my lack of PIR knowledge | 01:40 | |
| but I am getting the feel for Parrots existing object system | |||
| and I think I can get the metamodel to sit atop it fairly easily | |||
| once I can get things to compile without error that is ;) | 01:41 | ||
| mugwump | Hey guys... are co-routines spec'ed yet? | 02:01 | |
| or continuations? | 02:02 | ||
| autrijus | mugwump: there are two proposals in end of S17 | 02:03 | |
| not yet canonised | |||
| continuations is even more out there. | |||
| stevan: ooh, that would absolutely rock | |||
| stevan | autrijus: it will probably progress quite slowly though as $work is kind of busy lately | 02:04 | |
| autrijus | nod... I'll go ahead as originally planned on compiler-side MM bootstrap | 02:08 | |
| now we don't need to infer anything about MMD types, it should get much easier | |||
| stevan | :) | 02:09 | |
| autrijus | the mini inferencer in particular can go from the runcore. | ||
| meppl | gute nacht | ||
| autrijus | and turned into something manipulatable from perl6 side, I hope | ||
| stevan | hmm, so luke's (lack of a) type system means MMD gets pushed to runtime right? | ||
| autrijus | yeah... the idea is that if you turn off all staticness, types become assertions | 02:10 | |
| stevan | I always thought we would end up with that anyway | 02:11 | |
| autrijus | and we don't have type information for any "is lazy" chunks or any closures without explicit annotations | ||
| well, yes and no... sometimes runtime assertions isn't good enough | |||
| stevan | keeping everything so "open unless explicitly closed" | ||
| autrijus | but they are a start | ||
| yes | |||
| stevan | I will just get used to writing "use static;" at the top of all my files :) | 02:12 | |
| autrijus goes grab some sandwich | |||
| we'll see about that :) | |||
| stevan | very true | ||
| clkao | ddude, you need to eat better | ||
| stevan | I mean after all ,.. this is perl 6 :) | ||
| clkao: whats wrong with sandwiches?? | |||
| clkao | it's just not like a real meal | 02:13 | |
| and sounds too much like a british lunch | |||
| stevan | in america it is,.. but then again,... that america ;) | ||
| clkao | well, i think in britian as well. but. | ||
| stevan has been living on noodles a lot lately ,.. yum | 02:14 | ||
| autrijus | well they are tasty... by conf standards anyway | ||
| still doesn't trump YAPC::Taipei but pretty decent | 02:15 | ||
| stevan | soon at YAPC::Isreal - Turkish Coffee, Hummus and Yuval's famous flaming pizza | 02:16 | |
| autrijus | I look forward to more flaming pizza | ||
| stevan | ok, have to run, enjoy the conf autrijus :) | 02:17 | |
| stevan & | |||
| autrijus | have fun :) | ||
| svnbot6 | r8075 | autrijus++ | * "fail" should actually do something; put in a stub in Prim.hs | 02:20 | |
| r8075 | autrijus++ | before Prelude.pm's implementation gets finished | |||
| clkao | p | ||
| ~> | |||
| svnbot6 | r8076 | autrijus++ | * Fix postincrement_in_subscripts.t (noted by r0nny): | 02:26 | |
| r8076 | autrijus++ | Evaluation of index into array/hashes should not evaluate | |||
| r8076 | autrijus++ | the index expression inadvertently. | |||
| r8076 | autrijus++ | * Change the name of evalExpType and cxtOfExp into inferExpType | |||
| r8076 | autrijus++ | and inferExpCxt and move both into Eval.Var -- they are to be | |||
| r8076 | autrijus++ | factored out from the runtime into the compile time. | |||
| mugwump | I've been playing with Coro, which is coroutines for Perl 5... and it's very nice indeed | 02:35 | |
| it has a great mechanism for communicating usage problems, it uses SIGSEGV | 02:36 | ||
| autrijus | excellent | 02:39 | |
| autrijus ponders "segfault the ultimate" | |||
| mugwump | Yes! Higher order Perl 5! | ||
| Coro wouldn't need much to make it conform to that API in S17, most of it anyway | 02:43 | ||
| dduncan | I could be imagining it, but Pugs.Run seems to be taking a lot longer to compile than usual | 02:48 | |
| autrijus | oh? hm | 02:49 | |
| Khisanth | dduncan: more time to fail than compile ;) | 02:52 | |
| dduncan | its done now | 02:56 | |
| it seems that make smoke is much slower than normal too ... currently sitting on ext/FA-DFA/t/DFA.t | 03:20 | ||
| autrijus | mm, hopefully not an infinite loop | 03:21 | |
| dduncan | then when I kill it with ctrl-c, it says: | ||
| ^CCould not run yaml harness: No such file or directory at util/run-smoke.pl line 58. | |||
| make: *** [smoke-pugs] Error 2 | |||
| anyway, I've noticed that several ext/ have been failing for awhile, and I think I can fix some ... they seem to use old argument syntax | 03:22 | ||
| autrijus | yup, that'd be appreciated | ||
| dduncan | it also occurs to me it might be useful at times to have a global just-try-to-compile-it test | 03:23 | |
| sort of like my first test in Rosetta-Incubator, but for all the others too | 03:24 | ||
| autrijus | 01-loat.t is supposed to do that | ||
| load, even | |||
| for each module | |||
| of course only a few has that defined | |||
| dduncan | the point is that one could see quickly that modules meet that requirement, before trying to run all their execution tests | ||
| autrijus | find ext -name '*.pm' -exec ./pugs -c {} ';' | 03:25 | |
| should do that for *nix | |||
| dduncan | will try ... | 03:26 | |
| autrijus | maybe make it a make target? (or rewrite it in find2perl) | ||
| dduncan | could be a good idea | 03:27 | |
| autrijus | or write a t/ext/ext.t (or merge it with t/examples/example.t, or store it into t/examples) | 03:28 | |
| which does a glob for all module files and runs pugs -c on each | |||
| that can conceivably go into pugsrun as well -- improvise :) | |||
| dduncan | I'm running that 'find' line now ... seems to be working | ||
| autrijus | dduncan: throwing out objects to $! should work now | 04:09 | |
| about to commit | |||
| dduncan | thank you | ||
| I'm also nearly done a compile-test utility ... basically a copy of your one-liner that looks in blib6/lib instead | 04:10 | ||
| autrijus | cool! | ||
| dduncan | I just have to add a use-lib line or something | ||
| autrijus | nod | ||
| ?eval try { die %*ENV }; $!.ref | 04:17 | ||
|
04:17
evalbot_8073 is now known as evalbot_8076
|
|||
| evalbot_8076 | ::Str | 04:17 | |
| dduncan | ?eval try { die Object.new(); } $!.ref; | 04:19 | |
| evalbot_8076 | Error: unexpected "$" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
| dduncan | ?eval try { die Object.new(); }; $!.ref; | 04:21 | |
| evalbot_8076 | ::Str | ||
| autrijus | oh of course, I need to fix die() and fail() also | 04:24 | |
| 8077 is not enough... 8078 coming right up | 04:25 | ||
| svnbot6 | r8077 | autrijus++ | * &die and &fail now takes objects; they get stored into $! | 04:27 | |
| r8077 | autrijus++ | as objects, not strings, inside a try {} block. | |||
| autrijus | curiously, in p5 | ||
| eval { die $x, $y; }; | |||
| stringifies and concats them | |||
| whilst | |||
| eval { die $x } | |||
| preserves the ref | |||
| I don't think we need to emulate that, do we | |||
| dduncan: r8078 is in and should Just Work (tm) | 04:34 | ||
| dduncan | ?eval try { die Object.new(); }; $!.ref; | 04:35 | |
| evalbot_8076 | ::Str | ||
| dduncan | soon... | ||
| svnbot6 | r8078 | autrijus++ | * fix die() and fail() for real so they take objects. | 04:38 | |
| dduncan brb | 04:40 | ||
| autrijus hacked unicode support into PPI... no idea why I'm doing this though | 05:32 | ||
| maybe for Perl5->PIL someday, maybe ;) | |||
| svnbot6 | r8079 | autrijus++ | * throwing out single objects should impose object context. | 05:51 | |
| gaal | hey autrijus | 06:04 | |
| doesn't fail clash with Test::fail? what's been decided on that? | |||
| dduncan | it shouldn't if you say Test::fail() rather than fail() | 06:05 | |
| gaal | har. that's 8000 s///s | ||
| well, one s///, but 8000 applications :-( | |||
| dduncan | this change is still very little work with a script and/or good multi-file s+r text editor | 06:06 | |
| gaal | sure. but I don't like the asymmetry: | 06:07 | |
| ok(...) is(...) pass(...) Test::fail(... | |||
| dduncan | maybe the functions in Test should be renamed, then | ||
| oh, oh ... | |||
| multi-methods! | 06:08 | ||
| if the two have different signitures, no problem | |||
| gaal | indeed. but it has a legacy. So there the question came up a while ago if perhaps the it's the fail builtin should be renamed | ||
| dduncan | perl 6 is already changing some legacy things ... what's one more? | ||
| the perl 5 Test modules could gain whatever the perl 6 fail() is renamed to as an alias, for cross-language consistency | 06:09 | ||
| gaal | true, but still potentially confusing. | ||
| The multi-method workaround is terrible, IMHO | 06:10 | ||
| dduncan | yes it is | ||
| gaal | it's being used as a workaround rathert than an expression of polymorphism. | ||
| so we're back to "this town ain't big enough for the two of us", and the question is, which one gets renamed, and what name does it get. | 06:11 | ||
| dduncan | in any event, I think that if either Test or Perl 6 had to become more ugly to not get in the way of the other, I say Test should go ... Perl 6 itself should be a priority for elegance | ||
| gaal | a bikeshed question of some visibility. | ||
| dduncan | question ... | ||
| do you think anyone would use the fail() built-in in the same scope as the Test one? | 06:12 | ||
| gaal | sure! | ||
| it could happen in tests. | |||
| dduncan | okay, then, overriding isn't good then | ||
| locally | |||
| gaal | I think you're right about giving the language priority. | ||
| dduncan | in any event, generally, single-word functions should be used mainly by the language itself, and modules should have multi-word functions ... then its easy to tell the difference and we avoid such collisions | 06:13 | |
| objects are different | |||
| gaal | nonono, tests are so important they really want to be exportable goodies like ok() etc. | ||
| dduncan | but exported user def functions are ideally multi word | 06:14 | |
| gaal | dduncan: nobody would write tests if they had to say expect_this_value(...) | ||
| dduncan | is it so bad for it to be, eg, test_ok(), test_is(), test_pass(), test_fail(), etc? | ||
| gaal | yes :) | ||
| test_ is like Test::, only makes me think I'm coding in c | 06:15 | ||
| dduncan | well, then a good solution is ... | ||
| gaal | (which, these days, I actually sometimes am, but that only makes me grateful there's Perl in the world) | ||
| dduncan | take advantage of the english language's propensity for a lot of synonyms | ||
| gaal | yes. | ||
| dduncan | use one synonym for the built-in, and another for the Test | ||
| so then the question is, who gets fail() | 06:16 | ||
| gaal | stumble("oh no! this test didn't pass!") | ||
| autrijus | I think Test.pm should give way. A new verb, say flunk(), should be used. | ||
| gaal | flunk++ :-) | ||
| dduncan | flunk++ | ||
| obra | heh | ||
| webmind | ... :) | 06:17 | |
| dduncan | so who should we run this by before we go and change it? | ||
| gaal | p6-l. I'm writing up the email. | ||
| dduncan | I look forward to it | ||
| autrijus | note that fail() is not specced anywhere. | 06:19 | |
| gaal | you mean p6 fail? it is mentioned in S... uh, something. :-) | ||
| autrijus | the only place it's mentioned is S05 | ||
| gaal | 6 maybe. | ||
| autrijus | implicitly | ||
| gaal | 5 !? that's a surprise. | ||
| autrijus | there's no mention of fail in 6. | 06:20 | |
| implicit mention in A12. | |||
| stub in S29. | |||
| so it's... not exceedingly well specced | |||
| gaal | I'm pretty sure I did see it in a synopsis somewhere :( | ||
| autrijus | oh wait, the new S4 mentions it. | 06:21 | |
| my bad | |||
| should've updated P6::Bible before speaking | |||
| gaal | you flunked the grep | ||
| autrijus | lol | 06:22 | |
| gaal | .oO(MMD would not even have worked as a workaround in this case) |
06:26 | |
| autrijus | yup. you need something far more evil. | 06:28 | |
| also, fail() isn't that popular in tests anyway. | 06:29 | ||
| in the spirit of jfdi I went ahead and replaced fail() with flunk()... r8080. | 06:32 | ||
| gaal | ha! | ||
| autrijus | dduncan++ gaal++ # vehement agreement | 06:33 | |
| mm, keynote coming up tomorrow wrt Pugs. | |||
| dduncan | oh, autrijus ... | 06:34 | |
| autrijus | dduncan: yes? | ||
| dduncan | I still have to trace it but ... | ||
| while your last fix seems to have corrected the problem, something more subtle has come up, that I'm trying to trace | |||
| autrijus | ?eval try { die Object.new }; $!.ref | 06:35 | |
|
06:35
evalbot_8076 is now known as evalbot_8080
|
|||
| evalbot_8080 | ::Object | 06:35 | |
| svnbot6 | r8080 | autrijus++ | * to not conflict with keyword "fail" (now specced in S04), | ||
| r8080 | autrijus++ | Test.pm's fail() is renamed to flunk(). | |||
| dduncan | that part's fine | ||
| there seems to be a problem where something is copied by reference rather than by value | |||
| autrijus | k... test case appreciated | 06:36 | |
| (I know you're tracing it :)) | |||
| dduncan | after doing something else that could set $!, a variable copied from $! loses its value | ||
| I think that's what's happening | |||
| autrijus | mmm | 06:37 | |
| dduncan | I mean, I say after the catch, $foo = $!, then $foo contains the object, but some time later, $foo becomes undef | ||
| that undeffing doesn't happen if $foo was set as $foo = Obj.new() | 06:38 | ||
| gaal | I should really get back to pragmas... | ||
| dduncan | I think its acting like someone said $foo := $! | ||
| gaal | But I should also really get to the office :/ bye & | ||
| autrijus | enjoy, gaal | 06:39 | |
| dduncan: nod... minimal example greatly appreciated | |||
| dduncan | but are method arguments supposed to be aliases for the original | ||
| ? | |||
| autrijus | yes, they are | ||
| they are bound using := semantic | |||
| unless you do "is copy" | |||
| dduncan | maybe this is correct then | ||
| but what I actually want is for the two to be references to the same value | 06:40 | ||
| autrijus | (problem is that "is copy" is not yet supported.) | ||
| nod... make the first one an explicit ref then | |||
| just like in p5 | |||
| dduncan | like if you said $bar = Obj.new(); $foo = $bar; $bar = undef; | ||
| $foo still has the object | |||
| that's how I expected arguments to behave | |||
| autrijus | yes, and "is copy" is "$foo = $bar" | ||
| args in p6 behaves like $_[0] | 06:41 | ||
| by default | |||
| except they cannot be assigned to | |||
| dduncan | so you're saying that 'is copy' is just a shallow copy, not a deep copy? | ||
| I guess so | |||
| autrijus | yup, is copy is just a shallow copy -- FETCH then STORE | ||
| need .clone for deepcopies | |||
| dduncan | I can't help thinking that this may be counter-intuitive | 06:42 | |
| otoh, they are read-only by default, right? | |||
| autrijus | yes. | ||
| I think it's sane semantics | |||
| dduncan | I'll add an is-copy then | 06:43 | |
| autrijus | as that removes function call overhead | ||
| okay, and I'll try adding support for "is copy" for you right now :) | |||
| dduncan | the reason I considered this counter-intuitive is that, while the argument is read-only from the invoked sub's perspective, the value can still change out from under it if the caller handed it a global or env ish variable like $! in the first place ... that's what seems counter intuitive ... | 06:44 | |
| to protect against this, one would have to put a whole bunch of is-copy in their code even when they are never going to change the value | 06:45 | ||
| conceptually, you only use is-copy if you're going to modify the variable | |||
| the problem here sort of evokes the kinds of problems you normally just have with threads, where something can magically change on you | 06:46 | ||
| autrijus | I think "is copy" actually should work jsut as is for you | ||
| further I think the real problem here is global vars. | |||
| they are Evil(tm). | |||
| dduncan | yes | ||
| nothingmuch | morning | ||
| autrijus | nothingmuch: hi | ||
| dduncan | I think that this problem can be fixed if $! was lexical like, where each scope has their own | 06:47 | |
| nothingmuch | aye! | ||
| dduncan | that way, a try {} in the called sub won't change the $! of the caller sub | ||
| autrijus | I think $! being an environmental lexical | ||
| instead of a global | |||
| dduncan | if *that* was fixed, then the is-copy we're discussing won't be necessary | ||
| autrijus | makes much more sense. | ||
| dduncan | yes | ||
| autrijus | in newest S02, lwall put a "Conjectural:" to that idea | 06:48 | |
| dduncan | but as I recall, each call scope has a separate environment of sorts | ||
| autrijus | if we can argue him into removing the "Conjectural:", yay. | ||
| autrijus nudges dduncan into doing a minimal p6l post demonstrating why global $! (and $/) is a bad bad idea | |||
| dduncan | meanwhile, if I end up using is-copy, or a manual $foo = $foo meanwhile, I'm putting a big comment by it saying this $! thing is bad | ||
| I think I will | 06:49 | ||
| autrijus | nod... but turning it into a p6l post will make more sense | ||
| dduncan | meanwhile, don't feel you need to do is-copy for my sake, for this issue | ||
| autrijus | as I'm very happy to make perl6 to have zero "register" variables. | ||
| dduncan | fyi, I think that is-copy *may* in fact already be working ... at least, I used it somewhere else | ||
| autrijus | dduncan: I discovered "is copy" is already there | 06:50 | |
| it's just accidentally also made it writable. | |||
| dduncan | see what I said before you said that! | ||
| autrijus | :D | ||
| dduncan | my interpolate_vars_into_template_text used it for awhile | ||
| to get around that it barfed when I tried to do a s/// on an hash arg value | |||
| but there, is-copy made sense | 06:51 | ||
| will write the p6l post now ... | |||
| autrijus | danke! | 06:52 | |
| autrijus conjecture that the register variables are the singlemost worst idea in perl5 :) | 06:54 | ||
| GeJ | g'dday mates | 06:55 | |
| autrijus | greetings GeJ | ||
| GeJ | Hello Mr. A. How was the flight? | ||
| autrijus | the flight was okay; I slept most of the way. then slept some 13 hours. then some 7 hours after flying to melbourne. | 06:56 | |
| last-hour deployment of $job on multiple client sites can do that to a person :) | 06:57 | ||
| GeJ | I can see that. Well, $job is done. Get some rest and enjoy the summer :) | 06:58 | |
| autrijus | indeed :) the weather is lovely. | ||
| and I've not received emergency cell phone calls, so I assume it worked out well | |||
| autrijus praises cc2e checklists for catching a lot of potential errors | 06:59 | ||
| GeJ | Well, I was in the area a few weeks ago. I can trust you on the weather. Now it's all cold and snow. damn... | 07:00 | |
| autrijus | the first day of conference is wonderful as well... but I think it's closing in a few mins. I'll log on back after dinner | ||
| yeah... I shudder when I think about the Taipei weather I'm going to return to. | |||
| gaal++ # "dropout cuteness"... I almost lol'ed which would be in appropriate in the conference room | 07:02 | ||
| bbl... dinner & | 07:10 | ||
| gaal | d'oh, on the cab I realized I made a silly syntax error; that should have been ++<< <dduncan autrijus> | 07:32 | |
| dduncan | hello | 07:33 | |
| the email looked fine to me | |||
| gaal | yeah but [++] is wrong :-) | ||
| dduncan | p6l message away ... | 07:47 | |
| ... and returned ... autrijus and gaal and others, I welcome any feedback or support on p6l | 07:57 | ||
| but I'll have to read it tomorrow because I'm about to bed | |||
| r0nny | moin | 08:18 | |
| GeJ | servus(s)? | 08:19 | |
| GeJ in Germany for over a year and still doesn't know how to write this properly. | |||
| Well, it's too early anyway | |||
| r0nny | lol | 08:31 | |
| r0nny hands GeJ a manaual about the irc actions, and the holy book of servus | |||
| GeJ | thanks | 08:33 | |
| meppl | guten morgen | 09:08 | |
| dduncan | good morning | ||
| and now I will to bed | |||
| r0nny | yo | 10:53 | |
| i got a problem with m:P%/foo/ - pux tessl it didnt expect the m | |||
| eh pugs | |||
| rafl | Please paste something. | 10:56 | |
| r0nny | darn | ||
| found where i was wrong | |||
| bad typo again | |||
| btw - is there something like popen ? | 10:59 | ||
| rafl | Well, fork and invoke a shell and you have a popen. | 11:00 | |
| r0nny | hmm | ||
| guess i will use `foo` | 11:01 | ||
| rafl | But popen kind of sucks because its read-only or write-only. | ||
| Well, that doesn't do what popen does. | |||
| r0nny | i need only the purput | ||
| output | |||
| rafl | Yes. But if the output takes a while to be generated or includes some progress information it's not good to use `foo` because you could better read async and keep your application responsive | 11:02 | |
| r0nny | just calling find on a simple directory structure | 11:03 | |
| rafl | We have a File::Find module. | 11:04 | |
| r0nny | atm its not usable for my purpose | 11:05 | |
| darn | 11:12 | ||
| why is abs2real from File::Spec unknown :/ | |||
| rafl | I guess because you call it the wrong way. | 11:13 | |
| The current File::Spec module is cruft. | 11:14 | ||
| You're welcome to rewrite it in a sane way. | |||
| r0nny | how to call it correct? | 11:16 | |
| rafl | use File::Spec; | 11:30 | |
| catfile('foo', 'bar'); | 11:31 | ||
| No File::Spec.catfile or whatever you might expect. | |||
| You can't avoid to import all the stuff into your namespace. | |||
| r0nny | i did use File::Spec, and then called abs2rel | 11:34 | |
| but it doesnt want to run it | 11:35 | ||
| Juerd_ | rafl: Sure you can. | 11:52 | |
| svnbot6 | r8081 | kane++ | * forgot to add jib.pm as a placeholder for version etc | 12:34 | |
| r8081 | kane++ | * add a note about binary packages in the comment | |||
| r0nny | re | 12:49 | |
| fglock | stevan: how about a "pil2-pir" backend? | 12:50 | |
| with some parts written in p6, and some in pir - so that it could run itself some day | 12:53 | ||
| r0nny | i found a problem with exports | 12:57 | |
| for some reason each function is used is only exported once - so if i use it in 2 independ modules it happens, the stuff breaks everything since 1 module cant access | 12:58 | ||
| nemux | hi all | 13:40 | |
| r0nny | sub fakk(Int $i){[*] 1..$i;};fakk(7) | 13:51 | |
| ?eval sub fakk(Int $i){[*] 1..$i;};fakk(7) | 13:52 | ||
|
13:52
evalbot_8080 is now known as evalbot_8081
|
|||
| evalbot_8081 | 5040 | 13:52 | |
| robkinyon | ?eval sub fakk(Int $i){[*] 1..$i;};fakk(7) | 14:20 | |
| evalbot_8081 | 5040 | ||
| r0nny | try it with 700 ;P | 14:32 | |
| rafl want's a new pugs release. The collection of patches against 6.2.10 that I use in the Debian package gets unmaintainable.. | 15:50 | ||
|
15:55
bradb_ is now known as bradb
|
|||
| r0nny | re | 18:18 | |
| ?eval sub fob(Int $i){[+] 1..$i;};fob(2000) | 18:20 | ||
| evalbot_8081 | 2001000 | ||
| r0nny | ?eval sub fob(Int $i){[+] 1..$i;};fob(3000) | 18:21 | |
| evalbot_8081 | 4501500 | ||
| Limbic_Region | salutations diotalevi | 19:03 | |
| did a GHC port of NetBSD become available on your architecture? | 19:04 | ||
| errr - did an NetBSD port of GHC ... | |||
| nothingmuch | hola diotalevi^ | 19:14 | |
| Limbic_Region | ?eval my @list = 1...; @list[42] | 19:16 | |
| evalbot_8081 | pugs: out of memory (requested 1048576 bytes) | ||
| Limbic_Region | oh - so that's not fixed yet huh | ||
| wolverian | ?eval (1...)[42] | 19:22 | |
| evalbot_8081 | \43 | ||
| wolverian | heh. | ||
| Limbic_Region | ?eval my @list = 1 .. Inf; @list[42] | 19:23 | |
| evalbot_8081 | pugs: out of memory (requested 1048576 bytes) | ||
| SamB | boy, that isn't a whole lot of memory for a list from 1 .. Inf | 19:24 | |
| r0nny | yo | 19:39 | |
| ?eval sub lop(Int $i){[**] 1..$i;};fob(4) | 19:40 | ||
| evalbot_8081 | Error: No such method: "&fob" | ||
| r0nny | ?eval sub lop(Int $i){[**] 1..$i;};lob(4) | ||
| evalbot_8081 | Error: No such method: "&lob" | ||
| r0nny | ?eval sub lop(Int $i){[**] 1..$i;};lop(4) | ||
| evalbot_8081 | 1.0 | ||
| r0nny | ?eval sub lop(Int $i){[**] 1..$i;};lop(5) | ||
| evalbot_8081 | 1.0 | ||
| r0nny | ?eval sub lop(Int $i){[**] 2..$i;};lop(5) | ||
| evalbot_8081 | Inf | ||
| r0nny | ?eval sub lop(Int $i){[**] 2..$i;};lop(2) | ||
| evalbot_8081 | 2 | ||
| r0nny | ?eval sub lop(Int $i){[**] 2..$i;};lop(3) | ||
| evalbot_8081 | 8/1 | ||
| r0nny | ?eval sub lop(int $i){[**] 2..$i;};lop(3) | 19:41 | |
| evalbot_8081 | 8/1 | ||
| r0nny | darn it | ||
| fglock | does m:/<space>/ match newlines? | 19:51 | |
| I'm trying to parse PIL2 | |||
|
19:58
_SamB_ is now known as SamB
|
|||
| pd | anyone know if the PIR backend in pugs is a bit dated? | 20:06 | |
|
20:45
comet^ is now known as comet,
comet is now known as comet^
|
|||
| fglock | I'm getting this error: 'pugs: *** No such sub: "&rx_"' while using 'pugs -Cxxx', but no error in plain pugs. Maybe rules are not implemented in PIL/PIL2 yet? | 20:46 | |
| autrijus | fglock: weird... it all worksforme | 21:56 | |
| svnbot6 | r8082 | autrijus++ | * zip(@a; @b; @c) now works as specced. | ||
| autrijus | did you build with precompiled prelude? | ||
| pd: yes it is | |||
| I need to update it to 0.4.0 syntax | 21:57 | ||
| (and maybe call it 6.2.11) | |||
| r0nny | yo | ||
| autrijus | hey r0nny | 21:58 | |
| the [++$a] bug is fixed | |||
| obra | hey autrijus | ||
| r0nny | is there a need way, to join a special atribute of all elements f a list | ||
| neat | |||
| autrijus | hi obra | ||
| @list.map{.attr}.join | 21:59 | ||
| r0nny | neat! | 22:01 | |
| ?eval my $x=0;my $foo=1..9;$foo[++$x] | 22:02 | ||
| evalbot_8081 | \2 | ||
| r0nny | ?eval my $x=0;my $foo=1..9;$foo[$x++] | ||
| evalbot_8081 | \1 | ||
| r0nny | sweet | ||
| pd | thanks, autrijus | 22:04 | |
| autrijus | er, I mean @list.map:{.attr}.join | ||
| pd: np... new_pad is gone from parrot | 22:05 | ||
| so we need to use the new padspec | |||
| pd | aha, that would explain a lot of it. | ||
| autrijus | I can't complain, it's me who demanded their removal months ago ;) | ||
| pd | that's what you get! :) | 22:06 | |
| autrijus | now I gotta deal with the consequences | ||
| pd | so it's all _lex etc. as per www.parrotcode.org/docs/pdd/pdd20_l..._vars.html eh? | 22:09 | |
| autrijus | aye | ||
| pd | thanks, that's good to know. I haven't been keeping up lately. :) | ||
| autrijus | thank $deity... as it's chip's design, I guess $deity := Bob | ||
| pd was just reading last night about Dan doing his post-mortem, like, a month ago or something | 22:10 | ||
| autrijus | *nod* | 22:11 | |
| leo++ chip++ # moving forward | 22:13 | ||
| pd | let's hear it for that | ||
| leo | hi autrijus - and thanks | ||
| autrijus | hi leo :) | 22:14 | |
| pd | speak of the leo | ||
| autrijus | congrats on 0.4.0 -- it's gotta take some time to catch up with the fact that new_pad is gone, but it'd be time well spent | ||
| leo | autrijus: please forward my greetings to the Australians from Austria (the other .au w/o kangoroohs ;) | 22:15 | |
| integral | one question on pads: I see you can index them by name or by number; does parrot help with allocating numbers against variable names? | ||
| autrijus | leo: will do :) | 22:17 | |
| leo | integral: there is no index by number | 22:19 | |
| integral | oh :-/ | ||
| autrijus | integral: it's a level of indirection via LexInfo | ||
| but the translation iirc happens at PIR compile time | 22:20 | ||
| so it's still a constant lookup at runtime, if I'm not mistaken -- maybe I am | |||
| leo | or just use registers in the sub, where the .lex is define | ||
| integral | oh :-/ I was reading docs/compiler_faq.pod the other day | ||
| autrijus | that too | ||
| integral | that doesn't spec out the new design that's been implemented? | ||
| autrijus | it mentioned new_pad | 22:21 | |
| which makes it automatically wrong and obsolete | |||
| integral | that'd gone? Is there a spec somewhere else then? | ||
| *'s | |||
| autrijus | pdd20 I think | ||
| # www.parrotcode.org/docs/pdd/pdd20_l..._vars.html | |||
| integral | ah | ||
| autrijus | I'll remove the misleading parts. | 22:23 | |
| integral | autrijus++ | 22:24 | |
| mugwump waves at autrijus from across the ditch | 22:25 | ||
| autrijus | yo mugwump | 22:27 | |
| done | 22:28 | ||
| dduncan | well, my p6l list post on $! got some responses | 22:37 | |
| autrijus | dduncan: yeah, and I agree with lwall that the "env" treatment = best | ||
| dduncan | so how difficult would this be to implement ... if it is considered official? | 22:38 | |
| autrijus | dduncan: trivial actually | 22:42 | |
| dduncan: so maybe I take it as official and give it a try today | 22:43 | ||