svn switch --relocate svn.openfoundry.org/pugs svn.pugscode.org/pugs/ | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com | dev.pugscode.org/ Set by putter on 11 February 2007. |
|||
geoffb is bak | 00:07 | ||
Limbic_Region, [particle]: yeah, the error that Limbic_Region just demonstrated is why I went the Perl 5 eval route | |||
Really would like to get rid of that | |||
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 | ||
geoffb | [particle]: I partially did that for the SDL::OpenGL.can code, which used to be even worse than it is now | 00:09 | |
wrapped it in a loop inside a BEGIN block, that is | 00:10 | ||
I would love to just be able to say "import SDL::OpenGL;" and be done with it | |||
[particle] | geoffb: sure i see that | 00:13 | |
00:14
dvorak joined
|
|||
[particle] | can you write sub import(...) { BEGIN { ... } } ?? | 00:14 | |
geoffb | hmmm, I wonder if I can walk the P5 symbol table and import it ....? | 00:15 | |
[particle] | ooh, tricky | ||
geoffb | dammit, I was going to get $job_work done, and now this has my brain | 00:16 | |
00:26
weinig|bbl is now known as weinig
00:35
devogon joined
00:46
diakopter joined
00:50
whooosh joined
|
|||
geoffb | Bwa-ha-ha-ha-haaaa .... www.broadwell.org/dl/step075.p6 | 00:56 | |
[particle]: it works! It's slow as HECK, but it works | 00:57 | ||
01:21
nipotaway is now known as nipotan
01:25
Schwern joined
01:31
H0LE joined
|
|||
[particle] | HA! geoffb++ | 01:40 | |
pugs needs a debugger. i think it should be called flee | 01:41 | ||
TimToady | flea? | 01:43 | |
diakopter | filet | 01:48 | |
oh, I get it. fleas are bugs. | 01:49 | ||
geoffb | And you want to get them to run away .... | ||
Puns multiplied are so much more sweet. | |||
And geeky. | |||
[particle] | >>:P<< | 01:50 | |
offby1 | the ultimate pun: it has infinite meanings | ||
01:51
kanru joined
01:53
putter joined,
geoffb joined
|
|||
geoffb | bah, damn keyboard | 01:53 | |
I'm still bothered by this line: $eval ~= 'our &' ~ $symbol ~ ' := ' ~ $module ~ ".can('" ~ $symbol ~ "') if " ~ $module ~ ".can('" ~ $symbol ~ "');\n"; | 01:54 | ||
I feel like I'm writing Javascript | |||
01:54
b00t joined
|
|||
geoffb | What is the proper escaping to be able to put that all in one string without accidently doing dereffing early? | 01:54 | |
I tried a few variants, and Pugs was always unhappy about one thing or another. | 01:55 | ||
01:56
mr_ank joined
|
|||
[particle] | "our &{$symbol}..." ? | 01:57 | |
geoffb | hmmm | ||
[particle]: nope, that explodes | 01:58 | ||
*** | |||
Unexpected end of input | |||
expecting "::", dot, ":", "(", term postfix, operator or "}" | |||
at step075.p6 line 37, column 124 | |||
No, wait, it's because I included := in the same string segment | 01:59 | ||
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 | ||
putter: I swear that exploded for me | |||
Will try again, in case I went insane | |||
putter | $eval ~= "our \&$symbol := {$module}.can('$symbol') if {$module}.can('$symbol');\n"; | 02:02 | |
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 ... | ||
audreyt | "our \&$symbol := $module.can\('$symbol') if $module.can\('$symbol');\n"; | ||
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 | ||
geoffb | putter's last version worked, checking audreyt's | ||
no explosion yet, waiting to see how final eval does | 02:06 | ||
audreyt | weird, my $pi = atan(2,2) * 4; $pi works for me. | ||
geoffb | Jeapordy theme ... | 02:07 | |
s/my/constant/? | |||
OK, audreyt's version of the string works too. | 02:08 | ||
audreyt | ?eval constant $pi = atan(2,2)*4; say $pi | 02:09 | |
evalbot_r15692 | OUTPUT[3.141592653589793ā¤] Bool::True | ||
audreyt | ?eval constant $pi = atan(2,2)*4; $pi | ||
evalbot_r15692 | \3.141592653589793 | ||
audreyt | ?eval my $pi = atan(2,2)*4; $pi | ||
evalbot_r15692 | \3.141592653589793 | ||
geoffb | OK, hmmm | ||
audreyt | bbiab (just woke up :)) | 02:10 | |
geoffb laughs at own blindness | 02:13 | ||
My mistake was failing to s/atan2/atan/g; | 02:14 | ||
sigh | |||
Oh the insidious ways Perl 5 rots your brain | 02:15 | ||
OK, latest and greatest up at same place, www.broadwell.org/dl/step075.p6 | 02:16 | ||
02:17
offby1 joined
|
|||
TimToady | p6 spec is actually atan2 also | 02:23 | |
geoffb | ah, pugsbug then | ||
TimToady | not exactly bug, was atan, but ambig with default 2nd arg | 02:24 | |
geoffb | hmmm? I'm not sure I see the problem. | 02:27 | |
TimToady | what would be the units of atan($x) | 02:28 | |
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 | |
02:30
rashakil_ joined
|
|||
Aankhen`` | ?eval constant $pi = atan(2,2)*4; $pi = 5 | 02:34 | |
?eval constant $pi = atan(2,2)*4; $pi | |||
No eval for me? :-( | |||
evalbot_r15692 | Error: Can't modify constant item: VNum 3.141592653589793 | ||
Aankhen`` | Ah, there we go. | ||
evalbot_r15692 | \3.141592653589793 | ||
geoffb | Bah, all my glorious P6 code simplification is eaten up by that damn symbol table thrashing:$ wc step075.p6 ../step075 | 02:35 | |
704 1779 15555 step075.p6 | |||
741 1779 15880 ../step075 | |||
Aankhen`` | ZOMG. | 02:36 | |
geoffb | Aankhen``: ? | ||
Aankhen`` | Sorry, just being dramatic. :-) | ||
geoffb | I was just hoping to see that I'd shaved like 25% off my code or something. Ah well, it will come. | 02:37 | |
putter | moritz_: ping? | 02:42 | |
Limbic_Region: ping? | 02:43 | ||
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 | |||
pasteling | "putter" at 66.30.117.127 pasted "donate.pugscode draft" (13 lines, 744B) at sial.org/pbot/23476 | 02:45 | |
geoffb | change_of_venue & | 02:46 | |
02:50
kyrbe joined
|
|||
putter | reoccurring subscriptions look interesting (eg, $10/mo) but are a premium thing. | 02:53 | |
03:05
geoffb joined
03:14
GreatFlamingFoo joined
03:16
mako132_ joined
|
|||
svnbot6 | r15693 | dvergin++ | Added ref to docs/Perl6/Overview/Variable.pod | 03:18 | |
03:21
GreatFlamingFoo left
03:27
diakopter left
|
|||
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 | |
03:29
lambdabot joined
|
|||
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:30 | |
03:31
Psyche^ joined
|
|||
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. | ||
svnbot6 | r15694 | putter++ | donate.pugscode.org/index.html - new draft text. | ||
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
|
|||
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
03:55
jiing joined
|
|||
putter | "Is Pugs the official Perl 6? Official Perl 6 is defined as any implementation which passes the Perl | 03:56 | |
6 test suite. So yes, but not the only one." | |||
TimToady: sound about right? | |||
putter updates the 01Overview faq | |||
03:57
justatheory joined
04:00
Debolaz joined
|
|||
TimToady | Nothing is passing the test suite yet... | 04:09 | |
svnbot6 | r15695 | lwall++ | Allow split on arrays and filehandles. | 04:10 | |
r15695 | lwall++ | Emphasize that maximum laziness is not a requirement for lazy objects. | |||
04:11
REPLeffect joined
|
|||
putter | hmm, good point... | 04:17 | |
modified | 04:20 | ||
svnbot6 | r15696 | putter++ | 01Overview.{kwid,html} - Added "Is Pugs the official Perl 6?". | 04:25 | |
r15696 | putter++ | The .html was hand edited, as I failed to determine how, or whether, to generate it from the .kwid. | |||
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." | |||
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:39 | |
04:45
amnesiac joined
|
|||
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. | ||
gaal | nothingmuch: released twice in fact :) (second time someone reported a dep that wasn't reflected in Makefile.PL...) | 05:09 | |
nothingmuch | cool | 05:11 | |
see you on the 19th | |||
emai | |||
ahhh | |||
gaal | moo | ||
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 | ||
so it worked | |||
i will have to darcs applyu | |||
but my ping times are very long | |||
in fact, i've yet to see my first line show up here =/ | |||
gaal | forget autoapply; I wasn't sure it actaully sent out the patches | ||
nothingmuch | ah, there it is | ||
it did | 05:13 | ||
gaal | ok | ||
05:18
Aankhen`` joined
|
|||
svnbot6 | r15697 | putter++ | yet_another_regex_engine/Regexp_ModuleA.pm - begin support for unicode property character sets. | 05:32 | |
r15698 | putter++ | yet_another_regex_engine/PugsRegexTestA.pm - minor tweaks. | |||
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 | |
good night & | |||
06:14
BooK joined
|
|||
svnbot6 | r15699 | lwall++ | keep cheated STD parsable by pugs, if not very runnable | 06:20 | |
06:34
DHGE joined
|
|||
svnbot6 | r15700 | lwall++ | test whether one constant can be defined in terms of another constant | 06:35 | |
06:46
avarab joined
07:04
bsb left
07:14
smash joined
|
|||
meppl | good morning | 07:29 | |
audreyt | greetings | 07:40 | |
lambdabot | audreyt: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
audreyt | <- @ job, hacking Inline::Java into pieces, will resume pugshack in ~24hr | ||
07:46
avar joined
07:53
fridim_ joined
08:11
buetow joined
08:13
avar joined
08:19
fridim_ is now known as fridim
08:29
xern joined
08:31
aukjan|gone is now known as aukjan
08:44
the_dormant joined
|
|||
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:48 | |
moritz_ | @tell putter pong ;-) | 08:59 | |
lambdabot | Consider it noted. | ||
09:27
Jedai joined
09:31
iblechbot joined
09:44
rindolf joined
09:50
the_dormant joined
|
|||
svnbot6 | r15702 | tene++ | Typo in test. | 09:58 | |
r15703 | tene++ | Implement problem 95 from 99problems | |||
10:03
devogon joined
10:04
andara joined
10:06
chris2 joined,
lichtkind joined
|
|||
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 | ||
(unless you want more karma through tene++ ;-) | 10:09 | ||
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:10 | |
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
10:39
Jedai joined
10:42
drupek12 joined
10:44
mjk joined
10:57
GeJ joined
10:58
IllvilJa joined
|
|||
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:06 | |
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. | ||
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:27 | |
audreyt | sure, runST is very moose! | 11:38 | |
the Grand Pad Refactoring is going well | |||
(the only thing left for VCode to be newval) | |||
subEnv will be gone and replaced by subLexPads :: [TVar Pad] | |||
and the Pad node will be gone as well from the runtime, as we designed | 11:39 | ||
(it was blocking proper OO scoping in class{...}) | |||
gaal | reason I was surprised about .signature working a few days ago was that I thought it implied VCode in newVal | 11:45 | |
11:52
fglock joined
|
|||
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:53 | |
audreyt | lichtkind: send me the article :) | 11:54 | |
lichtkind | audreyt its german | ||
moritz_ | audreyt: do you understand German? | ||
fglock | putter: re isLr - "*** Cannot parse regex: ^<+isLr>$" | ||
lambdabot | fglock: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
avar | Wich kunn readen psueudodeutch miket gut | 11:56 | |
lichtkind | audreyt by mail? | 11:58 | |
avar haha | |||
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 | ||
fglock | audreyt: re Proxy - I wonder if 'return VAR($x)' should just work as an lvalue | 11:59 | |
moritz_ | audreyt: where in .de? | ||
audreyt | moritz_: Dudweiler, SaarbrĆ¼cken | 12:00 | |
fglock: the sub has to be declared "is rw" | |||
fglock: in which case "return $x" will be VAR($x) | |||
S06:232 | |||
lichtkind | audreyt ist 5000 words really the whole article or just the pugs chapter | 12:01 | |
fglock | audreyt: ok! I'm still finding out how Proxy/Lazy/Array/Hash/typed concepts interact | 12:03 | |
audreyt | lichtkind: the whole article | 12:04 | |
12:04
nipotan is now known as nipotaway
|
|||
audreyt | :) | 12:04 | |
lichtkind | wie du meinst | 12:05 | |
fglock | in short-circuiting functions, is the second argument just marked 'lazy' ? | ||
audreyt | lichtkind: vielen danke | 12:07 | |
fglock: conceptually yes | |||
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 | ||
audreyt | lichtkind: [email@hidden.address] :) | ||
(and as you can see my spelling is totally broken now :)) | 12:09 | ||
moritz_ | human parsers are usually error correcting ;) | ||
audreyt | fglock: another school of thought says infix:<||> is actually a macro that constructs a scope for its rhs | ||
fglock: neither is specced, though. | |||
personally I prefer "is lazy". | 12:10 | ||
12:10
Limbic_Region joined
|
|||
lichtkind | audreyt right its out | 12:19 | |
i added some info that might interest you | 12:21 | ||
audreyt | k cool | ||
I need to sleep though and $job tomorrow | |||
so maybe get back to you in 24~48hrs | |||
is that ok? | 12:22 | ||
fglock | audreyt: good night | ||
lichtkind | of course | ||
it gonne published on 1.may | 12:23 | ||
so no need to hurry | |||
gute nacht | |||
audreyt | g'nite | 12:25 | |
rindolf | Hi audreyt | 12:26 | |
12:27
yts joined
|
|||
Limbic_Region | fglock ping | 12:28 | |
lambdabot | Limbic_Region: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
Limbic_Region | @moosages | ||
lambdabot | diakopter said 23h 6m 10s ago: :P | ||
Limbic_Region | lambdabot - you already gave me that message | 12:29 | |
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. | ||
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 | |||
if you don't have the info readily available - no worries - I need to get back to work soon anyway | 12:37 | ||
grrr - and now I think my client is acting up again | |||
fglock | April is YAPC::SA, August is YAPC::Brasil; also, this year we are organizing YAPC::SaoPaulo | ||
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 | ||
but YAPC::SA is nearby where I live :) | 12:39 | ||
12:39
BooK joined
12:46
mr_ank joined
12:57
ofer0 joined
13:18
the_dormant joined
13:24
shay|p6 joined,
PerlJam joined,
wolverian joined
13:25
Juerd joined
|
|||
moritz_ | ?eval my @a=1,2,3; my @b= @a;@b.elems | 13:30 | |
13:30
evalbot_r15692 is now known as evalbot_r15703
|
|||
evalbot_r15703 | 3 | 13:30 | |
moritz_ | pugs> my @a = 1, 2, 3 | ||
(1, 2, 3) | |||
pugs> my @b = @a | |||
(1,) | |||
what's wrong here? is my pugs build broken? | 13:31 | ||
13:31
sili_ joined
|
|||
allbery_b | works for me (r15692) | 13:32 | |
moritz_ | mine is r15614 | ||
Patterner | oooold.... | 13:33 | |
13:33
devogon joined
|
|||
moritz_ | Patterner: the last two builds failed, then I lost my motivation ;) | 13:33 | |
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 :) | ||
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
13:50
iblechbot joined
|
|||
svnbot6 | r15704 | moritz++ | 99problems: solved problem 90, 8 Queens (calculates all solutions) | 13:53 | |
13:59
rashakil__ joined
|
|||
rindolf | What happened to www.pugscode.org/ ? | 14:15 | |
lambdabot | Title: Pugs - pugscode | ||
moritz_ | rindolf: what's wrong? DNS errors? | 14:18 | |
rindolf | moritz_: yes, DNS errors. | ||
Unknown host www.pugscode.org | 14:19 | ||
moritz_ | rindolf: it works for me, but I had problems the other day as well... | ||
rindolf: you can use ns1.dragonfly.com (207.99.0.41) as a namesserver, then it works | 14:20 | ||
rindolf | lichtkind: here? | 14:22 | |
lichtkind | what? | ||
rindolf | lichtkind: hi. | ||
moritz_ | lichtkind: you should ask "where?" ;-) | 14:23 | |
lichtkind | hello rendolf you want ? | 14:24 | |
err rindol | |||
f | |||
gosh | |||
moritz_ | use your tab key ;) | ||
rindolf | lichtkind: were you the guy who maintains a text editor written in Perl? | 14:25 | |
lichtkind | ah even chatzilla can do that | ||
yes sir | |||
14:26
[particle] joined
|
|||
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 | ||
lichtkind | rindolf: do you want the linux version :) :) | 14:27 | |
rindolf | lichtkind: I suppose I can give it a try. | 14:30 | |
lichtkind | glad to hear but there is some problems | 14:31 | |
i suppose you use linux | |||
the problem is not that i packaged it only for windows because the sources are xplatform | 14:32 | ||
the only problem ist that some parts are in transition and i plan it to be cpan installable | 14:33 | ||
now its not | |||
you have to set 2 pathes by hand and install the 2 modules it needs | |||
but if thats no problem for you ypu can try | 14:34 | ||
i use it on dayle base, even my perl6 article is wirtten in it | |||
it has some nice little feature you hardly see anywhere | |||
but that all you can read since the app and the docs are english as german as well | 14:35 | ||
rindolf: any further questions? :) | |||
rindolf | lichtkind: OK, where do I get it from? | ||
lichtkind | all the good bugfixes are in the latest packages | 14:36 | |
i have a special site for it | |||
web52.xeon225.server4you.de | |||
but it containes win binaries for all the stuff | |||
shoul i strip the sources? | 14:37 | ||
mom | 14:40 | ||
im uploading | 14:41 | ||
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 | ||
14:44
aukjan is now known as aukjan|gone
|
|||
lichtkind | thats the still unproffessional part :) | 14:44 | |
14:45
fglock joined
|
|||
rindolf | lichtkind: web52.xeon225.server4you.de/nightly...17-src.exe gives me "Object not found!" | 14:46 | |
lambdabot | tinyurl.com/2awzwq | ||
lichtkind | momi see mom | ||
fixed stupid fault | 14:48 | ||
please write me your feedback [email@hidden.address] | |||
14:50
buetow joined
|
|||
moritz_ | is there a p6 equivalent to Data::Dumper? | 14:54 | |
broquaint | ?eval [<I think so>].perl | 14:55 | |
14:55
evalbot_r15703 is now known as evalbot_r15704
|
|||
evalbot_r15704 | "[\"I\", \"think\", \"so\"]" | 14:55 | |
moritz_ | broquaint++ thanks, that helps a lot | 14:56 | |
lichtkind | rindolf: let me know when i can help you | 14:57 | |
15:00
iblechbot joined
|
|||
ayrnieu | ?eval .perl for sub {} | 15:04 | |
evalbot_r15704 | undef | ||
ayrnieu | ?eval (sub {}) ==> map {.perl} # :-) | 15:05 | |
evalbot_r15704 | Error: ā¤Unexpected " map" | ||
15:06
vel joined
|
|||
moritz_ | ?eval my $f = sub { 1 }; $f.perl | 15:06 | |
evalbot_r15704 | "\\sub \{Syn \"block\" \{1}}" | ||
moritz_ | ayrnieu: empty blocks are not allowed any more iirc | 15:07 | |
ayrnieu | I see, that's pretty strange. | 15:09 | |
broquaint | ?eval { ... }.perl | 15:12 | |
evalbot_r15704 | "\{Syn \"block\" \{App \&fail_ (: \"... - not yet implemented\");\n Noop}}" | ||
broquaint | Sweet. | ||
moritz_ | ;) | ||
broquaint | I wonder why there's a Noop after that &fail. | 15:13 | |
moritz_ | maybe that's the '...'? | 15:14 | |
broquaint | The ... is &fail, I imagine it'll be a macro eventaully. | 15:16 | |
15:16
vel joined
|
|||
broquaint | It was an idle wonder, probably an artefact of development no doubt. | 15:16 | |
15:19
VanilleBert joined
|
|||
gaal | Noops are artefacts of mergeStmts, they don't mean much | 15:19 | |
they'll probably go away after move to newAST (after next release) | |||
broquaint | newAST? | 15:21 | |
svnbot6 | r15705 | moritz++ | 99problems/problem50.t implemted (huffman tree) | 15:26 | |
r15706 | audreyt++ | * Pugs.AST.Internals: Code cleanups (change PadEntry | 15:29 | ||
r15706 | audreyt++ | to use newVal-style constructor names, etc.) | |||
r15706 | audreyt++ | Add an EntryFlags field to Sym and PadEntry for | |||
r15706 | audreyt++ | annotations on pad entries; currently only "is context". | |||
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 | ||
we're transitioning into new versions of both structures | |||
svnbot6 | r15708 | audreyt++ | * Pugs.Types: Cache VarCateg<->ByteString mappings to speed | ||
r15708 | audreyt++ | up show/read speed; also make (Show Var) go through ByteString. | |||
gaal | the new Val structure will make it to this release, and new AST to the next. | ||
broquaint | Groovy. | 15:31 | |
svnbot6 | r15709 | audreyt++ | * Pugs.Parser: Proper support for "is context": | 15:33 | |
r15709 | audreyt++ | my ($x is context, $y); # now works | |||
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. | ||
r15710 | audreyt++ | This concludes the contextual-declarations batch. | |||
integral | Data.Map is O(log N) or something close to that | 15:38 | |
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? | ||
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. | ||
svnbot6 | r15711 | moritz++ | 99problems/problem61.t: count and collect leaves | 15:42 | |
r15712 | moritz++ | problem62.t implemented (collect internal leaves and leaves at specified | 16:02 | ||
r15712 | moritz++ | height) | |||
moritz_ | only 36 problems left ;) | 16:03 | |
TimToady | moritz++ gabriel++ | ||
audreyt | TimToady: .assuming(Routine,1) then? | 16:05 | |
lambdabot | audreyt: You have 2 new messages. '/msg lambdabot @messages' to read them. | ||
specbot6 | r14345 | larry++ | Clarify that caller is not guaranteed to return a Routine context. | ||
r14345 | larry++ | Minor refactoring of context/caller section to avoid forward ref. | |||
16:06
fglock joined
|
|||
audreyt | our %vtable; sub gen { %vtable = (k => { ...caller()... }) }; gen(); %vtable<k>(); | 16:06 | |
in that case &?ROUTINE is never in dynscope | |||
geoffb: symbol table access will be O(1) after the Pad-refactoring, which should land soon (like, this weekend) | 16:08 | ||
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
|
|||
TimToady | audreyt: but caller(Routine,1) will not dwtm in a displaced closure block either. | 16:12 | |
Debolaz | "do what timtoady mean"? | ||
audreyt | TimToady: point. | ||
TimToady | do what "they" mean | ||
Debolaz | Ah. :) | ||
TimToady | would have to be context(&?BLOCK,1) for that | ||
audreyt | what we really want is | 16:13 | |
TimToady | which is precisely the interpretation we're trying to avoid for non-displaced blocks | ||
so that control flow blocks aren't thought of as closures unless you need to | |||
so if they want that, the probably just write "sub {...caller...}" | 16:14 | ||
audreyt | context({ .routine != &?ROUTINE }) | ||
which seems to dwim more than either of the two | 16:15 | ||
TimToady | that doesn't make sense | ||
audreyt | mm? "nearest call frame that is in a different routine than the site of &caller" | 16:16 | |
TimToady | !===, you mean | ||
devbot6 | TimToady: Error: "===," is not a valid command. | ||
audreyt | sure | ||
TimToady | I guess I don't mean that, devbot6. :) | ||
lichtkind | audreyt wow i thought you wanted sleep | 16:17 | |
audreyt | I did (still do) | ||
TimToady | but other than that, yes, that might work | ||
lichtkind | so i speak with audrey subconsciousness | 16:18 | |
impressive | |||
audreyt | TimToady: woot. do you have cycles to whack it in? | ||
TimToady | sure | ||
audreyt | TimToady++ | ||
fglock | just checking - <alpha> does a named capture, but <alpha+digit> doesn't ? | 16:21 | |
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:22 | |
audreyt | or macro :) | 16:23 | |
plus, that was still wrong... context({ .routine !=== &?ROUTINE }) doesn't handle recursion. | |||
the problem is the frame object should distinguish between "entering an inner block" | |||
TimToady | probably need to provide both | ||
audreyt | and "all other kind of calls" | ||
for this to natively work | 16:24 | ||
for | |||
TimToady | "carpcaller" | ||
audreyt | sub f { { die 1 } } | ||
sub f { { die 1 }() } | |||
are different; the first "die 1"'s caller is the one calling f; the second one is simply &f | 16:25 | ||
(if the second one look contrived, consider a vtable indirection, etc) | |||
(pugs's evaluator stores this info (enterBlock vs apply), which is why we can provide consistent &caller) | 16:26 | ||
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 | ||
right. | |||
TimToady | how to name it, then? | 16:28 | |
audreyt | context({ !.inline }) ;) | ||
TimToady | not good enough | ||
16:28
vel joined
|
|||
TimToady | you could be called from a context that thinks it's inline | 16:28 | |
audreyt | context({!.inline},1) | ||
TimToady | might work | 16:29 | |
audreyt | true that | ||
the .inline info is populated by the evaluator | |||
TimToady | plus it still doesn't do what the user expects on custom control vs &?ROUTINE, I think | 16:30 | |
16:30
the_dormant joined
|
|||
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 | |
thought about that; I think the answer is that custom control are expected to always use .callswith | |||
TimToady | not apply | 16:31 | |
audreyt | or some other frame-upto-caller erasure trick | ||
TimToady | ok | ||
audreyt | should talk about that in spec too | ||
macros of course by definition fix all this | |||
so that's another way out for customcontrol writers | |||
TimToady | </handwave> | ||
gaal | rhi | ||
audreyt | er no, I mean a macro's dyncontext is naturally separated | ||
gaal | oi, kyboar ropping hars again... | ||
audreyt | so if you write statement:for as a macro, it doesn't even have a frame at runtime | 16:32 | |
but yeah, a non-macro control structure should always use .callwith etc, which by definition erases frames upto caller | |||
TimToady | so a tail-recursed caller is always outside the recursing func? | 16:33 | |
(or however you're supposed to say that...) | |||
audreyt | (...recursively...) | 16:34 | |
gaal | rerehi with an E | ||
TimToady | you can say that again... | ||
audreyt | tail recursion optimization, if present, by definition erases frames | 16:35 | |
so either require implementations still provide CONTEXT info | |||
or explicitly say it's okay to not provide consistent context info, in exchange for speed, and pretend we're scheme (etc) | |||
(option 1 is saner imho.) | 16:36 | ||
TimToady | but it would be nice to run fast | 16:37 | |
audreyt | then you say &?SUB.callwith | ||
we don't have a form that explicitly say callwith-then-return? | |||
pugs had &?SUB.goto for that (noncanonical) | |||
that we can unroll happily | 16:38 | ||
(as can &?SUB.callwith with more work) | |||
TimToady | nextwith is the new gotowith | ||
audreyt | ahh ok | 16:39 | |
[particle] | is nextto the new goto? | ||
16:39
jisom joined
|
|||
audreyt | so yes. nextwith is the way if you really want fast tail call | 16:39 | |
and you are not limited to tail position then | 16:40 | ||
so more general | |||
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..*]) ? | ||
audreyt | yeah. | ||
how do we invoke a method with callwith? | |||
say I want to callwith $obj.meth(1) | |||
moritz_ | gaal: zip them first, then iterate? | ||
gaal | was that yeah to me or to TimToady? :) | 16:43 | |
TimToady | each is non-spec | 16:44 | |
gaal | oh | ||
so for (zip @x, @y).kv -> [$x, $y], $i { ... } ? | |||
TimToady | &method.callwith(|\($obj: 1,2,3)) perhaps | ||
audreyt | two invocants | 16:45 | |
$obj.can('meth').callwith(1,2,3) | |||
is one way to do it | |||
(assume a precurrying .can in Code context) | |||
TimToady | zip is now supposed to return flattened by default like each used to | 16:46 | |
audreyt | in perl5 I often wondered why .can does not precurry :) | 16:47 | |
gaal | TimToady: thanks | ||
audreyt | if (my $f = $obj->can('meth')) { $f->($obj, 1, 2, 3) } # $obj is duplicated | ||
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 | ||
audreyt | sure it ought | 16:50 | |
$obj.can('meth').assuming($obj:).callwith(1,2,3) | |||
I don't know. maybe it's huffmanly correct. | |||
"if you really want to..." | |||
TimToady | well, it's a normal thing for a dispatcher to want to do | 16:51 | |
audreyt | and why punish oo dispatchers :) | ||
TimToady | to prevent people from writing their own, hopefully? | ||
audreyt | ok :) | 16:52 | |
(and .assuming is a fine way to do it; I'm content) | |||
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
|
|||
TimToady | it's not just adding defaults | 16:54 | |
it's rewriting the sig | |||
gaal | nod, hmm you're right of course | 16:55 | |
TimToady | if you assume the invocant you just have a sub call | ||
gaal | what about mmd? | 16:56 | |
orthogonal to sub/method.. riht | |||
^ih^igh | |||
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_
|
|||
gaal | audreyt: :($x, $y) :+: :($z, $y) == ? this is lossy: :($, $, :$x, :$y, :$z) | 17:02 | |
because we didn't fix the second name to "$y" | |||
audreyt | but lossy is okay (agrees with prop) | ||
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 | ||
lichtkind | TimToady have you decided if there will be an for {} else {}? | 17:04 | |
17:05
gnuvince left
|
|||
TimToady | lichtkind: there will not | 17:13 | |
lichtkind | a decicion by intiotion or by logic? | ||
intuition | 17:14 | ||
TimToady | as usual, a mixture of both | ||
gaal | intuitionist logic? | ||
audreyt | sounds very constructive | ||
gaal | it's not not constructive | 17:15 | |
audreyt | rofl | ||
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 | ||
audreyt | "let a thosand languages boom" | ||
er, bloom. | |||
TimToady | boom works | ||
lichtkind | haha | 17:17 | |
gaal | a boom is a good start. of course, you need a mast, a sail, a hull, halyards... | ||
lichtkind | Mao-- | ||
gaal | and then a good breeze | ||
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 | ||
TimToady | it does point up something missing, though | 17:19 | |
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 | ||
using gather/take to return one item is kind of overkill | |||
and it would make Loop.leave($final) work correctly | 17:21 | ||
svnbot6 | r15713 | audreyt++ | more unTODO | ||
17:22
kanru joined
|
|||
gaal goes back to making this algo scud & | 17:22 | ||
svnbot6 | r15714 | audreyt++ | * &code.goto is now &code.nextwith. | 17:24 | |
r15715 | audreyt++ | * Change everything from .goto to .nextwith. | 17:27 | ||
17:27
pjcj joined
|
|||
TimToady | well, some of them my be .nextsame instead | 17:28 | |
17:29
weinig_ is now known as weinig
|
|||
gaal | what does C<when> without a C<given> break out from when it fires? nearest enclosing block? | 17:30 | |
17:31
Schwern joined
|
|||
gaal | nearest topicalizer? | 17:31 | |
17:32
Southen joined
17:33
vel joined
|
|||
svnbot6 | r15716 | fglock++ | PCR - refactored complex character set emitter into a submodule | 17:36 | |
audreyt | gaal: the nearest &return frame, currently, in pugs | 17:38 | |
gaal | okay, ended up using given anyhow... | 17:39 | |
if I run a closure in a when, can I bind lexicals there? when { $name = $xp ~name~ $yp } { ... mention $name here } | 17:40 | ||
er, my $name, in the when | |||
(well, I guess I can always declare it in larger scope...) | 17:41 | ||
audreyt | aye. | ||
TimToady | currently specced to break only out of the surrounding block | 17:44 | |
there is not really any "topicalizer" category for blocks | |||
gaal | TimToady: so given { { when .... } } is a bug? | 17:45 | |
17:45
andara left
|
|||
TimToady | S04:561 | 17:45 | |
audreyt | but oh wait! | ||
gaal | audreyt: :($x) :+: :(@x) = fail incompat? | ||
audreyt | sorry. the nearest dynamic frame. | 17:46 | |
which is like, surrounding block. | |||
(implemented this way too; I misparsed the tryout code) | |||
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
|
|||
evalbot_r15716 | Error: ā¤Unexpected "die"ā¤expecting operator or "}" | 17:47 | |
audreyt | ?eval sub f { { default { 1 }; die "1" }; die "2" }; f() | ||
evalbot_r15716 | Error: 2 | ||
audreyt | there we go. | ||
17:48
justatheory joined
|
|||
TimToady | Tempting to force Label.when to work, or somehow tag $_ with the topicalizer label | 17:48 | |
(if there is one) | |||
but I think that would likely be insane | 17:49 | ||
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 | ||
audreyt | gaal: correct. | ||
gaal: mismatching sigils is okay if one is $ | 17:52 | ||
TimToady | why not just unify to $ anyway? | ||
audreyt | even % against @ can be satisfied by something that does both | ||
well, @ against @ should unify constraint | |||
(Array) | |||
17:52
bernhard joined
|
|||
audreyt | and %/@ should unify to Array|Hash (etc) | 17:52 | |
but yeah, can always just unify to $ | |||
17:53
as joined
|
|||
audreyt | again, too lax not really a problem, except that we don't probably sufficient context, except htat's okay | 17:53 | |
*propagate | |||
TimToady | I wonder if "hyper" is a variant of "eager" that allows parallel execution | 17:54 | |
gaal | addactive | 17:55 | |
TimToady | @foo = hyper map { ... }. @bar | ||
lambdabot | Maybe you meant: faq ft todo yow | ||
TimToady | maybe I didn't | ||
lambdabot needs a "Perl spam" filter | 17:56 | ||
moritz_ | ;) | ||
gaal | so I'm not clear on this. $ <> non-$, leave $? positional trace and add named | ||
? | |||
that might bork things though | |||
you can't really change the arity, or leave holes in the required part | |||
this is mad :) | 17:57 | ||
eg :($x, $y, $z) :+: :(@x, $y, $z) | |||
TimToady | indeed, which is why we allow people to specify explicit protos. :) | 17:58 | |
"Warning: your prototype is not yet in 42nd Normal Form" :) | 17:59 | ||
gaal | "Warning: the following error message may be disturbing: ..." | ||
brb | |||
audreyt | gaal: no, always unify to $ | 18:00 | |
:($x, $y, $z) | |||
is correct | |||
since @x is just | |||
Array $ | |||
in disguise | |||
lichtkind | TimToady are there any rules that are derived from snobol? | 18:01 | |
audreyt sleeps :) & | 18:02 | ||
lichtkind | gute nacht | ||
18:03
xerox joined
18:04
forsaken joined
18:05
awwaiid joined
|
|||
obra | seen agentzh | 18:08 | |
TimToady | lichtkind: nothing directly, except the general notion that failure should be specified toward the right margin rather than the left. | 18:09 | |
18:10
cognominal left
|
|||
lichtkind | ah cool honestly this questionen come from a friend who likes old languages i didnt know that even snobol exist | 18:11 | |
18:11
cognominal joined
|
|||
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
|
|||
lichtkind | i think snobol hadnt this kind of community | 18:12 | |
araujo | does that even have a community? | 18:14 | |
araujo hides | 18:15 | ||
lichtkind | ahh why be so shy | ||
TimToady did you talk about the perl6 ex regex rules or general perl6 rules? | |||
i ment the first | |||
svnbot6 | r15717 | fglock++ | PCR - more refactorings (causes some new failures in t/regex) | ||
18:23
weinig is now known as weinig|bbl
|
|||
gaal | oh, that makes sense :) | 18:23 | |
18:25
vel joined
|
|||
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". | ||
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:31 | |
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 | |
18:32
cognominal joined
|
|||
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:34 | |
TimToady | all hypers are explicitly parallel | 18:35 | |
so I think that's what you want | |||
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 | |
18:36
mdiep joined
|
|||
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. | ||
TimToady++ | |||
TimToady | that's the intent | ||
most of S09 is explained by the desire to make PDLers insanely happy. | |||
geoffb | (Mind you, I expect it will be a little while before someone makes an expression optimizer that DTFT nearly always) | 18:38 | |
nodnod | |||
18:40
vel joined
|
|||
TimToady | that's -> $n { @b[$n] * @c[$n] + @d[$n] * @e[$n] } in P6 autoindex notation | 18:41 | |
but I see I should remark about the parallizability of that. | |||
s/ll/llel/ | 18:42 | ||
lichtkind | TimToady thanksfor answering even weird question | ||
TimToady | as long as you don't mind weird answers occasionally. :) | 18:45 | |
gaal | "p15y" | 18:48 | |
specbot6 | r14348 | larry++ | autoindexing should assume parallelizability (that's a hard word to type) | 18:49 | |
lichtkind | hehe | 18:50 | |
18:50
silug joined
|
|||
[particle] | p11bility | 18:50 | |
gaal | p14ity | 18:51 | |
moritz_ | p16y | ||
TimToady | such a p1ty | ||
gaal | p.*y | 18:52 | |
fglock | concurrency ? | 18:53 | |
gaal | (wc -c users, deduct one for newline) | ||
fglock: conc potential | |||
18:55
mdiep joined
|
|||
specbot6 | r14349 | larry++ | Clarify adverbial use where infix expected. | 19:16 | |
TimToady | hmm, is anyone else receiving spec updates on p6l? | 19:17 | |
geoffb | yes | ||
19:19
vel joined
|
|||
TimToady | in the last 12 hours? | 19:27 | |
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... | ||
Arathorn | me too, fwiw | ||
(in terms of getting p6l posts) | 19:29 | ||
geoffb | (OT) Anyone here with screen(1) fu? | ||
TimToady | a little | ||
tene | geoffb: a little. what's up? | ||
19:30
ozo_ joined
|
|||
geoffb | Is it possible to get screen to split the window vertically, rather than horizontally? | 19:30 | |
tene | geoffb: No. | ||
geoffb | bah, humbug | ||
(programs not yet aware of widescreen displays)-- | |||
19:30
nxu7-wrk joined
|
|||
wolverian | try ratpoison | 19:31 | |
ajs_ | geoffb ... emacs will do that. | ||
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 | ||
offby1 | does any sane person run "screen" inside emacs?! | 19:33 | |
geoffb looks up ratpoison | |||
ajs_ | I do | ||
offby1, yes | |||
TimToady | I'm just a poor Warfarin stranger... | 19:34 | |
offby1 slaps TimToady upside the haid | |||
man, that one really hurt | |||
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? | ||
svnbot6 | r15718 | fglock++ | PCR - finished char sets; added more tests | ||
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 | ||
Mind you, I'm the kind of whackjob that runs vi inside of emacs terminal emulation too | 19:37 | ||
offby1 | :-) | 19:38 | |
I didn't say it, you did | |||
19:39
particleS joined
|
|||
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 | |
19:39
particleS is now known as |particle|
19:40
|particle| is now known as [particle]
|
|||
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. | ||
TimToady | maybe the perl6-all alias is hosed somehow... | 19:42 | |
except then why would I be getting p6c okay? | |||
moritz_ | Unexpected "$expected"<-- nice error message ;) | ||
TimToady | the logs show nothing coming in for p6l, so it's not making it to my machine | ||
geoffb | Maybe p6-all is hosed in the sense of "resending the wrong list of child lists" | 19:43 | |
I dunno how p6-all was created (whether it is a subscriber/forwarder from the other lists, or some special thing in the MLM) | |||
TimToady | maybe... or perhaps some friendly ISP is removing it as "spam" | 19:44 | |
for too many $ signs, no doubt. :) | |||
svnbot6 | r15719 | fglock++ | PCR - closed several TODO | ||
geoffb | heh | 19:45 | |
[particle] | maybe somebody accidentally shifted @Larry | ||
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. :/ | ||
moritz_ | ;) | ||
geoffb | (clearly optimizing for the wrong people's filters ... this technique gets them exactly the people most likely to be pissed off) | ||
heh | 19:47 | ||
[particle] | more likely it's text they have readily at hand | ||
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... | ||
geoffb | LOL | ||
19:48
justatheory joined
19:51
prly joined
|
|||
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
|
|||
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 .... | 19:59 | |
fglock | geoffb: Pugs and v6.pm share Pugs::Compiler::Rule (PCR) | 20:02 | |
geoffb | fglock: or, of course, point me to an URL ... | ||
fglock | Parrot uses PGE, which is written in Parrot | ||
20:02
devogon joined
|
|||
geoffb | ah, OK. | 20:02 | |
Anyone else work on PCR besides you? | |||
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
|
|||
fglock | hmm, not really | 20:03 | |
it is mostly usable, but there is a long TODO list | |||
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 | ||
kp6 is written in kp6 :) | |||
geoffb | gotcha about status | ||
What is wrong with pugs communication at present? | |||
fglock | kp6 is bootstrapped in perl5 | ||
but it could compile to parrot | 20:05 | ||
20:05
offby1` is now known as offby1
|
|||
[particle] | some work was started on that, but never finished | 20:05 | |
ayrnieu | where is kp6? | ||
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? | ||
fglock | re communication - it seems that variables inside regex aren't shared with haskell; needs some work to find out why | 20:06 | |
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? | ||
geoffb | fglock: ah | ||
fglock | sorry, I meant "mp6" - mp6 is the "how little is needed" version | ||
v6.pm == perl6-in-perl5 | |||
geoffb | See, even you get confused! | ||
:-) | |||
fglock | kp6 == more advanced version of mp6 | ||
20:07
Aankhen`` joined
|
|||
fglock | heh | 20:08 | |
ayrnieu | OK, where is mp6? | ||
fglock | v6/v6-MiniPerl6 | ||
geoffb | OK, so we currently have: kp6, mp6, v6.pm, Pugs, PGE. Does that about cover it? | ||
ayrnieu | no, PGE is just the rules engine. | ||
you want: languages/perl6 | |||
geoffb | Oy. OK, thanks ayrnieu | 20:09 | |
fglock | oh, we have about 4 or 5 rule engines actually | ||
geoffb | So kp6 -> kp6, mp6 -> ?, v6.pm -> PCR, Pugs -> PCR, l/p6 -> PGE ...? | ||
jebus | 20:10 | ||
No wonder I'm lost | |||
fglock | PCR itself has several internal engines, with different kinds of optimizations | ||
lets see.. | |||
[particle] | this merits visiolization | 20:11 | |
fglock | the main projects are Perl6/Haskell and Perl6/Parrot | ||
geoffb | [particle]: hell yes. | ||
20:11
vel joined
|
|||
fglock | these projects aim to a complete implementation of the spec | 20:11 | |
Perl6/Perl5 implements a reasonable subset of the language | 20:12 | ||
but it doesn't aim for completeness, because it would make it too slow/too complex | |||
geoffb | (I assume P6/P5 won't implement everything because ... oh, you beat me to it.) | ||
Making sense so far. | 20:13 | ||
fglock | then, there is Perl6-on-Perl6 | ||
ayrnieu | that being the ultimate, holy goal. | ||
fglock | there are several small pieces of p6-p6 all around | 20:14 | |
geoffb hears a choir sing .... | |||
20:14
cognominal joined
|
|||
fglock | TimToady's STD is a p6 grammar; pmichaud also did a p6 grammar; | 20:14 | |
PCR is partially written in p6 | 20:15 | ||
20:15
kunwon1 joined
|
|||
fglock | and mp6 implements a working (but limited) p6-on-p6 | 20:15 | |
moritz_ | this is partly confusing ;) | ||
geoffb | PCR is a P5 module written partially in P6? Using v6.pm? | ||
fglock | yes | ||
geoffb | wow, cool. OK, go on | ||
fglock | v6.pm was bootstrapped about an year ago, with a mini compiler named "lrep" | 20:16 | |
which is reverse-"perl" | |||
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) | ||
heh | |||
fglock | lrep was then split into PCR (the regex engine), and v6.pm (the perl6 compiler) | 20:17 | |
Pugs now uses PCR through a haskell-perl5 bridge | 20:18 | ||
geoffb | fglock: OK, I think I understand | ||
fglock | that's it for the main projects, but then we have many small projects | 20:19 | |
mp6 is a completely self-contained bootstrapped compiler | |||
geoffb | So why kp6 and mp6? Why were they not just improvements on v6? | ||
fglock | mp6 can theoretically be boottrapped in almost any vm/language | 20:20 | |
geoffb | "Supply these n primative ops, and you're set"? | ||
fglock | but the compiler internals are too simple for the necessary AST transformations that Parrot (for example) requires | 20:21 | |
yes | |||
geoffb | ah | ||
fglock | it is a more complex compiler, written in mp6 | 20:22 | |
s/^/kp6 / | |||
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? | ||
meppl | good night | ||
geoffb | g'night, meppl | ||
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 | ||
meppl | ;) | 20:25 | |
20:25
Schwern joined
|
|||
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? | ||
fglock | putter's implementation of a rule engine in ruby, and another one in perl5 | ||
geoffb | go putter | ||
svnbot6 | r15720 | moritz++ | 99problems/problem64.t implemented (tree alignment 1) | 20:26 | |
fglock | geoffb: re speed, yes | ||
geoffb | fglock: got it. | ||
geoffb is glad to have the choice, frankly. | |||
[particle] | use more <speed>; use more <features>; | 20:27 | |
geoffb | [particle]: 'xactly. | ||
fglock | kp6 would be *very* slow to compile itself; but mp6 does it very reasonably | ||
geoffb | cool | ||
So has anyone other than Pmichaud managed to target parrot as a back end yet? | 20:28 | ||
fglock | that's it, I guess :) | 20:29 | |
yes, Pugs can do it | |||
geoffb | And whatever happened to the JS backend? | ||
[particle] | there may be some bitrot on the pugs/parrot integration atm | ||
fglock | it's still there | ||
geoffb | Ah, the pugs -> parrot backend works? I always thought it was rotten | ||
[particle]: nodnod, that's what I thought | |||
fglock: maintained at all? | 20:30 | ||
fglock | it needs a lot of work | ||
geoffb | k | ||
fglock | for some value of "works" | ||
moritz_ | fglock: dW = Fdx | ||
fglock: that's my definition of work ;) | |||
fglock | hmm - I need a better irc client | ||
geoffb | ? | 20:31 | |
fglock | moritz_ is that "work" and "features"? | ||
moritz_ | fglock: that's just "work" ;) | 20:32 | |
differential work, to be exact ;) | |||
[particle] | an incremental unit of work is equal to a force applied to an incremental distance | ||
fglock | re kp6, there are several experiments there with p5, parrot, C | 20:33 | |
geoffb | fglock: OK, do tell ... | 20:34 | |
fglock | I think the most useful place to apply more work right now is TimToady's STD | ||
moritz_ | can pugs compile STD.pm right now? | ||
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 | ||
STD in pugs depends on PCR... | |||
geoffb | heh ... no pressure fglock | 20:36 | |
20:36
the_dormant joined
|
|||
[particle] | STD is *parseable* by pugs, with certain hacks | 20:37 | |
languages/perl6 can't parse it yet | |||
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? | ||
[particle] | ESPACETIMERIFT | 20:39 | |
geoffb | WORMHOLE EXTREME! *cough* sorry about that ... | 20:40 | |
20:41
lichtkind joined
20:42
cognominal joined
|
|||
fglock | the problem for PCR is not just parsing it, but being able to emit working code for some constructs | 20:44 | |
a hackathon for this would be nice :) | 20:46 | ||
20:48
ozo_ joined
|
|||
fglock | I wonder if porting PCR to pugs would make it easier to make progress | 20:48 | |
20:49
Caelum joined
|
|||
geoffb | fglock: porting in what sense? Rewriting it in full P6? | 21:01 | |
fglock | geoffb: yes; the parser is already in p6 | 21:08 | |
all it needs is an emitter that emits perl6 code. There are partially written emitters for perl6 and for haskell, even | 21:10 | ||
geoffb | wheee | 21:11 | |
21:12
ludan joined
|
|||
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:12 | ||
geoffb is free associating a lot today and clearly lacking sleep .... | 21:13 | ||
ludan | hi | ||
21:13
Schwern joined
|
|||
moritz_ | hi ludan ;) | 21:13 | |
geoffb: but sounds quite right ;) | |||
fglock | geoffb: yes, like that | ||
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 .... | ||
Maybe gravity is the ultimate test case. :-) | 21:15 | ||
moritz_ | ;) | ||
and "make smoke" is an earth quake ;) | |||
geoffb | LOL | ||
nice | |||
*foreman with arms akimbo* Hey buddy, which you mind taking your earthquakes elsewhere? We're trying to build something here .... | 21:16 | ||
21:22
offby1` joined
|
|||
fglock | home & | 21:23 | |
21:32
buetow joined,
stevan__ joined
21:36
ozo_ joined
|
|||
[particle] | svn.perl.org is down :( | 22:10 | |
moritz_ | ... speaking of earthquakes ;) | 22:14 | |
svnbot6 | r15721 | moritz++ | 99problems/problem65.t implemented (layout a binary tree (2)) | 22:18 | |
22:20
zald joined
22:33
cognominal joined
|
|||
moritz_ | prof.ti.bfh.ch/hew1/informatik3/prolog/p-99/ any ideas how to tackle P66? | 22:34 | |
22:54
Psyche^ joined
22:55
larsen_ joined
23:10
Psyche^ is now known as Patterner
23:19
offby1` is now known as offby1
23:20
cognominal joined
23:31
forsaken joined
|
|||
svnbot6 | r15722 | moritz++ | problem67.t: implementation of first bit | 23:54 |