»ö« 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 listParse failedFAILED 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 rowat /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«0123» | ||
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 rowat /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 rowat /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 rowat /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 rowat /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 rowat /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 rowat /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«MatchMatch()» | |||
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«MatchMatch()» | |||
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 | oxCCxAFxCCxAFxCCx86xCCx86: | ||
.u oxCCxAFxCCxAFxCCx86xCCx86: | 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 |