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