-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 |