Check your feather email | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com Set by TreyHarris on 9 October 2006. |
|||
00:00
P02 joined
|
|||
TimToady | yow, it's not just the test suite that's slower. After slurping in and evaling my 7M yaml file, I can dispatch method calls at the astonishing rate of approximately one per second using 95% of the CPU. Ouch! | 00:10 | |
and these are ordinary SMD calls, nothing fancy. | |||
00:11
Odin- joined
|
|||
TreyHarris | TimToady: not "blaming Linux", but my smoke durations have remained very consistent with the number of tests for the past week... | 00:12 | |
TimToady | which version of ghc? | ||
I think it's almost certainly a GC issue. | 00:13 | ||
TreyHarris | The Glorious Glasgow Haskell Compilation System, version 6.5.20060608 | ||
TimToady | 6.4.2 here | ||
I wonder how long it takes to do a GC scan on a live set of 82 megabytes... | 00:14 | ||
no, I'm wrong, it's 820 megabytes | |||
TreyHarris | ahhh... yes, while you were away a couple weeks ago, audreyt was urging people to move to 6.5 with the carrot of decent performance, and with ominous warnings of the stick of ENOWORK on 6.4 coming after this release... | 00:15 | |
TimToady | actually, it says. 0.82 seconds. | 00:16 | |
can't read. 0.87 seconds | |||
TreyHarris | TimToady: regarding your penultimate syn commit (foo <<*>>), if foo is predeclared as a multi with both 0- and 1-ariness, what happens? | 00:17 | |
TimToady | always parses looking for an arg (which might bounce off of a ; or ] or whatever) | 00:18 | |
but it won't bounce off of anything that looks like a term. | |||
and <<*>> looks like a term. | 00:19 | ||
SamB | ... wouldn't it make more sense to wait for the imminent 6.6? | ||
TimToady | I've been trying to hold out for 6.6 to show up so maybe an rpm will happen via yum. | ||
TreyHarris | ok, so in that case "foo <<*>> @ary" will syntax error, not run foo() and hypermultiply by @ary. | ||
TimToady | yes | ||
the term/term syntax error is very useful for self-clocking | 00:20 | ||
TreyHarris | *nod* | ||
heh... S03.pod just passed whatever point less uses to determine binary-vs-textness and now warns me: '"S03.pod" may be a binary file. See it anyway?' | |||
TimToady | *Linux* doesn't seem to care. :P | 00:22 | |
TreyHarris grins. | |||
I'll just add -f to me $LESS | |||
00:26
nekokak joined
00:36
Qiang_ joined
|
|||
TimToady | @tell b_jonas a non-unary sigil is just an ordinary sigil, which isn't an operator. :) | 00:40 | |
lambdabot | Consider it noted. | ||
00:47
markstos joined
00:49
lollan joined
00:53
lollan joined
01:05
weinig|food is now known as weinig
|
|||
TimToady | I give up. Downloading the shiny new 6.6 of 10/10... | 01:07 | |
buu | Hrm. | 01:13 | |
I still can't think of anything useful to do with this repl. | 01:14 | ||
ajs_home | TreyHarris: less8() { LESSCHARSET=utf-8 less $* } is a handy shell function | 01:22 | |
Those of you who tend to have an "m" alias could call it m8 at the risk of trying to pronounce it ;) | 01:23 | ||
01:25
kane-xs joined
|
|||
TreyHarris | ajs_home: ah, thanks. i've been using Unix for almost 20 years and I learned on line-oriented commands (because i didn't have a terminal emulator and instead wrote a BASIC program that PEEKed and POKEed the modem), but I've only learned *anything* about locales and charsets in working with Pugs.... | 01:28 | |
guess more American/anglophone imperialism... | |||
avar uses en_US.UTF-8 | 01:32 | ||
01:33
weinig is now known as weinig|bbl
01:35
mako132_ joined
|
|||
TimToady does too | 01:36 | ||
works great on *Linux*. :) | 01:37 | ||
svnbot6 | r14238 | audreyt++ | * PCR Pugs::Grammar::Base - Make <prior> non-reentrant to avoid deep recursion | 01:40 | |
r14238 | audreyt++ | errors. This workaround is needed because PCR's interpretation of <prior> is | |||
r14238 | audreyt++ | literal, not interpolative: | |||
r14238 | audreyt++ | /x/; | |||
r14238 | audreyt++ | /<?prior><?prior>/ # matches /xx/ | |||
r14238 | audreyt++ | /<?prior><?prior>/ # matches /<?prior><?prior><?prior><?prior>/ | |||
r14238 | audreyt++ | # instead of /xxxx/, and hence recursive | |||
r14238 | audreyt++ | The test was favoring the /xxxx/ interpretation, though, so this workaround | |||
r14238 | audreyt++ | is still bogus. | |||
01:41
kane-xs joined
|
|||
TimToady | seems a bit odd that (using 6.6 now) it's trying to compile the Parrot interface when I don't think I'm embedding Parrot... | 01:43 | |
pasteling | "TimToady" at 71.139.13.112 pasted "build failure under shiny new 6.6" (36 lines, 1.4K) at sial.org/pbot/20333 | 01:44 | |
audreyt | Pugs.Embed.Parrot gets compiled no matter what the flag... | ||
lambdabot | audreyt: You have 3 new messages. '/msg lambdabot @messages' to read them. | ||
TimToady | audreyt: see paste | 01:45 | |
audreyt | is this after clean? | ||
TimToady | you bet | ||
just upgraded parrot and recompiled that after I got the error. should I realclean again? | 01:46 | ||
audreyt | weird. do you still have 6.4 around somewhere? | ||
TimToady | nope, blew it away. | ||
audreyt | it looks like the _stub.c is written by 6.4 | ||
so maybe clean didn't remove _stub.c, or something | |||
TimToady | didn't see it under svn status | ||
audreyt | hrmph. wait, _stub is only there iff PUGS_EMBED is set to include parrot | 01:47 | |
TimToady | don't have that set. | ||
audreyt | s/only// # redundant | ||
ok, gimme a sec. | |||
TimToady | weird, why didn't svn status list it, I wonder... | 01:49 | |
audreyt | maybe it's put to svn:ignore | 01:51 | |
does it still break after you rm _stub. ? | |||
TimToady | hang on | ||
no, it's good now. thanks. | 01:52 | ||
stepping out for a bit while machine is on autosmoke. :) | |||
audreyt | np, I'll add it to clean targets | 01:53 | |
TimToady | see also latest S03 updates if you're bored. | ||
afk & | |||
audreyt | k, thanks | 01:54 | |
svnbot6 | r14239 | audreyt++ | * Makefile.PL - Add all the *_stub.* to cleanfiles, | 01:56 | |
r14239 | audreyt++ | after TimToady++'s report that Parrot_stub.[ch] wasn't | |||
r14239 | audreyt++ | removed by clean. | |||
audreyt | wow, the nbsp change in the synopses made Terminal.app quite unhappy... | 01:58 | |
audreyt suspects ambiguous east asian width | |||
right, it's EastAsianWidth again, my #1 pet peeve against Unicode.org... | 01:59 | ||
01:59
putter joined
|
|||
SamB doesn't see why it should be just EastAsian, either | 02:00 | ||
TreyHarris | audreyt: i have the same problem... it's bad with pine (and actually mutt too)... in message-reading mode it's fine so long as the charset is right... but when someone's name or the subject line has a wide character in it, that line gets drawn with one too many characters, messing up the rest of the visual | ||
SamB: I dunno, when i'm in latin-1, greek characters are the same width as western characters, but when i'm in UTF-8 they're double-width | 02:02 | ||
audreyt | oy, >>+>>. | ||
suddenly we have three more hyper variants to support | |||
but, good design call :) | 02:03 | ||
TreyHarris | audreyt: you're too agreeable, according to TimToady :) | ||
well, he didn't say *too* agreeable.... | |||
putter | the topic of Moose performance came up at tonight's local perlmongers, which reminded me of a question I wanted to ask about types. | 02:10 | |
audreyt | I agree he didn't say that... | 02:11 | |
putter | when one specifies the type of say an argument, one can imagine it having various roles. it may be fundamental to behavior (eg, in mmd). | 02:12 | |
audreyt | I also agree that I'm very agreeable | ||
TreyHarris grins and decommutes & | |||
audreyt | in East Asia being agreeable is considered a Good Thing (tm) anyway... | ||
putter | it might be advice to the compiler. something the compiler might not have been able to work out on its own. the advice can be a hint ("I think this is true, but you should double check"), or a taking of responsibility ("assume this, if it turns out to be false, I deservedly lose"). it | 02:13 | |
it may also be a request for checks on anything that can't be proven. where sometimes one wants to toggle a section of code between "fast" and "safe". | 02:14 | ||
so when one specifies a type, one may mean very different things. | 02:15 | ||
one might think "help me quickly debug" and "let me help you be fast", and then be surprised with an order-of-magnitude performance hit from type checking. | 02:16 | ||
so the question is... are there any thoughts on teasing apart these intents in perl6 | 02:17 | ||
? | |||
audreyt | sure. the idea is that if you have | ||
pugs -O ... | |||
then the compiler performs early binding | |||
by assuming all class/types essentially closed (unless explicitly requested open) | |||
and then there's no perf hit on assertions | 02:18 | ||
because they already must conform (that's what early binding gives you) | |||
outside -O, as you said, a class may be augmented in eval'' | |||
in which case all the typechecks are essentially (lifted to the outermost block level) assertions | |||
and will incur perf hits | 02:19 | ||
02:19
markstos joined
|
|||
audreyt | -O2 may also propagate said type information using H-M style type inference. | 02:19 | |
skew's work at www.ugcs.caltech.edu/~brandon/index.html does precisely that. | |||
lambdabot | Title: Brandon's Stuff, tinyurl.com/kf8lf | ||
audreyt | see the "Gradual Typing" links from that page. | ||
also, if you use subsets with runtime checkblocks, you _know_ you're getting a perf hit no matter what the optimization level | 02:20 | ||
subset Odd of Int where { $_ % 2 } | |||
so that case is treated outside the normal early binding optimization | 02:21 | ||
</explanation> | |||
putter | any "fast" vs "safe" control? or is one stuck in typecheck land? | ||
audreyt | the -O is fast and safe | 02:22 | |
because it prevents you from deservedly losing | |||
i.e. you can't augment the class anymore | 02:23 | ||
wolverian | (well, you lose fast) | ||
audreyt | and I think app-level flags makes a bit more sense than microhints | ||
much easier, too | |||
if you really want slow safe assertions, use PRE blocks under -O | 02:24 | ||
or where clauses and subtypes under -O | |||
*subsets | |||
wolverian | any clue what's the default in 6.0.0? | ||
putter | "if you can close the universe, you can be fast and safe". "if you can't close the universe..." you can't avoid slow? app-level flags? | ||
audreyt | wolverian: the default is Any, unoptimized, open | ||
putter: app-level flags means "-O" on the command line or "use optimize" on the main program | 02:25 | ||
02:25
kanru joined
|
|||
wolverian | audreyt, hm. no type inference either, or is that orthogonal? | 02:25 | |
audreyt | wolverian: orthogonal | ||
wolverian: inference can be made default, according to TimToady, as long as it's "soft" | |||
as in not rejecting any working programs under open/unoptimized world | 02:26 | ||
putter: indeed there's a school of thought about closing just some classes at their declaration time | |||
wolverian | "working"? | ||
putter | *shudder* | ||
audreyt | putter: Java people seems to like that a lot. @Larry explicitly rejected that | ||
wolverian: working, as in compilable without the extra annotation added by inferencer | 02:27 | ||
putter | so what I'm hearing is one doesn't have the option of trading danger for speed, yes? | ||
audreyt | putter: not by default, no, not that I'm aware of | ||
wolverian | audreyt, so what does the inferencer do in such a situation? sounds like not much | ||
audreyt | we're not C++, despite surface similarities. | ||
wolverian: add warnings | 02:28 | ||
wolverian | ah | ||
thanks :) | |||
much clearer now | |||
audreyt | wolverian: similar to what you get by perl -cw 'sqrt("elephant")' | ||
with an inferencer we can significantly produce more useful warnings that way | |||
but it must not, by default without -O, reject them | 02:29 | ||
because maybe runtime someone augmented Str so it can really be sqrt'ed without coercion... | |||
wolverian | ah. right. | ||
putter | so no way to say "here is a type to use under -O, but if we are not -O, please don't spend runtime computes checking it". | ||
audreyt | putter: I imagine we can get that with -O0 or something, or -Opessimize, or etc | 02:30 | |
the point is that such decisions belongs to the main program consumiing the ttypes not in the type decls | |||
-f-ignore-types | |||
putter | that seems... coarse grained? | 02:31 | |
audreyt | use case of selective type ignoring? | 02:32 | |
putter | -O gets applied to large hunks of stuff. the code, especially wrt internal interfaces, knows alot about where danger lies, and which paths are performance bottlenecks. hard to see how a app-level arg can capture that, no? | ||
audreyt | 04:29 < putter> so no way to say "here is a type to use under -O, but if we are not -O, please don't spend runtime computes checking it". | 02:33 | |
no what I mean is | 02:34 | ||
if you want fast, use -O | |||
saying "this makes the -O0 case faster" doesn't quite feel right | |||
it's taking programmer's time to ensure the unoptimized version runs faster? | |||
Alias_ | heh | ||
putter | " if you want fast, use -O" == " if you want fast, use a closed world". With apparently an implicit addendum "if you don't/can't do a closed world, you lose because p6 won't let you selectively relax type checking to get speed". addendum correct? | 02:37 | |
audreyt | not so, as you can request specific openness, as per S12, saying | 02:38 | |
"class Foo is open {...}" | |||
and the closed typechecker will still treat that Foo as open, relexing prebind assertion errors into warnings | 02:39 | ||
putter | if -O0 is the mechanism to relax type checking, one can imagine having to break code into separate files for the sole purpose of being able to differentially -O them. eep. and simply can't do it on an argument by argument basis. | ||
audreyt | I wonder if "class Foo is dangerously_open {...}" will make you happy | ||
putter | ;) | ||
lol | |||
audreyt | but, back to the topic, it still seems that -O and selected "is open" is adequate | 02:40 | |
and if you are concerned over the runtime assertions placed on those open classes, "is open<unchecked>" sounds acceptable | 02:41 | ||
putter | it is unclear to me that class is much better a unit of closed world-ness than the file. | ||
I'd like is<unchecked> on say a parameter basis. | 02:42 | ||
audreyt | sub foo (OpenClass $x is unchecked) {...} | ||
like this? | |||
putter | yes | 02:43 | |
audreyt | i.e. at consume site not definition site | ||
class OpenClass is open<unchecked> {...} | |||
putter | yes | ||
one thing it buys is escaping a race condition between people wanting to type but avoid performance hits, and the capabilities of the type inferencer/checker. | 02:44 | ||
audreyt | I think those people wants -O0, seriously | 02:45 | |
putter | :) | ||
audreyt | but maybe our use case differ | ||
so, if it's not checked, why is a type there anyway? | 02:46 | ||
for documentation only it seems? | 02:47 | ||
putter | one interesting case is this evening's Moose case. adding type info apparently cost 10x performance hit. so what's the developer's next step? go through and delete all the type info? it would be nice if there were an option B. | ||
re why, | |||
audreyt | Moose doesn't really lift type assertions, nor does it do prebinding/codegen (that's what MO intends to do) | ||
putter | for instance, the same reason one has assert()s which run in development, but are noops in release. | ||
audreyt | yes, but assertions are turned off applicatio wide | 02:48 | |
_not_ by microannotations | |||
which was exactly my point wrt -O0 | |||
putter | or for instance, to be safe in general, but the hot path of this code is getting nailed by type checking. do you take the haskell approach of trying to figure out how to jiggle the optimizer so it does the right thing? or the much simpler common lisp approach, of saying "right here, just stay out of my way, I don't want to have to fight you on this". | 02:50 | |
audreyt | in which case it should be a lexical hint, still not a microhint on the parameter... | 02:51 | |
similar to | |||
putter | but assert microannotations do get flavored. eg, this is an assert I wish to all ways be present. this is a costly assert I want only when I'm debugging this module. this is a medium assert I want in development but not release. | ||
audreyt | { ... ; { no assertions; for (@lots_of_data) { ... } } ... } | 02:52 | |
is this approach acceptable? | |||
putter | so what does no assertions do? variable type checks and non-essential argument checks don't happen? | 02:53 | |
no biggy. just wanted to raise the issues. | 02:55 | ||
audreyt | I was writng perl5 code above | ||
i.e. I think Moose, via MO, should codegen to assert{...} blocks | |||
which you can lexically (very easily!) turn off via | |||
perl -A... | |||
and | |||
use assertions 'selected_parts_only' | |||
or turning it off | 02:56 | ||
of course it's a Perl 5.10 thing | |||
but hey, compelling reason to upgrade, etc. | |||
but to answer your question, yes, I think we can reuse that mechanism in p6 | |||
02:56
lisppaste3 joined
|
|||
putter | in the near term, until our compiler gets wizzy, it currently seems "adding type info" == "make your code run more slowly". which seemed less than ideal. | 02:56 | |
that's my main observation. ;) | 02:57 | ||
audreyt | if Moose compile to assert{...} blocks | ||
then those does _not_ get run by default | |||
and so your concern is addressed :) | |||
("perl -A" runs those.) | |||
putter | could be. :) | ||
I think it's time for coughing sick puppy to stumble off to bed. | 02:58 | ||
audreyt | @tell nothingmuch ^backlog point here^ thoughts on using assert{...} blocks for MO codegen, using Perl 5.9's assert mechanism? | ||
lambdabot | Consider it noted. | ||
audreyt | putter: sleep well! | 02:59 | |
putter | and I was about to do... | ||
@tell stevan re Moose, you might find colabti.de/irclogger/irclogger_log/...l=124#l217 interesting. | |||
lambdabot | Consider it noted. | ||
putter | 'night audreyt & | ||
03:16
putter joined
03:18
cmarcelo joined
|
|||
cmarcelo | hello | 03:18 | |
03:18
SubStack joined
|
|||
putter | for the record, I probably misrepresented the nature of the performance issues facing Moose. needed a concrete foil strawman (image:) for the type conversation. | 03:18 | |
Alias_ | @tell audreyt that we need to find some time to have a conversation about cross-language dependencies | 03:21 | |
lambdabot | Consider it noted. | ||
03:28
weinig|bbl is now known as weinig
03:30
gaal joined
|
|||
svnbot6 | r14240 | audreyt++ | * Pugs.Parser: Judy IntMap has GC issues when used in EXPORT | 03:34 | |
r14240 | audreyt++ | lists in unsafeEvalExp. So change from using an array to | |||
r14240 | audreyt++ | store EXPORT list to use a Junction, which has the added | |||
r14240 | audreyt++ | benefit of ignoring declaration-ordering in the imported | |||
r14240 | audreyt++ | modules for multis, which is According To Spec (tm). | |||
stevan | audreyt: where can I find information on the assert {} stuff? | 03:35 | |
lambdabot | stevan: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
cmarcelo | audreyt: swapMaps problems too? | 03:36 | |
audreyt | stevan: search.cpan.org/dist/assertions and search.cpan.org/dist/perl/pod/perl5...Assertions | 03:37 | |
lambdabot | audreyt: You have 4 new messages. '/msg lambdabot @messages' to read them. | ||
Title: Salvador Fandiño García / assertions - search.cpan.org | |||
audreyt | @messages | ||
lambdabot | TimToady said 1d 4h 54m 55s ago: my pugs-prof still segfaults even with a non-threaded perl :( | ||
Limbic_Region said 1d 4h 8m 12s ago: test 12 of ext/Config-Tiny/t/basic.t is failing though the output is correct. My guess is difference of \n versus \r\n | |||
fglock said 11h 59m 20s ago: it looks like '$code = <>' is not waiting for STDIN in v6.pm line 137, when calling from 'pugs -B Perl5' | |||
Alias_ said 15m 39s ago: that we need to find some time to have a conversation about cross-language dependencies | |||
audreyt | cmarcelo: no, this time it's not your fault | ||
clkao | very busy ;) | ||
audreyt | yeah, on top of that I'm supposed to do $job at the moment ;) | ||
cmarcelo | :P | 03:38 | |
clkao | what's $job involed thesedays ? | 03:39 | |
audreyt | jifty mostly | 03:43 | |
Jifty/XUL and declarative views next | |||
wolverian | does jifty use moose? | ||
audreyt | we can talk about that more in portland | ||
wolverian: a branch of it does, but aforementioned perf hit needs to be fixed (i.e. MO deployed as the next versino moose) before it goes trunk | 03:44 | ||
stevan | @tell putter re: Moose type check slowness; this does not suprise me, because of how we proceed down the type heirarchy with subtypes and the fact that most type constraints are probably subtypes of Object which is one of the most derived types | ||
lambdabot | Consider it noted. | ||
wolverian | ah, great :) | ||
(I mean, great that it uses it, not great that moose is slow) | |||
stevan | audreyt: current $work hell will end for me in mid-November, after which I am going to concetrate of Moose speed issues | 03:45 | |
audreyt | much anticipated :) | ||
stevan | well actually I am going to finally get around to fixing the role implemenation ,.. but after that :) | 03:46 | |
the trickiest part will be doing away with the compile time hit | |||
I am hoping that Module::Compile will help in that area | |||
audreyt | I think nothingmuch has been working on that using Perl::Code | 03:47 | |
stevan | not lately, but yes, that is part of the plan | ||
audreyt | lately he's been having laptop issues :) | ||
stevan | yes :) | 03:48 | |
although i think they are solved now as well | |||
at least I havent heard him complaining | |||
audreyt | 17847 test cases: 17847 ok, 0 failed, 4647 todo, 747 skipped and 0 unexpectedly succeeded | 03:49 | |
svnbot6 | r14241 | audreyt++ | * value_equivalence.t: fix typo. | ||
audreyt | yay. but TimToady changed the spec, so I'll have to (temporarily) break some of the tests... | ||
03:51
weinig is now known as weinig|zZz
|
|||
audreyt | TimToady: uhm | 04:02 | |
Hyper operators are defined recursively on shaped arrays, so: | |||
-ōæ½xAB [[1, 2], 3] # [-ōæ½xAB[1, 2], -ōæ½xAB3] | |||
# == [[-1, -2], -3] | |||
so -<< still recurse, just not arbitraily extend? | |||
s/extend/upgrade dimension/ | 04:03 | ||
so still, [+]<< will make no sense at all? | 04:04 | ||
TreyHarris | link to Perl::Code? first I heard of it and search.cpan.org is unhelpful... | 04:09 | |
04:10
Eidolos joined
|
|||
TreyHarris | (is there any search engine that would helpfully search for "Perl::Code" and not "perl code"?) | 04:11 | |
< audreyt> 17847 test cases: 17847 ok, 0 failed... | 04:12 | ||
audreyt++ | |||
audreyt | TreyHarris: sorry, search.cpan.org/dist/Code-Perl/ | 04:15 | |
lambdabot | Title: Fergal Daly / Code-Perl - search.cpan.org | ||
TreyHarris | audreyt: ahh, thanks :) | 04:16 | |
svnbot6 | r14242 | audreyt++ | * Remove all the "# XXX should not need this" use lines in ext/, | 04:20 | |
r14242 | audreyt++ | as really they are not needed now. | |||
TreyHarris | audreyt: catching up on scrollback, did I understand your explanation to putter to mean that the following behavior is correct except under -O0? | 04:22 | |
?eval sub moose (Num $foo) { $foo.say }; moose("hi") | |||
04:22
evalbot_r14182 is now known as evalbot_r14241
|
|||
evalbot_r14241 | OUTPUT[hi ] Bool::True | 04:22 | |
audreyt | uhm, no, it's correct only under -O0 | ||
any other levels will at least raise a warning | |||
TreyHarris | ah, ok, so -O0 does not correspend to "slowest but safest" by any means | 04:23 | |
audreyt | right | 04:24 | |
and it's conjectural anyway... | |||
TreyHarris | ok, so the test for that does not need to be modified in some conjectural way to ensure that the optimization level allows for the typecheck | 04:25 | |
audreyt | no... | ||
(as in, "no, it does not") | 04:26 | ||
TreyHarris | that's all i was checking, as i didn't want to have committed an incorrect test | ||
:) | |||
audreyt | :) | 04:27 | |
would you like to run a smoke? it should be 100% green now | |||
after $job today's I'll check win32 issues | |||
and then fix js | |||
and if the chglog is ready by then, enter preflight | |||
TreyHarris | yay. smoking r14242 now | 04:28 | |
04:28
justatheory joined
04:48
kanru joined
|
|||
TimToady | wow, with 6.6 my smoke time went from 76 minutes to 29 minutes. | 04:54 | |
audreyt | that is expected. | 04:55 | |
(same happened here too) | |||
TimToady | and my 10 hr program went to 15 minutes. | ||
audreyt | that is surprising | ||
TimToady | that is now livable. | ||
audreyt | cool. the difference is that GHC 6.6 admits there's something as a mutable reference in the GC now ;) | ||
GHC 6.4 used to revisit them every single pass | |||
regardlesss of whether they've been modified during the run | 04:56 | ||
TimToady | hurts when your live set is 820 megabytes... | ||
audreyt | which is fine for values... | ||
exactly | |||
TimToady | so I think this release should say "works with 6.4 but 6.6 Highly Recommended" | 04:57 | |
audreyt | which is why I'd like to schedule it with GHC 6.6-final... | ||
to ensure no late-breaking changes in 6.6 occur | 04:58 | ||
TimToady | well, I got the first release that was actually labeled 6.6. | ||
audreyt | although highly unlikely now | ||
right | |||
TimToady | but this means I can actually use Perl 6 for what I'm doing at work. I've been putting them off for several weeks now... | ||
glasser | what's the timeline for 6.6? | 04:59 | |
TimToady | evalYaml now slurps my 7meg yaml file in under 3 minutes. It was taking more than 100... | 05:00 | |
It's still struggling to spit it back out as .perl though... | 05:01 | ||
audreyt | .yaml might be faster | ||
glasser: "any time now" | |||
TimToady | I already have it in .yaml--that's what took 3 minutes to pull in. | 05:02 | |
TreyHarris | audreyt: now that they've numbered it 6.6, does it actually build without black magic on darwin/intel? a week ago i still fought with it for an hour and gave up, as your June build was still good enough | ||
TimToady | I wanted to spit it out as perl and see if it loaded even faster... | ||
esp if precompiled down to hs yaml. | |||
I mean, it's fine to pull in 7M of yaml in 3 minutes, but the precompiled prelude pulls in over a meg of yaml in less than a second... | 05:05 | ||
audreyt | TreyHarris: -head is still bad, but www.haskell.org/ghc/dist/current/di...rc.tar.bz2 should be good enough | ||
lambdabot | tinyurl.com/gjsxw | ||
audreyt | though pugs will also want www.haskell.org/ghc/dist/current/di...bs.tar.bz2 | 05:06 | |
lambdabot | tinyurl.com/fwqyl | ||
TreyHarris | audreyt: right. any reason to upgrade, is pugs using anything newly available since your binary build? | 05:07 | |
audreyt | no, not really. | ||
svnbot6 | r14243 | audreyt++ | * Module::Install::Pugs: Strongly recommend GHC 6.6+ by | 05:11 | |
r14243 | audreyt++ | printing out a warning, which is currently seen by | |||
r14243 | audreyt++ | everybody except perhaps TimToady++... | |||
TimToady | took 42 minutes to produce a 6.25 meg perl (all one line!) representation of my 7 meg yaml. | 05:13 | |
Unfortunately, it looks like there's some latin-1/utf-8 confusion in it. Probably on the input side rather than the output side. | 05:15 | ||
audreyt | clearly the .perl primitive is slower than it could be | ||
TimToady | yaml is not notably encoding savvy. | ||
audreyt | well, it's actually assumed to be utf8 unless otherwise told | ||
but yeah :/ | |||
TimToady | I believe I converted it to utf8, but I'll have to print out intermediate results to see if it's wrong internally. | 05:16 | |
audreyt | meanwhile I'm still fighting with SvTIED_mg... | 05:17 | |
TreyHarris | audreyt: hmmm... "17914 test cases: 17808 ok, 106 failed, 4656 todo, 747 skipped and 3 unexpectedly succeeded"... guess I'd better run a realclean and re-make | 05:22 | |
audreyt | TreyHarris: upload your smoke? | 05:27 | |
and point me the url of it here? | |||
no need to realclean probably... | 05:28 | ||
TreyHarris | audreyt: m19s28.vlinux.de/iblech/stuff/pugs-...45e3e.html | 05:31 | |
lambdabot | Title: TAP Matrix - Wed Oct 11 05:21:03 2006 GMT, tinyurl.com/nncod | ||
svnbot6 | r14244 | audreyt++ | * t/oo/methods/multi.t: Unexpected success attributable to | 05:36 | |
r14244 | audreyt++ | a missing .keys.sort, discovered by TreyHarris++'s smoke. | |||
TimToady | it's kind of a shame that .sort has to take a pass over sorted data because we don't have a proper declaration, or maybe a .keys(:sort) | 05:38 | |
svnbot6 | r14245 | audreyt++ | * More .keys.sort. | ||
TimToady | smoking r14245 I'm getting "user error (unhandled element: EStr "Pugs.AST.Internals.Val ~") | 05:40 | |
svnbot6 | r14246 | audreyt++ | * t/perl5/basic.t: No need to use Data::Dumper when it's unused. | ||
r14246 | audreyt++ | Also unTODO in anticipation of a working array roundtrip. | |||
TimToady | but I think that's from bogus yaml maybe. | ||
svnbot6 | r14247 | audreyt++ | * type_declarations.t: importation test doesn't belong here... | ||
TreyHarris | TimToady: I'm getting that as well | ||
audreyt | well, the real lose is actually "for %h.kv -> $k, $v {}" | 05:42 | |
hm. rm blib6/lib/*.yml first? | |||
TimToady | .kv(:sort) would be nice | ||
audreyt | .kv(:sort{$^a.lc leg $^b.lc}) | 05:43 | |
TimToady | .kv(:sort{.lc}) | ||
audreyt | but it's biasing to keys... | 05:44 | |
TimToady | I was assuming $^b was also a key | ||
audreyt | yeah | ||
svnbot6 | r14248 | audreyt++ | * Don't show trace statements on perl5-to-pugs callbacks | ||
TimToady | .kv(:sort(:($key, $val))) | 05:46 | |
TreyHarris | trying to run ext/Set-Infinite/t/set-infinite.t, I get "pugs: JudyziIntMap_ddrb: interrupted" sometimes, but not each time, i run it | ||
TimToady | still getting user error | 05:47 | |
svnbot6 | r14249 | audreyt++ | * src/perl5/: Roundtrip of tieable values in Pugs->P5->Pugs is complete. | ||
r14250 | audreyt++ | * t/perl5/array.t: unTODO now that @array can survive roundtrip | |||
r14250 | audreyt++ | across Pugs->P5->Pugs barriers. | |||
TreyHarris | TimToady: yes, removing the .yml doesn't seem to help | 05:48 | |
audreyt | hrm. | 05:50 | |
TimToady | line in Prelude.pm.yml sez: - !hs/Set Pugs.AST.Internals.Val ~ | ||
audreyt | turns out junctions doesn't freeze well. | 05:51 | |
or rather, higher-order types don't | |||
a sec | |||
r14251 should fix it | 05:57 | ||
svnbot6 | r14251 | audreyt++ | * Pugs.AST.Internals: Write correct instances for (Set Val), | ||
r14251 | audreyt++ | because HsSyck doesn't like type names with spaces in them. | |||
r14251 | audreyt++ | This should be fixed on HsSyck level eventually... | 05:58 | ||
audreyt | TreyHarris: the Set::Infinite thing is a RTS bug since fixed | ||
I'm uploading a bindist for you | |||
just a sec | |||
well, ADSL is being very slow, so O(30min) | 06:00 | ||
the GHC trac says there's still 3 tickets to be resolved before 6.6-final | |||
so maybe still a couple more days | 06:01 | ||
TreyHarris: looks like the unexpected successes in the smoke has been taken care of | 06:04 | ||
and most of the fails are due to the RTS bug | |||
but the safemode one, I'm not sure | |||
I can't get t/run/11-safemode.t to fail | |||
masak | so, how does one go about downloading GHC 6.6? I can't find it neatly packaged anywhere... is the HEAD branch the way to go? | 06:07 | |
TimToady | smokin' r14251, results in about 30 min. | 06:08 | |
audreyt | masak: the very end of www.haskell.org/ghc/dist/current/dist/ | ||
lambdabot | Title: Index of /ghc/dist/current/dist | ||
TimToady | I used the linux bindist, seems to work fine. | ||
masak | audreyt, TimToady: thx | 06:09 | |
also, how come there's such a big difference in smoke time? | |||
TimToady | between what and what? | ||
audreyt | 6.4 and 6.6? | ||
masak: if you build from src, download both -src and -src-extralibs, and tar jxf both under the same point, then build | |||
if you are getting bindist, extralibs should be bundled already | 06:10 | ||
masak | audreyt: yes, 6.4 and 6.6, the difference TimToady spoke about | ||
trying bindist first | |||
audreyt | 06:55 < audreyt> cool. the difference is that GHC 6.6 admits there's something as a mutable reference in the GC now ;) | ||
06:55 < audreyt> GHC 6.4 used to revisit them every single pass | |||
06:56 < audreyt> regardlesss of whether they've been modified during the run | |||
06:56 < TimToady> hurts when your live set is 820 megabytes... | |||
masak | audreyt: ah. thx. | ||
audreyt | or, from release notes: | 06:11 | |
GHC's garbage collector now deals more intelligently with mutable data, so you mostly no longer need to worry about GC performance when a lot of memory is taken up by STArrays, IOArrays, STRefs or IORefs. For more details see trac bug #650. | |||
masak | GHC seems to be improving by the minute. I really have to learn Haskell. | ||
audreyt | yeah. the recent push from field programmers actually want to write programs, instead of executable proofs, is making GHC more and more nontoylike | 06:13 | |
rising tide, boats, etc. :) | |||
masak | :) | 06:14 | |
audreyt | you don't use mutable IORefs and IOArrays much when you're writing proofs... | 06:15 | |
17921 test cases: 17921 ok, 0 failed, 4649 todo, 747 skipped and 0 unexpectedly succeeded | 06:26 | ||
TimToady | darn, I'm still stick back in the infamous propcharset... | 06:27 | |
*stuck | |||
audreyt | yeah, that alone is worth 2 minutes or something | 06:28 | |
TimToady | 2:45 and counting | ||
audreyt | it's the Encode.pm of the pugs test suite... | ||
TimToady | properties.t ain't much better... | 06:30 | |
audreyt | ok, I need to work on $job for real | ||
afk, bbl :) | |||
TimToady | bye! thanks | ||
audreyt | thanks too :) I think .perl and .yaml can be made much faster | ||
& | |||
TreyHarris | hah, went to read scrollback so that i wouldn't bug audreyt redundantly if the user error thing had been fixed, since that appears to be the cause of 11-safemode.t errors. then i got back te present and she's gone. :) | 06:37 | |
TimToady | yes, it's fixed. | 06:38 | |
your other problem requires a different fix though. | 06:39 | ||
TreyHarris | @tell audreyt i'm not sure where you were uploading that bindist for me.... maybe there's an obvious place i should look but i'm not sure? | 06:41 | |
lambdabot | Consider it noted. | 06:42 | |
06:45
iblechbot joined
|
|||
TimToady | looks like I failed to all_parse 3 examples, and my set-infinite.y bailed out in the middle. | 06:46 | |
06:46
Aankh|Clone joined
|
|||
TimToady | when I run ext/Set-Infinite/t/set-infinite.t by hand I get all tests successful, so maybe I have the same intermittency... | 06:48 | |
If I use prove6 it works, but if I say ./pugs -I blib6/lib ext/Set-Infinite/t/set-infinite.t it segfaults consistently after "ok 27 - from scalars" | 06:50 | ||
TreyHarris | TimToady: could lvalueness be used as a differentiator in MMD? | 06:51 | |
TimToady: same behavior here | |||
TimToady | prove6 fails some of the time too. | ||
TreyHarris | yes, it's sporadic | ||
TimToady | no, lvalueness is never offered as a signature. It's only offered by returning a proxy. | 06:52 | |
the time of signature binding is when you are identifying the lvalue, not when you are assigning it. | 06:53 | ||
the modification happens after the return. | 06:54 | ||
that being said, it might be possible from want() to know if you're in an lvalue context | |||
TreyHarris | TimToady: yes... but i wasn't asking about the current state of synopses, just about what's possible... it would seem to me that if you could have a multi method moose () and a multi method moose () is rw, a novitiate could much more intuitively turn a stored attribute into a computed one. | ||
TimToady | it's really a form of return type MMD | 06:55 | |
which is...conjecturally optional. | |||
TreyHarris | also, i was thinking about the comment about m// as lvalue and thinking about other subs of that type... there are likely to be many routines whose acceptable types when used non-mutatively are broader than those when used mutatively.... | 06:56 | |
TimToady | and according to current spec, not to be used for more than tiebreaking. But sounds like that's what you want. | ||
anything lvaluable can certainly refuse to give you a proxy if it so chooses. | 06:58 | ||
06:58
bsb left
|
|||
TimToady | but the s[] = construct is not using s[] as an lvalue in the sense of returning an lvalue from s[]. It's just borrowing the syntax. | 06:59 | |
TreyHarris | well, i want it only because the folks i teach tend to be quite junior... and being able to change an attribute from stored to computed and back again without changing client code is a very, very lovely thing that few widely-used OO languages give you, so i'm eager to evangelize it as one of the compelling new features. but then when i start to show Proxy objects, my audince's eyes glaze over and somebody's likely to ask, "isn't just easier to do ... | 07:00 | |
... $obj.getX and $obj.setX from the very start?" | |||
in Eiffel, for instance, an lvalue method is just a unary method. there's no difference... it's just by convention that you write "file.print('hello')" and not "file.print = 'hello'" | 07:01 | ||
TimToady | and I think that's a bad confusion of two different times you want to pass things in. | 07:02 | |
it doesn't show up in this case because the only thing that identifies in this case is the file on the left. | 07:03 | ||
but if you want to have a method that is file.print(:thisprint) = 'hello' | 07:04 | ||
the args other than the assignment want to happen at ID time, not at modification time. | |||
TreyHarris | oh, agreed on that score. but i do wish i could fit the full example of changing class Point { has $.x; has $.y; method r (); method theta ();} to class Point { has $.r; has $.theta; method x(); method y() } on a single slide and without roping in Proxy objects... | 07:05 | |
TimToady | it's like in Perl 5, if .can not only found the method but called it automatically. it wouldn't be useful for the intermediate result. | ||
which is also why Perl 6 splits up autoloading into finding vs calling. | 07:06 | ||
TreyHarris | the very hard is undeniably very possible with this mechanism. the easy just seems a bit too hard.... | 07:07 | |
you could always nudge the Ruby-o-meter and let us write "method theta= ($rvalue)".... ;) | 07:09 | ||
audreyt | TreyHarris: er sorry it's perlcabal.org/~audreyt/tmp/ghc-6.5.tar.bz2 | 07:11 | |
lambdabot | audreyt: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
tinyurl.com/es3nr | |||
audreyt | @messages | ||
lambdabot | TreyHarris said 29m 19s ago: i'm not sure where you were uploading that bindist for me.... maybe there's an obvious place i should look but i'm not sure? | ||
TreyHarris | audreyt: grazie, maestra | ||
audreyt | prego :) *vanishes again* | 07:13 | |
TimToady | syntactic sugar is fine, but underneath it *must* return a proxy that is capable of repeated use as either an lvalue or rvalue. | ||
07:16
kanru joined
|
|||
pasteling | "TreyHarris" at 216.254.17.198 pasted "t/run/11-safemode.t failures" (111 lines, 3.8K) at sial.org/pbot/20335 | 07:17 | |
07:17
zakharyas joined
|
|||
lidden | TimToady >> There is a "Perl 7" in S01 that was not changed | 07:17 | |
TimToady | heh, I changed halfway through to searching for Perl \d, but on that one I only searched for Perl [56] | 07:18 | |
07:18
nothingmuch joined
07:20
KingDiamond joined
|
|||
TreyHarris | TimToady: i can see that it would be quite easy to write a macro that would serve as a declaratory way to do the sugar to wrap up two different subs differing by one arity into a single rw sub returning a proxy to those two precessor subs. but i'm not clever enough to see a way to sugar it with two multis named the same as the final rw sub you want... i know it's just sugar, but it would be really tasty sugar :) | 07:23 | |
s/precess/predecess/ | 07:24 | ||
07:35
buetow joined
|
|||
audreyt | TreyHarris: well, it says | 07:45 | |
Consider removing blib6/lib/Prelude.pm.yml and make it again | |||
TreyHarris | yes, but that didn't help | ||
audreyt | please rm blib6/lib/*yml and make again :) | ||
that didn't? | |||
it keeps saying the same thing? | |||
TreyHarris | after i make again | 07:46 | |
but i'm about to try this new ghc | |||
audreyt | ok, so a realclean may help there too | ||
TreyHarris | want me to try the realclean before i install the new ghc you sent? | ||
audreyt | no, just relclean, then install the ghc, then make pugs | 07:47 | |
TreyHarris | k | ||
audreyt | hm, pugs is quite usable for $job. | 07:50 | |
but I really need @=DATA. | |||
audreyt goes implementing that | |||
TimToady: the "=" twigil is per-compilation-unit right? | 07:51 | ||
TreyHarris | @=DATA? $=DATA would be the contents of the =DATA perldoc, but @=DATA? | ||
lambdabot | Unknown command, try @list | ||
gaal | audreyt: what's the problem with h-o types in hssyck? does it simply need to quote the tag? | ||
audreyt | @=DATA is the lines, $=DATA would be a handle | ||
lambdabot | Unknown command, try @list | ||
gaal | (no tuits to implement now, just curious...) | ||
audreyt | gaal: I havn't checked if tags can be quoted | ||
gaal | oi | ||
audreyt | or if we need to munge somehow | ||
s/ /-/ say | |||
I mean tr/ /-/ | |||
gaal | zi :/ | ||
audreyt | it's not pressing anyway | 07:52 | |
gaal | is darcs.haskell.org/ghc/compiler/utils/Encoding.hs exposed to the user somehow? | 07:53 | |
lambdabot | tinyurl.com/rqfha | ||
audreyt | the Z-encoding? | ||
gaal | yeah | ||
audreyt | I don't think so | ||
gaal | not that I particularly like it but it's at least somewhat familiar | ||
audreyt | - is not an ident so tr/ /-/ is cheap and cheerful | 07:54 | |
gaal | hm ok maybe tonight | ||
back to jifty wizards now & | 07:55 | ||
audreyt | I'd like it to not slow down the instances too much, though... since pugs doesn't use space typenames at all yet | ||
gaal | so tr/// is much prefered yes? we can write that in c if we want | 07:56 | |
we have a bytestring there already, iirc | 07:57 | ||
actually a hs function should be just as fast | |||
ha! zencoding doesn't deal with spaces anyway | 07:59 | ||
oh it does, hexily | |||
anymoose, later & | |||
TimToady | audreyt: yes, per cu, or possibly per file, depending on how we want things to look from inside an eval. | 08:12 | |
audreyt | right. | 08:18 | |
but things inside eval count their own linenum | |||
08:18
BooK joined
|
|||
audreyt | at least currently, as also in p5 | 08:18 | |
so would be funny if they share the linenum of outside @=FOO | |||
TreyHarris | audreyt: realclean + new ghc fixed safemode, i'll run a new full smoke now | 08:29 | |
audreyt | cool | 08:30 | |
and I got =$=DATA working, so I'm back to $job... | |||
TreyHarris | have fun! | ||
audreyt | TimToady: must we remember $=END as well? | 08:35 | |
s/we/the parser/ | 08:36 | ||
i.e. should it populate @=END and $=END, or is it not considered part of the stream proper? | |||
I favour the "not considered part of stream" approach as that will enable embedding arbitrary random data after taht | |||
but the spec seem to want $=END for now, so I'll check in the code that does that | 08:38 | ||
svnbot6 | r14252 | audreyt++ | * Pugs.Types: Make "=" a valid (globally-scoped for now, as | 08:41 | |
r14252 | audreyt++ | we don't yet have compunit-scope) twigil. | |||
08:52
elmex joined
|
|||
svnbot6 | r14253 | audreyt++ | * Pugs.Types.Array: Because we don't (yet) support Range | 08:56 | |
r14253 | audreyt++ | subparts in Array, strictify its push/unshift in both | |||
r14253 | audreyt++ | directories to gain some more performance and peace of mind. | |||
r14254 | audreyt++ | * POD.t: Restructure the test now that 1)they all pass and | 08:59 | ||
r14254 | audreyt++ | 2)%=POD variables are per-compilation-unit, not per-file. | |||
r14255 | audreyt++ | * Pugs.Parser.Literal: Rewrite ruleTwigil to accomodate | |||
r14255 | audreyt++ | for "=", and also a bit more efficient, as we don't | |||
r14255 | audreyt++ | really have double-char-twigils. | |||
r14256 | audreyt++ | * Pugs.Prim: Primitive support for =@Array on both contexts. | 09:03 | ||
r14257 | audreyt++ | * Pugs.Parser.Doc: Reorganize the POD parser to support: | |||
r14257 | audreyt++ | =begin FOO | |||
r14257 | audreyt++ | ... | |||
r14257 | audreyt++ | =end FOO | |||
r14257 | audreyt++ | as well as populating into the various %=POD structures. | |||
09:05
jferrero joined
09:06
ruoso joined
|
|||
audreyt | TimToady: also, after r14257 I found some errors by people assuming that | 09:07 | |
begin/end/cut is still needed | |||
to avoid people tripping over, maybe a lone =cut doesn't start a pod stream. | 09:08 | ||
I'll implemented that | |||
09:14
andara joined
|
|||
svnbot6 | r14258 | audreyt++ | * Pugs.Parser.Doc: "=cut" as a POD opener now terminates it | 09:15 | |
r14258 | audreyt++ | immediately. Without this behaviour, the Perl5-esque: | |||
r14258 | audreyt++ | =begin FOO | |||
r14258 | audreyt++ | ... | |||
r14258 | audreyt++ | =end FOO | |||
r14258 | audreyt++ | =cut | |||
r14258 | audreyt++ | say "Hi"; | |||
r14258 | audreyt++ | Becomes a noop ("say" interpretered as documentation), and | |||
r14258 | audreyt++ | that's not good... | |||
r14259 | audreyt++ | * Pugs.Parser.Literal: Oops, space is not a twigil. | 09:27 | ||
audreyt | TimToady: can we get .=uc into term level? | ||
use case: | 09:33 | ||
.=comb; | |||
as with .meth, there must be no space between = and meth, of course | |||
the only drawback I can think of is that of infix/prefix ambig: | 09:34 | ||
listop .=uc; | |||
but seems survivable.. | |||
09:39
chris2 joined
|
|||
audreyt | (no tests breaks from that change) | 09:50 | |
cmarcelo | @tell audreyt (telling bot lambda so you can postpone) later take a look at perlcabal.org/~cmarcelo/moh/, I took some advice from "Software Extension and Integration w/ TC" (gaal++) but maybe I got too far. then I got lost with lots of "forall"s (the SEITC based changes are in MO/Base.hs mostly). I'm seeking a little bit of advice on design. :o) | 10:01 | |
lambdabot | Consider it noted. | ||
cmarcelo | sleep & | 10:02 | |
pasteling | "lumi" at 209.88.179.116 pasted "gather/take weirdness?" (73 lines, 5.5K) at sial.org/pbot/20337 | 10:06 | |
audreyt | lumi: try "do gather" | 10:11 | |
lambdabot | audreyt: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
lumi | audreyt: Same | ||
Is this expected behaviour? | 10:12 | ||
audreyt | no | 10:13 | |
try $_ = gather | |||
10:14
elmex_ joined
|
|||
lumi | That works, but do gather et al don't. (also pugs shell is recycling old return values?) | 10:16 | |
audreyt | yes. just fixed. | ||
svnbot6 | r14260 | audreyt++ | * Pugs.hs: More correctly reflect the result of the previous | 10:18 | |
r14260 | audreyt++ | expression, for constructs like "gather". lumi++ | 10:19 | ||
r14261 | audreyt++ | * Pugs.Parser.Util: Drop _dollarUnderscore; use varTopic instead. | |||
r14262 | audreyt++ | * Pugs.Parser.Doc: Correctly parse "=for" blocks. | 10:22 | ||
r14263 | audreyt++ | * comments.t: unTODO now that =for block parses. | |||
10:27
jferrero is now known as JoaquinFerrero
|
|||
pasteling | "lumi" at 209.88.179.116 pasted "Weird $_ behaviour" (14 lines, 282B) at sial.org/pbot/20339 | 10:29 | |
audreyt | uhm, I'm not surprised | 10:31 | |
it's not very easy to fix either | |||
the thunk was not really closing over lexical $_ | 10:33 | ||
because $_ is not (yet) lexical | |||
that's all... | |||
lumi | Oh, okie | ||
Maybe I'll wait until after the release to play with pugs? | 10:34 | ||
For some reason, anything I try acts weird | |||
audreyt | no, don't let anything stop you from playing with pugs | 10:37 | |
:) | |||
10:40
iblechbot joined
|
|||
svnbot6 | r14264 | audreyt++ | * Correct the use of "=for" where "=begin" was meant in ext/ in t/ | 10:40 | |
r14265 | audreyt++ | * Fix =for usage in examples/. | |||
nothingmuch | audreyt: MO won't have a default codegen per se | 10:50 | |
lambdabot | nothingmuch: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
nothingmuch | @messages | ||
lambdabot | audreyt said 7h 51m 48s ago: ^backlog point here^ thoughts on using assert{...} blocks for MO codegen, using Perl 5.9's assert mechanism? | ||
nothingmuch | i've been in a fix these last 2 days | ||
thinking really hard about two related problems | 10:51 | ||
a meta meta model ;-) | |||
1. meta classes come in a variety of flavours | |||
they should be able to share code | |||
audreyt | sure, but they are just regular objects in the whatever underlying metalgnauge | ||
nothingmuch | i'd like some lightweight way to polymorphically tie in "behaviors" (e.g. composes with roles, supports AGs, has multiple mro) | ||
audreyt | provided the metalanguage has code reuse facility, that is | ||
nothingmuch | and i'd like to tie into that an api for emission, as well | ||
10:52
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
nothingmuch | now, codegen will go in the various sub meta objects | 10:52 | |
svnbot6 | r14266 | andara++ | [runpugs] | ||
nothingmuch | like the meta slot | ||
svnbot6 | r14266 | andara++ | some stability fixes; better (or more friendly) error messages; warning on | ||
r14266 | andara++ | main page. | |||
nothingmuch | and the meta attribute | ||
and the meta layout (constructor) | |||
and the compiled meta methods | |||
but i suppose there should be a layer of indirection | 10:53 | ||
because responder interfaces are easier to compile (more uniform) | |||
hence, the only part really involved in codegen is the method definition meta objects, that abstract away the notion of a method body | |||
getting to my point | |||
MO only has method definition meta objects wrapping around a perl closure | 10:54 | ||
i'd like them wrapping around a Perl::Generate AST instead | |||
or in addition | |||
with a macro api to get snippets of ASTs from the underlying meta objects (slots, accessors etc) | |||
type info will fit into some accessor meta class | |||
which can probably emit using macros in the emititer | 10:55 | ||
andara | juerd? | ||
nothingmuch | so if the accessor says $emitter->type_check( $sub_asts_for_params ) then the perl 5.9 emitter can do an assert there | ||
to summarize: yes, very possible, probably by subclassing | |||
audreyt: fairynuff? (sorry for long rant, i wasn't very coherent) | 10:56 | ||
audreyt | fair enough. | 10:57 | |
have you looked at moh? | 10:58 | ||
nothingmuch | a bit | ||
nothingmuch has been distracted with thinking about this meta meta meta | 10:59 | ||
so i've only skimmed | |||
i'm hopefully going to stop thinking about this soon so i can give cmarcello more unit tests for smaller bits of functionality | |||
fwiw, i want a static haskell runtime, too | 11:03 | ||
using MO to compile to static haskell should be fairly trivial | |||
11:04
TimToady joined
|
|||
nothingmuch goes for workout + lunch | 11:04 | ||
11:05
chris2 joined
11:06
Su-Shee joined
|
|||
Su-Shee | hi. | 11:06 | |
audreyt | Su-Shee: greetings | 11:07 | |
@tell cmarcelo can you chmod +w your moh/ so I can pushback? :) | 11:10 | ||
lambdabot | Consider it noted. | ||
audreyt | @tell cmarcelo meanwhile a working moh is up at perlcabal.org/~audreyt/tmp/moh.tar.gz -- I'm glad that you're using the features I've hacked into GHC 6.6 :) | 11:12 | |
lambdabot | Consider it noted. | ||
audreyt | @messages | 11:20 | |
lambdabot | cmarcelo said 1h 18m 43s ago: (telling bot lambda so you can postpone) later take a look at perlcabal.org/~cmarcelo/moh/, I took some advice from "Software Extension and Integration w/ TC" (gaal++) | ||
but maybe I got too far. then I got lost with lots of "forall"s (the SEITC based changes are in MO/Base.hs mostly). I'm seeking a little bit of advice on design. :o) | |||
nothingmuch | audreyt: can you put up a darcs repo of your moh so i can pull from both | 11:25 | |
andara | hi all. is there a *fast* way to allocate a lot of memory (200M) in pugs? | 11:28 | |
11:32
fglock joined
|
|||
audreyt | nothingmuch: perlcabal.org/~audreyt/moh/ | 11:33 | |
lambdabot | Title: Index of /~audreyt/moh | ||
audreyt | nothingmuch: finished scp'ing now | 11:34 | |
bbiab & | |||
11:38
theorb joined
|
|||
theorb | Hm, is there any use for a C -> perl6 (or 5, for that matter) compiler? | 11:38 | |
I think Linus' sparse would make it fairly easy. | 11:39 | ||
demerphq | sparse? | 11:41 | |
theorb | Semantic Parser. | 11:42 | |
It's a very small C parser, including type annotation and the like. | |||
kernel.org/git/?p=linux/kernel/git/...git;a=tree | |||
lambdabot | Title: git - linux/kernel/git/torvalds/sparse.git/tree, tinyurl.com/zvwjr | ||
demerphq | oh | ||
theorb | There's a C -> x86 asm compiler included as an example backend. In 2393 lines of C. | 11:44 | |
11:46
iblechbot joined
|
|||
fglock | audreyt, putter: I'm experimenting with pure-perl cells colabti.de/irclogger/irclogger_log/...l=626#l971 | 12:01 | |
lambdabot | Title: #perl6 2006-10-10,Tue, tinyurl.com/g7g5j | ||
fglock | like Perl6-Container used, but a bit more optimized | 12:02 | |
so we can have typed containers in v6.pm | |||
and easier binding | |||
hmm - Moose/v6.pm circularity would likely be good for both projects | 12:05 | ||
re precompilation | |||
12:16
markstos joined
12:17
Limbic_Region joined
|
|||
svnbot6 | r14267 | audreyt++ | * Pugs.Parser: Comment on the non-canonical term ".=method" | 12:29 | |
r14267 | audreyt++ | which parses as "$_ = $_.method". | |||
r14266 | andara++ | [runpugs] | |||
r14266 | andara++ | some stability fixes; better (or more friendly) error messages; warning on | |||
r14266 | andara++ | main page. | |||
Limbic_Region | salutations all | 12:32 | |
fglock | Limbic_Region: hi | 12:37 | |
andara | juerd: ping | 12:42 | |
svnbot6 | r14268 | fglock++ | v6/emitter - experimenting with perl5-level cells (needs more work) | 12:43 | |
r14269 | audreyt++ | * INSTALL: Strongly recommend GHC 6.6 for the release. | 12:46 | ||
r14270 | fglock++ | v6/emitter - revert r14268, which is segfaulting | 12:58 | ||
stevan | @tell putter: simple benchmarks reveal type constraint penalties are more in the range of 20x slower :) | 13:06 | |
lambdabot | Consider it noted. | ||
Limbic_Region | audreyt - WRT strongly recommending 6.6 - the binary packages are limited to linux ATM | 13:10 | |
lumi | Limbic_Region: Aren't there w32 packages? | 13:11 | |
mingw32? | 13:12 | ||
Limbic_Region | not yet | ||
you can get from the dev head | |||
or you can build yourself (as I do) | 13:13 | ||
lumi | www.haskell.org/ghc/dist/current/dist/ - Last two files look like yesterday's mingw32 build? | ||
lambdabot | Title: Index of /ghc/dist/current/dist | ||
Limbic_Region | lumi - right, that's from the dev head | 13:14 | |
i.e. not marked stable | |||
audreyt | uhm, no | ||
Limbic_Region | one must check the build reports to make sure it is viable | ||
gaal | yay, 6.6 announced. | ||
lumi | 6.6 announced? | ||
gaal | ghc | ||
audreyt | I think www.haskell.org/ghc/dist/current/di...w32.tar.gz _is_ the final bindist | 13:15 | |
lambdabot | tinyurl.com/jhoap | ||
audreyt | it's just they need a .msi to go with it, probably in a couple days | ||
Limbic_Region | well, it was a leading question | ||
I was going to ask if you were going to wait for our release to coincide with availability of more bin dists | |||
audreyt | not going to wait... the "natural" release date is this weekend, which by that time will have sufficient bindists | 13:22 | |
svnbot6 | r14271 | andara++ | [runpugs] | ||
r14271 | andara++ | Changed session id calculation; added robots.txt | |||
Limbic_Region | audreyt - great. Did you happen to backlog the conversation I had with PerlJam, TimToady, gaal and others concerning newline ambivalence in our tests? | 13:23 | |
fglock | audreyt: would you use v6.pm from cpan for the release? there are some new bugs in svn version | ||
audreyt | fglock: sure, or maybe I'll just put PCR in MANIFEST only | 13:24 | |
fglock | PCR from svn is ok | 13:25 | |
it's releaseable even | 13:26 | ||
audreyt | a release will be nice | 13:27 | |
kolibrie | fglock: new bugs in v6.pm? so my slide examples (which I still need to add to examples) may not work any more? | ||
fglock | kolibrie: they may even work better - but some unrelated things are now broken, such as multisubs and binding | 13:28 | |
kolibrie was not using multisubs, but maybe binding in one place | |||
fglock | I'm working on it | 13:29 | |
audreyt | Limbic_Region: I did, which is why I'm allocing tomorrow night for win32 newlineness | ||
fglock | for almost a week - not much progress yet :( | 13:30 | |
stevan | @tell putter naive optimizations applied and type constraint penalty has been reduced from 20x to 4x perf hit | ||
lambdabot | Consider it noted. | ||
kolibrie | I haven't had a chance to work on grammars for several days myself, and not looking like it will happen today, either | ||
Limbic_Region | audreyt - oh, I was thinking along the lines of TimToady's comment that Test should be using eqv which should be newline ambivalent | 13:36 | |
frankg | audreyt, I'm trying to pack a sqlite db into a par file - can that work for accessing db data? | ||
audreyt | frankg: no, not really, as the db will grow in size | 13:37 | |
frankg: your best bet is to locate the db yourself under $ENV{PAR_TEMP} and then open it | 13:38 | ||
but then it'll be temporary | |||
another thought is to put an empty DB into the par using -f, and then use read_file() to populate its initial data into some wellknown ondisk location, but only iff there's not alrady a db there. | |||
frankg | audreyt, thanks for the input - kinda sad about that | 13:39 | |
audreyt | what you really want is perhaps a .dmg file | 13:40 | |
frankg | what's that? | ||
audreyt | or the moral equivalent | ||
a mutable filessystem instead of a zip file | |||
and you can prealloc space to account for growing db | |||
why not ship the .db separately from your pp'ed executable? | 13:41 | ||
frankg | well, I wanted to ship easier | ||
audreyt, thank you for your time :) | 13:42 | ||
audreyt | no prob :) | 13:43 | |
fglock | can't declare an lvalue anon sub in perl5? like sub : lvalue { $_[0] } | 13:46 | |
"Can't locate object method "lvalue" via package ... " | |||
audreyt | you can't. you can gensym though. | ||
ajs | perl -le 'my $a=sub :lvalue { $_[0] }; my $who="me";$a->($who)="world";print "Hello $who"' | 13:48 | |
works fine for me | |||
5.8.6 here | |||
audreyt | ah it's just a parsebug | 13:49 | |
sorry. the "sub" was parsed as label | |||
need to disambig by putting it into term position | |||
ajs++ | |||
fglock | audreyt, ajs: thanks! | ||
Limbic_Region begins smoking r14271 | 13:50 | ||
ajs | Limbic_Region: That stuff'll kill ya. | 13:51 | |
13:53
justatheory joined
13:55
cjeris joined
13:56
vel joined
14:05
cognominal joined
|
|||
pasteling | "fglock" at 200.17.89.80 pasted "perl5 test case for binding & typecheck" (26 lines, 460B) at sial.org/pbot/20345 | 14:08 | |
fglock | please check if the paste makes sense :) | 14:09 | |
14:09
P02 joined
|
|||
fglock | nevermind, I found some problems on it | 14:13 | |
14:14
djuls joined,
hexmode joined
|
|||
svnbot6 | r14272 | audreyt++ | * Pugs.Parser.Doc: Avoid warnings. | 14:17 | |
r14273 | audreyt++ | * Pugs.Parser: More warning avoidance. | |||
audreyt | lumi: you prompted me to rewrite the step-once shell :) | ||
lumi: as a result, we have first-class continuation+env now ;) not going to expose to userland yet, but at least $_ will no longer be crippled... | |||
svnbot6 | r14274 | audreyt++ | * Pugs.AST.Internals: Redesign the ControlEnv control | 14:20 | |
r14274 | audreyt++ | exception; it's now ControlContinuation, and carries | |||
r14274 | audreyt++ | the to-be-returned value as well as the resumable | |||
r14274 | audreyt++ | continuation. This will be extremely handy for | |||
r14274 | audreyt++ | generalized resumable warnings continuations (as per spec), | |||
r14274 | audreyt++ | but for now it's used for the interactive shell without | |||
r14274 | audreyt++ | crippling $*_ for the intermediate step results. | |||
14:21
nothingmuch joined
|
|||
lumi | audreyt: Oh wow. I should play with pugs *more* then, I guess :) | 14:21 | |
nothingmuch | is there a ghc 6.6 binary for osx/ppc? | ||
audreyt | nothingmuch: not yet. you want to contrib one? | 14:22 | |
nothingmuch | not likely ;-) | 14:23 | |
i'll check if my gentoo wants to be friendly | |||
if not i'll do moh on feather, i guess | |||
audreyt | moh is 6.4 | ||
nothingmuch | oh | ||
svnbot6 | r14275 | audreyt++ | * Make the Pugs shell use the shiny new ControlContinuation. | 14:24 | |
audreyt | s/moh/feather/ | ||
nothingmuch | okay | ||
audreyt | I wonder if we should upgrade by hand without waiting for debian... | ||
nothingmuch | gentoo has no masked ebuilds =/ | 14:25 | |
i sooooo don't want to compile ghc | |||
audreyt | there's linux bindists that may work | 14:26 | |
on either gentoo or feather | |||
nothingmuch | www.haskell.org/~gentoo/gentoo-hask...6.5.ebuild | ||
lambdabot | tinyurl.com/eqdms | ||
nothingmuch | bnah | 14:27 | |
so how would i go about making a ghc package for osx? | |||
darcs.haskell.org/ghc-6.6/ghc/ ? | 14:29 | ||
lambdabot | Title: Index of /ghc-6.6/ghc | ||
TimToady | rebleary | 14:35 | |
audreyt: I would expect .=uc to work as a matter of course. | 14:36 | ||
nothingmuch | uh? | ||
TimToady | I'm bleary again. has some'n to do with mornin' | ||
maybe my coffee's done... | 14:37 | ||
audreyt | TimToady: oh cool. it works. | ||
surprisingly handy in $job scripts | |||
TimToady | I sincerely hope to put it to $work in the next few daze | 14:39 | |
14:39
iblechbot joined
14:40
jferrero joined
14:41
holoway joined
|
|||
audreyt | a reliable use perl5:Module is more handy than I first imagined :) | 14:42 | |
avar | hrm, that works? | 14:43 | |
TimToady | on =cut, it should arguably be a parsefail if the new pod turns out not to be compatible with old pod. or at least a warning... | ||
audreyt | avar: sure, explicit import list also works | ||
I'll raise a warning... | |||
14:44
cognominal joined
|
|||
pasteling | "fglock" at 200.17.89.80 pasted "this seems to work - perl5 test case for binding & typecheck" (44 lines, 943B) at sial.org/pbot/20346 | 14:44 | |
TimToady | but if you're gonna continue, then yes, making it an explicit noop semantically is correct. | ||
avar | audreyt: How does it work? And how are p5 datatypes mapped to p6 ones? | ||
Is there a writeup somewhere | |||
fglock | lunch & | 14:45 | |
audreyt | avar: yes rakudo.org/perl6/index.cgi?using_pe..._embedding | 14:46 | |
lambdabot | tinyurl.com/rswkg | ||
audreyt | as of how, well, very carefully | ||
avar | audreyt: that rocks | 14:49 | |
nothingmuch | audreyt: how do you peel a pomegrande? | 14:50 | |
audreyt | thanks :) it's easily the highlight of this release | ||
nothingmuch | err, spellimng | 14:51 | |
lumi-- # confusing me! | |||
audreyt | nothingmuch: stick a knife into it | ||
svnbot6 | r14276 | audreyt++ | * Raise a warning on redundant =cut as requested by TimToady++. | ||
nothingmuch | no no, you're supposed to say "veyr carefully" | ||
svnbot6 | r14276 | audreyt++ | There'll be a lot of such warnings in the tests/examples/modules | ||
r14276 | audreyt++ | -- please someone squash them down before release... | |||
audreyt | splice it in two, and then eat the cells in it | ||
nothingmuch | otherwise they stain | ||
lumi | I confused you? | ||
nothingmuch | lumi: wrts spelling | ||
audreyt | I'll fade now | 14:52 | |
long $job day tomorrow that may involve an AIX build of GHC 6.6 | |||
more smoke result welcome... *wave* & | |||
lumi | Pomegranate, and it's not me that's confusing, it's English orthography | 14:54 | |
TimToady | attempting r14276 smoke now. | ||
nothingmuch | lumi++ # okay fine, have your karma back | 14:57 | |
english-- | |||
we need an equity auto (inc|dec)rement op | |||
+-( $a, $b ) | 14:58 | ||
-+( $a, $b ); | |||
with an optional param | |||
14:58
xinming joined
|
|||
nothingmuch | "take that many away from this, and give to that" | 14:58 | |
nnunley | audreyt: Is there an approved location for obtaining ghc 6.6 for intel osx? | 15:04 | |
audreyt | nnunley: why, yes, by yours truly | 15:05 | |
haskell.org/ghc/download_ghc_66.html | |||
lambdabot | Title: GHC: Download version 6.6 | ||
nnunley nods. "Many praises." | 15:06 | ||
djuls | hello | 15:08 | |
anyone speak french plz?. | |||
my bot put sh: line 1: flood: command not found | |||
line1 #!/usr/bin/perl -c | |||
nothingmuch | djuls: this is not a perl 5 channel, see #perl for that | 15:10 | |
i think there's also #perl-fr or something like that for french speakers | 15:11 | ||
Limbic_Region | 99.44 % ok | 15:18 | |
Limbic_Region svn ups and tries again | |||
audreyt - did you squash the tests that were causing winbugs to have a "this program has encountered a problem and must shut down"? | 15:19 | ||
audreyt | nnunley: the bindist is lacking hsc2hs; let me give you a new url (already notified GHC HQ) | ||
Limbic_Region | I don't remember having to click "ok" during this smoke | ||
audreyt | Limbic_Region: I think I did yes | ||
Limbic_Region | woot | ||
demerphq hands limbic_region and owl. | 15:20 | ||
15:31
kanru joined
|
|||
audreyt | nnunley: new build up at perlcabal.org/~audreyt/tmp/ghc-6.6-...in.tar.bz2 - GHC HQ will repopulate their end tomorrow | 15:31 | |
lambdabot | tinyurl.com/hxkec | ||
audreyt | *wave* & | 15:32 | |
[particle] | can v6 run with PAR? | 15:38 | |
there's a fellow in #parrot asking about virtual machines, and i mentioned p5 as a virtual machine, using v6 as an example | |||
he asked about the size of the vm | 15:39 | ||
i thought about par | |||
fglock | [particle]: it has many dependencies, needs some testing | 15:41 | |
[particle] | yes, it sure does :) | 15:42 | |
on both counts | |||
15:43
buetow joined
|
|||
fglock | [particle]: would you take a look at this snippet: sial.org/pbot/20346 - a possible way to support types and binding in v6.pm | 15:44 | |
lambdabot | Title: Paste #20346 from "fglock" at 200.17.89.80 | 15:45 | |
[particle] | will do | 15:56 | |
fglock | [particle]: in this code, '=' is binding, and 'x=' is typed-assignment | 15:59 | |
16:02
xinming joined
|
|||
[particle] | and only numbers are allowed to be assigned to this type | 16:02 | |
fglock | yes | ||
each type can have a different implementation | 16:03 | ||
[particle] | right. | ||
i think i like = for assignment, and x= for binding... x= looks more like := | 16:04 | ||
so i'm a bit cross-eyed looking at the code :) | |||
fglock | yes, but I don't know how to switch them :) | 16:05 | |
this is meant to have as minimal overhead as possible | |||
[particle] | ah, i see what you mean, from my experimentation | 16:06 | |
okay, so it warns that it can't assign, but it does actually assign an non-number | 16:08 | ||
i assume you'll put something more fatal in the real code? | 16:09 | ||
fglock | yes, it could die, or it can do (0+) or int() | ||
[particle] | ok | ||
then this looks good to me | |||
fglock | or call $_[1]->int | 16:10 | |
cool - thanks! | |||
[particle] | yep, check if it can ->int, and call it if so, otherwise die or something | ||
16:11
Psyche^ joined
16:21
elmex joined
16:22
vel joined
16:23
Eidolos joined
16:25
andara left
16:26
Psyche^ is now known as Patterner
16:31
vel joined
16:41
araujo joined
17:04
theorb_ joined
17:14
ivas joined
17:19
Eidolos joined
17:20
Southen_ joined,
Eidolos joined
17:22
cmarcelo joined
|
|||
cmarcelo | hello | 17:23 | |
lambdabot | cmarcelo: You have 2 new messages. '/msg lambdabot @messages' to read them. | ||
cmarcelo | what's the right way to allow access to files in my darcs repo in feather? +w on others? is there a user-group or whatever? | 17:26 | |
17:28
Khisanth joined
17:37
pmurias joined
17:38
pjcj joined
17:43
penk joined
|
|||
pasteling | Someone at 200.232.236.136 pasted "moh: a better data structure for Object?" (48 lines, 1.2K) at sial.org/pbot/20353 | 17:45 | |
cmarcelo | @tell audreyt thank you for cleaning up :) what I was trying to acomplish (but commented/deleted out) was something like: sial.org/pbot/20353, but it poses problems for the typechecker. maybe encapsulating objects like: "data Object = forall a. Show a => Object a" maybe the way to go? | 17:47 | |
lambdabot | Consider it noted. | ||
17:47
MenTaLguY joined
17:52
weinig|zZz is now known as weinig
|
|||
ajs | I always know when I've said something dumb to TimToady... he gets real quiet. The other day, he said something about reserving (?P...) in Perl 5 for Guido, and I speculated on what that would be in P6... Now that I know what that does in Python (named sub-patterns) I feel silly. Of course, it's just <abc>. ;) | 17:55 | |
PerlJam | TimToady: Would make a good analog to Dumbledore if we were in the Harry Potter universe :) | 17:56 | |
s/:// | |||
18:08
babusri joined
|
|||
buu | pmurias: Yo? | 18:12 | |
gaal | nothingmuch: what we need is another dimension. viz: nothingmuch~~ | 18:18 | |
@weird nothingmuch | 18:19 | ||
lambdabot | Unknown command, try @list | ||
gaal | nothingmuch has weirdness 1 | ||
nothingmuch~~ | |||
nothingmuch has weirdness 2 | |||
18:21
bernhard joined
|
|||
nothingmuch | gaal: ? | 18:23 | |
[particle] | ~~gaal | 18:24 | |
gaal | gaal has weirdness i | 18:29 | |
[particle] | lol | 18:30 | |
gaal | see, weirdness is monotonic, even though complex numbers cannot be ordered. weird, huh? | ||
[particle] is not used to thinking in two dimensions | |||
i'm just a *point* | 18:31 | ||
cjeris | gaal: you just choose a well ordering of C where i comes after all the natural numbers | ||
gaal | cjeris: okay, they *can* be ordered, just not in a way that's very continunous in all directions. | 18:33 | |
cjeris | well, yes, constructing the particular well ordering in question is an exercise for the reader. :D | 18:34 | |
18:35
lollan joined
18:36
rlb3 joined
|
|||
cjeris | actually, that might be an interesting exercise: is there any well ordering of C where the identity mapping from C with its usual topology to C with the induced order topology is continuous in either direction? It can't be in the forward direction because neighborhoods of elements that are successors can be discrete, but I don't see offhand why it shouldn't be in the reverse direction. | 18:37 | |
18:38
Aankhen`` joined
18:42
MenTaLguY left
|
|||
cmarcelo | nothingmuch: I think moh/ now is open for you to commits, if you darcs get via ssh => darcs get nothingmuch_user@feather:/home/cmarcelo/public_html/moh .. | 18:43 | |
gotta go. bbl & | |||
18:43
cmarcelo left
|
|||
pmurias | buu: hi | 18:48 | |
18:58
prism joined
19:01
prism joined
|
|||
buu | pmurias: Were you playing with my repl? | 19:02 | |
pmurias | buu: did i screw up anything? | ||
buu | pmurias: Naw | ||
pmurias: I was just wondering what you thought | |||
pmurias | quite cool | 19:03 | |
i was scared to type 'exit' though | |||
buu | heh | ||
It's safed. | |||
Extremely. | |||
The same code runs buubot | |||
19:03
wilx left,
prism joined
|
|||
buu | Heh, I keep hoping if I show it to enough people someone will say "Gee, that's really cool but you need to do.." | 19:04 | |
pmurias | maybe syntax highlighting | ||
or the abiltiy to use CPAN modules (have not tried it myself so maybe it works already) | 19:07 | ||
19:07
Aankhen`` is now known as VAankhen``V
19:08
VAankhen``V is now known as Aankhen``
19:09
Aankhen`` joined
|
|||
TimToady | @tell audreyt that I have confirmed that .perl seems to ignore the utf8ness of its string and converts a single utf8 char to multiple chars. | 19:09 | |
lambdabot | Consider it noted. | ||
TimToady | ?eval "mĆøĆøse".perl | ||
19:09
evalbot_r14241 is now known as evalbot_r14276
|
|||
evalbot_r14276 | "\"mĆĆĀøĆĆĀøse\"" | 19:09 | |
19:10
prism joined,
shobadobs_ joined
|
|||
TimToady | ?eval say "mĆøĆøse".perl | 19:11 | |
evalbot_r14276 | OUTPUT["mĆĀøĆĀøse" ] Bool::True | 19:12 | |
nothingmuch | OI! | ||
19:15
prism joined
|
|||
pmurias | buu: there was guy/gaal on #perl6 who was doing a repl with pugs | 19:24 | |
svnbot6 | r14277 | fglock++ | v6/emitter - forked Pugs-Emitter-Perl6-Perl5-2 - adds pure-perl cells | ||
19:24
aufrank joined
|
|||
pmurias | it *might* make some sense to share some code with him/her | 19:24 | |
19:30
kanru joined
|
|||
buu | pmurias: Yeah, someone mentioned that, but I'm not sure it's really applicable. | 19:32 | |
pmurias: There's a lot of p5 specific magic. | |||
svnbot6 | r14278 | fglock++ | v6/emitter(2) - fixed Scalar initialization | 19:42 | |
19:52
justatheory joined
19:56
prism joined
19:59
prism joined
20:00
babusri joined
|
|||
svnbot6 | r14279 | lwall++ | Can't parse files using modules that aren't necessarily installed. | 20:02 | |
20:03
prism joined
20:06
prism joined
20:10
prism joined
|
|||
svnbot6 | r14280 | lwall++ | Suppress warning from blank lines with insufficient "indent" in heredoc. | 20:14 | |
20:18
knewt joined
|
|||
TimToady | @tell audreyt by the way, r14280 is just a workaround for what probably should not be a warning. | 20:22 | |
lambdabot | Consider it noted. | ||
TimToady | @tell audreyt that is, we should have the warning, but it probably shouldn't apply to blank lines. | 20:23 | |
lambdabot | Consider it noted. | ||
PerlJam | TimToady: I was just contemplating Ovid's insane request for a way to add/remove roles to/from a class in a lexically scoped sort of way. Surely there's a way to do it? Something like: my class Dog ::= OUTER::Dog but Barks; ? | 20:24 | |
20:25
cm joined
|
|||
PerlJam | Though I suspect I'll been to be talking to the meta instead. | 20:25 | |
20:27
cm_ joined
|
|||
PerlJam | s/been/need/ another weird brain-o | 20:27 | |
fglock | clkao: do you think Data::Bind with perl5-refs is fixable? | 20:34 | |
I'm considering reusing the PIL-Run runtime architecture, so that we can have junctions, laziness, binding, etc all without XS | |||
but this is somehow backwards | 20:35 | ||
20:35
knewt_ joined
20:37
knewt_ is now known as knewt
|
|||
fglock | advice, someone? | 20:37 | |
clkao | fglock: i don't know. need to ask rgs | ||
PerlJam | fglock: how is it backwards? | 20:42 | |
fglock | PerlJam: simple things like my $a = 3 are compiled to | ||
my $a = \( my $n7120 = ( bless \( my $n7119 = 3 ), 'Pugs::Runtime::Perl6::Int' ) ); | |||
PerlJam | It seems to me if you weigh that against junctions, laziness, etc. (assuming you don't have those things) then the latter wins and you should reuse PIL-Run | 20:44 | |
unless you have a more egregious example of backwardsness | 20:45 | ||
TimToady | Perljam: sure, but your inner Dog will be a different class that inherits from the outer Dog. | ||
but it sounded to me more like a temp .wrap was what what wanted. | 20:46 | ||
temporary AOP as it were | |||
though of course that mainly lets you modify the behavior of existing methods, not add new ones. | 20:47 | ||
(unless you start wrapping .HOW as well...shudder...) | |||
PerlJam | TimToady: I think my syntax imagination fails there. But at least you're confirming my thought that "surely there must be a way for this craziness" :-) | 20:48 | |
TimToady | I think the tools are there, and we can put off using them as long as humanly possible. :) | ||
20:49
jferrero joined
|
|||
TimToady | nap & | 20:54 | |
fglock | PerlJam: it's (performance, readability) vs features | 20:57 | |
I'm wondering about compiling to Inline::C :) | |||
PerlJam | features win IMHO (but that's just me) | ||
ashleyb | \\\ | 20:58 | |
*oops :) | |||
20:59
weinig is now known as weinig|bbl
|
|||
svnbot6 | r14281 | fglock++ | v6/emitter(2) - Scalar - minor fix | 21:03 | |
fglock | oops - I'm late & | 21:05 | |
21:05
cm joined,
fglock left
21:22
cm joined
21:30
theorbtwo joined
21:33
prism joined
21:35
larsen joined
21:50
pelagic joined
21:59
pelagic joined
22:03
Limbic_Region joined
22:06
markstos joined
22:10
cjeris left
22:22
mako132_ joined
22:31
justatheory joined
22:32
weinig|bbl is now known as weinig
22:51
avarab joined
22:57
[particle] joined
23:06
mako132_ joined
23:17
mako132_ joined
23:21
weinig is now known as weinig|food
|
|||
nothingmuch | yay! first rain! | 23:36 | |
Limbic_Region | nothingmuch - you have never seen rain before? | 23:37 | |
23:37
kalven joined
23:40
demerphq joined
23:51
mako132_ joined
|
|||
svnbot6 | r14282 | audreyt++ | * 01-10interpolating-functions.pl: Make this example actually run, | 23:58 | |
r14282 | audreyt++ | and revert TimToady++'s blank-line padding since a Proper Fix for | |||
r14282 | audreyt++ | the warning mechanism is coming in. | |||
TimToady | morning audreyt | 23:59 | |
audreyt | greetings TimToady | ||
lambdabot | audreyt: You have 5 new messages. '/msg lambdabot @messages' to read them. | ||
audreyt | @messages | ||
lambdabot | cmarcelo said 6h 12m 50s ago: thank you for cleaning up :) what I was trying to acomplish (but commented/deleted out) was something like: sial.org/pbot/20353, but it poses problems for the | ||
typechecker. maybe encapsulating objects like: "data Object = forall a. Show a => Object a" maybe the way to go? | |||
cmarcelo said 5h 19m 18s ago: I chmod +w public_html/moh directory, I think that will do it :) | |||
TimToady said 4h 50m 21s ago: that I have confirmed that .perl seems to ignore the utf8ness of its string and converts a single utf8 char to multiple chars. | |||
TimToady | I think the =cut warning blew up sort.t | ||
lambdabot | TimToady said 3h 37m 42s ago: by the way, r14280 is just a workaround for what probably should not be a warning. |