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&#241;o Garc&#237;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.