»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
sorear what is the full spec rule? 00:00
00:03 Schwern joined
TimToady S05:2913 00:04
sorear and now, I've managed to make STD.pmc not store the RHS of = *at all* 00:07
TimToady /o\ 00:09
00:09 Schwern left
sorear hmm, actually, gimme5 *does* implement {'binding'} = [] 00:09
but only if you actually put the binding inside the quantifier
[ <foo> ]?
[ $<foo> = a ]?
TimToady ah
I'd say that's a buglet 00:10
is it worth fixing in gimme5?
sjohnson buglets are cuter than regular bugs 00:12
sorear TimToady: I'd say not 00:13
TimToady buglet: wall.org/~larry/cameliafav.ico 00:15
sjohnson that's cuet 00:16
sorear xli-- "cameliafav.ico is a 576x720 MacPaint image" 00:17
00:17 azert0x left
TimToady 32x32: wall.org/~larry/camelia32.ico 00:18
those might not be the most recent ones though 00:19
they look like some of the earlier prototypes that didn't do transparency right
sjohnson TimToady: did you draw that in The Gimp? 00:21
TimToady nod
sjohnson TimToady: you can get a decent sized 64x64 png or something with transparancies, and upload it to one of those online png -> .ico converters 00:22
and then they alloledge all the new resolution settings that windows has brought to the table, ater the 766 byte win3.1 icon days
TimToady the better version of 16x16: wall.org/~larry/camelia16.ico 00:24
(and the one from pugs repo)
sjohnson the 16x16 ones look cuter because the eyes look like pixel diamonds
TimToady the 32x32 is the same
yes, well, it's hard to get all the features in without a bit of distortion
sjohnson TimToady: members.shaw.ca/smujohnson/img/4cha...llface.png 00:25
TimToady: the distortion makes it cute though, so it worked out well.
00:26 kensanata left
sorear TimToady: what is the point of _PAREN? 00:30
and why does it differ so much from _BRACKET?
TimToady it knows that it is going to be _SUBSUMED, so it doesn't have to worry about preserving the original Cursory type 00:31
sorear why does it exist at all? 00:32
00:32 justatheory left
sorear instead of just clling the inner stuff directly? 00:32
TimToady um, logging entry and exit? yes, it's pretty useless other than that
sorear ah 00:33
00:33 masonkramer joined
TimToady but optimizing it won't get you much in STD itself, since parens are pretty rare 00:34
pugssvn r31037 | sorear++ | [viv] Hack - emulate gimme5's binding-to-quantified-atoms bug
TimToady for a long time it parens didn't even work in STD
sorear why does STD 5031 use parens at all?
why not brackets? 00:35
TimToady it might have originally been a $0, and got rebound when I discovered $0 didn't work, or decided it needed a better name in the parse tree :)
just guessing 00:36
sorear ah
TimToady actually, we could probably optimize away the BRACKET if it's going to be SUBSUMEd 00:37
ants & 00:38
sjohnson bust out the raid
TimToady did 00:41
fortunately, window ants, so could spray outside
since SUBSUME calls cursor_bind which reblesses into the parent, which dups what BRACKET does 00:42
sorear stage3 STD.pmc is now only 1500 lines different from stage2 00:43
with 19 errors 00:44
since stage2 now handles asserion:var correctly 00:45
00:45 masonkramer left
TimToady convergence is good 00:46
sorear the next order of business: backslash escapes in strings
TimToady that's always kinda fiddly 00:47
sounds like we'll be translating Cursor back to P6 pretty soon :) 00:48
sorear "back"?
TimToady the original Cursor ran under pugs
sorear I see.
TimToady but it was just too flakey
sorear Too slow?
TimToady pretty slow too
but it would randomly crash 50% of the time 00:49
I'm sure it would be much more solid under newer Haskells
sorear well... I don't think /all/ of the stuff in Cursor can be mapped to Perl6
TimToady unless the problem was in the pugscode itself
well, we can piecemeal it 00:50
sorear what I was going to do was to split off Cursor.pm6 from CursorBase.pmc
TimToady especially if I ever finish STD_P5 well enough to parse 'use v5;' blocks :)
sorear Cursor.pm6 starts empty and sucks code in from CursorBase and STD
TimToady that's what I mean by piecemeal it
sorear e.g. EXPR, panic, lineof
sjohnson the ants wanted to look at camelia 00:51
TimToady is a perfectly valid way to develop it
00:51 Util left
sorear as a fringe benefit, it will become possible to use viv with other grammars but STD 00:51
TimToady you can use other grammers under gimme5, but you usually have to work at it :)
sorear yeah, but you have to name them STD and include FAILGOAL and lineof methods 00:52
possibly others
TimToady you only need FAILGOAL and lineof if you fail :)
00:52 masonkramer joined
TimToady but yeah 00:53
sjohnson: looking at pretty girls through windows is generally considered a bit antisocial 00:54
00:54 colomon joined
sjohnson they've probably had more luck with girls than i have had 00:54
at least aunts have gone in people's pants before
ants* 00:55
jnthn Oh gosh, 3am. 00:56
On the upside, I now has travel tickets and places to stay for the Perl workshops next month. \o/
sjohnson once rakudo is a bit more ready for production value, i'll be the first to program a female AI to talk to. how sad is that
TimToady jnthn++ # dealing with "Real Life" 00:57
jnthn :-)
sorear sjohnson: you've been beaten to the punch by about 50 years
TimToady Why do you say that once rakudo is a bit more ready for production value, you'll be the first to program a female AI to talk to. how sad is that
jnthn TimToady: Happily, one of the conferences even has a river trip as a part of it. :-) 00:58
TimToady How does this make you feel?
jnthn I have this sinking feeling...
TimToady Why do you say that you have this sinking feeling...? 00:59
sjohnson well, i was actually seriously considering doing a regular chat bot to prank some friends on ir
but it might take too long... and i think it's also been done before
would be kinda fun though
TimToady /invite elizabot 01:00
sjohnson TimToady: reason i said it, is because most girls i meet don't really care about computer stuff :(
TimToady Is this something about your father?
TimToady wishes he could remember more of eliza's snappy comebacks... 01:01
.oO( freudbot )
araujo sjohnson, that doesn't happen only to you hehehe
sjohnson well my dad did show my brother and i how to program in basic on an apple //e back when we were really young, maybe it does have something to do with it
sjohnson is 28 years old now 01:02
TimToady Does this bother you?
sjohnson heh, this reminds me of Dr. Sbaitso
TimToady I suppose I could switch to Perry... 01:03
araujo sjohnson, you depressed because you don't find gf?
sjohnson can haz gf with perl knowledge
TimToady it's the voices again...
01:04 colomon left
sorear does anyone here remember lambdabot's "eliza" module? 01:04
sjohnson araujo: i think it is just desire bothering me, not so much a lack of a gf... 01:05
araujo sjohnson, got my first gf after 27 years (been with her for 4 months) .. I really wanted to get one very badly back in the days ... to be honest with you ... now I see i wasn't missing much ... women are too hard for me to understand 01:06
if you say A, they say B,if you say B, they say A, if you say A & B, they say C
sjohnson perl6 can address those issues 01:07
sorear diff -y is my new favorite command
jnthn never quite managed to convince a girl to be his gf yet, but experiences gained through failure so far suggest...writing a Perl 6 compiler is easier. :-)
sjohnson araujo: thanks for the help. i should remember this. my cousin said that all his desires of girls have led to misery, whether or not he "succeeded" with them 01:08
jnthn guesses the debugging tools are just more advanced. :-)
araujo writing a Perl 6 compiler is kinder garden homework compared with closely understanding a girl
sorear is 19 and in no hurry.
araujo sjohnson, my recommendation is .. go and try .. that is what life is all about, I just tell you my personal experience ... 01:09
01:10 pausenclown left
[Coke] crazy kids need to get off my lawn is what. 01:11
sjohnson ahh, i kinda tried and failed many times, but my brain is too stupid to stop desiring. 01:12
TimToady one can never fail to truly love someone, whether or not they love you back 01:13
01:14 pausenclown joined
TimToady you can never fail at wanting what is best for another person 01:15
and one cannot acquire a true girlfriend without understanding the "friend" part 01:16
araujo love is good ..... now, if we talk about relationships ...
sjohnson pretty much all my desires have been selfish now that you mention it 01:17
... oopsies
[Coke] wonders if his 21 year relationship is on the high side for this discussion. kids. :P
01:17 rgrau left
sjohnson [Coke]: i was just gonna ask about kids actually 01:17
TimToady is sitting next to his youngest kid, who is 21 :) 01:18
kids change your life even more than a spouse, because you get to pick your spouse
but with kids, you just get what you get
sjohnson sounds like a good surprise with kids
TimToady not always :) 01:19
araujo I am sure kids would say the same at some point about parents :P
TimToady but they're good practice on that 'unconditional love' thing
sjohnson i kinda wish my dad watched anime with me
araujo well, you can love without a spouse or kids in this world
sjohnson an "anime dad" is hard to find
araujo hehehe
TimToady I kinda wish my dad was still alive 01:20
I periodically dream that he is, and it was all a big mistake :)
araujo we all will face that in life :(
sjohnson natural causes?
TimToady otoh, he'd be 90 now... 01:21
well, if congestive heart failure plus metastisized prostate cancer is "natural"... :)
he made it to 66
01:22 masonkramer_ joined
TimToady my mom will be 86 this year though 01:22
so there's some hope on that side
[Coke] TimToady: mine only to 45.
araujo going beyond 70 is already hard enough for this generation
TimToady she's still pretty sharp too
01:22 colomon joined
sjohnson i watch tv shows as often as i can with my dad, as i worry that he could go at any moment, and he's got a rare dry wit. *sniff* 01:23
TimToady ah well, I try to stay young at heart, at least in some of the good ways
colomon is there a log for #phasers?
jnthn colomon: aye but not much happened.
colomon 'k 01:24
jnthn I didn't even make any awful puns.
TimToady colomon: it's even mentioned in the /topic
nice to have a /topic now :)
jnthn "IR clogs.." :-D
colomon TimToady++ # was no topic there last time I remember looking.
sjohnson @karma
(´ー` ) 01:25
TimToady lambdabot was functionally exiled
jnthn realizes that he could find a pair of clogs and tell people they were infrared, but since you can't see that spectrum nobody would be able to tell they weren't. :-)
TimToady well, almost everything is infrared already
sjohnson TimToady, are you much of git guy? 01:26
TimToady not really 01:31
01:32 whiteknight left 01:33 atomicstack joined
sjohnson its kinda making my life easy at work, but there's a ton i have yet to learn about it 01:36
sorear the great thing about git is how little there is to learn about it 01:37
git - the stupid content tracker 01:38
araujo hehehe 01:39
sjohnson for me it's the content tracker that makes one feel stupid 01:43
if there is one thing i dont understand, it's what "git potty" means. it's in the man page. but googling only brings up the man page 01:46
maybe sorear knows
sjohnson crosses fingers
whatever it is, it sounds cute
araujo a perl 6 CVS , that is what we need 01:50
[Coke] no it isn't.
araujo Yet Another CVS 01:59
02:00 [mark] joined
jnthn Ho hum. Maybe I should try sleep. 02:00
sorear git: 'potty' is not a git-command. See 'git --help'. 02:04
snarkyboojum the 'potty' is a term they use to refer to the 'porcelain' or wrapper git commands which lead to the 'plumbing', i.e the core git programs 02:07
02:10 Chillance left 02:14 snarkyboojum left, agentzh joined 02:15 bluescreen joined, bluescreen is now known as Guest97772 02:16 Guest97772 left, Guest97772 joined 02:17 Guest97772 is now known as mariano 02:29 Guest35747 left 02:30 snarkyboojum joined 02:44 colomon left 02:48 plobsing joined 02:52 skids left 02:53 skids joined 02:55 justatheory joined 03:01 sorear left 03:03 sorear joined 03:06 meppl left
snarkyboojum is there currently any Rakudo LHF for the month? :) 03:07
the advent calendar test suite is pretty much complete - looking for something else to chew on :)
I know.. "if you have to ask"... :) 03:10
03:39 gfx joined
TimToady <sorear> TimToady: How does ./std precompile modules? Looking at it it seems to just be a thin wrapper over STD->parsefile 03:47
look at Cursor's you_were_here function
03:50 TiMBuS joined
sjohnson snarkyboojum: thank you 03:52
03:53 snarkyboojum left, mariano left, saaki joined 04:01 snarkyboojum joined 04:03 skids left 04:06 molaf joined, patspam left
TimToady eternaleye: your when's won't work because, in the absense of a declarator, binding to :() doesn't declare any variables 04:14
you want something more like:
rakudo: given a => 3 { when * -> Pair ( Str $key, $value ) { say $key } } 04:15
p6eval rakudo 18d996: OUTPUT«Nominal type check failed for parameter ''; expected Pair but got Bool instead␤ in main program body at line 11:/tmp/ugNYBju6pg␤»
TimToady see S03:3472 04:16
04:16 eternaleye left
TimToady and S03:3581 04:17
04:23 Wolfman2000 left
snarkyboojum rakudo: 2 <<+<< 1,2,3 04:27
p6eval rakudo 18d996: ( no output )
snarkyboojum rakudo: 1,2,3 >>+>> 2
p6eval rakudo 18d996: ( no output )
snarkyboojum rakudo: say 2 <<+<< 1,2,3
p6eval rakudo 18d996: OUTPUT«323␤»
snarkyboojum rakudo: say 2 <<+<< (1,2,3) 04:28
p6eval rakudo 18d996: OUTPUT«345␤»
snarkyboojum rakudo: say 2 <<**<< (1,2,3)
p6eval rakudo 18d996: OUTPUT«248␤»
04:28 eternaleye joined
TimToady hyperops aren't list infixes 04:30
eternaleye: see irclog.perlgeek.de/perl6/2010-06-02#i_2392634 04:31
snarkyboojum aren't list infixes?
TimToady no, so they only take a "scalar" argument on either side, which is typically an array 04:32
which is why you got the results above 04:33
whereas things like Z and X are designed to work on lazy lists
so take a list on either side
rakudo: say 2 X+ 1,2,3 04:34
p6eval rakudo 18d996: OUTPUT«345␤»
TimToady note, no parens needed
snarkyboojum right, but << will "extend" the "list" in the right?
or is that unspecced
TimToady since hypers are run-to-completion, they're more for singular objects that happens to be complex inside
snarkyboojum not sure what run-to-completion mean 04:35
TimToady spec says deficient dimensions will be extended, not deficient lists
snarkyboojum ah ok
TimToady so 2 can change to (2,2,2,2,2,2)
but (2,2,2,2) can't change to (2,2,2,2,2,2,2)
snarkyboojum yeah
thanks :) 04:36
TimToady arguably, if we did something like that, (1,2,3,4) should extend to (1,2,3,4,1,2,3,4,1,2,3,4) rather than (1,2,3,4,4,4,4,4,4,4,4)
snarkyboojum sure 04:37
TimToady but since there are already ways to express either of those in terms of (1,2,3,4,*) or (1,2,3,4) xx *, it's not terribly important
eternaleye TimToady: Note that I only used $_ in the givens, not the vars in the signatures - :key($) would be clearer as I'm only using them for the name of the appropriate chunk of the pair 04:38
snarkyboojum the temptation is there to create mamoth perl one liners with chaining hypers etc 04:39
TimToady eternaleye: I was explaining your first result at irclog.perlgeek.de/perl6/2010-06-01#i_2389173 04:40
std: given a => 3 { when :( Pair ( Str $key, $value ) ) { say $key } }
eternaleye TimToady: Oh, that was just a trying something I wasn't actually using, but I wanted to know what happened
p6eval std 31037: OUTPUT«===SORRY!===␤Variable $key is not predeclared at /tmp/XcJtA61In5 line 1:␤------> ( Pair ( Str $key, $value ) ) { say $key⏏ } }␤Check failed␤FAILED 00:01 117m␤»
TimToady which std agrees with
eternaleye s/a/me/
TimToady whereas: 04:41
std: given a => 3 { when * -> Pair ( Str $key, $value ) { say $key } }
p6eval std 31037: OUTPUT«ok 00:01 114m␤»
eternaleye I was trying to make moritz_' example work, but I forgot to change that
TimToady that does declare $key over the block
but I don't think rakudo implements the * binding yet 04:42
sorear * <pointy> is legal?
what production?
oh, (when) (*) (pointy) 04:43
how does * differ from True?
TimToady xblock calls pblock, which is either with or without ->
it's less misleading :) 04:44
and doesn't get you a warning
std: given a => 3 { when True -> Pair ( Str $key, $value ) { say $key } }
p6eval std 31037: OUTPUT«Potential difficulties:␤ Smartmatch against True always matches; if you mean to test the topic for␤ truthiness, please use :so or *.so or ?* instead at /tmp/Wr91YRO81B line 1:␤------> given a => 3 { when True⏏ -> Pair ( Str $key, $value ) { say $key␤ok 00:01
TimToady std: given a => 3 { default -> Pair ( Str $key, $value ) { say $key } } 04:45
p6eval std 31037: OUTPUT«===SORRY!===␤Missing block at /tmp/ohN3NdRwKY line 1:␤------> given a => 3 { default ⏏-> Pair ( Str $key, $value ) { say $key ␤Parse failed␤FAILED 00:01 111m␤» 04:46
TimToady heh
I guess default isn't quite the same as 'when *'
sorear TimToady: if you have a "local" deep inside a P5 expression, how does the local scope?
TimToady to the surrounding curlies, same as lexicals, more or less 04:47
sorear so the local is in scope but undef earlier in the block?
TimToady modulo the strange hidden blocks that sneak into p5 around certain constructs
"local" is not a noun 04:48
local is a verb that applies to a global var
so whether it's undefined earlier or not depends on its previous value
local itself undefines, by default, so you have to assign the previous value in p5 to keep the value 04:49
"temp" in p6 is supposed to default the other way, and preserve the outer value
which is why, in Cursor.pmc you see things like local $::HIGHWATER = $::HIGHWATER; 04:53
sorear yes
TimToady in p6 that'll just be temp $*HIGHWATER;
'course, temporizing dynamic vars in "real" p6 will be different from temporizing globals and ordinary lexicals 04:54
sorear so basically local $::FOO = 3 is SAVESV($::FOO); $::FOO = 3
TimToady and with real dynvars temp $*HIGHWATER turns into my $*HIGHWATER = $OUTER::HIGHWATER or something like that 04:55
sorear not a scoping construct at all
just save-stacked assignment
TimToady yes
which is not very thread-friendly
05:00 yinyin joined 05:02 Schwern joined 05:08 kaare joined 05:09 kaare is now known as Guest41943 05:14 BinGOs left, BinGOs joined 05:19 molaf left 05:35 lue left
pugssvn r31038 | sorear++ | [viv] Improve handling of non-subrule captures again 05:49
sorear STD.pm6 contains a line of the form <item=.sym> 05:50
this gets unfolded to $<item> = foo
gimme5 ignored the binding in this case
viv doesn't
so I neeeded to improve the AST processors 05:51
(actually, I changed Actions, not viv.)
I BELEIVE IT NOT. stage 3 == stage 2 !!! !!! !!! 05:58
05:59 cognominal left 06:05 snarkyboojum left, uniejo joined 06:09 justatheory left
sorear runs a make snaptest to establish a baseline 06:12
06:15 envi^home joined
mberends sorear++ 06:17
06:18 cognominal joined 06:19 Su-Shee joined
moritz_ good morning 06:22
sorear good morning moritz 06:23
I just successfully bootstrapped STD.pm6 and viv
moritz_ \o/
sorear will commit the needed Makefile changes after a double snaptest
06:25 snarkyboojum joined
eternaleye sorear++ # You rock so hard 06:25
sjohnson cool 06:27
sorear TimToady: How does lex/STD.pm6.store work? 06:44
06:45 s1n left 06:47 s1n joined
sorear I see 06:50
pugssvn r31039 | sorear++ | [Cursor] Allow lex/ and syml/ directories to be overridden
mathw Morning 06:51
pugssvn r31040 | sorear++ | [std] Add prototype node classes to silence errors from Actions 06:58
TimToady \ö/ 07:09
sorear++ sorear++ sorear++ sorear++ sorear++ sorear++ 07:10
sjohnson heh 07:14
TimToady but zzz & # will play with it in the morning 07:16
sorear in the morning, it will be installed as default
gimme5 may or may not be gone, depending on snaptest results
sleep well
07:17 mikehh left 07:22 snarkyboojum left 07:29 ejs joined 07:32 dalek left, hugme left, mathw left, pugssvn left, ajs left, clsn left, bkeeler left, jiing left, obra left, c1sung left, IRSeekBot left 07:33 ejs left 07:38 ejs joined, dalek joined, hugme joined, mathw joined, pugssvn joined, ajs joined, tootroot joined, clsn joined, bkeeler joined, jiing joined, obra joined, c1sung joined, IRSeekBot joined, card.freenode.net sets mode: +vvov hugme pugssvn bkeeler IRSeekBot 07:49 s1n left, dju joined
sorear snaptest ends at 94.36% 07:49
moritz_ is that the same as normal STD+gimme5 snaptest? 07:50
07:50 pmurias joined, dju left
sorear moritz_: that was the STD+gimme5 snaptest; I was establishing a baseline 07:50
moritz_ ah 07:51
did you also time it?
07:51 dju joined 07:52 s1n joined
sorear no 07:55
07:57 dju left 07:59 pmurias left
sorear Is it considered bad form to set PERL5LIB in Makefiles? 07:59
mathw I would think so 08:01
moritz_ rakudo: say "Perl 6 Advent".comb(/<alpha>/).join('|');
p6eval rakudo 18d996: OUTPUT«Cannot take substr outside string␤ in <anon> at line 11:/tmp/8a1sSMRqEw␤ in 'Cool::match' at line 2103:CORE.setting␤ in 'Any::join' at line 1898:CORE.setting␤ in main program body at line 11:/tmp/8a1sSMRqEw␤»
eternaleye Recent Camelia discussion prompted me to search the clogged infrared for this: www.perlportal.com/logo/camelia.html (originally posted by LylePerl). I particularly liked (and still do) #7 08:03
mathw If it doesn't get exported into the user's environment it's probably okay, but you would I think be better off passing include paths to perl
sorear mathw: I want it to affect subprocesses too 08:06
pugssvn r31041 | sorear++ | [STD-ecosystem] Change Makefile to use viv by default instead of gimme5. Check in a bootstrap copy of STD.pmc. 08:08
08:08 viklund joined
sorear next, I need to get snaptest to run at all 08:08
08:18 plobsing left 08:22 dakkar joined 08:38 clintongormley joined
pugssvn r31042 | sorear++ | [viv,STD_P5] Fix STD_P5 for viv, which is rather stricter about valid P6 08:47
08:52 BrowserUk left 08:59 cli_ joined
moritz_ www.modernperlbooks.com/mt/2010/06/...ation.html "If you've worked with macros in C or C++ or source filters in Perl 5, note that they have file scope" 09:06
I thought C/C++ macros are pretty much global
arnsholt They're only accessible in the files where they're either #defined or #included 09:09
But global at file level, yes
moritz_ I meant that more in the sense of: I write an include file, that uses a macro internally
but if I don't care, it's available globally, ie in any file that includes my file too 09:10
arnsholt Yeah, in that sense it's global
moritz_ in that sense it has larger scope than file
rakudo: '1 ' ~~ /.*/; say +$/ 09:15
p6eval rakudo 18d996: OUTPUT«1␤»
arnsholt The problem is that C has a messed-up view of how to include libraries, and what is file-scope 09:21
Seeing how #include just pastes a file into your file
moritz_ right
mathw of course you can #undef a macro when you're done with it so it doesn't leak 09:24
moritz_ but the fact that you have to take extra care is bad 09:25
and what if that macro existed (but with different contents) before the #include line?
09:27 yinyin left
arnsholt I can't remember what happens then 09:27
Might be implementation-dependent
mberends grammar hai { rule TOP { ^ <.ws> HI } }; class hai::act { method TOP($m) { say "YO!" } }; hai.parse("HI", :actions(hai::act)); # works 09:28
rakudo: grammar hai { rule TOP { ^ <.ws> HI } }; class hai::act { method TOP($m) { say "YO!" } }; hai.parse("HI", :actions(hai::act)); # works
p6eval rakudo 18d996: OUTPUT«YO!␤»
mberends rakudo: grammar hai { rule TOP { ^ <.ws> HI } }; class hai::act { method TOP($m) { say "YO!" } }; hai.parse(" HI", :actions(hai::act)); # inserting a space fails. HALP! 09:29
p6eval rakudo 18d996: ( no output )
moritz_ rakudo: grammar hai { token TOP { ^ <.ws> HI } }; class hai::act { method TOP($m) { say "YO!" } }; hai.parse(" HI", :actions(hai::act)); 09:30
p6eval rakudo 18d996: OUTPUT«YO!␤»
mberends oh, token. thanks moritz_++ 09:31
mathw moritz_: well in the normal case that macro wouldn't exist afterwards. you can detect it, save it and restore it, but to do that for every macro... this is why macros cause pain :)
moritz_ I guess that the implict <.ws> from 'rule' and the explicit one interact badly... but I don't know why
mathw: but don't you need another macro for storing the old contents?
which you'd have to clean up again, recursively?
mathw yes 09:32
there's a good guideline, it says 'don't use macros in header files', and it's paired with one that says 'if you do use macros in header files, give them names very likely to be unique' 09:33
moritz_ "we built you this cool language; but pulease don't actually use its features; they are harmful for your dog" 09:34
09:34 masak joined
masak oh hai, #perl6! 09:35
moritz_ good (late) morning, masak
mberends oh hai, masak!
moritz_ how are those bufs coming along?
mathw moritz_: well the thing is that it's not cool, it's merely ubiquitous 09:36
moritz_ right :-)