»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by wolfe.freenode.net on 30 October 2009.
coppro is continue a different statement than next? (and likewise, leave different than last?) 00:00
colomon I think so.
but I admit the terms still confuse me.
coppro ok...
it would seem to make more sense to have next, last, and redo all have a consistent meaning across blocks (though my understanding of lexotic scopes probably means that's a pipe dream) 00:01
00:01 ihrd joined, ihrd left
jnthn colomon: (argh got disconnect) Odd they happen sooner in ng...wonder what that's down to (or if we do something that triggers it more...) 00:02
colomon jnthn: could be two different bugs, of course. 00:03
jnthn: I'm still valgrinding the crashing code in master, it is taking forever.
jnthn colomon: same bt? 00:04
colomon jnthn: dunno, didn't try it in the debugger and don't have debugging compiled in. 00:05
jnthn: I'd have been more careful about my next step if I'd known valgrind was going to take this long...
afk for a few... 00:07
TimToady coppro: next, last, and redo are consistent in all refering to "iteration", which is a dynamic concept, and hence not applicable to individual textual blocks like "when"
coppro ok, thanks 00:08
TimToady and when statements (of which default is a special case) are just executed in order as normal statements; they're only special in leaving the current topicalizer, skipping the rest of the when blocks 00:10
so that concept we call "break"
in fact, you can intermix normal statements with when statements 00:11
it's up to the optimizer to figure out if a set of when blocks can be optimized to a computed goto
coppro like C
TimToady kinda like, yes 00:12
and using 'break' in the same sense that C does
that is, in its non-loop sense
except, since we have real closures, we have to implement it with a lexotic control exception to make it give the semantics the C programmer expects 00:13
while unwinding through any interior dynamic scopes
so break is very much like return that way, just with a different target
00:14 broquaint left
jnthn
.oO( there's more than one way to torture the implementors ;-) )
00:14
TimToady the control freaks will break you
jnthn <groan>
colomon back and valgrind is still running.... 00:23
jnthn, TimToady: I'm curious what you guys think of that .mandel method I implemented around 40 minutes ago in the backlog. 00:24
It feels both wrong and evil and wonderfully seductive to me.
pugs_svn r29314 | lwall++ | [STD] add quote modifier :p aka :path 00:26
00:26 cdarroch left
TimToady colomon: spec it, and then it won't be evil :) 00:28
00:28 nihiliad left
jnthn Do we really need a built-in .mandel method? :-) 00:28
colomon oh, no, no, no!
jnthn Or better put, does it have purposes besides making those pretty pictures? 00:29
colomon That was intended to be end-user code, not something to go in core.
jnthn hehe :-)
colomon that's why I find it evil.
TimToady but if you can generalize it to a .diverge method...
jnthn augment is a little evil, but there's worse. :-)
colomon Actually, I was wondering if it implied there should be some way to call a sub that only takes one argument using something like >>. 00:30
(That's >>. not >> end of sentence. :)
00:30 Wolf2k_Pinged is now known as Wolfman2000
jnthn does @values ==> thesub(*) ==> @result; do that? 00:31
00:31 jferrero left
TimToady well, there's always hyper map 00:31
jnthn or whatever the pipe syntax is.
colomon TimToady: right, but hyper map just seems so much more awkward than >>.
TimToady feeds don't hyperize
jnthn No, that's true. 00:32
colomon can't believe he just said that, considering the equivalent would take dozens of lines of C++....
00:32 envi^office joined
TimToady though mandel is more like a hyper grep 00:32
colomon TimToady: no, you need to get both the 0 and the 1 results for it to make sense. 00:33
It's a transform, not a filter. 00:34
TimToady well, you can always define your own operator
and then hyper that
you can hyper prefixes
colomon Ha! mandel should be postfix snowman for Complex. :) 00:35
jnthn std: multi prefix:<mandrel>($x) { }; my @x; mandrel<<@x
p6eval std : ok 00:01 111m␤
jnthn er, mandel :-)
colomon Okay, I'm convinced. 00:36
TimToady decommuting & 00:37
00:38 colomon left, colomon joined, lestrrat is now known as lest_away 00:39 romanhunt joined
lisppaste3 colomon pasted "mandel crash in valgrind" at paste.lisp.org/display/91909 00:40
colomon jnthn: looks to me like it is probably not the same random crashing bug as in ng. :(
jnthn colomon: I think I may have even patched that particular segv in ng. 00:44
yes, pretty sure I did. 00:45
colomon hmmm.... maybe I can translate this script to ng....
jnthn Sometimes the gc calls mark after destroy. :-/
00:45 pointme left, zaslon joined
zaslon loljnthnhazblogged! jnthn++ 'Attribute sub-protocol and other role bits': use.perl.org/~JonathanWorthington/j...7?from=rss 00:45
00:45 pointme joined
jnthn zaslon: This morning! :-P 00:46
zaslon Sorry, I don't understand that command
colomon Ah, there's zaslon's notification.
carlin ENOMEMORYLEFT
So the RSS cron couldn't run
zaslon lolperl6adventhazblogged! perl6advent++ 'Day 11: Classes, attributes, methods and more': perl6advent.wordpress.com/2009/12/1...-and-more/ 00:49
carlin ah, moritz_++ kicked lambdabot :-)
(pause for irony...)
00:53 mubot joined, carlin sets mode: +vvv mubot pointme zaslon
jnthn mubot: help 00:55
mubot usage: mubot: [karma [name] | purge <name> | link <nick> <alternative>] | <name>++ | <name>--
jnthn mubot: karma jnthn
mubot jnthn has not yet made an impact on this world
jnthn :'(
00:55 obra joined
colomon jnthn++ 00:57
in ng: "Lexical '$_' not found"
jnthn oh?
colomon I'm guessing that's my map({ cdot($_, $y) }) ?
jnthn hmm, yeah
colomon oh wait, no it's not. 00:58
it's being called from Any.join.
jnthn Maybe some oddness with setting up $_ as a param or something...thought I'd got that righ tthoug.
colomon err.... don't see how it can be join.
cognominal ng: my @a = 10..20; say @a[0] 00:59
p6eval ng 2c7750: 10..20␤
colomon .. doesn't work properly in ng yet.
00:59 Baggio_ joined
colomon ng: my @a = 10 ... 20; say @a[0] 01:00
p6eval ng 2c7750: 10␤
colomon jnthn: changing that map to map({ cdot($^x, $y) }) fixed the problem.
jnthn ah
cognominal say 10..20.WHAT
jnthn maybe it is a bug there then :-(
colomon oh, it happened in join because of laziness.
cognominal ng: say 10..20.WHAT 01:01
p6eval ng 2c7750: 10..Int␤
jnthn cognominal: Probably you wanted (10..20).WHAT
colomon ng: say (10..20).WHAT
p6eval ng 2c7750: Range()␤
cognominal indeed
ng: say (10...20).WHAT
p6eval ng 2c7750: Array()␤
colomon cognominal: I hacked up a version of ... that just returns an array, so that it could work without iterators in ng. 01:02
jnthn: you'll be pleased to know that I'm now getting bus errors in ng with the mandel program. :) 01:03
cognominal colomon, is ... a standard operator?
colomon yes, it's the series operator.
cognominal ho, I forgot
colomon it's supposed to be very dwimmy, but I only implemented the version that goes from one Int to another.
lisppaste3 colomon pasted "mandel in ng crash bt" at paste.lisp.org/display/91911 01:05
jnthn colomon: But the returns one?
colomon yes.
jnthn yup, same old...
:-/
On the one hand, at least the segfaults seem to have one root cause.
On the other hand, it's gonna be a real pain to resolve.
01:19 lest_away is now known as lestrrat, broquaint joined
colomon jnthn: errr... with --trace=4, the trace stops once the p6 program is executing? 01:24
01:25 agentzh joined
colomon blast, just like before it works with --trace=4 on. 01:29
pugs_svn r29315 | colomon++ | [perl6advent] Switch to doing Rat this weekend. 01:31
01:32 romanhunt left
colomon jnthn: Got bus error with --trace=4 on!!!!! 01:33
The bad news: as I tried to say before, it seems like the trace switches off in the middle of the big mandel calculation loop? At least, it prints out a ton of trace info, then slowly prints out a mandelbrot set with no trace information intermixed. 01:34
01:41 envi^office left 01:50 JimmyZ joined 01:51 meppl joined 01:54 xinming_ left 02:00 JimmyZ left, JimmyZ joined 02:01 xinming joined, JimmyZ left, JimmyZ joined 02:05 Baggio_ left 02:08 xinming left 02:12 nihiliad joined 02:19 thowe left, thowe joined 02:37 RichiH left 02:40 RichiH joined 02:41 alester left 02:53 dbrock left 03:02 xinming joined
carlin mubot: karma trace 03:03
mubot trace has a karma of -3
carlin heh
sjohnson @karma 03:06
mubot: karma sjohnson
mubot sjohnson has not yet made an impact on this world
sjohnson at least i don't have bad karma! 03:07
thowe mubot: karma thowe 03:08
mubot thowe has not yet made an impact on this world
thowe story of my life
TimToady
.oO(I hope nobody names a long switch 'timtoady'...)
03:09
sjohnson heh
JimmyZ karma JimmyZ
03:09 woodford__ joined
sjohnson chin up thowe++ 03:09
thowe does the ++ operator on someone's name add karma points? 03:14
TimToady mubot: karma thowe
mubot thowe has a karma of 1
thowe I got karma the other day then. Does it go away if I sign off?
TimToady @karma 03:15
colomon thowe: the karma bot got rebooted today, we're all starting fresh.
TimToady that might have been lambdabot, which we're trying to get rid of
thowe So, I'm noticing something the last few days a couple of times that is probably about to make me ask a silly question... 03:16
Is Perl 6 not meant to use ascii sources files? The hyper characters and the strange output the ng bot gives don't seem to be meant to be ascii 03:18
colomon thowe: Perl 6 uses Unicode.
though you can use pure-ascii source if you'd like.
coppro ASCII is the way of the past... everything should be Unicode
thowe wow. 03:19
coppro Perl 6 has the sanest Unicode interpretation of any language ever
thowe puts on his shiny futuristic coveralls
Now I know I need to switch to FreeBSD. OpenBSD doesn't have any localization. 03:20
so, we're talking 16 bit character encoding here, right? not UTF-8? 03:24
diakopter std: token unv { :dba('horizontal whitespace') [ | \h+ | <?before \h* '=' [ \w | '\\'] > ^^ <.pod_comment> ] } 03:25
p6eval std : ok 00:02 106m␤
03:30 tann1 left 03:31 Baggio_ joined
diakopter std: $^P # I love this error message 03:32
p6eval std : ===SORRY!===␤Unsupported use of $^P variable; in Perl 6 please use whatever debugger Perl 6 comes with at /tmp/TXO74uWfMY line 1:␤------> $^P ⏏# I love this error message␤FAILED 00:01 105m␤
diakopter ROTFL
arnsholt Heh 03:34
Hmm. Is having 817 lines of real code and ~4000 lines of tests considered doing it wrong? ^^ 03:36
03:44 ShaneC left 03:51 Baggio_ left
diakopter arnsholt: I don't think so 03:53
arnsholt diakopter: Yeah, I donæt really think so either 03:54
I'm just amused by the wide gap in size. It's not all that surprising either, given that the code generates and analyses morphology 03:55
But it's five in the morning and I'm writing the final report. It's the little things that get you through it =) 03:56
03:58 Baggio_ joined 04:02 pnate joined, pjcj joined 04:08 justatheory left
TimToady thowe: we mostly work in UTF-8, but Perl doesn't care which encoding you use 04:12
a lot of people don't realize that UTF-16 is also a variable-width encoding 04:13
and I personally do a lot of work up in Plane 1 04:14
here's a cool character with 64 strokes: 𪚥 04:15
thowe doesn't show up here :(
TimToady nor here either, but the log has it right
04:15 jaldhar joined
thowe installs urxvt on the new box... 04:15
JimmyZ show up there, but I don't know what it is. 04:16
TimToady it's a character composed of four dragon characters
.u 𪚥
phenny U+2A6A5 CJK UNIFIED IDEOGRAPH-2A6A5 (𪚥)
thowe what does it reprisent?
TimToady lots of dragons? :) 04:17
thowe represent rather
Oh, I figured it was some Jabanese thing you knew about.
TimToady JimmyZ: and it's four traditional dragons
JimmyZ zh.wiktionary.org/wiki/%F0%AA%9A%A5
thowe er Japanese
TimToady so four ⿓ crammed into one
JimmyZ TimToady: Yes,
I'm looking at zh.wiktionary.org/wiki/%F0%AA%9A%A5 04:18
TimToady dunno if there's one with four 龙
04:18 pjcj_ left
TimToady does it give a definition? 04:19
diakopter there there be four dragons
JimmyZ It means nagging
TimToady heh
a character made up by someone with four wives, perhaps :)
JimmyZ It's old chinese. 04:20
TimToady well, pretty much everything in Extension B is...
thowe hahah
JimmyZ Pinyin is zhe2 04:21
TimToady as opposed to one of ten or eleven other meanings of zhe2 :) 04:22
04:23 Baggio_ left
TimToady none of which seem to mean 'nag' 04:23
04:23 beggars joined
TimToady though in compound, we have: 折磨 折磨 [zhe2 mo5] /persecute/torment/ 04:24
hmm break hemp/stone...
oh, grindstone, yeah, forgot tha tone 04:25
*that one
diakopter chip away -> nag
JimmyZ 𪚥 means hyperverbal 04:26
TimToady another 64-stroke one is 𠔻 04:27
JimmyZ or 'too much to say'?
character composed of four dragon characters is here: en.wiktionary.org/wiki/File:Zh%C3%A9.svg 04:29
diakopter I spent an hour with regexec.c today :^ 04:30
TimToady maybe it's only 60
04:30 gfx joined 04:31 Raugturi joined 04:32 Baggio_ joined 04:42 synth joined, Baggio_ left 04:45 lestrrat is now known as lest_away 04:47 nihiliad left 04:55 meppel joined 04:59 stephenlb left
thowe So, in perl 6, zero is equiv to false? 05:07
like C?
quantumEd rakudo: 0 ~ false 05:08
p6eval rakudo 7ef386: Could not find non-existent sub false␤in Main (file src/gen_setting.pm, line 324)␤
quantumEd rakudo: say (0 ~ (0 ~ 1))
p6eval rakudo 7ef386: 001␤
quantumEd rakudo: say ((0 ~ 0) ~ 1) 05:09
p6eval rakudo 7ef386: 001␤
quantumEd I think he answer is yes but I don't know..
thowe rakudo: if 0 { say "true" } 05:10
p6eval rakudo 7ef386: ( no output )
thowe rakudo: if 1 { say "true" }
p6eval rakudo 7ef386: true␤
05:10 meppl left
thowe m. That will be a change. I'm used to only nil and false being false 05:11
but perhaps 0 being false is more typical.
Another point I may not be clear on... Are multi subs called in order of declaration until one will work within the context you are using it? 05:16
Maybe not called, but first one that will work wins? 05:18
05:26 _jaldhar joined 05:27 lest_away is now known as lestrrat
s1n thowe: if i had to guess, by lexical scope 05:27
05:28 quantumEd left, rgrau_` joined
diakopter rakudo: vert 05:33
p6eval rakudo 7ef386: Could not find non-existent sub vert␤in Main (file src/gen_setting.pm, line 324)␤
thowe well, I'm kind of looking at the third example here: perl6advent.wordpress.com/2009/12/0...nstraints/
it would seem that an even number failed to work with the first multi sub, so it is expected to go to the next(?) 05:34
05:34 rgrau_` left, rgrau_`` joined 05:35 rgrau_ left
s1n yeah, it'll try them all one after the other backwards (or upwards, depending how you look at it) in the lexical_scope 05:38
carlin rakudo: multi foo { say 1 }; multi foo { say 2 }; foo; 05:41
p6eval rakudo 7ef386: Ambiguous dispatch to multi 'foo'. Ambiguous candidates had signatures:␤:()␤:()␤in Main (file <unknown>, line <unknown>)␤
s1n rakudo: multi foo (Str $baz) { say "string" }; multi foo { say "something else" }; foo; foo("bar"); foo(5); 05:42
p6eval rakudo 7ef386: something else␤string␤No applicable candidates found to dispatch to for 'foo'␤in Main (file <unknown>, line <unknown>)␤
05:43 jaldhar left
carlin rakudo: multi sub foo(Int $x where {$x % 2}) { say 1 }; multi sub foo(Int $x) { say 2 }; foo(2) 05:43
p6eval rakudo 7ef386: 2␤
s1n rakudo: multi sub foo(Int $x where {$x % 2}) { say 1 }; multi sub foo(Int $x) { say 2 }; foo(2); foo(3) 05:44
carlin rakudo: multi sub foo(Int $x where {$x % 2}) { say 1 }; multi sub foo(Int $x) { say 2 }; foo(5)
p6eval rakudo 7ef386: 2␤1␤
rakudo 7ef386: 1␤
s1n wee
05:44 rgrau left
carlin hmm, my rakudo cried about ambiguous candidates for foo(2), probably out of date 05:45
rakudo: multi sub foo(Int $x) { say 2 }; 05:46
p6eval rakudo 7ef386: ( no output )
carlin rakudo: multi sub foo(Int $x) { say 2 }; multi sub foo(Int $x where {$x % 2}) { say 1 }; foo(2)
p6eval rakudo 7ef386: 2␤
carlin rakudo: multi sub foo(Int $x) { say 2 }; multi sub foo(Int $x where {$x % 2}) { say 1 }; foo(3)
p6eval rakudo 7ef386: 1␤
05:53 masak joined
masak good morning, #perl6. 05:54
06:04 abra joined, justatheory joined
carlin masak: o/ 06:10
06:11 c9s_ left
carlin (got called away so now that I've looked at the result of that code before) how does that work? Wouldn't 3 match both multis? Why is the second called? 06:20
06:21 c9s joined
masak carlin: no, the second one is narrower. 06:21
carlin: the rule is that a param with a 'where' clause are narrower than the same param without. 06:22
s/are/is/
carlin oh okay, that makes sense 06:24
initially it looked rather 'odd' 06:28
masak :P 06:29
JimmyZ rakudo: multi sub foo(Int $x where {$x % 2}) { say 1 }; multi sub foo(Int $x) { say 2 }; foo(3) 06:31
p6eval rakudo 7ef386: 1␤ 06:32
06:32 colomon left 06:33 cotto joined, constant left 06:42 yath joined
yath moin 06:42
masak hi
06:42 thowe left 06:47 tann1 joined 06:49 coppro left 07:12 unixhack joined
unixhack Hi everybody 07:12
masak hi unixhack 07:13
unixhack is perl6 complete by c language??
I am from China
is perl6 complete by c language?? 07:14
is perl6 completement by c language??
07:14 Baggio_ joined 07:15 spinclad left
masak 你可以写中文... 07:15
unixhack perl6是不是用 C语言实现的
masak 不是. 07:16
unixhack 你有 QQ
masak 没有.
Rakudo (an implementation of Perl 6) is written on top of Parrot, a virtual machine. 07:17
Parrot is partly written in C.
so the answer to your question is a little 'yes', but mostly 'no'. :)
07:17 unixhack_ joined
masak (oh, and there's SMOP, another implementation of Perl 6, which is written in C.) 07:17
unixhack_ is it implement by haskell ? 07:18
masak unixhack: there's Pugs, another implementation, which is, yes. 07:19
unixhack_: but I'd recommend using Rakudo nowadays.
07:19 unixhack left
unixhack_ 你有没有 qq 07:19
masak unixhack_: 没有. 你认为我应该得到QQ?
unixhack_ 没有 07:20
只是 用的比较多
07:20 spinclad joined
unixhack_ 联系方便 07:20
masak Yes, I see. I'm more used to IRC. :)
I'll see if I can get QQ. 07:21
unixhack_ do you use x chat??
masak this is a chat.
IRC is multiplayer Notepad. :)
你的 QQ 名子是什么? 07:22
unixhack_ but i can't live a message to you by using irc chat
masak sorry, 我不动 "live a message".
unixhack_ QQ number > 07:23
what about email
07:23 Su-Shee joined
masak unixhack_ my email address is [email@hidden.address] 07:23
how, how's that for IRC incompetence? :P
unixhack_ do you use g talk ? 07:24
masak not /me, /msg... :P
unixhack_: not really, no.
unixhack_ OK
masak unixhack_: but I could, if it will help you.
unixhack_ ok
i am new to perl 07:25
I am a C++ programmer
masak ok, nice.
welcome to Perl!
unixhack_ i know little Python 07:26
python 3k
masak ah, the new one. :)
07:27 flip214 joined
unixhack_ 非常期望 perl6 07:27
但是 那个 parrot 不知道什么东西
软CPI
软CPU
?
masak yeah, I guess. 07:28
you know about JVM, or .net?
unixhack_ yes
masak Parrot is one of those.
unixhack_ .net is very poor
I prefer Java
masak 'Virtual Machine' 是不是 软CPU?
unixhack_ yes 07:29
虚拟机
软件CPU
嘻嘻
masak then you got it right.
unixhack_ 你是做什么的
什么工作
masak I am a student. 07:30
我是学生.
unixhack_ 我也是的
07:30 gfx left
unixhack_ 你大几 07:30
masak oh, cool. :)
rakudo: say 'OH HAI'
p6eval rakudo 7ef386: OH HAI␤ 07:31
masak unixhack_: that's Rakudo, by the way. that's a Perl 6 implementation.
rakudo: for 1..10 { .say }
p6eval rakudo 7ef386: 1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤
unixhack_ 是的
我希望C 实现的
或者 自编译的
用 perl6编写perl6 07:32
masak well, there are various self-hosting efforts...
Elf is one. it's Perl 6 written in Perl 6.
unixhack_ Do you know write a C complie by C language ?? 07:33
masak rakudo: say '!_kcahxinu ,olleH'.flip
p6eval rakudo 7ef386: Hello, unixhack_!␤
masak unixhack_: sometimes people do write a C compiler in C, yes. 07:34
unixhack_: I've never done it. :)
but the thought appeals to me.
unixhack_ pypy
do you know about ?
masak heard the name.
xinming masak: After reading the conversation, I was thinking wether you were from china. ;-) 07:37
masak xinming: you flatter me, sir. :)
xinming masak: Nope, BTW, some minor correction is needed to be more natural.
masak no, just two years of studies, plus judicious use of Google Translate. :)
xinming: I can imagine.
xinming "没有. 你认为我应该得到QQ?" <--- This one should be "没有, 你认为我应该有QQ?" 07:38
masak I take full responsibility. Google Translate only did what I told it to do. :)
flip214 I get the NULL PMC ACCESS errors again, on use. Any hints?
xinming hmm, Ok. :-)
flip214 strace, ltrace, --trace=65535 doesn't help
masak flip214: any program whatsoever?
flip214 Last time it was "use Digest::MD5:from<prarrot>"
Don't know what it's this time
masak flip214: it'll be very helpful if you minimize the problem to its bare essentials. 07:39
xinming: thanks. I'll remember that.
JimmyZ 大家好
flip214 Yeah ... but how do I find the offending line if it's already distributed over 20 files?
unixhack_ 大家好 07:40
JimmyZ any more about rakudo perl6 and parrot, welcome to ask me ;)
masak yes, please ask JimmyZ :) he's a native.
unixhack_ 你有 QQ没
JimmyZ yes
xinming masak: the word "got" need to be changed to "have" depending on the context.
JimmyZ: 中国人?
masak xinming: yes, it makes perfect sense.
JimmyZ xinming,我联系过你几次 了
xinming ...
JimmyZ 老是忘记我? 07:41
xinming let's talk in #perlchina
unixhack_
flip214 Sometimes I even get a segfault in libparrot.so.1.8.0
moritz_ good morning
07:41 unixhack_ left
xinming don't flood the channel with all Chinese characters. :-) 07:41
masak moritz_: morning!
JimmyZ moritz_: good moring.
masak moritz_: or should I say 早上好 :)
JimmyZ I don't wanna #perlchina 07:42
moritz_ masak: only if you want that I don't understand you
masak moritz_: no, look, it's easy... :P 07:43
xinming JimmyZ: If we talk here, there will be so many chinese characters which will be overwhelm for foreigners. :-)
masak yes, will somebody think of the foreigners! 07:44
JimmyZ xinming: then, let's talking in english.
masak
.oO( 汉字 overload... )
xinming unixhack_ was not good at English, That's why he would use Chinese all the time. 07:45
flip214 I found the line which causes the null pmc access ...
masak flip214++
flip214 it's a "use other::module;" line
masak flip214: I'm pretty sure I have such lines working in my code. 07:46
must be something more.
flip214 yes, I have lots of "use ..." lines ...
but only this one makes trouble (atm)
masak so do I! :)
07:46 woodford__ left
masak have many 'use ...' lines, that is; not make trouble. 07:47
flip214 masak: Yes, I know ;-)
I think I can draw a rather sharp line what's the culprit:
it's "our sub opt_value(options_e $index) is export { return @settings[$index].value; }" with options_e being a (non-exported) enum
as soon as that's before the =begin END I get that error 07:48
masak flip214: care to submit a rakudobug?
JimmyZ anyone wants my qq, please contact me. 07:49
Su-Shee good morning.
masak morning, Su-Shee.
flip214 JimmyZ: what's your "qq"?
morning
When will enums be exportable? 07:50
07:51 kaare joined
masak flip214: sometime after a rakudobug is submitted about it. :) 07:51
moritz_ when somebody implements it
masak flip214: what moritz_ said.
07:51 kaare is now known as Guest72068
masak but experience says an RT ticket sure helps. 07:51
masak backlogs over '"LHC" eq "Low Hanging Chocolate"' :) 07:53
colomon++
07:53 woodford joined
JimmyZ flip214: are you chinese too? 07:54
masak std: default {} 07:55
p6eval std : ok 00:01 105m␤
masak rakudo: default {}
p6eval rakudo 7ef386: ( no output )
moritz_ rakudo: default { say 'hi' }
p6eval rakudo 7ef386: hi␤ 07:56
flip214 jimmyz: no 08:01
jimmyz: at least my parents never said so ;-)
JimmyZ flip214: you have a qq? I don't think so. :) 08:02
flip214 I still don't know what qq means here ... I only know perl's qq
masak flip214: QQ is a Chinese chat client. 08:03
flip214 oh, ok. thanks for explaining.
JimmyZ flip214: native version of OICQ, which is more than OICQ. 08:04
flip214: just liking msn, stype
flip214: s/stype/skype/ 08:05
flip214 rt.perl.org just gave me "Internal Server Error"
after clicking on the perl6 queue
now it worked after a reload ....
08:13 mberends joined
mberends hello #perl6 08:14
flip214 Any ideas for "$ perl6 -e 'enum X «A B C»;'
giving a segmentation fault?
08:14 colomon_ joined, colomon_ is now known as colomon
flip214 rakudo: enum X «A B C»; 08:14
p6eval rakudo 7ef386: ( no output ) 08:15
flip214 rakudo: enum X «A B C»; print X.WHAT.perl;
p6eval rakudo 7ef386: ( no output )
masak p6eval-- is just being difficult.
flip214 but wait ... 08:16
rakudo: say '1';
p6eval rakudo 7ef386: 1␤
flip214 Hmmm, my perl6 doesn't even work without arguments ..
masak
.oO( maybe just as well... )
08:17
flip214 do you mean that it doesn't make much difference for me? gee, thanks 08:18
08:18 colomon left
masak I mean that the Rakudo REPL isn't known to make people happy. 08:18
flip214: if you think you've found a bug in Rakudo, you should definitely create an RT ticket about it. 08:19
by the way, someone took Wolfman2000++'s challenge: huri.net/tech/perl6-vigenere 08:20
08:20 PacoLinux left 08:27 tann2 joined 08:28 constant joined 08:29 iblechbot joined
mathw hi 08:31
masak o/ 08:33
08:43 tann1 left, colomon_ joined, colomon_ is now known as colomon 08:59 Alias_ left
flip214 I now removed the whole parrot directories in my rakudo directory; "git status" shows no changes; but "perl6" without arguments crashes. 09:01
src/io/api.c:306: failed assertion 'pmc'
Backtrace - Obtained 23 stack frames (max trace depth is 32).
/usr/lib/libparrot.so.1.4.0 [0x7feb4091b9e3]
Is that because of userspace changes? Some incompatible libraries.
masak flip214: works here.
flip214 ok
masak flip214: waitwait, did you remove the parrot directories, and then not put them back? 09:02
flip214 I removed them, and did "perl Configure.pl --gen-parrot" - which did a "svn co"
moritz_ so you have a globally installed parrot which conflicts with the one that's built locally 09:03
/usr/lib/libparrot.so.1.4.0 09:04
that's... ancient
masak moritz_++ # diagnosis
09:05 payload joined 09:06 jferrero joined 09:08 colomon left
flip214 oh yes ... but why does it now conflict? I'm running that since a few months, and only now I get this problem. 09:09
09:10 Raugturi left
moritz_ because you removed the correct parrot libs that were earlier in the search path 09:11
masak rakudo: class A { has $.a; }; class B { has $.b }; my $x = A.new(:a<hi>); my $y = B.bless($x)
p6eval rakudo 7ef386: ( no output )
masak locally, I get "No such attribute '$!b' in class 'B'"
oh, wait. forget the inheritance.
same result, though. 09:12
ng: class A { has $.a; }; class B is A { has $.b }; my $x = A.new(:a<hi>); my $y = B.bless($x)
p6eval ng 2c7750: No such attribute '$!b' in class 'B'␤current instr.: 'perl6;Mu;BUILD' pc 1482 (src/builtins/Mu.pir:127)␤
masak cheers jnthn on to fix this 09:13
moritz_ what should that be? a rebless?
flip214 moritz: you mean because of the 1.7 to 1.8 transition? But I re-configure if necessary after "git pull" ... well, never mind.
I removed 1.4; recompilation is running. 09:14
moritz_ that's not what I meant; but what I meant is likely wrong anyway
masak moritz_: yes, a rebless. a new object with more slots. 09:15
hm, speaking of slots: Tene is on for the calendar tomorrow, and his slot says '???'. 09:18
moritz_ if he doesn't come up with something today, we can simply take my Whatever post and stick it in 09:19
09:20 Alias joined
masak nod. 09:20
I'm amazed at how well the Advent Calendar works.
moritz_ though it's easy to explain why it works so well :-) 09:21
masak Perl 6 and Christmas clearly work well together. ;)
moritz_ :)
not quite my explanation, but still good :-)
09:21 Baggio_ left
masak moritz_: I learned the other day that the anarchy of #perl6 partly inspired the modus operandi of #padre. 09:22
that makes me happy.
moritz_
.oO( cultural hug-imperialsm )
09:23 Baggio_ joined
masak phenny: tell pmichaud re Pm-13 that Regex ~~ Method feels right to me as well. but why does one call them with /<Grammar::xyz>/ and not with /<Grammar.xyz>/, in that case? I've always been slightly surprised that it's the former syntax. 09:28
phenny masak: I'll pass that on when pmichaud is around.
09:31 Alias left, Alias joined 09:32 Transformer joined
mathw must finish the day 12 advent entry tonight 09:35
masak mathw: 13.
09:36 Transformer left, woodford left
mathw oh yes 09:40
whew
an extra 24 hours :D
masak bonus time! \o/ 09:41
mathw I should still finish it tonight though, so people will have time to check it for me
moritz_ speaking of checking... you're all welcome to review my Whatever post 09:42
mathw oh really 09:44
mathw cracks his knuckles and cackles
masak moritz_: '# indexing from the back of the array' -- it would be useful to state what the indexed element is as well. 09:46
moritz_ ok 09:47
09:47 Baggio_ left
masak similarly, '# gives a random permuntation\n # of @x' is all very well, but people might not be aware that the positional argument to .pick() is usually a number. 09:48
I'd make the comment '# pick all of the elements, in random order' or something like that. 09:49
it'd play better with people's preconceptions of '*' as meaning 'many'.
09:50 Baggio_ joined 09:53 payload left
IllvilJa jnthn: in today's Perl 6 advent calendar post, shouldn't the last word in the fourth text paragraph (skipping code snippets) be "$self" rather than "self"? (It's the paragraph describing methods and that methods automatically takes care of invocants etc) 09:53
09:54 Alias left
IllvilJa jnthn: but all in all a very good introduction to OO in Perl 6. 09:54
(All these perl 6 advent calendar posts have been very useful so far) 09:55
mathw IllvilJa: No, self is the keyword which refers to the invocant of the current method
$self would have to be explicitly declared in the signature 09:56
masak rakudo: sub self() { say "OH HAI" }; self 10:01
p6eval rakudo 7ef386: Lexical 'self' not found␤in Main (file src/gen_setting.pm, line 324)␤
masak submits rakudobug
moritz_ nope, that's fine
rakudo: sub self() { say "OH HAI" }; self()
p6eval rakudo 7ef386: Lexical 'self' not found␤in Main (file src/gen_setting.pm, line 324)␤
moritz_ *that's* a bug
masak ah. :)
rakudo: sub self() { say "OH HAI" }; &self()
p6eval rakudo 7ef386: OH HAI␤ 10:02
moritz_ but without the parenthesis the built-in takes precedence, if it's parsed as term (and not as function)
std: self ~~ 1
p6eval std : ok 00:01 106m␤
moritz_ std: sub a { }; a ~~ 1
p6eval std : ===SORRY!===␤Preceding context expects a term, but found infix ~~ instead at /tmp/HX05nDhQTe line 1:␤------> sub a { }; a ~~⏏ 1␤FAILED 00:01 105m␤
moritz_ and you see that STD.pm doesn't parse self as a function 10:03
masak right. it's a term.
10:09 agentzh left 10:11 tann2 left, payload joined 10:15 alexn_org joined, Alias joined 10:16 Baggio_ left 10:19 Baggio_ joined 10:20 ejs joined
IllvilJa mathw: Ok, I see. 10:27
10:30 JimmyZ left
flip214 I find that funny how rt.perl.org shortens the domain of the email addresses ... might be good for some confusion. 10:32
moritz_ iirc there are two views; if you're signed in you can see the full email address 10:34
flip214 Well, I *can* see the full email address (without being logged in) ... at least as "client". Only "From" is short.
See rt.perl.org/rt3/Public/Bug/Display.html?id=71196
10:37 Alias left, Alias_ joined 10:42 riffraff joined 10:45 am0c joined 10:46 cognominal left 11:01 cognominal joined, cognominal left 11:10 ihrd joined, ihrd left 11:14 Alias_ left, Alias joined 11:20 c9s left, Alias left, Alias_ joined
Juerd It seems Perl 5 is settling on reverting [:xxx:] bracket expressions to ascii-only while making \w, \d and \s match unicode stuff. 11:32
mathw interesting
Juerd I think it's an interesting and acceptable compromise :) 11:33
Especially because they make the posix-like expressions really posix-compliant now.
POSIX doesn't do unicode apparently :)
Su-Shee practical. I have a bunch of cases where this will come in handy.
mathw urgh 11:35
I don't like POSIX ones
but that's just familiarity I think
11:43 broquaint left 11:45 colomon joined 11:51 ejs1 joined 11:56 c9s joined, rodi joined 11:58 vorner joined 11:59 payload left, colomon left 12:01 alexn_org left, alexn_org joined
vorner Hello, I'm trying to get some grasp around perl6 with rakudo, but I sometime meet a missing feature. But there is one thing I'm not sure if I do wrong or is missing - the hyper metaoperator works with >>, but not with the unicode version of the characters. Is that expected? Thanks. 12:02
moritz_ vorner: ususally it works, but not from the command line (with -e) or from the interactive environment
rakudo: say (1, 4, 9)».sqrt 12:03
12:03 ejs left
p6eval rakudo 7ef386: 123␤ 12:03
moritz_ rakudo: say (1, 4, 9) »+« (-1, 2, -5)
vorner ah, right, I tried from interactive
p6eval rakudo 7ef386: 064␤
12:03 broquaint joined 12:04 colomon_ joined
moritz_ p6eval write to a temp file 12:04
12:04 colomon_ is now known as colomon
vorner Ah, thanks, it works from file now :-) 12:05
12:07 vorner left 12:08 pmurias joined, vorner joined
pmurias masak: SMOP is not more C based then parrot 12:08
masak pmurias: but Parrot -is- C-based. 12:09
vorner By the way, are more unicode operators expected? Like → for ->?
moritz_ vorner: the core language is (mostly) limited to Latin-1 characters 12:10
vorner: so "no"
rakudo: say ord '¢' 12:11
p6eval rakudo 7ef386: 162␤
moritz_ oh, even that's latin-1
xinming vorner: The unicode version of perl 6 ops are mostly for aliens. :-)
moritz_ so I guess all of the operators in core are from the Latin-1 subset of Unicode
pmurias masak: so is SMOP ;) 12:12
vorner ok, so a module with macros to translate them could be a nice excercise, thanks for the info 12:13
moritz_ right, once macros are in place :-)
vorner: out of curiosity, how did you come to play with Perl 6?
pmurias using none Latin-1 characters for Perl 6 would be good
as it would stop anyone for attempting to encode Perl 6 in Latin-1 (which BTW should die) 12:14
vorner moritz_: I'm using perl5 quite a lot and I know about existence of perl6 for some time already, but somehow I found out lately it works mostly now, so I gave it a little try out of curiosity 12:15
moritz_ what's wrong with having an --encoding option to tell the compiler the encoding for the soruce file
vorner: ok, thank you
masak pmurias: for a while, it sounded like you wanted to point out something about the C-basedness of SMOP and Parrot. but now you just seem to agree with me. :)
vorner I found it trough parrot when I wanted to know if it runs on ARM (I want to get a touchbook and noticed ghc does not run there) 12:16
moritz_ so, does parrot work on ARM?
moritz_ has no idea 12:17
vorner they say it does
but the touchbook does not arrive yet, so I did not test
*did not
moritz_ be sure to let us know the result when you try :-)
12:18 Alias_ left, colomon left, colomon joined
vorner I fear the memory needs more than the architecture, but I guess that will get a lot better over the time 12:18
moritz_ dearly hopes so 12:20
compiling rakudo takes much memory, because all the builtins are concatenated into a single source file, and then compiled 12:21
I've been wanting to compile the Perl 6 source files separately, but it's non-trivial
because they are notionally all in the same lexical scope, but also each file is a lexical scope itself 12:22
vorner Well, I didn't really talk about compiling rakudo. I tried to parse mbox files with a grammar yesterday and managed to write few versions that took 500MB of ram for 5MB mbox file 12:23
but I guess its partly because I didn't manage to do it using non-backtracking regexes only
moritz_ did you use NQP? or PGE? 12:24
vorner hmm, I don't know
I just wrote some grammar { } with some tokens and regexes inside and called parse 12:25
12:25 payload joined
moritz_ so you used rakudo, ok :-) 12:25
I was confused because parrot comes with two grammar engines too 12:26
vorner I guess there's nothing like lazy grammar, that would give the matched parts one by one and it would load the data from file as needed, right?
moritz_ not yet
but in a perfect Perl 6 you could make a stream from a file handle 12:27
vorner Well, I ment in the specification, I know lazy lists are not yet implemented and everything
moritz_ perlcabal.org/syn/S05.html#Matching...on-strings
12:27 ejs2 joined
vorner ah, thanks :-) 12:28
moritz_ the idea is that it works just like parsing a string, but the grammar engine calls .moreinput or so if it reaches the end of the current string
and the grammar can contain <cut> assertions to tell it to throw away data that has already been processed 12:29
vorner And the Match object would act lazily too?
moritz_ if you process such a stream, you wouldn't build the full match object 12:30
you'd rather use the reduction methods that you can attach to tokens/regex/rules
so if you parse an mbox file, you'd have something like 12:31
grammar MBox { token TOP { ^[ <single_mail> <cut> ]* $ }; ... } 12:32
and you'd attach a reduction method to rule single_mail
and whenever that matches successfully, you'd build an EMail object from it, or so
so of course each single_mail rule would build a Match object 12:33
vorner or do whatever I needed with it and throw away, that seems like a really nice thing :-)
moritz_ but the <cut> tell Perl that it can be thrown away if no other references point to it 12:34
pugs_svn r29316 | pmurias++ | [mildew] t/spec/S04-statements/until.t passes 12:35
r29317 | pmurias++ | [mildew] remove &EXPR
moritz_ I think grammars are a really nice idea, and will be one of Perl 6's killer features (for certain kind of tasks)
masak aye. 12:36
moritz_ in Perl 5 regexes are used extensively, but only very few modules on CPAN give you access to well-tested, reusable regexes
vorner Thanks a lot, I'm looking forward to these features, it looks like lazy programming will work like in haskell but without the inside out thinking
moritz_ you're welcome
for example Regexp::Common::URI doesn't like https:// URLs
masak I still think we have a few nasty surprises to discover about laziness. not so sure it'll be all roses. :)
moritz_ so what I do is my $regex = $REP{URI}{http}; $regex =~ s{http}{https?} 12:37
and that's really ugly
12:37 ejs1 left 12:41 Baggio_ left, Baggio_ joined
pugs_svn r29318 | pmurias++ | [mildew] while works 12:43
masak meta-regexes :) 12:44
moritz_ in Perl 6 I'd just inherit from the grammar, and override token schema 12:45
perhaps a few more lines to type, but feels so much cleaner
masak definitely cleanER, yes. :) 12:46
Wolfman2000 *yawn* morning
masak but it still suffers from the usual problems of inheritence hierarchies.
Wolfman2000: \o
12:47 Alias joined
moritz_ masak: aye 12:51
or maybe just my $grammar = URI but { token schema { 'http' s? } }; 12:52
masak ooh, that's nice.
rodi that is pretty.
masak rakudo: class A { method foo { say "OH HAI" } }; my $b = A but role { method foo { say "OVERRAID" } }; $b.foo 12:53
p6eval rakudo 7ef386: ( no output ) 12:54
masak locally, "The but operator can only be used with a role or enum value on the right hand side"
...which is nonsensical.
moritz_ I've seen that message too
jnthn Rakudo didn't get anonymous role support yet.
masak jnthn! \o/
jnthn But yes, that'll work (the variant with role in it) one it does.
masak jnthn: what would one mix into a grammar? 12:55
a grole? :)
jnthn groles as masak
masak: Just a role :-P
masak *grol*
moritz_ I see no reason why roles shouldn't contain regexes
rodi It's dark. Your class is likely to be eaten by a grule. 12:56
jnthn They can.
lol!
Since a regex is "just a method", you'll get the conflict resolution and so on too.
moritz_ there's got to be a grule against this!
masak gruans
12:57 Lorn joined
jnthn aww...only one comment on my OO post. 12:58
12:58 c9s left
jnthn On the upside, it doesn't say "lol you sOOk" 12:58
vorner jnthn: You write the advent callendar? 12:59
jnthn vorner: I wrote the lastest post.
vorner: Many of us write the advent calendar. :)
12:59 SmokeMachine joined
jnthn A group adventure, it is. 12:59
vorner its a nice breakfast reading :-)
jnthn :-) 13:00
vorner anyway, I didn't manage to introspect the metaclass, Class.^^methods didn't work :-|
masak it makes me wish Advent came oftener than once a year. :)
vorner: there's only supposed to be one ^ 13:01
jnthn oops, did I write ^^
vorner No
jnthn no, I writed one.
vorner but I wanted methods of the metaclass, not the class
masak it doesn't exactly work like that in Perl 6.
jnthn ah. :-)
vorner so I interpolated a little
jnthn Nice try ;-)
masak extrapolated. :)
moritz_ so far jnthn, masak, pmichaud, colomon, PerlJam, mathw and me (did I forget anybody?) wrote for the advent calendar
jnthn .^^^^^methods # meta-meta-meta-meta-meta-methods! 13:02
masak moritz_: Wolfman2000++
Wolfman2000 thanks masa
masak jnthn: you wish :)
jnthn vorner: You'd want to grab the metaclass explicitly and call on its metaclass.
masak: I *so* don't! :-)
masak Wolfman2000: I don't often get called that. :P
Wolfman2000 err...whoops
jnthn vorner: $foo.HOW.^methods
Wolfman2000 typo
masak Wolfman2000: :)
vorner still has much te learn 13:03
masak Wolfman2000: it's some pidgin for 'master', isn't it?
I prefer to think of myself as a peer.
Wolfman2000 I don't know 13:04
I just forgot the k
jnthn masak: so it's YOU that's always resetting my connection!
pmurias jnthn: not only yours!
masak jnthn: yah, sorry about that. :P
mberends pmurias++: interesting progress you're making :-) what docs are there for getting mildew or mildew-js running locally? 13:06
pugs_svn r29319 | pmurias++ | [mildew] add is export multis in Test.pm, STD gets to read the used 13:07
r29319 | module
pmurias mberends: you managed to get it running didn't you? 13:08
mberends pmurias: istr mildew-js was working here (on maybe a different host, not sure) a few weeks back. now trying to make mildew , cannot remember how to put cabal on debian stable. 13:10
pmurias mberends: the hard part right now is that the current mildew can't compile it's CORE
so you would need a revision of mildew before the start of porting to STD run make CORE-js and then update it to HEAD 13:11
mberends oh, maybe it's better to just wait until you finish your substantial refactoring. presumably old_VAST/ is doomed. 13:12
pmurias mberends: that would be 29235
mberends: old_VAST is leftovers 13:13
it's only used for coping over code to VAST/ 13:14
masak latest bug news: we've passed 550 new/open Perl 6 bugs in RT.
mberends pmurias: ok, that r29235 is a good idea to try this evening :)
masak if ng doesn't merge this month, we might make 600! \o/
13:14 takadonet joined
Wolfman2000 that doesn't soud good 13:15
pmurias mberends: try 29234 as you don't want the first broken revision
moritz_ masak: if ng merges this month, we also might make 600 :-)
masak moritz_: win-win :)
mberends pmurias: thanks 13:16
masak Wolfman2000: it's pretty good. RT tickets means people care.
moritz_ I expect ng to just have different bugs than master :-)
like, no hashes so far
masak I hope custom postcircumfix operators will have fewer problems in ng.
takadonet good morning guys/girls 13:17
masak takadonet: \o
they're very powerful/useful, but they have too many problems right now in Rakudo.
pugs_svn r29320 | pmurias++ | [mildew] ported over fatarrow and loop {...} 13:34
r29320 | t/loop.t doesn't define it's own return and tests a second iteration
13:34 vorner left 13:37 vorner joined 13:38 TiMBuS left
flip214 masak: is there any hidden meaning in which arm you put up when someone greets? 13:45
13:45 JimmyZ joined
masak flip214: not beyond the fact that I like to alternate, so one arm doesn't tire. 13:46
flip214 not that relevant, as it's a virtual arm, isn't it?
moritz_ but the virtual arm is raised by a real person :-) 13:47
masak 'your mind makes it real'. 13:48
carlin masak: another conflict; both november and web have a lib/Tags.pm
takadonet ...
masak carlin: oh! now, that one is much more interesting.
carlin: because they do completely different things. 13:49
JimmyZ Oh, I can't join parrot :(
moritz_ why?
masak carlin: I think Web.pm's is the more official one, and the one in November should really be November::Tags anyway.
carlin: want me to change it right away?
carlin masak: that'd be good 13:50
masak does it 13:51
13:52 payload left
colomon what's the "#?rakudo emit #" fudge do? 13:52
13:54 payload joined
colomon Oh, it emits a # in the comments, commenting out the line. Hmmm... why not skip? 13:54
oh, because the line isn't a Test.pm directive. 13:55
moritz_ glad I was of help, colomon :-) 13:56
colomon moritz_: thanks for listening. ;)
moritz_ just came up with a good name for Web.pm
Ruby on Rails - Perl 6 on Wings
Su-Shee I just suggested Perl in Oysters in the next door channel. ;) 13:57
eiro jeweb ?
PerlJam Perl 6 - it gives you wings
moritz_ what would that be, with security extensions? -T? :-)
PerlJam oh wait ... ;-) 13:58
eiro hello world
moritz_ helleiro
masak o/ eiro \o
PerlJam Perl - weapons of mass construction 13:59
masak for those who yearn for their daily dose of type papers, here's an interesting one that I found: "The Expression Problem" by Wadler. www.daimi.au.dk/~madst/tool/papers/...ession.txt -- it puts words to something that I've sometimes thought about.
moritz_: in fact, my plan was to name the Catalyst-like MVC framefork "Principle". 14:00
thus, "Perl 6 on Principle".
PerlJam masak++ 14:01
moritz_ good idea :-)
masak glad you like it. :) 14:02
moritz_ but it's not good to search for :/
masak the rest is simple... just a matter of programming. it's the name that's tough. :P
moritz_ neither is Wings, though
masak moritz_: if people search for 'perl 6 principle', they're likely to find something.
JimmyZ loves native type 14:03
masak even 'perl principle' oughta work.
14:03 beggars left
Tene ack, I need to write my advent post! 14:04
>.>
moritz_ prints out the paper masak++ linked to, for later reading
PerlJam according to google, "principle" is "gensoku" in japanese. You could continue the trend of using anglicized japanese words
pmichaud jnthn: ping 14:05
phenny pmichaud: 09:28Z <masak> tell pmichaud re Pm-13 that Regex ~~ Method feels right to me as well. but why does one call them with /<Grammar::xyz>/ and not with /<Grammar.xyz>/, in that case? I've always been slightly surprised that it's the former syntax.
masak PerlJam: I'll think about that.
pmichaud masak: <Grammar.xyz> ought to be a xyz method call on the Grammar object. 14:06
whereas Grammar::xyz is looking up the xyz method from Grammar and invoking it on the current cursor
(just as <xyz> looks up the xyz method from the current cursor and invokes it on the current cursor) 14:07
jnthn pmichaud: pong
moritz_ but... Grammar::xyz looks like searching for a symbol in a package
pmichaud it's the same for $xyz.Grammar::abc syntax, though
moritz_ which would imply that inheritance is not respected
Tene moritz_: you are. the symbol is a method.
pmichaud or, for consistency, $abc.Grammar::xyz
which looks up the xyz method from Grammar, and then invokes that on $abc
14:08 JimmyZ left, JimmyZ joined, jferrero left
pmichaud and correct, inheritance is not respected in this case. In fact, the Grammar::name syntax is explicitly asking that there be no inheritance below the level of Grammar 14:08
(but we'd accept any xyz method that comes from a parent of Grammar, if Grammar doesn't have its own) 14:09
masak pmichaud: thanks. that explains it. more specificallt, 'invoking it on the current cursor' explains it for me.
moritz_ it explains it, but doesn't make all that happy :-)
pmichaud well, if you want true inheritance, you just say <xyz> instead of <Grammar::xyz> 14:10
same as $abc.xyz follows inheritance but $abc.Grammar::xyz doesn't
(as far as $abc is concerned, that is)
moritz_ but that only works inside the current grammar
pmichaud ...does it?
moritz_ let me rephrase
how do I invoke a rule from a grammar which isn't part of the inheritance hierarchy of the current grammar, and still respect inheritance? 14:11
colomon rakudo: my @a = (); say @a.elems
pmichaud I don't understand "still respect inheritance" in that case.
p6eval rakudo 7ef386: 0␤
colomon ng: my @a = (); say @a.elems 14:12
p6eval ng 2c7750: 1␤
Tene moritz_: what would "respect inheritance" mean there? How would oyu expect the behavior to differ between something that does and something that doesn't?
moritz_ in a class I can simply say $objectFromOtherClass.some-method
PerlJam moritz_: a concrete example might help
pmichaud moritz_: oh. Are you asking about <OtherGrammar::xyz> ? 14:13
moritz_ pmichaud: yes
pmichaud moritz_: that's how you do it. :)
moritz_ PerlJam: I'll try to come up with one
pmichaud <OtherGrammar::xyz> respects the inheritance tree of OtherGrammar
moritz_ ok
then my question is answered 14:14
but I still think that it looks like it doesn't, but maybe that's because I programmed too much in Perl 5
masak how does one do it while not respecting inheritance, then? :)
Tene moritz_: what are you thinking it would do, then? Just fail on an inherited method? 14:15
14:15 hugh4life left
moritz_ Tene: yes 14:15
Tene Oh. That would be LTA.
moritz_ it would
that's how Rakudo did it some time ago
pugs_svn r29321 | colomon++ | [t/spec] Fudge elems.t for ng. 14:16
moritz_ ng: grammar A { method TOP { <a> }; token a { 'b' }; }; grammar B is A { token a { 'c' } }; say B.parse('c')
p6eval ng 2c7750: sh: ./perl6: No such file or directory␤
pmichaud afaik, ng doesn't have grammars yet
14:17 hugh4life joined
pmichaud masak: it would be done using a regex interpolation 14:17
masak ah.
pmichaud (jnthn: ping response sent via /msg ) 14:18
moritz_ ng: grammar A { method TOP { <a> }; token a { 'b' }; }; grammar B is A { token a { 'c' } }; say B.parse('c')
p6eval ng 2c7750: Method 'isa' not found for invocant of class 'Undef'␤current instr.: 'perl6;Perl6;Actions;_block922' pc 142140 (src/gen/perl6-grammar.pir:29044)␤
pmichaud afaik, ng doesn't have grammars yet
moritz_ pmichaud: just wanted to see the error message :-)
it's... curious :-)
pmichaud agreed ... I'm not sure about that error message :)
colomon Does ng even have a class Undef? 14:19
pmichaud no, but Parrot does.
colomon oh.
pmichaud nqp tends to turn non-existent lookups into Undefs
14:20 mj41 left
colomon moritz_: does test #446 in ord_and_chr.t work for you? 14:20
moritz_ yes. I was just about to ask about that one 14:21
PerlJam Is p6eval's nqp the old nqp or nqp-rx?
moritz_ curious it works
PerlJam: the shiny, new and improved one. Of course. :-)
colomon I was just about to unfudge it. :)
PerlJam excellent
moritz_ ng: say "\c[LATIN CAPITAL LETTER A WITH DOT ABOVE]" eq "\c[LATIN CAPITAL LETTER A, COMBINING DOT ABOVE]"
p6eval ng 2c7750: 1␤
moritz_ ng: say "\c[LATIN CAPITAL LETTER A WITH DOT ABOVE]" eq "\c[LATIN CAPITAL LETTER A]\c[COMBINING DOT ABOVE]" 14:22
p6eval ng 2c7750: 1␤
colomon ng: my $rt65172a = "\c[LATIN CAPITAL LETTER A, COMBINING DOT ABOVE]"; say $rt65172a.org
p6eval ng 2c7750: Method 'org' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
colomon ng: my $rt65172a = "\c[LATIN CAPITAL LETTER A, COMBINING DOT ABOVE]"; say $rt65172a.ord
p6eval ng 2c7750: Mu()␤
moritz_ ng: say "\c[LATIN CAPITAL LETTER A WITH DOT ABOVE]".chars
colomon thought it might be something like that.
p6eval ng 2c7750: 0␤
14:22 Guest72068 left
moritz_ colomon: then better skip it 14:22
colomon ought to add test
ord always has to be > 0, doesn't it? 14:23
masak carlin: pushed s/Tags/November::Tags/
moritz_ ng: say ord("\c[LATIN CAPITAL LETTER A WITH DOT ABOVE]")
p6eval ng 2c7750: Mu()␤
moritz_ ng: say ord("a")
masak in fact, I'll do the same with a few other classes while I'm in there.
p6eval ng 2c7750: 97␤
moritz_ ng: say ord("\0")
p6eval ng 2c7750: 92␤
moritz_ ng: say ord(chr(0))
p6eval ng 2c7750: 0␤
carlin masak: Thanks :-)
moritz_ colomon: not always, but most of the time :-) 14:24
colomon well, > 0 if you give it a non-zero character.
moritz_ right
ng: say("\c[LATIN CAPITAL LETTER A WITH DOT ABOVE]")
p6eval ng 2c7750: ␤
colomon my point being we can add a test to make sure that it's not just the ord values that are equal, but that the ord values are also sensible.
moritz_ colomon: go right ahead :-)
colomon so skip instead of todo for the passing but wrong test? 14:25
moritz_ colomon: but you see it's the \c interpolation that's not working, not ord()
+1
colomon oh, so testing that it gets chars > 0 is better. cool.
14:25 PacoLinux joined
moritz_ you can also test for the right ord straight away 14:26
rakudo: say ord("\c[LATIN CAPITAL LETTER A WITH DOT ABOVE]")
p6eval rakudo 7ef386: ( no output )
dalek vember: 198e75a | masak++ | (7 files):
renamed s/Tags/November::Tags/
masak dalek: hey, great! 14:27
moritz_ $ perl -Mcharnames=:full -wE 'say ord("\N{LATIN CAPITAL LETTER A WITH DOT ABOVE}")'
550
colomon: that's the desired result
colomon I have to admit I'm not completely comfortable testing for that, in my unicode ignorance. 14:28
moritz_ then I'll do it :-) 14:29
colomon one sec
moritz_ 1
0
waited :-)
pugs_svn r29322 | colomon++ | [t/spec] Refudge incorrectly passing test, add test that indicts why it is incorrect.
colomon there. 14:30
14:32 gbacon joined
pugs_svn r29323 | moritz++ | [t/spec] be more explicit when testing for graphemenss 14:34
colomon Teamwork. :) 14:36
14:37 mberends left
carlin looks like there's more http-daemon stuff in perl6-examples; lib/Test/Harness.pm and lib/Test/Differences.pm 14:37
colomon moritz_: looks like the same thing may be happening in comb.t ? 14:39
dalek kudo/ng: 6ee78ed | (Solomon Foster)++ | t/spectest.data:
Turn on elems.t.
14:41
colomon Yeah, definitely the same thing. 14:42
masak carlin: yes. 14:43
14:43 payload left
masak carlin: mberends left again, but I think we can safely get rid of it. 14:43
pugs_svn r29324 | colomon++ | [t/spec] Skip test which was incorrectly passing. 14:44
14:50 colomon left
carlin masak: cool 14:53
carlin deletes
14:56 JimmyZ left
masak rakudo: class A::B {}; say A::B.new.isa("A::B") 15:05
p6eval rakudo 7ef386: ( no output )
masak locally, "0\n".
bug?
moritz_ that's know and submitted
masak ok, thanks.
carlin both perl6-examples and benchmark contain the same Benchmark.pm, alright to delete it? 15:08
masak who wrote it? 15:09
carlin pointme: benchmark
pointme perlpilot's benchmark is at github.com/perlpilot/benchmark/
15:10 colomon_ joined, colomon_ is now known as colomon 15:12 orafu joined 15:15 alexn_or1 joined 15:19 alexn_org left 15:20 iblechbot left 15:25 mberends joined 15:26 rgrau joined 15:27 quantumEd joined 15:29 JimmyZ joined
dalek vember: 8dfebd5 | masak++ | (20 files):
put many modules under the November:: namespace
15:38
15:40 alexn_or1 left 15:42 Trey joined 15:43 Astoria` joined, Psyche^ joined 15:44 alexn_org joined 15:49 ejs2 left 15:53 riffraff left, Patterner left, Psyche^ is now known as Patterner 15:57 JimmyZ left 15:59 jferrero joined 16:01 plainhao joined, guest28 joined
guest28 Is there a preferred data serialization format that will likely be used by Perl 6? I've read that YAML has a rather large spec, and JSON seems very nice and simple. But then there's also YAML::Tiny... 16:02
16:02 jan_ left
masak guest28: Perl 6 culture is unlikely to choose one format. 16:03
guest28: if you're interested in a solution that works now, JSON is it.
Juerd guest28: Depends on the use case.
masak guest28: proto uses YAML, but it cheats.
Juerd guest28: Not every format supports every kind of object
masak I think I would've chosen JSON if that module existed at that time.
Juerd masak: It's never too late to change :) 16:04
masak Juerd: true, but I value backwards compatibility more than changing in this case.
guest28 masak: Yes, never too late to change. :)
Juerd You could keep compatibility
masak switching to JSON would mean having to support two formats.
Juerd Yes
guest28 I was thinking in terms of needing to spend structured data around, say, via http.
Juerd spend? :)
guest28 s/spend/send/ 16:05
Juerd guest28: I think JSON is slightly more practical
moritz_ if you want strings, numbers, booleans, arrays and hashes, then JSON works
Juerd But of course, a lot of people do prefer XML
guest28 Hm. Perl 5 modules use a manifest written in yaml I think...
moritz_ and there's a working JSON module for Perl 6 on github
Juerd I'm working with an XML format right now and really dislike it.
guest28 Juerd: Whoa. Let's keep this civil. ;) 16:06
moritz_ guest28: I guess that's going to change too, very slowly
Juerd guest28: You're right; I'm sorry.
16:06 payload joined
moritz_ Juerd: maybe because XML is not a data serialization format, but a markup language :-) 16:06
guest28 Juerd: I meant just *mentioning* XML. ;)
Juerd moritz_: In this case... I wish it was.
moritz_: Effectively, I have to use XML to serialize zone files.
guest28 moritz: Interesting. That's good to hear, IMO (about changing from yaml) 16:08
Tene Juerd: shame there isn't some sort of standard file format for zone files... ;) 16:09
Juerd YAML with its indentation mess isn't very transfer friendly. It can even break during copy/paste with stupid editors.
Tene: Currently I have zonefile -> weird-xml-format implemented by letting Net::DNS::Zone::Parser parse the zonefile 16:10
I've added methods to the respective Net::DNS::RR::<type> classes, that return the xml-ified version of the RR
guest28 moritz: re. JSON on CPAN for Perl 6; Oh, didn't realize there were Perl 6 modules on the CPAN. Do you mean this? search.cpan.org/~makamaka/JSON/lib/JSON.pm
Juerd Now I only have to build a class for representing zones, that can also read the XML stuff.
So far I haven't needed any real XML, fortunately.
moritz_ guest28: search.cpan.org/~moritz/JSON-Tiny-0.1.2_1/ 16:11
guest28: the PAUSE indexer can't handle Perl 6 POD, so it looks all messed up
github.com/moritz/json <-- source
Juerd Real programmers read POD in source ;) 16:12
guest28 moritz_: Ok, thanks for the search.cpan link. Funny though, I don't see any obvious indication that it's for Perl 6... 16:13
I mean, here: search.cpan.org/~moritz/JSON-Tiny-0.1.2_1/
moritz_ guest28: somebody would have to patch significant parts of the CPAN toolchain
Juerd guest28: "=begin Pod"
guest28 moritz_: will try it out. Thank you. 16:14
Are there still plans for some kind of a CP6AN? Or is the current modus operandi to just put Perl 6 modules into the existing CPAN infrastructure? 16:16
Juerd You can theoretically put anything on CPAN
16:17 crythias joined, Baggio_ left
Juerd If you have something really important, that isn't too secret (or is well encrypted), upload it to CPAN and it'll be mirrored to hundreds of sites :D 16:17
moritz_ I think open-source-ness is a requirement for uploading to CPAN
Juerd It's not IIRC
masak I think it being Perl is a requirement for uploading to CPAN. 16:18
moritz_ no
well
guest28 Is anyone working on a "CPAN" strictly for Perl >= 6?
moritz_ there's a PHP equivalent of Test::More on CPAN ;-)
16:19 pointme left, mubot left, zaslon left 16:20 pnate2 joined, mubot joined, pointme joined 16:21 zaslon joined
Juerd guest28: No. Someone is working on CPAN6, and intends it to be used for Perl 6 and perhaps everything else in existence. 16:23
guest28: However, this is all very detached from the Perl 6 community, XML based, and very capable (read: complex).
I have doubts that the community will embrace it. 16:24
I hope to be proven wrong.
diakopter Juerd: I thought there were lots of cpan-successor efforts?
Juerd diakopter: Just one that I know of
guest28 Found some discussion here: perlbuzz.com/2009/02/should-perl-6-...-cpan.html 16:25
16:26 flip214 left 16:30 pnate left 16:32 perlygatekeeper joined
guest28 My understanding is that [Proto](github.com/masak/proto) is only intended as a stop-gap measure. 16:34
masak correct.
16:34 pointme left 16:37 alexn_org left 16:42 zaslon left, carlin left, mubot left 16:43 payload left
quantumEd rakudo: say ~~~ 16:47
p6eval rakudo 7ef386: say requires an argument at line 2, near " ~~~"␤in Main (file src/gen_setting.pm, line 2593)␤
16:48 jaldhar_ joined 16:49 quantumEd left
colomon apparently closed all the Perl 6 TextMate windows on his system in an effort to get himself to focus on $work instead of trying "just one more patch"... 16:54
16:54 cdarroch joined
TimToady apparences can be deceeving 16:54
16:59 guest28 left 17:00 _jaldhar left, ejs joined
masak I'm fascinated by the model of ADTs and classes being easily extensible in different directions: with ADTs, it's easy to add operations, whereas with classes, it's easy to add representations. 17:00
inheritance and multimethods help mitigate things for classes, it seems. 17:01
17:02 quantumEd joined
masak a group of questions for which I still don't have answers: can one create ADTs in Perl 6? would one want to? if it's not possible, what's missing? 17:04
it seems that static typing is a necessary condition, but Perl 6 has that, sort of.
17:04 nihiliad joined 17:06 iblechbot joined, ejs left
pmurias masak: what features of ADTs classes don't have? 17:06
masak pmurias: I wish I could say it better than www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf
pmurias: in many ways, they seem complementary. 17:07
17:07 jaldhar_ left, ejs joined 17:08 jaldhar_ joined
PerlJam masak++ (I would have been one of those people he mentions in the introduction) 17:08
masak it's a good read. 17:09
17:09 alester joined
masak I don't grok all of it, especially not when it goes all type-y and greek on me, but I get the big picture. 17:09
17:11 pnate joined, thowe joined
pmurias i don't feel the paper is any good 17:12
masak why not? 17:13
17:15 pnate2 left
pmurias what the author claims is that two of his definitions of a concept are different 17:17
i couldn't care less
s/of a concept/of a different concept/
masak well, he claims that ADTs and objects are more different than commonly acknlowledged.
pmurias but he doesn't prove that
masak it can be interesting if he argues it convincingly. 17:18
pmurias he doesn't
masak I hadn't even drawn a parallel between the two before I read the paper, so I found it enlightening.
17:19 ejs left, crythias left
quantumEd well the biggest thing I think of, and this might just be an opinion thing so please point out if so, is that classes are open (you can add more stuff) but the data types like tree or list or whatever are closed (you're never going to have something alist which isn't nil or cons for example) 17:19
masak quantumEd: there is something to that, yes.
am I right in equating ADTs with C structs? 17:20
17:20 pnate left
quantumEd I'm not sure, I've seen people do OO with C structs 17:20
17:20 pnate joined
masak quantumEd: that's possibly, but you wouldn't get the interface part that the author is talking about. at least I don't think you would. 17:21
quantumEd theres this hack struct foo { ..; field bar[0]; } you see sometiems (like in the implementation of objective C), which lets you add arbitary more fields to a struct
17:21 ejs joined
pmurias masak: most classes don't meet his definition of classes 17:21
masak pmurias: do you have an example?
quantumEd you alloc one of these with sizeof + n*sizeof(field) 17:22
pmurias masak: you can check the type of an object in most languages
masak pmurias: well, sure! 17:23
PerlJam It seems to me that the author is saying that int16 would be an ADT, but Int would not necessarily be one. (it would be more than an ADT)
17:23 ejs left
masak pmurias: his point seems to be that even OO languages are 'impure' to various degrees, according to his definition of purity. 17:23
PerlJam: nod.
I've been talking to Moose people lately who have vented the worry that Perl 6's type system is tangled in with its OO system. (apparently unlike Moose, in which Any is not a class.) 17:25
thowe is unfamiliar with the term "Moose people". 17:28
masak thowe: oh! Moose is a modern OO framework for Perl 5.
17:29 SmokeMachine left
moritz_ postmodern 17:29
thowe oh. OK. What paper are you guys talking about? I don't know what ADT means either.
masak moritz_: thanks. I hesitated on just that word.
thowe: 'abstract data type'.
pmurias masak: what's the problem with that?
PerlJam thowe: really masak talks to these imaginary Moose in his head. He calls these "Moose people" :) 17:30
masak thowe: the paper is at www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf
thowe thx
masak thowe: what PerlJam said. :P
TimToady masak: if you think that's a problem, you should submit a bug report against the design with a test case :) 17:31
PerlJam thowe: (ordinary moose don't talk, but since the talking ones do, you distinguish them by captializing the M)
masak pmurias: I'm not competent enough to see the dangers of tangling the OO system and type system. I only know Moose doesn't, as much, and that some of the people involved consider it a feature.
TimToady: yeah, I guess. that would definitely be keeping things concrete.
TimToady maybe your moose folx can supply such a test
masak and keeping things concrete is very much needed in discussions about these things. :)
maybe. 17:32
PerlJam masak: People steeped in the culture of Perl tend to like more degrees of freedom rather than less.
masak PerlJam: yes...?
PerlJam (perhaps these Moose people you've spoken to have over-applied the philosophy)
masak ah.
TimToady well, roles aren't derived from Any, and roles can do other roles 17:33
moritz_ they are always welcome to write their own custom meta class that does it differently :-)
TimToady not clear what more they want
pmurias we can define subsets of Mu
masak well, mostly the thought intrigues me, because I almost cannot imagine a type being on top of the type system and not being a class. :)
to me Mu, formerly known as Object, is the smallest possible thing with substance. 17:34
everything else is just air.
TimToady maybe they're really making the same complaint that moritz_ does, that Any should contain all those extra dwimmifiers
PerlJam masak: well, for type systems I think a "type" is just a name with some associated behaviors/constraints/etc. and that classes/objects are just a conveinent way to implement types
masak PerlJam: yes. that echoes some of the points in that paper. 17:35
moritz_ suddenly feels like a moose poeple
PerlJam masak: yep. Though I've never thought it needed some sort of formalism
moritz_ we already have types that aren't classes 17:36
roles, enums, subsets
masak grammars, metaclass stuff.
TimToady knowhows :)
masak I'm not proposing a change or anything. just want to explore the territory a bit.
that's why I've resolved to read the Moose test suite over Christmas. :) 17:37
TimToady: where can I learn more about knowhows? :)
PerlJam that there are other means to obtains types never seemed like it needed saying to me. I guess Mr. Cook just wants to highlight that these are separate things.
pmurias masak: knowhows? the smop or mildew-js source? 17:38
17:38 colomon left
masak PerlJam: actually, Mr. Cook seems to come from a world where objects are frowned-upon and considered a sort of strange ADTs. 17:38
pmurias masak: i think they are a bit implementation specific as they are used to bootstrap OO 17:39
masak pmurias: is there an executive summary, or some docs, or at least source code comments somewhere?
pmurias masak: not that i'm aware of, you can look at the tests 17:40
v6/mildew/t/knowhow.t v6/mildew/t/knowhow_attributes.t
masak thanks. 17:41
TimToady basically, they declare metaclasses
see v6/mildew/CORE/*.pm for some examples 17:42
17:42 abra1 joined
masak those files look like someone took a small example of a class declaration, and did s/class/knowhow/ on it. 17:42
I fail to understand the significance. 17:43
TimToady it's probably a circularity saw
masak that makes at least a fraction of sense.
TimToady or at least a "CUT HERE"
masak so knowhows are used to build the system with which we later declare classes? 17:44
TimToady or any other .HOW
17:44 scottman joined
TimToady including roles, etc 17:44
prototype OO if you want it
scottman im about to start a perl web project, is the web.pm module usable or would it be best to stick with perl 5 17:45
TimToady it might well be that knowhows don't derive from Any, either :)
masak wow, there's some seriously cool Perl 6 code in mildew. I see now that I should pay more attention to what's happening there.
17:45 ejs joined
masak scottman: depends on your sense of urgency. 17:45
PerlJam masak: heh ... I was just writing that
masak scottman: there are things in Web.pm which are ready for use, but just as surely you will hit snags. 17:46
PerlJam scottman: If you want something that "production ready", then you want to use Perl 5 (probably Catalyst or something too)
masak PerlJam: I was just writing that. :P
scottman masak and PerlJam: thanks, i havnt tried the big web frameworks just html::template maybe i could learn that, just wanted to see if perl6 was usable in the web part 17:47
PerlJam Really? because for me it was like "Depends on your sense ... blah! masak just said it" :)
masak :) 17:48
scottman: I think it's usable, and that Web.pm is underused.
PerlJam scottman: it's certainly *usable*
masak scottman: at the same time, I don't want to trick anyone into trying out Web.pm for me if they're not interested in being alpha testers.
scottman PerlJam and masak: okay i understand, well this is a 'project' so i can goof around with the web.pm and see if it does the job. 17:50
PerlJam scottman: Have you read "Crossing the Chasm"? It outlines different kinds of users for products. If you were to use Perl 6 and Web.pm, you would be a "pioneer" or an "early adopter"
(those two are just before the chasm that takes you to the more main stream)
17:50 quantumEd left
masak scottman: even a simple task such as someone hooking up a database to a template engine, would give valuable feedback at this point. it's just not been done much. 17:51
scottman masak: are there any template engines yet? 17:52
masak the documentation is near-nonexistent, so conversations such as this one would be needed.
scottman: yes, I have one very good for you: Hitomi.
17:53 pnate left
masak github.com/masak/web/blob/master/dr...xample.xml 17:53
Tene masak: I'm thinking about talking about traits in my advent calendar post... what do you think? 17:54
scottman masak: hmm it looks good
masak Tene: sure! sounds good.
Tene Hah, I tricked you! Now if it goes horribly wrong, you take the blame! 17:55
Bwahahahaha.
masak :O
scottman: it does, doesn't it? I don't think all of those features work, but consider me eager to implement what's you need quickly.
s/'s// 17:56
scottman masak: yeah i like the xml idea of it
masak scottman: it's one of the few cases I've seen of XML being used judiciously.
PerlJam perhaps I've just looked at too much Template::Toolkit, but I can't get enthused about the XML nature of Hitomi 17:57
masak PerlJam: you'll have to guide me through TT some day.
Su-Shee "the xml idea"? ;) how else would you do contemporary proper html? :)
masak PerlJam: people keep being excited about it, and I keep not getting it.
17:58 abra left
masak Su-Shee: yeah, something in that ballpark. 17:58
PerlJam I've thought about stealing Alias' Template::Tiny for Perl 6 maybe I'll do that over christmas
Su-Shee ok, then I don't get it too.
Alias PerlJam: I'm still working on it
One level deep [% IF %] statements is about as complex as it gets right now
PerlJam Alias: I know, but you've got enough for now :)
masak I know that the current solution in November, which is a crib of HTML::Template from CPAN, disgusts me utterly. 17:59
Alias I'm still trying to work out how the hell to 1) Do recursion 2) Mix IF and FOREACH
There's a reason that everyone else just tag-flips and converts to code
It's just SO much easier
Tene There's also Tags.pm, which is a Perl 6 port of Template::Declare. 18:00
Which I'm so fond of.
masak it is kinda cute. if you're into that sort of thing. :)
just kidding. Tene++
Tene html { head { title "Special page" }; body { ul { li "item $_" for 1..10 } } } 18:01
PerlJam I think Tags is cool too, but its main advantage seems to be that it fixes the syntactic deficiences of HTML :)
Juerd Alias: The easy way to do those things in to translate the program to a Perl expression and eval that.
Tene We're Perl Programmers, so let's write our templates in Perl!
Tene afk lunch
Juerd Alias: It works around having to build a programming language.
Alias Juerd: The tag-flipping solution (i.e. turn it into code) ISN'T the easiest way if you've set yourself an arbitrary memory limit of 100k 18:02
Juerd Oh, that's what you meant
18:02 tann1 joined
Su-Shee we have an entire widget set in perl which generates html with cgi.pm ;) 18:02
Juerd What is the memory limit for? 18:03
Alias The ::Tiny suffix
Well, actually, by my original rules I've got about 230k
Juerd Is that runtime memory?
Alias Compile time memory
i.e. non-recoverable
Juerd Does a bunch of s/// and an eval really get that big? 18:04
scottman PerlJam and marak: thanks for the help :) im out.
Alias Well, to implement basic foo.bar expressions, [% and [%-, plus IF/UNLESS/ELSE I get to about 40-50k
Juerd But that includes evaluating the expressions, right?
Alias Juerd: But s/// statements seem to chew up a suprising amount 18:05
18:05 scottman left
Juerd Oh 18:05
Alias 10k each in the case if useful ones
18:05 payload joined
Alias I tried to preprocess tags and whitespace stuff 18:06
PerlJam Maybe that's a sign that the regex engine is ripe for optimization (again).
Alias Dunno
PerlJam: Most of the time optimisation involves consuming MORE memory :) 18:07
Juerd wrote the documentation for a module that's yet to be written and already has 11 caveats.
PerlJam ah, true
Juerd I wonder what I'll run into during implementation.
PerlJam (because we're usually optimizing for speed, but what if there were a switch, recall use less qw/memory/ ?
Juerd It sounded like such a simple task. Translate zonefiles to some XML format. Turns out the XML format doesn't support half of what's possible in zonefiles.
PerlJam )
masak we lost scottman. 18:08
I'll be going home now, and will be mostly gone for the weekend.
moritz_ have a nice weekend!
PerlJam masak: have a great weekend !
masak will backlog from behind the curtain.
thanks :)
Alias PerlJam: I'd love a generic switch 18:10
18:10 ShaneC joined
Alias Although it's tricky 18:10
There's a tradeoff yes?
PerlJam always
Alias Who's to say that saving 25% of memory and adding 400% CPU is really worth it
But for Padre, every time we spawn a thread, there's a ton of copying 18:11
So saving 1k means more like saving 5k
18:12 kaare joined 18:13 kaare is now known as Guest12536
Alias My biggest problem now is that regex don't support recursion 18:13
Perl's non-regular expressions DO, but doing it with only Perl 5.005 is ... troublesome
TimToady P5 regex don't... :)
Alias TimToady: I really should get you to help with this... :/ 18:14
18:14 dbrock joined
TimToady and how would you do that? :) 18:14
Alias Ask nicely
18:14 masak left
PerlJam TimToady: well, you do want Perl 6 to have a nice editor, right? :) 18:15
TimToady I don't think there's any amount of asking nicely that'll get me back into hacking the p5 core
PerlJam a nice, friendly editor that even non-gurus can use.
One with a butterfly for a logo
:)
Alias I don't want someone to hack it, just to recommend how the match EITHER the inner or outer pairing in [% IF foo %] [% IF bar %] [% END %] [% END %] 18:16
Assuming that the outer pair isn't the ONLY pair in the text 18:17
i.e. [% IF foo %] [% IF bar %] [% END %] [% END %] [% IF foo %] [% END %]
TimToady TheDamian gave a talk about how to work around p5 regexe's recursion problems to write parser that would actually return data 18:18
I think it's a CPAN module now, but I don't remeber its name
Alias In his usual "This talk shalt not be recorded" terms I assume
Text::Balanced?
TimToady don't thinkso
Alias As it happens, I ended up the maintainer for that one 18:19
moritz_ Regexp::Grammars
Alias hrm
I shall look
I'm guessing this doesn't work in Perl 5.005 :) 18:20
I guess I'll just tag-flip... sigh
TimToady I'm guessing I don't care whether much of anything works in 5.005 :) 18:21
but I don't mind if you care
PerlJam Does Padre really run on 5.005?
Alias TimToady: I only care in ::Tin
::Tiny
PerlJam: Padre it 5.008005 for the unicode sanity 18:22
is
PerlJam okay, so the 5.005 requirement is just for ::Tiny
TimToady maybe ::Tiny should turn into an XS module :P
18:22 hanekomu_ joined
Alias TimToady: XS is against the rules as well :) 18:22
TimToady I said "should", not "will". :) 18:23
I always love that that word has two different meanings...
"Yes, it *should* work." 18:24
Alias The maybe confuses that sentence if you take the pure form of should
Or at least, my upside down English doesn't parse it anyway 18:25
TimToady it's not a subjunctive, just a modal that in Amerika is interchangeable with 'oughta' 18:26
PerlJam Get to the correct hemisphere so that your english isn't upside-down. :)
rodi try teaching that to a two-year-old. At least he wishes he *were* correctly.
Alias I just need to go check Google Dictionary for "subjunctive", "modal" and "oughta" and I'll get back to you with a response :)
TimToady those aren't the words I used...the equator must've modified them. 18:27
Alias Note: Never argue semantics with a linguist
PerlJam Alias: s/semantics//
Alias heh
Juerd s/with a linguist// perhaps.
Alias Juerd: No, because s/with/as/ 18:28
PerlJam Alias: they know enough language to twist the argument in their favor.
Alias Anyways, bed
18:28 Alias left
TimToady g'night 18:29
rodi rakudo: (" " ~~ m/<ws>/).say
p6eval rakudo 7ef386: ␤
rodi rakudo: (" " ~~ m/<ws>*/).say
p6eval rakudo 7ef386: ( no output )
rodi std: (" " ~~ m/<ws>*/).say 18:30
p6eval std : ok 00:01 108m␤
18:31 tann1 left 18:36 thowe left 18:37 hercynium left
Tene ARGH, I forgot about this. You can't wrap a sub from a trait handler. 18:47
><
Okay, different examples needed. :P
18:56 takadonet left
TimToady phenny: tell masak if you call it Rocket Art you can say it's not rocket science... 18:57
phenny TimToady: I'll pass that on when masak is around.
18:59 coke__ joined, coke__ is now known as [Coke]
[Coke] anyone interested in working on perl6 vim syntax highlighting bugs? =-) 18:59
TimToady we need a .vim emitter for viv 19:01
19:02 rachelBROWN joined
[Coke] viv? 19:02
rachelBROWN :Z
PerlJam TimToady: that would be awesome 19:03
19:04 stephenlb joined
TimToady std: :Z 19:04
p6eval std : ok 00:01 105m␤
[Coke] docs.google.com/Doc?docid=0ARm1zTZ...&hl=en 19:05
19:06 ejs left
mathw [Coke]: Ouch 19:07
TimToady no highlighter is going to highlight Perl correctly without understanding terms vs infixes
[Coke]: the original intent of viv is to translate p6 to p5 better than gimme5 does 19:09
[Coke] ... it's "six five", isn't it. :P 19:10
PerlJam [Coke]: Does it still highlight that way if you use "< 1" instead of "<1" ?
[Coke] aha! no. 19:11
19:11 ashizawa left
[Coke] how sad that I will now format my code to make the highlighter happy. =-) 19:11
TimToady yes, well, it's cheating, and cheaters always get caught eventually
mathw although you should have spaces around your infix comparison operators, IMO 19:12
TimToady if it assumes " < " is an infix then what does it do with < a b c > ?
dbrock what would a .vim emitter do?
TimToady presumably write a Perl parser in vim macros :)
PerlJam but it would only have to parse Perl in the same sense that PPI does 19:13
dbrock haha, I see
mathw Doesn't vim have a Perl interface? Can you use that to write syntax highlighters?
[Coke] TimToady: if I add spaces inside the <> on the line a few down, it seems to treat all the words as keywords.
TimToady yes, it now thinks that the inside of the <> is code 19:14
the only way to do it right is to actually parse the code left-to-right, not make guesses by lookahead
mathw Clearly what we really need to do is plug Rakudo into vim, and get that to do the parsing :)
PerlJam mathw: See Padre :) 19:15
TimToady well, but the rakudo parser isn't correct either
PerlJam it would be correct for the langauge that Coke is using perhaps 19:16
TimToady touché
[Coke] (yah, I'm actually writing nqp-rx, not p6) 19:18
rachelBROWN Does anyone know where to find cool perl one liners/obfuscated code?
[Coke] google for JAPH
or "perl golf"
PerlJam rachelBROWN: You should probably ask #perl instead of #perl6 19:19
diakopter std.vim would be a few MB
mathw hmm and vim scripts don't run all that fast
[Coke] (ask in #perl) ... i wouldn't wish that on anyone. =-)
PerlJam diakopter: not after the optimization pass! :)
rachelBROWN lol
TimToady Perl 6 tends to have different cool one-liners than Perl 5 does 19:20
PerlJam quite
TimToady rakudo: sub postfix:<!> ($n) { [*] 1..$n }; say 10!
p6eval rakudo 7ef386: 3628800␤
PerlJam TimToady: that's *exactly* the example that came to my mind. :) 19:21
TimToady rakudo: sub postfix:<!> ($n) { [*] 2..$n }; say 10! 19:22
p6eval rakudo 7ef386: 3628800␤
TimToady rakudo: sub postfix:<!> ($n) { [*] 2..$n }; say 1!
p6eval rakudo 7ef386: 1␤
diakopter rakudo: sub postfix:<!> ($n) { [*] 1..$n }; say 0!
p6eval rakudo 7ef386: 1␤
diakopter rakudo: sub postfix:<!> ($n) { [*] 2..$n }; say 0!
p6eval rakudo 7ef386: 1␤ 19:23
diakopter ok..
PerlJam rakudo: say [*] ()
p6eval rakudo 7ef386: 1␤
PerlJam magic! :)
TimToady rakudo: say [*]
PerlJam ([*]).say
p6eval rakudo 7ef386: say requires an argument at line 2, near " [*]"␤in Main (file src/gen_setting.pm, line 2593)␤
TimToady boo
PerlJam rakudo: ([*]).say 19:24
p6eval rakudo 7ef386: Syntax error at line 2, near "([*]).say"␤in Main (file <unknown>, line <unknown>)␤
diakopter rakudo: [*].say
p6eval rakudo 7ef386: Use of uninitialized value␤␤
TimToady rakudo: say ()
p6eval rakudo 7ef386: ␤
PerlJam rakudo: ([*]()).say
p6eval rakudo 7ef386: 1␤
PerlJam well, it's still magical :)
TimToady rakudo: ([*]).say
p6eval rakudo 7ef386: Syntax error at line 2, near "([*]).say"␤in Main (file <unknown>, line <unknown>)␤
PerlJam std: ([*]).say
p6eval std : ok 00:01 106m␤
TimToady it's just a listop, and listops are allowed to have no args 19:25
so rakudo fail
ng: say [*]
p6eval ng 6ee78e: ( no output )
PerlJam ng: say [*] 1..4
p6eval ng 6ee78e: Confused at line 1, near "say [*] 1."␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
PerlJam oh, ng doesn't grok Ranges yet does it? 19:26
diakopter rakudo: (([*])).say() # TimToady
TimToady ng: say [*] 1,2,3,4
p6eval rakudo 7ef386: Syntax error at line 2, near "(([*])).sa"␤in Main (file <unknown>, line <unknown>)␤
ng 6ee78e: Confused at line 1, near "say [*] 1,"␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
diakopter rakudo: (([*])).say()
p6eval rakudo 7ef386: Syntax error at line 2, near "(([*])).sa"␤in Main (file <unknown>, line <unknown>)␤
diakopter meh
rakudo: (([*])).say
p6eval rakudo 7ef386: Syntax error at line 2, near "(([*])).sa"␤in Main (file <unknown>, line <unknown>)␤
PerlJam rakudo: ([*]+[][*]).say 19:27
p6eval rakudo 7ef386: 1␤
PerlJam *grin*
diakopter rakudo: ([*] ()).say
p6eval rakudo 7ef386: 1␤
TimToady rakudo: [*]1
p6eval rakudo 7ef386: ( no output )
TimToady rakudo: say [*]1 19:28
p6eval rakudo 7ef386: 1␤
TimToady that's also wrong, space is required after a listop
PerlJam rakudo: ([*][][*]).say
19:28 colomon joined
TimToady or parens 19:28
p6eval rakudo 7ef386: ␤
TimToady or end of listop
PerlJam rakudo: ([*][*]).say
diakopter std: [*]1
p6eval rakudo 7ef386: Syntax error at line 2, near "([*][*]).s"␤in Main (file <unknown>, line <unknown>)␤
std : ===SORRY!===␤Two terms in a row at /tmp/YYsgFwv4VL line 1:␤------> [*]⏏1␤ expecting any of:␤ POST␤ infix or meta-infix␤ infix stopper␤ postfix␤ postfix_prefix_meta_operator␤ prefix_circumfix_meta_operator__S_259reduce␤
..prefix_postfix_meta_operator␤ …
TimToady std: [*](1) # fine 19:29
p6eval std : ok 00:01 105m␤
19:29 rgrau left
diakopter std: [*][] 19:29
p6eval std : ok 00:01 104m␤
TimToady std: [*] 1 # also fine
p6eval std : ok 00:01 105m␤
TimToady std: [*]+1 # also fine
p6eval std : ok 00:01 105m␤
TimToady should == 2 19:30
std: [*][*] # okay, means ([*]).[*] 19:31
p6eval std : ok 00:01 105m␤
PerlJam rakudo: ([*].[*]).say 19:32
19:32 payload left
TimToady not very good style, of course 19:32
p6eval rakudo 7ef386: Method 'postcircumfix:[ ]' not found for invocant of class 'Failure'␤in Main (file src/gen_setting.pm, line 324)␤
dbrock why should [*]+1 == 2?
PerlJam dbrock: because 1+1 == 2
dbrock: [*] == 1
TimToady rakudo: say [*]()
p6eval rakudo 7ef386: 1␤ 19:33
dbrock ah, [*] is the product of nothing?
PerlJam right
TimToady correct
PerlJam ng: ([*].[*]).say
p6eval ng 6ee78e: No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'␤current instr.: '!postcircumfix:<[ ]>' pc 264447 (src/gen/core.pir:0)␤
dbrock why is +1 not a term there?
(sorry, I'm such a newb) 19:34
TimToady parser is not following STD at that point
a listop must have whitespace if it is to have any arguments 19:35
or be written as a function with ()
dbrock oh
TimToady so [*] followed by anything that isn't ( or ws is an argless listop 19:36
(in STD)
dbrock I see!
TimToady rakudo: my $x = 42; say$x
p6eval rakudo 7ef386: say requires an argument at line 2, near "$x"␤in Main (file src/gen_setting.pm, line 2593)␤
dbrock wow 19:37
TimToady std: my $x = 42; say$x
p6eval std : ===SORRY!===␤Two terms in a row at /tmp/lptS820qMT line 1:␤------> my $x = 42; say⏏$x␤ expecting any of:␤ POST␤ argument list␤ infix or meta-infix␤ infix stopper␤ postfix␤ postfix_prefix_meta_operator␤ standard stopper␤
..statement modifier loop␤ term…
TimToady rakudo message is Less Than Awesome
we should probably reduce that to a warning 19:38
then let a "two terms" error blow it up if necessary 19:39
as it currently stands, the 'say requires an argument' message comes out on most any parsefail following the say, which is suboptimal 19:40
PerlJam is daunted by STD's panic() 19:41
presumably all of the worries and highwater and highmess stuff can be fitted in to rakudo at some point though 19:43
19:45 hugh4life_ joined 19:48 [Coke] left, ShaneC left, hugh4life left, xinming left, hicx174 left, tarbo2 left, athomason left, reid06 left, ShaneC joined 19:50 [Coke] joined 19:51 ShaneC left 19:52 ShaneC joined, hugh4life joined, xinming joined, hicx174 joined, tarbo2 joined, reid06 joined, athomason joined, ShaneC1 joined 19:53 Patterner left, IllvilJa left, dalek left, drbean left, ascent_ left, c1sung left, eiro left, Woody2143 left, huf left, BinGOs left, athomason left, dalek joined 19:55 REPLeffect_ left, REPLeffect_ joined 19:56 plainhao left, broquaint left, am0c left, slavik left, japhb left, brody left, BooK left, jlaire left 19:57 stepnem left, colomon left 19:58 broquaint joined 19:59 Guest12536 left, xinming left, brody joined, Guest12536 joined, BooK joined 20:00 gabiruh_ joined, gabiruh left 20:02 sjn left 20:04 stepnem joined 20:06 hugh4life left 20:08 ShaneC left 20:11 colomon joined
colomon PerlJam: (backlogging) You can use the series op in ng to get a range of ints: 1 ... 4. But I think you'll find that [*] doesn't work in ng yet... 20:12
sjohnson afternoon guys 20:18
colomon o/
sjohnson whats the good word for today
colomon hmmmm.... 20:19
PerlJam sjohnson: earlier it was "subjunctive"
TimToady now it's subjective
sjohnson i think i had a dream about Perl again 20:21
PerlJam wonders if people dream about French or English or Japanese
TimToady they say you aren't fluent until you dream *in* a foreign language 20:22
sjohnson JP yeah if you are learning it on your own
i had a dream just yesterday that I was speaking French to a girl form Quebec near my house in British Columbia
I was speaking French*. 20:23
PerlJam except that dream was more about the girl I suspect :)
20:23 rindolf joined
sjohnson * = may not be proper French 20:23
pugs_svn r29325 | lwall++ | [STD] install NLTA warning about bare say/print 20:24
20:24 sjn joined, athomason joined, xinming joined, Patterner joined, IllvilJa joined, drbean joined, ascent_ joined, c1sung joined, huf joined, BinGOs joined, Woody2143 joined, eiro joined
sjohnson PerlJam: not to get too off topic. but i've never been able to "have fun" in a "girl dream".. if you catch my drift 20:26
let alone real life 20:27
at least Perl puts out in my dreams !
PerlJam That's the first time I've seen a euphemism really make use of the word. 20:28
dbrock those kinds of dreams happen to me at the most random times
(and very rarely)
pugs_svn r29326 | lwall++ | [S32/IO] reduce bare say/print to warning 20:31
20:32 colomon left
frettled oh no! Perl 6 explicit nudity! 20:32
That looks like a good title for a talk.
[Coke] bye
whoops. 20:33
20:33 [Coke] left
PerlJam frettled: just not for the perl 6 advent calendar 20:33
TimToady as opposed to a title for a good talk
frettled PerlJam: heh
TimToady std: print
p6eval std : ok 00:01 105m␤
frettled std: say print 20:34
p6eval std : ok 00:01 104m␤
TimToady hmm, p6eval doesn't give std's version anymore...
moritz_ wonders if recent changes to 'make snap' made the version numbers go away
TimToady lunch & 20:35
dalek p-rx: 8ab2413 | pmichaud++ | (3 files):
Start rewriting HLL::Compiler in NQP instead of PIR.
sjohnson looks like [coke] thought this wasn't a Perl 6 channel .. oops 20:42
PerlJam nah, Coke knows this is Perl 6 channel. 20:43
20:46 colomon joined
sjohnson so PerlJam, how's it going 20:48
p6 Q: is there any EZ integer casting methods, for example? 20:49
instead of having to use sprintf?
mathw umm 20:50
what do you mean?
20:53 sjohnson left, revdiablo left, arnsholt left, frettled left, rhr left, frew left, meteorswarm left, PerlJam left, ilbot2 left, jrockway left, zibri left, Maddingue left, IRSeekBot left, zostay left, simcop2387 left, charsbar left, vorner left, meppel left, krunen left, felipe left, rjh_ left, Gothmog_ left, kolibrie left, jantore_ left, sbp left, elmex left, jnthn left, nsh left, bigpresh_ left, parduncia left, ssm left, rindolf left, gabiruh_ left, stepnem left, dbrock left, alester left, jaldhar_ left, perlygatekeeper left, gbacon left, Wolfman2000 left, perigrin left, xenoterracide left, pugs_svn left, Woodi left, yahooooo left, Infinoid left, phenny left, hatseflats left, dukeleto left, jiing left, TimToady left, cls_bsd left, jjore_ left, ingy left, Tene left 20:57 PerlJam joined, rindolf joined, stepnem joined, gabiruh_ joined, dbrock joined, alester joined, jaldhar_ joined, perlygatekeeper joined, gbacon joined, meppel joined, krunen joined, Wolfman2000 joined, perigrin joined, felipe joined, xenoterracide joined, zibri joined, sjohnson joined, revdiablo joined, ilbot2 joined, arnsholt joined, Maddingue joined, IRSeekBot joined, irc.freenode.net sets mode: +ovov PerlJam ilbot2 arnsholt IRSeekBot, rhr joined, charsbar joined, zostay joined, frew joined, jrockway joined, meteorswarm joined, simcop2387 joined, frettled joined, Gothmog_ joined, bigpresh_ joined, jantore_ joined, rjh_ joined, elmex joined, nsh joined, sbp joined, kolibrie joined, jnthn joined, yahooooo joined, ssm joined, parduncia joined, Tene joined, jjore_ joined, ingy joined, Woodi joined, irc.freenode.net sets mode: +ooo frettled jnthn Tene, Infinoid joined, TimToady joined, cls_bsd joined, dukeleto joined, pugs_svn joined, hatseflats joined, jiing joined, phenny joined, irc.freenode.net sets mode: +oovv TimToady dukeleto pugs_svn phenny
sjohnson PerlJam: plz2look upwards 20:58
frettled TimToady: hmm, just rakudo that's confused, then, I suppose, since it allows it.
TimToady well, in theory, it would turn it into a native int
but generally you want .Int instead
frettled aha
TimToady std: print 20:59
p6eval std : Potential difficulties:␤ Unsupported use of bare 'print'; in Perl 6 please use .print if you want to print $_, or use an explicit argument at /tmp/kJjSv164Kk line 1:␤------> print⏏<EOL>␤ok 00:01 105m␤
frettled sjohnson: in Perl 5, you'd write int(70/3)
sjohnson ahh 21:01
should actually just try it myself before my brother whines about perl5
cause that is what i would have done 21:02
int(5.3434) etc
frettled yup
sjohnson he's a very capable C coder from the BBS days so i assumed he would have been smart enough to try that 21:03
frettled keep in mind that int(1.9) = 1 - I don't know what PHP does
sjohnson perl is teaching me life lessons
frettled: php will do the same, though you must do (int)(1.9)
not quite sure why you need the (int) and not int()... other than runtime errors 21:04
but it does the trick, and will return 1 and 2, frettled
TimToady interestingly, in Perl 6 you can say (Int)(1.9) and it means the same thing, and so does (((Int)))(1.9) 21:05
frettled nice
sjohnson: I'm surprised that PHP chose to do it the same way as C does casting. ;)
21:05 TimToady sets mode: +vvvv buubot dalek hugme iblechbot, TimToady sets mode: +vvv ilbot2 ilogger2 IRSeekBot, TimToady sets mode: +vvv lisppaste3 p6eval phenny, TimToady sets mode: +v pugs_svn
sjohnson frettled: php is a lot like C syntax, esp. when you have things like continue; and break; 21:06
TimToady rakudo: say (Int)(1.9)
sjohnson but that's about the extent of my C knowledge
p6eval rakudo 7ef386: invoke() not implemented in class 'Integer'␤in Main (file <unknown>, line <unknown>)␤
sjohnson TimToady: use PHP;
( `ー´)
frettled sjohnson: but not for: test ? true-value : false-value
sjohnson i dont know if C does that, but it has that syntax in PHP 21:07
frettled sjohnson: for some reason, PHP chose a different precedence than any other C-like language I know :)
sjohnson one thing i find cool about PHP is it's $array[] = "goose" // push syntax 21:08
that's about the only thing i like about PHP
PerlJam sjohnson: PHP is an excellent example of many things .... not to do :)
frettled heh
TimToady rakudo: say (Rat)(42)
frettled but yeah, that push syntax is okay
p6eval rakudo 7ef386: invoke() not implemented in class 'Rat'␤in Main (file <unknown>, line <unknown>)␤
mberends fesses up to losing the std: revision numbers 21:09
TimToady copied the directory?
pugs_svn r29327 | mberends++ | [src/perl6/Makefile] double the $ for snap Revision that make eated
TimToady ah
mberends make. you know. 21:10
TimToady I stared at that line for 5 minutes and didn't see it.
mberends it was a bit hubristic to replace grep+cut with perl
sjohnson is the [] syntax too radical for P6? i suppose .push() is not too shabby 21:11
TimToady s/too radical/too irrational/ 21:12
PerlJam yikes codinghorror experienced some real horror.
arnsholt Heh. Indeed 21:13
21:15 jimi_hendrix left
sjohnson TimToady has spoken.. i humbly accept his decision 21:15
PerlJam sjohnson: you can modify the grammar if you really want that syntax :) 21:16
sjohnson i won't want to go to Perl hell if i do that... might "go by the book"
only thing i have decided to change is the .vimrc script 21:17
Tene sjohnson: all is fair if you predeclare.
TimToady on the other hand, @array <<== "goose" might do what you want
PerlJam TimToady: "But the feed ops are too many characters!" :)
frettled Is there a Unicode shortcut for ==? 21:18
PerlJam see?!?
Tene None defined.
frettled I see a Quest.
Tene ⇐ might work for feed?
.u ⇐ 21:19
phenny U+21D0 LEFTWARDS DOUBLE ARROW (⇐)
21:20 japhb joined
frettled In my font, it's hard to tell that apart from ← 21:20
Tene .u ←
phenny U+2190 LEFTWARDS ARROW (←)
Tene ← ⇐
japhb seen masak
sjohnson rakudo: for (@TimToady) { do; }
p6eval rakudo 7ef386: Symbol '@TimToady' not predeclared in <anonymous> (/tmp/2V34otKldb:2)␤in Main (file <unknown>, line <unknown>)␤
Tene They're pretty different in mine.
japhb what's the seen syntax here? 21:21
Tene seen masak?
frettled japhb: @seen
Tene phenny: seen masak?
@seen masak
japhb @seen masak
frettled Tene: But yeah, I'm still stuck in the nineties
japhb Bot got netsplit?
mberends ENOBOTS
frettled I think it was @seen, anyway, if the bot is there.
Tene std: for @*TimToady { do; }
p6eval std 29327: Undeclared routine:␤ 'do' used at line 1␤ok 00:01 107m␤
frettled ,seen masak
Tene ¡seen masak! 21:22
frettled heh
Tene ⦃seen masak⦄
japhb Tene, and for that, you will have to repay us with fat arrow syntax in NQP-rx.
frettled japhb: you might just have to search in the IRC log instead, I suppose.
Tene but no, seriously, he quit 3:09 ago 21:23
japhb frettled, not a big deal, wanted to query him re: the installed-modules journal post
TimToady irclog.perlgeek.de/perl6/2009-12-11#i_1826654
Tene japhb: I was offering patches to anyone who bought me lunch in #parrot earlier today.
japhb Tene, I would buy you lunch if you came to my town. :-) 21:24
Tene Which town are you in?
japhb Heck, I'd spring for dinner.
Santa Rosa, CA, USA
(Everyone stop aiming your ICBMs now.) 21:25
Tene I'm hoping to move to the bay area somewhere in the next year or so.
japhb wonders weather the Nuclear War card game is still in print
Tene, ah, excellent! 21:26
South of here has more jobs, but I'm still happier up here than I was down there.
Tene japhb: most people only need at most one job. 21:27
japhb Tene, I have several. I'm just only paid a salary for one of them. ;-)
21:29 hicx174 left, reid06 left, tarbo2 left 21:31 meppel left 21:33 c1sung left, ascent_ left, Woody2143 left, huf left, Patterner left, BinGOs left, IllvilJa left, eiro left, drbean left, xinming left, athomason left, sjn left 21:35 hicx174 joined, tarbo2 joined, reid06 joined, reid06` joined, eiro joined
Tene ... crap, mathw is planning to talk about traits. 21:36
Oh well.
21:37 huf joined
Tene I don't want to do exceptions because exception handlers in master are LTA. 21:37
21:37 drbean joined, Psyche^ joined, Psyche^ is now known as Patterner 21:38 xinming joined, hanekomu_ left, hicx174 left, reid06 left, tarbo2 left
Tene well, I'll think about it later. AFK driving home. 21:39
21:39 hicx174 joined, tarbo2 joined, reid06 joined, c1sung joined, reid06 left 21:49 ash_ joined 21:50 perlygatekeeper left
ash_ just curious, whats the state on <== (feed operators)? the spec (especially S07) has a number of todo's marked in there regarding them 21:50
21:50 Patterner left, reid06` left, japhb left, frettled left, meteorswarm left, frew left, rhr left, arnsholt left, revdiablo left, sjohnson left, jrockway left, charsbar left, zibri left, zostay left, simcop2387 left, IRSeekBot left, Maddingue left, ilbot2 left, PerlJam left, rjh_ left, Gothmog_ left, krunen left, kolibrie left, jantore_ left, sbp left, elmex left, jnthn left, nsh left, felipe left, bigpresh_ left, parduncia left, ssm left, eiro left, pugs_svn left, Woodi left, xenoterracide left, perigrin left, Wolfman2000 left, yahooooo left, Infinoid left, phenny left, hatseflats left, dukeleto left, jiing left, jaldhar_ left, TimToady left, stepnem left, jjore_ left, ingy left, Tene left, cls_bsd left, gabiruh_ left, rindolf left, alester left, dbrock left, gbacon left 21:52 dukeleto joined, Patterner joined, eiro joined, reid06` joined, japhb joined, rindolf joined, stepnem joined, gabiruh_ joined, dbrock joined, alester joined, jaldhar_ joined, gbacon joined, krunen joined, Wolfman2000 joined, perigrin joined, felipe joined, xenoterracide joined, zibri joined, phenny joined, jiing joined, hatseflats joined, pugs_svn joined, cls_bsd joined, TimToady joined, irc.freenode.net sets mode: +ovvo dukeleto phenny pugs_svn TimToady, Infinoid joined, Woodi joined, ingy joined, jjore_ joined, Tene joined, parduncia joined, ssm joined, yahooooo joined, jnthn joined, kolibrie joined, sbp joined, nsh joined, elmex joined, rjh_ joined, jantore_ joined, bigpresh_ joined, Gothmog_ joined, frettled joined, simcop2387 joined, meteorswarm joined, jrockway joined, frew joined, zostay joined, irc.freenode.net sets mode: +ooo Tene jnthn frettled, charsbar joined, rhr joined, IRSeekBot joined, Maddingue joined, arnsholt joined, ilbot2 joined, revdiablo joined, sjohnson joined, PerlJam joined, irc.freenode.net sets mode: +vovo IRSeekBot arnsholt ilbot2 PerlJam
ash_ is it just me or did like 100 people get kicked and rejoin the irc channel? 21:52
21:52 Woody2143 joined 21:53 Lorn_ joined 21:54 drbean left, Lorn left, armagad joined, drbean joined
sjohnson sad say in netsplit history 21:54
day*
armagad freenode is having pain today 21:56
21:58 wolverian left 21:59 brrant joined, armagad left, wolverian joined, jan_ joined
dbrock haha 22:00
ash_ just curious, whats the state on <== (feed operators)? the spec (especially S07) has a number of todo's marked in there regarding them
22:00 brrant left 22:03 pnate joined
pugs_svn r29328 | pmurias++ | [mildew] add missing file 22:03
r29329 | pmurias++ | [mildew] port over module Foo {...}
sjohnson ash_: maybe someone lied and said perl 6 was released today
ash_ sjohnson: i am just wondering if anyone's working on that issue currently, thats all 22:06
pmurias std: our sub foo {};module Foo {our sub foo {}} 22:07
p6eval std 29327: ===SORRY!===␤Illegal redeclaration of routine 'GLOBAL::<&foo>' (from line 1) at /tmp/vFi4pzzVht line 1:␤------> our sub foo {};module Foo {our sub foo⏏ {}}␤ expecting new name to be defined␤FAILED 00:01 106m␤
22:07 drbean_ joined, BinGOs joined, sjn joined, IllvilJa joined
pmurias shouldn't it be equivalent to 22:07
sjohnson ash_: there might be a freenode ircop type chan somewhere on this irc network
pmurias std: sub foo {};module Foo {sub foo {}}
sjohnson ims ure they know something is up by now
p6eval std 29327: ok 00:01 104m␤
dalek p-rx: 8010f63 | pmichaud++ | src/HLL/Compiler.pm:
Add src/HLL/Compiler.pm, omitted from previous commit.
22:08
TimToady pmurias: yes, something definitely wrong with STD there 22:10
sjohnson std: oiwejgeowijgweoigjeagoijewag@#@$E@f32 22:11
p6eval std 29327: ===SORRY!===␤Confused at /tmp/kPplX7Mb6g line 1:␤------> oiwejgeowijgweoigjeagoijewag⏏@#@$E@f32␤ expecting any of:␤ POST␤ argument list␤ infix or meta-infix␤ infix stopper␤ postfix␤ postfix_prefix_meta_operator␤
..standard stopper␤ statement modifier …
sjohnson TimToady: is your current .vimrc up publicly somewhere? 22:12
22:13 rodi left
TimToady no, still using the old one from pugs/util 22:13
sjohnson i was wondering if i could take a peek at it 22:14
ash_ is the std.pm located in the pugs repository? 22:20
rindolf rakudo: [1 .. 100].sum()
p6eval rakudo 7ef386: Method 'sum' not found for invocant of class 'Perl6Array'␤in Main (file src/gen_setting.pm, line 324)␤
rindolf rakudo: sum(1 .. 100)
p6eval rakudo 7ef386: Could not find non-existent sub sum␤in Main (file src/gen_setting.pm, line 324)␤
ash_ rakudo: say [+] 1..100;
p6eval rakudo 7ef386: 5050␤
22:21 IllvilJa left
mberends ash: STD.pm is in pugs/src/perl6 22:21
ash_ mberends++ thanks 22:22
mberends ash_: 169kB, happy reading ;-) 22:23
ash_ lol, more just want to test syntax without spamming irc
mberends ash_: run 'make' in that dir after installing Moose, YAML::Syck etc 22:24
ash_ will do, thanks for the tip 22:25
colomon Tene: ping
Tene yes? 22:26
colomon: pong 22:27
colomon How's the Advent post coming along?
Tene still trying to work out what to talk about.
I had a decent post about traits coming together, and then noticed that mathw is talking about traits. 22:28
colomon Do you want to run moritz_'s stashed post for day 12 and give yourself another day?
Tene colomon: I'm home from work and have no other obligations tonight, so I've got plenty of time. 22:29
colomon okay, then I'll let you get to work. :)
Tene If all else fails, I'll just steal gather/take from moritz. ;)
colomon oooo, gather/take. :) 22:30
Tene I was kind of considering talking about HLL interop.
but that's more parrot than perl 6.
ash_ does gather/take work in rakudo?
Tene Yes.
rindolf Hi Tene 22:31
Tene I first implemented it in rakudo on September 13, 2008.
hi rindolf.
(I already had a git log up, and I was curious)
ash_ lol, was about to say Tene you must be very meticulous 22:33
but doing my @a = gather for 1..4 { take $_; }; say +@a; #=> 1, shouldn't that be 4? 22:34
22:34 vorner joined
ash_ rakudo: my @a = gather for 1..4 { take $_; }; say +@a; 22:35
p6eval rakudo 7ef386: 4␤
ash_ hmm
i am a lair
or a liar
ng: my @a = gather for 1..4 { take $_; }; say +@a;
p6eval ng 6ee78e: 1␤
ash_ there be my problem 22:36
rindolf I'm getting : <<< I'm missing some needed files from the Parrot installation:\n /usr/src/parrot >>> on Mandriva Cooker. 22:37
I used Configure.pl --gen-parrot.
mberends rindolf: check that you have subversion working (svn --version) 22:38
rindolf mberends: OK.
svn, version 1.6.6 (r40053)
mberends hmm 22:39
22:39 IllvilJa joined
dalek kudo/ng: 77ed1d4 | tene++ | src/core/IO.pm:
Minor fix for IO.get
22:41
22:41 Guest12536 left
rindolf Hmmm... seems like the Parrot makefile kept thinking I'm still on perl-5.10.0 22:41
I deleted the Parrot dir. 22:42
22:42 jimi_hendrix joined
mberends rindolf: for the superstitious, 'make realclean && rm -rf parrot parrot_install' before --gen-parrot 22:43
22:50 Su-Shee left 22:52 hanekomu_ joined 22:58 Patterner left, Psyche^ joined, Psyche^ is now known as Patterner 23:02 jlaire joined, athomason joined, am0c joined, slavik joined 23:11 Limbic_Region joined, Limbic_Region left
rindolf rakudo: say ([1..5] * 6) 23:17
p6eval rakudo 7ef386: 30␤
23:17 meppl joined
rindolf rakudo: ([[1,7],2,3,4,5] >>*<< [[100,7],200,300,400,500]).perl.say 23:20
p6eval rakudo 7ef386: [[100, 49], 400, 900, 1600, 2500]␤
pugs_svn r29330 | lwall++ | [STD] generalize say/print warning to anything a p5er might try that might be in p6 23:25
23:27 vorner left
Wolfman2000 evening. Perl 6 stuff from me is kind of on hold while I deal with this: github.com/wolfman2000/pumpproedits/ If any of you guys want to contribute to this...well, PHP app, let me know. 23:27
23:27 iblechbot left
rindolf Wolfman2000: Symfony, heh. That brings back memories. 23:29
Wolfman2000 I believe I know where I'll move my websites to. This host accepts Symfony apps (I called, they answered quickly) 23:30
23:30 nihiliad left
Wolfman2000 anyway, semi afk: going full screen on my VM 23:31
23:36 TimTom joined 23:37 ash_ left 23:41 jan_ left 23:42 pnate left
TimToady rakudo: ([[1,7],2,3,4,5] <<*>> [[100,7],200,300,400,500]).perl.say 23:43
p6eval rakudo 7ef386: [[100, 49], 400, 900, 1600, 2500]␤
TimToady it would appear that rakudo only knows the dwimmy semantics
23:43 meppl left
TimToady ng: say +(1..4) 23:44
p6eval ng 77ed1d: Method 'Num' not found for invocant of class 'Range'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤
TimToady ng: my @a = 1..4; say @a[0] 23:45
p6eval ng 77ed1d: sh: ./perl6: No such file or directory␤
Tene ng is still waiting on the lists refactor from pm.
TimToady std: say exp 23:46
p6eval std 29329: ok 00:01 106m␤
23:52 ash_ joined 23:54 alester left 23:57 rindolf left