6.2.11 released! | pugs.blogs.com | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6
Set by wolverian on 12 February 2006.
00:00 frederico_ joined
ingy hi audreyt 00:01
audreyt ingy: hey 00:04
svnbot6 r9154 | fglock++ | iterator_engine - updated README
00:04 fglock left
svnbot6 r9155 | audreyt++ | * Overview 00:13
00:20 calanya left 00:23 TimToady_ joined 00:26 bsb left
rafl wonders why M::I always deletes his PRIVATE extension. :-( 00:39
I'm quite sure it don't even gets executed. What do I need to do beside writing the extension and using its subs from Makefile.PL to get it included in inc/? 00:40
audreyt that's all 00:46
but the trick is to install the PRIVATE in your sitelib
not just in inc/
rafl I thought PRIVATE extensions won't get installed? 00:47
Ok. What I want is an extension to find a shared library. Something that should work like assert_ghc in pugs. 00:48
So I created inc/Module/Install/{PRIVATE/,}/Foo.pm with a find_foo method that I call from Makefile.PL.
audreyt mm, it doesn't work that way. 00:49
rafl it just contains a die() for now, but it isn't executed.
audreyt M::I is like autoconf
rafl That sounds.. bad. :-)
audreyt in the sense that the M::I::* submodules must be in your sitelib
or somewhere in @INC anyway
M::I copies them to inc/
you don't (and can't) put stuff explicitly to inc/ 00:50
Pugs's M::I is specially crippled to let us do that.
rafl tries 00:51
audreyt if you'd like to improve the docs (or the impl)... you can get a committer bit :)
rafl If you'd like to M::I'ify Net::SSLeay you can get a committer bit ;-P 00:52
svnbot6 r9156 | Darren_Duncan++ | r2625@darren-duncans-power-mac-g4: darrenduncan | 2006-02-23 16:48:45 -0800
r9156 | Darren_Duncan++ | ext/Rosetta/ : small changes to resync with new 0.721.0 CPAN release
stevan TimToady_++ (www.perlmonks.org/index.pl?node_id=532427) 00:56
hey audreyt, hackathoners, all
audreyt hey stevan! 00:57
stevan audreyt: how are the falafels?
audreyt stevan: we found a new home for S12.5 and friends!
feel free to commit it to docs/p6doc/API/
stevan cool 00:58
audreyt those are the new Pugs Apocrypha -- Core APIs
stevan is pondering Metamodel 3.0 at this point
audreyt just as p6doc/Spec/ is the new home for Synopses
svnbot6 r9157 | audreyt++ | * install p6doc -- after all, why not.
stevan audreyt: cool, I will take a look later tonight 00:59
audreyt the hackathon is doing well
as you can see I've been doing a flurry of commit to Syn*
(on p6l) 01:00
stevan yes :)
stevan is busy with launching 2 @projects for $work, but has been lurking as much as possible :)
audreyt wow, it's past 3am 01:03
wolverian is busy learning how cumbersome interface definitions in code are
wolverian hates swing
Juerd rafl: Please be on time for your train :) 01:11
afk # z
rafl Juerd: I'm sure it'll wait for me. 01:12
audreyt zzz & 01:13
01:17 uzair_ joined
stevan wow,.. I was over 150 revisions behind 01:18
stevan decides to quit his job, leave his wife and family and follow the Ingy dƶt Net world tour 01:20
azuroth thought "stmt if expr;" was equiv to "if expr {stmt;}". apparently not... 01:22
Khisanth in Perl, C, or something else? 01:25
azuroth perl5, sorry
uzair_ got an example? 01:27
azuroth if (0) {my $x} as opposed to my $x if 0. not that I particularly care, it was just a bit of a shock 01:28
Khisanth you shouldn't be using my $foo if ...; anyway 01:29
uzair_ yeah that's a scope problem
azuroth pretty crazy stuff 01:30
Khisanth: I just found out about it, so I haven't used it yet ;-p
revdiablo Personally, I think what would really be crazy is if the postfix form created a new scope 01:31
Khisanth wonders how much a new laptop with a GB of ram would cost
revdiablo: that should just be a syntax error
revdiablo Maybe we could propose it does something obscure with junctions 01:33
Now THAT would be really crazy. =)
Khisanth hmm 01:36
if you can use $.foo, @.foo, %.foo to call .foo in a particular context, what sigil do you use for void? 01:37
azuroth ()? 01:38
Khisanth I don't think ().foo would be valid!
azuroth me neither. but it kinda makes sense 01:39
Khisanth lets add an invisible sigil! :P
revdiablo What about the unicode non-breaking space? 01:40
>=)
01:40 SLBKBS is now known as Shachaf
Ara4n are you allowed ctrl sequences? O:) 01:46
. o O ( DEL )
01:56 theorbtwo joined
rafl . o O ( BEEP ) 01:56
Ara4n hehe
even better
rafl cat bethoven.p6
Ara4n or BEL or whatever it is
01:57 kattana_ joined
rafl Ara4n: BEL 0x06. 01:57
ingy stevan: get on the bus baby 02:02
dduncan ping ingy 02:05
do you plan to do something about only.pm's failing test suite?
ingy dduncan: theoretically yes 02:09
02:09 Amnesiac joined
ingy patches welcome :) 02:09
dduncan someone sent you patches via RT
do you look at RT?
ingy yes 02:10
but I'm a little behind :)
dduncan it might be helpful if you marked items out of 'new' status to at least give people ideas you saw them, even if not solved
they go back 2 years
ingy ok
I've added both tasks to my March 2006 todo list 02:12
dduncan sounds good ...
failing tests are bad
in worst case, they could be made to skip
ingy war is bad
failing tests are merely annoying 02:13
ingy puts it all into perspective ;)
dduncan they cause trouble for users
maybe just naive users
but I've had people say they can't install foo module because bar module that it depends on had failed its tests
it is similar with only.pm 02:14
ingy yeah, I get it
fuckin A, Jemplate rocks
obra ingy: where can I go to see live apps? 02:22
obra wants to see and feel the magic
ingy obra: svn.kwiki.org/ingy/Jemplate/tests/index.html 02:32
:p
also svn.kwiki.org/ingy/Jemplate/example...index.html 02:33
obra cool
ingy it's so nice to be able to run everything from the repo in the browser
btw, all the parts are checked in there
so explore 02:34
02:51 theorbtwo joined 02:57 Cryptic_K joined 03:28 theorbtwo joined 03:47 justatheory joined 04:04 beppu_ joined 04:13 beppu_ joined 04:34 Kattana joined 04:47 Cryptic_K joined 04:50 beppu joined 05:02 gaal_ joined 06:17 calanya joined 06:28 qmole joined 06:36 Ara4n is now known as Aragone, mike joined 06:40 mike left 07:14 gaal_ is now known as gaal 07:43 KingDiamond joined 07:46 drrho joined 07:48 iblechbot joined 08:30 ghenry joined 08:55 xinming joined 08:59 scook0 joined
xinming hmm, I have got some friends, which are always ask really stupid questions, How do I deal with this please? eg, Some people brought a new computer, and after he went home, he said, The computer does't play music... hmm, And ask me to go there for help... After I got there, the problem is he plug the speaker output into mic... and mic in speaker output... How will you deal with those? :-S 09:00
hmm, It's a nightmare sometimes. :-/
svnbot6 r9158 | Darren_Duncan++ | r2646@darren-duncans-power-mac-g4: darrenduncan | 2006-02-24 01:11:26 -0800 09:13
r9158 | Darren_Duncan++ | ext/Rosetta/ : incremented main module versions following CPAN release, fixed format bugs in Language.pod
09:28 xinming joined 09:31 marmic joined
lypanov xinming: i have to disagree btw 09:37
xinming: i think computer makers shouldn't be so goddamned cheap
xinming: it /does not take that much to make the audio output know that there is soemthing plugged in/
xinming: its not users at fault. its the stupid cheapo morons that build your computers 09:38
xinming lypanov: hmm, It's hard to say whose fault it is, The problem is, I sometimes really got the nightmare into "helping" some of my "friends", hmm, In fact, It's not good to be a well-known computer geek... hmm, eg, the audio output is marked in speaker on the case.... and so does mic, people don't know that which will think, If I plug that in, It will work... 09:40
hmm, well, the nightmare is over now... going learning computing. :-)
10:21 gaal joined 10:23 nothingmuch joined 10:26 nnunley joined
lypanov xinming: its realllllllllllllly difficult to see those damn images most of the time 10:26
xinming: and they aren't easy
xinming: i've made the same mistake so many times
xinming: it would be /so/ easier for them to make them autosensing. but they don't. to reduce costs 10:27
xinming: sidenote, i'm a mac user, i have pcs
s/have/hATE/
gah :P
and i need coffee
xinming hmm, I'll buy an Intel based Mac, And install Windows on it. :-) hmm, Well, It's still the dream for now.. 10:28
I never thought I'd use Linux totally on my laptop 2 months ago, otherwise, I'd really choose an Mac laptop 10:29
10:41 bsb joined 10:43 nothingmuch joined 10:51 clkao joined
svnbot6 r9159 | gaal++ | r9164@sike: roo | 2006-02-24 11:32:30 +0200 10:53
r9159 | gaal++ | * fix bsb++'s opRequire not to look for MyMod.yml.gz.yml.gz
r9160 | lumi++ | Tool for graphing functions in a haskell file
lypanov xinming: i'm probably getting one of the new laptops soon :) 10:56
10:58 szbalint joined
azuroth hooray. I'm turning into an adult! 11:03
nothingmuch azuroth: ? 11:05
congrats
but still... ?
azuroth well, an adult by our terms. I'm turning eighteen 11:06
nothingmuch ah 11:09
happy birthday
i thought it was a spiritual metamorphosis
can you drink now?
(legally ;-)
GeJ azuroth: happy birthday indeed 11:16
szbalint congratulation azuroth 11:18
11:19 gaal joined 11:21 iblechbot joined
azuroth yeah, I'll be of legal drinking age. sadly, I probably won't get any proof of age for a week or so though 11:21
11:26 gaal joined 11:31 r0nny joined 11:55 kisu joined
lypanov azuroth: happy birthday :) 12:13
azuroth thanks :-) 12:14
12:47 calanya joined 12:50 nothingmuch joined 12:51 bsb joined 12:55 TimToady joined
audreyt 12:56
azuroth : 12:57
lypanov ! 12:58
13:01 rantanplan_ joined
audreyt :) 13:02
azuroth how is Israel, audreyt? 13:03
audreyt very nice weather
consistently excellent food
high Reality resolution
but I've been ignoring most of them ;)
(and mostly ghost writing for lwall, and get the Perl6::API thing in place)
13:05 Limbic_Region joined 13:06 chris2 joined 13:09 elmex joined
TimToady thinks audreyt would look more like a ghost if she wore white makeup. 13:10
lypanov morning chris2 13:11
chris2 hi lypanov, hi TimToady 13:12
audreyt TimToady: I happen to have white makeup with me... want to see me put it on? :)
lypanov hehe 13:13
how long you guys at the hackathon? :)
audreyt lypanov: 4th day now
lypanov :)
lypanov misses hackathons
audreyt been generalizing a lot of semantics
lypanov ex kde hacker 13:14
audreyt expression parsing is distinctly ruby-like now
lypanov woohoo ;)
audreyt (no distinction between declarators and expressions)
chris2 ;)
TimToady audreyt: If you have a choice between the ghost part and the writing part, I think I like the writing part better...
Limbic_Region audreyt out of curiosity - did the Win32 build nopaste I did yesterday help identify a problem?
audreyt TimToady: you can have both *grin*
Limbic_Region: yes, and it's fixed
I think
Limbic_Region: for ~2 revs we assumed zlib 13:15
but win32 doesn't have them
sorry for that
Limbic_Region no worries
I won't be able to test/verify till the end of the day (EST) 13:16
audreyt nod, though EILARA here verified it works
(aka Ran) 13:17
chris2 lypanov: ever tried debugging a vm with ddd? :P
azuroth ddd?
lypanov chris2: nope, never got ddd running on osx
chris2 ddd is a graphical frontend for gdb
lypanov chris2: ddd kicks ass. i'd love to have it these days 13:18
chris2 lypanov: i got lost in a maze of arrows :P
svnbot6 r9161 | nothingmuch++ | Add the draft for the hierarchy
chris2 lypanov: dunno, works fine on x11
lypanov chris2: it takes some practise
chris2: i don't use x11.app
chris2 and a big screen =)
lypanov chris2: (though lately... i've been using gimp :( )
chris2 lypanov: good luck finding a native openmotif :P
lypanov waits on the osx/gtk port
chris2: i just stick with insane amounts of printf debugging :P
chris2 yeah
13:20 gaal joined
svnbot6 r9162 | audreyt++ | * FPS needs FFI, so add -fvia-C. Noticed by bsb. 13:24
r9161 | nothingmuch++ | Add the draft for the hierarchy
13:27 iblechbot joined
chris2 lypanov: ruby is 13 as of today, btw :) 13:27
audreyt happy birthday! 13:29
13:32 elmex joined
lypanov chris2: hehe. neat :) 13:33
chris2 when was perl born? 13:35
audreyt perl is 18 now 13:36
lypanov December 18, 1987
chris2 1987, yeah
so it will be 20 next year... that's awesome 13:37
13:38 kolibrie joined 13:40 Qiang joined 13:44 fglock joined
svnbot6 r9163 | audreyt++ | * Makefile.PL: kludgily work around the Cabal build problem 13:44
r9163 | audreyt++ | re: Data.Yaml.Syck by always recompile it.
13:46 f0rth joined
nothingmuch balas++ 13:47
she is being so nice to everyone... =) 13:48
we're getting yoghurt with real fresh fruit in it again
svnbot6 r9164 | fglock++ | iterator_engine - separate test file for p6grammar.pl; some rules used by the parser are now written in plain p6 13:50
robkinyon it's kind of impressive how long Perl5 has lasted 13:52
first 4 versions were in 8 years, then Perl5 has lasted 10+ 13:53
audreyt 11 years
robkinyon kinda makes you feel good about how long perl6 will last
audreyt it will last as long as there's the concept of Christmas! 13:54
chris2 only? ;)
13:55 xern joined
audreyt seeing how the concept has lasted for more than 2k years, that's a pretty good estimation 13:56
chris2 umm 13:57
it's not like christmas was invented 1 a.d. 13:58
lypanov hehe
chris2: no, it was invented 5 a.d, and damn that father christmas and his patent
chris2 makes t-shirts "prostitution is older than christmas". ehem. 13:59
lypanov lol
14:05 KingDiamond joined
szbalint hm, a bit offtopic here but seeing that a few of you authored PDF::API2 wrappers, maybe some could spare me a few moments in telling me how to manipulate the transparency or pattern on $txt objects. 14:06
*of 14:07
14:07 calanya joined
nothingmuch hola szbalint 14:07
szbalint hey 14:08
nothingmuch i think robkinyon can help you with that
but he is not here right now
14:08 TimToady_ joined
nothingmuch anyway 14:08
szbalint Thanks, I'll bug him if he comes online if I can't find the solution in the meantime
nothingmuch perlmonks.org is a good way to find him
his name is dragonchild
does anyhbo
does anybody want to help refactor some docs? 14:09
szbalint thank you 14:10
azuroth nothingmuch: what docs? 14:11
14:16 TimToady_ joined
nothingmuch but recently azuroth perl 6 doc stuff 14:17
see Hierarchy.pod in doc/
azuroth was there anything before "but recently"? 14:18
14:22 r0nny joined 14:24 nothingm1ch joined 14:42 TimToady joined 14:52 elmex joined 14:56 nothingmuch joined 15:01 vel joined 15:04 gaal joined
svnbot6 r9165 | gaal++ | r9177@sike: roo | 2006-02-24 17:00:47 +0200 15:04
r9165 | gaal++ | * graphfuncs.pl: add more output features (and incidentally
r9165 | gaal++ | break graphing)
r9165 | gaal++ | * func_refact.pl: wip tool to explore strongly connected
r9165 | gaal++ | components in function dependencies
15:21 gaal_ joined 15:26 TimToady_ joined 15:32 TimToady joined
svnbot6 r9166 | fglock++ | iterator_engine - implemented variable interpolation, self-compiled with: 15:34
r9166 | fglock++ | *variable = ::compile_rule( '[\$|\%|\@][[\:\:]?<word>]+' );
15:36 fglock joined 15:40 foobar123 joined 15:49 nothingmuch joined
svnbot6 r9167 | audreyt++ | * Rename docs/p6doc/ to docs/Perl6/ to agree with the Perl6::* 16:01
r9167 | audreyt++ | naming convention of documents.
16:02 robkinyon joined 16:05 nothingmuch_ joined
nothingmuch_ ingy: ping 16:05
16:08 kisu joined
svnbot6 r9168 | audreyt++ | * move S17draft to Perl6::Spec::Concurrency. 16:25
audreyt huge journal posting is on 16:26
more entries are forthcoming
but please review it for sanity
(before I repost to p6*)
fglock audreyt: I'm starting the p6 compiler/parser
azuroth good night all 16:27
audreyt fglock: excellent!
fglock++ fglock++ fglock++
fglock :)
audreyt that should give us plenty of new materials to fill Perl6::API::* 16:28
fglock writing the parser using itself is much fun
audreyt the hackathoners found out that S29 is too sparse, and doesn't cover the core objects like Parser or Code or Sigs 16:29
fglock: yeah, I know the feeling :)
fglock: there's no precedence parser currently in p5?
16:30 Amnesiac joined
audreyt oh, there's ./tewk/Rules-P5/lib/P6RulesInP5/OpTable.pm 16:30
fglock audreyt: I don't know - will look OpTable.pm 16:31
audreyt but iterator_engine doesn't use that
fglock: it should simplify decomposition a lot
see ruleTable in src/Text/Parser/Rule.hs
fglock I'm writing things from scratch so far
audreyt much easier to explain than left recursion
yeah, and reuse may be a better plan :)
fglock iterator_engine reuses itself :) 16:32
audreyt cool :) 16:33
audreyt will 1)look at it and 2)write about it
fglock but I'll try to reuse whatever is possible, of course
audreyt fglock++ # again
fglock cool
kolibrie In trying to fully understand the tutorial about parsing from gaal a few days ago, I wrote a very simple 'hello world!' parser 16:36
I would like to make it smarter 16:37
16:37 Aragone is now known as Arathorn
kolibrie so that it knows the difference between words and punctuation 16:37
and has an AST of sorts
anyone have tuits to help me? 16:38
audreyt kolibrie: nopaste it? (also try #haskell, if you are using parsec)
kolibrie audreyt: yes, parsec
fglock kolibrie: I'm currently working on a parser, at misc/pX/Common/iterator_engine* 16:39
pasteling "kolibrie" at 66.239.158.2 pasted "parsec hello world parser" (27 lines, 521B) at sial.org/pbot/15999
kolibrie fglock: I am trying to understand parsing theory a little bit - I am very interesting in helping with parsing - I still get very lost, however 16:41
fglock no problem - I'm 'learning by doing'
kolibrie fglock: that's the way I do it too :) 16:42
audreyt: do you have some insights, suggestions for my hello world parser? 16:44
16:55 gaal joined
kolibrie pauses for lunch, then will resume his quest for parser comprehension 16:56
fglock about rules - /@var/ interpolates at rule compile time? if so, what is the syntax for run time interpolation? 16:57
Arathorn how usable/hackable is the metamodel stuff for the JS backend currently? 17:02
Arathorn has a sparish afteroon and is considering looking at trying to run it on top of ActionScript again
afternoon, too :\
17:04 TMTOWTDIt joined 17:08 justatheory joined 17:10 nothingmuch joined
svnbot6 r9169 | fglock++ | iterator_engine - 'pod' is defined using p6grammar itself 17:16
fglock will be out of the net 4 days - Carnival time! 17:18
17:18 Eimi joined
nothingmuch ciao, fglock 17:21
fglock still 4 hours to go 17:22
kolibrie nothingmuch: thanks for the parsing insights a few days ago 17:23
17:26 nnunley joined
fglock anyone knows how to interpolate a variable in a rule at run time? I mean, if I change the variable, the rule changes 17:26
audreyt fglock: <{$var}> 17:27
<&fun> 17:28
two syntax, same thing
17:29 avar joined, calanya joined 17:30 Eimi joined
fglock audreyt: thanks 17:35
<{@var}> is a run-time alternation? 17:36
audreyt that might be. 17:37
though not specced. would you like it to be?
fglock I need something I can push terms into, so that I can change the grammar at runtime 17:38
audreyt <{@...}> and <{%...}> sounds like ideal 17:39
fglock ok 17:40
17:49 iblechbot joined 17:50 hexmode joined, lisppaste3 joined 18:02 bsb joined
svnbot6 r9170 | bsb++ | CODE {...} returns YAML for an AST 18:05
r9170 | bsb++ | Macro uses which return YAML ASTs run (but don't work)
r9170 | bsb++ | Further notes on recursive macro possibilities
r9170 | bsb++ | r607@rex: bsb | 2006-02-23 15:29:22 +0200
r9170 | bsb++ | Link unconditionally with zlib and for yml.gz decompression.
r9170 | bsb++ | FastPackedString defined USE_ZLIB tests removed.
r9170 | bsb++ | r612@rex: bsb | 2006-02-23 15:36:55 +0200
r9170 | bsb++ | Further notes on recursive macro possibilities
r9170 | bsb++ | r613@rex: bsb | 2006-02-23 15:42:33 +0200
r9170 | bsb++ | Revert 594 and 595 MissingH additions now that zlib is used
r9170 | bsb++ | r641@rex: bsb | 2006-02-24 19:49:20 +0200
r9170 | bsb++ | YAML Ast macros, which don't actually work
18:26 fglock joined
fglock about <{@var}> - @var is an array of string, or an array of rules? or mixed? 18:27
TimToady fglock: <$var>, <@var> and <%var> are all intended to be run-time variable, and just cache the current compiled results until the next time the variable changes. <{ expr }> is just for rules more complicated than a var. 18:28
fglock TimToady: I need a way to match an array of rules, that can change at runtime (it's the @term array, and I'm compiling additional terms) 18:29
so <@var> does what I want? 18:30
TimToady That's <@var>. It will force the elements of @var to be interpreted as rules, whether string or rule object.
fglock thanks!
TimToady Yup.
However, note that <@var> is ordered like a|b|c. If you want longest-token matching, then <%var> is preferred. 18:31
spinclad audreyt: have read hackathon #3, it reads well and seems quite sensible to me.
fglock TimToady: does 'longest token' still apply if the keys are rules? 18:33
audreyt spinclad: thanks! 18:34
fglock like { /<token>[\*\+]/ => &quantifier, ... } 18:35
audreyt TimToady: does it seem reasonable that
svnbot6 r9171 | bsb++ | r9175@rex: bsb | 2006-02-24 20:35:04 +0200
r9171 | bsb++ | Macros via YAML ast do something
r9171 | bsb++ | ./pugs -e 'macro hi () { CODE { "hello"~" world" } }; say hi()'
audreyt my $x = {1}
my $y = {2} 18:36
doesn't need semicolon
but
my @x = (
{1},
{2}
)
would still work correctly?
18:37 pmurias joined
TimToady fglock: in general you'd put the constant prefix of the rule as the key of the hash and the variable part as the value. "longest token" generally is taken as applying to the first constant token, not then entire term. 18:39
18:39 avinash240 joined
TimToady flock: s/then/the/ 18:39
fglock ok 18:40
TimToady s/flock/fglock/
18:40 avinash240 left
TimToady A consequence of that is that the hash entry with key "" containst the default rule in its value. 18:40
fglock about <@var> - @var must be an array of Rule, right? 18:41
TimToady audreyt: I don't see a problem with that offhand. 18:42
fglock: Rule|Str where Str can compile to a Rule. 18:43
Same with <$rule>.
except for the "array" part.
Same with the values of <%tokens>
fglock ok
TimToady at least that's how we've been conceiving it. It seems to simplify the user view if we assume that the rule interpolator can memoize the latest compilation. 18:44
fglock cool - it works now :) 18:45
TimToady fglock++ 18:46
fglock TimToady: except that it must monitor when the variable changes, right?
TimToady right, fglock 18:47
pmurias Does Skud plan to work on docs/Perl6/Overview.pod in the nearby future, and if not am I free to work on it?
TimToady which in the case of p5 implementation probably means you have to 18:48
audreyt pmurias: you are always free to work on anything whatsoever
TimToady tie a wrapper to detect writes, or some such.
svnbot6 r9172 | fglock++ | iterator_engine - implemented '<{@var}>' ), where @var is array of
r9172 | fglock++ | rule (no 'str' yet)
audreyt it's anarchy! (and no, I don't think Skud is actively working on it)
Khisanth hrm can't you check that from the svn server? 18:52
18:53 TMTOWTDIt joined
svnbot6 r9173 | fglock++ | iterator_engine - p6grammar can be modified by adding rules to @terms 19:00
r9173 | fglock++ | Perl6Grammar::compile( '
r9173 | fglock++ | grammar grammar1;
r9173 | fglock++ | rule pod { \=[pod|head1] .*? \=cut }
r9173 | fglock++ | ' )->();
r9173 | fglock++ | push @terms, \&pod;
pmurias Khisanth: The svn log dosn't seem to help much in this case,it looks like autrijus deleted and added the file and I am not comfortable enought with svn to trace it. 19:02
s/autrius/audreyt/
19:02 uzair_ joined
svnbot6 r9174 | bsb++ | r9177@rex: bsb | 2006-02-24 21:04:39 +0200 19:05
r9174 | bsb++ | Some (passing) tests for macros which return ASTs but don't do splicing
19:05 uzair__ joined
svnbot6 r9175 | fglock++ | iterator_engine - code cleanup 19:08
19:08 gaal joined 19:10 beppu joined 19:13 fglock left, fglock joined 19:16 Arathorn is now known as Aragone 19:27 Nouk joined 19:28 gaal joined 19:30 lypanov joined 19:43 larsen joined 19:45 bsb joined
audreyt TimToady: q:lang<P6>{ say $x; {{{"a+b"}}} say $y } 19:57
TimToady: the nice thing is whitespace is not needed after <P6>
TimToady audreyt: the problem is that the default q:lang { say foo() } doesn't read well. 20:05
audreyt: I'm hacking on S06 at the moment and it currently is q:code. 20:06
obra TimToady: has audrey shown you her draft of the concurrency Syn yet? 20:07
fglock re named captures: I can use '$<spaces>:=(\s*)' to generate a 'spaces' entry in the match - is there a better way?
audreyt TimToady: q:code is alias to q:lang<P6>? that worksforme 20:08
TimToady audreyt: q:code is short for q:code(:lang<P6>), I think, so you could also have :ast(NewAST) and such. 20:09
audreyt that worksforme. 20:10
q:code:{ say $x; {{{$a}}} }
20:12 gaal joined 20:16 uzair__ is now known as uzair 20:19 uzair_ joined
theorbtwo Hmm? 20:20
It seems we are making the qr mistake again. 20:21
What's the difference between q:code and sub {}?
audreyt TimToady: q:code returns an AST object 20:22
er
theorbtwo: q:code returns an AST object
which is typically returned by macros.
you cannot call such an object
but you can eval() it.
theorbtwo Hm. 20:23
audreyt it's otherwise known as quasiquoting.
fglock audreyt: what is the relationship between AST and Match? (I'm compiling the match captures)
audreyt fglock: no relationship whatsoever :) 20:24
fglock: the Match object may carry an captured object in $/<>
aka $<>
and if you are writing a Perl 6 parser, then that capture object may be an AST object
you can set the capture object by
rule { $<> := ... } 20:25
or
rule { ... { return $capture_object } }
or
rule { ... { $<> := ... } }
if the capture object is not set explicitly
then it's set to the entire match as matched by the rule.
spinclad so in q:code:{ say $x; {{{$a}}} } the $x is literal but the $a is unquoted (interpolated)? therefore the {{{ }}}'s? 20:26
audreyt +$/ and ~$/ resolves to +$<> and ~$<> respectively.
spinclad: exactly.
q:code:< say $x; <<< $a >>> > 20:27
etc, does the same thing.
("what you repeat thrice is true")
spinclad because you'ld not likely say it thrice if you didn't mean it
audreyt indeed. 20:28
spinclad "but what if I want something to expand into something triple-embraced?" 20:29
{ { { $x } } } ? (with significant whitespace)?
20:30 bsb left, bsb joined
fglock so rule { $<> := ... } sets the capture object explicitly, but rule { $a:= ... } sets $<> to the whole match, which happens to have an 'a' thing inside 20:30
spinclad on the other hand, I'm not sure {{ }} is different from { } currently in any context. 20:31
fglock rule { $<> := ... } gives a 'cleaner' output
20:33 larsen joined
audreyt spinclad: {1=>2} is a hash but {{{1=>2}}} is not 20:36
?eval {{{1=>2}}}
evalbot_9175 Error: unexpected "{" expecting program
gaal putter about?
nothingmuch kolibrie: sure thing =)
audreyt fglock: $<> won't contain a 'a' thing 20:37
fglock: $<a> is set
and $<> is probably set to the same thing as ...
but you can't say $<><a>
in any case, $/ is still always a match object
it's just instead of capturing only strings, we relax so it can capture anything now
spinclad I could see a macro used in defining macros to want to generate {{{ ... }}} ... perhaps one could say {{{ token:<{{{> }}} ... {{{ token:<}}}> }}} or something 20:39
audreyt spinclad: you can always give out explicit delimiters
q:code(:lang<perl6>, :delim<[% %]>){...}
maybe :escape_delim or :splice_delimiters 20:40
fglock where can I read about $<> ?
audreyt but the idea is that the triple rule is just default
fglock: in nothingmuch's lost file buffer
(which means they need to be written out again to S05)
help very much welcome for that 20:41
spinclad ah, good, I'm happy then
[% happy %] that is
20:41 uzair_ is now known as uzair
fglock I'm working on ':=' based on what I've got so far - it can be corrected later 20:42
audreyt fglock: nod, but $<> is really nicer :)
wow, accidental feature
macro hey () { { "hello "~$s }.body }
$s="paradise";
is(hey(),"hello paradise","macros but it's a binding only");
(it now works)
(and I didn't code for it) 20:43
nothingmuch thinks about that
what is $s in macro hey?
oh
i see
wait
this is bad
because if you compile a macro in a separate compilation unit
then you get no 'strict' checking for variable names 20:44
fglock I've got separate match and capture already - but I don't really understand the difference yet. match is 'automatic', while capture is user defined (?)
nothingmuch fallback to COMPILING:: is not a good deafult
audreyt nothingmuch: you get it when you are compiling the macro user code, duh.
nothingmuch: if $s is not declared in "my $s" above, that's a compile time error.
also note that macros can declare $s on its user's behalf. 20:45
q:code {my $x; $x...}
nothingmuch oh i see 20:46
i read that as
macro hey () { { "hello " ~ $s }.body };
svnbot6 r9176 | audreyt++ | * Parse for the "q:code {...}" form of macros instead of "CODE{...}".
r9176 | audreyt++ | * AST objects are now blessed into "Code::Exp" (the class name can
r9176 | audreyt++ | change later), instead of shipped around as YAML strings.
r9176 | audreyt++ | * Quite accidentally, &code.body can now be returned from a macro.
r9176 | audreyt++ | * t/macros/opaque_ast_macros.t: Upgrade to latest syntax. 20:47
nothingmuch my $s = "paradise";
instead of
my $s;
macro...
$s =
audreyt :)
pmurias how should I submit changes to docs/Perl6/Overview.pod? 20:52
audreyt pmurias: you commit them to the svn repository 20:53
do you have a commit bit? if not, give me your email and I'll send you one
21:00 dduncan joined
svnbot6 r9177 | fglock++ | iterator_engine - implemented rule{$xyz := (abc)} 21:00
fglock audreyt: about using $<> to build the AST - is this what you meant? rule{ (<variable>) { return Var.new( name=>$1 ) } } 21:03
audreyt except it's $0
but yes.
fglock so building $<> is kind of a parallel process to the match 21:04
audreyt yes.
fglock :)
audreyt (also note the "return" terminates the remaining rule parts) 21:05
rule Moose { <antler> <head> <body> { return Moose.new(antler => $<antler>, head => $<head>, body => $<body>) } }
or 21:06
rule Moose { <antler> <head> <body> { return Moose.new($:<antler>, $:<head>, $:<body>) } }
pasteling "nothingmuch" at 82.81.1.109 pasted "grouping by value in input array" (11 lines, 355B) at sial.org/pbot/16003
audreyt or 21:07
rule Moose { <antler> <head> <body> { return Moose.new(*%$?SELF) } }
or
rule Moose { <antler> <head> <body> { return self.coerce:<as>(Moose) } }
21:07 justatheory joined
audreyt or 21:07
rule Moose { <antler> <head> <body> { return self as Moose } }
1,48 All 21:08
nothingmuch :as<Moose>
audreyt oops
nothingmuch :as(Moose)
audreyt or
nothingmuch :<as>
audreyt rule Moose { <antler> <head> <body> { return Moose(self) } }
nothingmuch &infix:<as> ::= &*as; 21:09
multi as ( ::?CLASS $self ) returns Item { } 21:10
pmurias audreyt: my email adress is [email@hidden.address]
fglock how about rule Moose { <antler> <head> <body> { :perl5{ return Moose->new( ... ) } } 21:11
or rule Moose { <antler> <head> <body> { :perl5{ return bless {...}, 'Moose' } } } 21:12
audreyt fglock: not sure :perl5 works like that 21:13
nothingmuch fglock: what will ... be?
audreyt rule Moose { <antler> <head> <body> { v5; return Moose->new(%$self) } }
I think this can be made to work.
fglock nothingmuch: $self->{antler} maybe 21:14
nothingmuch like audreyt said =) 21:15
audreyt TimToady: can we switch to v5; as the first statement of a block?
pasteling "nothingmuch" at 82.81.1.109 pasted "should not be in p6" (6 lines, 210B) at sial.org/pbot/16004 21:16
"nothingmuch" at 82.81.1.109 pasted "should not be in p6" (6 lines, 212B) at sial.org/pbot/16005
21:16 pmurias joined
svnbot6 r9178 | lumi++ | Some refinements for the refactoring scripts (nothing deep) 21:16
audreyt fglock: I think per the synopses, the only thing that works now is 21:17
rule Moose { <antler> <head> <body> { return eval('sub { Moose->new(@_) }', :lang<perl5>).($/) } } 21:19
though maybe we can do 21:20
q:code(:lang<perl5>){ Moose->new(@_) }.eval.($/)
as there's currently no way to switch to v5 in the middle of a perl6 code block. 21:21
(which makes sense to me, btw.) 21:22
fglock 'return Moose.new()' is easy to parse, so it can be translated to p5 even with the minimal compiler
audreyt wonderful 21:23
return Moose(self)
if you can parse that, we are all set :)
Moose.new(self) works as well.
though that needs cooperation from Moose (because it's not named) 21:24
fglock ok!
I'll be offline until wednesday 21:25
thanks audrey, nothingmuch
audreyt and I'm preparing S05 :)
fglock &
audreyt: link? 21:26
audreyt fglock++
# amazing
nothingmuch what's amazing? i lost context
audreyt fglock is amazing 21:27
fglock :) I'll miss you during the Carnival
21:28 fglock left
nothingmuch i meant - what did fglock do to be amazing =) 21:28
TimToady audreyt: { v5; ... } does not seem either easy or wise, offhand. 21:29
audreyt: $<> isn't the null key, it's a null slice. 21:30
audreyt hmm, but what about $/{}? 21:32
is that not also a null slice?
(S05 indicates that "$/{}" interpolates like a hash)
pasteling "nothingmuch" at 82.81.1.109 pasted "S09 patch on autovivification" (76 lines, 3.3K) at sial.org/pbot/16006 21:36
audreyt TimToady: and it kinda makes sense to talk about @$/, %$/ and $$/ 21:39
and also it lets us refer to $$0 and $$1 as well
TimToady audreyt: I think $$/ is really ugly. Prior art: $$ from yacc, $& from Perl 5. I can argue both are bad.
audreyt it extends the "payload" idea
yeah, but the null slice idea doesn't quite work -- unless you want to declare that $/{} doesn't interpolate like hash does 21:40
but just interpolates into the object
which seems quite exceptional
TimToady audrety: agreed
21:40 r0nny_ joined
audreyt and it can be accessed as $/.capture I presume 21:41
pmurias: got the commit bit? 21:46
21:48 calanya left
spinclad audreyt: re $:<antler>, I thought this was :$<antler> ? short for :antler($<antler>) 21:53
audreyt sorry, :$<antler> 21:54
my fingers juxpatosed
nothingmuch 6.2.11 released! | pugs.blogs.com | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | < audreyt> my fingers juxpatosed 21:55
spinclad fingers twigiled 21:58
audreyt TimToady:
my $moose = m:{ <moose> { return self as Moose } }.();
the "return" and ".()" are in harmony
and it discourage binding of $<> in vin
s/vin/vain/
so that may make sense
spinclad this looks like m() returning the { return } block now... 22:01
audreyt which is the illusion I'd like to create 22:02
spinclad but (I thought) isn't the { return } block run at that point in the match? 22:03
so later ( .() time ) is too late? 22:04
otherwise I like the symmetry
22:05 bsb joined
spinclad my $moose = m:{ <moose> { { return self as Moose } } }.(); 22:05
audreyt yes, the return is run at that point
spinclad my $moose = m:{ <moose> { return { return self as Moose } } }.(); 22:06
audreyt my $moose = m:{ <moose> { return { self as Moose } } }.()();
spinclad now I don't get the ()() ... 22:08
it's like two owl eyes riding the tail end of a moose... 22:09
my $moose = m:{ <moose> { return { self as Moose } } }.();
?
audreyt (still discussing with TimToady on this) 22:12
TimToady: and this allows the curious construct of 22:16
m:{ (\d+) { return $0 * $^x } }.(x => 10); 22:17
22:17 vel joined
audreyt but that may be too curious. 22:17
nothingmuch class Foo { has $.name }; 22:18
Foo.new( :$name );
audreyt (as it would introduce suspended evaluation)
nothingmuch Foo.name; ?
$foo.name
submethod BUILD ( $.name ) { }
audreyt (but can be made to work, just not sure it's the correct ergonomics) 22:19
TimToady audreyt: it also violates the notion that $^x always applies to
the innermost {...}
audreyt er, but the {} is the innermose {}
{return $0 * $^x} is a block that accepts one argument
TimToady But the parameter is begin passed to the rule, not to the inner block. 22:20
audreyt mm, I said m:{} not rx:{}
TimToady *being
spinclad m:{ (\d+) { return { $0 * $^x } } }.(x => 10); # works currently?
audreyt so it's passed to the match obj
spinclad: no, it's too crazy, we are still discussing
TimToady Which has presumably already matched, so the inner closure has already run. How do you pass a named arg to a func that has already run? 22:21
spinclad all right, i'll be quiet
audreyt TimToady: ...by partial evaluation
pasteling "audreyt" at 82.81.1.109 pasted "S05 patch" (71 lines, 2.2K) at sial.org/pbot/16007 22:29
audreyt spinclad: passing args into it is perhaps too crazy, so it's punted now 22:34
but otherwise .() would return whatever the inner return returned
TimToady audreyt: thinking about stealing /foo <( \d+ )> bar/ to mean 22:45
audreyt assersions are overrated anyway 22:46
assertion, even
TimToady the same as /foo (\d+) bar { return $0 }/ except $0 not set.
I think <?{...}> and <!{...}> could be assertion forms. 22:47
audreyt indeed.
<! is already assersion
for before
so <!{}> reads naturally
/foo (\d+) bar (\d+)/ 22:48
will return two things
er
/foo <(\d+)> bar <(\d+)>/
that's very useful
TimToady not all that useful, considering your "er" in list context already returns the two things.
audreyt true, but consider 22:49
/foo <( <x> <y> <z> {return ... } )>/
lexically scoped logical programming! 22:50
(x y z not visible outside <()>)
ok, maybe not that useful at all.
/foo <( (\d) (\d) )> bar / 22:54
TimToady j 22:55
s:g/j\n// 22:57
audreyt s:g/5/6/; 22:58
pasteling "audreyt" at 82.81.1.109 pasted "Revised S05 patch for "return" and ".()" forms" (70 lines, 2.2K) at sial.org/pbot/16009 23:13
23:28 SamB joined
TimToady audreyt: looks okay. I can add the <(...)> etc changes later. 23:32
23:39 Khisanth joined
audreyt cool 23:40