Summer of Perl | 6.2.12 released! | paste: sial.org/pbot/perl6 | pugs.blogs.com | pugscode.org | pugs.kwiki.org | www.treehugger.com/files/th_images/paradigm.jpg
Set by nothingmuch on 12 July 2006.
00:06 crapulous joined 00:15 jiing left, silug joined 00:16 jiing_ is now known as jiing 00:34 unobe_away is now known as unobe 00:41 unobe is now known as unobe_away 00:52 hexmode joined 00:56 irc joined 01:02 dolmans joined 01:09 Bit-Man joined 01:22 rodi joined 01:27 justatheory joined
clkao nothingmuch: ping 01:28
nothingmuch: your tea is on the way. but the post office said it might take longer due to the war... 01:30
dolmans clkao: which war, war in M.E or ww3? 01:32
clkao are they not the same? 01:33
dolmans not yet
clkao nothingmuch: i was quite amused reading the mail from my friend.. describing what the postoffice said.
"we just want tea, and now somehow it involves war!"
obra ?
audreyt well that happened in Boston some time ago... 01:34
meppl gugu 01:38
gugu audrey (im drunken again) 01:41
01:43 dolmans_ joined 02:00 dolmans joined
rodi wants to have a Boston oolong party 02:10
02:12 irc left 02:16 Southen_ joined 02:20 amnesiac joined 02:28 Steve_p joined
bennymack the Shat hit's the fan! 03:00
william shatner doing standup?!
03:15 nictuku joined
nothingmuch clkao: that's trajically amusing 03:23
thank you!
nothingmuch goes back to bed
03:29 Vspirit joined 03:44 agentzh joined
agentzh ... 03:44
03:47 neoesque joined 04:16 agentzh joined 04:27 buubot joined 04:36 esammer joined 04:49 jiing_ joined 05:15 agentzh joined
agentzh goes to read S05, which is the most exciting part of Perl 6. 05:22
05:31 weinig|away is now known as weinig|sleep 05:40 agentzh joined
agentzh gaal: i've completed the download process. feel free to remove that from feather. btw, the original XML file seems to be hundreds of GB or such. what can i do with it please? 05:42
05:44 agentzh left 05:45 iblechbot joined 06:17 wilx joined 06:52 Aankhen`` joined 07:02 dduncan joined 07:07 elmex joined
dduncan fyi, I have now arrived back at home following OSCON 07:08
assuming no $job distractions of significance, I expect to commit a Set::Relation rewrite that actually works within a week's time 07:09
that is all
07:09 dduncan left 07:13 mtve joined, tup joined 07:15 Southen joined 07:18 nirgle joined 07:33 Southen__ joined 08:03 Southen joined, Bit-Man joined 08:07 linsu joined 08:10 linsu left 08:15 iblechbot joined 08:17 elmex joined 08:22 larsen joined 08:26 szbalint joined 08:47 Southen__ joined 09:02 Southen_ joined 09:07 bernhard joined
dolmans how will the perl6 coroutine (block in ruby) be? 09:15
09:20 b_jonas joined, Nouk joined 09:43 daxim joined
daxim hey barenaked @larries 09:43
09:44 chris2 joined 10:12 IRCMonkeyx joined
IRCMonkeyx hi friends, what is difference between perl and perl6 , may i run the same exploits in both ? 10:13
10:16 marmic_ joined 10:18 pkrumins joined, pkrumins left
dolmans difference is too big that i can not say 10:21
IRCMonkeyx !perl6 10:25
10:26 ludan joined
IRCMonkeyx dolmans: i interest in running exploits in perl, may i use perl6 instead of perl 10:28
daxim yes 10:34
10:39 agentzh joined
agentzh ?eval proto prefix:<;> ($a) { say "yay!" } ;3 10:46
10:46 evalbot_11813 is now known as evalbot_11820
evalbot_11820 3 10:46
agentzh ?eval proto postfix:<;> ($a) { say $a } ;3; 10:47
evalbot_11820 OUTPUT[3 ] Bool::True
agentzh ?eval proto postfix:<;> ($a) { say "!a = $a!" } ;3+2;
evalbot_11820 OUTPUT[!a = 2! ] 4.0
agentzh where does "4.0" come from? 10:48
10:48 asz joined
agentzh ?eval proto postfix:<;> ($a) { say "!a = $a!" } ;'abc' x 2; 10:48
evalbot_11820 OUTPUT[!a = 2! ] "abc"
agentzh ?eval proto prefix:<;> ($a) { say "!a = $a!" };'abc' x 2; 10:49
evalbot_11820 "abcabc"
10:49 b_jonas joined
agentzh fglock: it seems that i can define a postfix:<;> in pugs while a prefix:<;> doesn't have any effect. :) 10:50
?eval proto postfix:<;> ($a) { say "!a = $a!" } ;3+2;
evalbot_11820 OUTPUT[!a = 2! ] 4.0
agentzh okay, now i see why there is a "4.0" at the end. the say function returned 1 in the case of "2;" 10:51
10:51 Yaakov_ joined
agentzh pugs++ 10:51
daxim ?eval 3+2 10:53
evalbot_11820 5
daxim hm.
agentzh ?eval proto postfix:<;> ($a) { 1 } say 3+2;
evalbot_11820 OUTPUT[4 ] Bool::True
agentzh see? 3+2; == 4 !
yay!
daxim isn't that cute... but it's wrong! </two_stupid_dogs> 10:54
agentzh postfix:<;> apparently has a higher precedence over infix:<+>
?eval proto infix<;> ($a, $b) { $a+$b } say 3 ; 2 10:55
evalbot_11820 Error: unexpected "<" expecting "::", comment, "handles", bare trait, subroutine parameters, trait or block
agentzh ?eval proto infix:<;> ($a, $b) { $a+$b } say 3 ; 2
evalbot_11820 OUTPUT[5 ] Bool::True
agentzh wow...awsome indeed!
*awesome
fglock: infix:<;> overriding also works! 10:56
10:56 tup joined
b_jonas agentzh: that reminds me of overriding , in c++ 10:56
agentzh but Perl 6's much more powerful! 10:57
in C++, one can't override C<;>
b_jonas yes
but look at this: 10:58
pasteling "b_jonas" at 81.182.25.192 pasted "overriding the comma operator in c++ in a program that compiles in c and c++ but differently" (10 lines, 334B) at sial.org/pbot/18692
agentzh b_jonas: it looks scary to me. 10:59
some new stuff in the new C/C++ standards?
b_jonas no, it's nothing new I think 11:00
in C it doesn't override anything
agentzh i didn't know C can override operators
b_jonas it can't
in C that override declaration parses completely differently
should I explain it?
agentzh yes, please 11:01
b_jonas ok, let's start with what C sees 11:02
agentzh ah, i see!
b_jonas the trick's in line 3
agentzh operator is parsed as a C variable, right?
b_jonas yes
agentzh :=) 11:03
"operator" is not a keyword in C, yes!
b_jonas so c sees just struct { struct hypergeom fooperator, number; } function;
agentzh nod
it's somewhat confusing at first glance. ;-) 11:04
b_jonas yes, it's written like that
agentzh thanks for the funny code 11:05
b_jonas it was a reply to when a friend wrote codes that ran in multiple languages but with slightly different output
wait, I'll link that
agentzh okay!
11:05 asz joined
agentzh it sounds amusing 11:06
b_jonas bottom of www.inf.bme.hu/~pts/index__en.html
lambdabot Title: pts oldalai
agentzh looking...
b_jonas and www.perlmonks.com/?node_id=521141 too
lambdabot Title: a poem
b_jonas no wait the second link's bad 11:07
a variant of the code at the first link was posted on perlmonks
agentzh aye 11:08
thanks for the link!
b_jonas uh where was it
11:08 larsen joined
agentzh i should add them to my google notebook. ;-) 11:08
b_jonas anyway he's showed me some sneaky ways to distinguish between c and c++ like that 11:09
agentzh a program that can be accepted by so many different interpreters/compilers is really interesting
b_jonas one's using scoping rules, one's using the fact that struct tags are optional in c++, these are similar ideas and I think this one's based on one of them as well
agentzh heh 11:10
b_jonas so then I tried to find other ways
one's this operator thing
agentzh maybe i should show them to my classmates and mentors
b_jonas I tried to find one using types that are built in one but not the other (there's one in either direction) but I failed 11:11
but all the solutions I knew used "sizeof" somewhere
I tried to find one without sizeof but failed again
agentzh sizeof?
b_jonas and asked him and he could create one without sizeof
agentzh: yes, it's in both my code and the partridge poem
just search for it 11:12
agentzh gotcha
the difference between C/C++ structs leads to different behavior
*behaviors
b_jonas oh, I mean the "On the first day of Christmas..." one not the "The program that speaks ten languages" btw 11:13
agentzh there're a lot of sizeof's in these programs. :=) 11:14
b_jonas yes. the sizeofless solution is also based on the scopig difference
agentzh *nod* 11:15
b_jonas I can't find the perlmonks post now sorry 11:19
agentzh is still wondering why prefix:<;> doesn't work as expected in pugs
b_jonas: np :)
thank you for showing me these programs. that's very funny 11:21
i'll print them out and examine them carefully. :=)
can anyone here access svn.perl.org? 11:26
it's down i think 11:27
there's no tests for overriding prefix:<;>, infix:<;>, or postfix:<;> in t/. should i add some? 11:29
TimToady, audreyt: please clarify the expected behaviors of overriding `;` first, or i have no way to judge whether my tests are correct or not. 11:31
Juerd agentzh: I forgot one line in my mail, making it look way too serious... Happy hacking! :) 11:34
agentzh Juerd: sure!
11:38 b_jonas joined 11:52 agentzh joined
agentzh ?eval proto infix:<;> ($a, $b) { $a + $b } say 3 ; 2 11:53
evalbot_11820 OUTPUT[5 ] Bool::True
agentzh ?eval proto infix:<;> ($a, $b) { $a + $b } say (3 ; 2)
evalbot_11820 OUTPUT[5 ] Bool::True
agentzh ?eval proto infix:<;> ($a, $b) { $a + $b } (3 ; 2) eq 5 11:54
evalbot_11820 Bool::True
11:54 Aankhen`` joined 11:55 hexmode joined
agentzh anyone knows how to restrict a multi definition within a lexical scope? 12:04
or is it possible?
Aankhen`` my multi foo { ... } # doesn't this work? 12:05
agentzh i'll try. thanks!
b_jonas uh. can you override just one prototype of multi foo lexically, or just a complete set of multis? 12:06
agentzh Aankhen``: yay! the tests pass now! thank you! 12:07
Aankhen`` Cool.
You're welcome. :-)
agentzh b_jonas: no clue :(
dolmans how to implement a grep function which eats a code block and an array, test_grep { $_ > 1 } @a? 12:08
agentzh i've just found a conversation among fglock, audreyt, and pmichaud. they were talking about weird things like infix:<;> and infix<if> in details
dolmans: test_grep { $_ > 1 }, @a 12:09
dolmans: the comma i think is mandatory
dolmans ya 12:10
agentzh sub test_grep (Code &block, @list) { ... }
b_jonas because you can lexically override just one multi in c++ but that's because there multis are dispatched compile-time. it'd probably be more difficult in perl6 as there they're somtimes dispatched run-time, aren't they?
agentzh dolmans: see the decl above 12:11
dolmans giving agentzh's snippets a shot
agentzh b_jonas: yes 12:12
dolmans: what do you mean please? 12:13
dolmans agentzh: i just test your solution, it worked, great. 12:15
agentzh dolmans: yay!
12:26 douglashunter joined 12:30 agentzh joined
svnbot6 r11821 | agentz++ | [t/operators/operator_overloading.t] 12:33
r11821 | agentz++ | added (passing) tests for overriding infix:<;>, postfix:<;>, and infix:<if>. (TimToady: please check the sanity)
12:38 agentzh joined 12:39 agentzh joined 12:40 agentzh joined 12:41 agentzh_ joined 12:43 agentzh joined
agentzh according to audreyt's remarks on 2006-04-18, infix:<;> and infix:<if> can be overridden by the user: 12:44
colabti.de/irclogger/irclogger_log/...8,Tue#l604
lambdabot Title: #perl6 2006-04-18,Tue
agentzh does anyone think that there should be a synbot (synopses bot) around here? so that we can refer to the language spec quickly 12:47
nothingmuch infix if?
hmm
that would be nice
agentzh nothingmuch: yes
nothingmuch s 03 pattern?
1 if 4 ?
agentzh maybe
pmichaud ...infix:<if> ? I thought it was statement_modifier:<if>
agentzh but i think we should add "tags" or "keywords" to synopses 12:48
or we will only find too much crap
nothingmuch agentzh: look at how the test/syn cross reference stuff works
we can put little superscript 't' links everywhere
that's a good start
agentzh pmichaud: so you think it's incorrect to define infix:<if>?
pmichaud if isn't really "infix", since only one can occur in a statement 12:49
agentzh nothingmuch: yes, i see the HTML pages from gaal
pmichaud 3 if 4 if 5 <-- error, I think
12:50 elmex joined
agentzh pmichard: so user can define his infix:<if> anyway? 12:50
pmichaud: given that there's no more than 1 if in the statement?
pmichaud well, if someone defines infix:<if>, it will probably hide statement_modifier:<if> 12:51
agentzh pmichaud: yes
that's what S04 says i think
pmichaud notes that S02 shows statement_modifier:<if>
(S04 doesn't seem to say anything about infix vs statement_modifier) 12:52
(nor would I expect it to :-)
12:55 mauke_ joined 12:59 agentzh joined
agentzh sorry, IRC faiure :( 12:59
pmichard: why don't you expect it to? 13:00
pmichaud: why don't you expect it to?
pmichaud: i think the synopses should clarify this, or i can't write meaningful tests
pmichaud because defining infix:<if> would be veryrare
I don't know that the synopses should describe what happens in every case where someone chooses to override a default behavior :-) 13:01
agentzh so S04 should outlaw this thing?
pmichaud: okay, got you
pmichaud no, it's not outlawed, it's just not common enough to warrant describing
we'll save it for "Truly Evil Perl 6 Hacks" or something like that 13:02
:-)
agentzh hence, we should not add a test infix:<if> in pugs's test suit?
should we?
pmichaud I think that infix:<if> is incorrect, so we shouldn't test for it 13:03
agentzh OK
then how about infix:<;> and postfix:<;> ?
pmichaud those should be tested for, yes, those are valid operators
agentzh and prefix:<;> ?
nothingmuch agentzh: i suggest you use e.g. feather + screen + irssi if you want to keep history when your dialup goes away 13:04
agentzh do you think prefix:<;> should be tested?
pmichaud (at least, infix:<;> should be tested)
I haven't seen a postfix:<;> or prefix:<;> -- I wouldn't expect those to be defined
agentzh nothingmuch: thanks
13:04 elmex_ joined
agentzh maybe ask larry to define them? 13:05
pmichaud why?
agentzh is kidding
pmichaud oh. I agree it sometimes *looks* like we're defining every combination :-) 13:06
pmichaud still hasn't gotten used to prefix:<=> :-)
agentzh prefix:<=> is the iterating operator, no?
agentzh grins 13:07
pmichard: thanks for the clarification :)
pmichaud yes, prefix:<=> is iterator
agentzh: anytime 13:08
agentzh *pmichaud/
pmichaud agentzh: btw, you've been doing a great job on the synopsis updates
agentzh pmichaud: :)
pmichaud: thanks!
pmichaud looks like it's time for me to board plane soon
be back tomorrow
agentzh pmichaud: have a nice trip!
13:10 mauke_ is now known as mauke 13:11 cog joined
agentzh nothingmuch: what do you think of adding tags or keywords to every part (or even every paragraph in some cases) of the synopses? 13:12
so tests can be specified with defined tags 13:13
and the cross-references between the tests and the synopses can be more friendly 13:14
svnbot6 r11822 | dug++ | - Added a test for multiline comments extended POD syntax
r11822 | dug++ | - Added self to AUTHORS
agentzh thinks pugs' Test.pm should be improved a bit 13:50
13:58 vsoni joined 14:00 agentzh joined 14:02 ivanfrey joined 14:05 bcorn joined 14:08 ivanfrey is now known as Dr_Pi
agentzh can anyone tell me why END {...} doesn't run at all in Test.pm? weird. 14:14
14:14 xinming joined 14:16 bernhard joined
agentzh audreyt: END {...} in ext/Test/lib/Test.pm doesn't run (even without the .pm.yml stuff). 14:18
audreyt: however, a simple abc.pm with an END block works fine here. weird.
14:19 [particle] joined
agentzh gives up debugging Test.pm 14:19
hopefully this issue will vanish automatically tomorrow morning. :) 14:20
seen audreyt 14:21
jabbot agentzh: audreyt was seen 12 hours 35 minutes 6 seconds ago
agentzh thanks, jabbot
14:23 buetow joined
svnbot6 r11823 | agentz++ | [t/operators/operator_overloading.t] 14:29
r11823 | agentz++ | reverted the tests for postfix:<;> and infix:<if> (tests for infix:<;> and prefix:<if> remain intact)
r11823 | agentz++ | added clarification from pmichaud++ as comments
14:35 penk joined 14:37 buetow joined
agentzh runs "nmake test-js" for the first time in his life. 14:38
14:39 cognominal joined
agentzh the JS backend seems to segfault on Win32. :-/ 14:43
14:45 tsatsos joined
dolmans i can use `sort &infix:<cmp>, @a; ' to sort an array, so how can i reverse the &infix:<cmp> function to get a reversed sorted array. i just didn't remember the 'reverse function' jargon on FP. 14:46
ah yes, implement one this sort of function transformer is easy. wonder perl6 would provide some or not. 14:55
14:59 tsatsos left
agentzh dolmans: perl6 provides a "reverse" builtin anyway :-) 15:00
dolmans: reverse sort &infix:<cmp>, @a 15:01
dolmans: though it's not very efficient
dolmans agentzh: that's not what exactly i want. i want a function transformer not a list reverser. 15:03
agentzh dolmans: yes, i know
dolmans something like sub reverse_func (&bf) { -> $a, $b {&bf($b, $a)} }; 15:04
agentzh i haven't seen such function transformers in Perl 6
does prefix:<-> work?
dolmans not tested, but trying now 15:05
agentzh IIRC, infix:<cmp> returns -1, 0, and 1
?eval 'a' cmp 'b'
15:05 evalbot_11820 is now known as evalbot_11823
evalbot_11823 -1 15:05
agentzh ?eval 'b' cmp 'a'
evalbot_11823 1
agentzh ?eval 'a' cmp 'a'
evalbot_11823 0
dolmans nope. 15:06
agentzh ?eval sort { - ($^a cmp $^b) }, 'a'..'b'
evalbot_11823 ("b", "a")
gaal -> \$ab { -(cmp(*$ab)) } # when captures work
probably the outer parens are not needed
agentzh ?eval sort { - ($^a cmp $^b) }, ('a'..'b') 15:07
evalbot_11823 ("b", "a")
agentzh ?eval sort { - ($^a cmp $^b) }, ('a'..'d')
evalbot_11823 ("d", "c", "b", "a")
agentzh yay!
?eval sort { -cmp($^a,$^b) }, ('a'..'d') 15:08
evalbot_11823 Error: No such sub: "&cmp"
gaal we can call this reverse comparator pmc for *yet another* meaning
agentzh gaal: how big is the XML file please?
i think my program is lying to me 15:09
gaal agentzh: probably 5 gb or so?
dolmans pmc? very cute and perish.
agentzh pmc has too much meanings...
*too many
gaal: thanks 15:10
gaal: my program told me the file is hundreds of GB this morning
gaal: i was really frightened. ;-)
gaal: i've already got it. feel free to remove the file from feather 15:11
gaal agentzh: see /msg :)
15:12 b_jonas joined 15:14 xinming joined
nothingmuch gaal: moose 15:19
gaal nothingmuch: elk
nothingmuch thanks again for hosting us
gaal sure thing!
next time s/could be longer
nothingmuch aye 15:20
15:20 agentzh joined
agentzh when i added outputing code outside of the END {...} in ext/Test/lib/Test.pm, i could see the outputs when running tests 15:22
but if i inserted "warn..." into END {...} itself, i couldn't see any outputs then 15:23
what is the command to run pugs' PIR backend? 15:32
okay, i've found that in Makefile 15:33
woot! prove6 supports the --pir and its alias --parrot options now 15:34
the PIR backend fails some tests on my machine. probably it's caused by my outdated parrot. ;-) 15:36
svnbot6 r11824 | agentz++ | [util/prove6] 15:42
r11824 | agentz++ | added support for the --pir option and its alias --parrot:
r11824 | agentz++ | util/prove6 --pir t/some-dir/*.t
agentzh please test util/prove6. :) 15:43
sleep & 15:47
15:48 agentzh left 15:57 xinming joined 16:40 cdpruden joined
nothingmuch audreyt: YAML::Syck seems to emit Headless in a funny way (indentation issues)... if I fix in the next day or two is it OK to just release 16:51
16:52 elmex joined 16:53 elmex_ joined
audreyt sure 16:53
make sure to not include mugwump's new test in the release
that -hooks.t need to be replaced with DDS_freeze based impl 16:54
nothingmuch okay 16:56
btw
i'd also like YAML::Node in a separate dir 16:57
dist
so that people can create YAML::Node apis to their modules
that work with either YAML or YAML::Syck
the purpose being pretty printing output
when writing files that are supposed to be for humans i'd like to sometimes explicitly choose what quoting style to use, for example
obra Hi 17:02
17:04 weinig|sleep is now known as weinig 17:07 justatheory joined
b_jonas I don't like the YAML module because it's definitely not compatible with the ruby YAML module and I belive the ruby one is closer to the specs 17:09
but there's some hope it'll improve as older versions often couldn't even read what they wrote out 17:10
obra b_jonas: you mean YAML.pm? 17:12
obra seems to recall that YAML.pm predated the spec
b_jonas yes, the perl5 thing on cpan 17:14
maybe it has, I don't know, but if I can't use them to transfer data between two languages then there's no point in using it 17:15
if I just want to serialize something for a single language, there are better alternatives
but you can blame me because I should write bug reports about it
and I'm lazy to do that
so it's also my fault 17:16
obra YAML::Syck should treat you better, though, as it uses libsyck
Written by none other than why himself
b_jonas oh. thanks, I might try that
obra no problem
audreyt b_jonas: also ingy updated YAML.pm a bit so it's more compat 17:17
but definitely YAML::Syck with ImplicitTyping on
b_jonas let me see if I have the newest version...
audreyt should behave exactly the same as the Ruby one
because it's the same code.
b_jonas is it? does the ruby one use libsyck as well? 17:18
audreyt yes. 17:19
libsyck is written for ruby core :)
(bbl, food)
b_jonas no, I have 0.58 installed and the newest is YAML-0.62 it seems 17:20
thanks
17:29 chris2 joined, larsen_ joined
nothingmuch hmm 17:37
i can't reproduce my bug
vely odd 17:40
ingy: ping 17:41
17:47 Southen joined
nothingmuch scsys.co.uk:8001/3045 17:58
lambdabot Title: perl_web paste from "nothingmuch" at 81.29.65.220...
nothingmuch audreyt: please see what you think
IMHO YAML::Syck is more correct here
18:39 bernhard joined 18:52 justatheory joined 19:44 tup joined 20:24 macroron joined 20:31 traecer joined 20:38 stevan joined
svnbot6 r11825 | fglock++ | pX/Pugs-Compiler-Rule - added static capture count to Regex; needs additional runtime work 20:55
21:07 weinig joined 21:13 iblechbot_ joined 21:18 coderhasan joined
svnbot6 r11826 | fglock++ | pX/Pugs-Compiler-Rule - fixed an extra capture in quantified Regex 21:25
21:29 coderhasan left 21:58 xinming joined 22:11 aufrank joined
aufrank hey all 22:16
22:17 kanru joined 22:23 larsen joined 23:18 kanru joined 23:35 coderhasan joined 23:36 coderhasan left 23:49 chris2 joined 23:56 apple-gunkies joined