Prelude was borken (worked around now): sial.org/pbot/11497 | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste: sial.org/pbot/perl6 | Chip needs help!!! www.geeksunite.net Set by autrijus on 4 July 2005. |
|||
Darren_Duncan | OSCON 2005 Portland is my first conference ever (unless one counts WWDC 2001, which I also went to) | 00:01 | |
geoffb | I used to work at SAP conferences, but I don't count those -- I wasn't attending, but rather attending to. | 00:02 | |
And I did OSCON in Monterey and once before that did some set up for a conference in Las Vegas . . . that's about it. | 00:03 | ||
One attendance, like half a dozen "worked at" | |||
autarch | is pugs File::Spec supposed to work at all? | 00:24 | |
It seems to be missing aliasing from the loaded per-OS module to File::Spec's namespace | |||
sheesh, don't tell me people who normall hang out here and answer questions have things to do on Saturday night. C'mon, I thought you were all nerds! | 00:28 | ||
geoffb | Well, I'm here, I just don't know the answer to your question. ;-) | 00:29 | |
autarch | heh | ||
It passes its tests but then breaks in FindBin | 00:30 | ||
which is used in the inc::Module::Install stuff | |||
I'm seriously tempted to start on Module::Build for P6 now | |||
just enough to be able to do ./Build test, at least | 00:31 | ||
autrijus | yo. | ||
geoffb | yo, autrijus | ||
autrijus | inc::Module::Install uses the perl5 FindBin and FileSpec | ||
geoffb | Up from your nap? | ||
autrijus | no, just registering for icfp | ||
firefox annoyingly crashed so I need to refill forms | 00:32 | ||
geoffb | bleah | ||
autarch | autrijus: It just says "use FindBin" | ||
not use perl5-FindBin | |||
autrijus | autarch: it is also a perl5 program to be run by perl5. | ||
and it's written in perl5 if you take a look :) | 00:33 | ||
autarch | oh | ||
it's not really obvious from looking at Module::Install stuff, since it's all declarative | |||
but it's quite funny, because if you run "pugs Makefile.PL" it gets at least a little way in before blowing up ;) | 00:34 | ||
this is legit, right: class Date-0.01-datetime.perl.org; | 00:35 | ||
geoffb | There has got to be some bit of magic source filtering that will allow you to write relatively simplistic perl 6 code and have it run under both perl6 and perl5. Just the brain dead simple stuff like . reverting to -> and ~ reverting to . | 00:36 | |
autrijus | autarch: sure is | ||
I think the bit of magic is autodetection as specced in synopsys for all code not starting with "use v6" or "class" | 00:37 | ||
geoffb | And by run it under both, I mean the same file, byte for byte -- so the source filtering would have to noop when run by pugs | ||
autrijus | and exec perl5 otherwise | ||
geoffb | No, I meant writing perl 6 that will magically run on perl 5.8 or so. Some kind of Acme::Madness | ||
Cause dammit, if you can do Acme::Bleach, this can't be that hard | 00:38 | ||
autrijus | yeah, and I mean that it's builtin in perl6 :) | ||
geoffb | You're saying "write Perl 5, and both perl6 and perl5 interpreters will do the right thing, because perl6 will hand off transparently to perl5", right? | 00:39 | |
Oh, | 00:40 | ||
duh, I think I get what you mean | |||
If you write Perl 6 code, but start it off with a source filter instead of 'use v6', you'd ALWAYS get the perl5 interpreter | 00:41 | ||
autrijus | yup. | ||
geoffb | bleah. That's no fun. | ||
autarch | regression in pugs? multi submethod BUILD (: Int|Real +$epoch) returns Date | 00:42 | |
that no longer seems to parse | |||
autrijus | not sure what the : means | ||
autarch | ah | ||
it used to parse | |||
autrijus | that would be a bug | ||
autarch | I thought that meant don't auto-assign the invocant to anything special | 00:43 | |
autrijus | oh. cute! maybe ask on p6l :) | ||
(but I don't remember that syntax) | |||
but wait | |||
autarch | I have no idea where I got that from | ||
autrijus | you can simply drop the : | ||
and it would still mean that. | |||
joao | autrijus: i just read the faq. it would be nice to contribute, but i don't think i got the knowledge to do it :) | 00:57 | |
dudley | autrijus: If someone could give the committer bit to 'dudley' on openfoundry, I'd be eternally grateful... | 00:59 | |
autarch | how to see all the arguments passed to one's BUILD? | 01:01 | |
preferable ala "@_", so I can see both the invocant and the params (with names) | 01:02 | ||
autrijus | autarch: *%_ lets you get all named args | 01:03 | |
$self: *%_ | |||
autarch | ah | ||
autrijus | joao: you can start by playing with examples :) anyway... may I have your email address? | 01:04 | |
dudley: done | |||
autarch | argh, MMD dispatch to BUILD seems very busted | ||
autrijus | you want a MMD BUILD? | ||
joao | you can, but what's the reason? I have some different emails for different purposes :) | ||
autarch | I could've sworn it was working the other day | ||
autrijus | joao: the reason is I'd like to sent you an invitation email | 01:05 | |
as a committer | |||
autarch: elaborate? I may know where to fix | |||
autarch | paste? | ||
autrijus | perlbot: nopaste | ||
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
pasteling | "autarch" at 65.103.28.217 pasted "some code from Date.pm" (7 lines, 234B) at sial.org/pbot/11651 | 01:07 | |
svnbot6 | r5346, autarch++ | Date - refine the tests to use localtime() properly | 01:11 | |
r5346, autarch++ | still all fail because MMD to BUILD seems to be busted or my brain is busted | |||
autrijus | autarch: if it worked it worked by chance :-/ | ||
fixing | |||
autarch | heh | ||
well, I was hoping my work would help provoke pugs bugs, so I guess it's working | 01:12 | ||
autrijus | autarch++ # indeed | 01:13 | |
dudley | autrijus: thanks. I'm going to add a BUILDING file to document the various make targets, environment variables, etc. for building Pugs | 01:14 | |
and move the build instructions out of README | 01:15 | ||
autrijus | cool | ||
I thought the usual name is INSTALL | |||
or am I mistaken? | |||
autarch | no, that's normall | ||
dudley | d'oh, of course it is | 01:16 | |
stevan | autarch: did you figure out the File::Spec issue? | 01:17 | |
autarch | stevan: yeah, I didn't realize the Makefile.PL for modules in ext was Perl5 | 01:18 | |
so I ran it as pugs Makefile.PL | |||
although actually, I'm still not sure that that answers my original q | |||
there's no tests for FindBin, hmm | |||
autrijus | autarch: fixed, committing | 01:19 | |
autarch | autrijus: wow, cool | ||
stevan | autarch: FindBin was ported by sri, so I cannot help with that | 01:20 | |
but the platform specific stuff in File::Spec too advantage of a "feature" in early Pugs | |||
autrijus | and I promptly "fixed" it | 01:21 | |
svnbot6 | r5347, autrijus++ | * allow MMDs in BUILD and DESTROY, as requested by autarch. | ||
stevan | where that subroutines were always global | ||
autarch | oh | ||
stevan | autrijus: it's been fixed?? cool | ||
autrijus | stevan: yes. so... got time to changelog another round? :) | ||
autarch | I suspect FindBin is busted then | ||
although I can't understand how the File::Spec tests pass at all | 01:22 | ||
stevan | autrijus: how long do I have before release? | ||
autarch: they load the platform specific modules directly | |||
autarch | I mean, it calls "use File::Spec" and then "devnull()". How does devnull() get exported? | ||
autrijus | $ ./pugs -MFindBin -e 'say $FindBin::Bin' | ||
/home/autrijus/work/pugs | |||
autarch | no, take a look at 01_file_spec_test.t | ||
autrijus | stevan: I don't know, at least 24hours | ||
stevan | autrijus: in that case, yes, I can | ||
I will start later tonight, and finish tommorrow morning | 01:23 | ||
autrijus | stevan++ | ||
stevan is about to watch a movie with the wife :) | |||
autrijus++ :) | |||
autrijus | enjoy your movie :) I'll go find food | ||
bbiab | |||
autarch | aw, that was cute, you two | ||
stevan | autarch++ # dont be jealous, there is plenty to go around :P | 01:24 | |
autrijus | autarch++ # and you get double too | ||
Amnesiac | o.O | 01:25 | |
autarch | I'm not jealous, I was enjoying the mutual love ;) | ||
Amnesiac | increment party? | ||
autarch | the #perl6 mutual love society | ||
01:25
autarch is now known as barney
|
|||
barney | o/` I love you, you love me o/` | 01:25 | |
01:25
barney is now known as autarch
|
|||
geoffb | DEAR GOD NO | 01:25 | |
Amnesiac | hahahah that was kind of sick! | 01:26 | |
geoffb | No parent should ever be faced with that. | ||
autarch has no kids, and that's one damn good reason | |||
stevan | nice, my IRC client colored <barney> in purple too | ||
autarch | that's excellent | 01:27 | |
stevan | autarch: ohhh, but there are sooo many things far worse than barney | ||
autarch | I'm sure | 01:28 | |
I have friends with a kid | |||
he's enough | |||
dudley | (changing diapers)-- | ||
stevan attended a 3 year olds birthday party today, with like 30 other kids running around (3 of them mine too :) | |||
autrijus | well at least it's better than unchanged diapers... | ||
dudley | Ever seen a Mary Kate and Ashley video? It'll make you get down on your knees and pray for Barney... | 01:29 | |
joao | autrijus: being member of the project means that I can commit to svn repos. ? | ||
autarch | I'm very glad I can answer no to that | ||
dudley | I wish I could... | 01:30 | |
autrijus | joao: yes. | ||
joao | autrijus: svn+ssh://joao@svn.openfoundry.org/pugs ? | ||
something's missing | |||
:) | |||
autrijus | joao: no, just the same uri as your checkout | ||
geoffb | dudley, MK&A are *also* banned from the house. :-) | ||
autrijus | joao: just commit and you'll be prompted password | ||
joao | Oh | ||
autrijus | you can start by adding yourself to AUTHORS. | 01:31 | |
joao | I checked-out using http:// mode | ||
autrijus | that's fine | ||
autarch | oh yeah, I should put myself in AUTHORS | ||
joao | Good, thanks | ||
stevan | joao: you can check back in too, it uses WebDAV | ||
joao | stevan: what do you mean? (sorry, i didn't understand :P ) | ||
svnbot6 | r5348, autarch++ | AUTHORS.insert($self) | 01:32 | |
stevan | joao: svn over http uses WebDAV which allows saving content over HTTP | ||
it adds some bits to the HTTP protocol, I dont remember the details | |||
joao | Oh, i didn't know | ||
autarch | how could you possibly remember the details? | ||
there's _SO MANY_ details | 01:33 | ||
joao | :) | ||
autarch | err, pugs now installs my Date.pm into /usr/local/share/perl6/Date.pm | ||
stevan | autarch: actually IIRC WebDAV's extensions are fairly simple (at least they were when I first looked at them) | ||
autarch | but that's the only modlue under ext it installs | ||
stevan: that wasn't the impression I got from hanging out on the svn list | |||
geoffb | clkao, I seem to recall you hate DAV -- why? | 01:34 | |
autrijus | that's because svn folks abuse DAV | ||
and layer on top of it a half implemented DeltaV | |||
as well as some other things. | |||
autarch | as long as they don't abuse dave | ||
autrijus | mm RolskyDAVe | ||
stevan | poor dave | ||
joao thinks he will learn a lot just being around :-) | |||
autrijus | really food & | 01:35 | |
stevan | autarch: the heart of DAV is DELETE, PUT and COPY HTTP methods | ||
autarch | ok, now MMD is taking Date.new( epoch => $epoch ) and sending it to BUILD (Str $string) | 01:36 | |
instead of BUILD (Int +$epoch) | |||
stevan | oh wait, MOVE LOCK and UNLOCK too | ||
autarch | shouldn't named args always be checked first? | ||
damnit, you can't eat when I have questions! | 01:37 | ||
svnbot6 | r5349, dudley++ | Move build instructions from README to INSTALL | ||
autarch | it's not fair! | ||
autarch whines like a little baby | |||
stevan | autarch: MMD is still being defined, AFAIK | ||
autarch | I'm tempted to suggest he should order Chinese takeout ;) | ||
stevan: yeah, I've been following that on the p6-l list | |||
stevan | surely he will bring his laptop where ever he goes | ||
autarch | stevan: sure, but he may not have wireless | 01:38 | |
Khisanth | if he brings it to the shower ... | ||
autarch | he did bring it with him when walking through the night market with my wife and I | ||
stevan | autarch: i think taiwan has pretty good coverage (at least that is what ingy said) | ||
autrijus | autarch: +$epoch renders it optional. you need ++$epoch I think, and even then I don't think mmd currently tiebreaks on name, only on type. | ||
autarch | ++$epoch ? | ||
autrijus | or (+$epoch is required) | ||
or something like that | 01:39 | ||
to mark it as nonoptional | |||
autarch | I thought +$epoch meant named & required | ||
stevan | I think that syntax was depreceted | ||
autrijus | I think that syntax was speculative | ||
autarch | and +?$epoch meant and named and optional | ||
autrijus | autarch: that is not what S06 says | ||
autrijus thumps the bible | |||
autarch mutters | |||
stevan | thats what I remember too | ||
autarch | ah, I see | 01:40 | |
autrijus | but seriously, you can just drop the + | ||
BUILD (Int $epoch) | |||
that will still allowed for named | |||
as all positionals qualify for named | 01:41 | ||
autarch | ah | ||
pasteling | "autarch" at 65.103.28.217 pasted "But what about this ..." (5 lines, 180B) at sial.org/pbot/11653 | 01:42 | |
autrijus | you have to use ?$month=1 | 01:43 | |
$month=1 makes no sense | |||
or +$month=1 | |||
autarch | right | ||
ok, that's what I thought | |||
autrijus | yay, one minute passed without a question. I can now finally go find food & | 01:44 | |
autarch | hmm, pugs is still calling the wrong one though ;) | ||
but you should go eat | |||
it needs to tie break on name when named params are used | |||
I'm going to eat junk food and read or something & | 01:45 | ||
joao | I must go offline, now. See you tomorrow! | 01:46 | |
svnbot6 | r5350, dudley++ | Set usual svn properties on INSTALL | 02:25 | |
gaal | morning. | 04:30 | |
why is t/builtins/caller.t not parsing? looke like something's up with class definitions. | |||
svnbot6 | r5351, fglock++ | the Span classes were reorganized; added Set::Infinite | 04:48 | |
r5352, fglock++ | new( :int, :object => 1..10 ) works | 05:44 | ||
r5353, fglock++ | updated dependencies | 05:59 | ||
jdv79 | should this run?: perlmonks.org/index.pl?node_id=469482 | 08:23 | |
nothingmuch | morning | 09:00 | |
Nattfodd | morning | 09:02 | |
autrijus | morning | ||
autrijus is finally summoning enough sanity to tackle precompiled prelude | 09:03 | ||
Aankhen`` | jdv79 >> There seem to be a couple of brackets (parentheses, not square brackets) missing under the first `given $result_3 { ... }` block. The `return` statements have an opening bracket but not a closing bracket. | 09:04 | |
Aankhen`` wanders off to eat lunch. | 09:05 | ||
nothingmuch | autrijus: lumi has interesting ideas | 09:15 | |
i'm trying to get him to blurt here | 09:16 | ||
since i don't know diddly squat about them, but you might, i think it's appropriate | |||
autrijus | lumi: ideas? | ||
nothingmuch | dum dee dum | 09:17 | |
lumi | Well | ||
They have absolutely nil to do with Perl, but all the compiling going around made me think | |||
Hanzi is sort of an AST for natural language, right? | |||
nothingmuch | lumi: i'll quote tye: | ||
autrijus | lumi: sort of, yes | 09:18 | |
lumi | Even though it happens to coincide with a specific language | ||
nothingmuch | err, paraphrase since I can't find it | ||
cat skinning is on-topic in perlmonks since TIMTOWDI | |||
so you're allowed to talk about anything ;-) | |||
autrijus | lumi: no, it coincides with no specific language :) | 09:19 | |
lumi | I was wondering about the possibility of using, probably not actually hanzi, but a language AST, which could be compiled into natural intermediate languages | ||
Oh, I thought it more or less coincides with Mandarin? | |||
autrijus | it also "coincides" with Cantonese, Holok, among other things. | ||
to the same degree | |||
lumi | Obviously in the AST it makes little sense to optimize or anything, except perhaps for a reasoning engine? | 09:20 | |
autrijus | it's like saying DBI coincides with DBD::Oracle | ||
which may well be true, but is not specific in any sense | |||
lumi | Ah, OK, but being positional, I thought it shares its grammar with one particular dialect | ||
Okay, I see what you mean, but that's sort of what I was saying by "coincides" I think | |||
nothingmuch | ook, /me has to go order lunch | 09:21 | |
too bad, I want to listen =( | |||
talk slowly | |||
lumi | But in the NIL you could have grammar specialization, and the AST can be as detailed as you like | ||
But to know how helpful this is, I'd need to know probably if the general problem with machine translation is missing data, or an insufficient representation of the language models | 09:22 | ||
autrijus | I think the general with MT is common sense. | 09:23 | |
s/general/general problem/ | |||
lumi | Because if it's the former, then a sufficiently detailed AST would let you compile down to any human language in a sufficiently legible way.. I was thinking also things like tagging with "replace this with an idiom if possible" | ||
Common sense is always nice.. In what way? | |||
autrijus | which is why huge-corpus-matching-based translation works really well. | ||
lumi | Ohh, in the system | ||
autrijus | er, the cyc sense of common sense, among other things | 09:24 | |
lumi sees | |||
That Google project sounds strange, statistical analysis of a metric gigaton of documents | |||
But apparently works fairly well.. I guess my model isn't so useful | |||
theorbtw1 | I think it sounds amazingly cool. | ||
lumi | Well this is true | 09:25 | |
Although inferring the common sense is still strange | |||
Especially inferring common sense from UN documents... | |||
theorbtw1 | Yeah... I'm unconvinced that UN documents will form a good corpus for general use of language. | 09:26 | |
I suspect people use different sorts of language when making speaches before the UN then when blogging about their kitten. | 09:27 | ||
lumi | The kitten filibuster | ||
theorbtw1 | It is, however, mirroring the way humans learn language, and making up for the lack of common sense with bulk. | 09:28 | |
lumi | Maybe a wiki translation model would work with that | 09:29 | |
It translates and the human fixes up the translation | |||
nothingmuch returns | 09:44 | ||
so, will this be implemented in perl6? | |||
oh my! 16 points to sainthood | 09:45 | ||
nothingmuch is getting butterflies | |||
theorbtw1 | Last on PM 5 weeks ago. | 09:46 | |
Your monks I've met list on your homenode needs to be updated. | |||
09:47
theorbtw1 is now known as theorbtwo
|
|||
nothingmuch | oh, it was | 09:47 | |
i had you, castaway, and autrijus there as well | |||
i think it didn't save | |||
i updated it during the hackathon, and have actually met a few more since | |||
autrijus is content with the friarhood | |||
nothingmuch | autrijus: it's not like I was working at it, but it is nevertheless rewarding | 09:48 | |
theorbtwo | I know of know PM bugs that'd cause that... I think you just didn't hit stumbit. | ||
nothingmuch | especially since I don't spend so much time there | ||
theorbtwo | G'morning, autrijus. | ||
autrijus | greetings theorb2 | ||
nothingmuch | theorbtwo: i think I didn't... maybe the network came down | ||
lumi | I guess it could be, I was thinking of Haskell, for Goddess knows I need a boost there | 09:49 | |
nothingmuch | or maybe i just got confused, that happens a lot | ||
the goddess likes haskell? | |||
lumi | But a p6 boost is good as well | ||
nothingmuch | i would argue that the goddess likes forth better ;-) | ||
lumi | It's very confusing | ||
So very Discordian | |||
Confusion from order is good | |||
nothingmuch | i find it clear upon sufficient inspection | ||
autrijus | Perl 6 is fully blessed with the Holy Chao | 09:50 | |
nothingmuch | and I'll argue that discordian goodness has both order and chaos, as long as they are not destructive | ||
hold on, i'll refer you to a page | |||
autrijus | gaal|work: so, strangely, pugscc on subroutines has never worked | ||
theorbtwo | 3+rand()*$n cheers! | ||
autrijus | so neither of us broke it -- you can't break something that never worked | ||
lumi | That's a technicality | 09:51 | |
nothingmuch | page 63 | ||
lumi | Oh yup | 09:52 | |
lumi concurs | |||
nothingmuch | www.principiadiscordia.com/book/70.php | 09:54 | |
nothing_pasta | putter: smoke loop restarted | 09:59 | |
theorbtwo | Hello, Maddingue. | 10:00 | |
nothingmuch thinks that Damian is aggreeing with him on MMD | 10:05 | ||
i'm not sure though | |||
theorbtwo | pugscode.org/ | 10:15 | |
nothingmuch | theorbtwo? | 10:15 | |
gaal|work | autrijus: hi (was away) | ||
theorbtwo | Chip needs help!!! www.geeksunite.net | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste: sial.org/pbot/perl6 | 10:15 | |
gaal|work | the AST was richer, once... | 10:16 | |
it had _some_thing in it to do with subs, now it's much shorter | 10:17 | ||
so maybe it didn't wokr, but presumably it was closer :-) | 10:18 | ||
Juerd++ # feather admin | 10:20 | ||
autrijus | but anyway, I think the problem is much harder if you use globas in prelude | 10:21 | |
or file-scope lexicals | 10:22 | ||
gaal|work | i think we can avoid those | ||
autrijus | that'd be great. | ||
gaal|work | we used to have %*INC declared there | ||
is class-scoped my okay? | |||
autrijus | still thinking about it | ||
the gist of the problems is that if two subEnv share the same syms | 10:23 | ||
the current compile infrastructure will clone the syms | |||
my $foo; sub bar { $foo }; sub baz { $foo } | 10:24 | ||
so they will see different $foo after compilation | |||
there may be a way around this, I'm still thinking | |||
autrijus ponders the wisdom of working on this instead of just switch things to PIL | 10:26 | ||
gaal|work | why's it different from what eval does? | ||
autrijus | (which has much saner lexical semantics) | ||
gaal|work | i know that's a PHB question :-) | ||
autrijus | hm? eval triggers a reparse | ||
the thing is we're freezing the env | |||
gaal|work | hmm, right | 10:27 | |
autrijus | otoh, we can instead choose to _not_ freeze the env. | ||
since subEnv is a Maybe | 10:28 | ||
we can just throw Nothing into it | |||
but that is pessimistic, since that means no lexicals whatsoever. | |||
that may actually be correct though. | |||
autrijus thinking | |||
gaal|work | what's left of a BEGIN block after compilation? | ||
autrijus | its value. | ||
gaal|work | might need to leave a little more metadata there, eventualy | 10:29 | |
but we probably don't need that now. | |||
autrijus | whatkindofmetadatadoyouhaveinmind? | 10:31 | |
that value will be annotated with a Pod I think | |||
er, Pos | |||
essentially its original source range | |||
of the BEGIN block | |||
which should be enough if people way to do a reparse | 10:32 | ||
s/way/want/ | |||
gaal|work | and the .text prop, i guess? | ||
.source | |||
whatever it'll be called | |||
autrijus | you can get there from here. | ||
gaal|work | okay | ||
autrijus | if you save the src code as some $=SOURCE etc. | ||
nothingmuch | smoooookkeee..e..... soooo.... sloooow | 10:33 | |
what is the status of compiled prelude? | |||
gaal|work | why was subEnv made a Maybe, originally? | ||
(back to your previous thread) | |||
autrijus | nothingmuch: workingonit | 10:34 | |
gaal|work: prims need no envs. | |||
I mean, real prims | |||
nothingmuch | heh: www.perlmonks.org/?node_id=473701 | ||
autrijus | ok, I made the Nothing fix. testing if it works | 10:35 | |
nothingmuch | nothingmuch.woobling.org/MiracleOfLife.wmv | 10:38 | |
(mplayer friendly | |||
wolverian | IMHO making PIL the primary target seems sane at this point | 10:42 | |
autrijus | yes. | ||
but that may take a week or three | |||
and precompile prelude is worthy to add in if trivial | |||
wolverian | is it worth it determining whether it is trivial? :) | 10:43 | |
gaal|work | where can i read on the convention of constructors? eg "MkCode" vs. "mkSub" - is the case different because one is the "real" data type construcor? | ||
autrijus | right. MkCode is "real" | 10:45 | |
mkSub is just a function. | |||
the diff being you can pattern match over MkCode but not mkSub. | |||
it'd be fun to pattern match over mkSub, though. | |||
(which I hope to learn how in the Curry workshop) | 10:46 | ||
gaal|work | there are surprising things you can pattern match over. (n+1) for example | ||
autrijus | yeah, which is seen in some part of haskell community as a misfeature | 10:47 | |
ok, I grok the reason of borkage. | |||
in Compile.Pugs | |||
instance Compile Exp where | |||
gaal|work | the Evolution page cites someone calling it an abomination i think :) | ||
autrijus | it doesn't cover all recursive nodes | ||
so whenever it hits a App or Pos | |||
it reverts to simple "show" for everything else | |||
ixing | |||
autrijus is, again, glad to have sanity back | 10:48 | ||
hm, this is a very good candidate of Data.Generics | |||
I should be able to just gmap compile over Exp | |||
but I'll implement it in the ugly and fast way first ;) | |||
gaal|work | is that defaut show case ever right? | 10:49 | |
autrijus | surprisingly, yes, for | ||
gaal|work | well, it is in literals | ||
autrijus | Noop, NonTerm | ||
and Var | 10:50 | ||
that's all ;) | |||
gaal|work | oh, right, in literals it *isn't* right :_) | ||
autrijus | mm, a consistently-shifted smiley | ||
gaal|work | scarface. | 10:51 | |
1. :-{} # user wears lipstick | 10:52 | ||
2. :{}) # user was kissed on the nose by user #1 | |||
autrijus | lol | 10:53 | |
theorbtwo | You could explicitify the Noop, NonTerm, and Var cases, and get rid of the default implementation. | ||
gaal|work | to2, that's what i had in mind | 10:54 | |
autrijus | gaal|work: hrm, if you have spare cycle, maybe I can check in for you to fill in the other instance Compile Exps | ||
that way I can work on getting subEnv right | |||
pasteling | "Aankhen``" at 203.101.20.186 pasted "want and MMD" (6 lines, 161B) at sial.org/pbot/11660 | ||
gaal|work | hmmm, waiting for lunch to be delivered and my coworkers might eat me if i delay them :) | 10:55 | |
Aankhen`` | Err. | ||
Wait. | |||
I mixed that up somewhere. | |||
autrijus | alright then :) | ||
svnbot6 | r5354, autrijus++ | * repair pugscc so we can more easily test compilation. | ||
pasteling | "Aankhen``" at 203.101.20.186 pasted "want and MMD, corrected (hopefully)" (6 lines, 172B) at sial.org/pbot/11661 | 10:56 | |
autrijus | no output ;) | ||
gaal|work | but isn't it just compile (v@Var _) = return $ text "return" $+$ parens (text $ show v) or similar? | ||
autrijus | gaal|work: right... for Var you don't need to add anything | 10:57 | |
Aankhen`` | Well, what does it return? :-) | ||
autrijus | the basecase covers that | ||
Aankhen``: well, depending on context. | |||
Aankhen`` | In that particular case? | ||
Argh. | |||
autrijus | yeah, depending on what cxt you call bar() with. | ||
Aankhen`` | I think I'll give up for now | ||
I can't think straight. | |||
autrijus | right. and the answer to the question you can't quite form is List. | 10:58 | |
gaal|work | lol | ||
autrijus | (i.e. if it's ambiguous it always fallback to slurpy (aka list) context) | ||
Aankhen`` | Ah. | ||
autrijus | and if it's ambiguous over laziness, it's Lazy | ||
and if it's ambiguous over type, it's Any. | |||
pasteling | "Aankhen``" at 203.101.20.186 pasted "want and MMD, once again" (6 lines, 176B) at sial.org/pbot/11662 | 10:59 | |
Aankhen`` | That was what I was originally thinking of, FWIW. :-P | 11:00 | |
autrijus | "Array version" | ||
Aankhen`` | OK. | ||
autrijus | and I even answered correctly with prescience :) | ||
Aankhen`` | Heh. | ||
Even though @foo is not slurpy? | |||
autrijus | hm | 11:01 | |
svnbot6 | r5355, autrijus++ | * initial work for getting Compile Exp right (still a couple to be filled) | ||
autrijus | I read it incorrectly then | ||
with $foo and @foo you are matching against Any | |||
the return tyep of bar | |||
with Item and Array, respectively | |||
Aankhen`` | So whichever one is defined first? | 11:02 | |
autrijus | so want.List is always false | ||
'foo' is returned | |||
it's distance matched with Item and Array | |||
Item wins | |||
Aankhen`` | Ah, right, want will return positive if it's specific, not general. | ||
autrijus | so "Scalar version". | ||
but if @foo was slurpy (which would really be ambiguous). | |||
then it's list. | |||
Aankhen`` | Cool. | 11:03 | |
Thanks for the explanation. :-) | |||
autrijus | np :) this is one of the things I finally groked at hackathon | ||
this should really get written down along with the MMD resolution algorithm. | |||
(hint hint) | |||
autrijus goes back hacking PCP | 11:04 | ||
gaal|work | btw: larry mentioned something about "want" knowing if the calling context wants an *object* or a different value. but let's not think about that right now. :-) | 11:05 | |
autrijus | it's just the type slot of context | ||
that's fine | |||
note that the context is merely the signature of the return continuation subroutine. | 11:06 | ||
you can think of it as something like &return.signature | |||
gaal|work | but when i looked into implementing want i didn't see a way to get that data from Ctx | ||
autrijus | so it has its usual Type/Slurpiness/Laziness axes | ||
Aankhen`` | ?eval class Foo { method bar (::?CLASS ::class) { ::class.new.ref } }; class Bar is Foo { }; Bar.new.bar | 11:07 | |
evalbot6 | Error: No compatible subroutine found: "&bar" | ||
autrijus | huh? Cxt has a Type | ||
testing that Type against OBject gets you that. | |||
Aankhen`` | ?eval class Foo { method bar (::?CLASS ::class) { ::class.new.ref } }; class Bar is Foo { }; Bar.new().bar | ||
evalbot6 | Error: No compatible subroutine found: "&bar" | ||
Aankhen`` | ?eval class Foo { method bar () { "bar" } }; class Bar is Foo { }; my $bar = Bar.new(); $bar.bar() | ||
evalbot6 | 'bar' | ||
autrijus | ?eval class Foo { method bar (::?CLASS $class: ) { $class.new.ref } }; class Bar is Foo { }; Bar.new().bar | ||
Aankhen`` | Ah, my mistake. | ||
?eval class Foo { method bar (::?CLASS ::class) { ::class.new.ref } }; class Bar is Foo { }; Bar.bar() | 11:08 | ||
evalbot6 | Error: No compatible subroutine found: "&bar" | ||
Aankhen`` | ?eval class Foo { method bar (::?CLASS ::class) { ::class.new.ref } }; Foo.bar | ||
gaal|work | autrijus: cool! i'll work on want later on then. | ||
autrijus | er, the "method bar" there has one inv and one arg | ||
evalbot6 | Error: No compatible subroutine found: "&bar" | ||
nothingmuch | cwest: rsync is not working | ||
autrijus | you probably want a trailing colon. and I'm not sure the ::?CLASS dwigil works | ||
Aankhen`` | It ought to have only one arg, that is to say, `::class`, where `::class ~~ ::?CLASS`. | ||
Ah. | |||
autrijus | nor the ::clas dwigil | ||
Aankhen``: but method adds one implicit inv. | 11:09 | ||
Aankhen`` | ::?CLASS parses, dunno if it works. | ||
Oops. | |||
My bad. :-) | |||
?eval class Foo { method bar (::?CLASS ::class: ) { ::class.new.ref } }; Foo.bar | |||
evalbot6 | Error: No compatible subroutine found: "&new" | ||
Aankhen`` | Holy colons, Batman! | ||
autrijus tries to not think about holy colons. | 11:10 | ||
Aankhen`` | Good idea. | ||
autrijus | I mean, holy prepuce is bad enough... | 11:11 | |
Aankhen`` | I'm glad I don't know what a 'prepuce' is. | ||
nothingmuch found out about a nice salad place that does delivery | |||
autrijus | # en.wikipedia.org/wiPki/Holy_Prepuce (feature article even) | ||
castaway read "nice salad picture" then got confused | |||
Aankhen`` | I refuse to look at that link. | ||
(I'm scared) | 11:12 | ||
castaway | its devoid of pictures of same, Ana | ||
autrijus | that link is broken anyway, a random additional P crept into it | ||
Aankhen`` | Heh. | ||
castaway | invasion of the Ps ! | ||
Aankhen`` wanders off to play games. | 11:13 | ||
gaal|work | linux smoke up at perlcabal.org/~gaal | 11:14 | |
lunch & | |||
theorbtwo | It's an invasion of the nothings! | 11:21 | |
autrijus | dinner & | 11:24 | |
castaway | nothing 2 much? | 11:28 | |
theorbtwo | Nothing mtwoch. | ||
castaway | da bro! | 11:30 | |
broquaint | da C! | 11:31 | |
theorbtwo | OK, NM, you're just doing this to be silly now, right? | 11:33 | |
castaway wanna new camera :( | |||
theorbtwo wonders why NM hasn't hit the "too many logins from same IP" limit yet. | 11:34 | ||
masak finds it ironic that there would be several instances of "nothingmuch" | 11:47 | ||
reminds me of agent smith | 11:48 | ||
gaal|work | to2, can there be a limit like that? it would break on NAT. | 11:55 | |
wow cool, theree are only about 2**5 failures in t/ now. | 11:57 | ||
nothingmuch | sorry for messing around | 12:05 | |
my connection was dying, and coming back | |||
and I didn't notice | |||
svnbot6 | r5356, gaal++ | unbreak the build (subType -> subEnv) | 12:15 | |
theorbtwo | gaal, there was not too terribly long ago, though I might have been thinking of slashnet. | 12:32 | |
gaal|work | that kinda exludes AOL users. not that that's necessarily a bad thing :-) | 12:34 | |
clkao | www.gucomics.com/archives/view.php?...e=20050627 | 12:37 | |
autrijus | perl script/pugscc -e '{say 123}.()' | 12:46 | |
*** Generated output: a.out | |||
$ ./a.out | 12:47 | ||
123 | |||
yay. | |||
Juerd | brrr, a.out. | ||
broquaint | 1337 | ||
Juerd | But apart from that: neat. | ||
broquaint | a.out is all you need. | 12:48 | |
autrijus | clkao: what's wrong with your london pmers? I got that link from sky too | ||
clkao | he is multicasting | ||
svnbot6 | r5357, autrijus++ | * proper closure support for Compile.Pugs; that's one step closer to compiled prelude | ||
autrijus | suspected as much | ||
whitay | hi | 12:53 | |
autrijus | greetings whitay | 12:55 | |
theorbtwo | gaal: They special case NATs that ask for it. | 13:05 | |
gaal|work | w00t! (backlogs) | ||
svnbot6 | r5358, autrijus++ | * all prelude functions is now fully compiled in PCP... | ||
r5358, autrijus++ | let's see if turning on Pugs.Run support for PCP | |||
r5358, autrijus++ | will Magically Work | |||
gaal|work | w00t! (again) | ||
castaway | magic++ | 13:08 | |
gaal|work | unfortunately no. | 13:20 | |
autrijus | yeah, due to "is builtin" handling. | 13:21 | |
I'm fixing | |||
gaal|work | is there a way to get haskell pretty-printing emit less layed-out code? it reaches alarming indent levels :-) | 13:22 | |
autrijus | yes, fix the prettyBind | 13:23 | |
asd | #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team #fazlamesai Turkish Linux Team | 13:35 | |
castaway wonders | 13:37 | ||
autrijus | the wonder of IRC. | 13:40 | |
masak | such things never happen to me in real life | 13:42 | |
someone comes into a room, says something 100 times, and leaves | 13:43 | ||
the net seems to facilitate actions based less on conscience and more on something else | |||
autrijus | "whim" I think is the term | 13:44 | |
masak | :) | ||
yes | |||
there's too much whim out there, generally | |||
is this exclusive to the net? do you know of any other medium where people abandon reason and thought for whim? | 13:45 | ||
gaal|work | fasion? | ||
masak | lol | ||
autrijus | gaal|work: only one problem left | 13:46 | |
that is, somehow | |||
BEGIN { $foo::bar = 1 } | |||
gaal|work | which, as oscar wilde reminds us, is when sometihng is so ugly it must be changed every six months | ||
autrijus | leaves a "$foo::bar" sym in the envGlobal | ||
but | |||
BEGIN { $*bar = 1 } | |||
leaves nothing to the compiler | |||
this is very strange and I can't easily see why | |||
gaal|work | well, we can fix that later since we don't do BEGIN in the prelude :-) | 13:47 | |
autrijus | we do something directly equivalent. | ||
sub foo is builtin {} | |||
eq to | |||
BEGIN { &*foo = sub { ... } } | |||
well, make that := | |||
but same thing | |||
aha. I filtered them out myself. | 13:52 | ||
svnbot6 | r5359, autrijus++ | * Pugs::Internals::check_for_io_leak moved to Prim.hs because | ||
r5359, autrijus++ | we need it being present for -C compilation. | |||
r5359, autrijus++ | * `sub *foo { ... }` now registers into the global namespace. | |||
autrijus | how convenient | 13:53 | |
gaal|work | (sorry, was $work'ed) | 13:58 | |
autrijus | nvm, I fixed it | ||
testing | |||
gaal|work | nvm is instead of nm so that mr pasta guy doesn't get summoned? :) | 13:59 | |
gaal|work waves at yuval | |||
autrijus | why is he mr pasta? | 14:00 | |
I remember him as mr flaming pizza | |||
gaal|work | "nothing_pasta"... | ||
of course nothing, all of it was burnt | |||
still no go i think. | 14:01 | ||
er, how do i see the svn r in my svk working copy? | |||
autrijus | svk log -l 1 | ||
hrm, I need a Compile VObject | 14:02 | ||
gaal|work | someinng along the lines of "bless " ++ (show obj) ++ (show class) ? | 14:03 | |
autrijus | no, no | ||
just do the same thing with compile VCode | |||
i.e. move the objAttr one out as a separate compilation call | |||
instead of simply show'ing it | |||
but first let me workaround it... | 14:04 | ||
gaal|work | oh, blah, how do i restore an accidentally deleted file in an svk working moose? | ||
i hate it when i do :w instead of :e in vi... | 14:05 | ||
autrijus | svk revert foo | 14:06 | |
Aankhen`` | gaal >> Does `seek` work properly? | 14:11 | |
gaal|work | yes. but on windows it only works in binary mode | 14:12 | |
Aankhen`` | Ah. | ||
gaal++ | |||
gaal|work | open("file", :layer<:raw>) | ||
i should really add a guard against all other layers... | |||
because none of them is defined | 14:13 | ||
also note that this isn't the final interface, see p6-l | |||
it seeks bytes, not chars. | |||
likewise tell. | 14:14 | ||
tell is tricky to do in utf8! | |||
Aankhen`` | Heh. | ||
gaal|work | actually random access is horrible in utf8 | 14:15 | |
meeting & | 14:18 | ||
theorbtwo | .oO(He's at a meeting in the background?) |
14:20 | |
Aankhen`` | I never did understand that, but it looks neat. ;-) | 14:22 | |
autrijus | no... you need to look at the whole sentence | 14:23 | |
gaal | work > meeting & | |||
so obviously it's "gaal" that is put to background | |||
Aankhen`` | LOL. | ||
nothingmuch | the output of gaal is productivity | ||
work is a filter | |||
and meeting is an alias for /dev/null | |||
Aankhen`` falls over laughing. | 14:24 | ||
nothingmuch has a module idea | 14:25 | ||
hack hack hack | 14:26 | ||
theorbtwo | OK then. Makes perfect sense. | 14:28 | |
autrijus | gaal: I made everything work but this line | ||
runEnv env{ envBody = ast, envGlobal = globRef, envDebug = Nothing } | |||
does not modify the original envGlobal | |||
so is rendered null | |||
attempting a fix | 14:30 | ||
works! | 14:32 | ||
it would be nice if the Makefile rules can be tweaked so "make ; make" won't pointlessly rebuild | 14:35 | ||
Limbic_Region | hear hear | 14:37 | |
svnbot6 | r5360, autrijus++ | * Lambdas and Camels, I present... precompiled Prelude! | ||
Limbic_Region decides to break the build he is on now | |||
recheckout | |||
and start over | |||
autrijus | somehow caller() broke, I think it's because :Control::Caller isn't frozen | ||
Aankhen`` | Yay! | ||
autrijus++ | |||
autrijus | fixing that | ||
Limbic_Region | is a make clean in order? | ||
autrijus | dunno | 14:39 | |
Limbic_Region does anyway | 14:40 | ||
Limbic_Region notes the time he starts the build process to see how long it takes | 14:41 | ||
autrijus is so happy we're back to sane startup time | 14:45 | ||
clkao | oh? | ||
Limbic_Region | r | ||
[10:42] <svnbot6> r5360, autrijus++ | * Lambdas and Camels, I present... precompiled Prelude! | |||
Limbic_Region notes that tomorrow is his 3 year anniversary | 14:47 | ||
autrijus | many happy returns! | ||
Limbic_Region | err - meant that for #perl since tangible perl6 has only been around for months | 14:48 | |
autrijus | heh :) | ||
Limbic_Region started with Perl and PerlMonks the same day - 2002-07-11 | 14:49 | ||
Juerd started with Perl in 1998 or 1999, and with PerlMonks in 2001 (december, though) | 14:51 | ||
Limbic_Region | autrijus - is there an official end date to your sabbatical? | 14:52 | |
autrijus | aug 1st I think | ||
since I gave myself six months | 14:53 | ||
Limbic_Region | ok - so I need to win the lottery before then | ||
it is good to have goals | |||
autrijus | heh | ||
Limbic_Region | out of curiosity - paying projects during that time frame have consituted approximately what percentage of your time? | 14:55 | |
svnbot6 | r5361, autrijus++ | * horrible hack: move Control::Caller and Time::Local into the default class hierarchy so prelude can be inititialised | 14:57 | |
14:58
Limbic_Region_ is now known as Limbic_Region
|
|||
Limbic_Region wanders off to wake Jean up & | 14:58 | ||
autrijus | PCP works on win32 now. | 15:03 | |
svnbot6 | r5362, autrijus++ | * trigger rebuild the hard way on Win32 | ||
autrijus | Limbic_Region: 10% or less | 15:04 | |
call for smokers on r5362. | 15:06 | ||
I'd like to know if that has adversely affected tests | |||
rafl | Why does rx:Petl5:m/^\[\s*(.*)\s*\]$/; (Name => $0) give me something like that: ('Name' => MkMatch {matchOk = True, matchFrom = 1, matchTo = 19, matchStr = "XML::SAX::PurePerl", matchSubPos = [], matchSubNamed = {}}) and not 'Name' => 'XML::SAX::PurePerl' ? | 15:17 | |
svnbot6 | r5363, autrijus++ | * turns out we don't need to remove pugs.exe | ||
rafl | The string I try to match is "[XML::SAX::PurePerl]", btw. | 15:21 | |
autrijus | rafl: er, that should only show up in .perl (i.e. in pugs interactive) | 15:25 | |
if you attempt to use that as string it will stringify as that string. | |||
you can force stringification by saying Name => ~$0 or Name => "$0" etc. | |||
but usually it's good as a string | |||
rafl | OK. But that doesn't happen for ($0 => "foo"). Is $0 in another context here? | 15:26 | |
autrijus | I suspect it is stringified as a hash key | ||
although I'm not exactly sure why that happens | |||
but in any case it should be good as a Str in either position | 15:27 | ||
ok, PCP looks solid. I'm running a smoke now | |||
that should be worthy of a day's work | |||
autrijus waves & | 15:28 | ||
gaal++ # did bulk of the work | |||
rafl | How do I declare class variables? I also want accessors to be created. | 15:29 | |
autrijus | my $.x | ||
but, I'm fairly sure it's not yet supported. | |||
mostly because the accessor semantic was not specced down until hackathon | |||
rafl | OK, thanks. | ||
autrijus | and I didn't get around to it post-hackathon | ||
there should be tests in t/oo/; if you don't see one, please write some | 15:30 | ||
it's in the "hackathon notes" thread in p6l | |||
bbiab | |||
stevan | morning all | 15:36 | |
starting on the changelog now, it looks safe enough :) | |||
Limbic_Region | salutations stevan | 15:37 | |
though there isn't much left of the morning at my localtime | |||
stevan | greetings Limbic_Region | ||
Limbic_Region: morning is a state of mind :) | |||
besides, in pugs-space time has no meaning | 15:39 | ||
Limbic_Region | very true | ||
stevan | it is always pugs-time :) | ||
Limbic_Region | I really need to bone up on my p6 OO so I can make some posts at the Monastery | 15:40 | |
stevan | Limbic_Region: no better way than to help with the metamodel :) | ||
Limbic_Region | stevan - really - I was thinking reading [AS]12 would be a pretty good way | 15:41 | |
:P | |||
stevan | Limbic_Region: read them, and then implement :) | 15:42 | |
Limbic_Region | stevan - I haven't written any p6 OO yet but I can tell that most of the un-initiated think p6 OO is going to work the same way as p5 | 15:43 | |
stevan | nothing could be further from the truth :) | 15:44 | |
Limbic_Region | I don't need to implement in order to crush that | ||
stevan | well, actually thats not totally true | ||
it can work a lot like perl5 | |||
but why the hell would you want it too :) | |||
Limbic_Region | dunno - and that's the point | ||
stevan | Limbic_Region: what better way to grok it, then to build it | ||
Limbic_Region | stevan - persistency doesn't always pay when dealing with someone as stubborn as I am | 15:45 | |
stevan is just messing :) | |||
Limbic_Region needs to learn at his own pace | |||
autrijus | smoke time down from 2209sec to 951sec! | ||
Limbic_Region | and that takes having a goal I feel is worth while | ||
wooo hooo | |||
autrijus++ | |||
at this point - edumacating others is worth while enough to learn what I need to learn to do that | 15:46 | ||
stevan | Limbic_Region: I am only messing around, you advocacy efforts are extremely valuable IMO | 15:47 | |
svnbot6 | r5364, autrijus++ | * argh, PCP broke PIR compilation. too tired to fix it tonight | ||
r5364, autrijus++ | -- at least throw out a meaningful error msg. | |||
nothingmuch | darcs get nothingmuch.woobling.org/Caller-Context-Handle | ||
Limbic_Region | wb nothingmuch | 15:48 | |
stevan | nadda mucho,... there is nothing there? | ||
nothingmuch | darcs get nothingmuch.woobling.org/Caller-Context-Handle | 15:50 | |
nothing/ | |||
? | |||
yes I am there | |||
that is, here | |||
reload URL | |||
nothingmuch goes cycling | 15:51 | ||
Limbic_Region: how did you like the node, btw? | 15:52 | ||
Limbic_Region | which node? | ||
oh | |||
nevermind | |||
the grammar thingy | |||
I didn't have time to digest it | |||
regex-fu isn't strong with me | 15:53 | ||
though the comments explained it well enough | |||
figuring out how it gets from one ? or ?? to the next is still lost on me though | 15:55 | ||
all in all - cool stuff | |||
wow - pugs startup is a lot faster | |||
good stuff | |||
nothingmuch | ?{ } means do this code | 15:56 | |
??{ } means do this code, and evaluate the regex it returns as a subpattern right here | |||
Limbic_Region | no | 15:57 | |
I understand that | |||
nothingmuch | err? | 15:58 | |
oh, when they are invoked? | |||
Limbic_Region | following the regex through the matching process | ||
right | |||
nothingmuch | let's say you have the pattern 'ab.*c' | ||
match on | |||
'ab53c'. | |||
just fill in one by one | |||
a for a, b for b, 5 for ., 3 for ., c for c | 15:59 | ||
(with backtracking, ofcourse, it wil lfirst try c for ., then fail, and try shortening ... to ..) | |||
Limbic_Region | right | ||
nothingmuch | now, assume the pattern was 'a(?{ warn "moose" })b.*c' | ||
a for a | |||
sub invoked | 16:00 | ||
b for b | |||
... | |||
Limbic_Region | ok | ||
so let me ask the question | |||
nothingmuch | and if it's ab.*(?{ warn "foo" })c then | ||
Limbic_Region | a matches but the whole pattern isn't matched yet | ||
so sub gets invoked | |||
nothingmuch | it will be invoked twice | ||
Limbic_Region | that's what I wanted to know | ||
nothingmuch | yup | ||
Limbic_Region | now what about in backtracking | ||
nothingmuch | every time the regex engine goes over the sub, it get's invoked | ||
Limbic_Region | is it invoked each time there is a partial match up to that point? | ||
nothingmuch | yes | ||
backtracking is sadly untrappable | 16:01 | ||
i asked p5p if we can have a ?<{ } block | |||
Limbic_Region | ok - so that is what would make my head hurt | ||
nothingmuch | that is invoked like ?{ } but when backtracking | ||
Limbic_Region | trying to figure out if backtracking (i.e. false starts) would break what I was trying to accomplish | ||
nothingmuch | if you want it more deterministic, apply (?> ) around it to make a whole subpattern unbacktrackable | ||
Limbic_Region | well - my assertion fu is also very very basic | 16:02 | |
nothingmuch | rule of thumb for that question: yes | ||
look at how 'abort_sub' is called: it's an alternative to the body match | |||
that is 'new_elem' is called just before trying to match the body | |||
if the body didn't match, the alternative is tried | |||
that does the cleanup | |||
if I had ?<{ } then I wouldn't need that | |||
Limbic_Region | well - that's the part where I said I didn't have a chance to fully digest it | ||
I saw that and thought - ok, so it must get invoked more than I would think | 16:03 | ||
and then I looked at the time and said - maybe tomorrow | |||
but thanks | |||
this really helps | |||
nothingmuch | sure | ||
Limbic_Region | so ?? can really be a mind fuck | 16:04 | |
since in backtracking the match pattern can change dynamically | |||
nothingmuch | www.pixyland.org/peterpan/index.html | ||
Limbic_Region | breakfast is ready | 16:05 | |
food & | |||
nothingmuch | have fun | ||
putter | nothingmuch: err, which node where? # backlogging... | 16:07 | |
stevan | anyone know how many tests we now have? | 16:08 | |
putter notes in p6 you get to modify the "match in progress" Match object. | |||
nothingmuch | stevan: my pugs smoke loop has been restarted... 7687 | ||
www.perlmonks.org/?node_id=473610 | |||
stevan | nothingmuch: thanks :) | 16:09 | |
nothingmuch | putter: yeah, that was a fun discussion in the hackathon | ||
i think luqui and I scared pmichaud a bit though ;-) | |||
putter: the perlmonks link is the node in question | 16:10 | ||
putter | thanks. | ||
:) | |||
nothingmuch | autrijus: did you look at nothingmuch.woobling.org/Caller-Context-Handle/ ? | 16:13 | |
putter | nothingmuch: one worry: the "if you are here, then the body match failed". With alternates being tried to compare match lengths, that may not be a correct assumption. | 16:17 | |
nothingmuch | putter: hmm... good point | ||
i'll have to test it on demerphq's blead perl | 16:18 | ||
or maybe make someone get a ?<{ } in | |||
putter | nothingmuch: one thing I've done (though I dont remember how well it worked) is something like ?{$flag=0}...?{$flag=1} | \Z?{mumble if !$flag} | 16:31 | |
hmm, thinking aloud without remembering your code... if your explicity managing a stack, a local might work better. | |||
Locals getting automagically "cleaned up" for you on backtracking. | 16:33 | ||
gaal: linux smoke up... but not yet listed on perlcabal.org/~gaal/ ...;) tnx. | 16:37 | ||
oh, wait, now it its. sorry. | 16:38 | ||
gaal: pugs.kwiki.org/?SmokedPugs updated. Thanks gaal! | 16:39 | ||
nothingmuch | putter: a local wouldn't work, because there is no way to reach into $OUTER:: | 16:44 | |
i thought about it | |||
one good idea is to use local for backtracking tokens | 16:45 | ||
that refer to stack frames | |||
whose DESTROY handler is abort_elem. | |||
since it was a didactical post I didn't want to add GC into the mes | 16:46 | ||
anyway, ciao | |||
putter | ah. | 16:49 | |
putter always worries when the parrot make says warning: cast to pointer from integer of different size ... | 16:52 | ||
svnbot6 | r5365, Stevan++ | ChangeLog - updated as of r5363; may need more work before the release though | ||
putter worries more when ghc says it... ;) | 17:04 | ||
autarch | stevan: you should mention localtime and Time::Local | 17:05 | |
ah, I see localtime | |||
Aankh|Clone | stevan >> `use_ok` wasn't repaired; I added an alternate implementation which is commented out since it doesn't work properly yet. | 17:14 | |
svnbot6 | r5366, Aankhen++ | * ChangeLog: edited stevan++'s latest additions. | ||
17:14
Aankh|Clone is now known as Aankhen``
|
|||
Aankhen`` | Hrm. | 17:15 | |
Sorry, I was mislead. | |||
autrijus's commit was supposed to have fixed it, but apparently it didn't. | |||
gaal | rehi | 17:17 | |
gaal backlogs | |||
Aankhen`` | Hola gaal. | ||
gaal | wow! | 17:18 | |
autrijus++ | |||
autrijus: caller was broke before precomp prelude | |||
i noticed it the other day, dunno why | |||
it happens | |||
caller.t parsefails on line 32 i think | |||
i'm starting a smoke to get regression info + speedup data | 17:19 | ||
stevan | autarch: feel free to add info about Time::Local if you like. I was unsure of it's purpose other than to be a facade for localtime | 17:33 | |
gaal | the ball's in p6l on that one, stevan | 17:34 | |
(hi! :-) | |||
stevan | hey gaal :) | ||
gaal | it should probably be renamed to Time; and there's unfortunately disagreement about what it should include exactly. | 17:35 | |
stevan | gaal++ # Prelude is sooooooo cool | ||
stevan only just now took a good look at it | |||
gaal | :) | ||
autrijus did the hard part :) | |||
i'm smoking on feather now - it's visibly faster | 17:36 | ||
stevan | nice | ||
gaal | but i don't know *how* faster yet. | ||
stevan | smoking is much better in holland I am told :P | ||
gaal | will post results... soon :) | ||
heh, i'm not into that myself but i don't think it's a problem around here either. | 17:37 | ||
"youth today is terrible! look at that girl for example! excuse me missy, do you smoke?" "nah, i quit that when i was twelve" | 17:38 | ||
stevan | :D | ||
gaal | t/builtins/io/time.t has some interesting probably new breakage. | 17:40 | |
svnbot6 | r5367, Stevan++ | Changelog - whoops, called the metamodel by the wrong name | ||
r5368, Stevan++ | Perl6-MetaModel : Added support for full Perl 6 style classnames (MyClass-0.0.1-cpan:JRANDOM); and added accessors/mutators for these in the MetaClass as well; oh yeah, and some tests for it too; | |||
gaal | ooh changelog! :) | ||
stevan | gaal: yup, just updated it this morning | 17:41 | |
putter | Is anyone (else) using pugs on x86_64? (I've an oddity, and am wondering if it is present in different snapshots of ghc) | 17:45 | |
gaal | guess not, putter :) | 17:47 | |
putter | :) | 17:48 | |
gaal | wow, what a sugar rush this precomp prelude thing is :) | 17:49 | |
putter | Ah well, I've been meaning to try a recent "getting ready for 6.4.1" ghc snapshot anyway. | ||
Yes. :) | |||
gaal | putter, i've been using some snapshot of 6.5 for a while now on w32, worked great | 17:50 | |
haven't updated it though - it's not a *recent* 6.5 | |||
once cute feautre is that it enumerates build files. | |||
[2 of 64] Pugs.Help | 17:51 | ||
dudley | I've been battling ghc on osx for a while now. Maybe a 6.5 snapshot is the way to go... | ||
putter | k. ghc's x86_64 support has been a work in progress. It took some time to find a snapshot that worked. But that was back in... May? | ||
gaal | hmm, my 6.5 may be that old :) but it doesn't really matter for you since i have a 32 bit box | 17:52 | |
uh, i think we broke $!. that's not good. :-) | 17:53 | ||
putter | hmm... two roads diverged in a yellow wood, shall I try 6.4.1 or 6.5... | 17:56 | |
dudley | anybody checked out ghc from cvs lately? | 17:57 | |
gaal | stevan: Pipe::* and Carp::longmess have been in the prelude for a while | ||
i'll just fix that myelf ok? or are you still editing? | |||
dudley | I can't seem to login anonymously... | ||
stevan | gaal: I am done editing, you can go for it | 17:58 | |
gugod | s/win 6 | ||
gaal | we should really use our precompilation technology on Test.pm, that'll speed up smokes immensely too | 17:59 | |
putter | dudley: the last time I checked, the password was cvs | ||
dudley | yep. I guess the darwinport is slightly broken. It uses an empty password. | 18:00 | |
putter | ooo, retargetable "make things go zoooom" ;) | ||
gaal | on feather, 2774 => 1687 seconds wall clock time PCPrelude difference | 18:07 | |
svnbot6 | r5369, Stevan++ | Perl6-MetaModel : full names now can be used everywhere too, so "Dog-0.0.1-cpan:JRANDOM"->new() actually now works, and class Fido => { is => [ "Dog-0.0.1-cpan:JRANDOM" ] } will DWIM as well; added a new test file to check this behavior as well; | ||
r5370, Stevan++ | Perl6-MetaModel : whoops, forgot to add a plan for my test; also added some class method tests as well to make sure "Dog-0.0.1-cpan:JRANDOM"->growl() DWIM; | |||
gaal | winxp data soon | ||
putter | There is a fun paper... somewhere, on the policy decisions leading to the LA? light rail system. It's thesis was policy makers, in the grip of a viceral "zooommm it's fast" feeling, neglected to attend to the whole system, which included getting people from home to/from station, and another station to/from work (ie, busses). The "ask ration question and get "weee, zoooooommm" answer" quotes were striking. Completely random thought. | 18:10 | |
gaal | :-) | ||
we just had three train wrecks in the past two weeks here :-( | 18:11 | ||
putter | ! | ||
gaal | weird thing is i can't remember ANY train accident from the past ten years | 18:12 | |
there was one very serious one when i was a kid | |||
school bus serious. | |||
putter | class Fido => { is => [ "Dog-0.0.1-cpan:JRANDOM" ] } ? putter needs to read the synopses again... | ||
gaal | but ever since, nothing | ||
putter | poisson process?) | 18:13 | |
wolverian | putter, that is perl5 code for the metamodel backend | ||
gaal | 2649 => 1486 on xp, where the wallclock gives a more accurate measure because there's fewer users. | 18:14 | |
almost twice as fast. cool, but not cool enough i fear. | 18:15 | ||
i remember when make smoke was 300 seconds... :( | |||
then again i also remember when we had a thousand tests. | |||
putter | ahhh. let's see, if I confuse p5 and p6 1 or 10 times a week, say 100 or 1000 times a year, times... how many people use perl? say 10^3 to 10^6, so 10^5 to 10^9 p5/p6 confusions per year... | 18:16 | |
gaal | perlcabal.org/~gaal for charts | ||
putter, you've confused me. :) | 18:17 | ||
putter | Just trying to quantify confusion... | ||
gaal: re prelude, what's the executive summary? "stuff broke"? | 18:18 | ||
gaal | actually 1..10 a week is rather less than 1000 a year :) | ||
"some stuff broke. smokes twice as fast." | |||
putter | 1 * 50 == 100, 10 * 50 == 1000, order of magnitude wise. everything between 300 and 3000 is 1000. (well, 316 to ...) | 18:20 | |
gaal | actually the bottom line is about 180 new fails... | ||
yeah | |||
Aankhen`` | `eval` has no lexical scope issues now? | 18:21 | |
gaal | sometimes when i'm loggy i'd say 2.7 or something | ||
what lexical scop issues? | 18:22 | ||
Aankhen`` | my $foo = 10; eval '$foo + 10'; # wasn't this a problem because the `eval` didn't see the outer scope? | 18:23 | |
gaal | oh, i don't know, but i was just editing changelog and moved the following line to the bug fixes section: | ||
* `eval` now pushes one caller frame, just as Perl5's eval does. | |||
i guess that has something to do with it :) | |||
Aankhen`` | Er, okay. | ||
Aankhen`` wanders off to play NFSU2. | 18:25 | ||
gaal | sugar rush over, man i'm tired now | 18:30 | |
svnbot6 | r5371, gaal++ | ChangeLog edits regarding Prelude | ||
putter | Sigh, ghc-6.4.1.20050709 and ghc-6.4.1.20050708 don't build, trying 6.5... | 18:36 | |
geoffb | Just did a pull and make, and the build seems to be even more RAM-heavy than before (270 MB unoptimized on my box, just counting ghc and ld). | 18:57 | |
Thoughts: | |||
1) Can ghc be told not to link, and have make link as a separate step? ld and ghc get to about the same virtual mem size, so we'd cut mem usage in half right there | 18:58 | ||
2) Why does GHC have to work so hard on Pugs.AST.Internals? It's not the largest file, so why does it seem to take the longest and cause the most mem burn? | |||
2a. Can something be done to mitigate the problem causing 2? | 18:59 | ||
gaal | re: 2, see the block starting at line 85 | ||
#include "everything else" :-) | 19:00 | ||
geoffb | bleah | ||
gaal, any thoughts on 2a then? | |||
gaal | that's done, i think, because decoupling would require -boot files and stuff like that. | ||
integral | use a different AST for compiletime and runtime | 19:01 | |
gaal | i faced the same problem in the precomp prelude, and used the same cop out^W^W solution | ||
integral | avoiding having so many types depending on each other | ||
geoffb | integral, so this is Yet Another Reason to get everything running through PIL? | ||
integral | yep. | ||
gaal | regarding #1: haskell.org/ghc/docs/latest/html/us...ons-linker | 19:02 | |
geoffb | Is that a "wait on autrijus" task? | ||
integral | not necessarily :-) | ||
gaal | please experiment with "-c" | ||
integral | One key thing I suspect would be to write an Eval.hs for PIL | 19:03 | |
gaal | # Omits the link step. This option can be used with ōæ½x96ōæ½x96make to avoid the automatic linking that takes place if the program contains a Main module. | ||
(which ours does.) | |||
geoffb | Hmmm, I wonder if the process will use less peak RAM if ghc is just called twice -- once in compile only mode, once with linking enabled | 19:04 | |
It wouldn't be the 50% drop, but I'll take like 40% drop, without having to figure out how to link on every platform (since ghc already knows that) | |||
gaal | dunno. i expect our makefile knows how to link, btw | 19:05 | |
also, we link twice now, so this may be quite useful if the link is faster. | |||
we also start ghc twice though :) | 19:06 | ||
integral | I thought it was ld that was using lots of mem in the link? | ||
gaal | doesn't calling free() on lots of stuff cost more than just exiting a program? | 19:07 | |
geoffb | Integral, on my box, ghc goes to 140 MB doing Pugs.AST.Internals, then later ld goes to 130 MB | ||
gaal, I believe so | |||
gaal | because keeping ghc around just to system ld either does that, which is slow, or doesn't, which costs ram and is potentially slower if youstart thrashing :) | 19:08 | |
integral | yes, while ghc is running it's virtual memory size will just grow, using swap file space, but it also won't be bigger than necessary, so separate processes won't buy a total resident memory gain, but might help swapping | ||
ghc's got an option to write makefile dep rules for the .hs files | |||
gaal | which for many people is a probelm | ||
geoffb | yeah, if I'm not careful, pugs builds OOM kill my X server. | 19:09 | |
integral, you mean compile every .hs as a separate ghc process? | |||
gaal | it's kinda tricky to make everyone happy here... i don't mind the ram usage on my new machines | 19:10 | |
geoffb | I think it would probably be "good enough" to just not link after compiling Pugs.AST.Internals in the same process. :-) | ||
gaal | probably. | ||
integral | geoffb: yeah | ||
gaal | if we aren't careful, we'll end up with a pre-build step that profiles the system and generates an optimized makefile :) | 19:11 | |
putter | t/builtins/sprintf_and_as.t claims # traditionally, sprintf has rounded, not truncated fractions. is sprintf("%d", 1.5), "2", "sprintf('%d') rounds arguments", :todo<bug>; | 19:12 | |
I no longer have a zoo of perl versions, but 5.8.5 says perl -we 'print sprintf("%d\n",1.6)' #=> 1. Is this a bogus test? | 19:13 | ||
integral | hmm, that should be converting to int (ie trunc) not round. I'd expect %.0f to round | 19:14 | |
theorbtwo | My perl agrees with both of you. | ||
geoffb | gah, Makefile.PL could use some refactoring. | ||
theorbtwo | Yes, yes it could. | 19:15 | |
geoffb is serious danger of blowing his yak-shaving stack | |||
theorbtwo | yak-shaving? | ||
integral | hmm, is the makefile always run by gnu make, or is it meant to work with nmake? | ||
geoffb | The process by which you have to do D in order to do C in order to do B in order to do A | ||
Especially when B, C, and D seem totally unrelated to getting work done | 19:16 | ||
gaal | integral: nmake and bsd make too. | ||
theorbtwo | It needs to work with nmake and bsd... blast, too slow. | ||
gaal | :) | ||
theorbtwo | Notably, OSX uses bsd make unless you type the silent g. | 19:17 | |
geoffb | "Yes, I have to play Frozen Bubble in order to make sure SDL is working, in order to make sure the bug is in my code, not SDL, in order to prepare to write this article." That sort of thing | ||
I have often gone about 7-10 levels deep in yak shaving | |||
theorbtwo | It would be very helpful, however, if the pugs makefile stuff were refactored. | 19:18 | |
integral | ugg, that makes things harder, can't just use include | 19:20 | |
theorbtwo: that must be something like 10.2, my 10.3 uses gnumake by default | |||
theorbtwo | I was largely guessing. | 19:21 | |
autrijus mentioned something the like. | |||
geoffb | Could someone save me from yet more shaving and explain the diff. between single and double colon rules in make? | 19:24 | |
gaal | shekel.jct.ac.il/cc-res/online-doc/...ke_41.html | 19:27 | |
if you have several :: rules, they each run or not, independently of each other. | |||
Aankhen`` goes to sleep. | 19:28 | ||
G'night. | |||
geoffb | Hmmm, they say it should be rare, but it looks like we use them quite a bit | 19:29 | |
gaal | i think it's practical when autogenerating makefiles, because you can use them to aggregate rules. | ||
but i'll let someone who's more of a makefile maven explain it :-) | 19:30 | ||
geoffb | Why is the rule for $pugs not just '$pugs : optimized' ? | 19:31 | |
It looks like duplicate stuff | 19:32 | ||
putter | ?eval sprintf("%f",1.2) | ||
evalbot6 | pugs: Printf.printf: bad argument | ||
putter | (it's not just me:) | ||
wolverian | oh, wow. DateTime::Calendar::Discordian++ | 19:37 | |
nothingmuch | seen cwest | 20:32 | |
jabbot | nothingmuch: cwest was seen 1 days 22 hours 14 minutes 55 seconds ago | ||
putter | any lambda camels present? | 20:54 | |
err, emphasis on lambda. | |||
geoffb | I'll do you one better: I need someone who understands src/Pugs/Embed/Perl5.hs . . . | 20:55 | |
nothingmuch pretends to be a lambda camel | 20:56 | ||
geoffb | specifically, am I correct in assuming that line 114 should have "perl5.h perl5_eval" instead of "perl.h perl5_eval"? | ||
My questions is, why doesn't that break? Is it just a comment? | 20:57 | ||
nothingmuch reads perlembed | 20:58 | ||
svnbot6 | r5372, mugwump++ | Remove this wart... functionality to be moved to new Proxy functions etc | ||
integral | geoffb: I suspect you're right | ||
nothingmuch | i would guess it goes the other way, maybe | ||
dunno | |||
integral | hmm, perl5.h is src/perl5/perl5.h | ||
mugwump | Perhaps if you reduced that Perl5.hs so that it was the only import it might show if it's right | ||
putter | I suspect it doesnt break because it uses the real, enourmous, perl.h... | 20:59 | |
integral | maybe it doesn't break because perl5.h has already been loaded | ||
geoffb | grepping shows that perl.h doesn't contain perl5_ , only perl_ | ||
integral | but since perl5_eval is from perl5.h and *not* perl.h | ||
geoffb | integral, now that one I'd believe | ||
nothingmuch | oh | ||
integral | perl5_ is the C wrapper of libperl in src/perl5 | ||
putter | doh | ||
nothingmuch | perl5.h is a pugs file, perl.h is ini archlib/CORE/perl.h | ||
geoffb | Yeah, I've gotten that far, integral and nothingmuch -- I am just trying to figure out if the bugs I'm seeing are in my head or in the code | 21:01 | |
:-) | |||
geoffb says "What the hell" and changes it just to see what happens | |||
nothingmuch | ah | ||
nothingmuch steps out of the conversation... not being useful =) | |||
instead I will feed on the dead remains of some tofu | 21:02 | ||
*manic laughter* | |||
geoffb | Oh, and sorry putter, and didn't actually mean to hijack your chance at a question | ||
heh | |||
putter | nothingmuch: I'm trying to wrap Text.Printf.printf in a catch. printf is PrintfType r => String -> r, where r can be String or IO a. catch is IO a -> (Exception -> IO a) -> IO a. | ||
integral | putter: is it a Haskell question? | ||
putter | geoffb: np, my brain was just grinding slowly... | ||
integral | catch (printf ...) something ? | 21:03 | |
putter | yes, tryprintf = catch printf (\e -> fail "printf went type-boom") | ||
nothingmuch | putter: and you're getting type errors? | 21:04 | |
integral | tryprintf = (swap catch (\e -> ...)) . printf ? | 21:05 | |
nothingmuch | × ××©× | 21:07 | |
eep! | |||
anyway, i was supposed to get some food | |||
integral | putter: is that what you were intending? there is the simpler: t x = catch (printf x) (...) | ||
nothingmuch | i'm brain dead (went bicycling for 2.5 hrs) so i'll stop pretending like I can help anyone | ||
see also flip | 21:08 | ||
putter | nothingmuch: re type errors, yes. | ||
nothingmuch | putter: nopaste them | ||
integral | ty, nothingmuch, I mean't flip not swap | ||
nothingmuch | and show us some source | ||
putter | I suspect part of the problem is printf ... ok, working... | ||
integral | putter: if printf is a function, what you gave won't work | ||
nothingmuch | :t and :i in ghci are your very best friends | ||
where is printf? | 21:09 | ||
integral | you're not passing an arg to printf. You either have to use composition, or name the argument | ||
pasteling | "putter" at 66.30.119.55 pasted "type error" (12 lines, 371B) at sial.org/pbot/11669 | 21:10 | |
integral | putter: what's a PrintfType? | 21:12 | |
putter | ghci is great... and historically unavailable on x86_64. snif. dont have one at the moment. | ||
nothingmuch | damnit! fucking browsers keep crashing | ||
integral: a type class | |||
putter: use feather, or my box | |||
integral | yes, I know that, but what are instances of it? | ||
lightstep | type inferencinf doesn't work well with printf | ||
nothingmuch | oh.... :i PrintefType | ||
lightstep | String, IO a, a -> PrintfType | ||
integral | oh, :i neat, nothingmuch++ | 21:13 | |
putter | www.haskell.org/ghc/docs/latest/htm...PrintfType | ||
nothingmuch | where is printf? | ||
oh | |||
lightstep | putter, is that line 849? | ||
putter | 849... Scalar::as | 21:14 | |
it's unmodified except for s/printf/tryprintf/ | 21:15 | ||
lightstep | that paste page says you applied tryprintf to fmt and to str | ||
while tryprintf is a function of one argument | |||
it seems correct | |||
integral | the problem is the r in printf :: PrintfType r => String -> r | 21:16 | |
lightstep | integral, not really. the inferencer figured it out | ||
integral | it can be either an IO a, or a function PrintfType r => a -> r | ||
lightstep | but catch makes it be IO a | ||
integral | yes, but in tryprintf you're losing the variable argness of printf | ||
lightstep | which is fine, since (.) is function composition with one argument | 21:17 | |
integral | the complaint is about the application of tryprintf | ||
lightstep | yes, you do lose it | ||
nothingmuch | does printf return more and more functions? | ||
lightstep | nothingmuch, only if you ask it to | ||
nothingmuch | errm.... how is it variadic under the hood? | ||
i'm thinking ((tryprintf fmt) str) | 21:18 | ||
integral | via the typeclass | ||
putter | "The PrintfType class provides the variable argument magic for printf. Its implementation is intentionally not visible from this module." | ||
nothingmuch | ooh | ||
eek | |||
putter | yeah. ;) | ||
nothingmuch | so by using catch IO a is enforced | ||
and that makes it lose that typeness? | |||
integral | yep | ||
this should be able to be solved by another typeclass :-/ | 21:19 | ||
nothingmuch | how so? | ||
lightstep | you don't usually want printf, or the use of such typeclasses | ||
nothingmuch | what about hacking a layer over it | ||
lightstep | haskell isn't good for this | ||
nothingmuch | printf returns either a fun ction with the same type as itself | 21:20 | |
or a string | |||
depending on how many args it needs | |||
wait, screw that | |||
why doesn't it just use a list, and the members of the list are of class Printfable | 21:21 | ||
so you can shove all sorts of data into the list? | |||
errr, data type, not class | |||
nothingmuch is losing his brain | |||
integral | hmm, maybe typeclasses are more supported than existentials? | ||
lightstep | yes, but the point was to make printf variadic | ||
(i think) | |||
if you want printf in pugs, you'd better not use Text.Printf | 21:22 | ||
nothingmuch | anyway, back to my eating plan | ||
putter | Just for context, the _real_ problem is that printf exceptions if the object types dont match the format... but p6 wants to coerce the objects if they dont. doing a catch is just a hack to avoid pugs getting killed when printf chokes. .as and sprintf will still be doing the not-quite-right thing. | 21:23 | |
integral | putter: a simple solution is just to not have a combined printf + catch | 21:24 | |
geoffb | Hah -- finally found the doc reference for anyone interested. -- yes, it should be "perl5.h perl5_eval", and it worked because there was at least one other foreign import that specified perl5.h. | ||
integral | common_catch = flip catch (\e -> ...) | ||
geoffb fixes . . . . | 21:25 | ||
putter considered ccall snprintf... but that seemed an unfortunate barrel of worms. we may need an sprintf library. | |||
putter tries common_catch... | |||
geoffb: :) closure++ | 21:26 | ||
svnbot6 | r5373, geoffb++ | Fix foreign import bug in src/Pugs/Embed/Perl5.hs that happened to not break things because surrounding code hid it | 21:40 | |
mugwump | stevan: do we have a divmod operator? | 21:43 | |
bah, that shouldn't have been directed at stevan | |||
anyone know if we've got a floor() function anywhere? | 22:06 | ||
svnbot6 | r5374, mugwump++ | Correct test count | ||
mugwump | hmm, apparently not | ||
I reckon that should be a primitive, all those in favour please say Aii | |||
jql votes aye on Math::floor being in the standard * import | 22:07 | ||
might as well vote aye on ceil() | 22:08 | ||
mugwump | int() has such bizarre behaviour when you're doing calculation with the numbers | ||
jql | int (aka. truncate)/round/floor/ceiling/abs ? | 22:09 | |
mugwump | ceiling or ceil? | ||
jql shrugs | 22:10 | ||
the only thing going for ceil is C legacy | |||
mugwump | ceiling it is | 22:11 | |
jql | can probably have a &ceil ::= &ceiling alias hidden in Math somewhere. | ||
mugwump | sure | ||
why not | 22:12 | ||
jql | exactly | ||
mugwump | hmm, there isn't a POSIX round() function | ||
n/m, found the C function. | 22:13 | ||
svnbot6 | r5375, mugwump++ | Add the variety of rounding functions | 22:28 | |
mugwump just doesn't understand the Haskell :t of floor; floor :: (RealFrac a, Integral b) => a -> b | 22:30 | ||
putter | mugwump: Emit/PIR.hs has mathops for -BPIR... | 22:31 | |
mugwump | so it does. presumably it was added because of Haskell internals inducted out by compilation? | 22:33 | |
hmm, seems floor is only defined on RealFrac | 22:37 | ||
putter | mugwump: yes, though in practice it was "oo, lots of parrot functions... signatures match... slurp". | 22:40 | |
clkao | dear pugs, it takes one hour to compile and run the tests | 22:44 | |
Limbic_Region | is that with a make clean clkao? | 22:46 | |
clkao | i guess not. | ||
Limbic_Region | and how many things do you have turned on - embedded p5, haskell, parrot | ||
clkao | nothing | ||
putter | Could I get a reality check on a design proposal? Write sprintf() in p6, calling Pugs::Internal::printf_i, _s, _f. | 22:48 | |
clkao: cpu? memory? make or make unoptimized? | 22:49 | ||
clkao | this is 1.6G powerbook with 1G ram | ||
putter | optimized? | 22:50 | |
obra | clkao: how new is your pugs? | ||
clkao | right after autrijus declares it gets reasonable startup time | ||
obra | he's done that 8 times. Which time? | 22:51 | |
Limbic_Region | obra - precompiled Prelude - happened earlier today | ||
putter | halved test runtime | 22:52 | |
obra goes to try a make clean | 22:53 | ||
nothingmuch | i think that the runtime is better | 23:01 | |
but i'm not sure | |||
Limbic_Region | well - according to autrijus' numbers it is | 23:03 | |
smoke time cut in half | |||
mugwump gives up with the types hell implementing floor() is putting him through | |||
No instance for (RealFrac (Eval n)) | |||
Probable fix: add an instance declaration for (RealFrac (Eval n)) | |||
putter | mugwump: Prelude.pm? | 23:08 | |
Do we have a haskell-specific prelude? | |||
mugwump | So, I tried adding; | ||
op1 "floor" = op1Cast $ VInt . floor . fromVal | 23:09 | ||
to use Haskell's floor primitive | |||
putter | sub floor($n) { my $i = int($n); if ($n - $i) >= 0.5 { $i + 1 } else { $i } } ... or something like that... | 23:10 | |
putter is currently fleeing type hell by Prelude'ifying sprintf... | 23:11 | ||
mugwump | putter: you'd also need to special case negative numbers | 23:12 | |
there are also precision corner cases I'd rather not have to think about ;) | |||
putter | ah. | 23:13 | |
nothingmuch | is goto no longer gotoish? | 23:17 | |
line 93 of Test.pm does a goto &is | 23:18 | ||
but $?CALLER::POSITION lists that line | |||
obra | Make test took me 13:17 | 23:21 | |
Failed 19/351 test scripts, 94.59% okay. 72/6252 subtests failed, 98.85% okay. | |||
nothingmuch | 6252?! | ||
oh! | |||
no module tests | |||
nothingmuch ducks | |||
Limbic_Region | mine just finished too | ||
Failed 19/351 test scripts, 94.59% okay. 72/6252 subtests failed, 98.85% okay. | |||
must have been a Win32 build obra? | 23:22 | ||
obra | Limbic_Region: nope. linux x86 | ||
Limbic_Region | oh | 23:23 | |
that's interesting | |||
I get the same results on Win32 | |||
nothingmuch | do we have index? | 23:25 | |
mugwump | what kind of index, nothingmuch ? | ||
nothingmuch | i.e. the function that takes a substring and returns it's position in a containing string | 23:26 | |
svnbot6 | r5376, mugwump++ | Add tests for the variety of rounding functions | ||
mugwump | it's in S29 | 23:27 | |
there's an op3 "index" in Prim.hs too | |||
nothingmuch | actually I don't need it | ||
i found a nicer way =) | |||
mugwump throttles nothingmuch | 23:28 | ||
putter | re index, yes (using it right now....:) | 23:30 | |
nothingmuch | there, new buggah | 23:31 | |
svnbot6 | r5377, nothingmuch++ | discuss joining junctions and values | ||
r5378, nothingmuch++ | goto didn't eliminate stack frames... a test | |||
nothingmuch | confusion! | ||
how do I add @INC to runFile from ghci? | 23:32 | ||
putter | mugwump: re floor, perhaps unpack val with a case of VRat... VInt... etc? | ||
mugwump | Expected type: m VInt; Inferred type: m Val; In the expression: (return . VInt) $ (floor x') | 23:43 | |
svnbot6 | r5379, nothingmuch++ | junctions/items are the same match step (item is median weight) | ||
r5379, nothingmuch++ | banish coerce/is rw - it's just too fragile | |||
mugwump | (after the unpackign) |