-Ofun: xrl.us/hxhk | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6
Set by apple-gunkies on 11 November 2005.
gaal I seem to recall $Larry said something rulingy about my $x; my $x. But I don't remember what it was, and ruleVarDeclaration doesn't seem to treat dupes 00:00
oh, it can't!
if there is dupe treatment it has to be in Eval
audreyt yup 00:01
gaal holy moly, findSub is long.
audreyt gaal: the idea is simply to take something akin to envInitDat and translate the "use" node into a Pad node
gaal: findSub is the #1 reason why I'm doing this new minimal baselayer runtime ;)
gaal :) 00:02
audreyt gaal: anyway. if you turn ruleUsePerlPackage so it yields a Pad
just like the one in ruleVarDescl
s/Descl/Declaration/
mergeStmts will automagically introduce it lexically to the following block statements
s/block statements/statements in the lexical block/
gaal ...then that's most of the way, but not all
because @?PRAGMA needs to see what essentially was @?OUTER::PRAGMA 00:03
Khisanth gaal: that is not a warning anymore?
audreyt gaal: I'd say it's all... if you want error detection, you can do it in mergeStmts
gaal it's not all, I think
audreyt gaal: right, but you can get that by setRuleEnv/getRuleEnv
gaal { use moose; { # use moose in effect. } } 00:04
audreyt yes, but you already have envPragmas
just use that
setRuleEnv with something augmented with envPragmas
gaal yup, ok
Khisanth: maybe!
brb 00:06
audreyt I'll brb also 00:11
gaal hmmm. how would importation specs be implemented? ruleSubDeclaration assumes 'is export' means always to export immediatey, upon parse. 00:27
maybe I should wait till tomorrow for this :/ 00:30
clkao svk sucks
svk st is too slow
ingy svk rocks! 00:34
rafl Indeed.
ingy at least that's what I hear
on #svk...
hi clkao
coming home soon?
clkao in about a week 00:39
but i am busy for the first week
Odin-LAP clkao: You keep declaring that svk sucks. Why don't you just stop using it? 00:40
*grin*
obra snickers
clkao Odin-LAP: it's not like you can find anything better you know... but it's still software 00:42
gaal yup, i'm out. night... 00:48
stevan_ audreyt: ping 01:00
lisppaste3 stevan pasted "Factorial in core runtime mini-language" at paste.lisp.org/display/14581 01:09
stevan_ audreyt: is that correct syntax?
01:10 stevan_ is now known as stevan
lisppaste3 stevan annotated #14581 with "Forgot a .call()" at paste.lisp.org/display/14581#1 01:11
01:31 stevan__ is now known as stevan
stevan Andy: more pugs floraspetproject.org/Olliepug.JPG 02:07
audreyt stevan: yo 02:25
stevan: I think lazy .or and .and doesn't work really 02:27
pengo did you know a baby echidna is called a puggle?
q[Skud] pengo: wtf? 02:28
a puggle is a toy.
albeit a toy that looks like a baby echidna. 02:29
pengo mmm.. makes you think, eh? 02:34
audreyt stevan: I'll rename them to .or_do and .and_do respectively 02:41
stevan_: a sec... I think I can make it work in a few mins 02:44
q[Skud] audreyt: ok, i'm sitting at hte office with a quietish afternoon ahead of me. what do i need to do to get pugs up and running? i'm on ubuntu. 02:46
rafl apt-get install pugs? 02:47
q[Skud] no such package.
rafl It's in dapper/universe.
q[Skud] hang on, lemme do a dist-upgrade.
i am behind. 02:48
audreyt q[Skud]: what rafl said. also after dist-upgrade, install subversion 02:51
and check out svn.openfoundry.org/pugs/
also, I'm thinking about the idea of handing out metacommitter bits (i.e. let people invite more people) to anyone I've met in realworld
does it sound sane?
rafl Why only those who you met in realworld? :-) 02:52
audreyt: And why check it out using svn if there are precompiled binaries if you only want to play with it? 02:53
audreyt rafl: skud is helping out doc reorg; she'd need the latest docs tree and commit it 02:55
rafl audreyt: Oh, OK then. 02:56
q[Skud] ok.
audreyt rafl: I think I'd accept OpenPGP trust model as an alternative
rafl: but I'd like to at least have some idea of how to find someone :) 02:57
rafl audreyt: We don't have a trust path nor did we met so far (I think we will in march, though) and I am metacommiter nevertheless.
audreyt: How about the #perl6 regulars at first?
Or the regular commiters. 02:58
s/regular/most active/
q[Skud] how about just whoever audreyt trusts, for whatever definition she happens to use? why over-specify it? 02:59
obra has there been a problem with new committers having trouble getting bits, audreyt? 03:00
audreyt rafl: I think my idea was just "extending the metacommitter bit a bit" :)
obra: I think so, yes. they had to come to #perl6
obra larry didn't come to #perl6. nor guido ;)
audreyt and that's exactly why I'm extending the metacommitter base :) 03:01
clkao no biscuits
audreyt because then ingy can run to oscon and hand out bits to them.
obra That's a good reason to give ingy bits
q[Skud] ponders ingy's bits 03:02
audreyt and ingy is not currently metacommitter :)
obra so that should get fixed.
Anyway, I'd go with "anybody audreyt trusts" over "anybody audreyt has met"
which is a fine line ;)
audreyt yeah, and extremely blurry :)
but ok, I'll go ahead and do that :)
obra blurry lines are good :) 03:03
it means people don't get too hung up on the line itself
audreyt yup.
rafl audreyt: Is there a policy for giving comit bits, btw? I'd like to give some to two interested people as well. And I'll do a perl 6 workshop on GPW next march and interested auditors could get a commit bit as well as a feather account there.
obra remembers he should get more tea
meppl gute nacht 03:04
clkao s/tea/sleep
q[Skud] audreyt: is there somewhere on the web that i can look at this docs tree while i wait for my dist-upgrade?
clkao wget -r -np? 03:05
audreyt rafl: yes... the policy is that you trust that person is willing to communicate (eg. come to #perl6 or write to p6c) and is not intentionally destructive :)
q[Skud]: svn.openfoundry.org/pugs/
q[Skud]: svn repos are also websites :)
q[Skud] thanks.
this'll be good for me. i need to get exposed to svn.
ingy audreyt: can I be a metacommitter? 03:06
audreyt ingy: you are one now :)
rafl audreyt: OK. I'll try to comply that requirements.
q[Skud] audreyt: straight off, i can see a need for a p6intro as well as a p5-to-p6 transition cheatsheet 03:07
audreyt q[Skud]: some relevant bits: docs/articles/tpr.pod docs/other/porting_howto 03:08
q[Skud] ok
audreyt I think what we can do is feed you pointers to raw data, and what we'd need is some sense of organization
also, docs/README
q[Skud] yeah, i started at docs/README 03:09
i think i'd be most comfortable starting with writing p6intro.pod and branching off into more detailed .pod files as required. basically treat it like the p5 docs for now, but in the knowledge that we can rearrange and make it work for us as we go 03:10
and have some naming consistency
blm To contribute to pugs is it kind of too late if you don't know Haskell fluently?
audreyt blm: nope... 70%+ of our committers probably doesn't know haskell fluently
obra I know no haskell 03:11
audreyt blm: and haskell's role in pugs, while important, is gradually decreasing as more bits are written in perl6 itself (and perl5 and javascript and whatnot)
q[Skud] audreyt: did you say you had Perl6::Doc reserved?
SamB why javascript? 03:12
what possible use could javascript be to this project?
blm So pugs is to get to perl6 which allows perl6 interpreter/compiler to be written in perl6?
q[Skud] audreyt: and also, how do you see people reading perl6 docs? perldoc Perl6::Doc::Intro and so on? 03:13
audreyt q[Skud]: not yet at the moment. I'm still wondering whether Perl6::Doc::* is better, or just Perl6::Spec::*, Perl6::Tutorial::*, etc
q[Skud] i can see Perl6::Doc being handy as a working documentation set that may grow into the p6 distribution's docs
blm I am sorry. I should be reading on the www instead.
q[Skud] i don't see any point in breaking out tutorials etc
audreyt q[Skud]: there is a Perl6::Bible on CPAN under ingy's name that offers the "p6bible" cmdline tool. I wonder if we can extend it to "p6doc" 03:14
q[Skud]: but for now, perldoc Perl6::Doc::Intro is perhaps the most straightforward.
q[Skud] yeah
i'm just thinking, making a hierarchy of docs sounds bloody useful
the p5 doc space is flat
audreyt indeed
q[Skud] but having Perl6::Doc::Tutorials::* and Perl6::Doc::Data::* could be handy 03:15
obra Data?
audreyt I'd call ::Data as ::Reference </bikeshed>
obra Also, Tutorials or Tutorial?
q[Skud] oh, i'm just riffing off docs/data
well, we can figure that out.
audreyt indeed
q[Skud] i'm just saying that hte hierarchy would be handy
audreyt very true
obra agreed
q[Skud] i wonder whether it makes sense to make the upper level by type of document and the next level by topic, or vice versa? 03:16
audreyt q[Skud]: alias and I brainstormed a bit about P6Doc::Tutorial::* P6Doc::Spec::* etc
q[Skud] like, Perl6::Doc::Object::Tutorial or Perl6::Doc::Tutorial::Objects
yeah, i think type of document uppermost makes a bit more sense 03:17
audreyt but if you think Perl6::Doc is clearer and easier to grok, I have no problem with that
q[Skud] with Reference, Tutorial, Spec
audreyt P6Doc has the advantage of Perl6::* modules on CPAN is mostly perl6 emulators
obra Except for the Bible?
audreyt except for the bible, which we are refactoring now 03:18
q[Skud] i think Perl6::Doc would be more acceptable to the PAUSE crowd
audreyt well, alias and I are both pause admins :)
q[Skud] the entire Perl6 namespace will be obsoleted when p6 itself is released, presumably. for the meantime, makes sense to keep it all together.
so am i.
an inactive one, though ;) 03:19
audreyt yup.
q[Skud] ok, so, here's what i see
Perl6::Doc as the top level. beneath it, sections based on types of documentation. Reference and Tutorial are two that I'd probably start on early on. and a p6doc command line tool where p6doc Foo::Bar is equivalent to perldoc Perl6::Doc::Foo::Bar 03:20
audreyt totally agreed. 03:21
I've sent the namespace req to modules@.
q[Skud] ok, i just foresaw another problem
oh no. never mind.
i'm an idiot :)
audreyt I love self cancelling problems :)
q[Skud] the best kind. 03:22
audreyt: ok, so i can make a docs/p6doc directory or something and work in there?
audreyt q[Skud]: sure! 03:23
be sure to put a README there -- that's probably the only convention for new subproject dirs
q[Skud] yeah.
ingy hi skuq
q[Skud] inpy! 03:24
svnbot6 r8193 | autrijus++ | * PIL.Native: add $block.(1,2,3) form to replace the .call form, eg: 03:34
r8193 | autrijus++ | ->{3}.()
audreyt blm: to answer your earlier question, yes, pugs's goal is to make perl6 self host. 03:37
rafl Isn't fun the goal? :-) 03:38
blm audreyt: Thanks
q[Skud] wait! i was told there were piles of cash and that i'd get groupies!
audreyt rafl: no, fun is what we're optimizing for. :) 03:39
obra q[Skud]: the cash is in a gift-economy currency.
It's called "respect". Sadly, you only get to spend it on things like "why the hell won't this kernel build?" 03:40
q[Skud] bugger. 03:42
grah. i think i should go buy one of those wrist brace support thingies.
by the time i get back the dist-upgrade might be done :) 03:44
svnbot6 r8194 | autrijus++ | * PIL.Native.Eval: functional application works. 04:01
audreyt stevan_: factorial runs. 04:26
svnbot6 r8195 | autrijus++ | * PIL.Native: "make pil" now produces a executable that can be run 04:28
r8195 | autrijus++ | with a file as argument.
r8195 | autrijus++ | * PIL.Native: implement BIT.cond that takes two blocks for if/else
r8195 | autrijus++ | respectively. This example from stevan++ now runs:
r8195 | autrijus++ | # Mini-Language Factorial
r8195 | autrijus++ | (-> $n { (-> &fact { &fact.(&fact, $n) })
r8195 | autrijus++ | .(-> &f, $x {
r8195 | autrijus++ | $x.eq(0).cond(
r8195 | autrijus++ | -> { 1 },
r8195 | autrijus++ | -> { $x.multiply( &f.(&f, $x.subtract(1)) ) })
r8195 | autrijus++ | });
r8195 | autrijus++ | }).(10); 04:29
audreyt stevan_: I'll go offline and work on bootsrapping the rest of container types... bbiab 04:31
&
stevan audreyt: ping 04:40
audreyt stevan: pong
stevan hey
I am backlogging right now 04:41
factorial runs :)
Y combinator ++ 04:42
audreyt stevan: yup :) you still up for documenting the structure of PIL.Native? 04:43
stevan so make pil will produce a "pugs" executable? or "pil" executable
audreyt I'm working out PIL.MM right now
a "pil" executable
stevan audreyt: of course, I just need to get an executable so I can test my assumptions ;)
audreyt: can I ask some questions? or are you busy atm? 04:48
svnbot6 r8196 | autrijus++ | * remove bits of old PIL.* that doesn't do anything.
r8196 | autrijus++ | (rerun "perl Makefile.PL" if you'd like to "make pil".)
audreyt sure, please do
stevan mkCall in Coerce.hs, this is method calls?
oh I see, in Types, it is a NativeLanguageExpression 04:52
so all the Native* things are the Haskell side implementations? 04:53
audreyt sorry, was afk 04:54
yes.
stevan no problem
and Prim is the mapping to our mini-lang 04:55
audreyt yes.
stevan I am not seeing cond()
audreyt the pure part of it, anyway
yeah, because it's sideeffectful
stevan why?
audreyt because the blocks may perform side effects
stevan oh,.. in the MM part then
I see
audreyt so it's hardcoded in Eval 04:56
(currently)
stevan ok
audreyt bit.cond() and block.() are currently hardcoded
stevan so was my understanding of the scoping correct? 04:57
that everything must be wrapped in a block to be named
ok, I think I have enough to go on now 05:02
hmmm that wasnt very many questions :)
You will have to review for correctness after I commit
audreyt ok 05:05
array expression desugaring is in. I don't yet see a need for hash expression sugar for MM bootstrap 05:07
svnbot6 r8197 | autrijus++ | * PIL.Native: add support for array expressions in addition to literals:
r8197 | autrijus++ | [1,2,3.add(4)]
r8197 | autrijus++ | is desugared into:
r8197 | autrijus++ | [].push(1,2,3.add(4))
audreyt so I'll punt on that and go back to Instance 05:08
stevan I kind of like the desugared arrays :)
audreyt in any case, I think [].push is better than Array.new :) 05:09
or Seq.new
stevan yes
xgl audreyt, did you see my question about the ambiguous parse? 05:11
audreyt xgl: try asking on the channel next time :)
xgl i've got a question about an ambiguous parse ... 05:12
audreyt (and yeah, I answered it)
xgl "if foo(1,2){bar(3)}" could be either illegal (i.e. conditional without body, if we're returning a hash from foo) or legal?
sorry, i might have missed the answer somehow 05:13
audreyt it's illegal if you don't follow it with the body
?eval if hash(1,2){3} { 4 }
xgl but if foo doesn't return a hash, but an int, say, it would be legal?
05:14 evalbot_8169 is now known as evalbot_8197
evalbot_8197 undef 05:14
xgl the parser would have to figure that out?
audreyt no, it's illegal no matter what, I think... you need whitespaces around conditionals in paren-free if
?eval if hash(1,2){3}{ 4 }
evalbot_8197 Error: unexpected "i" expecting program reserved word
audreyt (and yes, that means whitespace is significant here) 05:15
xgl ah, ok, and hash subscripts can't have white space before them?
audreyt correct. you need to say .{} if you want whitespace
?eval hash(1,2){1}
evalbot_8197 \2
audreyt ?eval hash(1,2) .{1}
evalbot_8197 \2
xgl cool, thanx!
audreyt like that.
np :)
stevan: ping 05:17
stevan: you don't distinguish between "is rw" and "is ro" attrs in an opaque 05:18
is it intentional?
stevan audreyt: pong
audreyt for example, if I autobox NativeInt into Instance
stevan audreyt: I assumed that access will be mediated elsewhere 05:19
audreyt it wouldn't make sense to set_attr it, would it
stevan hmm, no it wont
q[Skud] ok. i finished that dist-upgrade, and "apt-get install pugs" still doesn't work. is pugs *known* to be in the ubuntu deb repositories? what repository specifically? what do i need in my /etc/apt/sources.list to get it?
audreyt q[Skud]: you need to pull in universe, I think
(note I know nothing about how to do that) 05:20
q[Skud] got universe
audreyt mm
q[Skud] hang on. apt-get install pugs, right?
not, like, pugs-something or something-pugs or anything?
audreyt I do see pugs in /pub/mirrors/ubuntu/pool/universe/p/pugs
aye
stevan audreyt: actually weren't the "is rw" and "is ro" just related to the autogenerated accessors?
when in the "has $:foo is ro" form 05:21
q[Skud] apt-cache search pugs gives me nothing
blm mirror.isp.net.au/ftp/pub/ubuntu/po...se/p/pugs/
?
stevan because the class still needs access to them too, if they are ro inside the Instance type, how would you ever assign to them?
q[Skud] what do people have in their /etc/apt/sources.list? 05:22
audreyt stevan: I'm thinking maybe you don't assign to an "ro" attribute at all
even internally
q[Skud] i have:
deb archive.ubuntu.com/ubuntu breezy universe
deb-src archive.ubuntu.com/ubuntu breezy universe
note to self: use .au mirror
stevan audreyt: you are thinking for autoboxed types?
audreyt stevan: that, and instances declared as ro (which is default) 05:23
blm q[Skud]: Not at home so I am limited in the help I can give
stevan instances as ro?
audreyt q[Skud]: I do see archive.ubuntu.com/ubuntu/pool/universe/p/pugs/
stevan audreyt: I am not sure I agree with you on this one :\ 05:24
audreyt stevan: hm, so it's always rw internally?
stevan the core instance type should always be rw, the methods should mediate access 05:25
audreyt nvm, you are absolutely correct
q[Skud] blm: do you use breezy?
audreyt so you should be able to do
class Int is extended { method reset { $!val = 0 } } 05:26
blm q[Skud]: Yes I think so. 5.10. Breezy is the latest? I got my CD at OSDC conference
q[Skud] yes.
bizarre.
audreyt and violate encapsulation happily?
that sounds very perlish.
stevan audreyt: open unless explicity closed :)
audreyt right. so you think that "extended" form above makes sense?
assuming $!val is the internal name for int box 05:27
stevan it makes sense, I dont think it is wise :)
blm q[Skud]: au mirror is au.archive.ubuntu.com/
audreyt eh right, I was asking whether it makes sense for the MM to support it
stevan ponders finalized classes ....
MM to support the is extended form? 05:28
blm q[Skud]: works out to be mirrors.uwa.edu.au
audreyt concludes autoboxing will be much slower
stevan: no, the explicit set of unboxed value inside a box
it's almost like saying "1 = 2"
stevan hmm
audreyt and "1" everywhere will become "2"... fun 05:29
blm q[Skud]: pugs is on that mirror too au.archive.ubuntu.com/ubuntu/pool/u...se/p/pugs/
stevan ok, maybe that is too much fun
audreyt so maybe set_attr on autoboxed stuff is just error
stevan well it really depends on how we handle the autoboxing 05:30
but yes, that is probably wise
audreyt mm.
stevan afterall the unboxed value is not a user-lang type
2 in userland is Int.new(2) right? 05:31
audreyt nope. it's unbox 2
stevan hmm
what if the boxed types were finalized classes? 05:32
audreyt that way you can't say "0 but true".
q[Skud] ah, i think i need multiverse not universe. sorry, new ubuntu user here.
stevan cannot be extended, or subclassed
audreyt oh wait, it wouldn't be "int" anymore
but it's still "Int"
stevan yes
audreyt I think I got it... I'll see if I can come up with something saneish. 05:33
stevan ok
are the core boxed types supposed to be extendable? is that written anywehre?
q[Skud] no. gah. i'm still stuck. yes, i can see it on the website. no, i can't see it with apt-search/apt-get
audreyt q[Skud]: have you refreshed cache? 05:34
stevan: according to S12 everything is open. 05:35
stevan then maybe 1=2 should be possible?
q[Skud] audreyt: yes. apt-get update.
stevan silly and unwise, but possible 05:36
audreyt stevan: for some reason it fills me with distaste... I'd much rather if $!val is not in the attr slot
and just delegated to the underlying unboxed NativeInt
so you can't access it as a member variable in extended code
stevan so class Int is extended { method add_one { $!val + 1 }} is okay 05:37
audreyt nope. you need
self + 1
stevan but class Int is extended { method reset { $!val = 0 } } is not
audreyt there's no $!val anywhere, that's my proposal
stevan ah yeah
hmm 05:38
blm q[Skud]: Why do you think it is multiverse that you need?
audreyt and "&self" is not rw, so we are safe.
stevan so the Instance is a thin opaque wreapper on the unboxed type
audreyt yup
stevan I like that
thats feels better
q[Skud] blm: oh, i was confused and wrong. never mind that. i retract that statement.
blm q[Skud]: np
audreyt stevan: glad we don't disagree anymore :D 05:39
stevan yes, that was an ugly 5 minutes :)
audreyt *smile*
q[Skud] ok, well, dpkg to the rescue. sigh. 05:40
stevan is suprised at how much seems to fall into place with this approach
audreyt :) 05:41
stevan since all reasonable operations on self will already be defined
audreyt yup.
blm q[Skud]: Want me to help when I get home? 05:42
q[Skud] ok, now there are dependency problems. pugs requires ghc 6.4.1 specificlaly, but breezy's current version is 6.4-4.1ubuntu an it gets all confused
blm: if i haven't got it sorted yet, that'd be great.
stevan audreyt: BTW - I am trying to manage getting to the hackathon.il 05:43
q[Skud] ok, i think i may have faked it out
audreyt q[Skud]: I see packages.ubuntu.com/dapper/devel/ghc6
q[Skud] i now have a pugs thing.
audreyt ooh, Skud++ 05:44
q[Skud] and i have it running.
audreyt wow.
q[Skud] show me how to do hello world, so i can feel good.
audreyt stevan: excellent!
blm q[Skud]: Good stuff :-)
stevan I assume you are not going to attend YAPC::NA 06
audreyt ./pugs -e 'say "Hello, World"'
er, I mean
pugs -e 'say "Hello, world"'
q[Skud] hurrah! 05:45
stevan pugs -e '"Hello, world".say' :)
q[Skud] *happy dance*
audreyt :))
q[Skud]: write down your command history to pugs.kwiki.org/?PugsDownload before it disappears?
(or alternatively document it into docs/)
q[Skud] audreyt: good lord. it's terrifying.
audreyt: um. i'm not sure i want to inflict it on anyone else.
like, it uses a lot of --force-blah 05:46
audreyt q[Skud]: I imagine there may be ubuntu users who'd need this help
revdiablo q[Skud]: If you put up what you did, someone may either fix the problems you encountered or come up with an easier way to do it
audreyt if you feel uncomfortable with it in the pugs tree, put it in the wiki, or just nopaste it :)
q[Skud] well, ok
audreyt Skud++
stevan: when and were is that?
stevan Chicago late June 05:47
audreyt ah... then maybe not
stevan you ban still has 3 years left in office ;)
s/ban/boycot/ 05:48
audreyt stevan: I'll reevaluate if needed... but doesn't look terribly good at this moment either
stevan would rather go to il than chicago himself :) 05:49
audreyt stevan: anyway. your "core" list and hash can also hold Instance
bug? feature?
stevan hmm
yes, they will need to be able to
audreyt that causes a level interdependency 05:50
stevan true
audreyt so is Instance after all a core native type? :)
or we just declare it a interdependency 05:51
the code can deal with it
stevan well the Core and MM seperation was somewhat arbitrary anyway
audreyt yeah, so I think we lose it
stevan ok
I have no problem with that
audreyt does a type-directed coding 05:52
(changing the type for NativeMap and fix all type errors)
q[Skud] ok, wikid it 05:53
someone read it and tell me if it makes sufficient sense?
ok, so i should check out the pugs code i guess 05:54
obra Is there a pugs wiki? 05:55
q[Skud] apparently so.
pugs.kwiki.org
audreyt apparently our /topic is obscure :)
q[Skud]: I fixed your formatting
looks sane, thanks!
obra audreyt: there are too many urls
audreyt indeed
obra and there's no wiki on pugscode.org
q[Skud] gah, now i can't apt-get install svn ... definitely something borked in ubuntu here 05:56
audreyt obra: nod. that's very much intentional
q[Skud]: s/svn/subversion/?
q[Skud] oh, it's called subversion
yes.
*headdesk*
obra audreyt: that's..unfortunate :/
audreyt obra: *nod* but I'd like it to be strictly a scratchpad for lambdacamels. all reusable docs should be in the svn tree (and now Perl6::Doc) 05:58
q[Skud] svn-- # man pages, people! they exist for a reason!
obra audreyt: ah. ok. that's quite reasonable.
audreyt q[Skud]: svn co svn.openfoundry.org/pugs
q[Skud] yup, got it. 05:59
had to go look at webpages. sigh.
how do i tell it who i am?
audreyt you do it on your first checkin
svn ci
q[Skud] ahhh. 06:00
it asks me?
audreyt yup.
q[Skud] ok, np.
audreyt sanity and all
q[Skud] wheee.
obra updates the wiki to add audrey's clarificiation of its purpose 06:01
audreyt obra++ 06:03
stevan_: is change_class ever exposed to userland in any way?
i.e. is there a code path that leads there?
i.e. can you rebless in perl6? 06:04
stevan_ audreyt: change_class is probably not exposed to userlang
audreyt (I don't see one, hence the question)
good. then it can go. :)
stevan_ it is only used in the Eigenclasses
audreyt but we can make them nondestructive. 06:05
i.e. essentially make another Instance that share the Opaque
stevan_ ok
that works
I use it also in the bootstrap though
so that Class is an instance of Class
audreyt $::CLASS = $::CLASS.update_class_with($::CLASS) 06:06
stevan_ ok
audreyt hm, that doesn't quite work.
anyway, I'll deal. 06:07
stevan_ it is the same as change_class really
q[Skud] there. committed a README
audreyt Skud++
r0nny yo 06:08
svnbot6 r8198 | skud++ | Initial rough outline of how p6doc will work.
audreyt stevan_: what is 1.id? 06:10
stevan_ good question :)
audreyt I think it will be whatever the previous 1.id is 06:11
and if it's the first call to 1.id, then current count of objects + 1
stevan_ previous 1.id?
audreyt i.e. boxing increments the id.
stevan_ wouldnt calling .id cause it to autobox?
audreyt to me it's the most intuitive of all.
sure would
stevan_ oh I see
audreyt checks irb and confirms that it's ruby's behaviour 06:12
stevan_ well I would assume that we cache 1, 2, 3, 4, 5, etc so they are singletons
audreyt they are
but still their .id can't be predetermined
see: diagonal
stevan_ yes, thats fine
audreyt cool :)
stevan_ as long as 1.id returns the same value always 06:13
audreyt aye
stevan_ I dont think the value it produces is as important as the values uniqueness
audreyt nodnod. 06:14
I'll bbiab -- need to be offline in order to complete the bootstrap :) & 06:17
q[Skud] what's a good name for a document for users coming from perl 5, which assumes familiarity with perl 5 and just describes the differences? 06:33
Perl6::Doc::Perl5Differences
stevan_ audreyt: just commited the first docs for PIL.Native, please review them when you have time 06:37
svnbot6 r8199 | stevan++ | PIL.Native.*
r8199 | stevan++ | - first attempt at documenting the PIL.Native.* modules, mostly
r8199 | stevan++ | just rough sketches for now, will rework later (and use proper
r8199 | stevan++ | Haddock markup as well)
stevan_ time for bed now, I will try and do some more tomorrow, $work permitting 06:38
adios &
svnbot6 r8200 | skud++ | Roughed in a couple of introductory bits. Not sure about the name for Perl5Differences 06:40
r8200 | skud++ | but it'll do for now -- I need somewhere to stick things as I notice them.
q[Skud] karma skud 06:41
ok, hometime. 07:07
svnbot6 r8201 | Darren_Duncan++ | r1274@Darren-Duncans-Computer: darrenduncan | 2005-12-12 23:15:03 -0800 07:17
r8201 | Darren_Duncan++ | /ext/Rosetta-Incubator : added a brand new, never before seen, c150 line SYNOPSIS pod to Rosetta.pm, having a faux example of its use
ingy audreyt: thanks for the bit 07:37
PJF D'oh. Looked like I missed Skud just in time to suggest 'perldelta' as the traditional place to look for changes. 07:48
GeJ greetings all 07:50
dduncan audreyt, ditto 08:04
but I'm not sure what it allows me to do that I couldn't do before ... give bits to others, perhaps? 08:05
Aankhen`` Your status was changed too? 08:07
dduncan mine was ... an hour or three ago
svnbot6 r8202 | pjf++ | 'make clean' now removes 'create_this_file' and 'create_this_file2'. These 08:13
r8202 | pjf++ | files may be left in the top-level directory if a 'make test' is
r8202 | pjf++ | interrupted or fails.
Skud pjf: back now. good point, only i think it's a faintly dumb name 08:17
pjf: i mean, yes, that's what it was in p5, but i don't think it was a particularly obvious name.
OTOH, since it's aimed at people coming from earlier versions... they might expect that. 08:18
PJF Skud: Welcome back! 08:19
'perldoc perldelta' would be the first thing I'd type in with a fresh new install. Having said that, it doesn't normally document everything that's changed between two major releases. So 'perldelta6' may be a pointer to your new file. 08:20
Skud pjf: you missed the bit earlier about naming 08:24
we're going to go hierarchical. the flat namespace in perl 5's perldoc is a total mess 08:25
docs will be named Perl6::Doc::Doctype::Topic
eg Perl6::Doc::Tutorial::Objects
PJF Skud: I just spotted that. I'm reading through the docs now. And yes, I agree that perl5's perldoc does need some layers.
Skud so you'd do something like p6doc Tutorial::Objects
svnbot6 r8203 | autrijus++ | * Switch to the much much faster Data.Sequence implementation 08:28
r8203 | autrijus++ | as part of upcoming GHC 6.5.
PJF Skud: Are you planning on keeping the existing 'perldoc -f' and 'perldoc -q' semantics, to search in Perl6::Doc::Functioins:: and Perl6::Doc::FAQ:: respectively? 08:29
gaal hi. 08:30
PJF Good localtime, gaal! 08:31
svnbot6 r8204 | autrijus++ | * Add the runSIO form to MonadSTM to make sure that 08:34
r8204 | autrijus++ | "atomically" works right this time in minilang.
Skud pjf: hey, check this out... nla.gov.au/nla.mus-vn3118296-s1-v.jpg
pjf: mostly right now i'm just writing docs 08:35
pjf: i figure someone who cares about the tools can deal with that
gaal hi :) lots of backlog this localmorning
PJF pjf: Scary, Skud. Looks almost like something you'd find on a Sydney beach. ;( 08:36
Skud pjf: quite. presumably that one dates to the trade-unions-vs-kanaka-labour thing from 1900ish
gaal audreyt: so, should I fix 'is export' first? oh and also: is sub exportation also lexical by default? 08:38
PJF Skud: Took me a while to spot the date. I thought it read '1980' for a moment.
Skud the mustaches didn't give it away?
ok, well, i've had about as much catching up with the news as i can stand 08:41
dduncan Skud, haven't seen that before
Skud looks like we'll get some rain tonight, which might quieten things down a little
right now, i feel the desparate urge to curl up with a trashy novel and some chocolate. i'll be back tomorrow. 08:42
PJF Skud: I sincerely hope that things do quieten down. The news has been most depressing.
webmind depressing ? 08:43
Skud webmind; the sydney riots
svnbot6 r8205 | autrijus++ | * PIL bootstrapping #1 -- only opaque::send left to do
r8205 | autrijus++ | before we can run the boostrap code!
r8205 | autrijus++ | * Also introduce the idea of an "ObjectSpace" that the user
r8205 | autrijus++ | can dump at end of program (which may have holes in it
r8205 | autrijus++ | due to GC) and introspect from.
GeJ PJF: got that on the news... well, it was in german, so I got only the half of it. What started the all thing?
webmind ah haven't read about those
was trying to follow the CIA coverup
Skud webmind: smh.com.au/
PJF GeJ: Bloody-minded intolerance started the whole thing. Although that's probably not the answery you're looking for. 08:45
svnbot6 r8206 | autrijus++ | * add the missing PIL.Native.Objects
Skud some kid on tv said it was because the "lebs kicked soccer balls at hte lifeguards and stole people's towels" 08:46
which is just fucking bizarre
en.wikipedia.org/wiki/2005_Cronulla_race_riot
gaal audreyt: so what I was having in mind was that every exportation, including ruleSubDeclaration etc., should make a note instead of pushing the symbol immediately, and then do the actual symbol push via the InitDat thing in the rule for use. 08:49
data InitDat = { symbols :: [(Pad -> Pad)], pragmas :: [Pragma] } 08:51
this is assuming a module has *no* control over the scope of a symbol it exports, and the calling module always gets to determine that; is this correct? 08:52
(doesn't sound very Perlish to me...!)
also probably Pad -> Pad needs a type, right? :) 08:54
type PadMutator = (Pad -> Pad) ? Or a better name? Or not at all? 08:56
Also, I'm not sure I understand how many pads an Env has. in mkEnv it looks like there's only one pad, envLexical. But looking at Scope suggests there's a Pad for every kind of scope. Does that work because there's also an Env for every scope!? 08:59
dduncan here's something different, by the Writers Guild of America: www.productinvasion.com/ 09:03
related is www.wga.org/subpage_newsevents.aspx?id=1422 09:04
related, www.wired.com/news/business/0,1367,..._tophead_3 09:05
that is all
svnbot6 r8207 | gaal++ | * minor refactoring: type PadMutator = (Pad -> Pad) 10:25
audreyt stevan_: ping 10:51
gaal: all "scopes" are in envLexical 10:52
(or envGlobal)
stevan_: I've bootstrapped get_method
gaal hey audreyt. but where is, for example, the pad for SState? 10:57
envLexical is only SMy, right?
PJF Night all. I'm going to try and get some sleep tonight. Happy hacking. 10:58
audreyt gaal: also in envLexical 10:59
but it's not cleared upon reentry -- see reducePad in Eval
gaal so envLexical holds the concatenation of all pads, and when reentering (reducing again), each new pad is unioned correctly by its type? 11:04
a Pad node in Exp, then, can be thought of as a bunch of pad update requests to a certain scope 11:07
(is it really a bunch? can the parser group several items in this pad? looking....) 11:08
audreyt yes, a bunch 11:13
because it's unionPad'ed with the existing pad
so you can throw in a bunch of pads at once
gaal I'm still trying to see where this would happen 11:14
my ($x, $y, $z) ?
ah, I think I see: eg. ruleVarDeclaration second choice 11:18
(decl, lhs) <- choice ..... do names <- parens . (`sepEndBy` ruleComma) ...
audreyt good that you see it, because my brain is fried again... it's 10pm, been working nonstop all night :)
svnbot6 r8208 | autrijus++ | * bootstrapping of ::Class.isa(::Class) is complete. 11:19
r8208 | autrijus++ | try these in pil shell:
r8208 | autrijus++ | ::Class.get_method('get_method')
r8208 | autrijus++ | ::Class.add_method('foo', -> $x { self.get_method($x) })
r8208 | autrijus++ | ::Class.foo('foo')
gaal This is starting to click... but I'm pretty sure the spec is going to change (see post to p6l)
make pil => src/syck/syck_st.c:5:23: error: ghcconfig.h: No such file or directory 11:20
svnbot6 r8209 | autrijus++ | * make SIO a subclass of Functor to save some typing.
gaal do I need a -dev package?
audreyt no... a sec 11:21
hm, maybe you do. do you have something like /usr/local/lib/ghc-6.4.1/include/ghcconfig.h ? 11:22
I thought ghc will come with a -dev already
gaal i have it in /usr/lib, not /usr/local/lib 11:23
(debian)
audreyt nod... that should do
gaal um, but the include says 11:24
#include "ghcconfig.h"
audreyt probably a missing -I line
gaal yeah
audreyt the main pugs works though?
gaal yeah
don't worry about it, i'll chase it
audreyt ... but I fixed it 11:25
gaal "some definition of fastest" etc. :) 11:26
audreyt try r8210 :)
11:27 gugod___ is now known as gugod
svnbot6 r8210 | autrijus++ | * pil doesn't depend on syck, so don't pull in syck. 11:27
r8210 | autrijus++ | reported by gaal++
gaal same error :( 11:28
I think I may need make clean though. sec 11:29
audreyt perl Makefile.PL again 11:30
also r8211 :)
stevan_: I need help with transcribing the s-exp model or the MetaModel::Bootstrap to the minilang 11:31
svnbot6 r8211 | autrijus++ | * "remember" command history in PIL shell by replaying all previous commands.
audreyt stevan_: please see src/PIL/Native/Eval.hs line 42 11:32
addClassMethods
that's where the boot code belongs
so... any help in transcribing the various stages of boot code into minilang form is appreciated -- once that runs we'll finish boostrapping tomorrow 11:33
I'll check back ~8hrs from now. good night :)
gaal night audreyt 11:36
audreyt *wave* &
svnbot6 r8212 | gaal++ | * fix `pil' and `pili' targets. 12:38
fglock what is the status of 'listfix:' for comma and zip operators? it was suggested, but not official, I think 12:44
meppl guten morgen 12:49
svnbot6 r8213 | autrijus++ | * Support for closures in Minilang: 13:02
r8213 | autrijus++ | (-> $x {-> $y {$x.add($y)}}).(3).(4)
r8213 | autrijus++ | * Also the implicit Y-combinator form of &?SUB:
r8213 | autrijus++ | (-> $n {-> &f {
r8213 | autrijus++ | $n.eq(0).cond(
r8213 | autrijus++ | ->{1},
r8213 | autrijus++ | ->{$n.multiply(&f.($n.subtract(1)))}
r8213 | autrijus++ | )
r8213 | autrijus++ | }.(&?SUB)}).(10)
wolverian well, that blew my mind.
clkao mmm yum 13:03
Alias_ Oh yeah, because anyone understands THAT commit :) 13:04
gaal audreyt: still around? I'm thinking we need a new Scope, SExported
a module is parsed once, but used many times
so currently exporting must be broken
Yes it indeed is. 13:11
blm Alias_: Are you there?
gaal ./pugs -e 'use Ex; say f; package B; use Ex; say f' <= where Ex.pm has 'sub f is export { 42 }'
audreyt it is broken, and yes I agree (or cache the Export symbols in %INC? anyway a new structure is needed)
Alias_ yep
(testing, 1, 2, 3)
blm Alias_: can you /msg me? 13:12
gaal %INC is interesting... but won't that cause reference counting troubles?
audreyt gaal: no, because we are not reference counting anymore :) also because the time it's queried in the compiler 13:13
Alias_ did you get that?>
audreyt not in the runtime
so it doesn't affect the runtime behaviour (please keep in mind the separate compilation model)
blm Alias_: no. Arrghh. This is driving me mad.
Alias_ What client are you using? 13:14
blm Alias_: Never had a problem with irc before :-(
Using irssi on debian
audreyt Alias_: you may need to register your nick on freenode
/msg nickserv register
they banned all /msg for unregistered people 13:15
gaal mindborne. so just add a "exports" element in the %INC element for this module?
Alias_ ah
Stupid freenode
audreyt gaal: prolly, yeah
gaal okay, I'll see how that works out. weren't you going to sleep? :) 13:16
Alias_ ok, and if you forget your nickserv password? 13:17
blm You have to convince an op that you registered the nick. You can get on with a diff nick
gaal Alias_: you /msg lilo and ask for it to be reset
Alias_ God what an ugly system
audreyt gaal: right, but I started dreaming about static analysis of minilang and discovered I forgot to hack in closure support 13:18
gaal I hate it when that happens :) 13:19
audreyt :)
Alias_ audreyt: Got that 5-10 minutes?
audreyt Alias_: go ahead - I've seen File::sharedir 13:20
Alias_ 2 questions actually
gaal anyone here vim-savvy? why does :map <F3> :cn<CR> not work? It does something like ~~~ instead of what I want it to do.
Alias_ Firstly, what's with dist vs module auto dirs
It would seem that dist share Foo-Bar is the same as module share Foo::Bar 13:21
audreyt yes and it is intentional
wolverian gaal, worksforme 13:22
Alias_ It is?
audreyt dist split with '-' and module split with '::' are conflated into the same hierarchy
Alias_ Well that just plain sucks
Since dist name and module names are supposed to be orthogonal
audreyt why? is it not conventional that people use the same name for main module and dist? 13:23
I don't think it's part of perl 5 module system's design that they are orthogonal
(I agree they _should_ be orthogonal, but hindsight is 20/20 etc.) 13:24
Alias_ It's convention, but it's not meant to be related
For example, "bioperl"...
audreyt if you really want to solve this, introduce an auto/share/ hierarchy 13:25
for per-module autos
and keep original per-dist ones in place with packlist etc
gaal wolverian: what does?
wolverian gaal, :map <F3> :cn<CR>
audreyt remembers she's got a plane to catch tomorrow noon 13:26
Alias_: what's the other question? be quick. :)
gaal wolverian: oh. the maddening thing is that it *used to* work. maybe putty's screwing it up?
wolverian gaal, probably
Alias_ audreyt: Redesigning the <request> part of the PITA-XML to handle multiple languages and install sequences 13:27
audreyt goodie
Alias_ So I need to deal with requests in terms of schemes and authorities now/
?
p5, p6 etc
fglock audreyt: will 'listfix:Y' replace 'infix:Y'?
(zip operator) 13:28
gaal yay! changing the Keyboard settings there did the trick :-)
Alias_ audreyt: Got a URL for the full C<use> format?
audreyt fglock: no... infix:Y is assoc<list>
fglock ah, ok 13:29
audreyt Alias_: svn.perl.org/perl6/doc/trunk/design/syn/S11.pod
Alias_ <request><scheme>p5.makefile</scheme><filename>...</filename><md5sum>...</md5sum><authority>CPAN</authority><authpath>...</authpath></request> 13:31
gaal wolverian: as thanks, take also 'map <S-F3> :cp<CR>' and ':mksession' if you don't know them already :)
Alias_ I figure something along those general lines 13:32
audreyt Alias_: sure, that worksforme... I'd probably split into <scheme> and <subscheme> instead of a dot, but it's all bikeshed 13:33
gaal what do you say to finally throwing away the %*INC key = relative filename cruft? 13:34
Alias_ audreyt: From what I can tell, the dot is part of the URI scheme format
audreyt: Like z39.50s, z39.50r, etc
Raw "p5" would do the "use Makefile.PL or Build.PL as you want" and the . dictates a specific installer 13:35
gaal %*INC<My::Module> = { relative_path => 'My/Module.pm', loaded_resource => '/usr/lib/..../My/Module.pm', exports => { '&frob' => ... } }
audreyt Alias_: oh, you are actually using URI scheme format... sure then, RFC 2396 is your friend 13:36
Alias_ Well, you said "scheme"...
So of course I just assumed ... :)
audreyt the assumption would be correct :)
gaal: I say it makes sense, go ahead :)
gaal or even go all the way and stipulate a class for this in the Prelude
Alias_ in which case the . should be fine
gaal only problem is that it must be tightly coupled with pugs 13:37
so it isn't really wholly defined in the prelude.
audreyt gaal: sure, but what methods would you throw to it?
yeah
just keep it a struct for now
Alias_: yup.
ingy: I'll release Perl6::Bible. is it okay for me to assume comaintainership?
gaal ok. (wanted to put it in the prelude so that the prelude can easily define pragmatic modules without undue %*INC hackery) 13:38
audreyt oh, right, we need support for reexportation 13:39
use CGI is export;
that way Prelude can be decomposed to a number of .pms
and is generally sane anyway
gaal whoa, that's cool. I did horrible hacks to get halfway facades in P5 13:40
Alias_ audreyt: hmm... S11 is very... conversational. 13:48
stevan_ audreyt: I am grabbing the latest version right now ...
audreyt stevan_: hey, cool... let me know if it makes sense to you :) 13:49
stevan_ audreyt: I will
audreyt Alias_: verily, which is why we want a ::Spec instead of a ::SynopsisPlusRanting
stevan_ shouldnt you be sleeping?
Alias_ ah
So in brief... the default scheme is "perl5", and the default authority is "cpan" ?
audreyt for perl5, maybe, but otherwise it's "perl6" :) 13:50
Alias_ right
oh yeah... ok
Maybe my question should then have been, scheme "perl5" and "perl6", and the authority is "cpan"
audreyt yup
Alias_ But how does the authority differ per scheme 13:51
stevan_ audreyt: when I "make pil" I am getting this -> src/cbits/fpstring.h:1:19: error: HsFFI.h: No such file or directory
do I need to "make" first?
audreyt hm, what's your system? 13:52
stevan_ OS X Tiger
I found the file in /usr/local/lib/ghc-6.4.1/include/HsFFI.h
audreyt gaal reported the same bug
stevan_ wasnt gaal's the ghcconfig.h?
audreyt yeah, but same thing 13:53
I removed syck so you are seeing HsFFI instead
fixing 13:54
gaal pil doesn't need cbits either? 13:57
audreyt fixed 13:58
Alias_ audreyt: So is the authority per-scheme?
audreyt gaal: it does need
gaal uh, how do I spell s,::,/,g in Haskell?
without Parsec :-) 13:59
audreyt intersperse "/" . split "::" 14:00
gaal yay, thanks.
audreyt err, prepend it by (concat .)
np :) 14:01
stevan_: try r8214
svnbot6 r8214 | autrijus++ | * build syck and cbits with GHC, not with perl.
r8214 | autrijus++ | Reported by: gaal++, stevan++
stevan_ trying right now 14:02
audreyt ingy: let me know if I can make myself comaint of Perl6::Bible, or you'd make me comaint, or release the svn trunk version :) 14:03
stevan_ audreyt: PIL.Native.Object seems to make sense, but i am still drinking my first cup of coffee,.. so I can't be sure ;)
audreyt ahh... gotta love the timezones.
gaal gotta love the coffee, too 14:04
audreyt waves &
stevan_ (-> $coffee { $coffee.increment().increment() }).()
audreyt stevan_: good night... hopefully this time for real
stevan_ audreyt: good night ...close the laptop,.. that might help 14:05
gaal audreyt splits, gaal splits and intersperses
audreyt stevan_: you can translate the code and assume that &NEW_OPAQUE and &WALKMETH etc is there
stevan_ ok
audreyt will try to get it all done before I board the plane tomorrow
audreyt waves &
trym *yawn*ōæ½xC6 14:29
gaal yay. vim users, haskell.org/hawiki/Vim (the errorformat there is useful) 14:33
clkao nopaste.snit.ch:8001/5851 14:52
gaal clkao: latest r? I think that was fixed... 14:57
just delete nopaste.snit.ch:8001/5851
and er 14:58
delete src/Pugs/PreludePC.hs that is
and build again.
clkao latest. cheers
svnbot6 r8215 | kane++ | r315@coke: kane | 2005-12-07 13:29:42 +0100 15:08
r8215 | kane++ | * add alternatives code
r8215 | kane++ | * add tests for it
r8215 | kane++ | * move the linking section to Installation.pm
r8215 | kane++ | * add a test .jib for this purpose
r8215 | kane++ | r316@coke: kane | 2005-12-07 15:35:01 +0100
r8215 | kane++ | * change the way package.pm works:
r8215 | kane++ | * it now delegates to Package::Source (the old package.pm),
r8215 | kane++ | package::binary and package::installed to represent the
r8215 | kane++ | 3 types of packages we know
r8215 | kane++ | * package->new will figure out which type of package is intended
r8215 | kane++ | and build the right object, and set up inheritance
r8215 | kane++ | * Installation.pm will return Installed objects
r8215 | kane++ | r317@coke: kane | 2005-12-07 16:50:45 +0100
r8215 | kane++ | * make multiple installation dirs work
r8215 | kane++ | * add a dir() accessors to Installation.pm
r8215 | kane++ | * make Path::Class not export it's damn dir() function all over hte place
r8215 | kane++ | * update tests to match
r8215 | kane++ | r341@coke: kane | 2005-12-08 16:04:22 +0100
r8215 | kane++ | * add constants for object types
r8215 | kane++ | r342@coke: kane | 2005-12-08 16:10:49 +0100
r8215 | kane++ | * use constatns for allow() check
r8215 | kane++ | r343@coke: kane | 2005-12-08 17:05:23 +0100
kane-xs_ wee
svnbot6 r8215 | kane++ | * submit new style config that can deal with dynamic paths 15:09
kane-xs_ clkao++ # defuckifying svk issues
gaal argh! what's wrong with this? 15:14
Couldn't match `Exp' against `Val'
In the expression: VStr $ (decodeUTF8 pathName)
why's VStr expecting Exp? 15:15
(those parens are redundant, I know)
svnbot6 r8216 | fglock++ | * misc/Parser-Mini - rename pil2_* to pil1_* 15:30
gaal ouch, running make clean instead of make just now really hurt :-( did I mention I wanted ccache for ghc? 15:59
hey, come to think of it if I install a systemwide ccache that should just work! 16:01
kane-xs_ seen audreyt 16:38
jabbot kane-xs_: I havn't seen audreyt, kane-xs_
kane-xs_ pff, liar
gaal kane-xs_: about 3h ago, I think. 16:52
kane-xs_ gaal: and sleeping i assume
svnbot6 r8217 | kane++ | r450@coke: kane | 2005-12-13 17:59:14 +0100 17:03
r8217 | kane++ | * fix meta_dir to be an absoulte path -- this will need to be changed to support multiple installations
r8217 | kane++ | * fix order issue in meta.info accessor
r8216 | fglock++ | * misc/Parser-Mini - rename pil2_* to pil1_*
r8218 | kane++ | r451@coke: kane | 2005-12-13 18:00:02 +0100 17:05
r8218 | kane++ | * use constants for allow() handling
r8218 | kane++ | * update $inst->available upon registration
r8219 | kane++ | r452@coke: kane | 2005-12-13 18:00:49 +0100
r8219 | kane++ | * use constants for allow handling
r8219 | kane++ | * use new style config paths
r8219 | kane++ | * fill in basic uninstall() with podded out code from prototype
r8220 | kane++ | r453@coke: kane | 2005-12-13 18:01:36 +0100
r8220 | kane++ | * make install() return a package::installed
r8220 | kane++ | * fix silly typo
r8221 | kane++ | r454@coke: kane | 2005-12-13 18:02:01 +0100
r8221 | kane++ | * let JIB::Package accept arbitrary arguments to pass on to underlying classes* let JIB::Package accept arbitrary arguments to pass on to underlying classes* let JIB::Package accept arbitrary arguments to pass on to underlying classes* let JIB::Package accept arbitrary arguments to pass on to underlying classes* let JIB::Package accept arbitrary arguments to pass on to underlying classes* let JIB::Package accept arbitrary arguments to p
fglock "repeat something over and over again until it becomes true" 17:08
svnbot6 r8222 | kane++ | r455@coke: kane | 2005-12-13 18:02:38 +0100
r8222 | kane++ | * prefix got added by someone to the sample .info file -- this broke the test
r8223 | kane++ | r456@coke: kane | 2005-12-13 18:02:58 +0100
r8223 | kane++ | * better installed() tests
r8224 | kane++ | r457@coke: kane | 2005-12-13 18:03:11 +0100
r8224 | kane++ | * use new style config paths
fglock ?eval Array.new.push(1) 17:16
17:16 evalbot_8197 is now known as evalbot_8224
evalbot_8224 Error: Can't modify constant item: VUndef 17:16
fglock what's wrong with this? 17:17
?eval [].push(3,4) 17:19
evalbot_8224 2
fglock this is weird too - it doesn't return a list, even in list context '@a=...' 17:20
wolverian in perl5 it returns the array's new size. 17:21
in list context, too :)
(I don't know how that's in any way useful.)
xinming fglock: hmm, for slurp stdin, the "perfect" version is `** $*IN.slurp` :-) 17:29
svnbot6 r8225 | yiyihu++ | Change slurp stdin /~list($*IN)/ or /~$*IN.slurp/ to /** $*IN.slurp/, Since ** operator is implemented.
fglock xinming: thanks! 17:30
xinming: I guess stringification forces ** context, since strings are non-lazy by default
xinming fglock: as, said in synopsis, in string context, each element in list will add a space before the next one, 17:31
fglock xinming: right
xinming fglock: though, we can use ~list($*IN).as("%s", ''); 17:32
fglock: But the problem here is, It might take more cpu circle. :-/
slurp happens lazilly 17:34
so ** will force flat the list
All list contexts are lazy by default. They still flatten eventually, but only when forced to. You have to use unary ** to get a non-lazy flattening list context (that is, to flatten immediately like Perl 5).
in synopsis 9
fglock but how this changes the addition of spaces? 17:36
xinming fglock: this are in two context, slurp happens lazilly, and return a string, So, we force slurp to eval immediately. 17:38
fglock audreyt: re minilanguage - '[].push(3,4)' doesn't return a list in pugs
xinming: such that it returns a single string?
xinming fglock: yes
but need ** 17:39
fglock xinming: ./pugs -e ' my $s = ~ $*IN.slurp; print $s ' - reads a line and prints it, like if the string was lazy? 18:07
./pugs -e ' my $s = ~ $*IN.slurp; print "[$s]" ' - confirms this: it only prints "]" after ctrl-d 18:08
and it doesn't add spaces 18:10
so we have some kind of lazy string here 18:14
gaal could someone with a built latest pugs please run t/data_types/flattening.t and tell me if it dies? 18:27
or t/builtins/want.t 18:28
ingy audreyt: go ahead on p6b
fglock gaal: 'not ok 4 - scalar is not implicitly array # TODO bug' 18:31
r8090
gaal fglock: there've been a few commits since :-) 18:38
I'm getting crashes on missing .elem, .splice, etc. on all sorts of tests, and I want to know if it's my fault since I've been hacking exportation a bit. 18:39
fglock gaal: I'm recompiling - it should be ready in a few mins 18:44
stevan_ fglock: the mini-language is not the same as pugs 18:47
you have to make pili to get the mini-lang repl
(at least I think so, cause I have not yet been able to get it to complie) 18:48
fglock stevan: yes, but it would be nice if it would be valid p6 18:49
and it is not far from that
and if it would be easily parsed, we could have a parrot compiler soon 18:50
stevan_ fglock: I am not sure it matters if it is valid p6 or not 18:52
it is meant to be embedded deep within, and not relevant outside of it's own context 18:53
fglock gaal: No such method: "&elems", using r8225
stevan_ fglock: the idea is that if you can implement the peices needed for the mini-lang, then the mini-lang source can be shared 18:56
so we would not target parrot so much as Parrot would be the host for htis
stevan_ needs to write this stuff down somewhere 18:57
fglock stevan_: there are some advantages of making it a subset of p6 18:58
you will be able to use the p6 debugger when it's available :) 18:59
stevan_ fglock: true 19:01
well I know audreyt is trying to keep it "pure" ,.. so maybe it will end up being Featherweight P6
fglock re '[].push(3,4)' returning a scalar in pugs - maybe it should return an Array when in list context 19:05
stevan_ fglock: that syntax exists mostly because we have no variables and no constructors 19:06
it is not ideal
I think audreyt hacked in a [3, 4] version recently too 19:07
?eval Array.new().push(3, 4)
19:07 evalbot_8224 is now known as evalbot_8225
evalbot_8225 Error: Can't modify constant item: VUndef 19:07
stevan_ ?eval [].push(3, 4) 19:08
evalbot_8225 2
stevan_ ?eval [].push(3, 4, 5)
evalbot_8225 3
stevan_ ?eval ().push(3, 4, 5)
evalbot_8225 Error: Can't modify constant item: VUndef
stevan_ ?eval Array.new 19:09
evalbot_8225 Array.new()
stevan_ ?eval my @x = Array.new;
evalbot_8225 [Array.new(),]
gaal rehi
stevan_ hey gaal :)
gaal fglock: thanks v much!
19:09 stevan_ is now known as stevan
fglock np 19:09
gaal stevan: that stevan_ guy was just here. i followed your advice and didn't talk to him. 19:10
stevan gaal: yes, best to ignore him :P
although I think he is catching on,.. he seems to disapear when you arrive
gaal i'll ci my subversive %*INC change once i finish this divine falafel. 19:11
stevan wants a falafel too
fglock mmm falafel
fglock does his own falafel 19:12
it is hard to find falafel here
gaal stevan: tell your wife there's falafel right around the corner where I live :-)
stevan that will do her no good :)
but I will try
I almost got her to say maybe last night 19:13
gaal data YAPC = Maybe Falafel 19:14
stevan is that a lazy falafel??
gaal actually it's a type error, this is not Just some falafel you know.
stevan :) 19:15
as long as yuval doesnt set us all ablaze cooking it,..
gaal uh oh, boiling oil...!
stevan we will let him handle the tahini... thats pretty safe :) 19:16
gaal yeah, can't threaten us with too much garlic
stevan :)
svnbot6 r8226 | gaal++ | * Make %*INC more useful. Keys are now Perlish names, not relative paths 19:36
r8226 | gaal++ | to filesystem resources. Values are (for now) a simple hash with
r8226 | gaal++ | reasonable memebers (the relative and absolute paths); this will
r8226 | gaal++ | eventually evolve to a Module description object of some sort. This
r8226 | gaal++ | change needs to be specced.
audreyt gaal: it may make sense to implement this protocol: lambda-the-ultimate.org/node/view/926 21:58
Skud morning, audrey. just heading into the office. see you in an hour... i had documentation dreams last night, argh! 22:07
audreyt hopefully it was still an enjoyable dream? 22:08
I had serializable continuation dreams last night.
obra audreyt: oo 22:12
I really like them. they make life better.
svnbot6 r8227 | clkao++ | Initial import of my jsperl hacks. 22:13
gaal morning audrey! I am just going to bed :) 22:14
clkao grins
audreyt gaal: hey :) did you figure out the VStr problem? 22:16
gaal I think GHC was giving me a wrong line number -- I wasn't casting correctly the *next* line 22:17
it was one of those "couldn't be!" bugs
so I switched the order of the lines
and got the compiler error on the same line, this time the right one, that is to say the one with the wrong code 22:18
fixed the code, then it compiled.
then I extracted the silly cast to a function :-)
I think I'll put off reading that ltu link for tomorrow. too bad there's $work though :) 22:19
Also I'm hoping @Larry respond to my p6l query because I bet there'll be some changes there eventually. The sooner the better as far as I'm concerned... 22:21
anymoose, gaal gaals. &
audreyt cool 22:24
sweet dreams, gaal
clkao ./pugs -CJS -e 'my @a = (1,2,3,4); pop @a; say +@a' 22:26
i wonder why this doesn't work. is it pil problem?
2 more parameters passed to sub &JS::Root::pop than expected (2)
audreyt it worksforme. 22:35
[audrey]~/work/pugs$ ./pugs -BJS -e 'my @a = (1,2,3,4); pop @a; sa 22:36
3
audreyt goes packing 22:37
clkao hmmm 22:39
stevan audreyt: ping 22:48
svnbot6 r8228 | clkao++ | clkao:~/work/pugs/perl5/PIL2JS clkao$ ./runjs.pl --js=util/jsperl -e 'say $*OS'
r8228 | clkao++ | darwin
clkao grins
it's no longer 'browser'!!!
audreyt stevan: pong 22:49
stevan audreyt: still cannot get make pil to work
audreyt stevan: what's the err?
stevan this time it is FastPacked String giving issues
/tmp/ghc1693.hc:8:22: error: fpstring.h: No such file or directory 22:50
fpstring.h is in /src/cbits/
audreyt fixing
stevan horray !!!!
audreyt fixed
try again? 22:51
stevan trying ...
while I am waiting for this to retry,.. 22:52
svnbot6 r8229 | autrijus++ | * fix build problem for Data.FastPackedCString by pulling in src/cbits
stevan how can I test the mini-lang?
Test.pm in the mini-lang is not possible (well, not without serious amount of effort) 22:53
tewk_ How about a Test.pm that feeds expressions into pili and compares the result? 22:54
audreyt that's certainly a good idea
stevan tewk_: yes, that is probably the right approach
audreyt currently we can't bind $*OUT there
stevan like Parrot::Test does with PIR tests
audreyt as the bootstrap is not yet complete 22:55
stevan audreyt++ # we have PIL>
tewk_ I'll take a stab at it.
audreyt another idea is to add a .say to each value
stevan tewk_++
audreyt or .dump
or .trace 22:56
stevan .dump is good
clkao implements opendir
audreyt ooh, io in javascript 22:57
clkao YES
see my last commit :) $*OS 22:58
tewk_ Is there a Perl6::Test? 22:59
audreyt implemented
stevan ok, I must run for dinner, but I will be back later this evening 23:00
stevan &
clkao compiling prelude is too slow 23:02
how do i do development?
SyntaxError: syntax error at line 34409: ) 23:03
great, how to debug?
tewk_ audreyt: make pili gives /usr/lib/libpthread.so: invalid ELF header 23:05
because it's a ldconfig script on some platforms
audreyt fixing 23:07
tewk_ linking it to /lib/tls/libpthread.so.0 fixes, is there some way around that?
Loading object (dynamic) pthread ... failed.
same thing for libc
23:07 tewk_ is now known as tewk
audreyt stevan: I think the .trace form is good enough for harness outside the minilang 23:08
tewk: there's no Perl6::Test afaics... we've been self hosting the tests using ext/Test 23:09
svnbot6 r8230 | autrijus++ | * PIL: support for "./pil -e code" to facilitate testing.
r8230 | autrijus++ | * PIL.Native.Eval: support for "$obj.trace()" form that returns the $obj
r8230 | autrijus++ | but meanwhile prettyprints itself (and any arguments) to output.
audreyt tewk: see if r8231 worksforyou
do whatever needed to work around it in Makefile.PL... I'll check back from airport :)
audreyt waves
obra later 23:10
svnbot6 r8231 | autrijus++ | * try to fix "pili"
q[Skud] ok. back.
i'm not sure if this is a downside or an upside to moving desks... i get far more random perl questions at work now.
audreyt tewk: I've added some canonization to r8233; that should work for harness (I hope) 23:12
svnbot6 r8232 | autrijus++ | * in trace output, replace lines with spaces.
r8233 | autrijus++ | * also squash whitespaces in .trace forms. Try this:
r8233 | autrijus++ | ./pil -e '::Class.trace; nil'
audreyt &
tewk audreyt: thanks 23:19
Alias_ starts the heavy exhaustive testing process 23:26
parsing 70 character random strings, 90,000 iterations
ugh
# Looks like you failed 1 test of 90002. 23:32
DAMN IT! FOILED AGAIN!
audreyt it's nice to see that PPI is adopting QuickCheck :) 23:36
Alias_ of course, debugging is an issue
# '/gV1 [[f_]^{$!~=wc Vy$\nW^<0:)&::'z[f?=\n9+xV^{f.$:+;&{,c=z8]:),W|rc\t:_\\': Tokenizer returned an error
wilx Hehe.
Nice :)
audreyt QuickCheck has a "shorten"
you can cut down substrings from both sides 23:37
Alias_ QuickCheck?
audreyt until it exhibits the error with shortest substring
Alias_ how interesting
audreyt Alias_: haskell's random-input-based testing
Alias_ yes yes, what an interesting idea
audreyt Test::LectroTest on CPAN does something like it.
audreyt runs to airport -- see ya! & 23:38