Pugs t-shirts www.cafepress.com/pugscode | Pugs 6.2.9 released | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net Set by stevan on 15 August 2005. |
|||
svnbot | r6915 | putter++ | PIL-Run - basic my() and temp() | 01:06 | |
putter | stevan_: ping? | 01:09 | |
stevan_ | putter: pong | 01:10 | |
putter | what would be involved in upgrading PIL-Run to mm v2? | ||
is that a reasonable thing to be thinking about at this point? | |||
stevan_ | putter: sorry.,.. trying to get the new client working | 01:11 | |
putter; mm2.0 is not yet finished | |||
putter | np | 01:12 | |
ok, so the right thing is to defer the upgrade for later | |||
stevan_ | putter: yes | ||
I am trying to keep the interfaces/APIs the same | |||
putter | great. tnx. looking forward to it :) | ||
stevan_ | however, some fundemental parts of the design have changed | 01:13 | |
so there might be some bits that need tweaking | |||
and to be totally honest, I am not 100% how the MM and the runtimes will fit together | |||
putter | hmm... I suggest you feel free to make api changes on whim. we have a very very small code base at the moment. better to get things right early, | 01:14 | |
stevan_ | you, fglock and iblech are blazing new trails :) | ||
I was going to look at PyPy to see how they did it actually | |||
putter | I'm just sweeping up behind the parade. | 01:15 | |
stevan_ | but, I have to run right now,.. be back in later tonight | ||
putter | ok. main question answered. thanks. & | ||
stevan_ | putter++ | ||
new-b | hello | 01:44 | |
dudley | hello | ||
new-b | hi dudley | 01:45 | |
stevan_ | luqui: ping | 02:37 | |
luqui | stevan_, pong | 03:11 | |
stevan_ | luqui: hey | 03:12 | |
luqui | grass | ||
svnbot | r6916 | stevan++ | Perl6::MetaModel 2.0 - | ||
r6916 | stevan++ | * fixing GC issue again, since I upgraded my perl | |||
r6916 | stevan++ | * testing the ability to disambiguate method calls by using the $::Package | |||
r6916 | stevan++ | interface to fetch the method first, then call it | |||
stevan_ | luqui: Call::Immediate very interesting | 03:13 | |
luqui | thanks | ||
luqui is going to use it for Class::Theory | |||
stevan_ | what is Class::Theory | 03:14 | |
luqui | it's my type-class-like object model that I described to you a little while ag | ||
ago | |||
stevan_ | ah yes | ||
hey,.. do you have a link on that? | 03:15 | ||
you deleted it from the pugs repo | |||
luqui | on which? | ||
oh, yes, I did | |||
stevan_ | just information on it | ||
it was a Scala thing right? | |||
luqui | I'll bounce you the message I sent to sixperl | ||
yeah | |||
stevan_ | yes, please | ||
I would like to read more on it | |||
you got my interest, then you deleted it :P | 03:16 | ||
luqui | sorry | ||
had to rethink my ideas | |||
stevan_ | not a problem :) | ||
luqui | still rethinking them :-) | ||
sent | |||
stevan_ | mucho gracias | ||
luqui: have you read TAPL yet? | 03:18 | ||
luqui | no, it was just suggested to my by autrijus yesterday | ||
trying to get my hands on it | |||
stevan_ | ah | ||
luqui | (my university has it as an online paper, but they have it set up so I can't download it, so I have to read it on campus )-: | 03:19 | |
stevan_ just started reading it,.. but it is making my eyes cross | |||
luqui | hmm, chances are it'll make my eyes cross for a little while until I "get it" | ||
stevan_ | chances are you will "get" more of it than I am | 03:20 | |
luqui | that's how these things usually work. It's not incremental learning, it's all-at-once :-) | ||
we'll see | |||
stevan_ | I "get" the gist of it,.. its the real heavy math stuff which gets to me | 03:21 | |
and the terminology | |||
but I have already learned a bunch and I am only on chapter 4 | |||
so it is worth the effort | |||
luqui | Yeah. It'd probably be good for me to start proposing things out of books rather than my ass | 03:22 | |
stevan_ | :D | ||
hey, dudly and I were talking about trying to do some pugs-related Scala stuff | 03:23 | ||
you should join in | |||
luqui | hmm? | 03:24 | |
like what? | |||
stevan_ | I was thinking the metamodel | ||
bah,.. damn keys | |||
I am obsessed though,.. so it doesnt have to be that | |||
luqui | ahh | ||
luqui might want to learn scala...maybe | 03:25 | ||
dudley | I started playing with it today, but I got hung up on Scala's unit testing and didn't get further than P6Opaque | ||
stevan_ | hey dudley :) | ||
dudley | biab | ||
hello! | |||
luqui goes into windows where he can get on the university vpn | 03:26 | ||
stevan_ | luqui: so a theory really has nothing to do with a class | ||
bah | |||
dudley | hmm, so where should the scala mm live? | 03:36 | |
I think perl5/ is getting a little overloaded... | |||
stevan_ | dudley: I agree,.. although I am not sure we have a better place at the moment | 03:37 | |
dudley | Not that I have anything to commit yet :-) | ||
stevan_ | I think perl5 is fine for now,.. there is talk of relenging this weekend,.. so we can move it then | ||
dudley: so what about Scala Unit testing got you hung up | 03:38 | ||
stevan_ has only downloaded and ran hello world with Scala | |||
dudley | It's not quite complete. | ||
stevan_ | ah | ||
dudley | there's not a TestRunner | ||
stevan_ | thats an issue maybe | ||
dudley | it only reports failures | ||
stevan_ | luqui: your theory Base looks straight outta TAPL | 03:40 | |
dudley: how good is the Java interface? can we use JUnit? | 03:41 | ||
dudley | It shouldn't be too much of a problem, I don't think. I'll give it a whirl tomorrow. | ||
luqui | the example? | 03:42 | |
stevan_ | luqui: yes | 03:43 | |
luqui | well, that's probably because I got the example from autrijus | ||
stevan_ | :) | ||
luqui | who probably got it from the book | ||
it's the one he used to show me GADT in haskell | |||
stevan_ | yes the whole first part is all about succ, pred, is_zero, if t1 then t2 else t3... | ||
luqui | and completely sold me on haskell, causing me to really try to learn it (instead of just kinda sorta wanting to) | ||
luqui is reading it now | 03:44 | ||
dudley | Goodnight, everybody. | 03:48 | |
stevan_ | nite dudley | ||
dudley | sleep & | ||
stevan_ | I should sleep too | ||
night all | |||
luqui: enjoy TAPL :) | |||
& | |||
putter | good night stevan | 03:52 | |
so, pilrun now does return/last/next/redo, for some value of "does". | 03:53 | ||
svnbot | r6917 | putter++ | PIL-Run - first cut at return(), last(), next(), redo(). | ||
putter | next step is to hoist code objects out of loops, so they dont get created repeatedly. the delay is actually visible. | 03:54 | |
luqui is reading. anyone else left on the night shift? | 03:55 | ||
spinclad | just caught up with backlog. (whew!) | ||
putter | :) | 03:56 | |
spinclad | re. perl5/ (after the release), i'd suggest hoisting metamodel and pil stuff upward, but don't know under what name or whether they belong together. Subdirs for @backends, which determines some of the hierarchy, but not all... | 04:00 | |
putter | we certainly need to do something | 04:02 | |
Supaplex eats a cashew | 04:03 | ||
putter | i'm not sure it needs to be after the release either, current usage is so narrow (a couple of people repeatedly doing a few things) that I'm not sure we gain much from "it's been working as-is". | 04:04 | |
Supaplex | guess what my new plates have on them :) | ||
putter | elephants? | ||
spinclad | nuts. | 04:05 | |
Supaplex | perl6 | ||
:) | |||
putter | one follows the other | ||
cafepress? | |||
My guess is this release will need a lot of testing and repair. | 04:06 | ||
If we can put together a good vision of where the pieces should go, testing and repairing that might be worth the extra pain. | 04:07 | ||
spinclad | Code-Perl, Perl6-{Container,Value} go into @backend<perl5> (oops, should be %), leaving T2-Perl6 stranded (first MetaModel customer?) maybe | 04:09 | |
putter | is anything actually using Code-Perl? | 04:10 | |
spinclad | sort of turning perl5/ inside out | ||
sorry, i haven't kept close enough track to know | 04:11 | ||
putter | my fuzzy impression is it is inactive | ||
the rest seems plausible though | |||
luqui | putter: I believe Code-Perl is not being used | 04:13 | |
spinclad | i think you're right, that Code-Perl has already been cannibalized into MM. | ||
luqui | we were going to use it for Perl::Compiler | ||
But then PIL-Run took over that job | |||
putter has never really come to delight in the name PIL-Run... | 04:14 | ||
ok, so | 04:15 | ||
pugs/backends/perl5/ Perl6-MetaModel PIL-Run ... | |||
unified lib/ or still separate? | |||
does PIL2JS with its heavy use of perl for compilation go in backends/js/ or perl5/? | 04:16 | ||
actually, suggest non-unified lib. | |||
one puzzle is that the various backends which use perl5 to fiddle with PIL, may share common libraries to do so. they go in... ext/ ? | 04:17 | ||
is everyone happy with PIL-Run as a name? its currently fairly easy to change, but that window is closing. | 04:18 | ||
is "backend/" a general enough concept? if I write a PIL optimizer using a combination of p5 and something declaritive, say a tabling prolog, where does it go? what if it emits p5 code? | 04:20 | ||
projects/ would cover all that, but perhaps looses too much meaning | 04:21 | ||
putter realizes he has been talking to himself for 6 minutes ;) | |||
spinclad | i think one backend per language won't suffice; we'll have reimplementations, competing experiments, etc | 04:22 | |
putter | agreed | ||
and worth emphasizing somehow - PIL-Run performance will in some respects be _glacial_ for a while. there seems a real risk of folks going "oh, perl6 is slooow" (silly, but folks did it to lisp) | 04:24 | ||
PIL::Run::Proto0 ;) | 04:25 | ||
permitting PIL::Run::SomethingElse | |||
spinclad | :) | 04:26 | |
putter | PIL seems unlikely to remain a singular unvariagated thing for long | 04:28 | |
already isnt (PIL2) | |||
spinclad | right | ||
luqui | is PIL2 going anywhere? | ||
putter | my impression is $work is eating rather more of a's cycles than he originally envisioned. or the plan may have changed to limited pugs for a while, to make $ for big time block (something went by which left that impression) | 04:30 | |
there is some stuff in src/PIL/ | 04:31 | ||
spinclad | yes, he's banking up for erdosing | ||
i just searched the tree for anything named PIL2* and only found PIL2JS. where'd it go? i thought i remembered it somewhere... | 04:36 | ||
ah, right, src/PIL.hs. d'oh! | 04:37 | ||
putter | back when ARPA was under less incompetent management, there was the concept floating around of allowing project managers do micro grants. $40k for a year of autrijus is small change in that context. no one ever had the tuits to pursue it. and with current administration, its a lost cause. | 04:38 | |
spinclad | heh. they don't believe in government doing that sort of patronage, they think that job belongs to industry (along with everything) | 04:40 | |
putter | Perl6::PIL::ProtoRun | 04:41 | |
err, no | |||
spinclad: yes. plus a micromanaging director in an organization which really needs to push down responsibility. | 04:42 | ||
spinclad | bitter, me? | 04:43 | |
putter | ;) | ||
The concept was for a "wheel greaser". Eg, someone has the state of subfield X in their brain, but it's never been written down. Go in and help. Perhaps that means paying for a scribe. Or arranging a sabatical. Or whatever. Person to help get things unstuck. | 04:46 | ||
I wonder if there is a portable way to constrain how much memory a perl process uses. | 04:48 | ||
spinclad | a sounds to be a prime candidate. or maybe subsidize a small team, with some such person at its core | ||
ulimit? | 04:49 | ||
putter | its amazing how much is held up for really pointless reasons | ||
ulimit on windows? | 04:50 | ||
but ulimit will save me from having to watch smokes so they dont melt down my machine. thanks! :) | 04:51 | ||
spinclad | windows, dunno. ulimit -d on bash (on unix, linux, ?POSIX?) | ||
and ulimit -s | 04:52 | ||
putter | ulimit -d 1000000 ;) not an interface which will make it unchanged to terabyte memories | 04:54 | |
spinclad | ulimit -d 1000000000 | 04:55 | |
;) | |||
(you mean the system call? new version for 64-bit space) | 04:57 | ||
s/version/$0 neeeded/ | 04:58 | ||
putter | right | 05:01 | |
putter waits expectantly for a smoke to finish... eventually... | |||
incremental smokes? | 05:02 | ||
each test file gets a smoke data file, so one can be in continuous resmoking. and as test set grows, it doesnt come to take a day to do a smoke. | 05:03 | ||
spinclad | btw, what state is the parrot target in? dead for now? (passing 2/3) last i heard it was waiting on the new calling convention | 05:04 | |
and none of the metamodel work has targeted it, afaics | |||
putter | yes, unmoving. we're waiting on cc, and last I heard, leo considered it done and waiting on chip for a go/no-go. | 05:06 | |
spinclad | right | ||
putter | ho, that will be interesting. pilrun regex is too dumb to know it doesnt do p6 regexes, so its about to try with p5... | 05:07 | |
spinclad | continuous testing: just as long as the runs converge, vs divergence by overlap | 05:08 | |
good luck to it | 05:09 | ||
putter | it would also be nice to be able to do per-test, an individual ok(), tracking. so one can ask "what rev did this stop working". | ||
spinclad | dump them in your database! datamining for the software practicioner! | 05:11 | |
putter | :) | 05:13 | |
hmm... you know, with PIL and a declarative constraint system, I bet it wouldn't be too difficult to do whole-program analysis of p6. Nothing which could fiddle with the Num classes, mash it down to machine types. etc | 05:17 | ||
might have to try that... | 05:19 | ||
spinclad | sure. might begin to resemble some larger haskell compiles... | ||
putter | :) | ||
I was think more, when you want to do a release, you compile it down. | 05:20 | ||
pilrun is currently structured so it could do -c foo.p6 -o foo.p5 | 05:22 | ||
spinclad | anyway, getting tired. i feel i'm just a kibitzer so far. i want to dig in someplace specific. maybe an unlambda target? *<8o) or i'll look for something that will help with the metamodel work. | 05:23 | |
putter | digging in good | 05:24 | |
putter admits it's pretty silly to stay up too late waiting on a smoke... | |||
spinclad tools up with spade and shovel and a promise for tomorrow | 05:25 | ||
putter | :) | ||
I'm off. | |||
good night & | |||
spinclad | me too. night putter & | 05:26 | |
new-b | hiho | 08:55 | |
xerox | Today is softwarefreedomday.org/ ! | 10:49 | |
castaway | hey.. is there a doc on Kwid somewheres? | 11:01 | |
dudley | castaway: pugs.kwiki.org/?KwidSynopsis | 11:10 | |
there used to be a perlkwid.kwid that was the spec in the Pugs tree, but it seems to have disappeared... | 11:11 | ||
castaway | hmm, odd that.. thanks | 11:18 | |
dudley | stevan_: ping | 12:01 | |
svnbot | r6918 | iblech++ | * Usual svn props. | 12:51 | |
r6918 | iblech++ | * Changed "scalar(...)" to "item(...)" and "scalar context" to "item context" | |||
r6918 | iblech++ | and "Scalar" to "Item" where applicable in examples/, t/, ext/, docs/, src/, | |||
r6918 | iblech++ | and perl5/, based on | |||
r6918 | iblech++ | www.nntp.perl.org/group/perl.perl6....age/23078. | |||
r6918 | iblech++ | * t/builtins/hashes/slice.t: Added link to relevant p6l post and =for | |||
r6918 | iblech++ | unspecced'ed another test. | |||
gaal | hey folks, are you getting the prelude compiled in on your regular builds now? | 12:52 | |
dudley hasn't built pugs in a long, long time | 12:54 | ||
gaal | hmm. issuing the build_pugs.pl command manually seems to work, but from a bare 'make' it doesn't. weird. | 13:05 | |
(now just to hope ghc doesn't blow up again)-: | |||
dudley | it looks like the default 'make' is giving me the precompiled prelude here | ||
gaal | thanks for the input. i've managed to build a pugs and am running a smoke test now; after it finishes i'll pull a fresh tree and try again. maybe having many aborted builds confuses build_pugs. | 13:12 | |
dudley | Yeah, this is on a clean tree | 13:16 | |
stevan_ | dudley: pong | 13:34 | |
gaal | brentdax, ping | 13:37 | |
dudley | stevan_: I think the java/scala stuff really only works calling java code from scala | 13:43 | |
not the other way around | |||
It seems that scala classes appear to java as abstract | 13:44 | ||
svnbot | r6919 | putter++ | PIL-Run - hopefully reduce testing fragility | ||
r6920 | gaal++ | Log::Selective: skip looping tests | 13:56 | ||
putter | hi all | 14:46 | |
fglock: ping? | |||
rafl_ | All requirements for pugs to go into Debian are satisfied now (exept those modules needed for smoking, but that doesn't hurt). What do you think which version should go in? 6.2.9 or a current svn snapshot? | 14:52 | |
putter | a release version. 6.2.9 if that's the most recent. things are a bit crufty. pugs itself is down to 96%. | 14:55 | |
rafl_ | OK, /me is working on 6.2.9 then. | 14:56 | |
putter | there is a big cleanup and testing push before each release, which gets all the tests passing, etc. | 14:57 | |
rafl_ | The last time I saw that it looked to me that this is mostly done by TODOifying failing tests. | 14:59 | |
stevan_ | dudley: re: scala, well maybe it is not ready yet | 15:00 | |
hey putter :_ | |||
putter | there's definitely some of that. more when autrijus is pressed for time, or a "bugfixing session" dynamic doesnt happen. | 15:01 | |
hi stevan | |||
dudley | stevan_: Or maybe some sucker will fill in the missing parts of SUnit... | 15:05 | |
stevan_ | dudley: always a possibility :) | ||
dudley | :) | ||
putter | fglock: it looks like r6896 broke @a=(3,4) | 15:11 | |
and p6_to_a is broken - Array ->unboxed is now returning a... | 15:23 | ||
p5ugs> :5 $y = Array->new('$.unboxed' => [34]) | |||
Array=HASH(0x10722a0) | |||
p5ugs> :5 $y->unboxed | |||
Perl6::Container::Array=HASH(0x14aeab0) | |||
Hmm... looks like Array ->unboxed may never have been working. | 15:28 | ||
putter wonders why make test is saying "hate software so much". not that he disagrees at the moment, but one doesn't often see the sentiment expressed by one's software. | 16:29 | ||
svnbot | r6921 | putter++ | PIL-Run - \@INC now exists, but doesn't work (problem in Array?). The real Test.pm now compiles, and works on tests individually, but not under make test. | 16:40 | |
rafl_ | pugs is in the Debian NEW queue (ftp-master.debian.org/new.html) again. This time it should also be accepted. | 16:49 | |
putter | rafl_++ :) | ||
rafl_ | btw, the only difference from the packaging in SVN is that it doesn't send the smoke results to smokeserv (libtest-tap-*-perl aren't in, yet). | 16:50 | |
putter | Does that mean debian folk will simply be able to aptget pugs, without struggling with a ghc install?!? | 16:51 | |
rafl_ | putter: Of course. But is apt-get install ghc6 really that hard? :-) | ||
putter | :) | 16:52 | |
putter thinks of all the work it was to get a version of ghc which worked on x86_64... the contrast of "apt-get pugs" is a bit boggling. | 16:53 | ||
"civilization advances by increasing the number of things you don't have to worry about" | 16:54 | ||
rafl_ | putter: Why doesn't ghc6 6.4-4.1 work for you? | 16:55 | |
putter: I can't find a bug for this in the bts. Maybe you should report one. | |||
putter | Is 6.4.1 finally out? For a while I had to follow cvs head, playing the "does it even compile today? if yes, does it seem more or less broken than the snapshot I'm currently using" game. | 16:57 | |
Eventually I wasnt noticing problems, so I stopped playing. | |||
rafl_ | No, 6.4-4.1 is NMU (non maintainer upload) 1 for Debian version 4 of ghc6 6.4. | 16:58 | |
That's the first version that uses the new C++ API. | |||
putter | ah. yes, 6.4 has difficulties on x86_64. 6.4.1 is ironing them out. | 16:59 | |
rafl_ | Well, making other Debian users as well as the maintainer aware of that would be a good thing, though. | 17:00 | |
putter | (I note that's ghc's official 6.4 release. not using debian, can't comment on 6.4-4.1.) | 17:01 | |
Everything I've found is in the bug tracker, or communicated directly to the pursuing developer. What happens from there... | 17:02 | ||
spinclad | excellent! rafl_++++ | 17:05 | |
(pugs, not ghc6, of course) | 17:06 | ||
putter | :) | ||
17:06
rafl_ is now known as rafl
|
|||
spinclad | wait, does karma carry over? | 17:06 | |
karma rafl_ | 17:07 | ||
whobot knows karma? | |||
rafl | Doesn't matter. There seems to be no karma at all ATM. :-) | ||
perlbot, AFAIK. | |||
perlbot | As Far As I Know | ||
spinclad | perlbot, why won't you talk to Me? | 17:08 | |
rafl | But I think shouldn't be carried over when changing nicks. . o O ( /nick autrijus; /nick iblech; /nick putter; /nick fglock; /nick gaal; ... $karma = Inf) | 17:10 | |
spinclad | either that or not merge. | 17:11 | |
but then .oO ( /nick autrijus; $karma = 0 ) so better no carryover | 17:12 | ||
putter | stevan | ||
rafl | ACK. | 17:13 | |
putter | luqui | ||
putter gives up on that game | |||
DiGiT79_ | hi | 17:15 | |
spinclad | hi. which DiGiT is 79? | 17:16 | |
DiGiT79_ | i have a problem wirh the NET::SSH::PERL module .... for days now! maybe someone in here is familiar with that module ?! | ||
:p | |||
rafl | Grr. 7 Minutes after I uploaded pugs without smoking support libtest-tap-model-perl was accepted. :-/ | ||
spinclad | :( | 17:17 | |
rafl | DiGiT79_: This channel is about Perl6 and pugs development. Maybe you want to join #perl. | ||
DiGiT79_ | rafl, sorry for that! thnx :) | 17:18 | |
rafl | spinclad: That's not that bad actually. Only the smoke results of the Debian buildds wont be sent to smokeserv. | 17:19 | |
Yay, pizza for me :-) | 17:20 | ||
spinclad | i'd guess 6.2.10-1 should have it anyway | ||
rafl | spinclad: Yes, it will. | ||
libtest-tap-htmlmatrix-perl_0.04-1_i386.changes is also accepted now. | 17:24 | ||
rafl prepares a new upload. | 17:32 | ||
putter | err, note that make smoke currently non-terminates. | 17:34 | |
fyi | |||
the MIME-Base64 is apparently unresolved. at least on my machine. | 17:35 | ||
s/is/issue is/ | |||
rafl | For 6.2.9 it works fine for me. | ||
putter | we may have disabled that test for the release? regardless, yes, the actual release should be fine. | 17:36 | |
putter plays with svn log... | 17:53 | ||
some obvious things. "May was fun" | |||
some less so - even though autrijus is less than half the commits, starting surprisingly early in the project, the shape of total and autrijus commits is quite similar, until the summer tapering off, where total commits leveled off even though autrijus went away (commit count wise). | 17:58 | ||
integral | that sounds like the point when the other backends (JS, P5) started to appear; they seem to have lots of developers compared to the haskell | 17:59 | |
putter | which, in retrospect, is consistent with my impression that autrijus is a key pacing factor. | ||
hmm... looking... | 18:00 | ||
basically, with 15 active commiters and 200 commits per week as a baseline, the "golden time";) was most of May, with twice that. there is a spike in commiters and commits around the time the backends showed up a month later (to ~30 something and ~300), but it was only a week or two. | 18:06 | ||
putter tries to think of an easy way to post the curves... | 18:07 | ||
svnbot | r6922 | stevan++ | Perl6::MetaModel 2.0 - | 18:19 | |
r6922 | stevan++ | * first steps towards supporting unbound methods, which are needed for Roles | |||
r6922 | stevan++ | - commiting this before I make too much of a mess :) | |||
putter | :) | 18:20 | |
roo | I think I know why I've been having all those GHC errors. | 18:40 | |
My computer crashed and won't start now. Looks like the CPU or RAM died :-( | 18:41 | ||
18:41
roo is now known as gaal
|
|||
gaal | Oh well, at least this is an opportunity to pick up irssi. | 18:42 | |
putter | :( | ||
gaal | Remarkably, the computer is still under warranty! I thought they timed those things to happen a month after it expires! | 18:43 | |
svnbot | r6923 | stevan++ | Perl6::MetaModel 2.0 - | ||
r6923 | stevan++ | * methods are not bound to the class until they are | |||
r6923 | stevan++ | added to that class | |||
r6923 | stevan++ | - fixed some tests to account for this, still some cleanup to do | |||
putter | :) | 18:50 | |
good luck gaal | 18:52 | ||
later & | |||
gaal | thanks - bye! | ||
seen autrijus | 18:53 | ||
svnbot | r6924 | stevan++ | Perl6::MetaModel 2.0 - | 19:01 | |
r6924 | stevan++ | * cleaned all code and sub prototypes so now unbound methods are the | |||
r6924 | stevan++ | "way things are done", all tests pass, and we are now ready to add | |||
r6924 | stevan++ | Roles into the metamodel | |||
spinclad | ooo Roles :) | 19:18 | |
luqui | lwall to sixperl: Good tree matching syntax ... [is] really better done with an extension to signatures | 19:26 | |
hooray! | |||
he proposes: sub foo (Plus $plus (Lit ($left), Lit ($right))) {...} | 19:27 | ||
wolverian | luqui, sixperl? | 19:28 | |
luqui | The um... lack of a secret cabal communication channel | ||
wolverian | just as long as it's not perlsex.. | 19:29 | |
luqui | :-) | ||
Aankhen`` | Ohh, ^W is the new ^H? | 19:30 | |
luqui | ? | ||
Aankhen`` | goa^W^W^Wsomething as opposed to goa^H^H^Hsomething. | 19:31 | |
svnbot | r6925 | iblech++ | * Added Makefile, blib, etc. to ext/Log-Selective's svn:ignore. | ||
r6925 | iblech++ | * PIL2JS: lazy {...}! | |||
r6925 | iblech++ | * Prelude::JS::Code: Added &lazy. Note that in PIL2JS, all lazy "values" are | |||
r6925 | iblech++ | actually autodereffing references. Can't say whether this is against the | |||
r6925 | iblech++ | spec as no spec exists ;) | |||
r6925 | iblech++ | * libjs/PIL2JS.js: Fixed autodereffing handling in some places -- | |||
r6925 | iblech++ | &ref autodereffed more than one time and &prefix:<~> and &prefix:<+> | |||
r6925 | iblech++ | did not autoderef in some cases. | |||
r6925 | iblech++ | * t/var/lazy.t: Added some more tests. PIL2JS passes 15/15 :) | |||
luqui | ^W generally means "kill a word" | ||
Aankhen`` | Ah, I see. | ||
luqui | whereas ^H means "kill a letter" | ||
Aankhen`` | Thanks for the explanation. :-) | ||
luqui | ?eval my $x = lazy { "hi" }; say "hi" | 19:33 | |
evalbot_6925 | hi bool::true | ||
luqui | ?eval my $x = lazy { "hi" }; say $x | ||
evalbot_6925 | hi bool::true | ||
luqui | ?eval my $x = lazy { say "evaluating!"; "hi" }; say "boo!"; say $x | ||
evalbot_6925 | boo! evaluating! evaluating! evaluating! hi bool::true | ||
luqui | uh.. | ||
three times? | |||
Aankhen`` | ?eval my $x = lazy { say "evaluating!"; "hi" }; say "boo!"; | ||
evalbot_6925 | boo! bool::true | ||
Aankhen`` | ?eval my $x = lazy { say "evaluating!"; "hi" }; say $x; | ||
evalbot_6925 | evaluating! evaluating! evaluating! hi bool::true | ||
Aankhen`` | ?eval my $i = 0; my $x = lazy { $i++; "hi" }; say $i; say $x; say $i; | 19:34 | |
evalbot_6925 | 0 hi 3 bool::true | ||
Aankhen`` | Freaky. | 19:35 | |
luqui | well, you're not supposed to put side-effects inside lazy { } | ||
but still... | |||
Aankhen`` | Indeed. | ||
wolverian | luqui, hm, what does that tree matching syntax mean exactly? | ||
luqui | It's a Plus node with two Lit subnodes | 19:36 | |
and you put the Plus node as a whole into $plus, and the contents of the Lit nodes in $left and $right | |||
Aankhen`` | ?eval $?PUGS_VERSION | ||
evalbot_6925 | \'Perl6 User\'s Golfing System, version 6.2.9, August 3, 2005 (r6925)' | ||
wolverian | ohh. | ||
luqui, are the parens in 'Lit ($left)' necessary? | 19:37 | ||
luqui | yeah, otherwise $left gets the Lit node, as opposed to its contents | ||
luqui still isn't sure how you specify something like "Plus" | 19:38 | ||
but we know how to match it at least :-/ | |||
wolverian | luqui, well, get to work on the specification side then! | 19:50 | |
wolverian cracks the whip | |||
luqui ows | |||
svnbot | r6926 | iblech++ | * t/var/autoderef.t: Refs to subrefs should not autoderef. | 19:54 | |
r6926 | iblech++ | * pugs::run: Added short paragraph about the features of our backends. | |||
r6926 | iblech++ | * PIL2JS: README: Added section about the implementation of laziness. | |||
spinclad | ?eval my $x = lazy { say "howdy!"; "hi" }; say $x | 20:01 | |
evalbot_6926 | howdy! howdy! howdy! hi bool::true | ||
spinclad | it's certainly enthusiastic. | ||
?eval my $x = lazy { say "howdy!"; "hi" }; $x | 20:02 | ||
evalbot_6926 | howdy! \\'hi' | ||
spinclad | interesting difference | ||
?eval my $x = lazy { say "howdy!"; "hi" }; say $x; say $x | 20:03 | ||
evalbot_6926 | howdy! howdy! howdy! hi howdy! howdy! howdy! hi bool::true | ||
spinclad | so it's not converting to cache on autoderef... | 20:04 | |
this way is simple and computationally equivalent to anything better (and lazier!) | 20:09 | ||
s/anything better \(and lazier!\)/(and lazier than!) anything smarter | |||
Aankhen`` goes to sleep. | |||
G'night. | 20:10 | ||
spinclad | g'night aankhen`` | 20:11 | |
.oO ( so what three times does say $x evaluate $x? ) | 20:13 | ||
?eval my $x = lazy { say "howdy!"; "hi" }; $x.perl | |||
evalbot_6926 | howdy! howdy! howdy! '\\\\\'hi\'' | ||
spinclad | sorry, this way is lazy _about_ caching, but caching should be lazier computationally. (eval at most once) | 20:16 | |
s/should/would/ | 20:26 | ||
i think that's as close as i'll get to saying this right today. | 20:27 | ||
svnbot | r6927 | iblech++ | * t/syntax/symbol_table.t: =begin obsolete'd the whole test because things | 20:39 | |
r6927 | iblech++ | were changed recently (see thread "Packages, Modules and Classes" on p6l | |||
r6927 | iblech++ | started by Stevan: www.nntp.perl.org/group/perl.perl6....ge/23019). | |||
r6927 | iblech++ | * t/unspecced/eval_yaml.t: skip under PIL2JS. | |||
r6927 | iblech++ | * t/operators/reduce-metaop.t: Some more tests and minor reorganization. | |||
r6927 | iblech++ | * PIL2JS: Prelude::JS::Operators: Basic [...] reduce metaoperator! But: | |||
r6927 | iblech++ | * No autogenerated metaops for user-defined operators yet. | |||
r6927 | iblech++ | * No attention paid to the associativity of the operators yet. | |||
r6927 | iblech++ | * PIL2JS: libjs/PIL2JS.js: $*PUGS_HAS_JSPLUGINS := 0; | |||
20:48
theorbtw1 is now known as theorbtwo
|
|||
cybercobra | could anyone recommend a book on perl6 for the non-perl programer? | 21:04 | |
luqui | learning perl? | 21:05 | |
er | |||
perl6 | |||
uh | |||
no... not really | |||
I expect the camel 4 when it comes out will probably not be a diff but more of a complete spec | 21:06 | ||
or a complete learning spec at least | |||
cybercobra | well so far I've found www.oreilly.com/catalog/perl6es/ and search.barnesandnoble.com/bookSearc...1590593952 | ||
luqui | yeah, those both look like they require a perl 5 knowledge | 21:08 | |
what other languages are you familiar with? | |||
cybercobra | C, python, Java | 21:09 | |
just read a book on C# | |||
luqui | learning perl shouldn't be that hard for you then | ||
but learning perl 6 is always a challenge | |||
since it's always changing, and the docs are about specific sublanguages and idioms rather than the language as a whole | 21:10 | ||
so the best way to do it, I think, is to familarize yourself with some amount of perl 5 and then play with pugs | |||
spending time on this channel will also help | |||
since a lot of us have perl 6 in our head | |||
s | |||
cybercobra | all right then, I think I'll go with 'Perl 6 Now' then. thanks | 21:13 | |
luqui | yeah, I was a major help, wasn't I :-/ | 21:14 | |
cybercobra | you tried and were honest. that's all I can ask for until perl6 is finalized | 21:15 | |
spinclad | cybercobra: not a book, but i wouldn't forget our design docs: Apocalypses, Exegeses, and Synopses (AES) | 21:29 | |
cybercobra | spinclad: yeah, I looked over the regex an operator apocalypses a few weeks ago | 21:30 | |
*and | |||
fglock_ | putter: pong | 21:31 | |
spinclad | not complete (even for what's been specified to date -- for that you'd best follow the perl6.language mailing list | ||
but not bad introductions to go along with whatever books | 21:33 | ||
they do presume perl5 though, in describe the differences therefrom. | 21:34 | ||
/describing/ | 21:35 | ||
svnbot | r6928 | fglock++ | * perl5/Match.pm - fixed tabs | 22:19 | |
autrijus | greetings | 22:30 | |
fglock_ | hi | 22:33 | |
autrijus | hi. there'll be no journal today I'm afraid -- I just low-level formatted autrijus.org's -- including all raid disks -- by accident | ||
coupled with the recent laptop hd crash, that means, well, all the data I'm going to have will be public data. | |||
fglock_ | I just had a blackout here - but no problems with the computer :) | 22:34 | |
autrijus | congrats :) | 22:35 | |
fglock_ | open source is a great backup medium | ||
autrijus | it is, although I'm going to miss my mail archive and private works. | 22:37 | |
svnbot | r6929 | iblech++ | * EOL at EOF. | ||
r6929 | iblech++ | * t/data_types/lazy_lists.t: skip_rest instead of die when not running under PIL-Run. | |||
r6929 | iblech++ | * t/junction/misc_junctions.t: Fixed test and... | |||
r6929 | iblech++ | * New t/syntax/parsing_postfix_if_and_is.t: ...added new test testing that the | |||
r6929 | iblech++ | syntax error misc_junctions.t contained actually causes Pugs to parsefail ("3 | |||
r6929 | iblech++ | if 4\nis 50" (note: no ";" before the "\n") does *not* parsefail currently!). | |||
fglock_ | ouch - no cdroms? | 22:38 | |
autrijus | ope. | 22:39 | |
I have laptop and server back up each other, each one with redundant disks | |||
but somehow this week I nuked every single one of them | |||
dudley | It's a great week for hardware failures. | 22:41 | |
autrijus | verily. | 22:42 | |
dudley | I lost my hard drive on my laptop and gaal blew up a cpu or something like that | ||
fglock_ | autrijus: are lazy array slices actually specified? they are pretty difficult to implement right | ||
autrijus | fglock_: no, they are not specified in detail | ||
but I'm sure @Larry on p6l will be happy to work out the rough ends when brought up | |||
fglock_ | things like: (@a[1..100],@b[1..50])=(@a[1..50],@b[1..100]) - weird intersections of lazy lists | 22:44 | |
luqui | woah | ||
you want that to happen without evaluating @a[25], I imagine | 22:45 | ||
fglock_ | yes | 22:46 | |
luqui | are you using the generator approach? | ||
fglock_ | you can put a lot of extra zeroes there :) | ||
I'm using List.pm - it supports a set of "queries" on the list | 22:47 | ||
List->new() takes a bunch of closures, which are the actual "generator" | 22:48 | ||
luqui | it seems like to do your example, lazy lists need to be able to split themselves | ||
it would probably be helpful to specify the ListGenerator role | 22:49 | ||
i.e. all the things an object needs to do in order to be part of a lazy list | |||
fglock_ | no problem, I think. Right now it is using a class, but it can be a Role | 22:51 | |
luqui | yeah, it feels more interfacey than derivey to me | ||
among the things I can think of | 22:52 | ||
$gen.index($idx) # get $idx elements from the beginning, generating as much as necessary | |||
($left, $right) = $gen.split($idx) # get two generators, one for 0..^$idx, and one for $idx... | 22:53 | ||
maybe this is a p6l issue, so we can really determine the best minimal interface | 22:54 | ||
fglock_ | yep. I call this shift_n($n), and there is a pop_n($n) too | ||
luqui | okay | ||
or maybe a p6c issue :-) | |||
fglock_ | Array.splice is defined in terms of shift_n and pop_n calls | ||
luqui | are generators values or references? | ||
fglock_ | where $n can be Inf | 22:55 | |
generator is an instance of List | |||
luqui | so it's a reference. | ||
that is, you can change it | |||
fglock_ | yes, you can "take" from it | 22:56 | |
luqui | okay | ||
luqui wonders what the interface would look like as a value type | |||
it may end up making things a lot easier, or it may end up making things a lot harder | |||
but my experience with laziness says that things get easier when you make them constant | 22:57 | ||
not that I have all that much experience | |||
fglock_ | PIL-Run arrays are using this | ||
luqui | uh huh... | 22:58 | |
and? | |||
well, let me think about it | |||
at the moment, my hunch is that generators should not be lists | |||
but lists should be aggregated generators | |||
and generators should just be a nice interface for extracting and splitting lazy sequences | |||
fglock_ | Array is a cached list aggregate, more or less | 22:59 | |
luqui | nice for the implementor of List, that is | ||
luqui will look over List.pm | |||
it's really hard pretending you know the right design when you haven't even seen how the current one works yet :-p | 23:00 | ||
fglock_ | the remaining problem is how you clone a list - because you need to clone the closures | 23:01 | |
luqui | "clone the closures" | 23:02 | |
the closures are not pure? | |||
fglock_ | pure? | ||
luqui | you allow the generating closures to mutate stuff? | ||
fglock_ | like: @a=@b; say @a.shift; say @b.shift; - if there is a generator involved, you need to be able to get to the same element twice | 23:05 | |
luqui | of course | ||
hmm... | |||
fglock_ | I've written a module that solves the problem, but it was not elegant - involved buffering, too much extra work | 23:06 | |
luqui is just thinking about @b = =<> earlier on | 23:07 | ||
fglock_ | cloning the generator could fix that, if it was possible. | ||
yup - working with files would involve buffering | |||
luqui | it's like the generator needs to know what it's already generated | ||
so a pure head/tail scheme won't work here | 23:08 | ||
I think | |||
well, gtg | |||
& | |||
fglock_ | electricity is gone again - it's nice that the computer has batteries :) | 23:17 | |
fglock_ learns to write without seeing the keyboard | 23:26 | ||
vkon | after I looked into :ignorecase in t/rules/tules.t, it appears that parrot has incomplete abilities on case-insensitive comparision operators, as described in appropriate files. | 23:44 | |
moreover, matching a character to a character class is done "index char,string"; I think it will be better to have it searched within a hash... | 23:46 | ||
those two mentioned items, and yet a way to call parrot from within pugs, make it clear why rules are that slow, and why :ignorecase isn't done yet... | 23:48 | ||
all in all, implementing rules (temporarily) in Haskell could be much more effective... or even with matching using PCRE? | 23:50 | ||
svnbot | r6930 | fglock++ | * PIL-Run - @INC is tied to P5 @INC | 23:51 | |
luqui | vkon, pcre? | ||
you can't do that with perl 6 rules | 23:52 | ||
I think pcre is in fact called when you do :p5 | |||
vkon | luqui: yes, indeed... but parrot's engine is so incomplete (and it is documented as temporary and incomplete) so if matching itself will be done elsewhere, it could be easier. But I probably misunderstand the point. | 23:55 | |
luqui | well, the idea is to eventually run everything on parrot | ||
in which case it won't be inconvenient | 23:56 | ||
however, I have planned to port PGE to perl 6 one of these days | |||
so at least we'll have a working if not fast rules engine everywhere we run | |||
vkon | luqui: I respect parrot embedding, and compiling to PIR is good... but why parrot still lacks :ignorecase? | 23:58 |