Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-02-24

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo