Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2007-03-14

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:07 * geoffb is bak
00:07 geoffb Limbic_Region, [particle]: yeah, the error that Limbic_Region just demonstrated is why I went the Perl 5 eval route
00:07 geoffb Really would like to get rid of that
00:08 geoffb It's the only Perl 5 code not related to symbol import hell
00:08 [particle] i wonder if you could wrap the symbol import into an import sub
00:09 geoffb [particle]: I partially did that for the SDL::OpenGL.can code, which used to be even worse than it is now
00:10 geoffb wrapped it in a loop inside a BEGIN block, that is
00:10 geoffb I would love to just be able to say "import SDL::OpenGL;" and be done with it
00:13 [particle] geoffb: sure i see that
00:14 dvorak joined perl6
00:14 [particle] can you write sub import(...) { BEGIN { ... } } ??
00:15 geoffb hmmm, I wonder if I can walk the P5 symbol table and import it ....?
00:15 [particle] ooh, tricky
00:16 geoffb dammit, I was going to get $job_work done, and now this has my brain
00:26 weinig|bbl is now known as weinig
00:35 devogon joined perl6
00:46 diakopter joined perl6
00:50 whooosh joined perl6
00:56 geoffb Bwa-ha-ha-ha-haaaa .... http://www.broadwell.org/dl/step075.p6
00:57 geoffb [particle]: it works!  It's slow as HECK, but it works
01:21 nipotaway is now known as nipotan
01:25 Schwern joined perl6
01:31 H0LE joined perl6
01:40 [particle] HA! geoffb++
01:41 [particle] pugs needs a debugger. i think it should be called flee
01:43 TimToady flea?
01:48 diakopter filet
01:49 diakopter oh, I get it.  fleas are bugs.
01:49 geoffb And you want to get them to run away ....
01:49 geoffb Puns multiplied are so much more sweet.
01:49 geoffb And geeky.
01:50 [particle] >>:P<<
01:50 offby1 the ultimate pun: it has infinite meanings
01:51 kanru joined perl6
01:53 putter joined perl6
01:53 geoffb joined perl6
01:53 geoffb bah, damn keyboard
01:54 geoffb I'm still bothered by this line:   $eval ~= 'our &' ~ $symbol ~ ' := ' ~ $module ~ ".can('" ~ $symbol ~ "') if " ~ $module ~ ".can('" ~ $symbol ~ "');\n";
01:54 geoffb I feel like I'm writing Javascript
01:54 b00t joined perl6
01:54 geoffb What is the proper escaping to be able to put that all in one string without accidently doing dereffing early?
01:55 geoffb I tried a few variants, and Pugs was always unhappy about one thing or another.
01:56 mr_ank joined perl6
01:57 [particle] "our &{$symbol}..." ?
01:57 geoffb hmmm
01:58 geoffb [particle]: nope, that explodes
01:58 geoffb ***
01:58 geoffb    Unexpected end of input
01:58 geoffb    expecting "::", dot, ":", "(", term postfix, operator or "}"
01:58 geoffb    at step075.p6 line 37, column 124
01:59 geoffb No, wait, it's because I included := in the same string segment
02:00 putter $eval ~= "our \&$symbol := $module.can('$symbol') if $module.can('$symbol');\n";
02:00 geoffb No, wait, it's because I included := in the same string segment
02:00 geoffb putter: I swear that exploded for me
02:00 geoffb Will try again, in case I went insane
02:02 putter $eval ~= "our \&$symbol := {$module}.can('$symbol') if {$module}.can('$symbol');\n";
02:03 putter that at least works in a toy case.  I was rather surprised that my first worked in an (even more toyish) case.  this at least seems proper.
02:03 geoffb Hmmm, that last one hasn't exploded yet, let's see how it goes ...
02:03 audreyt "our \&$symbol := $module.can\('$symbol') if $module.can\('$symbol');\n";
02:04 lambdabot audreyt: You have 3 new messages. '/msg lambdabot @messages' to read them.
02:04 audreyt p6 interpolates methcalls; escaping the opening brace would work too
02:04 geoffb putter's last version worked, checking audreyt's
02:06 geoffb no explosion yet, waiting to see how final eval does
02:06 audreyt weird, my $pi = atan(2,2) * 4; $pi works for me.
02:07 geoffb Jeapordy theme ...
02:07 geoffb s/my/constant/?
02:08 geoffb OK, audreyt's version of the string works too.
02:09 audreyt ?eval constant $pi = atan(2,2)*4; say $pi
02:09 evalbot_r15692 OUTPUT[3.141592653589793␤] Bool::True
02:09 audreyt ?eval constant $pi = atan(2,2)*4; $pi
02:09 evalbot_r15692 \3.141592653589793
02:09 audreyt ?eval my $pi = atan(2,2)*4; $pi
02:09 evalbot_r15692 \3.141592653589793
02:09 geoffb OK, hmmm
02:10 audreyt bbiab (just woke up :))
02:13 * geoffb laughs at own blindness
02:14 geoffb My mistake was failing to s/atan2/atan/g;
02:14 geoffb sigh
02:15 geoffb Oh the insidious ways Perl 5 rots your brain
02:16 geoffb OK, latest and greatest up at same place, http://www.broadwell.org/dl/step075.p6
02:17 offby1 joined perl6
02:23 TimToady p6 spec is actually atan2 also
02:23 geoffb ah, pugsbug then
02:24 TimToady not exactly bug, was atan, but ambig with default 2nd arg
02:27 geoffb hmmm?  I'm not sure I see the problem.
02:28 TimToady what would be the units of atan($x)
02:30 geoffb oh, second arg for atan was going to be a unit setting, I take it?  Sorry, I've not been watching the S29 stuff all that well.
02:30 rashakil_ joined perl6
02:34 Aankhen`` ?eval constant $pi = atan(2,2)*4; $pi = 5
02:34 Aankhen`` ?eval constant $pi = atan(2,2)*4; $pi
02:34 Aankhen`` No eval for me? :-(
02:34 evalbot_r15692 Error: Can't modify constant item: VNum 3.141592653589793
02:34 Aankhen`` Ah, there we go.
02:34 evalbot_r15692 \3.141592653589793
02:35 geoffb Bah, all my glorious P6 code simplification is eaten up by that damn symbol table thrashing:$ wc step075.p6 ../step075
02:35 geoffb  704  1779 15555 step075.p6
02:35 geoffb  741  1779 15880 ../step075
02:36 Aankhen`` ZOMG.
02:36 geoffb Aankhen``: ?
02:36 Aankhen`` Sorry, just being dramatic. :-)
02:37 geoffb I was just hoping to see that I'd shaved like 25% off my code or something.  Ah well, it will come.
02:42 putter moritz_: ping?
02:43 putter Limbic_Region: ping?
02:44 putter btw, audreyt, as the subject of this donate.pugscode,org thing, I suspect the right model is you get final say if its ok to go, or just a nice idea which didn't quite work out and punt it. ;)
02:44 * putter wonders whether to swap in a radical draft
02:45 pasteling "putter" at 66.30.117.127 pasted "donate.pugscode draft" (13 lines, 744B) at http://sial.org/pbot/23476
02:46 geoffb change_of_venue &
02:50 kyrbe joined perl6
02:53 putter reoccurring subscriptions look interesting (eg, $10/mo) but are a premium thing.
03:05 geoffb joined perl6
03:14 GreatFlamingFoo joined perl6
03:16 mako132_ joined perl6
03:18 svnbot6 r15693 | dvergin++ | Added ref to docs/Perl6/Overview/Variable.pod
03:21 GreatFlamingFoo left perl6
03:27 diakopter left perl6
03:29 ajs_ atan is confusing. What TimToady said earlier used to be correct, but the $base parameter is long since edited out of the atan(2) spec.
03:29 lambdabot joined perl6
03:30 ajs_ I think that as it stands now, other than a typo that lists two $y in the signature, there's no reason for an atan and atan2, since the signature of atan2 has an optional second parameter
03:31 Psyche^ joined perl6
03:33 TimToady if you omit the second parameter, how can you tell whether to default it to 1 or 'radians'?
03:33 lambdabot TimToady: You have 2 new messages. '/msg lambdabot @messages' to read them.
03:33 svnbot6 r15694 | putter++ | donate.pugscode.org/index.html - new draft text.
03:33 svnbot6 r15694 | putter++ | The main objectives of this draft are to be simple and focused, and not potentially over promise.
03:37 Psyche^ is now known as Patterner
03:42 weinig joined perl6
03:43 putter Anyone know how 01Overview.html is generated from 01Overview.kwid?  Or even whether it is?  Perldoc's --kwid-to-html generates rather different text.
03:43 lambdabot putter: You have 1 new message. '/msg lambdabot @messages' to read it.
03:44 diakopter joined perl6
03:55 jiing joined perl6
03:56 putter "Is Pugs the official Perl 6?  Official Perl 6 is defined as any implementation which passes the Perl
03:56 putter 6 test suite.  So yes, but not the only one."
03:56 putter TimToady: sound about right?
03:56 * putter updates the 01Overview faq
03:57 justatheory joined perl6
04:00 Debolaz joined perl6
04:09 TimToady Nothing is passing the test suite yet...
04:10 svnbot6 r15695 | lwall++ | Allow split on arrays and filehandles.
04:10 svnbot6 r15695 | lwall++ | Emphasize that maximum laziness is not a requirement for lazy objects.
04:11 REPLeffect joined perl6
04:17 putter hmm, good point...
04:20 putter modified
04:25 svnbot6 r15696 | putter++ | 01Overview.{kwid,html} - Added "Is Pugs the official Perl 6?".
04:25 svnbot6 r15696 | putter++ | The .html was hand edited, as I failed to determine how, or whether, to generate it from the .kwid.
04:25 svnbot6 r15696 | putter++ | "Official Perl 6 is now defined as any implementation which passes the Perl 6 testsuite.  So Pugs is expected to be an official Perl 6, but not necessarily the only one."
04:39 nothingmuch gaal: feel free to release Test::TAP::* if hyou haven't yet, i'll take care of the patches when I'm back
04:45 amnesiac joined perl6
05:08 putter @tell fglock what did you do about isLr in propcharset.t?  It's not in perluniicode 5.8 or 5.9.  It doesn't seem to be in the unicode spec under that name.  ???
05:08 lambdabot Consider it noted.
05:09 gaal nothingmuch: released twice in fact :) (second time someone reported a dep that wasn't reflected in Makefile.PL...)
05:11 nothingmuch cool
05:11 nothingmuch see you on the 19th
05:11 nothingmuch emai
05:11 nothingmuch ahhh
05:11 gaal moo
05:12 gaal did 'darcs send' work by the way? or did you have only get the manual email?
05:12 nothingmuch i don't have an autoapply procmail thingy
05:12 nothingmuch so it worked
05:12 nothingmuch i will have to darcs applyu
05:12 nothingmuch but my ping times are very long
05:12 nothingmuch in fact, i've yet to see my first line show up here =/
05:12 gaal forget autoapply; I wasn't sure it actaully sent out the patches
05:12 nothingmuch ah, there it is
05:13 nothingmuch it did
05:13 gaal ok
05:18 Aankhen`` joined perl6
05:32 svnbot6 r15697 | putter++ | yet_another_regex_engine/Regexp_ModuleA.pm - begin support for unicode property character sets.
05:32 svnbot6 r15698 | putter++ | yet_another_regex_engine/PugsRegexTestA.pm - minor tweaks.
05:35 putter not sure why I just spent an hour on that.  wanted some low hanging pretty green box smoked fruit.  but unicode is never low hanging.  never ever.  back to STD... later in the week.
05:35 putter good night &
06:14 BooK joined perl6
06:20 svnbot6 r15699 | lwall++ | keep cheated STD parsable by pugs, if not very runnable
06:34 DHGE joined perl6
06:35 svnbot6 r15700 | lwall++ | test whether one constant can be defined in terms of another constant
06:46 avarab joined perl6
07:04 bsb left perl6
07:14 smash joined perl6
07:29 meppl good morning
07:40 audreyt greetings
07:40 lambdabot audreyt: You have 1 new message. '/msg lambdabot @messages' to read it.
07:40 audreyt <- @ job, hacking Inline::Java into pieces, will resume pugshack in ~24hr
07:46 avar joined perl6
07:53 fridim_ joined perl6
08:11 buetow joined perl6
08:13 avar joined perl6
08:19 fridim_ is now known as fridim
08:29 xern joined perl6
08:31 aukjan|gone is now known as aukjan
08:44 the_dormant joined perl6
08:48 svnbot6 r15701 | tene++ | Updated a link in the 99problems README as it currently points to a warning about the host going away soon and a redirect
08:59 moritz_ @tell putter pong ;-)
08:59 lambdabot Consider it noted.
09:27 Jedai joined perl6
09:31 iblechbot joined perl6
09:44 rindolf joined perl6
09:50 the_dormant joined perl6
09:58 svnbot6 r15702 | tene++ | Typo in test.
09:58 svnbot6 r15703 | tene++ | Implement problem 95 from 99problems
10:03 devogon joined perl6
10:04 andara joined perl6
10:06 chris2 joined perl6
10:06 lichtkind joined perl6
10:07 tene Should I commit minor but unrelated fixes in t/ in a single commit or separate minor commits?
10:07 moritz_ I think one commit should be OK
10:09 moritz_ (unless you want more karma through tene++ ;-)
10:10 tene I'm just wondering which is more annoying, a big list of one-line typo and comment fixes, or a big patch that makes minor typo and comment fixes in a number of unrelated files.
10:13 moritz_ I think multiple commits are more annoying because you have more overhead but the same number of fixes
10:13 ayrnieu the first is more annoying, yes.
10:18 kanru_ joined perl6
10:39 Jedai joined perl6
10:42 drupek12 joined perl6
10:44 mjk joined perl6
10:57 GeJ joined perl6
10:58 IllvilJa joined perl6
11:06 gaal tene: don't worry about it :) if you make one commit and label it "typo/comment fixes", folks can still see the list of files affacted with sv{v,k} log -v
11:07 audreyt @tell TimToady Clearly the current spec has the &caller wrong? It should be &caller ::= &context.assuming(Routine,1,Routine) no?
11:07 lambdabot Consider it noted.
11:27 gaal audreyt: I'm $working today too, but last night I've been moosing up an imperative algorithm in pseudo-p6 we'll just have to end up runState-ing
11:38 audreyt sure, runST is very moose!
11:38 audreyt the Grand Pad Refactoring is going well
11:38 audreyt (the only thing left for VCode to be newval)
11:38 audreyt subEnv will be gone and replaced by subLexPads :: [TVar Pad]
11:39 audreyt and the Pad node will be gone as well from the runtime, as we designed
11:39 audreyt (it was blocking proper OO scoping in class{...})
11:45 gaal reason I was surprised about .signature working a few days ago was that I thought it implied VCode in newVal
11:52 fglock joined perl6
11:53 lichtkind audreyt im currently writing perl6 article for german-perl-magazin++ and currently on the pugs chapter is there anything you want to have mentioned about pugs i maybe missed
11:54 audreyt lichtkind: send me the article :)
11:54 lichtkind audreyt its german
11:54 moritz_ audreyt: do you understand German?
11:54 fglock putter: re isLr - "*** Cannot parse regex: ^<+isLr>$"
11:54 lambdabot fglock: You have 1 new message. '/msg lambdabot @messages' to read it.
11:56 avar Wich kunn readen psueudodeutch miket gut
11:58 lichtkind audreyt by mail?
11:58 lichtkind avar haha
11:58 audreyt moritz_: I've lived in .de for one year and studied philosophy for a year -- I can't really speak/listen/write German but I can read a bit with help from a dictionary
11:59 fglock audreyt: re Proxy - I wonder if 'return VAR($x)' should just work as an lvalue
11:59 moritz_ audreyt: where in .de?
12:00 audreyt moritz_: Dudweiler, Saarbrücken
12:00 audreyt fglock: the sub has to be declared "is rw"
12:00 audreyt fglock: in which case "return $x" will be VAR($x)
12:00 audreyt S06:232
12:01 lichtkind audreyt ist 5000 words really the whole article or just the pugs chapter
12:03 fglock audreyt: ok! I'm still finding out how Proxy/Lazy/Array/Hash/typed concepts interact
12:04 audreyt lichtkind: the whole article
12:04 nipotan is now known as nipotaway
12:04 audreyt :)
12:05 lichtkind wie du meinst
12:05 fglock in short-circuiting functions, is the second argument just marked 'lazy' ?
12:07 audreyt lichtkind: vielen danke
12:07 audreyt fglock: conceptually yes
12:08 audreyt i.e. it's a parameter annotation
12:08 lichtkind audreyt vielen dank, you say danke only if it stand solitude and i still dont know to which adress to send
12:08 audreyt lichtkind: [email@hidden.address] :)
12:09 audreyt (and as you can see my spelling is totally broken now :))
12:09 moritz_ human parsers are usually error correcting ;)
12:09 audreyt fglock: another school of thought says infix:<||> is actually a macro that constructs a scope for its rhs
12:09 audreyt fglock: neither is specced, though.
12:10 audreyt personally I prefer "is lazy".
12:10 Limbic_Region joined perl6
12:19 lichtkind audreyt right its out
12:21 lichtkind i added some info that might interest you
12:21 audreyt k cool
12:21 audreyt I need to sleep though and $job tomorrow
12:21 audreyt so maybe get back to you in 24~48hrs
12:22 audreyt is that ok?
12:22 fglock audreyt: good night
12:22 lichtkind of course
12:23 lichtkind it gonne published on 1.may
12:23 lichtkind so no need to hurry
12:23 lichtkind gute nacht
12:25 audreyt g'nite
12:26 rindolf Hi audreyt
12:27 yts joined perl6
12:28 Limbic_Region fglock ping
12:28 lambdabot Limbic_Region: You have 1 new message. '/msg lambdabot @messages' to read it.
12:28 Limbic_Region @moosages
12:28 lambdabot diakopter said 23h 6m 10s ago: :P
12:29 Limbic_Region lambdabot - you already gave me that message
12:36 fglock Limbic_Region: pong
12:36 Limbic_Region fglock I am confused as to the difference between the perl conference in April and the one in August.  If you could, please clarify for me.
12:36 Limbic_Region I am currently planning on coming to SA in late summer and would like to go to a conf or a local PerlMongers or what not
12:37 Limbic_Region if you don't have the info readily available - no worries - I need to get back to work soon anyway
12:37 Limbic_Region if you don't have the info readily available - no worries - I need to get back to work soon anyway
12:37 Limbic_Region grrr - and now I think my client is acting up again
12:37 fglock April is YAPC::SA, August is YAPC::Brasil; also, this year we are organizing YAPC::SaoPaulo
12:38 Limbic_Region ok - well I will talk with you about it later then.
12:38 fglock YAPC::Brasil will be in Bahia, which is a cool place for tourism
12:39 fglock but YAPC::SA is nearby where I live :)
12:39 BooK joined perl6
12:46 mr_ank joined perl6
12:57 ofer0 joined perl6
13:18 the_dormant joined perl6
13:24 shay|p6 joined perl6
13:24 PerlJam joined perl6
13:24 wolverian joined perl6
13:25 Juerd joined perl6
13:30 moritz_ ?eval my @a=1,2,3; my @b= @a;@b.elems
13:30 evalbot_r15692 is now known as evalbot_r15703
13:30 evalbot_r15703 3
13:30 moritz_ pugs> my @a = 1, 2, 3
13:30 moritz_ (1, 2, 3)
13:30 moritz_ pugs> my @b = @a
13:30 moritz_ (1,)
13:31 moritz_ what's wrong here? is my pugs build broken?
13:31 sili_ joined perl6
13:32 allbery_b works for me (r15692)
13:32 moritz_ mine is r15614
13:33 Patterner oooold....
13:33 devogon joined perl6
13:33 moritz_ Patterner: the last two builds failed, then I lost my motivation ;)
13:34 Patterner need a motivational speech? :)
13:34 allbery_b audreyt was a committing dervish for a bit, was kinda difficult to squeeze good builds in between commit storms :)
13:35 moritz_ all her fault ;))
13:35 allbery_b also, recent pugs and recent ghc HEAD haven't gotten along well (I'm building a new ghc currently to see if it's fixed yet)
13:46 jrockway joined perl6
13:50 iblechbot joined perl6
13:53 svnbot6 r15704 | moritz++ | 99problems: solved problem 90, 8 Queens (calculates all solutions)
13:59 rashakil__ joined perl6
14:15 rindolf What happened to http://www.pugscode.org/ ?
14:15 lambdabot Title: Pugs - pugscode
14:18 moritz_ rindolf: what's wrong? DNS errors?
14:18 rindolf moritz_: yes, DNS errors.
14:19 rindolf Unknown host www.pugscode.org
14:19 moritz_ rindolf: it works for me, but I had problems the other day as well...
14:20 moritz_ rindolf: you can use ns1.dragonfly.com (207.99.0.41) as a namesserver, then it works
14:22 rindolf lichtkind: here?
14:22 lichtkind what?
14:22 rindolf lichtkind: hi.
14:23 moritz_ lichtkind: you should ask "where?" ;-)
14:24 lichtkind hello rendolf you want ?
14:24 lichtkind err rindol
14:24 lichtkind f
14:24 lichtkind gosh
14:24 moritz_ use your tab key ;)
14:25 rindolf lichtkind: were you the guy who maintains a text editor written in Perl?
14:25 lichtkind ah even chatzilla can do that
14:25 lichtkind yes sir
14:26 [particle] joined perl6
14:26 rindolf moritz_: what is the IP of www.pugscode.org? I'll put it in my /etc/hosts file.
14:26 moritz_ rindolf: 194.145.200.126
14:27 lichtkind rindolf: do you want the linux version :) :)
14:30 rindolf lichtkind: I suppose I can give it a try.
14:31 lichtkind glad to hear but there is some problems
14:31 lichtkind i suppose you use linux
14:32 lichtkind the problem is not that i packaged it only for windows because the sources are xplatform
14:33 lichtkind the only problem ist that some parts are in transition and i plan it to be cpan installable
14:33 lichtkind now its not
14:33 lichtkind you have to set 2 pathes by hand and install the 2 modules it needs
14:34 lichtkind but if thats no problem for you ypu can try
14:34 lichtkind i use it on dayle base, even my perl6 article is wirtten in it
14:34 lichtkind it has some nice little feature you hardly see anywhere
14:35 lichtkind but that all you can read since the app and the docs are english as german as well
14:35 lichtkind rindolf: any further questions? :)
14:35 rindolf lichtkind: OK, where do I get it from?
14:36 lichtkind all the good bugfixes are in the latest packages
14:36 lichtkind i have a special site for it
14:36 lichtkind http://web52.xeon225.server4you.de
14:36 lichtkind but it containes win binaries for all the stuff
14:37 lichtkind shoul i strip the sources?
14:40 lichtkind mom
14:41 lichtkind im uploading
14:44 lichtkind rindolf: the upmost downlowd is now sources only is much smaller, it needs the module Wx and Hash::Merge and look in the starter there you set pathes to where docs and configs lay
14:44 aukjan is now known as aukjan|gone
14:44 lichtkind thats the still unproffessional part :)
14:45 fglock joined perl6
14:46 rindolf lichtkind: http://web52.xeon225.server4you.d​e/nightly/kephra-0.3.3.17-src.exe gives me "Object not found!"
14:46 lambdabot http://tinyurl.com/2awzwq
14:46 lichtkind momi see mom
14:48 lichtkind fixed stupid fault
14:48 lichtkind please write me your feedback [email@hidden.address]
14:50 buetow joined perl6
14:54 moritz_ is there a p6 equivalent to Data::Dumper?
14:55 broquaint ?eval [<I think so>].perl
14:55 evalbot_r15703 is now known as evalbot_r15704
14:55 evalbot_r15704 "[\"I\", \"think\", \"so\"]"
14:56 moritz_ broquaint++ thanks, that helps a lot
14:57 lichtkind rindolf: let me know when i can help you
15:00 iblechbot joined perl6
15:04 ayrnieu ?eval .perl for sub {}
15:04 evalbot_r15704 undef
15:05 ayrnieu ?eval (sub {}) ==> map {.perl}  # :-)
15:05 evalbot_r15704 Error: ␤Unexpected " map"
15:06 vel joined perl6
15:06 moritz_ ?eval my $f = sub { 1 }; $f.perl
15:06 evalbot_r15704 "\\sub \{Syn \"block\" \{1}}"
15:07 moritz_ ayrnieu: empty blocks are not allowed any more iirc
15:09 ayrnieu I see, that's pretty strange.
15:12 broquaint ?eval { ... }.perl
15:12 evalbot_r15704 "\{Syn \"block\" \{App \&fail_ (: \"... - not yet implemented\");\n              Noop}}"
15:12 broquaint Sweet.
15:12 moritz_ ;)
15:13 broquaint I wonder why there's a Noop after that &fail.
15:14 moritz_ maybe that's the '...'?
15:16 broquaint The ... is &fail, I imagine it'll be a macro eventaully.
15:16 vel joined perl6
15:16 broquaint It was an idle wonder, probably an artefact of development no doubt.
15:19 VanilleBert joined perl6
15:19 gaal Noops are artefacts of mergeStmts, they don't mean much
15:19 gaal they'll probably go away after move to newAST (after next release)
15:21 broquaint newAST?
15:26 svnbot6 r15705 | moritz++ | 99problems/problem50.t implemted (huffman tree)
15:29 svnbot6 r15706 | audreyt++ | * Pugs.AST.Internals: Code cleanups (change PadEntry
15:29 svnbot6 r15706 | audreyt++ |   to use newVal-style constructor names, etc.)
15:29 svnbot6 r15706 | audreyt++ |   Add an EntryFlags field to Sym and PadEntry for
15:29 svnbot6 r15706 | audreyt++ |   annotations on pad entries; currently only "is context".
15:30 svnbot6 r15707 | audreyt++ | regen instances.
15:30 gaal broquaint: pugs has two related sets of tree structures; one for representing values and one for representing expressions, that is, the Abstract Syntax Tree by which a parsed program is represented
15:30 gaal we're transitioning into new versions of both structures
15:30 svnbot6 r15708 | audreyt++ | * Pugs.Types: Cache VarCateg<->ByteString mappings to speed
15:30 svnbot6 r15708 | audreyt++ |   up show/read speed; also make (Show Var) go through ByteString.
15:30 gaal the new Val structure will make it to this release, and new AST to the next.
15:31 broquaint Groovy.
15:33 svnbot6 r15709 | audreyt++ | * Pugs.Parser: Proper support for "is context":
15:33 svnbot6 r15709 | audreyt++ |     my ($x is context, $y); # now works
15:36 geoffb Is pugs symbol table access not O(1)?  I have a suspicion that that might be part of why my GL code runs slowly (lots of symbols loaded into the current symbol table), but I haven't had the chance yet to thoroughly test that hypothesis.
15:36 svnbot6 r15710 | audreyt++ | * Chase "is context" pad structure changes in other modules.
15:36 svnbot6 r15710 | audreyt++ |   This concludes the contextual-declarations batch.
15:38 integral Data.Map is O(log N) or something close to that
15:39 TimToady @messages
15:39 lambdabot audreyt said 4h 31m 33s ago: Clearly the current spec has the &caller wrong? It should be &caller ::= &context.assuming(Routine,1,Routine) no?
15:41 TimToady @tell audreyt That interpretation of caller assumes the user wants to find the calling subroutine.  I think the user wants to find the calling context, which is likelier to have the right line number for the actual call into this routine.
15:41 lambdabot Consider it noted.
15:42 svnbot6 r15711 | moritz++ | 99problems/problem61.t: count and collect leaves
16:02 svnbot6 r15712 | moritz++ | problem62.t implemented (collect internal leaves and leaves at specified
16:02 svnbot6 r15712 | moritz++ | height)
16:03 moritz_ only 36 problems left ;)
16:03 TimToady moritz++ gabriel++
16:05 audreyt TimToady: .assuming(Routine,1) then?
16:05 lambdabot audreyt: You have 2 new messages. '/msg lambdabot @messages' to read them.
16:05 specbot6 r14345 | larry++ | Clarify that caller is not guaranteed to return a Routine context.
16:05 specbot6 r14345 | larry++ | Minor refactoring of context/caller section to avoid forward ref.
16:06 fglock joined perl6
16:06 audreyt our %vtable; sub gen {  %vtable = (k => { ...caller()... }) };  gen();  %vtable<k>();
16:06 audreyt in that case &?ROUTINE is never in dynscope
16:08 audreyt geoffb: symbol table access will be O(1) after the Pad-refactoring, which should land soon (like, this weekend)
16:10 audreyt basically currently each statement in Pugs can introduce a lexical Pad; however perl6 spec has changed after that, and only blocks have pads now; so after the refactoring we know statically what symbol access is what, and can run O(1)
16:10 fglock hmm - re O(1), I wonder how many problems I'd avoid if I didn't insist in premature optimization
16:11 gnuvince joined perl6
16:12 TimToady audreyt: but caller(Routine,1) will not dwtm in a displaced closure block either.
16:12 Debolaz "do what timtoady mean"?
16:12 audreyt TimToady: point.
16:12 TimToady do what "they" mean
16:12 Debolaz Ah. :)
16:12 TimToady would have to be context(&?BLOCK,1) for that
16:13 audreyt what we really want is
16:13 TimToady which is precisely the interpretation we're trying to avoid for non-displaced blocks
16:13 TimToady so that control flow blocks aren't thought of as closures unless you need to
16:14 TimToady so if they want that, the probably just write "sub {...caller...}"
16:14 audreyt context({ .routine != &?ROUTINE })
16:15 audreyt which seems to dwim more than either of the two
16:15 TimToady that doesn't make sense
16:16 audreyt mm? "nearest call frame that is in a different routine than the site of &caller"
16:16 TimToady !===, you mean
16:16 devbot6 TimToady: Error: "===," is not a valid command.
16:16 audreyt sure
16:16 TimToady I guess I don't mean that, devbot6. :)
16:17 lichtkind audreyt wow i thought you wanted sleep
16:17 audreyt I did (still do)
16:17 TimToady but other than that, yes, that might work
16:18 lichtkind so i speak with audrey subconsciousness
16:18 lichtkind impressive
16:18 audreyt TimToady: woot. do you have cycles to whack it in?
16:18 TimToady sure
16:18 audreyt TimToady++
16:21 fglock just checking - <alpha> does a named capture, but <alpha+digit> doesn't ?
16:22 TimToady hmm, we have no good notation for rewriting .caller as .context, because the test would have to talk about the invocant that we're passing in. could use a temporary, I guess
16:23 audreyt or macro :)
16:23 audreyt plus, that was still wrong... context({ .routine !=== &?ROUTINE }) doesn't handle recursion.
16:23 audreyt the problem is the frame object should distinguish between "entering an inner block"
16:23 TimToady probably need to provide both
16:23 audreyt and "all other kind of calls"
16:24 audreyt for this to natively work
16:24 audreyt for
16:24 TimToady "carpcaller"
16:24 audreyt sub f { { die 1 } }
16:24 audreyt sub f { { die 1 }() }
16:25 audreyt are different; the first "die 1"'s caller is the one calling f; the second one is simply &f
16:25 audreyt (if the second one look contrived, consider a vtable indirection, etc)
16:26 audreyt (pugs's evaluator stores this info (enterBlock vs apply), which is why we can provide consistent &caller)
16:27 TimToady so it's more like "find me a context that isn't 'inline'"
16:27 audreyt we want to find the first frame that is generated with apply
16:27 audreyt right.
16:28 TimToady how to name it, then?
16:28 audreyt context({ !.inline }) ;)
16:28 TimToady not good enough
16:28 vel joined perl6
16:28 TimToady you could be called from a context that thinks it's inline
16:28 audreyt context({!.inline},1)
16:29 TimToady might work
16:29 audreyt true that
16:29 audreyt the .inline info is populated by the evaluator
16:30 TimToady plus it still doesn't do what the user expects on custom control vs &?ROUTINE, I think
16:30 the_dormant joined perl6
16:30 audreyt so that should work: "find me the first frame that wasn't called as a inline block; then find the one after it"
16:30 audreyt thought about that; I think the answer is that custom control are expected to always use .callswith
16:31 TimToady not apply
16:31 audreyt or some other frame-upto-caller erasure trick
16:31 TimToady ok
16:31 audreyt should talk about that in spec too
16:31 audreyt macros of course by definition fix all this
16:31 audreyt so that's another way out for customcontrol writers
16:31 TimToady </handwave>
16:31 gaal rhi
16:31 audreyt er no, I mean a macro's dyncontext is naturally separated
16:31 gaal oi, kyboar ropping hars again...
16:32 audreyt so if you write statement:for as a macro, it doesn't even have a frame at runtime
16:32 audreyt but yeah, a non-macro control structure should always use .callwith etc, which by definition erases frames upto caller
16:33 TimToady so a tail-recursed caller is always outside the recursing func?
16:33 TimToady (or however you're supposed to say that...)
16:34 audreyt (...recursively...)
16:34 gaal rerehi with an E
16:34 TimToady you can say that again...
16:35 audreyt tail recursion optimization, if present, by definition erases frames
16:35 audreyt so either require implementations still provide CONTEXT info
16:35 audreyt or explicitly say it's okay to not provide consistent context info, in exchange for speed, and pretend we're scheme (etc)
16:36 audreyt (option 1 is saner imho.)
16:37 TimToady but it would be nice to run fast
16:37 audreyt then you say &?SUB.callwith
16:37 audreyt we don't have a form that explicitly say callwith-then-return?
16:37 audreyt pugs had &?SUB.goto for that (noncanonical)
16:38 audreyt that we can unroll happily
16:38 audreyt (as can &?SUB.callwith with more work)
16:38 TimToady nextwith is the new gotowith
16:39 audreyt ahh ok
16:39 [particle] is nextto the new goto?
16:39 jisom joined perl6
16:39 audreyt so yes. nextwith is the way if you really want fast tail call
16:40 audreyt and you are not limited to tail position then
16:40 audreyt so more general
16:42 TimToady in any case callwith is probably "inline", which neatly captures it's "unofficial" frame, I suspect
16:42 gaal how do I iterate over two arrays in parallel and get the current element of each and an index? each(@x, @y, [1..*]) ?
16:42 audreyt yeah.
16:42 audreyt how do we invoke a method with callwith?
16:42 audreyt say I want to callwith $obj.meth(1)
16:42 moritz_ gaal: zip them first, then iterate?
16:43 gaal was that yeah to me or to TimToady? :)
16:44 TimToady each is non-spec
16:44 gaal oh
16:44 gaal so for (zip @x, @y).kv -> [$x, $y], $i { ... } ?
16:44 TimToady &method.callwith(|\($obj: 1,2,3)) perhaps
16:45 audreyt two invocants
16:45 audreyt $obj.can('meth').callwith(1,2,3)
16:45 audreyt is one way to do it
16:45 audreyt (assume a precurrying .can in Code context)
16:46 TimToady zip is now supposed to return flattened by default like each used to
16:47 audreyt in perl5 I often wondered why .can does not precurry :)
16:47 gaal TimToady: thanks
16:47 audreyt if (my $f = $obj->can('meth')) { $f->($obj, 1, 2, 3) } # $obj is duplicated
16:49 TimToady &meth.assuming($obj:) seems like it ought to work
16:49 gaal conceivably you might want to call it on another object; maybe use used can just to avoid looking at the symbol table
16:50 audreyt sure it ought
16:50 audreyt $obj.can('meth').assuming($obj:).callwith(1,2,3)
16:50 audreyt I don't know. maybe it's huffmanly correct.
16:50 audreyt "if you really want to..."
16:51 TimToady well, it's a normal thing for a dispatcher to want to do
16:51 audreyt and why punish oo dispatchers :)
16:51 TimToady to prevent people from writing their own, hopefully?
16:52 audreyt ok :)
16:52 audreyt (and .assuming is a fine way to do it; I'm content)
16:53 gaal giving a precurried $f in perl 5 means you _can't_ call it on another invocant. presumably p6 .assuming accepts overrides!
16:53 TimToady I don't think so
16:54 VanilleBert left perl6
16:54 TimToady it's not just adding defaults
16:54 TimToady it's rewriting the sig
16:55 gaal nod, hmm you're right of course
16:55 TimToady if you assume the invocant you just have a sub call
16:56 gaal what about mmd?
16:56 gaal orthogonal to sub/method.. riht
16:56 gaal ^ih^igh
16:57 * gaal mooses out of this convo and back to sigstuff
16:57 TimToady only/multi is really an attribute of the shortname
17:00 weinig is now known as weinig_
17:02 gaal audreyt: :($x, $y)    :+:  :($z, $y) == ? this is lossy: :($, $, :$x, :$y, :$z)
17:02 gaal because we didn't fix the second name to "$y"
17:02 audreyt but lossy is okay (agrees with prop)
17:03 gaal hmm maybe :($, $y, :$x, $z) is better but harder to moose
17:03 audreyt :($, $y, :$x, :$z) is okay too if you can manage it
17:04 lichtkind TimToady have you decided if there will be an for {} else {}?
17:05 gnuvince left perl6
17:13 TimToady lichtkind: there will not
17:13 lichtkind a decicion by intiotion or by logic?
17:14 lichtkind intuition
17:14 TimToady as usual, a mixture of both
17:14 gaal intuitionist logic?
17:14 audreyt sounds very constructive
17:15 gaal it's not not constructive
17:15 audreyt rofl
17:16 lichtkind TimToady understandable but as you seen on list i would prefer to have this, but perl6 will have macros++ to make this
17:16 TimToady lichtkind: when I see two sets of people who think it should dwim two different ways, logic tells me it's a bad interface
17:16 audreyt "let a thosand languages boom"
17:16 audreyt er, bloom.
17:16 TimToady boom works
17:17 lichtkind haha
17:17 gaal a boom is a good start. of course, you need a mast, a sail, a hull, halyards...
17:17 lichtkind Mao--
17:17 gaal and then a good breeze
17:18 TimToady "'Tis a mere capful of wind, lad."
17:18 lichtkind TimToady yes even if i dont know the dicussion as well as you it was my thought that some might misunderstand the the concept
17:19 TimToady it does point up something missing, though
17:20 TimToady which is that I think maybe a loop in scalar context should default to returning its last value rather than all its loop values.
17:20 TimToady using gather/take to return one item is kind of overkill
17:21 TimToady and it would make Loop.leave($final) work correctly
17:21 svnbot6 r15713 | audreyt++ | more unTODO
17:22 kanru joined perl6
17:22 * gaal goes back to making this algo scud &
17:24 svnbot6 r15714 | audreyt++ | * &code.goto is now &code.nextwith.
17:27 svnbot6 r15715 | audreyt++ | * Change everything from .goto to .nextwith.
17:27 pjcj joined perl6
17:28 TimToady well, some of them my be .nextsame instead
17:29 weinig_ is now known as weinig
17:30 gaal what does C<when> without a C<given> break out from when it fires? nearest enclosing block?
17:31 Schwern joined perl6
17:31 gaal nearest topicalizer?
17:32 Southen joined perl6
17:33 vel joined perl6
17:36 svnbot6 r15716 | fglock++ | PCR - refactored complex character set emitter into a submodule
17:38 audreyt gaal: the nearest &return frame, currently, in pugs
17:39 gaal okay, ended up using given anyhow...
17:40 gaal if I run a closure in a when, can I bind lexicals there? when { $name = $xp ~name~ $yp } { ... mention $name here }
17:40 gaal er, my $name, in the when
17:41 gaal (well, I guess I can always declare it in larger scope...)
17:41 audreyt aye.
17:44 TimToady currently specced to break only out of the surrounding block
17:44 TimToady there is not really any "topicalizer" category for blocks
17:45 gaal TimToady: so given { { when .... } } is a bug?
17:45 andara left perl6
17:45 TimToady S04:561
17:45 audreyt but oh wait!
17:45 gaal audreyt: :($x) :+: :(@x) = fail incompat?
17:46 audreyt sorry. the nearest dynamic frame.
17:46 audreyt which is like, surrounding block.
17:46 audreyt (implemented this way too; I misparsed the tryout code)
17:47 TimToady gaal: potentially a bug, though your snippet doesn't exercise the option
17:47 audreyt ?eval sub f { { default { 1 }; die "1" } die "2" }; f()
17:47 evalbot_r15704 is now known as evalbot_r15716
17:47 evalbot_r15716 Error: ␤Unexpected "die"␤expecting operator or "}"
17:47 audreyt ?eval sub f { { default { 1 }; die "1" }; die "2" }; f()
17:47 evalbot_r15716 Error: 2
17:47 audreyt there we go.
17:48 justatheory joined perl6
17:48 TimToady Tempting to force Label.when to work, or somehow tag $_ with the topicalizer label
17:48 TimToady (if there is one)
17:49 TimToady but I think that would likely be insane
17:51 gaal hmm, look like mismatching sigils have to be a fail, though possibly if we relegate to named w/o positional trace we can get away with it?
17:51 TimToady can always do Label.leave(42) anyway
17:51 audreyt gaal: correct.
17:52 audreyt gaal: mismatching sigils is okay if one is $
17:52 TimToady why not just unify to $ anyway?
17:52 audreyt even % against @ can be satisfied by something that does both
17:52 audreyt well, @ against @ should unify constraint
17:52 audreyt (Array)
17:52 bernhard joined perl6
17:52 audreyt and %/@ should unify to Array|Hash (etc)
17:52 audreyt but yeah, can always just unify to $
17:53 as joined perl6
17:53 audreyt again, too lax not really a problem, except that we don't probably sufficient context, except htat's okay
17:53 audreyt *propagate
17:54 TimToady I wonder if "hyper" is a variant of "eager" that allows parallel execution
17:55 gaal addactive
17:55 TimToady @foo = hyper map { ... }. @bar
17:55 lambdabot Maybe you meant: faq ft todo yow
17:55 TimToady maybe I didn't
17:56 TimToady lambdabot needs a "Perl spam" filter
17:56 moritz_ ;)
17:56 gaal so I'm not clear on this. $ <> non-$, leave $? positional trace and add named
17:56 gaal ?
17:56 gaal that might bork things though
17:56 gaal you can't really change the arity, or leave holes in the required part
17:57 gaal this is mad :)
17:57 gaal eg :($x, $y, $z) :+: :(@x, $y, $z)
17:58 TimToady indeed, which is why we allow people to specify explicit protos.  :)
17:59 TimToady "Warning: your prototype is not yet in 42nd Normal Form"  :)
17:59 gaal "Warning: the following error message may be disturbing: ..."
17:59 gaal brb
18:00 audreyt gaal: no, always unify to $
18:00 audreyt :($x, $y, $z)
18:00 audreyt is correct
18:00 audreyt since @x is just
18:00 audreyt Array $
18:00 audreyt in disguise
18:01 lichtkind TimToady are there any rules that are derived from snobol?
18:02 * audreyt sleeps :) &
18:02 lichtkind gute nacht
18:03 xerox joined perl6
18:04 forsaken joined perl6
18:05 awwaiid joined perl6
18:08 obra seen agentzh
18:09 TimToady lichtkind: nothing directly, except the general notion that failure should be specified toward the right margin rather than the left.
18:10 cognominal left perl6
18:11 lichtkind ah cool honestly this questionen come from a friend who likes old languages i didnt know that even snobol exist
18:11 cognominal joined perl6
18:12 lichtkind but as far i can see pretty powerfull so i wonder that perl could grow that strong
18:12 specbot6 r14346 | larry++ | Further refinement of caller semantics to dwim in displaced closure calls.
18:12 ozo_ joined perl6
18:12 lichtkind i think snobol hadnt this kind of community
18:14 araujo does that even have a community?
18:15 * araujo hides
18:15 lichtkind ahh why be so shy
18:15 lichtkind TimToady did you talk about  the perl6 ex regex rules or general perl6 rules?
18:15 lichtkind i ment the first
18:15 svnbot6 r15717 | fglock++ | PCR - more refactorings (causes some new failures in t/regex)
18:23 weinig is now known as weinig|bbl
18:23 gaal oh, that makes sense :)
18:25 vel joined perl6
18:29 TimToady snobol is powerful in sort of an "assembly language for pattern matching" sense, but predates regex culture basically.
18:29 specbot6 r14347 | larry++ | New "hyper" listop that is an explicitly parallelizing variant of "eager".
18:31 TimToady in your first sense Perl didn't borrow anything directly from snobol, except perhaps the notion of keeping track of the current match position in a user-accessible fashion.
18:32 geoffb TimToady: I know the compiler is allowed to parallelize over each hyper'ed op, but what about over an entire expression involving multiple hypers?  (e.g. @a = @b >>*<< @c >>+<< @d >>*<< @e)
18:32 cognominal joined perl6
18:34 geoffb One of the performance problems I found with PDL is that if you didn't use PDL::PP, every op created, computed, and broke down a temp piddle.  This is way slower than computing the entire result all at once.
18:35 TimToady all hypers are explicitly parallel
18:35 TimToady so I think that's what you want
18:36 geoffb TimToady: Ah, so my above expression needs no temp arrays, and will compute each element as @b[n] * @c[n] + @d[n] * @e[n] (in PDL::PPish notation)?
18:36 mdiep joined perl6
18:37 TimToady seems to me that if the individual parts explicitly don't care, then you can calculate the whole thing in any order that makes sense
18:37 geoffb EXCELLENT.
18:37 geoffb TimToady++
18:37 TimToady that's the intent
18:37 TimToady most of S09 is explained by the desire to make PDLers insanely happy.
18:38 geoffb (Mind you, I expect it will be a little while before someone makes an expression optimizer that DTFT nearly always)
18:38 geoffb nodnod
18:40 vel joined perl6
18:41 TimToady that's -> $n { @b[$n] * @c[$n] + @d[$n] * @e[$n] } in P6 autoindex notation
18:41 TimToady but I see I should remark about the parallizability of that.
18:42 TimToady s/ll/llel/
18:42 lichtkind TimToady thanksfor answering even weird question
18:45 TimToady as long as you don't mind weird answers occasionally. :)
18:48 gaal "p15y"
18:49 specbot6 r14348 | larry++ | autoindexing should assume parallelizability (that's a hard word to type)
18:50 lichtkind hehe
18:50 silug joined perl6
18:50 [particle] p11bility
18:51 gaal p14ity
18:51 moritz_ p16y
18:51 TimToady such a p1ty
18:52 gaal p.*y
18:53 fglock concurrency ?
18:53 gaal (wc -c users, deduct one for newline)
18:53 gaal fglock: conc potential
18:55 mdiep joined perl6
19:16 specbot6 r14349 | larry++ | Clarify adverbial use where infix expected.
19:17 TimToady hmm, is anyone else receiving spec updates on p6l?
19:17 geoffb yes
19:19 vel joined perl6
19:27 TimToady in the last 12 hours?
19:28 geoffb Yes, I've gotten all the ones you've posted, reasonably quickly too
19:28 TimToady got a p6c post this morning, so it's not that perl.org has blacklisted me.  hmm...
19:28 Arathorn me too, fwiw
19:29 Arathorn (in terms of getting p6l posts)
19:29 geoffb (OT) Anyone here with screen(1) fu?
19:29 TimToady a little
19:29 tene geoffb: a little.  what's up?
19:30 ozo_ joined perl6
19:30 geoffb Is it possible to get screen to split the window vertically, rather than horizontally?
19:30 tene geoffb: No.
19:30 geoffb bah, humbug
19:30 geoffb (programs not yet aware of widescreen displays)--
19:30 nxu7-wrk joined perl6
19:31 wolverian try ratpoison
19:31 ajs_ geoffb ... emacs will do that.
19:32 tene so can vim, but it's pretty lame to require an editor to do that.
19:32 geoffb ajs_: nodnod, and I use that a lot for editing, but I don't like emacs' shell handling, so I run emacs inside screen, rather than the other way around, if you understand my meaning
19:33 offby1 does any sane person run "screen" inside emacs?!
19:33 * geoffb looks up ratpoison
19:33 ajs_ I do
19:33 ajs_ offby1, yes
19:34 TimToady I'm just a poor Warfarin stranger...
19:34 * offby1 slaps TimToady upside the haid
19:34 offby1 man, that one really hurt
19:35 geoffb wolverian: need real console-only behavior, it looks like ratpoison is an XWM.  (I'm running screen on a remote system to access other boxen on its network, and X remoting is nix)
19:35 offby1 ajs_: seriously?  Do you use M-x term?
19:35 svnbot6 r15718 | fglock++ | PCR - finished char sets; added more tests
19:35 ajs_ I've done a number of things, yeah. Been years, but there are times that you're in a subshell in emacs and you want to create a stateless session on some remote host with which you are interacting
19:37 ajs_ Mind you, I'm the kind of whackjob that runs vi inside of emacs terminal emulation too
19:38 offby1 :-)
19:38 offby1 I didn't say it, you did
19:39 particleS joined perl6
19:39 geoffb "My client is insane, your honor."  "And what evidence do you have of that, counselor?"  "Your honor, I call my client to the stand to discuss his use of editors ..."
19:39 particleS is now known as |particle|
19:40 |particle| is now known as [particle]
19:41 TimToady are you guys subscribed to perl6-language directly or through perl6-all?
19:41 geoffb p6l directly, I believe.  I only watch the other ones through the digests.
19:42 TimToady maybe the perl6-all alias is hosed somehow...
19:42 TimToady except then why would I be getting p6c okay?
19:42 moritz_ Unexpected "$expected"<-- nice error message ;)
19:42 TimToady the logs show nothing coming in for p6l, so it's not making it to my machine
19:43 geoffb Maybe p6-all is hosed in the sense of "resending the wrong list of child lists"
19:43 geoffb I dunno how p6-all was created (whether it is a subscriber/forwarder from the other lists, or some special thing in the MLM)
19:44 TimToady maybe... or perhaps some friendly ISP is removing it as "spam"
19:44 TimToady for too many $ signs, no doubt.  :)
19:44 svnbot6 r15719 | fglock++ | PCR - closed several TODO
19:45 geoffb heh
19:45 [particle] maybe somebody accidentally shifted @Larry
19:46 * geoffb rues the number of spams he's been getting recently that try to work around bayesian filters by including sizeable chunks of unix docs ....
19:46 TimToady maybe they started including sizeable chunks of synopses. :/
19:46 moritz_ ;)
19:46 geoffb (clearly optimizing for the wrong people's filters ... this technique gets them exactly the people most likely to be pissed off)
19:47 geoffb heh
19:47 [particle] more likely it's text they have readily at hand
19:48 geoffb [particle]: my guess as well.  But I had hoped that they would put 2 and 2 together and get at least 3 ....
19:48 TimToady If ever I was tempted to administer warfarin to a stranger, that would be it...
19:48 geoffb LOL
19:48 justatheory joined perl6
19:51 prly joined perl6
19:58 fglock @tell putter Pugs::Emitter::Rule::Perl5::CharClass may be reusable for your code, it's not meant for any specific engine; otoh it may have bugs
19:58 lambdabot Consider it noted.
19:59 ofer0 joined perl6
19:59 geoffb fglock: Would you mind explaining what the current rule/regex engines are right now?  I've gotten rather confused about what gets used by Pugs, what gets used by Parrot (PGE I assume), what gets used by v6.pm, and what is open research ....
20:02 fglock geoffb: Pugs and v6.pm share Pugs::Compiler::Rule (PCR)
20:02 geoffb fglock: or, of course, point me to an URL ...
20:02 fglock Parrot uses PGE, which is written in Parrot
20:02 devogon joined perl6
20:02 geoffb ah, OK.
20:02 geoffb Anyone else work on PCR besides you?
20:03 fglock and kp6, which is "MiniPerl6", bootstraps with it's own rule engine
20:03 geoffb And how complete is PCR?
20:03 offby1` joined perl6
20:03 fglock hmm, not really
20:03 fglock it is mostly usable, but there is a long TODO list
20:04 geoffb Where does kp6 fit into the big scheme of things?  And is it written in P5?
20:04 fglock it needs better integration with Pugs (haskell-perl5) communication
20:04 fglock kp6 is written in kp6 :)
20:04 geoffb gotcha about status
20:04 geoffb What is wrong with pugs communication at present?
20:04 fglock kp6 is bootstrapped in perl5
20:05 fglock but it could compile to parrot
20:05 offby1` is now known as offby1
20:05 [particle] some work was started on that, but never finished
20:05 ayrnieu where is kp6?
20:05 geoffb So kp6 is investigating the boundary of how little is actually needed from the "vm", and how much can be done in pure p6?
20:06 fglock re communication - it seems that variables inside regex aren't shared with haskell; needs some work to find out why
20:07 geoffb .oO( This is part of why I'm on IRC again ... it's so hard to see the big picture when audreyt is not producing copious presentations, and all you have is the mailing lists to glean from.)
20:07 ayrnieu oh, kp6 = v6.pm?
20:07 geoffb fglock: ah
20:07 fglock sorry, I meant "mp6" - mp6 is the "how little is needed" version
20:07 fglock v6.pm == perl6-in-perl5
20:07 geoffb See, even you get confused!
20:07 geoffb :-)
20:07 fglock kp6 == more advanced version of mp6
20:07 Aankhen`` joined perl6
20:08 fglock heh
20:08 ayrnieu OK, where is mp6?
20:08 fglock v6/v6-MiniPerl6
20:08 geoffb OK, so we currently have: kp6, mp6, v6.pm, Pugs, PGE.  Does that about cover it?
20:08 ayrnieu no, PGE is just the rules engine.
20:08 ayrnieu you want: languages/perl6
20:09 geoffb Oy.  OK, thanks ayrnieu
20:09 fglock oh, we have about 4 or 5 rule engines actually
20:09 geoffb So kp6 -> kp6, mp6 -> ?, v6.pm -> PCR, Pugs -> PCR, l/p6 -> PGE ...?
20:10 geoffb jebus
20:10 geoffb No wonder I'm lost
20:10 fglock PCR itself has several internal engines, with different kinds of optimizations
20:10 fglock lets see..
20:11 [particle] this merits visiolization
20:11 fglock the main projects are Perl6/Haskell and Perl6/Parrot
20:11 geoffb [particle]: hell yes.
20:11 vel joined perl6
20:11 fglock these projects aim to a complete implementation of the spec
20:12 fglock Perl6/Perl5 implements a reasonable subset of the language
20:12 fglock but it doesn't aim for completeness, because it would make it too slow/too complex
20:12 geoffb (I assume P6/P5 won't implement everything because ... oh, you beat me to it.)
20:13 geoffb Making sense so far.
20:13 fglock then, there is Perl6-on-Perl6
20:13 ayrnieu that being the ultimate, holy goal.
20:14 fglock there are several small pieces of p6-p6 all around
20:14 * geoffb hears a choir sing ....
20:14 cognominal joined perl6
20:14 fglock TimToady's STD is a p6 grammar; pmichaud also did a p6 grammar;
20:15 fglock PCR is partially written in p6
20:15 kunwon1 joined perl6
20:15 fglock and mp6 implements a working (but limited) p6-on-p6
20:15 moritz_ this is partly confusing ;)
20:15 geoffb PCR is a P5 module written partially in P6?  Using v6.pm?
20:15 fglock yes
20:15 geoffb wow, cool.  OK, go on
20:16 fglock v6.pm was bootstrapped about an year ago, with a mini compiler named "lrep"
20:16 fglock which is reverse-"perl"
20:16 geoffb (as an aside, I'm really interested in P6-on-P5, even without all the shiny semantic features, because I like the P6 syntax so much)
20:16 geoffb heh
20:17 fglock lrep was then split into PCR (the regex engine), and v6.pm (the perl6 compiler)
20:18 fglock Pugs now uses PCR through a haskell-perl5 bridge
20:18 geoffb fglock: OK, I think I understand
20:19 fglock that's it for the main projects, but then we have many small projects
20:19 fglock mp6 is a completely self-contained bootstrapped compiler
20:19 geoffb So why kp6 and mp6?  Why were they not just improvements on v6?
20:20 fglock mp6 can theoretically be boottrapped in almost any vm/language
20:20 geoffb "Supply these n primative ops, and you're set"?
20:21 fglock but the compiler internals are too simple for the necessary AST transformations that Parrot (for example) requires
20:21 fglock yes
20:21 geoffb ah
20:22 fglock it is a more complex compiler, written in mp6
20:22 fglock s/^/kp6 /
20:23 fglock kp6 implements "plugins" for almost all internal operations
20:23 geoffb OK, so mp6 is written in mp6, bootstrapped some ago in P5 I assume, then kp6 was written in mp6, providing more complexity with the goal of ... being able to target Parrot?
20:23 meppl good night
20:23 geoffb g'night, meppl
20:24 geoffb Is mp6 complete enough that it's not needing to change to support new kp6 features?
20:24 fglock yes; kp6 can also provide a more feature-complete p6-on-p5
20:25 meppl ;)
20:25 Schwern joined perl6
20:25 fglock other small projects going on:
20:25 geoffb fglock: Does it get that feature completeness at the expense of speed?  In other words, will both kp6 and v6.pm have separate niches in the end game?
20:25 fglock putter's implementation of a rule engine in ruby, and another one in perl5
20:25 geoffb go putter
20:26 svnbot6 r15720 | moritz++ | 99problems/problem64.t implemented (tree alignment 1)
20:26 fglock geoffb: re speed, yes
20:26 geoffb fglock: got it.
20:26 * geoffb is glad to have the choice, frankly.
20:27 [particle] use more <speed>; use more <features>;
20:27 geoffb [particle]: 'xactly.
20:27 fglock kp6 would be *very* slow to compile itself; but mp6 does it very reasonably
20:27 geoffb cool
20:28 geoffb So has anyone other than Pmichaud managed to target parrot as a back end yet?
20:29 fglock that's it, I guess :)
20:29 fglock yes, Pugs can do it
20:29 geoffb And whatever happened to the JS backend?
20:29 [particle] there may be some bitrot on the pugs/parrot integration atm
20:29 fglock it's still there
20:29 geoffb Ah, the pugs -> parrot backend works? I always thought it was rotten
20:29 geoffb [particle]: nodnod, that's what I thought
20:30 geoffb fglock: maintained at all?
20:30 fglock it needs a lot of work
20:30 geoffb k
20:30 fglock for some value of "works"
20:30 moritz_ fglock: dW = Fdx
20:30 moritz_ fglock: that's my definition of work ;)
20:30 fglock hmm - I need a better irc client
20:31 geoffb ?
20:31 fglock moritz_ is that "work" and "features"?
20:32 moritz_ fglock: that's just "work" ;)
20:32 moritz_ differential work, to be exact ;)
20:32 [particle] an incremental unit of work is equal to a force applied to an incremental distance
20:33 fglock re kp6, there are several experiments there with p5, parrot, C
20:34 geoffb fglock: OK, do tell ...
20:34 fglock I think the most useful place to apply more work right now is TimToady's STD
20:34 moritz_ can pugs compile STD.pm right now?
20:35 geoffb moritz_: I saw a recent TimToady commit mentioning trying to get STD more parseable by pugs ...
20:35 fglock though I've been procastinating implementing DFAs in PCR for a while
20:35 fglock STD in pugs depends on PCR...
20:36 geoffb heh ... no pressure fglock
20:36 the_dormant joined perl6
20:37 [particle] STD is *parseable* by pugs, with certain hacks
20:37 [particle] languages/perl6 can't parse it yet
20:38 [particle] we should probably have a set of tests, similar to 01-sanity, as prerequisites for compiling STD
20:38 tene is STD parseable by STD?
20:39 [particle] ESPACETIMERIFT
20:40 geoffb WORMHOLE EXTREME!  *cough* sorry about that ...
20:41 lichtkind joined perl6
20:42 cognominal joined perl6
20:44 fglock the problem for PCR is not just parsing it, but being able to emit working code for some constructs
20:46 fglock a hackathon for this would be nice :)
20:48 ozo_ joined perl6
20:48 fglock I wonder if porting PCR to pugs would make it easier to make progress
20:49 Caelum joined perl6
21:01 geoffb fglock: porting in what sense?  Rewriting it in full P6?
21:08 fglock geoffb: yes; the parser is already in p6
21:10 fglock all it needs is an emitter that emits perl6 code. There are partially written emitters for perl6 and for haskell, even
21:11 geoffb wheee
21:12 ludan joined perl6
21:12 * geoffb sees Perl 6 as a massive construction site involving multiple buildings, each in a different state of completion from just laying out the foundation up to hanging the facades
21:13 * geoffb is free associating a lot today and clearly lacking sleep ....
21:13 ludan hi
21:13 Schwern joined perl6
21:13 moritz_ hi ludan ;)
21:13 moritz_ geoffb: but sounds quite right ;)
21:13 fglock geoffb: yes, like that
21:14 moritz_ geoffb: and in your analogy, what are the test cases? *g*
21:14 geoffb cannoneers from the opposing army?  Oh wait, mixing time periods there ....
21:15 geoffb Maybe gravity is the ultimate test case.  :-)
21:15 moritz_ ;)
21:15 moritz_ and "make smoke" is an earth quake ;)
21:15 geoffb LOL
21:15 geoffb nice
21:16 geoffb *foreman with arms akimbo*  Hey buddy, which you mind taking your earthquakes elsewhere?  We're trying to build something here ....
21:22 offby1` joined perl6
21:23 fglock home &
21:32 buetow joined perl6
21:32 stevan__ joined perl6
21:36 ozo_ joined perl6
22:10 [particle] svn.perl.org is down :(
22:14 moritz_ ... speaking of earthquakes ;)
22:18 svnbot6 r15721 | moritz++ | 99problems/problem65.t implemented (layout a binary tree (2))
22:20 zald joined perl6
22:33 cognominal joined perl6
22:34 moritz_ https://prof.ti.bfh.ch/hew​1/informatik3/prolog/p-99/ any ideas how to tackle P66?
22:54 Psyche^ joined perl6
22:55 larsen_ joined perl6
23:10 Psyche^ is now known as Patterner
23:19 offby1` is now known as offby1
23:20 cognominal joined perl6
23:31 forsaken joined perl6
23:54 svnbot6 r15722 | moritz++ | problem67.t: implementation of first bit

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo