»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
jnthn moritz: hmmm. I'm too tired to know if that's a hack or a great idea ;) 00:00
Lemme sleep on it :)
timotimo "that hack is a great idea!"
moritz jnthn: sure
jnthn timotimo: it's sometimes like that too :D 00:01
OK, I guess I should rest. Even though getting up in time to get to $client today was pointless 'cus the subway had epic delays... 00:02
moritz would love to go to bed, but $daughter keeps him awake 00:03
00:22 fgomez joined
japhb I would sing Ronja a lullaby, but I doubt she'd hear it. :-) 00:23
moritz if it were that easy... :-) 00:24
swarley Am I the only one that wants to make a perl6 parser that isn't in perl6 just to be insane? ;) 00:25
japhb I found Dire Straights remarkably effective with my eldest daughter. Somehow Mark Knopfler can just chill a kid right out.
00:25 viewview joined 00:26 pmurias left
moritz heh, Dire Straits work fine for me :-) 00:26
japhb Wow, I saw something wrong with my spelling, but my brain was in such a different space, I couldn't figure out what it was. 00:27
moritz but the problem right now is that Ronja slept for a few hours this afternoon, and now can't sleep at night. No amount of music can change that
00:27 Chillance left
japhb Oh, that one sucks. 00:27
moritz and she's recovering from a bronchitis, so we were reluctant to wake her 00:28
tried twice without success, and then gave up
turns out to be a mistake, as I kinda expected
by the way, I've seen Mark Knopfler live in concert. Really awesome!
japhb OK, I'm officially jealous. 00:29
moritz it was an open air concert, but with a sound quality comparable to studio CDs
swarley So, how can p6 extend its grammar? 00:31
japhb I thought we covered this ...? 00:32
swarley No I know that it is possible now, but not by what means 00:33
A reference to the standard that covers it would be sufficient
moritz by defining types, constants, custom operators and macros
S02 and S06
swarley k 00:34
00:34 thundergnat left
swarley If I'm going to be crazy, I may as well do it properly 00:35
japhb swarley: Start by spending a few hours in a Dali exhibit. Then once your brain is in the right shape ... 00:36
swarley \\\\\o////// 00:38
00:48 PZt joined 00:55 arlinius joined 01:02 cognominal left, atrodo left 01:08 hypolin joined
timotimo digs around in old tickets 01:10
TimToady timotimo: moreinput was always just kind of a placeholder for a feature 01:14
I would be astounded if it actually worked without a bit of redesign
timotimo i'd like to try to implement tr///, but i can't find the implementation of s/// to compare in the grammar 01:23
TimToady those are tribble and sibble in STD 01:27
there's a bit different because tr doesn't have the s[foo] = 'bar' form
*they're
timotimo tribble and sibble? >_< 01:30
that's crazy talk!
and nibble has nothing to do wih sibble and tribble? 01:31
TimToady tribble has to nibble twice, once for each side 01:33
mst reads scrollback and wibbles
timotimo why does STD babble?
or rather: what does babble do? 01:34
diakopter b/c it's a brooken
mst because cupid's disease causes brain damage eventually
timotimo >_<
TimToady babble parsed any adverbs and looks for the delimiters 01:35
timotimo babble does some kind of matching terminator finding?
TimToady *parses 01:36
it doesn't actually look for the terminator, it only determines what the terminator is supposed to be 01:37
in between you have to parse some other language, with that terminator mixed in
01:37 colomon joined
timotimo oh, ok 01:38
TimToady quibble is used by normal choose-your-own-quote constructs like rx// and m//
timotimo that's why tribble quibbles with "$lang2"
TimToady and qq// and q//
timotimo and if the delimiters are the same, like in //, it apparently uses $lang2.unbalanced($stop), that's the part where it mixes in that terminator, yes? 01:39
TimToady nodnod
balanced would be q[] and such
timotimo interestingly in rakudo the grammar part of the implementation of s/// is much much shorter
probably most of i's implemented in the quote proto 01:40
oh, actually there's a huge sibble method above it that i just now saw
hm, i haven't seen this before, why does it say ">>" in this line? github.com/rakudo/rakudo/blob/nom/...r.pm#L2751 01:43
ah, i's just a word boundary 01:44
here's me, again biting off more than i can chew. eventually my jaw will be super flexible 01:48
maybe i should have looked into the specs for tr/ firs to see if it even allows any regular kind of regex 01:50
std: "FooBar" ~~ tr/A..Z/a..z/; 01:53
p6eval std 7551b8f: OUTPUT«ok 00:00 42m␤»
timotimo std: "FooBar" ~~ tr/.*/a..z/;
p6eval std 7551b8f: OUTPUT«ok 00:00 42m␤»
TimToady that would translate . to a and * to b 02:02
so yes, the tr language has nothing to do with regex
it's closer to character classes 02:03
02:05 Vlavv joined
diakopter std: tr/// 02:05
p6eval std 7551b8f: OUTPUT«ok 00:00 41m␤»
02:07 flussence joined
TimToady std: s/// 02:07
p6eval std 7551b8f: OUTPUT«===SORRY!===␤Null pattern not allowed at /tmp/X_aaXPcvUY line 1:␤------> s/⏏//␤ expecting any of:␤ statement end␤ statement list␤Parse failed␤FAILED 00:00 41m␤»
TimToady that shows the difference right there
02:08 Vlavv_ left
timotimo now to try to understand how that comes to be in STD 02:08
02:13 flussence left 02:15 flussence joined 02:17 sqirrel_ joined 02:20 sqirrel left 02:32 anuby joined, hugme left 02:35 hugme joined, ChanServ sets mode: +v hugme
diakopter std: say "foo" ~~ tr//tr//tr//tr//tr//tr//tr//tr/ 02:35
p6eval std 7551b8f: OUTPUT«ok 00:00 43m␤»
timotimo haha, what? : 02:36
:)
i think rather than grabbing at things randomly i should ask some of the experts what they consider managable tasks 02:42
diakopter what kind of tasks 02:43
to contribute to what? 02:44
timotimo i would like to contribute to rakudo
diakopter how good are you with optimizers? 02:47
expert? eager to learn?
02:57 dayangkun left
diakopter Pho & 02:58
timotimo diakopter: i've recently done some baby steps with QAST, but other than that i'm very inexperienced
03:06 jdv79 left 03:07 jdv79 joined 03:08 anuby_ joined 03:09 anuby left 03:10 dayangkun joined 03:43 hulu joined
hulu helo 03:43
masak: helo
au: helo 03:44
colomon \o
hulu sub accum ($n is copy) { sub { $n += $^x } } 03:46
04:04 preflex left 04:05 preflex_ joined 04:06 preflex_ is now known as preflex 04:50 dayangkun left 05:03 preflex left, preflex_ joined 05:04 preflex_ is now known as preflex 05:10 Targen joined 05:11 baest left, baest joined 05:16 SamuraiJack joined 05:18 xinming_ joined 05:21 xinming left 06:07 dayangkun joined 06:11 robinsmidsrod joined 06:30 kaleem joined
diakopter r: $() 06:47
p6eval rakudo 0dda4c: OUTPUT«No such method 'ast' for invocant of type 'Any'␤ in block at /tmp/TdbB9mgQOP:1␤␤»
arnsholt 'lo 06:48
phenny arnsholt: 05 Feb 23:20Z <jnthn> tell arnsholt I'll look at it once I'm home tomorrow, or maybe on Thursday when I don't have to care about anything other than Perl 6 stuff :0
diakopter masak: istr you submitting this one ^^ but I'm not certain
jnthn yawns 07:02
Last day of $assignment here...tomorrow will be free for Perl 6 things. :)
diakopter hi 07:11
jnthn o/ 07:14
jnthn packs stuff
OK, time to go play with the subway... :) & 07:15
07:17 arlinius left 07:29 Woodi left 07:47 jasonmay left, jasonmay joined 07:57 FROGGS joined
FROGGS morning 07:57
sorear o/ 07:59
FROGGS nr: my $x = "abcdef"; say "abc" ~~ / $( $x.substr( 0, 3) ) / 08:03
p6eval rakudo 0dda4c: OUTPUT«「abc」␤␤»
..niecza v24-18-gaf64300: OUTPUT«#<match from(0) to(3) text(abc) pos([].list) named({}.hash)>␤»
08:03 am0c joined
FROGGS nr: my $x = "abcdef"; say "abc" ~~ / $( $x.substr( 1, 3) ) / 08:03
p6eval niecza v24-18-gaf64300: OUTPUT«Match()␤»
..rakudo 0dda4c: OUTPUT«#<failed match>␤»
FROGGS nr: my $x = "abcdef"; say "abc" ~~ / $( $x.substr( 1, 2) ) /
p6eval niecza v24-18-gaf64300: OUTPUT«#<match from(1) to(3) text(bc) pos([].list) named({}.hash)>␤»
..rakudo 0dda4c: OUTPUT«「bc」␤␤»
08:03 am0c left 08:06 fgomez left
FROGGS \o/ 08:06
08:13 drbean left 08:14 fgomez joined
FROGGS sorear: are there plans to output matches in niecza like rakudo does it? 08:15
so that the match object stringifies to 「bc」
sorear FROGGS: I'm not personally going to do it, but I wouldn't object to a patch. do you have a commit bit yet? 08:17
FROGGS sorear: not yet 08:18
sorear would you use one? if so what's your github id
FROGGS will supply the patch in exchange for the bit :o)
FROGGS
sorear done 08:19
FROGGS thanks 08:28
08:31 domidumont joined, domidumont left, domidumont joined 08:32 fgomez left 08:34 brrt joined, fgomez joined 08:41 jtpalmer left, jtpalmer_ joined, am0c joined 08:53 daxim joined 08:57 hoelzro|away is now known as hoelzro 09:04 fhelmberger joined
GlitchMr- twitter.com/GlitchMr 09:18
Just testing
Perhaps if I would make it half transparent... 09:20
Doesn't look good 09:21
09:33 dakkar joined 09:35 kivutar joined 09:41 SamuraiJack_ joined 09:45 SamuraiJack left 09:46 SamuraiJack__ joined
masak good forenoon, #perl6 09:48
09:48 Patterner left, SamuraiJack_ left
moritz \o masak 09:49
09:49 Psyche^ joined, Psyche^ is now known as Patterner
masak I got a teeny tiny bit of the way yesterday with p6cc2012/t1. will continue this evening. 09:59
moritz \o/ 10:00
10:01 xinming_ left 10:02 fgomez left
hulu how to install rakudo on ubuntu 12.04 10:04
brrt sudo apt-get install rakudo-star afaik hulu :-) 10:05
10:05 SamuraiJack__ left
brrt or: git clone git://github.com/perl6/rakudo.git; cd rakudo; ./configure —gen-nqp —gen-parrot; make; sudo make install 10:05
hulu brrt: apt-get will install out of date,and git will error 10:06
brrt how serious is the out-of-dateness for you? 10:07
and what is the error with git
10:07 hypolin left
hoelzro I should really get moving on that rakudo star packaging thing 10:07
what's stopping me at the moment is that Arch has a rakudo package (which is up to date), and I'd rather not install another Rakudo just to install the star modules 10:08
or maybe I should just make the packages conflict?
10:09 SamuraiJack joined
moritz gist.github.com/anonymous/db9465c84b37e631ddd3 # required attributes 10:10
masak: you might like that ^^ 10:11
10:13 anuby_ left
masak oooooooooh 10:18
now give me one good argument for not making that part of the spec and the implementations. 10:19
r: multi trait_mod:<is>(Attribute:D $attr, :$required!) { $attr.set_build: sub ($invocant, $) { die "Attribute { $attr.name } required while constructing object of class {$invocant.^name}!" } }; class A { has $.x is requires }; A.new 10:20
p6eval rakudo 0dda4c: OUTPUT«===SORRY!===␤Cannot call 'trait_mod:<is>'; none of these signatures match:␤:(Mu:U $child, Mu:U $parent)␤:(Attribute:D $attr, :rw(:$rw)!)␤:(Attribute:D $attr, :readonly(:$readonly)!)␤:(Attribute:D $attr, :box_target(:$box_target)!)␤:(Routine:D $r, …
masak :/
uh.
r: multi trait_mod:<is>(Attribute:D $attr, :$required!) { $attr.set_build: sub ($invocant, $) { die "Attribute { $attr.name } required while constructing object of class {$invocant.^name}!" } }; class A { has $.x is required }; A.new
p6eval rakudo 0dda4c: OUTPUT«Attribute $!x required while constructing object of class A!␤ in sub at /tmp/s8_iS7TJ3O:1␤ in block at src/gen/CORE.setting:797␤ in method BUILDALL at src/gen/CORE.setting:752␤ in method bless at src/gen/CORE.setting:742␤ in method new at src/gen/CORE.settin…
10:20 SamuraiJack_ joined
masak r: multi trait_mod:<is>(Attribute:D $attr, :$required!) { $attr.set_build: sub ($invocant, $) { die "Attribute { $attr.name } required while constructing object of class {$invocant.^name}!" } }; class A { has $.x is required }; class B is A {}; B.new 10:21
p6eval rakudo 0dda4c: OUTPUT«Attribute $!x required while constructing object of class B!␤ in sub at /tmp/dWVyg8Qodw:1␤ in block at src/gen/CORE.setting:797␤ in method BUILDALL at src/gen/CORE.setting:752␤ in method bless at src/gen/CORE.setting:742␤ in method new at src/gen/CORE.settin…
masak moritz: not sure whether the "object of class B" there is a feature or a bug... :)
the attribute is still required becuase of class A.
moritz yes, but you're creating an object of class B :-)
10:22 Himanshu_ joined
moritz I wonder if an attribute contains a reference back to the class it's attached to 10:22
10:22 Himanshu_ left
moritz ah, .type 10:22
no, that's the type constraint of the attribute 10:23
masak Suggestion: "Attribute $!x (of class A) required while constructing object of class B" :)
with the parentheses only showing if A !== B 10:24
10:24 SamuraiJack left
hulu r: my $line = "1 2 3";my @words = $line.split(' ');for 0 .. ^ @words -> $a { say $a;} what does '0 .. ^ @words' mean? 10:24
p6eval rakudo 0dda4c: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/K0vfcxFuUJ:1␤------> ' ');for 0 .. ^ @words -> $a { say $a;} ⏏what does '0 .. ^ @words' mean?␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ …
hulu r: my $line = "1 2 3";my @words = $line.split(' ');for 0 .. ^ @words -> $a { say $a;}
p6eval rakudo 0dda4c: OUTPUT«0␤1␤2␤3␤»
hulu what does '0 .. ^ @words' mean?
masak hulu: you should write it as ..^ , not .. ^
it's one single operator: ..^ 10:25
moritz ..^ is a range that excludes its endpoint
masak right, so 1..^4 is 1, 2, 3
moritz though I prefer to write 0 ..^ @words as @words.keys
masak that's clearer, yes.
I think I tend to write it as ^@words often as not.
but I agree @works.keys conveys it better. 10:26
hulu masak: .. ^ can run
masak hulu: yes, but it doesn't mean anything sensible.
hulu: we try to dissuade people from writing code that is obviously wrong, even if it runs.
moritz well, that's interpreted as 0 ... (^@words) 10:27
and ^@words numifies its argument
so it becomes 0 .. ( 0 ..^ @words.elems )
and the outer range numifies its endpoint again 10:28
so we have 0 .. @words.elems in the end
which you could have written as 0 .. @words if you really meant it, but you probably didn't 10:29
masak right.
hulu thx 10:30
masak it's as if someone came in and asked "what does 'if $a == 1 { fn(1) } elsif $a == 2 { fn(2) } elsif $a == 3 { fn(3) } elsif $a == 4 { fn(4) } elsif $a == 5 { fn(5) }' mean?" :)
it'd be almost criminal of us not to suggest that they just write it as 'fn($a)' 10:31
at the very least, we could be considered accomplices to the crime...
10:36 rindolf joined
rindolf Hi all. 10:36
masak greetings rindolf. 10:37
hulu masak: 0 .. ^ @words 中 ^ @words 为什么被数字化
rindolf masak: hi.
masak: what's up?
hulu masak: 是自动的么?
masak rindolf: I... I don't know. :/
hulu: it tends to numify things, yes. 10:38
rindolf masak: OK, then what are you doing now?
masak: did you watch the Superbowl?
masak rindolf: heh. :)
rindolf: no, that's a thing on TV, right?
rindolf I don't even know who was against who and who won.
masak: yes, a big American celebration.
masak hulu: so @words will be treated as +@words 10:39
rindolf: from what I gather of it, it's a celebration of quality advertisement.
rindolf masak: the final football match of their American football league.
diakopter the Raven Baltimores defeated the 49ers San Franciscos
masak rindolf: that's good. we need more quality advertisement.
rindolf masak: yes, that's what I understood too.
masak: heh, yes.
masak hulu: you can also do 'a'..'c' -- then things don't numify.
hulu: but if the left side is a number, the right side will tend to want to numify.
rn: .say for 'a' .. 5 10:40
p6eval rakudo 0dda4c, niecza v24-18-gaf64300: ( no output )
masak rn: .say for 5 .. 'a'
p6eval niecza v24-18-gaf64300: OUTPUT«Unhandled exception: Cannot parse number: a␤ at /home/p6eval/niecza/lib/CORE.setting line 1435 (die @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3539 (ANON @ 10) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3541 (NumSyntax.str2num @ 5) ␤ at /h…
..rakudo 0dda4c: OUTPUT«Cannot call 'Real'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤␤ in method Real at src/gen/CORE.setting:872␤ in method Real at src/gen/CORE.setting:2391␤ in method new at src/gen/CORE.setting:5255␤ in sub infix:<..> at src/gen/CORE.setting:5436␤ in blo…
rindolf masak: I enjoyed the IBM commercial about (GNU/)Linux as a child who gets taught.
hulu masak : + @words 相当与 @words.elems
rindolf masak: that was a while back.
masak hulu: 对 10:41
10:42 xinming joined 10:44 am0c left
dalek ast: 82f5bc3 | moritz++ | S05-metasyntax/litvar.t:
unfudge some now-passing tests for rakudo
10:47
hulu r: sub infix:<lf> ($a,$b) { next unless try $a.substr(*-1,1) eq $b.substr(0,1); "$a $b"; } multi dethunk(Callable $x) { try take $x() } multi dethunk( Any $x) { take $x } sub amb (*@c) { gather @c».&dethunk } say first *, do amb(<the that a>, { die 'oops'}) Xlf amb('frog',{'elephant'},'thing') Xlf amb(<walked treaded grows>) Xlf amb { die 'poison dart' }, {'slowly'}, {'quickly'}, { die 'fire' };
p6eval rakudo 0dda4c: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/tdztv3tpKL:1␤------> tr(*-1,1) eq $b.substr(0,1); "$a $b"; } ⏏multi dethunk(Callable $x) { try take $x␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopp…
moritz hulu: when you remove a newline after a }, you need to add a ; instead 10:48
hulu moritz: thx 10:49
r: sub infix:<lf> ($a,$b) { next unless try $a.substr(*-1,1) eq $b.substr(0,1); "$a $b"; } multi dethunk(Callable $x) { try take $x() }; multi dethunk( Any $x) { take $x }; sub amb (*@c) { gather @c».&dethunk }; say first *, do amb(<the that a>, { die 'oops'}) Xlf amb('frog',{'elephant'},'thing') Xlf amb(<walked treaded grows>) Xlf amb { die 'poison dart' }, {'slowly'}, {'quickly'}, { die 'fire' };
p6eval rakudo 0dda4c: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/UG7D3jOfng:1␤------> tr(*-1,1) eq $b.substr(0,1); "$a $b"; } ⏏multi dethunk(Callable $x) { try take $x␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopp…
hulu moritz: still wrong
moritz hulu: and it even tells you where it's still wrong 10:51
where the error message inserts a ⏏, that's where the semicolon is missing
hulu r: sub infix:<lf> ($a,$b) { next unless try $a.substr(*-1,1) eq $b.substr(0,1); "$a $b"; }; multi dethunk(Callable $x) { try take $x() } multi dethunk( Any $x) { take $x } sub amb (*@c) { gather @c».&dethunk } say first *, do amb(<the that a>, { die 'oops'}) Xlf amb('frog',{'elephant'},'thing') Xlf amb(<walked treaded grows>) Xlf amb { die 'poison dart' }, {'slowly'}, {'quick 10:53
p6eval rakudo 0dda4c: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/OYt1956sqx:1␤------> dethunk(Callable $x) { try take $x() } ⏏multi dethunk( Any $x) { take $x␤ expecting any of:␤ postfix␤ argument list␤ infix or meta-inf…
hulu r: sub infix:<lf> ($a,$b) { next unless try $a.substr(*-1,1) eq $b.substr(0,1); "$a $b"; }; multi dethunk(Callable $x) { try take $x() }; multi dethunk( Any $x) { take $x }; sub amb (*@c) { gather @c».&dethunk } say first *, do amb(<the that a>, { die 'oops'}) Xlf amb('frog',{'elephant'},'thing') Xlf amb(<walked treaded grows>) Xlf amb { die 'poison dart' }, {'slowly'}, {'qui 10:54
p6eval rakudo 0dda4c: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/eHFzrM8J7g:1␤------> sub amb (*@c) { gather @c».&dethunk } ⏏say first *, do amb(<the that a>, { ␤ expecting any of:␤ method arguments␤ postfix␤ infix or meta-…
hulu r: sub infix:<lf> ($a,$b) { next unless try $a.substr(*-1,1) eq $b.substr(0,1); "$a $b"; }; multi dethunk(Callable $x) { try take $x() }; multi dethunk( Any $x) { take $x }; sub amb (*@c) { gather @c».&dethunk }; say first *, do amb(<the that a>, { die 'oops'}) Xlf amb('frog',{'elephant'},'thing') Xlf amb(<walked treaded grows>) Xlf amb { die 'poison dart' }, {'slowly'}, {'quickly'}, { die 'fire' }; 10:55
p6eval rakudo 0dda4c: OUTPUT«that thing grows slowly␤»
10:57 SmokeMachine joined
hulu r: sub infix:<lf> ($a,$b) { next unless try $a.substr(*-1,1) eq $b.substr(0,1); "$a $b"; }; say 'kkk' lf 'ttt'; 10:59
p6eval rakudo 0dda4c: OUTPUT«next without loop construct␤ in block at src/gen/CORE.setting:451␤ in block at src/gen/CORE.setting:515␤ in sub infix:<lf> at /tmp/tJs4pZ9qLf:1␤ in block at /tmp/tJs4pZ9qLf:1␤␤»
hulu r: sub infix:<lf> ($a,$b) { next unless try $a.substr(*-1,1) eq $b.substr(0,1); "$a $b"; }; say lf 'kkk' 'ttt'; 11:00
p6eval rakudo 0dda4c: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/QSXSe6ENQI:1␤------> b.substr(0,1); "$a $b"; }; say lf 'kkk' ⏏'ttt';␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ statement end␤ s…
hulu r: sub infix:<lf> ($a,$b) { next unless try $a.substr(*-1,1) eq $b.substr(0,1); "$a $b"; }; say lf 'kkk','ttt';
p6eval rakudo 0dda4c: OUTPUT«===SORRY!===␤Undeclared routine:␤ lf used at line 1. Did you mean '&lc'?␤␤»
hulu moritz: say 'kkk' lf 'ttt; why not run? 11:01
moritz hulu: you've declared lf as an infix, so you must use it as an infix, not as a normal subroutine 11:02
oh, and the other one: it told you in the error message what was wrong
hulu r: sub infix:<lf> ($a,$b) { next unless try $a.substr(*-1,1) eq $b.substr(0,1); "$a $b"; }; 'kkk' lf 'ttt'; 11:03
p6eval rakudo 0dda4c: OUTPUT«next without loop construct␤ in block at src/gen/CORE.setting:451␤ in block at src/gen/CORE.setting:515␤ in sub infix:<lf> at /tmp/tUzHZxcy7n:1␤ in block at /tmp/tUzHZxcy7n:1␤␤»
moritz hulu: did you read the error message?
hulu moritz: my english is poor 11:04
r: sub infix:<lf> ($a,$b) { "$a $b"; }; 'kkk' lf 'ttt';
p6eval rakudo 0dda4c: ( no output )
hulu r: sub infix:<lf> ($a,$b) { "$a $b"; }; say 'kkk' lf 'ttt';
p6eval rakudo 0dda4c: OUTPUT«kkk ttt␤»
moritz hulu: yes, I known. But did you read the error message?
hulu moritz: read a little 11:05
11:05 b1rkh0ff left 11:06 b1rkh0ff joined 11:07 b1rkh0ff left
masak hulu: 'next without loop construct'. 'next' can only occur inside a loop. 11:07
hulu: maybe you meant 'return'?
hulu r: my $a = 'hello'; $a.substr(*-1,1);
p6eval rakudo 0dda4c: ( no output )
hulu r: my $a = 'hello';say $a.substr(*-1,1); 11:08
p6eval rakudo 0dda4c: OUTPUT«o␤»
masak \o/
hulu r: my $a = 'hello';say $a.substr(0,1);
p6eval rakudo 0dda4c: OUTPUT«h␤»
hulu r: my $a = 'hello';say $a.substr(*-2,1);
p6eval rakudo 0dda4c: OUTPUT«l␤»
11:09 dayangkun left
hulu r: my $a = 'hello';say $a.substr(0,1); 11:09
p6eval rakudo 0dda4c: OUTPUT«h␤»
hulu r: my $a = 'hello';say $a.substr(*-2,1);
p6eval rakudo 0dda4c: OUTPUT«l␤»
arnsholt Where are good places to start to see how Rakudo's high water mark stuff works? 11:12
hulu r: version 11:13
p6eval rakudo 0dda4c: OUTPUT«===SORRY!===␤Undeclared routine:␤ version used at line 1␤␤»
moritz arnsholt: in the code? or in generated errors?
hulu: the 0dda4c in 'rakudo 0dda4c: OUTPUT' is the version string from git
hulu: it is rebuilt once per hour or so, to be always the latest development version 11:14
arnsholt: if code, git log -p 40681316098717e5ca59295d38f814604b28dd45
hulu moritz: how to install development version on ubuntu 12.04
moritz hulu: that's documented here: rakudo.org/how-to-get-rakudo/ under the section "Building the compiler from source" 11:15
masak r: say $*PERL<compiler><ver> 11:16
p6eval rakudo 0dda4c: OUTPUT«2013.01-100-g0dda4c8␤»
masak ugh, premature optimization there with 'ver' :(
moritz aye
masak that's not even a common abbreviation of 'version'. 11:17
is it spec?
S28 mentions $*PERL, but not its structure AFAICS.
FROGGS S11 Versioning tells about :ver<1.2.3> when "use"-ing modules 11:19
11:19 Liz_ joined, Liz_ is now known as lizmat
masak yeah, I guess... 11:21
and we do abbreviate :auth, too, for ambiguous goodness. 11:22
masak drops the case
11:25 [particle]1 joined 11:27 [particle] left
arnsholt moritz: Cheers! I was looking for the code, yeah 11:27
(Want it for one of my own grammars)
moritz oooh 11:28
moritz wonders if JSON::Tiny will grow into JSON::Small 11:29
masak clearly, it's already bloated, since it outputs things as '{ "foo": 42 }', not '{"foo":42}' 11:30
:P
moritz hey, it's not called JSON::Compact :-) 11:31
masak wonders how little code he could get away with, writing a mixin to turn JSON::Tiny into JSON::Compact... 11:32
hulu moritz: compile rakudo on ubuntu 12.04 wrong with 'error:imcc:No such file or directory 'interpinfo.pasm' in file 'runtime/parrot/library/parrotlib.pir' line 194 make: *** [runtime/parrot/include/parrotlib.pbc] 错误 1 Command failed (status 512): make install-dev' 11:33
moritz hulu: which command did you run to get that output?
hulu moritz: perl Configure.pl --gen-parrot --gen-nqp 11:34
moritz hulu: and was that the first error message you got? 11:35
hulu moritz: yes
11:36 SamuraiJack__ joined
moritz hulu: can you please paste the complete output to a nopaste site, and give us the link to it? 11:37
masak hulu: gist.github.com/ is a fine choice if you're unsure. 11:38
hulu moritz: gist.github.com/anonymous/4722076 11:39
masak: thx
11:39 SamuraiJack_ left 11:40 rindolf left
moritz hulu: that's not the complete output 11:40
lunch&
masak hanzi in the path... inneresting. 11:44
hulu moritz: gist.github.com/anonymous/4722099 11:45
masak hanzi in the path, and the error message is "No such file or directory"... :) 11:46
not implying anything, but mayhaps suggesting that's where to start looking.
hulu: do you think you could try this in a path that isn't /home/Data/Host/下载/rakudo.build/parrot/blib/lib and that doesn't have characters like 下载 in it? 11:48
hulu masak: let me try
11:49 odoacre left 12:01 hulu left 12:02 kresike joined
kresike hello all you happy perl6 people 12:02
12:07 mtymula joined
mtymula Hi one quck ( I guess) question. Which module is better and more reliable to use DBIish or MiniDBI to hook up mysql to my web app 12:08
??
anyone?? 12:10
moritz DBIish is maintained 12:11
MiniDBI not 12:12
12:13 bruges left 12:14 bruges joined 12:18 nebuchadnezzar left 12:20 nebuchadnezzar joined
masak mtymula: I'd go with DBIish. 12:23
(I'd also avoid mysql, but that's another matter) ;) 12:24
12:25 JimmyZ_ joined
JimmyZ_ 晚上好 12:26
kresike .oO( are there a lot of people here who try to avoid mysql ? )
masak 晚上好, JimmyZ_! \o/ 12:27
12:28 jerome joined
JimmyZ_ 麦高 下午好 12:29
masak ;) 12:30
masak .oO( 你的晚上好是我的下午好 )
moritz mtymula: the postgres driver for DBIish works better than the mysql driver :-) 12:31
masak s/driver (\w+ \w+)?//g # :P 12:32
12:32 hulu joined 12:35 cognominal joined 12:39 hulu left
grondilu Is there a free hosting service that would provide Perl6 CGI? 12:44
moritz feather
12:47 JimmyZ__ joined 12:50 JimmyZ_ left
masak today for lunch I've been reading javascript.crockford.com/tdop/tdop.html with interest. 12:50
moritz had pizza for lunch 12:51
masak it feels like the parsing analogue of the Lisp metacircular evaluator.
this one isn't half a page, but it's still pretty impressive, and very readable.
the paragraph that caught my eye, though, was the one that starts "We need a policy for reserved words." 12:52
it outlines an idea I've never encountered before for reserved words and forward-compatibility.
12:53 shinobicl left
masak I'm simultaneously thinking "ooh, that's pretty neat" and "there's *got* to be a catch here somewhere, making the future horrible in some way for a language that does this" 12:53
thought I'd query this channel for whether my pessimism is justified. :) 12:54
12:55 JimmyZ__ left
moritz " For example, we can say that in any function, any name may be used as a structure word or as a variable, but not as both. We will reserve words locally only after they are used as reserved words." 12:57
that's what you're referring to, right?
masak that's what I'm referring to, right.
so, in essence, future keywords will stay out of functions where there are lexicals with that name.
moritz which would mean that function myf() { var if = 42; if ( # syntax error
masak yes, it would. 12:58
you cannot both declare the variable and use the keyword.
moritz it has a certain appeal
masak exactly :)
moritz though it makes it harder to refactor by cut'n'paste
masak troo
moritz but I don't think that's too valid an argument 12:59
12:59 SmokeMac_ joined
masak the design decisions has somewhat the same "structure" as "let's make semicolons optional so that people shouldn't have to care". 12:59
moritz I mean, if you cut'n'paste-refator perl code, you also have to take care that the right imports are in the paste scope
masak decision*
13:00 SmokeMachine left
moritz in some sense it violates the principle of lexical overridability 13:01
you can declare a lexical of the same name in an inner scope
but you cannot use it as a keyword in an inner scope
masak hm, doesn't it simply imply that the keywords come from a "setting", as it were? 13:02
I mean, you cannot un-override lexicals from the setting, either.
moritz again, not sure how much of a practical problem it is, but it feels like it taints the beauty of the concept
don't we have 'hides' and such stuff?
masak have it where? 13:03
moritz in Perl 6
r: constant uc = 'FOO'; say uc 'bar';
p6eval rakudo 0dda4c: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/g2veDL428H:1␤------> constant uc = 'FOO'; say uc ⏏'bar';␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ statement end␤ statement mod…
moritz a lexical constant (which is like a mini-keyword) can still override an outer lexical sub of the same name 13:04
your language would need a similar syntax for re-enabling the keyword usage of a symbol in an inner scope to do the same
13:07 cognominal left 13:13 shinobicl joined 13:14 cognominal joined
masak I don't see why. 13:16
13:16 SamuraiJack__ left
masak once you declare a lexical variable, you forfeit all claims in that scope to the underlying keyword. 13:17
to me, it doesn't violate lexical overridability, it just makes keywords adhere to the same rule. 13:18
it's like the 'if' keyword says, "an 'if' variable? well, then you clearly don't need me in this scope! hmpf!"
what is that if not lexical overridability? 13:19
if you consider the use of if-the-keyword as a kind of declaration, too, then... oh. I see your counterargument now. :)
yes. that's the bad part. 13:20
13:20 cognominal left 13:23 viewview left
moritz well, you could allow 'keyword if;' in analogy to 'var if;' 13:25
masak yes, but that still doesn't make scopes/routines easily movable across the source. 13:26
the bad case happens when you move a block that uses the keyword into a block that declares the variable. 13:27
13:28 cognominal joined
moritz well, then you'd need 'keyword if;' at the start of the block 13:30
masak right. and you didn't before the refactor. 13:31
so in short, the reserved words policy makes it harder to do such refactors of code. 13:32
moritz well yes. Just like you might have an outer variable declared that you need to move/copy along with the code
13:32 cognominal__ joined 13:33 cognominal left 13:34 cognominal__ left, cognominal joined 13:35 dayangkun joined
masak I guess. 13:44
I also guess a refactoring tool could DTRT and insert the 'keyword if;' statement for you.
in conclusion, idea not dead yet! :)
13:45 shinobicl left
moritz no, not dead at all 13:45
but it's not flawless
masak right. 13:48
errand &
13:50 shinobicl joined
FROGGS nr: print "a" ~~ /./ 13:53
p6eval niecza v24-18-gaf64300: ( no output )
..rakudo 0dda4c: OUTPUT«a»
13:54 dayangkun left
FROGGS sorear: thats my patch, it is a 1:1 copy&pasto from rakudo: gist.github.com/FROGGS/0a6f8e2d4053fb0ba5d0 13:55
running the spectest right now, but I'm not sure if gist's signature is right for niecza, since I dont see anything similar 13:56
13:56 kaleem left 13:57 colomon left 14:00 [particle] joined 14:01 rindolf joined 14:03 [particle]1 left 14:06 dayangkun joined
moritz lwn.net/SubscriberLink/534758/bcb45583bc25268d/ # whoa, hardware support for transactional memory, and a patch for gnu libc to use it 14:11
14:12 FROGGS left
diakopter cool 14:12
I wonder whose subscriber link that is ;) 14:13
14:13 PacoAir joined
moritz dunno, was posted on hackernews 14:13
rindolf Hi all. 14:14
TimToady: here?
moritz but lwn is explicitly fine with sharing such links
14:14 cosimo left
diakopter rindolf: it's 6:15 a.m. in California 14:14
14:14 cosimo joined
rindolf diakopter: ah, I see. 14:14
diakopter: well, I shall wait.
diakopter you have a question? 14:15
rindolf diakopter: I may be able to meet some friends for some food and drink and chat in downtown Tel Aviv in 18:00.
diakopter _._.
diakopter laughs a little and wonders what that means 14:16
rindolf diakopter: it's about philology, so I want Mr. Wall who has studied it.
diakopter decides to presume you meant "chat" as "chat with TimToady online" 14:17
14:18 cognominal left
rindolf Other people here may be able to help too, but it's off-topic here. 14:18
And pretty insane.
diakopter: well, chat with some friends in real life.
diakopter: but orthogonally I want to chat with TimToady 14:19
diakopter: the people on #linguistics are a nasty lot.
diakopter interesting
14:19 pmurias joined
diakopter maybe they're not people 14:20
14:22 atrodo joined
pmurias swarley: re loading of yarv bytecode, I skimmed through the ruby code which loads the instructions, and I should be able to create a C extension for ruby which creates it from a more compact format (bytecode of some sort) 14:22
rindolf diakopter: they are not bots.
diakopter: but they are obscene. 14:23
diakopter: and they kicked me out of it.
pmurias swarley: but I don't think it's worth doing that till you can compile a lot of QAST into yarv bytecode, as I doubt it will be the bottleneck
14:23 cognominal joined
rindolf diakopter: they think they are superior to me. 14:23
moritz rindolf: but I'm sure they didn't kick you out just because they were obscene
sometimes when I don't get along well with people, it's not because they are nasty, but because we have an impedance mismatch 14:24
PerlJam There's *always* an impedance mismatch ... you just have to diddle with the magnitude until you get a local minimum. 14:25
masak also, in many cases when someone comes in saying "I couldn't get what I wanted on channel Y, could someone here on channel X help me", the topic is definitely off-topic and better handled in privmsg :)
moritz PerlJam: sure, I should have said "because the impedance mismatch is too large" 14:26
happend with jaffa4 and me for a few times, for example
PerlJam masak: you know that #perl often gets "you guys are the smartest people I know, help me with <X>" where <X> is often regex, but also other things not-perl. 14:27
14:27 kaare_ joined
PerlJam ergo #perl is permanently off-topic ;) 14:27
masak oh, that kind of request somehow feels more OK. 14:28
because then there isn't necessarily another channel where the discussion should've been held.
Juerd Interesting: blogs.perl.org/users/ovid/2013/02/perl-7.html 14:29
PerlJam Juerd: crazy :) 14:30
14:30 colomon joined 14:32 dayangkun left, dayangkun joined
arnsholt rindolf: What kind of philology? (I'm not a real philologer, but I pretend to be one at times) 14:33
masak ah, Juerd++ beat me to it. :)
nwc10 I haven't yet worked out what (if any) substantive differences there are between what people *say* they want, and Perl 6. In as much as, a shipping Perl 6 would seem to satisfy all the desired things, unless the desire is that "It's not called 'Perl 6'"
desired feature list is usually pretty close to what Rakudo already mostly does. 14:34
arnsholt I think a desideratum is "lacks the painful backstory of Perl 6"
nwc10 yes
arnsholt Or whatever word you think is better than painful
nwc10 but the problem is if you start from here
pretty much any approach you take has massive parallels to how Perl 6 started
and it's not clear how it's going to turn out differently.
masak I almost replied to twitter.com/OvidPerl/status/299146841407242243 asking "The problem of there only being a finite number of positive integers for the minor version?", but decided that was too sarcastic to be posted on Twitter. 14:35
14:35 Targen left
nwc10 including (*key*) not taking a long time 14:35
if you're starting from "no implementation" *and* "no design" you've got a large amount of work ahead of you. 14:36
arnsholt masak: That'd be a pretty amusing reply, actually =)
PerlJam notes that none of the comments thus far actually address Ovid's question 14:37
nwc10 possibly the absence of comments can be used to infer an answer
masak arnsholt: nah, better not :)
diakopter v20 makes it sound old, like Chrome 14:38
masak whereas 7 is young? :P 14:39
nwc10 none of this actually makes the language any better, or the internals any easier to curate.
unlike Perl 6
diakopter Microsoft (R) C/C++ Optimizing Compiler Version 16.00.40219.01 for x64
14:40 benabik joined, stopbit joined
arnsholt masak: Yeah, it might start a massive flamewar ;) 14:42
14:43 skids left
perigrin Perl5 *is* old though. 14:43
arnsholt That it is
perigrin Older than Chrome (which is on v24 currently)
diakopter ..... 14:44
14:45 bluescreen10 joined
diakopter in many circles, newer is better. In other many circles, older is better. 14:45
(not always of course, just generally not knowing anything else) 14:46
arnsholt There's a sweet spot (different for different applications) I think 14:47
diakopter of course, once you actually learn about the product instead of just knowing its version number or age 14:48
rindolf arnsholt: hi. 14:51
arnsholt: sorry for the late response - well, it's a general question.
14:51 gfldex left
rindolf arnsholt: <rindolf> I have a question about philology: is it a commo 14:52
nly accepted theory that various artworks (such as the Bible, the Greek Mytholog
y, Vampire stories, comic books, etc.) were used as conduits for passing message
s between the intellectual elite of the world? (Like: Semites -> Jews -> Vampire
s -> Filmmakers -> Hackers -> Geeks)
14:53 gfldex joined
arnsholt I think classing mythology like the Bible and the Greco-Roman pantheon as elite phenomena is incorrect 14:53
rindolf arnsholt: OK, but in general? 14:54
diakopter omg
arnsholt Not sure, really
rindolf arnsholt: ah.
arnsholt Depends a bit on what you mean with the passing of messages between elites
rindolf arnsholt: I heard something like that about en.wikipedia.org/wiki/The_Protocols...rs_of_Zion
arnsholt: well, maybe see www.shlomifish.org/humour/Star-Trek...ving-Dead/ .
clkao w/win 31
rindolf clkao: hi, what's new? 14:55
diakopter when were Semites, Jews, Vampires, Filmmakers, Hackers, or Geeks the intellectual elite?
rindolf clkao: long itme.
clkao apparently, my keyboard!
is now
is new
arnsholt Heh. clkao has lots of windows open =)
rindolf diakopter: well, they disobeyed the rules and challenged them. Compromised on quality of delivery, while making the quality of the content better.
diakopter Wat. 14:56
rindolf diakopter: I mean like using E-mail or Usenet instead of, say, typesetting. Or even the print instead of hand-written books. 14:57
diakopter: now the Roman Catholic pope has a twitter account. :-D
diakopter: Gutenberg's print invention ended up producing lesser quality than hand-written sheets. 14:58
diakopter: and was met with contempt.
diakopter: but it enabled the protestant revolution. 14:59
14:59 aindilis left
diakopter rindolf: was this your question in #linguistics? 14:59
rindolf diakopter: I flooded it.
diakopter: yes, that was my question.
14:59 aindilis joined
masak and they kicked you? outrageous. 14:59
rindolf diakopter: Ayn Rand held Mickey Mouse and Walt Disney in contempt in The Fountainhead.
masak: well, after asking me obscene questions.
diakopter your question is obscene 15:00
rindolf diakopter: because it was easier to create animations than it was to produce live actor films.
masak I don't know what the question is. it just looks very confused.
diakopter "is it a commonly held theory...?"
rindolf masak: OK, maybe read www.shlomifish.org/humour/Star-Trek...ving-Dead/ .
diakopter in other words, "I'm proponing this"
masak proposing* 15:01
arnsholt rindolf: To say that "the terran alphabet" (Latin script, I assume) was invented for Hebrew isn't very right =)
diakopter proponing?
rindolf arnsholt: well, back then Hebrew was the same as Phoenician.
masak diakopter: "proponent", "proposing", "proposition".
brrt rindolf, also, it is not really a commonly held theory 15:02
rindolf arnsholt: I call it collectively the Hebrew language.
brrt: ah.
arnsholt Still, Latin script is very far removed from both Hebrew and Phoenician
15:02 cognominal left
rindolf brrt: more like a grand unified conspiracy theory that people think is silly? 15:02
masak rindolf: I'm not being obscene to you because of your question. neither is anyone else here. that doesn't mean I am capable of -- or interested in -- taking the question seriously. 15:03
brrt well, yes, and one that is popular in the more extremist circles for that
rindolf brrt: OK, thanks. 15:04
masak: they were obscene from different reasons.
brrt: OK, thanks.
brrt: well, perhaps it was an advancement of memes.
[Coke] This all seems very offtopic to me. 15:05
arnsholt But no, I don't think anyone seriously believes that expressions of culture/art are conciously used to pass ideas between culturally distinct groups
masak huh. dictionary.reference.com/browse/propone exists. diakopter++
apparently it's Scottish.
15:05 benabik left
arnsholt But this is more properly a question of sociology or social anthropology I think, rather than philology 15:05
PerlJam [Coke]: Ever hear the expression "herding cats"? :-) 15:06
arnsholt [Coke]: That would be because it's off topic =)
brrt well, if you want to discuss perl6, better finish that compiler then, me boys ;-)
diakopter arnsholt: it's more properly a question of psychiatry
rindolf Like “The Gods help them that help themselves” -> “Trust in God, but tie your camel” -> “Reality to be conquered must be obeyed” -> “If you mountain does not come to Muhammad…” -> “God helps them that help God help them.”
masak [Coke]: I agree. but more importantly, it's a silly/boring topic.
rindolf People building on each other's work.
Like open source. :-)
15:06 [Coke] left 15:07 atrodo left
rindolf Well, such hacktivity existed in the Jewish Midrash (= "study") too. 15:07
diakopter requests a respite from the [OT]
masak +1
rindolf OK,
No more offtopic.
masak didn't want to be the first to propone it :) 15:08
rindolf So Perl 6?
masak: :-)
brrt this language, yeah
rindolf What is it?
masak yes ktxplz
PerlJam Perl 6 is awesome!
rindolf Is it dead?
15:08 cognominal joined
brrt perl6 is not dead 15:08
masak rindolf: what are you, a troll?
brrt it is an idea
it cannot die
rindolf Perl 6 makes the sun shine and the birds sing.
masak: sorry, I'll shut up.
diakopter masak: some trolls don't know they're trolls
rindolf masak: it was a reference to "Perl is Dead".
masak rindolf: until you have something nice to say :)
rindolf masak: sure.
brrt or not nice, but it had better be a bug report then 15:09
diakopter masak: I can say that, having been one unknowingly myself at least several times
nwc10 Oooh, FROGGS has a pretty github avatar: github.com/rakudo/rakudo/commits/nom
masak diakopter: oh man, what was the name of that guy a couple years ago? :)
diakopter: yes, you're completely right.
PerlJam Did you guys see Ovid's comment on his own post? ``I just got back from FOSDEM and heard, again, for the umpteenth time, that since Perl had 4 "major" releases (1,2,3,4) in its first few years and hasn't had a major release since Perl 5 about 20 years ago, it's clearly "dead".''
diakopter trying to remember
PerlJam That's actually the first time I've heard quite that spin on it. 15:10
masak diakopter: k23z__
diakopter that's, like, the by far predominant viewpoint in industry, afaict
masak diakopter: irclog.perlgeek.de/perl6/2010-03-06#i_2071605
brrt as in, the version of perl is asymptotically approaching six
diakopter no, it's just viewed as in maintenance mode only
PerlJam because the major version number isn't changing? 15:11
diakopter definitely
PerlJam that's bizarre.
diakopter not bizarre at all
masak PerlJam: to me it just shows that you can spin anything any which way.
"we do releases" -- "yeahbut I mean *real* Scotsman releases!" 15:12
"Perl 5 keeps evolving" -- "yeahbut I mean major versions!"
nwc10 Ruby is dead too?
brrt nwc10 beat me to it
diakopter ruby is still the new hotness
brrt python as well, since nobody uses 3
ruby was so the new hotness 5 years ago
nobody cares today
(or maybe i'm just bored easily)
nwc10 they're going to care again pretty soon if their Rails app gets pwned.
brrt if anything, i'd say scala was the new hotness 15:13
nwc10 Scala is taking the crown from Node.js?
brrt node.js is a dangerous tool
diakopter node is also the new hotness
brrt a fantastically fun powerful tool
but not a really good tool for most developers
nwc10 an event loop - is it single threaded? 15:14
diakopter yes.
brrt scala has all the java enterprise aura arround it
nwc10 cool. So you have to do co-operative multi tasking. Or you block. Ace.
brrt nwc10, and what is more, where is your catch block?
diakopter nwc10: yup.
nwc10 Wasn't pre-emptive one of the selling points of Win95 over Win 3.1? 15:15
diakopter well you don't block, you spin in your event loop waiting for IO or whatever
15:15 [Coke] joined
brrt now, multiprocessing node.js, that could be made to work 15:15
(and it is , in fact)
diakopter not with shared memory
brrt true 15:16
diakopter which is the crucial bit
nwc10 I remember Win95 when it was new. This is troubling :-)
although it would be more troubling if I couldn't remember it :-)
brrt diakopter, how is it the crucial bit? php doesn't share memory and it is pretty popular
diakopter I don't recall reading about anyone doing big data or web *servers* in php 15:17
PerlJam or biophp
diakopter but of course Java excels at those
brrt PerlJam…. you have ruined my dreams
pmurias diakopter: there's bioperl and the perl 4 threading model isn't something to be particularly proud of 15:18
* perl 6
PerlJam brrt: dream about NumPHP (similar to NumPy) instead.
pmurias sorry
* perl 5
brrt fortunately it still seems pretty small
diakopter pmurias: I'm pretty sure I was talking about php
brrt anyway, threading is not important 15:19
PerlJam brrt: except that everyone wants it (or thinks they do)
diakopter they want it.
timotimo i want to think i do! 15:20
diakopter just because it's not best for every application it will be used for doesn't mean it shouldn't be massively robust
brrt anyway, when people have burned their hands on node.js, they will move onto the next hot thing 15:21
my guess is that next hot thing is going to be scala 15:22
timotimo depend on wether or not rakudo runs on the jvm by that time :P
brrt i'm not optimistic that the typical perl6 will gain a enterprise aura anytime soon :-) 15:23
which is ok
timotimo ;) 15:24
masak I don't much care. I'll be a happy to be massively useful and expressive, and serving a slowly growing community of happy enthusiasts. 15:26
nwc10 if one has the Perl 6 version of B::Deparse::Scala, does it matter?
just decompile the Perl 6 code into whatever is politically acceptable, and ship that
15:28 rindolf left
GlitchMr- For me, Perl 6 is innovative, just like Smalltalk. 15:29
PerlJam that was Parrots "killer-app" ... the promise of multiple languages interacting smoothly.
GlitchMr- Junctions are awesome, and I really would like to see them in other programming languages.
brrt PerlJam, we can still make that work :-)
PerlJam brrt: indeed, I hope so. 15:30
brrt my personal hope would be to consolidate the openbio communities 15:31
GlitchMr- > my $ab = /ab/ & /a.?b/ 15:32
all(, )
Close enough
rn: my $ab = /ab/ & /abc/; ('abc' ~~ /($ab)/).perl.say; $/.gist.say; 15:34
p6eval rakudo 0dda4c: OUTPUT«Can not get attribute '$!pos' declared in class 'Cursor' with this object␤ in regex at /tmp/2WuHVVopPN:1␤ in regex at /tmp/2WuHVVopPN:1␤ in method ACCEPTS at src/gen/CORE.setting:10743␤ in block at /tmp/2WuHVVopPN:1␤␤»
..niecza v24-18-gaf64300: OUTPUT«Match␤Match()␤»
GlitchMr- rn: my $ab = /ab/ & /ab/; ('abc' ~~ /($ab)/).perl.say; $/.gist.say;
p6eval rakudo 0dda4c: OUTPUT«Can not get attribute '$!pos' declared in class 'Cursor' with this object␤ in regex at /tmp/QYqcsyT1rW:1␤ in regex at /tmp/QYqcsyT1rW:1␤ in method ACCEPTS at src/gen/CORE.setting:10743␤ in block at /tmp/QYqcsyT1rW:1␤␤»
..niecza v24-18-gaf64300: OUTPUT«Match␤Match()␤»
GlitchMr- How should this work? 15:35
diakopter masak: that nuclear blackmail day is interesting to backlog 15:39
masak diakopter: yes.
diakopter: I was in a hotel room with jnthn and pmichaud.
I remember the scene vividly.
15:43 b1rkh0ff joined 15:56 jeffreykegler joined 16:00 kaleem joined
masak 'We are the Perl 6 community. We have a collective neurosis about "production ready" and the exact relation to Perl 5. if you can navigate that, you'll find we're a nice bunch.' :) 16:00
nwc10 well, how much infrastructure is actually running on Perl 6 yet? 16:02
diakopter out of what set of infrastructure?
16:03 kaleem left
masak Rakudo is running on mostly Perl 6 and nqp. 16:03
there are some custom parts written in C, IIRC.
nwc10 well, I mean thinks like the logger on this channel isn't Perl 6
things.
and yes, I keep commenting on that as an exaple
I still can't type, can I?
masak that is a good example. 16:04
nwc10 the evalbot itself is Perl 5?
diakopter yes
masak I didn't say we're production ready -- I said we have a neurosis about "production ready" :)
but as far as I can see, it's getting increasingly possible/realistic to replace various bits of Perl 5 infrastructure with Perl 6. 16:05
diakopter github.com isn't using Perl 6
masak it'd do us good, too, because it'd catch more ecosystem regressions early.
diakopter freenode isn't using Perl 6
masak diakopter: neither are they using Perl 5, AFAIK.
I don't think I see your point. 16:06
diakopter well, I was exploring the bounds of the set of infrastructure, while also pointing out that those will never run Perl 6 16:07
nwc10 agree
masak and that's fine, of course. 16:08
nwc10 but the useful niche that Perl 6 certainly seeks to fill is that currently occupied by Perl 5
diakopter I'm not sure I agree
nwc10 so at least the local infrastructure currently written in Perl 5 really ought to be switched to dogfood
OK, the niche that Perl 5 competes in?
diakopter no, I've begun to suspect their current/prospective niches don't overlap very much 16:09
16:10 cognominal left
diakopter note: the evalbot ran on pugs for a long time 16:10
masak it certainly wouldn't hurt to have evalbot/irc logs in Perl 6. 16:11
there's still the small matter of porting them, of course :)
perhaps a good topic for a hackathon?
nwc10 why wait that long?
diakopter none of the implementations can support it without extensive C hacking, due to the signal catching/sending
nwc10 aha, interesting. thanks 16:12
diakopter pugs' evalbot didn't have a timeout killer, I seem to recall
which is definitely necessary nowadays 16:13
things run forever.. forever
16:14 fgomez joined
diakopter perl 5 supports signals, and magical wonderful abilities to interact with child processes 16:14
nwc10: (I'm not attempting to inform, there ;) 16:15
nwc10 no, but that's interesting. In that, if you start trying to use Rakudo for something other than "building Rakudo", you discover holes.
PerlJam nwc10: that's why we need more people using Rakudo to do ... stuff. 16:18
masak nwc10: I agree.
diakopter there are plenty of holes; I believe the constraints and uncertainties of parrot have been making it uncomfortable to contribute to fill those holes 16:19
also, extreme dearth of human resources 16:21
and the -Ofun prioritization of actually implementing all of Perl 6 syntax and semantics before its native library/functions 16:22
(in general) 16:23
masak well, the first step to fixing that is to put a collective focus on it. 16:26
signals -- I hadn't thought of that before. of course we need those.
brrt masak, the problem with that, again is the 'collective' part 16:30
16:32 skids joined
masak yes and no. surely we can collectively set goals. 16:32
the best example of which, I believe, is Rakudo Star.
16:32 kivutar left
diakopter reads the docs on signals/io on parrot.org and snippets of Perl 6 and Parrot Essentials, and find massive contradiction with the current codebase 16:33
(importantly, the parrot.org docs) 16:34
brrt that doesn't surprise me in the least 16:35
organising people arround a goal that is vague now is hard
especially as the parrot codebase is painful at times
diakopter Perl 6 and Parrot Essentials says all IO is async in parrot. The docs say there is both synchr and async IO apis. The codebase reflects only the synchronous
16:36 SunilJoshi joined
kresike bye folks 16:37
16:37 kresike left
masak diakopter: dan was a big proponent of async IO, and pushed Parrot in that direction in the early days: www.sidhe.org/~dan/blog/archives/000441.html 16:38
diakopter: the only thing async IO in Parrot ever gave me were output and error messages being out of order in the early days of Rakudo :/ 16:39
in her FOSDEM talk, lizmat said "at this point, I think it's safe to call Parrot an 'Edsel'"
diakopter there's not even a way to invoke a child process without waiting for it to end 16:44
brrt masak, what is an edsel? 16:48
masak brrt: Wikipedia has a good article. 16:49
diakopter lmgtfy.com/?q=Edsel :)
16:53 SamuraiJack__ joined 16:56 hoelzro is now known as hoelzro|away
brrt had assumed it was some kind of word and had fed into translate :-) 16:58
geekosaur no, just a reference to a bit of US-based marketing infamy 16:59
colomon docs.topazruby.com/en/latest/blog/a...ing-topaz/ 17:00
PerlJam wow.
brrt interesting 17:01
17:01 brrt left
colomon that makes it sound like RPython might already be close to what Parrot was/is trying to achieve? 17:02
diakopter "By separating concerns in this way, we intend for our implementation of Python - and other dynamic languages - to become robust against almost all implementation decisions, including target platform, memory and threading models, optimizations applied, up to to the point of being able to automatically generate Just-in-Time compilers for dynamic languages. 17:06
"
pmurias diakopter: ping 17:07
diakopter pong in pm
17:09 atrodo joined 17:14 am0c joined 17:17 zby_home joined
[Coke] (perl6 and parrot essentials) that book is super old. I wouldn't trust it. 17:19
diakopter I wasn't attempting to trust it, just to point out how the goals have changed
17:21 SunilJoshi left 17:28 SunilJoshi joined 17:40 benabik joined
masak Topaz! \o/ 17:41
arnsholt Wasn't that the name of a Perl reboot effort as well? 17:43
17:43 Chillance joined
masak yes. 17:45
chip's.
www.perl.com/pub/1999/09/topaz.html
I guess the name is semi-obvious :)
diakopter the ruby topaz was originally named rupypy 17:50
17:52 SunilJoshi left, SunilJoshi joined
geekosaur shoulda been rucoco 17:54
diakopter I don't see how topaz can support threads (on its TODO feature list) when rpython doesn't support OS threads
TimToady
.oO(rakuku)
17:55
楽区 I guess "pleasure district" :) 17:58
regarding keyword policy, p6 has several stories to tell 18:00
first of all, if you cut a passage from one language and insert in a passage of a different language, you ought to get what you deserve
it's like inserting some Swahili into a passage of German...
masak *nod*
TimToady second, we have sigils
on our nouns, which helps 18:01
third, our statement-level keywords tend to require whitespace after them
fourth, we give special meaning to if()
the main place I see this cut-and-paste difficulty, actually, is when people change a multi-line to a single line for IRC, and always forget the semicolons 18:02
pmurias diakopter: us.pycon.org/2013/schedule/presentation/37/
diakopter not OS threads 18:03
18:03 daxim left
TimToady we really need threads that don't block each other on IO, such as Go provides 18:03
diakopter it uses STM emulation on top of OS threads
also, elsewhere it says *that* version of pypy is several times slower at everything than normal pypy 18:05
TimToady but for copy-paste, it would be nice if there were a way to annotate a snippet with the pedigree of the language it is using, and diff it with the pedigree of where you're pasting
18:05 dakkar left
TimToady or, failing that, run it through a translator, like when you paste the Swahili into the German it automatically translates it for you 18:06
diakopter: does rpython still use a GIL?
diakopter there is a version that doesn't, the much slower one that implements STM 18:07
timotimo TimToady: the GIL that's used for pypy-python is written in rpython, not forced by the rpyhon architecture itself
it is, in fact, a variable in he pypy-python source code that says "python-gil.wait()" and such. 18:08
TimToady so that is one of the things they've "parameterized"... that seems goodish
timotimo i agree. i'm a big fan of the pypy project 18:09
TimToady I'm sure porting NQP to it would discover some ways they've failed to parameterize it :)
18:10 kivutar joined
timotimo feel free to try. did you read what fijal had to say when he came over? 18:10
TimToady er, that's not my job :)
and yes, I did 18:11
I'm actually keeping up with the current backlog currently, and even starting to catch up with my old backlogging from December these days 18:12
timotimo the thought of having to implement 6model, qregex, grammars, ... kind of keeps me from trying.
diakopter you don't need to implement grammars
but 6model and a regex compiler, yes
I'm really confused as to how fijal can claim that implementing nqp in rpython would be easier and run faster than on the JVM 18:14
timotimo i can see how it could maybe run faster, because you can make the semantics match 100% if you write your own VM, but still ... 18:15
diakopter can rpython declare new classes with compact storage at runtime? 6model (p6opaque) needs that 18:16
JVM can do it
pmurias it's optional
diakopter what's optional? 18:17
pmurias you can implement 6model without compact storage
timotimo i see no reason why it shouldn't be able to. pypy-pythons classes are implemented in rpython, too. as is the foreign function interface. rpython just compiles down to C, i believe you can store stuff compactly without too much trouble. 18:18
diakopter it compiles down to C at runtime?
pmurias it's jited
timotimo no, it's not 18:19
you may misunderstand or be confused by the different layers
pmurias sorry
timotimo so, you write your interpreter, compiler, virtual machine all in rpython
diakopter (that was a rhetorical question)
timotimo then that gets translated to C code, a GC and JIT compiler will be plugged in for you made specifically for the stuff you wrote in rpython 18:20
at that point, all you have is a program that's GC'd and jitted for you. you may as well write a compiler that translates stuff into C, but that's not the point
the point is that the jit is created with the full knowledge of your rpython source, so it can trace the whole program for you, given a few hints
i hope that made some sense? 18:21
18:22 uvtc joined, pupoque joined
diakopter NQP needs control exceptions; can rpython provide that? (obviously CLR, JVM, JS can) 18:22
timotimo it would not be a thing for rpython to provide, you would implement that concept using rpython 18:23
it does allow throwing exceptions around, though, like regular python
diakopter ok
timotimo i think the way it's supposed to be is to implement "something like the JVM" in rpython and have that supply things like control exceptions and compact storage classes 18:24
TimToady but does it allow separation of stack unwind from the throw?
in p6 we can throw and then decide not to
not to unwind 18:25
depending on what the handlers say
diakopter well, that's implemented on top of the VMs since contexts and frames are heaped
timotimo you have reached the end of my knowledge, i'm afraid. i think fijal would be happy to answer a few more questions, though 18:26
i must admit that the amount of layers and the interactions between them throws me off quite often 18:27
pmurias TimToady: the way I seperate the stack unwind from the throw in nqp-js is that I keep my own exception handler stack in a function argument and use the javascript exceptions just for unwinding 18:28
TimToady makes sense 18:29
timotimo i would *think* that the app-level stack would be something that's an object that's manually managed by the interpreter-level code (the code written in rpython), so it should be able to do stack unwinding easily 18:30
as an additional data point, pypy has a stackless transformation, which does trampolining and moving parts of the stack onto the heap and doing re-transplantations and i don't really understand most of it
it used to be able to produce a "stackless python" compatbile python interpreter. it now does so by default 18:31
TimToady stackless is good for interop
uvtc masak: saw your "where's my flying car" slides from a link posted here (in the logs). Glad to find it, thanks. Nice examples in there. 18:34
masak thanks. 18:35
18:35 SamuraiJack__ left
masak I'm thinking of uploading it on Slideshare. 18:35
18:35 benabik left 18:40 Targen joined
uvtc masak: Ah, was trying to remember where stevan_ put his recent presentation. It was speakerdeck. 18:40
stevan_ uvtc: speakerdeck.com/stevan_little/perl...a-dead-end 18:42
speakerdeck gt slideshare # imo anyway 18:43
uvtc stevan_: right, that's the one. I like that the speakerdeck site is pretty uncluttered. I'm guessing both sd and slideshare allow you to upload your slides as a pdf.
stevan_ yup
it seems to them break it up into some kind of html5 thing
each page is an individual image
18:44 SunilJoshi left 18:45 benabik joined, mtymula left
PerlJam stevan_: planning any moe hackathons? 18:45
stevan_ PerlJam: not at this point, no 18:46
uvtc Oh, what's the name for when a new version is announced (but not yet released) and it causes folks to stop using the current (available) version... 18:47
gah
PerlJam uvtc: stupidity? :)
diakopter not actually needing the software? 18:48
18:49 fhelmberger left
TimToady what's the word for when new versions are released continuously but everyone keeps saying it's "not released yet" 18:49
PerlJam uvtc: whatever that is, if it has a name, is isomorphic with designing (and implementing) features that you think you might need in the future.
diakopter TimToady: different definitions of released
uvtc Agh, sorry, don't mean to use this channel as my personal spoken language reference. I was thinking in terms of: "Was going to try Rakudo, but now will wait for it to come out on the JVM!"
TimToady why not get a head start? :) 18:50
tadzik it's like waiting for Steam on Linux :P
except that you can help :)
masak ok, trying speakerdeck.
uvtc Has there been any movement on a current official Perl 6 tutorial? 18:51
18:51 alec left
masak stevan_: oh, was gonna ask you. 18:51
PerlJam TimToady: I think you can "help" the "not released" problem. Just make a public announcement that you bless Rakudo, Niecza, etc. as Perl 6 and therefore Perl 6 is hereby "released" :)
masak stevan_: if Moe is the Pugs of Perl 5... where's the IRC channel? and how come we're not all on it?
stevan_ masak: #moe over on irc.perl.org, and everyone is welcome :) 18:52
masak \o/
PerlJam uvtc: There's an official tutorial?
stevan_ already is a few 6ixers in there
diakopter "not released yet" means running-stable and API-stable not released yet. imho, things users who are selecting software for real uses worry about
raiph__ uvtc: imo jonathan seems pretty hopeful that rakudo on jvm will be mostly working by yapcna (june 3)
uvtc PerlJam: I'm asking if there's been any movement on writing one.
stevan_ lambdacamels, Defenders of the Mu, or whatever you crazy kids call yourself these days
masak diakopter: see also my recent gist. 18:54
diakopter yes.
masak stevan_: lambdacamels has a real 2005 ring to it now. :)
stevan_: I think "sixers" has semi-established itself.
tadzik uvtc: I'd be interested in knowing this too :) 18:55
maybe we should start one
who's with me?
uvtc is sorta looking in TimToady's direction, trying not to *look* like he's looking in that direction.
diakopter lots of folks have talked about tutorials over the years
PerlJam some of us have written some things too. 18:56
18:56 fgomez left
diakopter the best sources are in all the blog posts 18:56
TimToady is hoping to have a camel book equivalent out this year
diakopter now, if there were a big list of all of those...
TimToady but that's not exactly a tutorial
PerlJam The problem is one of critical mass I think. We don't have enough people pulling in the same direction at the same time to get it finished.
uvtc !!
raiph__ .oO ( If the Perl 5 community went with a rename to not be 5 but some other number (eg Perl 2013), Perl 6 would best have a suitable spot to land if Perl 6 is to retain a suitable relationship to the Perl brand. Perl Labs anyone? )
masak TimToady: whoa.
uvtc !o!
tadzik \o/
masak TimToady: that's... endorsement ;) 18:57
now we're talking.
arnsholt A six-camel would indeed be awesome
diakopter raiph__: at that point Perl 6 would just start itself Perl
*calling
(still keeping the v6 version)
PerlJam TimToady: a "Learning Perl 6" would go a long way towards helping adoption too. But last time I asked merlyn about it, he said he didn't see a business model that would work (or something like that)
masak TimToady: will you put alma.ch/blogs/bahut/images/p6_cover.gif on the cover? :D :D :D 18:58
raiph__ diakopter: right. that would work.
TimToady masak: I've been tempted
masak *lol*
people would go "I knew it! wait, he did WHAT?"
diakopter 33rd should be bumped a bit 18:59
masak :P
we should add all the version numbers of the syposes.
diakopter multiply
masak that's why we keep updating them, right? :P
TimToady we presumably had one new version for each of the RFCs
so maybe we're up to 400 or so by now 19:00
masak .oO( and they're proposing to name Perl 5 "Perl 2013". sheesh. ) :P
uvtc Request: regarding the Rosetta Code Perl 6 examples: try to offer at least 2 for each task/item: a pedagogical/tutorial example of how to do it in Perl 6, and then the one you wrote because it was elegant or shows off neat Perl 6 features. 19:01
19:01 alec__ joined
masak +1 19:01
uvtc The RC examples seem to be the most up-to-date available.
masak I still think the R/ in rosettacode.org/wiki/Average_loop_length#Perl_6 hurts readability more than it helps it :/ 19:02
TimToady many of the example do provide those two, though perhaps with not enough verbiage around the "standard" solution 19:03
masak rosettacode.org/wiki/Last_Friday_of...nth#Perl_6 has one procedural and one FP variant. I like that, too.
(and I really like .classify) 19:04
TimToady R/ is pronounced "goes into" :)
3 goes into 12 a total of 4 times 19:05
PerlJam besides, a reduce on the LHS of / looks awkward. 19:06
[Coke] I thought %% was goes into!
TimToady no, that's 'is divisible by' 19:08
uvtc Having commented "baby-Perl" versions of RC examples would help mitigate the impression of Perl 6 being too "from the future" / "space age" / tricksy whatever.
TimToady 'goesinto' has always been reversed division, at least on the west coast of the U.S.
and I suspect most of the rest of the country too
PerlJam uvtc: But ... but ... Perl 6 *is* from the future :) 19:09
nwc10 even Texas? :-)
TimToady Texas is not from the future... 19:10
it's more of a parallel universe
uvtc PerlJam: Right. But having a baby-Perl6 example first puts folks at ease. "Oh, I see. This seems a lot like Perl 5 but nicer.". After that you hit them with "Pretty cool. But not cool enough. Here's another solution using ...". 19:11
geekosaur gazinna gazotta
TimToady we are in violent agreement, please feel free to bifurcate some of the as-yet unbifurcated entries 19:12
arnsholt It's been too long since I worked with grammars. Will Grammar.parse implicitly anchor to the beginning of the string?
TimToady but let's not do what the python folks do and try to show off the repl, which is really ugly and offputting 19:13
moritz r: grammar A { method TOP { a } }; say A.parse('back')
p6eval rakudo 0dda4c: OUTPUT«===SORRY!===␤Undeclared routine:␤ a used at line 1␤␤»
moritz r: grammar A { token TOP { a } }; say A.parse('back')
p6eval rakudo 0dda4c: OUTPUT«#<failed match>␤»
uvtc (Heh. Just realized I stole that "Pretty cool, but not cool enough" quote from Learning Perl p. 96 :) ) 19:14
19:14 autumn left
uvtc TimToady: Agreed about the repl. Replified examples are more difficult to read, and more difficult to copy/paste. 19:15
Also, I now own the trademark and all residuals on the term "replified" in perpetuity, ad infinitum, quid demonstatum. Gesundheit. 19:16
19:16 sivoais left
TimToady one could put a tutorial wrapper page around RC and supply a visitation order, plus extra handholding that might be inappropriate for RC itself 19:16
19:16 Timbus left
TimToady you left out 'ad godwinum' 19:16
uvtc tee hehehe. 19:17
TimToady actually, I think I heard it originally as 'ad hitlerum'
arnsholt moritz: Durr. I could've done that, true. 19:18
19:19 Pleiades` left 19:22 masak left, tadzik left, Juerd left, [Coke] left, sergot left, Util left, pmichaud left, PerlJam left
diakopter bye feather 19:22
19:23 sivoais joined, Pleiades` joined, Timbus joined, autumn joined 19:24 masak joined
masak omg I just shutdown feather, accidentally :/ 19:24
felher oO?
diakopter oops
19:24 PerlJam joined
masak Juerd: halp 19:24
moritz erm, what?
diakopter you booted Juerd :)
19:24 mtk joined
moritz I have a shell open on feather 19:25
what's your problem?
masak oh phew
moritz moritz@feather:~$ uptime 20:24:04 up 2 min, 3 users, load average: 1.19, 1.07, 0.44
masak "up 2 min".
does that mean it just rebooted? 19:26
moritz yes
masak :/
19:26 tadzik joined
masak sorry. 19:26
moritz so you rebooted, not shut down
masak well, that's something, I guess.
PerlJam So .... it's all masak's fault?
TimToady isn't it usually?
uvtc Perl 5, rebooted.
moritz everything. Including the crisis in Mali. 19:27
masak I was one ssh too deep, wondering why I had to do /usr/bin/shutdown all of a sudden, not just shutdown... not stopping to think.
yeah. that was me, too.
19:28 masak left
uvtc masak, come back! Now see what you've done? 19:28
19:29 masak joined
TimToady back from Mali already? 19:29
masak back in screen, as opposed to panic-webchat.
TimToady or was it Texas this time? 19:30
19:31 jeffreykegler left, sivoais left 19:32 sivoais joined 19:34 alester joined
TimToady masak: I think about signals every time I read rosettacode.org/wiki/Reports:Tasks_..._in_Perl_6 and see "Handle a signal" as one of the tasks 19:34
in fact, that page is a gold mine for things you can't do in Perl 6 yet 19:35
diakopter falls into the mine
TimToady note, there's also a lot of rocks in there around the gold 19:36
moritz that's the case with all gold mines :-)
TimToady just wanted to be clear about how accurate the analogy was :)
19:40 sivoais left, sivoais joined 19:41 jeffreykegler joined
masak orz 19:43
gomen
moritz masak: a friend of mine used to shut down his computer with 'halt', and after accidentally powering down a remote server installed an alias halt="You don't want to do that remotely' 19:44
(and he could still shutdown -h if he really wanted to, or with fully qualified paths) 19:45
masak heh. 19:46
I promise I won't shut down feather again tonight.
arnsholt Smart, smart =)
19:47 [Coke] joined
[Coke] masak-- 19:49
masak :(
swarley hello
[Coke] # doesn't matter since aloha is gone.
19:49 benabik left 19:50 sivoais left, sivoais joined, Juerd joined
[Coke] concentrates his aggression on require.js 19:50
swarley I read a paper on how to make classes and objects work with llvm :) 19:51
yay for college papers
uvtc What is the Perlish term for making the commonly-used things easier to reach? That's some variation of huffman-coding, correct? 19:53
Juerd What happened with feather? 19:54
TimToady huffman coding, or Easy things should be easy, hard things should be possible.
uvtc TimToady: thanks
TimToady it's our interpretation of huffman coding, not the industry meaning of it
uvtc Right. 19:55
TimToady Juerd: masak got confused about his ssh depth
uvtc Juerd: someone forced masak out of his chair, rebooted feather, then ran off.
19:55 brrt joined
TimToady it was getting shoved out of the chair that confused him about his depth 19:56
as for the admissions in the backlog, I think masak++ is trying to cover for whoever really did it 19:57
masak Juerd: I accidentally feather. :/
TimToady and is still covering for him or her... :)
Juerd Oh, okay. So nothing that still needs fixing. That's good.
This is exactly why feather originally had a coloured prompt! 19:58
19:58 jeffreykegler left
Juerd I should restore that :P 19:58
PerlJam blinking red?
19:58 fgomez joined, sivoais left
Juerd No, not red. I have that on other boxes already :P 19:58
(Core routers!)
19:58 sivoais joined
Juerd Feather had white on blue I believe 19:59
uvtc The trouble with colored prompts/backgrounds is that they eventually end up totally convincing me of what machine I'm on regardless of reality.
Juerd uvtc: As long as you don't have root, that's okay with me :P
PerlJam if feather always had a unicode-y camelia prepended to the prompt, that would be distinctive :)
Juerd . /etc/bash_prompt 20:00
It's still there :)
Now to reinstate it in /etc/bash.bashrc
Done!
swarley export PS1="$PS1»ö« "
\o/
masak ;) 20:01
swarley I should make a zsh plugin for that in perl6 like repos..
uvtc All the recent talk about language implementations (Moe (Perl 5 on JVM), Topaz (Ruby on PyPy), nqp-jvm), I'm waiting to hear of someone writing a Perl 6 implementation in Rust. (note: I am not that someone.) 20:06
TimToady o􏿽xCC􏿽xAF􏿽xCC􏿽xAF􏿽xCC􏿽x86􏿽xCC􏿽x86:
.u o􏿽xCC􏿽xAF􏿽xCC􏿽xAF􏿽xCC􏿽x86􏿽xCC􏿽x86: 20:07
phenny TimToady: U+006F U+032F U+032F U+0306 U+0306 U+003A
diakopter 🐛
uvtc Er, not *waiting* per se, just sorta half-expecting. 20:08
nwc10 I'll believe it when it's good enough to run its own install target 20:09
20:09 Util joined
nwc10 (Perl 5's installer script is written in Perl 5) 20:09
uvtc nwc10: are you referring to Rust's installer script? 20:10
nwc10 I don't know about Rust's installer script.
But I do know about Parrot, Rakudo, Moe and NQP-JVM
uvtc nwc10: ok. Didn't understand your "install target" comment.
nwc10 dogfood
Parrot is 10 years old, yet its installer script is still written in Perl 5. Doesn't run on the Parrot that was just built 20:11
uvtc I only mention Rust because I've heard good things about it, and it looks somewhat similar to C, Perl (and a little Ruby), and b/c it seems like it would be at about the right level of abstraction.
20:13 sivoais left, sivoais joined
uvtc And because discussions of "perl 6 on llvm" have come up in the past, and Rust is built on llvm. And because it's free software. Anyhow. 20:18
swarley i'm actually working on 6model on llvm right now 20:19
20:21 domidumont left
uvtc I saw some comments regarding that in the backlog. In the backwash. In the jet-wash of this channel. :) I'm way out of my ssh depth discussing language implementation details. 20:22
I can see why Moe chose Scala though, since stevan_ was explicit about wanting stable mature tech to build upon. 20:24
diakopter Rust's memory model is .. complex
(as I've just learned)
uvtc Hm. I think I noticed in the tut that it offers a wide variety of pointer types to choose from. 20:25
Maybe comes with the territory of having the sort of low-level control Rust offers. Dunno. 20:27
diakopter no shared-memory threads, notably
nwc10 shared-memory threads have to Go 20:28
uvtc diakopter: Ah, right. Saw a recent link about its "intimidation factor": mail.mozilla.org/pipermail/rust-de...02917.html
Argh. And so must I. o/
20:29 uvtc left
diakopter nwc10: I disagree. they're necessarily practical for implementing implicit parallelism or other concurrency models on top of OS threads 20:29
pmurias swarley: is the slow loading of yarv bytecode the only reason you switched to llvm?
nwc10 it was a Go pun
and yes, I can see why they are useful 20:30
it's one reason ithreads isn't useful
20:30 benabik joined, am0c left
nwc10 you can't divide a task by spinning up a few threads, each of which gets sole ownership of some partition of the objects involved 20:30
as in "ithreads prevents this" 20:31
diakopter right, if each of them needs access to a shared queue, e.g.
nwc10 static.rust-lang.org/doc/tutorial.html -- To build from source you will also need the following prerequisite packages: ... python 2.6 or later (but not 3.x) 20:32
(Sorry Guido)
skids parallelism without shared mem is about as useful as FP without monads. 20:34
Ulti possibly of interest to peeps in here page.mi.fu-berlin.de/prechelt/Bibli...pprtTR.pdf 20:35
swarley pmurias; partially, but also because llvm is JIT compiled, and allows for a lower level or representation 20:36
20:37 am0c joined 20:45 am0c left 20:47 zby_home left
pmurias swarley: JIT? isn't it compiled ahead of time? 20:48
swarley: you should be aware that you are basically writing your own custom VM when targeting llvm 20:49
swarley No, LLVM uses a JIT compiler
diakopter no
it contains a compiler you can use to JIT
swarley Oh, I thought JIT was default 20:50
diakopter default for what?
not any of the textual inputs to the compiler, commandline
swarley When compiling llvm, that it uses JIT
diakopter no
swarley: pmurias is correct, you would need to create a VM, including garbage collector and object system 20:51
moritz LLVM is, as the name says, low-level 20:52
swarley I know that.
The garbage collection is what I'm worried about
pmurias it's very similiar to targeting C
the most significant difference is that you avoid spending time compiling C code 20:54
20:54 SmokeMac_ left
swarley nqp: say(nqp::join(", ", < making sure this is an array in nqp >)) 20:54
p6eval nqp: OUTPUT«making, sure, this, is, an, array, in, nqp␤»
20:57 fgomez left
skids llvm is essentially an abstraction over assembly language instruction sets, plus some useful... eh... proteins. All very basic building blocks. 20:57
masak everything the body needs.
20:58 am0c joined
bbkr__ if I write "class A{ }" which classes does it inherits from? Only Mu and Any ? 21:00
masak rn: class A {}; .say for A.^mro
p6eval niecza v24-18-gaf64300: OUTPUT«Unhandled exception: Unable to resolve method mro in type ClassHOW␤ at /tmp/7Tug434Z8z line 1 (mainline @ 6) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4218 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4219 (module-CORE @ 580) ␤ at /ho…
..rakudo 0dda4c: OUTPUT«A()␤Any()␤Mu()␤»
21:00 kivutar left
masak bbkr__: yes. 21:01
bbkr__ masak++ # I didn't know ^mro trick
thanks
masak it stands for "method resolution order".
benabik rn: class A is Mu {}; .say for A.^mro
p6eval niecza v24-18-gaf64300: OUTPUT«Unhandled exception: Unable to resolve method mro in type ClassHOW␤ at /tmp/OYf7QN7__j line 1 (mainline @ 6) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4218 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4219 (module-CORE @ 580) ␤ at /ho…
..rakudo 0dda4c: OUTPUT«A()␤Mu()␤»
masak so if you're doing MI, it tells you in which order methods are looked for, too. 21:02
how do I declare a class that doesn't inherit from Mu?
timotimo what does that even mean?
moritz masak: you don't 21:03
"how do I create a type that cannot be expressed in terms of the type system?" 21:05
21:05 kaare_ left
skids You wait until the class is sleeping and then sneak up beside it and tip it over. 21:05
swarley magic
masak yes, I guess the MOP could help me with that...
moritz: the question is not as silly as it may sound. we already know that "foreign objects" might not inherit from Mu.
swarley masak; dl.dropbox.com/u/36785145/4398156%...1f70fb.gif 21:06
masak or is that superseded information? is that solved entirely with reprs these days?
swarley: ok...
moritz masak: foreign objects behave as though they conform to Mu 21:07
swarley Sorry, I've been waiting for an excuse to show that picture to anyone at all for days
diakopter masak: well, if the VM exposes instructions/opcodes to bypass the HLL and do that kind of stuff, then yeah you can do it
r: macro marco(AST $foo) { say $foo.evaluate_unquotes([]).dump }; marco(&marco) 21:09
p6eval rakudo 0dda4c: OUTPUT«- QAST::Op(call)␤ - QAST::WVal(Code)␤␤===SORRY!===␤too few positional arguments: 2 passed, 3 (or more) expected␤»
masak o.O
my, that's *evil*. :)
diakopter r: macro marco(AST $foo) { say $foo.evaluate_unquotes([$foo]).dump }; marco(&marco) 21:10
p6eval rakudo 0dda4c: OUTPUT«- QAST::Op(call)␤ - QAST::WVal(Code)␤␤===SORRY!===␤too few positional arguments: 2 passed, 3 (or more) expected␤»
masak and for the love of borsht, stop calling your macros 'marco'!
21:10 fgomez joined
diakopter I'll WVal you 21:10
benabik
.oO( Macro Polo? )
dalek kudo/nom: cc7e3d3 | moritz++ | src/core/Range.pm:
constant-fold some range operators

the others cause the setting compilation to fail when constant-folded. Not sure yet why.
21:11
skids It's like golfing, but with macros.
and horses.
diakopter swarley: the big problem with using llvm for Perl 6 is that it really wants a stackless design, and that's the kind of stuff that totally obviates most of the optimizations llvm can do... 21:15
nwc10 "it" - Perl 6 wants a stackless design?
swarley Well, llvm is working on a new project, I don't know if it would be any help in this situation 21:16
diakopter yeah
brrt whats the deal with stackless anyway
swarley polly.llvm.org/
diakopter TimToady mentioned earlier today it's better for ffi
brrt why? 21:17
and ehm.. are we talking c-stackless? or stackless-at-all
diakopter stackless for the language's invocations
brrt hmm, maybe i'm to tired to understand this now 21:18
diakopter the runtime library into which it calls will still use the C stack
also, because it enables control exceptions with delayed call-chain unrolling
*unwinding
nwc10 and, I believe, continuations
swarley So, what is the bare minimum that a 6model object does. 21:20
brrt swarley, check out the nqp repo :-)
swarley I'm reading it now
I'm guessing PMC is a parrot specific struct
brrt basically, constructing objects (representations), types, and 'classes' / roles
diakopter a representation can implement any of the predefined operations 21:21
brrt yes, it stands for polymorphic container / parrot magic cookie
swarley Polymorphic container? 21:22
diakopter it's similar to 6model
swarley I'm just going to assume it's an object base4
-4
brrt its basically what parrot understands to be an object
PMC is a bit of a simplistic object system
pmurias diakopter: re better for ffi - it's better for interop with other runtimes as you avoid having runloops recurse into each other
brrt and of pmcs, there are still two more types, namely raw (native) pmcs, writteen in C, and object pmcs which are written in pir / winxed 21:23
they are not really different, but still different enough to consider them differently 21:24
a pmc may be a hash table, or a resizable array or a fixed array
recently parrot added the very useful and long awaited fixedfloatarray
masak I don't get it. Aldebaran Robotics were at FOSDEM. they say they're Open Source. but I don't see anything downloadable on their site. 21:25
shouldn't there be, like, a link at www.aldebaran-robotics.com/en/Disco...ource.html ?
"we're open source... and here's the source!" 21:26
swarley Suggestions on where I should start with 6model? I'm assuming that I should start by trying to get all of the functionality of sixmodelobject.c
arnsholt I think sixmodelobject.h is a good place to start
That's where the all the interesting typedefs are
swarley Yeah, I'm reading it now
arnsholt masak: One of my colleagues works with a Nao. I can ask him how OSS they are tomorrow =) 21:27
pmurias swarley: have you read nqp/docs/6model/overview.markdown?
masak arnsholt: would be nice.
21:28 FROGGS joined
FROGGS olá! 21:28
arnsholt Hmm. Cargoculting Rakudo's highwater stuff turns out to be harder than expected
masak FROGGS! \o/ 21:29
swarley Ah, no I have not. I'll take a gander
masak arnsholt: well, the thing about cargoculting is that it doesn't make more airplanes come.
arnsholt Indeed 21:30
For some reason you have to actually figure out what's going on =)
masak .oO( actually figuring out what's going on is hard, let's go cargocult ) 21:31
arnsholt Quite 21:32
masak .oO( exact quotations are hard, let's go paraphrasing )
masak .oO( autopuns are hard, let's go snowcloning ) 21:33
[Coke] ovid commented on the 7 suggestion on FB. Followed by a storm of comments. I threw in a small note about 5 vs. 7 vs. 6; 21:36
nwc10 the code's at git://perl5.git.perl.org/perl.git if he wants to fork it. 21:37
no-one ever seems to take up this offer. 21:38
timotimo [Coke]: is that facebook discussion publically visible?
[Coke] timotimo: are you friends with ovid? 21:41
diakopter nwc10: how long ago did kephra fork
timotimo i'm not no facebook
[Coke] timotimo: Then I don't feel comfortable duplicating it outside of FB.
timotimo blergh, i need to do something, anything to this keyboard, it's driving me mad :| 21:42
that's no problem
benabik timotimo: Hammer?
[Coke] nwc10: if ovid wants to fork it?
This isn't a code issue, though, it's a marketing issue.
timotimo benabik: i was thinking more along the lines of "vacuum cleaner", but i'm already missing one key (my tab key, RIP) and one gets loose every time i use the trackpoint mouse ...
swarley Okay, so is there any reason why I shouldn't do this 6model in C++ or Objective C?
brrt swarley, not really, but objective-c requires a full runtime and should not be superportable 21:43
swarley I wouldn't actually use objective c
Im not sure why I threw it in
brrt :-) 21:44
you're free to experiment as much as you like
if you know c++ well, go for it
swarley And it requires a full run time even without using special libraries?
brrt always
swarley I know that if you use *Step it does.. but i didnt know it did without them
brrt objective-c is uses a lot of introspection thingies
21:44 benabik left
swarley Or maybe pascal;) 21:45
brrt whatever floats your boat 21:47
the full runtime is on the scale of things a small library, of course, but that doesn't make it less true 21:48
(of objective-c)
21:51 spider-mario joined 21:55 benabik joined 21:59 donaldh joined 22:03 skids left 22:07 Targen left 22:19 sqirrel_ left
FROGGS phenny: tell sorear that I updated the patch: gist.github.com/FROGGS/0a6f8e2d4053fb0ba5d0 22:23
phenny FROGGS: I'll pass that on when sorear is around.
FROGGS phenny: tell sorear ... but rerunning the spectest always gives different failing tests, is that normal? nothing related to my patch though 22:24
phenny FROGGS: I'll pass that on when sorear is around.
swarley so what is happening with the .NET 6model?
diakopter swarley: wait until tomorrow morning to ask jnthn
brrt swarley, mostly nothing 22:25
swarley alright
brrt the original 6model repo was a testing ground
i believe a recent blog post had jnthn explicitly stating that the CLR wasn't suitable
diakopter heh, no
he said he would do the implementation differently now 22:26
22:26 pupoque left
diakopter the CLR is just as suitable as the JVM 22:26
brrt well, it seems i misread 22:27
diakopter I'll verify
yes 22:28
brrt what is explicitly stated that what is done now fits better into jvm than what was done to the clr
i understood that to mean 'somehow the clr wasn't suitable'
jnthn Good evening. 22:31
brrt: diakopter has read it the way I intended.
diakopter jnthn: you know those days when the backlog is, like, less than a screen? 22:32
good luck finishing today's before going to bed...
brrt jnthn, good evening :-) 22:33
jnthn diakopter: Oh, I was following it from the irclog on the train wifi.
diakopter oh ha 22:35
brrt jnthn, why choose jvm rather than clr, then? completely arbitrary?
diakopter more people would adopt it at first :) 22:36
jnthn brrt: There's already a Perl 6 implementation on the CLR for one. :)
brrt good point
how is niecza going
22:37 PacoAir left
diakopter sorear has gotten busy it seems 22:37
jnthn It's crazy commit rate has sure slowed
(as in, crazily productive)
masak jnthn! \o/ 22:38
jnthn o/ masak 22:39
Glad to see you're still here...thought you mighta decided to shutdown for the night...
</tease> :)
masak *sigh* I shut down one little server, and see what happens... :P 22:40
diakopter a few people lose their open irc windows
and miss out on logs
jnthn Could happen to anybody. :) 22:41
22:42 alester left 22:44 screencast joined
screencast can you help me to got a man's facebook 22:46
brrt jnthn, whats stable
and screencast, not me
i mean s-table 22:47
screencast not me????
brrt i cannot help you :-)
screencast why
diakopter screencast: this is a chat channel for a programming language
[Coke] screencast: is this a trick question? go to www.facebook.com - search for the person.
screencast no 22:48
get the password only
22:49 ChanServ sets mode: +o diakopter, screencast was kicked by diakopter (screencast))
brrt diakopter++ 22:49
jnthn brrt: Does the document in nqp/docs/6model somewhere not say that... 22:50
diakopter lamers. they happen.
jnthn Or read sixmodelobject.h
diakopter brrt: s is short for shredd 22:51
um. shared
brrt i'm reading them as we speak 22:52
jnthn :)
jnthn shoulda called it don't-read-this-if-you-want-to-understand-6model.md :)
(And yes, I always read IGNOREME files, then get disappoint when they don't contain something funny...) 22:53
brrt does lolsql actually work? 22:59
22:59 benabik left
masak tias 23:00
jnthn I kinda doubt it. I wrote it as a quick hack for laughs years ago.
We probably fixed something it relies on :)
brrt it is pretty funny though 23:01
jnthn yes, I wanted an example thing to write a grammar for to show off grammars and it seemed a decent mix of amusing but actually somewhat interesting to parse. 23:02
lue hello o/
jnthn did more recently have a partial Perl 6 grammar that parsed a subset of real SQL for a past $dayjob task
brrt hi lue 23:03
jnthn hellue
masak lue! \o/
'night, #perl6
lue masak o/
brrt yes, night too 23:08
23:08 brrt left 23:09 jeffreykegler joined 23:16 spider-mario left 23:17 p5eval left 23:21 cognominal joined
lue huh. Any idea why the PIR code in Panda::Ecosystem suddenly won't work? The specific error I get is "connect failed: Connection refused" 23:25
23:27 b1rkh0ff left 23:30 bluescreen10 left
donaldh how do I get the length of an array in nap ? 23:30
nqp even
23:30 stopbit left
jnthn nqp::elems(@array) 23:30
lue: Maybe the thing it's trying to connect to really is down...
donaldh jnthn: thx
23:30 p5eval joined
lue Ah, it's trying to load a file from feather (and skimming the backlog, it seems some things happened there today) 23:33
diakopter oh, httpd2 might need started
23:34 diakopter sets mode: -o diakopter
lue (specifically, it's trying feather.perl6.nl:3000/projects.json) 23:34
diakopter oh, that's not apache I think
23:34 skids joined
diakopter I think that's something tadzik runs 23:34
pmurias swarley: how would using c++ help you? 23:35
23:36 shinobicl left 23:38 xilo_ joined
donaldh jnthn: The nqp-jvm ROADMAP says 'remaining string ops' in the QAST to JAST compiler section 23:39
23:40 b1rkh0ff joined
donaldh jnthn: is that just nqp ops ? 23:40
jnthn: or is there more to it?
jnthn donaldh: yeah, but...I think it may be largely done
swarley pmurias; I'm not really sure. I guess just using a basic class where structs are used in some cases
donaldh jnthn: split was missing so I have done that so far. 23:41
jnthn donaldh: Thing that's not done that will be needed at some point is checking char class membership
nqp::iscclass and friends, iirc 23:42
swarley Also, std:: container classes
jnthn Will need those for the regex engine at some point in the hopefully near future. :)
donaldh Okay, hopefully I have learned how to do this with nqp::split 23:43
I have a diff.
swarley I know it's not feasible to make the llvm port, but i still want to, just to show that I can. But I really don't want to rewrite parts of parrot >.< I suppose I'll have to read through the code and get it's intended meaning
jnthn fwiw, the JVM version of the 6model code is maybe cleaner in so far as it's not tied up with Parrot. OTOH, it is tied up with the JVM. 23:45
donaldh: That, or pull request...
jnthn is gonna sleep, will backlog in the morning
donaldh Well I've never created a pull request before, but I need to learn sometime :-)
jnthn Or a pull request leads to an email so I surely won't lose it that way ;) 23:46
OK, 'night
TimToady o/
donaldh 'night jnthn
pmurias swarley: it's hard to write a efficient llvm port as it's basically rewriting parts of parrot 23:47
lue pmurias: do you mean Parrot code specifically or general VM functionality? 23:55