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