-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 |