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 |