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)