pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, smop: etc.) || We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/ Set by TimToady on 25 January 2008. |
|||
00:08
ludan joined
00:10
ikeda left,
literal left
00:12
panpot left
00:26
ikeda joined
00:34
alester_ joined,
ikeda left
00:39
blindfish left
00:42
jeffreykegler joined
00:49
Limbic_Region joined
00:50
literal joined
00:59
peepsalot left
01:02
wknight8111 left
01:07
ikeda joined
01:08
devogon_ left
01:13
Alias_ joined
01:14
jeffreykegler left
01:15
justatheory left
01:29
justatheory joined
01:32
BinGOs left
01:33
justatheory left
01:34
mncharity joined
01:37
alester_ left,
BinGOs joined
01:42
BinGOs left
01:44
BinGOs joined
01:55
BinGOs left
02:00
BinGOs joined
02:07
BinGOs left,
jferrero left,
BinGOs joined
02:12
BinGOs left
|
|||
mncharity | @tell ruoso My suggestion is to modify the say .frame to a new say .debug, strip the "$frame = q:sm0p {...}" input into something smaller (like no <nodes>), get it working, and then incrementally expand the input and debug rule until it's real and working. But perhaps | 02:12 | |
lambdabot | Consider it noted. | ||
mncharity | kp6 has a trace tool? I thought I saw something go by in a blog once? If so, you could try that. Otherwise, it's the usual, make it simple, make it work, and then ramp up the complexity, keeping it working. Debugging backwards from failure, without tools, can be hard. | 02:14 | |
putting a Data::Dumper at the end of KP6sm0p.pl, instead of the say, gives you a tree... but it's quite large, and I'm unclear on how to interpret it (or whether that would reveal anything useful). | 02:16 | ||
If it remains a problem, let me know, and I can take another pass at it. But my approach would likely be as above. | 02:18 | ||
Hmm, though the other thing todo is to take the input, and mentally run it against the grammar, looking for typos or mistakes in the grammar. | |||
pasteling | "mncharity" at 76.24.29.201 pasted "The failing input" (5 lines, 102B) at sial.org/pbot/30469 | 02:19 | |
mncharity | The grammar: dev.pugscode.org/browser/v6/smop/sm...?rev=20083 frame is invoked by main at bottom. | ||
lambdabot | Title: /v6/smop/sm0p/KP6sm0p.p6 - Pugs - Trac | 02:20 | |
mncharity | The resulting p5: dev.pugscode.org/browser/v6/smop/sm0p/KP6sm0p.pl | ||
lambdabot | Title: /v6/smop/sm0p/KP6sm0p.pl - Pugs - Trac | ||
mncharity | The Makefile dev.pugscode.org/browser/v6/smop/sr...?rev=20083 drives dev.pugscode.org/browser/v6/smop/sm...?rev=20087 against dev.pugscode.org/browser/v6/smop/te...?rev=20083 . | 02:23 | |
lambdabot | Title: /v6/smop/src/Makefile.am - Pugs - Trac | ||
mncharity | You can test by cat the_input | perl -I ./../v6-KindaPerl6/compiled/perl5-kp6-mp6/lib ./sm0p/KP6sm0p.pl while in v6/smop/ . | 02:24 | |
02:31
thoughtpolice left
02:32
ikeda left
02:33
ikeda joined,
ikeda left
|
|||
mncharity | Looking more at t/spec/, it seems it's really not design to be used for interpreter implementation. Well, at least based on a tiny number of samples. The rest of t/ may be better for that. Eg, t/spec/S29-array/splice.t requires 'array interpolation into strings' to be working. Which is fine for a Perl 6 spec. But not so great for implementation. | 02:38 | |
pugs t/ tried to avoid, at least sometimes, having tests break because something unrelated wasn't working. | |||
so pugs t/ might be better than t/spec for running against rakudo et al. | 02:39 | ||
02:44
eternaleye_ joined
02:54
wknight-away joined
02:56
Alias_ left
02:57
eternaleye left
|
|||
TimToady | mncharity: there is no canonical order of implementation. t/spec is ordered by synopsis, which will tend to reduce forward refs | 03:05 | |
however S29 is a bad example of that... | |||
it would be almost the last thing tested | |||
and array interpolation should probably be in about S02 | |||
and t/spec is still rudimentary because we've only just begun moving tests from random t directories into t/spec, and fudgifying as we go, which does much more to reduce implementation dependencies than trying to guess who does what yet... | 03:07 | ||
and putting on my language designer hat, I have little motive for making it easy for people to implement half the spec. :) | 03:10 | ||
I can see the argument for the other side, but I don't think it warrants a lot of extra mechanism just to get all the green bars before all the red bars | 03:11 | ||
03:45
ChanServ sets mode: +o diakopter,
diakopter sets mode: +o TimToady,
diakopter sets mode: -o diakopter
|
|||
mncharity | TimToady: oh, no, I don't disagree with t/spec being all-out p6. I just realized, trying to run redsix against it, that my running rakudo against it yesterday and finding lots of failures, should not have been at all surprising. | 03:47 | |
Arguably t/spec is better off with the property of everything needs to be working just right before you see tests pass. :) I was always surprised how much of the pugs t/ suite would pass, even on a runtime which you knew had very little implemented. | 03:48 | ||
My comment was intended more as, "apropos rakudo failing tests, and people perhaps spending time examining and changing that, the t/spec test failures may not have been as interesting as I assumed when I reported them. the kp6 and 't/ other than t/spec/' might, perhaps (I've little more then annecdotal data), be more helpful". | 03:52 | ||
or some such | |||
:) | 03:53 | ||
04:15
cmarcelo joined
04:17
ikeda joined
04:18
ikeda left
04:19
RayMagini left
04:20
ikeda joined
04:22
RayMagini joined
04:24
cmarcelo left
04:30
Alias_ joined
|
|||
pugs_svnbot | r20088 | putter++ | [redsix] Add ast dumping in various formats. | 04:34 | |
diff: dev.pugscode.org/changeset/20088 | |||
lambdabot | Title: Changeset 20088 - Pugs - Trac | ||
04:34
ikeda left,
Limbic_Region left
|
|||
mncharity | And what some of them suggest about the quality of the redsix parse trees... doesn't give me warm fuzzies. :/ | 04:35 | |
04:38
ikeda joined
|
|||
mncharity | () evaluate quality of redsix parses; () help TT make progress on STD; () me push STD?; () combine STD_red with redsix's OPP; () look to rakudo ast dumps; ()...? | 04:39 | |
04:40
ikeda left
|
|||
mncharity | s/quality/quality and usability/; part of the problem is misparses, and part being currently too tied to the implementation. | 04:41 | |
TimToady: re STD.pm, I've been unclear on STD.pm project status for a couple of days. If there is anything I can do to help, make the work more interesting, whatever, please do let me know. | 04:42 | ||
04:43
ikeda joined
|
|||
mncharity | The rakudo ast is rather more correct for my few oo decl spot checks. | 04:48 | |
+ () write a scraper for the --target-parse dump format. | 04:49 | ||
04:54
ikeda left
04:55
FurnaceBoy joined
|
|||
mncharity | get a feel for why rakudo is parse failing on kp6; check --target=parse against other random p6 which resembles intended use (simple oo). if/when ok, (--target=parse -> scraper | --target=parse-yaml) -> write ast_rakudo support -> emit bare p5 -> demo project. | 04:56 | |
if there is a body of p6 somewhere which rakudo parses, it might be easier to derive the schema from it's combined parse trees, rather than pulling it from a grammar? | 04:59 | ||
end of day. good night all & | |||
04:59
mncharity left
05:04
Alias_ left
|
|||
meppl | good night | 05:33 | |
05:34
meppl left
05:45
kanru left
05:57
wknight-away left
06:06
kst` joined
06:07
kst left
06:18
Alias_ joined
06:19
ikeda joined
06:23
ikeda left
06:26
araujo left
06:27
bockmabe left,
bockmabe joined
06:29
wknight-away joined
06:30
devogon joined
06:33
dmq joined
06:48
FurnaceBoy left
07:25
wknight-away left
07:36
eternaleye_ left
07:40
Aankhen`` joined
07:41
BinGOs joined
08:00
meppl joined
08:01
kanru joined
08:12
kst` left
08:19
c9s_ is now known as c9s
08:23
meppl left
08:41
meppl joined
08:47
literal left
08:50
pmurias joined
|
|||
pmurias | @tell mncharity there was a tracer for PCR: pugs.blogs.com/pugs/2007/10/a-graphical-tra.html | 08:51 | |
lambdabot | Consider it noted. | ||
08:51
pmurias left
08:57
blindfish joined
09:08
devogon left,
devogon joined
09:14
xinming_ left,
xinming joined,
iblechbot joined
09:15
meppl left
09:17
barney joined
09:26
meppl joined
09:50
marmic left
09:59
marmic joined
10:14
barney left
10:59
chris2 joined
11:25
jferrero joined
11:48
simcop2387 left
11:51
simcop2387 joined
12:12
silug_ left
12:28
pmurias joined,
pmurias left
13:46
rindolf joined
14:03
rhr left
14:07
rhr joined
14:11
silug_ joined,
wknight-away joined
14:24
IllvilJa left
14:39
alester_ joined
14:55
iblechbot left
15:09
alester_ left
15:30
rindolf left
15:54
Aankhen`` left
15:55
blindfish left
15:58
Aankhen`` joined
16:10
apple-gunkies joined
16:19
mncharity joined
|
|||
mncharity | Does perl5 have a literary programing tool, which permits () code to be written out of order, and then reshuffled; () direct execution anyway; () code to also appear in the doc; ? 'code to be written out of order' is a 'must have', the others not. | 16:23 | |
lambdabot | mncharity: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
mncharity | pmurias: Thanks! Preetttyyyy. agentzh.org/misc/tracer/digits/index.html | 16:25 | |
lambdabot | Title: Test | ||
mncharity | Me thinks that deserves its own directory and to become a tool. | ||
re literary programing, oh, and () permits generative programming of code. 'must have'. :( I guess that means roll something new.(?) But I'd still be interested in any pointers with the other requirements. | 16:27 | ||
The mentioned search.cpan.org/~adamk/PPI-Tester-0.06/ looks interesting too. | 16:28 | ||
lambdabot | Title: Adam Kennedy / PPI-Tester-0.06 - search.cpan.org | ||
mncharity | Oh, the root of the tracer discussion was pugs.blogs.com/pugs/2007/10/a-graphical-tra.html . | 16:29 | |
lambdabot | Title: Pugs: A graphical tracer for Perl 6 regexes based on PCR | ||
mncharity | sigh, and "Me thinks that deserves its own directory and to become a tool." referred to a the tracer, not the literary programming. | ||
two confusingly interleaved threads | 16:30 | ||
www.perlfoundation.org/perl5/index....ves_to_pod | 16:36 | ||
lambdabot | Title: POD / Perl 5 Wiki, tinyurl.com/2kfbng | ||
16:37
sordith_ joined,
kanru left
|
|||
mncharity | search.cpan.org/dist/Perl6-Perldoc/...Perldoc.pm | 16:38 | |
lambdabot | Title: Perl6::Perldoc - Use Perl 6 documentation in a Perl 5 program - search.cpan.org | ||
mncharity | but "This module does not make every Pod block available to the surrounding program, only the =DATA blocks. This is to avoid the unacceptably slow compilation speed that would result from attempting to fully parse the entire embedded Pod markup and then construct an internal representation of it." | ||
hmm, one could do a derivative with the opposite tradeoff... | 16:39 | ||
and looks like you could do a mutant pod parser in general. use Pod::Mutant; =begin code ... =end code ... | 16:46 | ||
16:53
sordith left
16:56
lichtkind joined
|
|||
lichtkind | does anybody know if the std-6.0.0.pm in pug s rep has there some function? | 17:02 | |
TimToady | it got renamed to STD.pm quite some time ago, so that's probably an old copy, or a derivative | 17:08 | |
what does svn status say? | |||
biab & | 17:10 | ||
17:10
TimToady left
17:26
TimToady joined
|
|||
TimToady | mncharity: if someone else wants to work on a literary dialect of p6, that's fine, but I tend to be more interested in mobile documentation than in mobile code. And it's certainly not on the critical path... | 17:36 | |
lichtkind | TimToady: wb, allright that std.pm but i wanted know if that file is just stored there or has actual purpose | 17:52 | |
17:52
Corion joined,
Corion left
|
|||
TimToady | are you asking if the standard Perl 6 grammar has a purpose? :) | 17:53 | |
17:53
iblechbot joined
|
|||
lichtkind | haha | 17:53 | |
TimToady: i asked if pugs uses the std.pm for any compilation purpose | 17:54 | ||
TimToady | no | ||
pugs development quit before std development started | |||
lichtkind | thats i wanted know and what i supposed that std is just doc in pugs svn | 17:55 | |
TimToady | I think you are confusing pugs the repository with pugs the program | ||
lichtkind | i currently write also update article some kind of current state of the perl 6 project so expect more weird questions | 17:56 | |
TimToady | there are many things in pugs repo that are neither doc nor used by pugs the program | ||
lichtkind | i know that inside pugs svn live lot things more | ||
cognominal_ | svn repos are petri dishes | ||
TimToady | STD.pm is intended to be executable code, not just doc... | 17:57 | |
lichtkind | but yesterday i saw a version o std in parrot svn so i wondered which role it playes here | ||
TimToady | no clue what it would be in parrot repo, or if it's even related | ||
what is its path? | |||
I don't see any such file in parrot repo | 17:59 | ||
18:01
lichtkind_ joined
|
|||
lichtkind_ | did i missed something? | 18:02 | |
mncharity | re petri dishes, :) | 18:03 | |
TimToady | lichtkind: probably, what did you last see? | 18:04 | |
(you can always check the irc logs to find out if you missed something.) | 18:05 | ||
lichtkind_ | that i said to you thats clear | ||
where are the logs? | |||
TimToady | irclog.perlgeek.de/perl6/today | ||
lambdabot | Title: IRC log for #perl6, 2008-03-08 | ||
TimToady | it's even close to you :) | ||
lichtkind_ | TimToady: thanks i missed your comment about parrot, in parrot svn in the rakudo dir is patricks version of std.pm and rakudo aktually uses it to parse perl | 18:07 | |
but it has differences so PGE can handle it | |||
TimToady | you must be looking at a file that is generated at run time | 18:09 | |
what does svn status say about that file? | |||
and there is no rakudo dir...it's name is still perl6... # confused... | 18:10 | ||
*its | |||
cognominal_ | I don't see any such file, the rakdudo grammar is languagues/perl6/src/parsser/{grammar.pg,grammar.oper.pg} and no std.pm is ever generated. | 18:11 | |
mncharity | re critical path, yeah, lost focus. confused even. some metaprogrammed p6 code, say prelude or p6rx_on_p5re, might be useful to help motivate work on the rakudo-ast->emit_bare_p5. but there is no need for literate programming's code fragmentation there. | 18:12 | |
hmm, no need for it even in STD_deconstruct, if it was approached very slightly differently. | |||
lichtkind_ | TimToady: yeah im talking about svn.perl.org/viewvc/parrot/trunk/la...iew=markup | 18:13 | |
lambdabot | Title: 1 [ 6 parrot 1 ] 1 34 View of /trunk/languages/perl6/src/parser/grammar.pg 30, tinyurl.com/2spl56 | ||
lichtkind_ | its hand written not parser generated | ||
but yes its under languages/per6 | |||
18:13
Psyche^ joined
|
|||
cognominal_ | lichtkind, you can see the various phase of postprocessing using --target=parse or past, or post, or pir. | 18:15 | |
18:16
lichtkind left
|
|||
TimToady | well, that's only about 137 revisions out of date... | 18:16 | |
(to be fair, parrot revisions, not grammar.pg revisions) | 18:17 | ||
that is the more recent version of the file, so that's okay | 18:18 | ||
it's kinda misleading that the url points to an older version of parrot | 18:19 | ||
sorry for the thinking the sky was falling... | 18:20 | ||
pugs_svnbot | r20089 | putter++ | misc/winter_jig/STD/STD_deconstructed.pl: simplified by removing a literary programming hack. A cute hack, but not needed here if the data is wrapped procedurally. | 18:23 | |
diff: dev.pugscode.org/changeset/20089 | |||
lambdabot | Title: Changeset 20089 - Pugs - Trac | ||
TimToady | mncharity: btw, speaking of STD_deconstructed, those categories that are rules rather than tokens are making me rethink how automatic whitespace should be handled in rules | 18:25 | |
18:25
sordith_ is now known as sordith
|
|||
mncharity | :) | 18:25 | |
TimToady | because the autolexer doesn't like leading ws | ||
which is why STD.pm currently has unspaces on those rules | 18:26 | ||
but I'm thinking a general policy would be better than having to backwhack those whitespaces | |||
mncharity | err, no :) because you are rethinking it, but :) because I hoped the different perspective provided by deconstructed might prove useful. | ||
18:26
wtgee joined
|
|||
TimToady | well, just the fact that you classified them that way reminded me that there was something bogus about using rules under LTM | 18:27 | |
mncharity | right | ||
TimToady | I don't know whether the right thing to say is | ||
that rules in general should ignore their first ws | |||
mncharity | hmm... there's an idea.... | 18:28 | |
TimToady | or that a protorule should automatically slurp <.ws> on behalf of its subrules | ||
well, we actually went back and forth about leading whitespace in ancient design meetings | |||
mncharity | what's the state of trailing ws? | ||
18:29
araujo joined
|
|||
TimToady | though the case in point at the time was rule {:foo bar} | 18:29 | |
and whether the whitespace after :foo was significant | |||
18:29
lichtkind_ is now known as lichtkind
|
|||
mncharity | is there any promise to leave trailing ws alone? | 18:29 | |
TimToady | at the moment all whitespace is significant, including trailing | ||
18:29
Patterner left,
Psyche^ is now known as Patterner
|
|||
TimToady | (except whitespace between an atom and its quantifier) | 18:30 | |
(well, and whitespace within other constructs like char classes...) | |||
mncharity | sigh. irc client eats another /.../ regex. | 18:31 | |
TimToady | in terms of LTM policy, the canonical thing is that all alternatives (including categoried alternatives) should have the ws eaten before they get there | ||
mncharity | /<a_rule>$/ ~~ "a " ? | ||
TimToady | er, that looks backwards | 18:32 | |
but $ is not going to work there | |||
unless <a_rule> matches the ws | 18:33 | ||
mncharity | ok | ||
one nice thing about 'rule doesn't imply leading whitespace is eaten', is in the "try lots of matchers against current string pos", all rul (regex/token/rule) would then behave the same. | 18:35 | ||
TimToady | hmm | 18:36 | |
mncharity | hmm. though it does make it different from the lexer/parser behavior. | ||
where the lexer is happy to discard all ws | |||
TimToady | implying that you could match postfixes and infixes in the same alternation. hmm... | ||
except we don't want to mix those anyway for recursive descent reasons | 18:37 | ||
since the postfix wants to attach to the term, and the infix doesn't | |||
question is there a use case otherwise... | |||
18:38
rindolf joined
|
|||
TimToady | maybe the proto rule is the right place to make that choice, if the default isn't right... | 18:39 | |
since a proto rule implies alternation | |||
whereas a standalone rule doesn't | |||
on the other hand, lots of standalone rules will have alt at their top level anyway | 18:40 | ||
and as you say, the standard lexer eats ws eagerly anyway | |||
so that should almost certainly be default behavior | |||
however | 18:41 | ||
we have to be careful | |||
18:41
justatheory joined
|
|||
TimToady | not to write any rules under <post> | 18:41 | |
if the top alternation autoslurped the ws | 18:42 | ||
so it still has to be attached to "ruleness" rather than LTMness | |||
18:43
zamolxes joined
|
|||
mncharity | if rule() is intended as a simple collection of regexp() modifiers, intended to match some user expectation or use case, then... | 18:44 | |
well, user expectation, if based on lex/yacc, would be both leading and trailing ws go away. | |||
TimToady | so it still comes down to the question of how a rule's skipping of leading ws can feed into LTM usefully | 18:45 | |
I think the LTM has to know itself whether it should call <.ws> before feeding the new pos into DFA engine | |||
and that info is propagated up from any rules that may be transitively the head of the match | 18:46 | ||
it's not simply passing \s* out as the head of the ltm regex | 18:47 | ||
mncharity | ok, but one can also consider it from another direction: "which will result in fewer person-years spent explaining it, and fewer person-years spent debugging due to misunderstanding it". I've no idea at present. | ||
TimToady | since <.ws> does line transition stuff | ||
mncharity | complementary perspectives, perhaps | ||
TimToady | I think if we factor <.ws> out to LTM for correctness, nobody will notice :) | 18:48 | |
so it won't have to be explained. :) | |||
mncharity | oh, I'm thinking S05-ish, "what is a rule()". | ||
perhaps I misunderstood the question? :) | |||
TimToady | the problem is this | 18:49 | |
as it currently stands, (or stood, before I installed backslashes in STD) | |||
statement_control:if would implicitly have a sigspace call to <ws> before the <sym> | 18:50 | ||
and the LTM factoring engine would see that and stop cold | |||
so there would be no token "if" in the LTM match | |||
and basically LTM would be useless on any call to <statement_control> | 18:51 | ||
which is madness | |||
so I install unpspace backslashes right after the opening curlies of those rules | |||
18:51
buchetc joined
|
|||
TimToady | assuming that whatever calls <statement_control> will eat the whitespace | 18:51 | |
which it probably will anyway | 18:52 | ||
but unspace feels hacky there | |||
rules should just behave right by default | |||
and I think if I factor out leading sigspace to the LTM | 18:53 | ||
it's just work as expected | |||
since LTM is, in some sense, just supposed to be an invisible optimization | |||
(except for the explicit non-orderedness of | alternatives vs ||) | 18:54 | ||
18:54
aindilis joined,
eternaleye_ joined
|
|||
TimToady | so basically LTM has to know if any of its alternatives would call .ws and call it before the dfa engine | 18:55 | |
mncharity | ah, ok | ||
TimToady | so that the dfa engine can usefully match /^if | ||
because dfa engine doesn't know how to call .ws correctly | |||
and can't, because .ws is officially a side-effectual subrule | 18:56 | ||
if there is a mix of tokens and rules in the alternatives, I don't think it hurts to call .ws before the tokens | 18:57 | ||
as long as the grammar handles whitespace dependencies with pure token alternatives | |||
(as STD does) | |||
mncharity | and if not? | ||
TimToady | the grammar breaks miserably :) | ||
mncharity | lol | 18:58 | |
TimToady | perhaps it will help if you can't mix rules underneath a proto token | ||
mncharity | the STD grammar, or LTM grammars in general? | ||
(re breaks) | |||
18:59
rindolf left
|
|||
TimToady | it would be easy to break a derivative of STD | 18:59 | |
token term:sym<myterm> { <naughty_rule> } would do it | |||
well, term wouldn't care | |||
mncharity | :/ | ||
TimToady | it's postfixes that care | 19:00 | |
but same idea | |||
on the other hand, they'd notice *very* quickly if they broke all postfixes :) | |||
perhaps there should be a token annotation that can be placed on <post> that it disallows subrules with leading .ws | 19:01 | ||
and that would catch it earlier | |||
mncharity | pondering 'just work as expected'... so /^<start_rule>$/ will in general not work, yes? it usually has to be /^<start_rule><ws>$/ ? | ||
TimToady | depends on how start_rule is written | 19:02 | |
mncharity | /^<Foo.start_rule><Foo.ws>$/ | ||
re how, how so? | |||
TimToady | if it's written rule start_rule { <stuff> } then it will eat ws both fore and aft | ||
mncharity | ahh, ok | ||
TimToady | the assumption is that anything written at the rule level can safely ignore all whitespace distinctions | 19:03 | |
mncharity | vs {<stuff>} vs {<stuff> } vs { <stuff>} | ||
TimToady | which is what bugs me about having to put \ in there | ||
which is isomorphic to {\ <stuff>\ } vs {\ <stuff> } vs { <stuff> } | 19:04 | ||
in any case, almost all rules will be written with leading ws | |||
(mostly unthinkingly, because of the basic assumption above) | 19:05 | ||
mncharity squints, decides he doesn't know what " " means. | |||
TimToady | so I think factoring .ws out to LTM is the right thing | ||
it's just an unspace, as defined in S02:217 | |||
mncharity | sounds plausible #re right thing | 19:06 | |
TimToady | it's not a literal space match, as it would be in old regex | ||
which is, by the way, a trap for the unwary | |||
mncharity | (got irclog.perlgeek.de/perl6/today, go to bottom, look for "S02:217" link, click...) | ||
lambdabot | Title: IRC log for #perl6, 2008-03-08 | ||
TimToady | so I imagine "\ " in a non-rule should always warn | 19:07 | |
mncharity | ah, ok | ||
TimToady | and direct user to write \x20 or some such | ||
or <sp> if we still have that :) | |||
except very often when people write a literal space match they should at least have written \s+ instead | 19:08 | ||
or \h+ | 19:09 | ||
so maybe <sp> is too conducive to bad programming | |||
and \x20 is appropriately ugly | |||
mncharity | oh, oops. I saw <sp> and thought "ah, \s+". | 19:10 | |
TimToady | the other problem with it, yes | ||
in which case you should be calling <ws> likely | |||
or just using sigspace | |||
mncharity | <' '> | ||
TimToady | yes, more readable (but longer) | 19:11 | |
well, actually, simply ' ' | |||
these days | |||
even ' '+ | |||
or " " if you like the heavier quotes | 19:12 | ||
mncharity | so the only advantage of <sp> over ' ' is you don't have to squint at it, wondering *which* invisible character is in there. | ||
19:12
rindolf joined
|
|||
mncharity | and whether those two ' are next to each other or not. | 19:13 | |
TimToady | hence, no pressing need for <sp> really | ||
and if you don't want to squint, \x20 | |||
particularly if the rest of the expr is full of \xab already | |||
which most of the regex I see these days are | 19:14 | ||
since they're scaning for viruses and such :) | |||
(at $dayjob) | |||
mncharity | sigh :) | ||
TimToady | so <sp> dies, or remains unded, or something | 19:15 | |
mncharity | unicode... it's not just a format, it's a vector... | ||
TimToady | token sp { ' ' } # not an arduous workaround | ||
I think I'm kinda liking this language :) | 19:16 | ||
mncharity | it's been interesting to watch ruby do unicode. apparently unicode isn't quite adequate for Japanese, so ruby makes a point of supporting other systems. | ||
:) | |||
TimToady | unicode is perfectly adequate these days with plane 0/1 chars, but by now it's a political fight more than a technological :) | 19:17 | |
mncharity | whereas every other language I've noticed takes the "just do unicode" approach. | 19:18 | |
TimToady | well, there are still languages with horrific rendering problems | ||
mncharity | well, aside from languages (eg, prolog), which take the "we're too clueless to do anything" approach. | ||
TimToady | but those language users tend to blame themselves rather than unicode :) | ||
I mean human languages, not computer | 19:19 | ||
mncharity | re political, ah, ok. that's good. | ||
SamB | is there an official mapping between shift JIS and Unicode? | 19:20 | |
TimToady | I'm sure the Unicode consortium would say "yes" | ||
and I'm just as sure there are other people who would say "no" :) | |||
SamB | I didn't ask if it was adequate | 19:21 | |
TimToady | well, the definition of "official" (and "adequate") depends on which official you ask | ||
mncharity | groan | 19:22 | |
SamB | or do you mean some people would interpret that as meaning an official publication of the Unicode consortium, and others as meaning a JIS? | ||
TimToady | All character defining bodies did not automatically become subserviant to the Unicode consortium just because the Unicode folks might like to think so. :) | 19:23 | |
SamB | hmm. MS seems to say "no" | ||
support.microsoft.com/kb/170559 | |||
TimToady | yet another "standards" body... | ||
*subservient | |||
SamB | or at least to indicate that it isn't an adequate mapping... | 19:24 | |
TimToady | MS has also preferred to stay "on top of things" | ||
or maybe just "on top" | |||
SamB | were additional characters added to unicode since this? | 19:25 | |
mncharity | (re "on top of things", in an "if we undermine the city, and no one else can build, our building will be tallest" competitive disregard for public good sense) | 19:27 | |
TimToady | it would appear to me that they are ignoring all the plane 1 compatibility characters | ||
it would also appear to me that this is a case of more-than-one industrial variant of Shift-JIS, since they refer to NEC specifically | 19:28 | ||
NEC having the same relationship to legacy character sets that MS does. :) | 19:29 | ||
mncharity | I'm sort of wondering how long it will take for the "Web 2.0" community to realize, M$ is back, it destroyed "Web 2.0" the first time, and it's not clear its interest, character, or strength vs community are much different this time. | ||
ah, well, anyway... | 19:30 | ||
TimToady | in what sense did it destroy Web 2.0 the first time? | ||
mncharity | any other STD questions/issues? | ||
oh, re in what sense did it destroy Web 2.0 the first time?, | |||
TimToady | seems to me that Web 2.0 is already in the process of destroying itself :) | ||
re STD, well, just contiguous time and energy to work on it | 19:31 | ||
19:31
jferrero left
|
|||
TimToady | $dayjob and health have both been interfering | 19:31 | |
19:31
wtgee left
|
|||
SamB | when did plane 1 come out? | 19:31 | |
the KB article refers to something from 2000... | |||
19:31
jferrero joined
|
|||
TimToady | and these days I prioritize both of those rather highly | 19:31 | |
I thought it was dated 2004 or 5 | 19:32 | ||
for plane 1, before 2005 for sure | |||
SamB | APPLIES TO | ||
ā¢Microsoft Platform Software Development Kit-January 2000 Edition | |||
TimToady | maybe not before that, I don't remember | 19:33 | |
mostly the plane1 chars were added for names | |||
mncharity | it was very much not in MS interest for thin clients and a JS-based web to become an alternative to buying MS and MS apps. and by taking their usual (and explicit) approach of "our behavior with respect to the existence of, and conformance to, public standards, is strictly a question of what is in our competative interest", managed to | ||
19:33
justatheory left
|
|||
TimToady | but to the first approx, Web 2.0 doesn't need MS's blessing to survive at all | 19:34 | |
mncharity | sandbag the first push towards web-based apps by dominating the market, dissipating it by incompatibility, and then locking in the state by freezing their own development. | 19:35 | |
TimToady | except insofar as various companies prohibit use of, say, firefox | ||
which I doubt many companies do | |||
in fact, the very incompatibilities you mention are part of what pushes people to firefox/opera/etc | 19:36 | ||
so the MS tail can't really wag that dog | |||
BTW, I'm not opposed to MS making a decent living--I have at least two relatives who work for them :) | 19:37 | ||
19:38
chris2 left
|
|||
TimToady | and I think another company is taking over the mantle of Little Brother | 19:38 | |
whether they think they're doing Evil or not... | |||
mncharity | re blessing, firefox, I disagree. That was the argument the last time too. One can only have an ecology of web apps if one can actually, and easily, write code for one's target audience. If that target audience is so incompatibly fractured that you can't, well, you can't. Only thing different this time seems the possibility of a "rich uncle", eg Google, in whose interest it is | 19:39 | |
for the capability to exist, funding all the "compatibility libraries" cruft which last time never quite became usable enough to let people cope with incompatibilility. | 19:40 | ||
But it's not clear how viable a "compatibility library" approach is in the face of potential active MS opposition. Might be, but I'm not sure. | 19:41 | ||
TimToady | cross-platform JS is mostly a solved problem these days, according to the folks I talked to yesterday | 19:42 | |
and these were people who should know... | |||
mncharity | Right, because, to a first approximation, MS has "been away". Now their becoming active in the area again. | ||
*they're | 19:43 | ||
SamB | TimToady: it looks like the CJK assignments are in planes 0 and 2 so far... | 19:44 | |
mncharity | And their interest in cross-platform JS, and SVG, and video, and 3D, and everything else the web is growing towards, *not* being an open standard, has not clearly changed. | ||
TimToady | well, I'm not to worried. Web 2.0 interprets MS as damage and routes around it. :) | ||
*too | |||
mncharity | That's what was said last time too. :/ | 19:45 | |
19:45
eternaleye_ left,
ilogger2_ joined
19:46
pmurias joined
|
|||
TimToady | speaking of forward looking, I should finish enjoying my morning coffee if I want to get dressed before noon | 19:47 | |
biab & | |||
SamB | hmm, maybe the japanese just don't like the forms that the unicode consortium used? | ||
mncharity | could be. just saying "hey, I could do js and ajax in the mid 90's too. did. then MS started focusing on the area. made it infeasible. then they ceased to focus on it. eventually, after years when by, became feasible again. lots of folks who weren't there the first time celebrate, and think it's a sea change. then MS starts focusing on the area again...". | 19:49 | |
19:49
literal joined
|
|||
mncharity | not "Great Satan". just a company with a particular culture. one which values 'competative advantage' vs 'public good' higher than some, lower than others. which has been willing to leverage its wealth and os monopoly to preserve and extend that advantage. an advantage which has, at least in the past, been rooted in 'web 2.0' *not* existing. perhaps that interest will shift, but it's not clear. | 19:58 | |
20:00
smtms joined
|
|||
mncharity | Keeping Google Office working will never be a focus of IE development. ;) | 20:00 | |
TimToady | or vice versa... | 20:01 | |
spinclad | re ws, simplistic superficial comment: this working hard to keep from tripping over implicit ws gets me thinking of making explicit ws cheap: C<< < > >>; and part of me goes B<< eww! >> and part of me says I<< why not? >>. too much magic line-noise maybe. (more) | 20:02 | |
and not enough magic: it doesn't address problems of placing ws at boundaries of embedded rules... which may be the greater problem, until resolved | |||
(and i see you've touched on this while i was backlogging and composing this) | 20:03 | ||
mncharity | but if Google Office is standards compliant, then IE not supporting it takes the flavor of not supporting standards (or to quote Gates, "well, it depends what you mean by standards"). which hits the entire ecosystem. | 20:04 | |
TimToady | to be quite fair, I pay much less attention to standards than MS does. :) | 20:05 | |
spinclad: and < > is already take for < a b c > | |||
mncharity | :) and on that note, back to work | ||
spinclad | drat | ||
mncharity | which currently looks like trying to make exist a rakudo-parser -> ast -> simple transliterated p5 backend . | 20:06 | |
spinclad | 'Hi! I'm back in 2001 with another incompatible RFC!' | 20:09 | |
TimToady | most of 'em keep resurfacing from time to time :) | 20:10 | |
mncharity | bbiab | ||
TimToady | well, maybe not most, but some... | 20:11 | |
mncharity | Beyond parser ast's, we could really use an implementation neutral language ast. redsix has one, rakudo --target=past has another, pugs -Cyaml a third. and it's not clear any can be used by an implementation not tightly tied to that which generates them. their more compiler IR's than an abstract ASG. | 20:19 | |
*they're # again | |||
well, they *are* compiler IR's. :) it would just be nice to have an interchange format. | 20:20 | ||
TimToady | I've never really seen a good definition of what exactly Abstract Syntax is... | 20:21 | |
speaking as a linguist... | |||
if it merely means, "having forgotten details that you might regret not knowing later" | 20:22 | ||
then I don't think it's all that interesting... | |||
mncharity | bunch of nodes, a doc, a schema. :) | ||
TimToady | and in particular, I have an anti-interest in having to invent something like P5 madprops to get back to the original language for P6... | 20:23 | |
mncharity | --target=past has a "<symtable> => Hash { "$!" => Hash { "scope" => "lexical" },"$/" => Hash { "scope" => "lexical" },"$_" => Hash { "scope" => "lexical" } }" header, pugs a pugsian 'same idea but different'. redsix yet another. | ||
n implementations with n Var (or Variable) nodes, with n variations on what information is captured there, and what it is called. | 20:24 | ||
20:26
eternaleye joined
|
|||
mncharity | if macros are to work on anything beyond the code string or Match parse tree level, or for any kind of cross-implementation compiler work, there will need to be a standard. | 20:26 | |
standard(s) :) | |||
TimToady | I'm trying to devine what about the Match tree makes some subset of it unsuitable to be viewed as an AST... | 20:27 | |
*divine | 20:28 | ||
but maybe de-vine too | |||
and whether that just means our definition of Match trees is insufficinet | 20:29 | ||
*cient | |||
mncharity | ah, but at some point you want to start asking questions of it like what-are-your-free-variables? | ||
TimToady | fine, but now you're talking semantics, not syntax... | 20:30 | |
mncharity | ASG, abstract semantic graph. ;) | ||
TimToady | I do realize that there was a school of linguistics that overanalyzed semantics as if it were syntax, and that the leader of that school also had considerable influence on comp sci, but I was never that kind of linguist. :) | 20:32 | |
mncharity | Match tree -> Match tree you wished you had -> methods for talking about the Match tree in the vocabulary you would like -> and about neighboring nodes -> and about not-so-neighboring nodes but which bear on what you would like to talk to the node about -> ... | 20:35 | |
slippery slope | |||
TimToady | certainly, linguistics if full of 'em | 20:36 | |
don't get me started on morphophonemics... | 20:37 | ||
*is | |||
mncharity | if Match trees were magically blessed based on the rule which created them, so there wasn't an artificial border, then the transition would be from asking about its match hash captures, to asking about derived properties. | 20:38 | |
TimToady | well, that's essentially what all the --> coercions are in there for | 20:40 | |
mncharity | nah, that doesn't work. some captures are sufficiently close to what you want that they could keep being used forever. eg, the <statements> of a statementlist. | ||
TimToady | the "Match tree" is already abstract syntax | ||
mncharity | (nah was re my "f Match trees were magically blessed..."0 | 20:41 | |
at a minimum, the Match tree has artifacts of the parse which you probably don't care about once the parse has been accomplished. | 20:42 | ||
TimToady | if you look into the coerce functions implied by -->, you'll see (commented out for now) a mixin, which is a kind of blessing | ||
mncharity | in STD.pm? looking.... | ||
TimToady | ah, but now you're back to defining it merely as a forgetting | ||
look for but= | |||
and I am allergic to forgetting things after my MAD aversion therabpy | 20:43 | ||
*therapy, though I like the alternate spelling too... | 20:44 | ||
mncharity | re -->, it's not clear Autoincrement is the kind of node type one wants to have when writing a compiler. | ||
Methodcall is more like it | |||
TimToady | now you're just arguing granularity of types | ||
mncharity | I'm suggesting that the needs and focus and tradeoffs of writing a parser are sufficiently distinct than those for writing later parts of the pipeline, that it's not clear they should be coupled. | 20:45 | |
TimToady | but yes, the granularity desired by the OPP is not necessarily the same as that desired by an emitter | ||
mncharity | Eg, if you have a bunch of "these fields and methods are used at parse but not compile time, and these others visa versa. and similarly for methods. and the node types are massaged in between." then it's not clear what you've bought. except complexity. | 20:46 | |
TimToady | I'm mostly just kicking up a fuss about the term Abstract Syntax | 20:47 | |
mncharity | lol | ||
TimToady | I'm not against tree transformations... | ||
mncharity | ah, linguists. ;) | ||
yeah, "AST" gets abused, for want of a good rich vocabulary for the area. | 20:48 | ||
TimToady | on the other hand, I don't see offhand why a macro would prefer to deal with some intermediate semantic representation much deeper than Match tree | 20:49 | |
20:49
IllvilJa joined
20:50
cmarcelo joined
|
|||
mncharity | as a macro, I would very much like to ask about "are you a free variable?", without having to do the lisp usual "never mind, I understand the entire language so I can grovel over the tree and figure it out for myself". | 20:50 | |
TimToady | quasi-quoting will already handle nearly all the needs for binding, so there's not much need to introspect the tree for variables | ||
and in any case you probably want them in prebound state anyway so you can decide | 20:51 | ||
in any case, the parser has to decide the binding right then and there anyway | 20:52 | ||
so that level of semantics has to be interwoven already with syntax analysis | |||
mncharity | "were you variable $x declared 'tastes like peppermint'? in which case i'll..." | ||
TimToady | the parser must realize "my $x = $x" is recursive | 20:53 | |
we mandate $x gets poked into the symbol table when the parser position is after "my $x" | |||
that kind of decision cannot be deferred | 20:54 | ||
mncharity | re woven, so what your saying is p6 never has an AST, just a parser-IR? :) | ||
TimToady | any Perl parser has to be ready to know the complete meaning of any previous bit of code at any point, up to and including running it | 20:55 | |
(BEGIN and friends) | |||
but also constant folding | |||
merely keeping track of the symbol table on the fly is just a small part of it | |||
the fundamental nature of Perl is that it not only be able to compile code at run time but also run code at compile time | 20:56 | ||
(hopefully with better control than Perl 5 exercised) | 20:57 | ||
basically, the parser must know (or have ready access to) exactly what language we have at the moment | 20:58 | ||
and every declaration changes the language subtly. | |||
mncharity | right, sorry, tongue-in-cheek question. | 20:59 | |
sigh. /me starts writing a rakudo --target=parse scraper... :/ | 21:05 | ||
sigh. and the rakudo ast nodes aren't tagged with the rules which originated them. | 21:08 | ||
having to reconstruct implicit node typing... shudder. hmm, since nothing exists to parse the --target=parser output format, it follows that nothing depends on it. I wonder if the Match nodes contain the information, and it's simply not being exposed? | 21:11 | ||
(folks who know parrot are most welcome to jump in any time. else it looks like I'm just thinking aloud;) | 21:12 | ||
cognominal_ | I am still in learning mode of the compiltion chain... | 21:13 | |
mncharity | np :) | ||
hmm. mission creep. ok, a scraper with node type inference. | 21:14 | ||
TimToady | there, you've already run into a problem of forgetting something by getting too abstract too quick... :) | 21:15 | |
well, you weren't the one doing it, which is small comfort... :) | |||
21:23
FurnaceBoy joined
|
|||
cognominal_ | mncharity, this is a Data Dumper so everything of the parrf tree is exposed. | 21:23 | |
s/parrf/parse/ | 21:24 | ||
mncharity | re abstract, oy :) | 21:33 | |
re 'everything of the parrf tree is exposed', ah well. thanks. no I don't have to feel guilty digging into parrot looking for a simple fix. :) | 21:34 | ||
*now | |||
sigh, 'now I don't have to feel guilty about not digging into parrot looking for a simple fix' | 21:35 | ||
21:51
kst joined
21:57
spx2 joined
|
|||
mncharity | so far so good. ended up starting it in ruby - just didn't want to deal with p5. so should have scraping tomorrow. then can work on deriving an ast from it. happiness. | 22:06 | |
pugs_svnbot | r20090 | putter++ | misc/winter_jig/ast_rakudo/scrape: start of a scraper for rakudo --target=parse output. | 22:11 | |
diff: dev.pugscode.org/changeset/20090 | |||
lambdabot | Title: Changeset 20090 - Pugs - Trac | ||
mncharity | good night & | ||
spx2 | hows perl 6 doing ? | 22:21 | |
I would like to donate 100$ through paypal because I believe in you | |||
how do I do that ? | 22:22 | ||
22:23
ikeda joined
|
|||
cognominal_ | spx2 : donate.perlfoundation.org/index.pl...ion%20Info | 22:24 | |
lambdabot | Title: Contribution Info, tinyurl.com/yb6pjq | ||
cognominal_ | spx2: earmark your donation to perl 6 | 22:26 | |
spx2 | cognominal_: earmark ? | ||
cognominal_ | erb [ trans. ] | 22:27 | |
1 (usu. be earmarked) designate (something, typically funds or resources) for a particular purpose : the new money will be earmarked for cancer research. | |||
say in your comments you would prefer this money used for perl 6 | 22:28 | ||
FurnaceBoy | heh paypal should support "money folders" like email | 22:30 | |
sub-accounts | |||
spx2 | I am decided to make this donation | 22:41 | |
It's too long I have been waiting for Perl6 | |||
s/decided/determined/ | |||
22:44
ikeda_ joined
|
|||
spx2 | ok just finished making it | 22:48 | |
cognominal_: any other things I should know of ? | 22:49 | ||
cognominal_ | be patient, perl 6 is a long term undertaking. | 22:56 | |
[particle] | spx2++ | 23:02 | |
FurnaceBoy | spx2: V1.0 should be ready in the morning | 23:03 | |
spx2 | FurnaceBoy: :) | ||
23:04
Daveman joined
|
|||
spx2 | Daveman: dude wtf ? | 23:04 | |
Daveman | Yes? | 23:11 | |
23:14
Talaman72 joined
|
|||
Talaman72 | eval $hits = <count>; hits++; <count> = $hits; | 23:32 | |
PerlJam | Talaman72: it doesn't work in perl 6 either | ||
Talaman72 | so my question would be, how would i get the $hits to overwrite the contents of the file | 23:34 | |
PerlJam | Talaman72: in perl 5 or perl 6? | 23:35 | |
Talaman72: in either the technique is the same: open the file for both read and write, lock it, read the value, increment, rewind to the beginning of the file, write the value, close the file. | 23:36 | ||
Talaman72: there are many variations on that theme too | |||
Talaman72 | well i have the opening part down, the incrementing part, but the writing part seems to be a bit off | 23:37 | |
PerlJam | Talaman72: you're missing a few steps from what I said. | ||
Talaman72: and again, do you want to do this in perl 5 or perl 6? | 23:38 | ||
Talaman72 | either way | 23:39 | |
just want it to work |