»ö« 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. |
|||
00:53
tokuhirom joined
00:59
wolfman2000 left
01:00
Trashlord left
01:01
Trashlord joined
|
|||
moritz | felher: pong | 01:02 | |
01:03
scott___ joined
01:06
havenn joined
01:16
nif left
01:19
lichtkind left
01:27
nif joined
01:30
havenn left,
mucker joined
|
|||
[Coke] | colomon: ping. | 01:34 | |
colomon | pong | ||
[Coke] | can you please update S32-trig/cos.t to emit a specific plan? | 01:35 | |
(and whatever others there are.) | |||
pugs doesn't like the implicit plan of 'done'. | |||
colomon | hmmmm.... let me ponder | 01:36 | |
fudging those files is going to be pretty extreme, no? | 01:37 | ||
[Coke] | let me ask you a different question: how many tests ARE there in that file? | 01:38 | |
01:38
tokuhirom left
|
|||
[Coke] | (right now I'm passing 67/67) | 01:39 | |
colomon | let you know in a moment | ||
154 | |||
[Coke] | p: (-5.49778714383314).Rat(1e-9).cos | 01:40 | |
p6eval | pugs: OUTPUT«*** No compatible multi variant found: "&Rat" at /tmp/nf_SEA_tyd line 1, column 1 - line 2, column 1» | ||
[Coke] | p: -5.49778714383314.Rat(1e-9).cos | ||
p6eval | pugs: OUTPUT«*** No compatible multi variant found: "&Rat" at /tmp/n1jmey2khg line 1, column 1 - line 2, column 1» | ||
[Coke] | p: -5.49778714383314.Ra.cos | ||
p6eval | pugs: OUTPUT«*** No such method in class Rat: "&Ra" at /tmp/MOoszFcb1i line 1, column 1 - line 2, column 1» | ||
[Coke] | p: -5.49778714383314.Rat.cos | ||
p6eval | pugs: ( no output ) | ||
[Coke] | first approximation of Rat($epsilon) is to just ignore epsilon, meh? | 01:41 | |
colomon ponders a script which runs a test file and then add a proper plan statement to the top. | 01:42 | ||
[Coke]: yes | |||
[Coke] | hurm. nevermind, I'll not be able to easily add that yet. | ||
ah well, skipping this file. | |||
colomon: nevermind. I'm not passing all the tests anyway. | 01:47 | ||
01:52
godfrey999 joined
01:53
thelazydeveloper left
|
|||
dalek | ast: fa12fff | coke++ | S (4 files): pugs fudge |
01:53 | |
gs.hs: 9e709ce | coke++ | t/spectest.data: run fudged tests |
01:57 | ||
mucker | hi guys ... correct me if I am wrong, but is NQP a full implementation of perl6 regex ? | 01:59 | |
moritz | it's not | ||
mucker | does rakudo or n have full implementation of regex ? | 02:00 | |
moritz | no, there are still a few features missing | ||
though niecza's implementation is quite impressive | |||
mucker | ok :) | ||
[Coke] | p: say "34" ~~ /\d/ | 02:01 | |
p6eval | pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** Can't locate P… | ||
[Coke] | Urk. | ||
02:04
plobsing joined
02:10
orafu left
02:11
orafu joined
02:20
mucker left
02:24
cognominal_ left
02:25
cognominal joined
02:47
wolfman2000 joined
02:49
nif left
02:51
lestrrat left
02:52
cognominal left
02:53
lestrrat joined,
cognominal joined
03:02
envi_ joined
03:25
clkao left,
clkao joined
03:41
envi_ left
03:46
cognominal left,
cognominal joined
03:48
IKARi_ left
03:59
fgomez left
04:02
alvis left
04:58
y3llow left
04:59
birdwindupbird joined
05:02
araujo left
05:06
alester joined
05:21
alester left
05:23
Trashlord left
05:24
spaceships left
05:28
Trashlord joined
05:33
mos_ joined,
mos_ left
05:34
bonsaikitten left
06:01
kaleem joined
06:03
xinming left
06:06
NamelessTee joined
06:13
bonsaikitten joined
06:14
wtw joined
06:15
xinming joined
06:26
cognominal left
06:28
cognominal joined
06:50
sftp left
06:51
sftp joined,
fglock left,
Tedd1 joined
06:56
kaleem left
06:57
araujo joined,
araujo left,
araujo joined
06:58
sftp left
06:59
brrt joined
07:02
sftp joined
07:06
fhelmberger joined
07:16
darkx joined
07:18
sftp left,
sftp_ joined
07:20
PZt left,
kaleem joined
07:26
kaleem left,
kaleem joined
07:29
ZapZ left
07:33
kaleem left
07:45
kaleem joined
|
|||
masak | go' mo', #perl6 | 07:59 | |
jnthn | hi masak | 08:00 | |
moritz | \o jnthn, masak, * | 08:01 | |
tadzik | \o/ | 08:11 | |
moritz | r: say 'tadzik' ~~ * | 08:24 | |
p6eval | rakudo 442db9: OUTPUT«True» | ||
moritz | good, I greeted him too :-) | ||
masak | r: say * ~~ 'tadzik' | 08:26 | |
p6eval | rakudo 442db9: OUTPUT«False» | ||
masak | r: say * ~~ * | 08:27 | |
p6eval | rakudo 442db9: OUTPUT«True» | ||
masak | (* ~~ *) | ||
almost looks like one of sjohnson++'s fat faces ;) | |||
moritz | that'st he True fat face :-) | 08:29 | |
r: say (* ~~ *) | 08:30 | ||
p6eval | rakudo 442db9: OUTPUT«True» | ||
08:32
dakkar joined
08:33
fglock joined
|
|||
sorear | o/ masak | 08:34 | |
masak | \o sorear | 08:35 | |
fglock | o/ #perl6 | 08:36 | |
__sri | \o peer pressure | 08:37 | |
masak | :P | ||
moritz | :-) | ||
masak | I find www.modernperlbooks.com/mt/2012/04/...tests.html quite interesting, not least because it manages very well to highlight a classicist's view of tests. I've seen enough of the mockist side of the story to know that there's more to it, but I haven't come down on either side of the fence yet. | ||
and maybe I never will. different projects have different requirements. | 08:38 | ||
moritz | they probably have | 08:39 | |
some months back I've written WebService::Libris | |||
and I was happy that I found a way to avoid doing either live calls over the internet while testing, or mocking | 08:40 | ||
the solution was to enable a caching mechanism, and distribute the cache files | |||
of course that didn't test the actual fetching code, but the fetching code was just one call to Mojo::UserAgent | 08:41 | ||
arnsholt | I have to admit I'm easily amused by chromatic's writings | 08:42 | |
08:54
cognominal left
08:55
cognominal joined
08:59
lestrrat left
09:00
lestrrat joined
|
|||
masak | arnsholt: if you mean he writes in a captivating manner, I agree. he's often humorously hyperbolic. | 09:05 | |
the only drawback of excessive sarcasm is that it doesn't always end up holding a position -- just stating a lot of negatives. | |||
s/only/big/ | 09:06 | ||
arnsholt | Yeah, there is that | ||
I think the best part of his writing is that he pulls of the whole "cranky, opinionated hacker" thing without swearing every other sentence | 09:07 | ||
masak | aye. | 09:08 | |
it's always refreshing to read the writings of someone with obvious experience. | 09:09 | ||
sorear | the best part of chromatic | ||
the best part of chromatic's writing is that most of it manages to come across as a direct response to something I said in #perl6 in the last week | 09:10 | ||
moritz | totally different topic, and off-topic here, but I found johncarlosbaez.wordpress.com/2012/04/15/ice/ quite interesting | ||
sorear: he surely reads #perl6 logs, at least occasionally | |||
09:12
alvis joined
|
|||
cognominal | \o | 09:12 | |
moriz, in physic terms, perl 6 implementations are slowing changing from vapour to sludge? :) | 09:14 | ||
moritz | cognominal: some parts are already moving from sludge to solid :-) | 09:15 | |
cognominal | I guess we shoot to organic. | ||
*slowly | |||
sorear | moritz: yeah, and it makes me feel special :p | 09:17 | |
masak | you are :) | 09:19 | |
moritz was about to say the same thing, but didn't | |||
masak | moritz: mini-challenge: write succinct p6 program that generates such sequences, ababcacba, of length N from the alphabet <a b c>, but where no two adjacent positions have the same letter. | 09:24 | |
sorear | mind if I try? | 09:25 | |
masak | go ahead. | ||
moritz | go right ahead | ||
masak | I'm writing up one too right now. | ||
moritz too | |||
bbkr | is ababababab valid sequence? | 09:26 | |
sorear | n: say join '', <a b c>.pick, { <a b c>.grep(* != $_).pick } ...^ { @_ == 10 } | ||
masak | yes. | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«» | ||
sorear | n: say join '', (<a b c>.pick, { <a b c>.grep(* != $_).pick } ...^ { @_ == 10 }) | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«Unhandled exception: Cannot parse number: a at /home/p6eval/niecza/lib/CORE.setting line 1363 (die @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3402 (ANON @ 10)  at /home/p6eval/niecza/lib/CORE.setting line 3404 (NumSyntax.str2num @ 4)  at /h… | ||
sorear | n: say join '', (<a b c>.pick, { <a b c>.grep(* ne $_).pick } ...^ { @_ == 10 }) | 09:27 | |
p6eval | niecza v16-21-g1b64073: OUTPUT«bcabacbab» | ||
shachaf | masak: I always heard of a similar thing wher eyou generate a position of length N such you never have two consecutive identical substrings. | ||
I.e., no aa, no abab, no acbcacbc, etc. | |||
By "always" I mean once. | |||
sorear | this reminds me of the word problem for computably presented groups | ||
Thue grammars and such | 09:28 | ||
moritz | p6: my %complement = a => <b c>, b => <a c>, c => <a b>; say (%complement.keys.pick, { %complement{$_}.pick } ... *)[^10].join; | ||
p6eval | pugs: OUTPUT«*** unknown parse error at /tmp/rtrKdOplec line 1, column 113» | ||
..niecza v16-21-g1b64073: OUTPUT«cbacabacac» | |||
..rakudo 442db9: OUTPUT«ababcbcabc» | |||
shachaf | What is that problem? | ||
moritz | shachaf: random positioning of ice layers as described in johncarlosbaez.wordpress.com/2012/04/15/ice/ | 09:29 | |
masak | <masak> moritz: mini-challenge: write succinct p6 program that generates such sequences, ababcacba, of length N from the alphabet <a b c>, but where no two adjacent positions have the same letter. | ||
09:29
darkx left
|
|||
masak | ok, here's my take: | 09:29 | |
shachaf | I meant the thing sorear mentioned. | ||
masak | r: my $N = 20; say (((([\+] (1, 2).pick xx $N) X+ (^3).pick) X% 3) X+ ord("a"))>>.&chr | ||
p6eval | rakudo 442db9: OUTPUT«c a c a c a b c b c a b c a b a b a b a» | ||
shachaf looks at ice article. | |||
moritz | I like my solution, even if the initialization is a bit wordy | ||
masak | moritz: ours are both O(N), I think. | 09:30 | |
sorear | n: say {<a b c>[$_]}>>([\+] (1,2).pick(10)) | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«c Any()» | ||
sorear | n: say {(<a b c> xx Inf)[$_]}>>([\+] (1,2).pick(10)) | 09:31 | |
p6eval | niecza v16-21-g1b64073: OUTPUT«a b c a b c» | ||
shachaf | (There exists an infinite sequence of the form I described which can be generated very simply, but it's pretty tricky to find. An easier way of generating it is just backtracking.) | ||
sorear | n: say {(<a b c> xx Inf)[$_]}>>([\+] (1,2).roll(10)) | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«a b c a b c a b c a b c a b c a b c a b c a b c a b c a b c» | ||
sorear | n: say {(<a b c> xx Inf)[$_]}>>([\+] (1..2).roll(10)) | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«a b c a b c a b c a b c a b c a b c a b c a b c a b c a b c» | ||
sorear | n: say (1..2).roll(10) | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«2 2 1 1 2 2 1 1 1 2» | ||
masak | oh, indeed. | 09:32 | |
sorear | n: say ([\+] (1..2).roll(10)) | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«1 3 5 6 8 10 12 14 15 16» | ||
masak | r: my $N = 20; say (((([\+] (1, 2).roll($N)) X+ (^3).pick) X% 3) X+ ord("a"))>>.&chr | ||
p6eval | rakudo 442db9: OUTPUT«b c b a b a b c a c b a b c b a b a c b» | ||
moritz | p6: my @a = <a b c>; my %c = @a.map: -> $l { $l => @a.grep({$_ ne $l}) }; say (%c.keys.pick, { %c{$_}.pick } ... *)[^10].join; | ||
sorear | n: say map (<a b c> xx Inf)[$_]}, ([\+] (1..2).roll(10)) | ||
p6eval | rakudo 442db9: OUTPUT«cababacbab» | ||
..niecza v16-21-g1b64073: OUTPUT«abcacbcbcb» | |||
..pugs: OUTPUT«*** unknown parse error at /tmp/qCmAwhBfhf line 1, column 112» | |||
niecza v16-21-g1b64073: OUTPUT«===SORRY!===Unexpected closing bracket at /tmp/sxSXqG9PoI line 1:------> say map (<a b c> xx Inf)[$_]⏏}, ([\+] (1..2).roll(10))Parse failed» | |||
sorear | n: say map {(<a b c> xx Inf)[$_]}, ([\+] (1..2).roll(10)) | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«a b c a b c a b c a b c a b c a b c a b c a b c a b c a b c» | ||
sorear | n: say map {(<a b c> xx Inf).flat[$_]}, ([\+] (1..2).roll(10)) | 09:33 | |
moritz | still wordy, but less repetitive (my solution | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«c a b a b c a b c b» | ||
sorear | n: say join map {(<a b c> xx Inf).flat[$_]}, ([\+] (1..2).roll(30)) | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«» | ||
moritz | n: say map {<a b c>[$_ % *]}, ([\+] (1..2).roll(10)) | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«c b a b c a b a b a» | ||
sorear | n: say join '', map {(<a b c> xx Inf).flat[$_]}, ([\+] (1..2).roll(30)) | 09:34 | |
p6eval | niecza v16-21-g1b64073: OUTPUT«bacbababacabcbacbabcbabacabcbc» | ||
moritz | I like .[$_ % *] :-) | ||
sorear | Writing Markov chains shouldn't be this hard. | 09:36 | |
moritz | p6: my @a = <a b c>; say (@a.pick, -> $l { @a.grep($l ne *).pick } ... *)[^10].join; | 09:37 | |
p6eval | rakudo 442db9: OUTPUT«acacacabca» | ||
..pugs: OUTPUT«*** unknown parse error at /tmp/griclbNPGT line 1, column 70» | |||
..niecza v16-21-g1b64073: OUTPUT«bacacacacb» | |||
09:37
_jaldhar is now known as jaldhar
|
|||
moritz | not too hard IMHO :-) | 09:37 | |
09:37
jferrero joined
|
|||
moritz | p6: my @a = <a b c>; say (@a.pick, { @a.grep($_ ne *).pick } ... *)[^10].join; | 09:37 | |
p6eval | rakudo 442db9: OUTPUT«cabcabacab» | ||
..niecza v16-21-g1b64073: OUTPUT«ababcbcacb» | |||
..pugs: OUTPUT«*** unknown parse error at /tmp/dWJDs31tgE line 1, column 64» | |||
sorear | "Why can't r and n agree on any of this?" | 09:38 | |
09:38
envi_ joined
|
|||
moritz | they are just non-conformists | 09:38 | |
sorear sleep | |||
moritz | r: say 3 * 2**9 | ||
p6eval | rakudo 442db9: OUTPUT«1536» | ||
moritz | good night sorear, dream of easy markov chains | ||
masak | r: my $m = 3; say (((^$m).roll, { ($_ + 1 + (^($m-1)).roll) % $m } ... *) Z+ ord('a'))[^10]>>.&chr.join | ||
p6eval | rakudo 442db9: OUTPUT«c» | ||
masak | hrm. | ||
moritz | masak: X+, not Z+ | 09:39 | |
masak | r: my $m = 3; say (((^$m).roll, { ($_ + 1 + (^($m-1)).roll) % $m } ... *) X+ ord('a'))[^10]>>.&chr.join | ||
p6eval | rakudo 442db9: OUTPUT«bcbcacabab» | ||
masak | \o/ | ||
moritz++ | |||
moritz | now somebody please make a blog post, tracing each different approach through the stages shown here :-) | 09:40 | |
masak | r: my $m = 3; say ^$m | ||
p6eval | rakudo 442db9: OUTPUT«0..^3» | ||
masak | r: my $m = 3; say ^^$m | ||
p6eval | rakudo 442db9: OUTPUT«0..^3» | ||
09:42
kresike joined
|
|||
masak | r: my %comp; my @v = <a b c>; for map { [@v.rotate($_)] }, ^@v { .say } | 09:45 | |
p6eval | rakudo 442db9: OUTPUT«a b cb c ac a b» | ||
masak | r: my %comp; my @v = <a b c>; for map { [@v.rotate($_)] }, ^@v { my ($k, @vs) = @v; %comp{$k} = @vs }; say %comp.perl | 09:46 | |
p6eval | rakudo 442db9: OUTPUT«("a" => ["b", "c"]).hash» | ||
masak | huh. | ||
r: my %comp; my @v = <a b c>; for map { [@v.rotate($_)] }, ^@v { .say; my ($k, @vs) = @v; %comp{$k} = @vs }; say %comp.perl | 09:47 | ||
p6eval | rakudo 442db9: OUTPUT«a b cb c ac a b("a" => ["b", "c"]).hash» | ||
masak | where did the other two entries go? | ||
moritz | erm | ||
@v is always the same | 09:48 | ||
$_ is what's changing in the loop | |||
09:48
birdwindupbird left
|
|||
moritz | and you print $_ with .say | 09:48 | |
masak | er... oops. | ||
r: my %comp; my @v = <a b c>; for map { [@v.rotate($_)] }, ^@v { .say; my ($k, @vs) = @$_; %comp{$k} = @vs }; say %comp.perl | |||
p6eval | rakudo 442db9: OUTPUT«a b cb c ac a b("a" => ["b", "c"], "b" => ["c", "a"], "c" => ["a", "b"]).hash» | ||
masak | r: my %comp; my @v = <a b c>; for map { [@v.rotate($_)] }, ^@v { my ($k, @vs) = @$_; %comp{$k} = @vs }; say %comp.perl | ||
p6eval | rakudo 442db9: OUTPUT«("a" => ["b", "c"], "b" => ["c", "a"], "c" => ["a", "b"]).hash» | ||
masak | \o/ | ||
moritz | r: my %comp; my @v = <a b c>; for @v.keys { my ($k, @vs) = @v.rotate($_); %comp{$k} = @vs }; say %comp.perl | 09:49 | |
p6eval | rakudo 442db9: OUTPUT«("a" => ["b", "c"], "b" => ["c", "a"], "c" => ["a", "b"]).hash» | ||
moritz | feels a bit more straight-forward IMHO | ||
masak | r: my @v = <a b c>; my %comp = map { my ($k, @vs) = @v.rotate($_); $k => @vs }, @v.keys; say %comp.perl | 09:50 | |
p6eval | rakudo 442db9: OUTPUT«("a" => ["b", "c"], "b" => ["c", "a"], "c" => ["a", "b"]).hash» | ||
moritz | I wonder... | 09:51 | |
r: my @v = <a b c>; my %comp = map { [=>] @v.rotate($_)[0, 1..*-1] }, ^@v; say %comp.perl | |||
p6eval | rakudo 442db9: OUTPUT«("a" => "b" => "c", "b" => "c" => "a", "c" => "a" => "b").hash» | ||
moritz | r: my @v = <a b c>; my %comp = map { [=>] @v.rotate($_)[0, 1..*-1].tree }, ^@v; say %comp.perl | 09:52 | |
p6eval | rakudo 442db9: OUTPUT«("a" => ["b", "c"], "b" => ["c", "a"], "c" => ["a", "b"]).hash» | ||
arnsholt | I get a Rakudo spectest failure in S11-modules/require.t on Linux. Is that a known one? | ||
moritz | \o/ | ||
masak | moritz: woot | ||
moritz | arnsholt: I get that too. I kinda suspect jnthn++ is to blame | ||
it's harder to read, but sometime I like the challenge of getting rid of variables | 09:53 | ||
09:53
birdwindupbird joined
|
|||
moritz | I wonder if .rotate(*) should return a LoL of all rotations | 09:53 | |
(and I'm only half-kidding right now) | |||
masak | r: my @v = <a b c>; my %comp = map -> @ ($k, @vs) { $k => @vs }, map { @v.rotate($_) }, ^@v; say %comp.perl | ||
p6eval | rakudo 442db9: OUTPUT«Nominal type check failed for parameter ''; expected Positional but got Str instead in block <anon> at /tmp/WltNubu86u:1» | ||
masak | r: my @v = <a b c>; my %comp = map -> @ ($k, @vs) { $k => @vs }, map { [@v.rotate($_)] }, ^@v; say %comp.perl | 09:54 | |
p6eval | rakudo 442db9: OUTPUT«Nominal type check failed for parameter '@vs'; expected Positional but got Str instead in sub-signature in block <anon> at /tmp/AjXTqd6X9r:1» | ||
moritz | masak: you need to feed in a list of lists or list of arrays or so | ||
otherwise @ is never happy | |||
masak | I thought that's what I did. | ||
putting [] in the second map | |||
moritz | oh, right | ||
hm | |||
r: my @v = <a b c>; say (map { [@v.rotate($_)] }, ^@v).perl | 09:55 | ||
p6eval | rakudo 442db9: OUTPUT«(["a", "b", "c"], ["b", "c", "a"], ["c", "a", "b"]).list» | ||
moritz | masak: oh | ||
masak: it fails in the subsiganture | |||
masak: because it needs to be *@vs, not @v | |||
masak | ah, yes. | ||
moritz | *not @vs | ||
masak | r: my @v = <a b c>; my %comp = map -> @ ($k, *@vs) { $k => @vs }, map { @v.rotate($_) }, ^@v; say %comp.perl | 09:56 | |
p6eval | rakudo 442db9: OUTPUT«Nominal type check failed for parameter ''; expected Positional but got Str instead in block <anon> at /tmp/pNyMOiUV1n:1» | ||
moritz | it even says "in sub-signature" :-) | ||
cognominal | do you know? mathworld.wolfram.com/deBruijnSequence.html | ||
masak | r: my @v = <a b c>; my %comp = map -> @ ($k, *@vs) { $k => @vs }, map { [@v.rotate($_)] }, ^@v; say %comp.perl | ||
p6eval | rakudo 442db9: OUTPUT«("a" => ["b", "c"], "b" => ["c", "a"], "c" => ["a", "b"]).hash» | ||
masak | cognominal: yes, I've come across that concept. :) | ||
cognominal | I have bought "algorithm on strings". Not read yet | 09:57 | |
this one : www.amazon.fr/Algorithms-Strings-Ma...0521848997 | 09:58 | ||
09:59
kaleem left
|
|||
masak | "Cliquez pour Feuilleter!" :D | 09:59 | |
cognominal | oops, I paste the amazom.fr page. | ||
masak | cognominal: for a mo I thought you meant www.amazon.com/Algorithms-Strings-T...0521585198 | 10:00 | |
which was a textbook in one of my favorite courses. | 10:01 | ||
cognominal | I don't know why but it is trendy to have mederval covers for books on lisp or algorithms. | ||
moritz thinks of The Art of the Meta Object Protocol :-) | 10:02 | ||
10:02
kaleem joined
|
|||
cognominal | I suppose that, somehow, doing algorithms or lisp is specially crafty | 10:04 | |
well not in the deceiful meaning of the word. | 10:05 | ||
masak | as in craftmanship, yes. | ||
10:08
daxim joined
|
|||
masak | or is it "craftSmanship"? probably. | 10:10 | |
moritz | phenny: "handwerk"? | 10:11 | |
phenny | moritz: "craft" (de to en, translate.google.com) | ||
moritz | meh :-) | ||
10:11
scott___ left
|
|||
moritz | phenny: "handwerkskunst"? | 10:12 | |
phenny | moritz: "craftsmanship" (de to en, translate.google.com) | ||
masak | phenny: "slöjd"? | 10:13 | |
phenny | masak: "crafts" (sv to en, translate.google.com) | ||
tadzik | phenny: "rzemiosło"? | 10:14 | |
phenny | tadzik: "craft" (pl to en, translate.google.com) | ||
tadzik | phenny: "rzemieślnictwo"? | ||
phenny | tadzik: "crafts" (pl to en, translate.google.com) | ||
masak | phenny: "hantverk"? | ||
phenny | masak: "crafts" (sv to en, translate.google.com) | ||
tadzik | . o O ( is there even a word like this one? ) | ||
10:22
lestrrat left
10:23
lestrrat joined
|
|||
daxim | "All craftsdwarfship is of finest quality." | 10:28 | |
masak | sounds like Pratchett. | 10:30 | |
moritz | your pratchettship is excellent :-) | 10:33 | |
10:33
wolfman2000 left
|
|||
daxim | lolwhat | 10:34 | |
11:21
buubot_backup left,
buubot_backup joined
11:24
Timbus left
|
|||
masak | daxim: 你在哪里学了汉语? | 11:25 | |
11:37
JimmyZ joined
11:41
PZt joined
11:55
godfrey999 left
11:57
lloydf joined
11:59
jaffa4 joined
|
|||
moritz | masak: after skimming stackoverflow.com/questions/1990464...rogramming I'm sure there must be a purely functional data structure that works way better than the "obvious" approach for calculating the frequency of characters in a string | 11:59 | |
11:59
snearch joined
|
|||
masak | ooh | 12:01 | |
12:01
skids left
|
|||
masak | clearly there are things to learn here. | 12:02 | |
12:02
mucker joined
12:03
brrt left
|
|||
moritz | indeed | 12:04 | |
12:05
plobsing left
12:12
plobsing joined
|
|||
jaffa4 | hi | 12:12 | |
Where is an example how to call functions in external libraries? | |||
jnthn | jaffa4: github.com/jnthn/zavolaj has a README with examples of what it is capable of, plus the test suite is full of examples in a sense too. | 12:16 | |
star: use NativeCall; sub fork() is native returns Int { * }; say fork(); | 12:17 | ||
p6eval | star 2012.02: OUTPUT«26904» | ||
jnthn | Hm :) | ||
moritz | star: use NativeCall; sub fork() is native returns Int { * }; say fork(); say 'oh hai' | ||
p6eval | star 2012.02: OUTPUT«26908oh hai» | ||
jaffa4 | What is { * }? | ||
moritz | jnthn: might be a limitation of p6eval, not capturing subprocesses' output or so | 12:18 | |
jnthn | moritz: That's my guess | ||
masak | jaffa4: it's a special form. | ||
jnthn | jaffa4: You don't have to write the * | ||
jaffa4: The actually body of the sub is totally unimportant. | |||
It just means "whatever" in Perl 6 | |||
So it felt apt | |||
sub fork() is native returns Int { "OMG A DRUNK POLAR BEAR" } is fine too :) | 12:19 | ||
masak | o.O | ||
jaffa4 | It does not seem to work in Niecza | ||
masak | jnthn: what kind of fork() are you using? :P | ||
jnthn | jaffa4: No, it won't. | 12:20 | |
moritz | niecza can't call C code (afaict), only other CLR code | ||
and there are examples of this both in the niecza repo and on the p6 advent calendar 2011 | |||
jaffa4 | other CLR code may be enough. | 12:22 | |
jnthn | masak: My head is a messy place today :P | ||
arnsholt | IIRC C# (or maybe it's just .Net) has some pretty spiffy FFI facilities | ||
So it might be possible to create a Niecza NativeCall with those | 12:23 | ||
masak .oO( TODO: get brain out of messy place where instead of "OH HAI", brain emits "OMG A DRUNK POLAR BEAR"... ) | |||
moritz | wow, it's the 16th day of the month, and tomorrow is a parrot release already | ||
jnthn | huh...wow | ||
frettled | masak: OMG A DRUNK SWEDE | ||
masak acts redlös | |||
bbkr | std: my ${a} = 5; | 12:26 | |
p6eval | std 3d13d53: OUTPUT«===SORRY!===Unsupported use of ${a}; in Perl 6 please use $a at /tmp/WsfqeL0gUw line 1:------> my ${a}⏏ = 5;Parse failedFAILED 00:00 40m» | ||
bbkr | rakudo: my ${a} = 5; | ||
p6eval | rakudo 442db9: ( no output ) | ||
bbkr | hm, it did _something_ :) | ||
bbkr reports | 12:27 | ||
jnthn | nom: my $a{a} = 5 | 12:28 | |
p6eval | rakudo 442db9: ( no output ) | ||
jnthn | Hm | ||
masak | right. | ||
jnthn | I mean, I know we support | ||
masak | it probably does '(my $){a} = 5' | 12:29 | |
jnthn | nom: my %h{Int} | ||
p6eval | rakudo 442db9: ( no output ) | ||
jnthn | nom: my %h{a} | ||
p6eval | rakudo 442db9: OUTPUT«===SORRY!===Invalid hash shape; type expected» | ||
masak | hm, but why isn't that a CHECK-time error? | ||
jnthn | nom: my @h{a} | ||
p6eval | rakudo 442db9: OUTPUT«===SORRY!===Shaped arrays not yet implemented. Sorry. at /tmp/n80mZdR4Yp:1» | ||
jnthn | nom: my $h{a} | ||
p6eval | rakudo 442db9: ( no output ) | ||
moritz | nom: my $h{a}; $h = 5; say $h | ||
p6eval | rakudo 442db9: OUTPUT«5» | ||
jnthn | It's parsing a shape. I wonder if it then just drops it for scalars somehow. | ||
masak | sure seems that way. | 12:30 | |
bbkr | so is that a bug? | ||
12:30
tokuhirom joined
|
|||
moritz | yes | 12:31 | |
parsing things but then ignoring them (except comments :-) is so mysql | |||
masak | mysql doesn't ignore comments!? :P | ||
bbkr | rt.perl.org/rt3/Ticket/Display.html?id=112470 | 12:32 | |
moritz | masak: no, but lots of other stuff :-) | ||
depending on the engine foreign key contraints, CHECK, UNIQUE and all the other fun stuff | |||
masak | wow. | 12:33 | |
arnsholt | masak: sql-info.de/mysql/gotchas.html =) | 12:36 | |
Apparently it's not updated for 5.0 though, so some of it might actually be history by now | |||
12:36
brrt joined
|
|||
masak | yeah. mysql is no longer in the set of bits of technology I automatically reach for when I need to solve a problem. | 12:38 | |
12:38
brrt1 joined
|
|||
masak | postgres and sqlite are. | 12:39 | |
12:41
brrt left
12:42
brrt1 is now known as brrt
|
|||
jaffa4 | maybe you are forgetting firebird. | 12:43 | |
JimmyZ usually uses postgreSQL | |||
moritz | jnthn: firebird is robust and has many features, but often a bit awkward to use | 12:44 | |
erm, meant jaffa4 | |||
12:44
bluescreen10 joined
|
|||
moritz | in particular I see no reason to use it over postgres | 12:44 | |
which also has much better perl bindings | |||
jaffa4 | It seems to be smaller in size | ||
It has got embedded version | |||
12:49
bluescreen10 left
12:50
bluescreen10 joined,
bluescreen10 left,
bluescreen10 joined
|
|||
jaffa4 | moritz: clear | 12:54 | |
r: eval(:lang<perl5>,'1'); | 12:56 | ||
p6eval | rakudo 442db9: OUTPUT«Null PMC access in find_method('compile') in sub eval at src/gen/CORE.setting:450 in block <anon> at /tmp/DsscnwJUe9:1» | ||
jaffa4 | s: eval(:lang<perl5>,'1'); | ||
masak submits rakudobug | |||
jaffa4 | n: eval(:lang<perl5>,'1'); | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«Unhandled exception: System.IO.FileNotFoundException: Could not load file or assembly 'Perl5Interpreter' or one of its dependencies. The system cannot find the file specified.File name: 'Perl5Interpreter' at System.AppDomain.Load (System.String assembly… | ||
jnthn | Wow. First NPMCA in a while. :) | 12:57 | |
masak | we're pretty good at shielding ourselves from them nowadays. | ||
12:57
_ilbot left
|
|||
masak | much thanks to 6model, I guess. | 12:57 | |
6model++ | |||
12:57
_ilbot joined
|
|||
jaffa4 | What is NPMCA? | 12:58 | |
masak | Null PMC Access. | ||
jaffa4 | internal jargon | 12:59 | |
masak | yeah, there was a time when we had so many of them that we got tired of saying the full name. | 13:00 | |
moritz | r: say pir::null() | ||
masak | I've heard Java peeps say NPE, too. | ||
p6eval | rakudo 442db9: OUTPUT«use of uninitialized value of type Mu in string context in method Str at src/gen/CORE.setting:667use of uninitialized value of type Mu in string context in method Str at src/gen/CORE.setting:667===SORRY!===error:imcc:syntax error, unexpected '\n' in file '(… | ||
moritz | r: say pir::null__P() | 13:01 | |
p6eval | rakudo 442db9: OUTPUT«Null PMC access in find_method('gist') in sub say at src/gen/CORE.setting:6482 in block <anon> at /tmp/x5o7v_yi5z:1» | ||
masak packs moritz up and sends him into RT :) | |||
13:01
benabik left
|
|||
moritz waves to everybody on the way | 13:02 | ||
13:04
Timbus joined
|
|||
masak | I put moritz in RT #112474 | 13:06 | |
moritz kannot be loaded. OH NOEZ! What have you done to me? | 13:07 | ||
masak | I fibbed. I didn't actually. | ||
you were too big to fit in an email attachment ;) | 13:08 | ||
moritz | r: 3e9 / 8 / 1024 # size of human genome in kb | 13:09 | |
p6eval | rakudo 442db9: ( no output ) | ||
moritz | r: say 3e9 / 8 / 1024 # size of human genome in kb | ||
p6eval | rakudo 442db9: OUTPUT«366210.9375» | ||
masak | that's for *one* cell. | ||
moritz | erm, modulo some constant factors :-) | ||
13:13
mtk left
13:15
spider-mario joined
13:21
mucker left
13:24
plobsing left
|
|||
masak | r: say [/] 3e9, 8, 1024 | 13:32 | |
p6eval | rakudo 442db9: OUTPUT«366210.9375» | ||
13:32
kaleem left
13:34
bacek left
13:35
PacoAir joined
|
|||
jaffa4 | Is it possible to enumarate enums? | 13:38 | |
[Coke] | r: say Bool.pick(*) | 13:39 | |
p6eval | rakudo 442db9: OUTPUT«True False» | ||
[Coke] | r: say Bool.enum.perl | ||
p6eval | rakudo 442db9: OUTPUT«Method 'enum' not found for invocant of class 'Bool' in block <anon> at /tmp/PYD1khAgt0:1» | ||
13:39
JimmyZ left
13:40
dakkar left
|
|||
[Coke] | well, there's one way, anyway. ;) | 13:40 | |
masak | r: enum A <a b c d>; say A.enums.perl | 13:41 | |
p6eval | rakudo 442db9: OUTPUT«("a" => 0, "b" => 1, "c" => 2, "d" => 3).hash» | ||
colomon | r: say Bool.list.Num | ||
p6eval | rakudo 442db9: OUTPUT«1» | ||
13:41
kaleem joined
|
|||
colomon | r: say +(Bool.list) | 13:41 | |
p6eval | rakudo 442db9: OUTPUT«1» | ||
colomon | :\ | ||
[Coke] | r: say Bool.list | 13:42 | |
p6eval | rakudo 442db9: OUTPUT«use of uninitialized value of type Bool in string context in method Str at src/gen/CORE.setting:667» | ||
jaffa4 | That is printing, how to enumate? | ||
r: enum A <a b c d>; pritn A.hash; | 13:43 | ||
p6eval | rakudo 442db9: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&pritn' called (line 1)» | ||
jnthn | r: say Bool.enums.perl | ||
p6eval | rakudo 442db9: OUTPUT«("False" => 0, "True" => 1).hash» | ||
jaffa4 | r: enum A <a b c d>; print A.hash; | ||
p6eval | rakudo 442db9: OUTPUT«Odd number of elements found where hash expected in method STORE at src/gen/CORE.setting:5781 in method hash at src/gen/CORE.setting:1033 in block <anon> at /tmp/pnmfY_FeY3:1» | ||
jnthn | [Coke]: You got "enum", not "enums" | 13:44 | |
enum A <a b c>; for A.enums -> $val { say $val } | |||
r: enum A <a b c>; for A.enums -> $val { say $val } | |||
p6eval | rakudo 442db9: OUTPUT«"a" => 0"b" => 1"c" => 2» | ||
colomon | r: say Bool.enums.Num | ||
p6eval | rakudo 442db9: OUTPUT«2» | ||
colomon | r: say Bool.enums.Int | 13:45 | |
p6eval | rakudo 442db9: OUTPUT«2» | ||
colomon | r: enum A <a b c>; say A.enums.Int | ||
p6eval | rakudo 442db9: OUTPUT«3» | ||
masak | colomon: I think +Bool.list *should* be 1. | ||
colomon: it's mixing up levels a bit to assume an enum type object should listify to its enums. | |||
the type object has more "integrity" than that, if you will. | 13:46 | ||
colomon | r: say Bool.list.perl | ||
p6eval | rakudo 442db9: OUTPUT«(Bool,).list» | ||
colomon | makes sense, I gues | ||
s | |||
13:46
kaleem left
|
|||
jnthn agrees with masak | 13:46 | ||
masak | there's a general principle here that I can't quite put into words. | 13:47 | |
but I find APIs where objects are polymorphic and "collapse" into arrays and hashes that are completely different from the original object... slightly tiring. | |||
better to have explicit methods and a container/containee relation. | 13:48 | ||
jaffa4 | r: enum A <a b c d>; print Ac; | ||
p6eval | rakudo 442db9: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&Ac' called (line 1)» | ||
jaffa4 | r: enum A <a b c d>; print c; | ||
p6eval | rakudo 442db9: OUTPUT«c» | ||
masak | r: enum A <a b c d>; print A::c | ||
p6eval | rakudo 442db9: OUTPUT«c» | ||
jaffa4 | SHould not it print 2? | 13:49 | |
13:49
skids joined
|
|||
jaffa4 | r: enum A <a b c d>; print $A::c; | 13:50 | |
p6eval | rakudo 442db9: OUTPUT«use of uninitialized variable $v of type Any in string context in method Str at src/gen/CORE.setting:667» | ||
jaffa4 | r: enum A <a b c d>; print A.c; | ||
p6eval | rakudo 442db9: OUTPUT«Method 'c' not found for invocant of class 'A' in block <anon> at /tmp/gwDKzZjXzw:1» | ||
masak | it's not a class or an object. | ||
it's a package. | |||
as to whether it should print 2, "no". | 13:51 | ||
not by spec. | |||
jnthn | r: enum A <a b c d>; print +c; | ||
p6eval | rakudo 442db9: OUTPUT«2» | ||
masak | previous versions said it should. but it changed on that point. | ||
jnthn | Just numify it if you want the numeric value. | ||
masak | which I really like, because it means Bool::True stringifies to "True" :) | ||
jaffa4 | r: enum A <a b c d>; print +A.c; | 13:52 | |
p6eval | rakudo 442db9: OUTPUT«Method 'c' not found for invocant of class 'A' in block <anon> at /tmp/JrcjSzxQef:1» | ||
jaffa4 | r: enum A <a b c d>; print +A::c; | ||
p6eval | rakudo 442db9: OUTPUT«2» | ||
13:52
dakkar joined
|
|||
jaffa4 | n: enum A <a b c d>; print +A::c; | 13:53 | |
p6eval | niecza v16-21-g1b64073: OUTPUT«2» | ||
jaffa4 | n: enum A <a b c d>; print +c; | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«2» | ||
jaffa4 | n: enum A <a b c d>; print ~c; | 13:57 | |
p6eval | niecza v16-21-g1b64073: OUTPUT«c» | ||
13:59
dakkar left
|
|||
masak | n: enum A <a b c d>; say ?c; say ?a | 13:59 | |
p6eval | niecza v16-21-g1b64073: OUTPUT«TrueFalse» | ||
14:01
NamelessTee left,
lloydf left
|
|||
jaffa4 | r: "a"~~ rx:P5/a/; | 14:07 | |
p6eval | rakudo 442db9: OUTPUT«===SORRY!===Adverb P5 not allowed on rxat /tmp/hV040YCgV9:1» | ||
jaffa4 | std: "a"~~ rx:P5/a/; | 14:08 | |
p6eval | std 3d13d53: OUTPUT«ok 00:00 49m» | ||
jaffa4 | n: "a"~~ rx:P5/a/; | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«Unhandled exception: Autoloading NYI at /home/p6eval/niecza/boot/lib/CORE.setting line 1366 (die @ 3)  at /home/p6eval/niecza/src/STD.pm6 line 4667 (Regex.tweak @ 6)  at /home/p6eval/niecza/src/STD.pm6 line 500 (ANON @ 3)  at /home/p6eval/niecza/sr… | ||
masak | "Autoloading"? | ||
14:09
fsergot joined
|
|||
fsergot | hi o/ | 14:10 | |
14:12
wtw left,
dakkar joined
14:13
kaleem joined
|
|||
masak | halo, fsergocie. | 14:13 | |
jak się masz? | 14:14 | ||
fsergot | masak: Dobrze. A Ty? :) | 14:15 | |
14:16
snearch left
|
|||
masak | też dobrze :) | 14:17 | |
zajęty. ale dobrze. :) | 14:19 | ||
jaffa4 | everybody is alright. | 14:20 | |
jnthn | .oO( if you squint hard enough, it almost looks like Slovak ) |
||
masak .oO( if you squint hard enough, you can't see stuff ) | 14:21 | ||
jnthn | ETOOHARD :P | 14:22 | |
masak .oO( Perl makes easy squints easy, and hard squints possible ) | 14:23 | ||
fsergot | masak: Great! :) | ||
masak grabs his Polish matura diploma and runs before the Google Translate scandal unravels | 14:24 | ||
14:24
plobsing joined
14:25
PacoAir left
14:32
mucker joined
|
|||
tadzik | did I hear Polish? | 14:32 | |
...where did you get your Polish matura diploma? | 14:33 | ||
tadzik looks for his | |||
14:39
NamelessTee joined
14:46
tokuhirom left
|
|||
masak | tadzik: I don't really have one. but it's fun to pretend that I know even the basics of Polish. | 14:49 | |
tadzik | :) | ||
I had fun pretending to know German on the Datev event on GPW | |||
"Bier, ja ja, naturlich" | |||
naturlich, I didn't understand a single word this lady was saying :) | 14:50 | ||
moritz | it worked pretty well :-) | ||
tadzik | I keep telling myself she didn't notice for some time :) | ||
until I was like "uhh, do you speak English?" | |||
masak | did she? :) | 14:51 | |
14:51
mucker left
|
|||
tadzik | I'll probably never know :) | 14:52 | |
14:53
simcop2387 left,
fsergot left
14:55
simcop2387 joined
|
|||
moritz | I think she thought you were drunk :-) | 14:55 | |
masak | *lol* | 14:57 | |
15:04
birdwindupbird left,
kresike left
15:08
fsergot joined
15:14
mucker joined
|
|||
tadzik | :P | 15:17 | |
15:21
att joined
15:26
kaleem left,
vlixes joined
15:30
spaceships joined,
bluescreen10 left
15:31
spaceships left
15:34
zpmorgan joined
15:37
benabik joined
|
|||
cognominal is looking at deserialization code and find suspicious doubletons like two push string_heap, "perl6" that appear in sequence. Apparently this is not harmful, but is it useful? jnthn? | 15:38 | ||
PerlJam | Have you guys seen this? www.chris-granger.com/2012/04/12/li...e-concept/ | 15:41 | |
jnthn | cognominal: No, but the code that eliminates dupes was causing some people segfaults. | 15:43 | |
So that optimization was backed out for the time being. | 15:44 | ||
15:47
fglock left
|
|||
cognominal | ok | 15:47 | |
p6: my int @a; @a = (3,2); say @a[0].perl | 15:49 | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«===SORRY!===Malformed my at /tmp/huPPHMGrl6 line 1:------> my⏏ int @a; @a = (3,2); say @a[0].perlParse failed» | ||
..rakudo 442db9: OUTPUT«Method 'STORE' not found for invocant of class 'Integer' in block <anon> at /tmp/hIXsvlnc9U:1» | |||
..pugs: OUTPUT«\3» | |||
cognominal | this is not new but not sure it has ever been filed as a bug. | 15:50 | |
15:50
bluescreen10 joined
15:51
Patterner left
|
|||
masak | r: my int @a = (3, 2) | 15:51 | |
p6eval | rakudo 442db9: OUTPUT«Method 'STORE' not found for invocant of class 'Integer' in block <anon> at /tmp/tJ3mC1rBJN:1» | ||
masak | r: my int @a = (3) | ||
p6eval | rakudo 442db9: OUTPUT«Method 'STORE' not found for invocant of class 'Integer' in block <anon> at /tmp/x13H9zDQer:1» | ||
masak | r: my int @a = 3 | ||
p6eval | rakudo 442db9: OUTPUT«Method 'STORE' not found for invocant of class 'Integer' in block <anon> at /tmp/pvcw3mffBF:1» | ||
cognominal | p6: my Int @a; my $a= 1 but False; @a = ( $a,2); say ?@a[0] | ||
p6eval | rakudo 442db9, niecza v16-21-g1b64073: OUTPUT«False» | ||
..pugs: OUTPUT«*** Cannot cast from VBool False to VCode (VCode) at Prelude.pm line 541, column 5-16» | |||
masak | r: my int @a; say "alive" | ||
p6eval | rakudo 442db9: OUTPUT«alive» | ||
cognominal | it works great for non native types. | 15:52 | |
15:53
Psyche^ joined,
Psyche^ is now known as Patterner
15:54
kaleem joined
|
|||
jnthn | There's already an RT for compact arrays being NYI | 15:56 | |
cognominal | ok | ||
16:05
brrt left
16:07
thelazydeveloper joined
16:08
spaceships joined
|
|||
arnsholt | jnthn: In bind_boxed, any good reason accessor_call(value, "type") should return NULL? | 16:11 | |
[Coke] | rakudodevs: any comments on nine's threading branch? | 16:13 | |
jnthn | arnsholt: Is that not missing an interp argument? | ||
arnsholt: What what type is value? | |||
arnsholt: It will return NULL if there's no type method, iirc. | 16:14 | ||
16:14
fhelmberger left
|
|||
jnthn | [Coke]: I'm curious if it's able to create a thread from within a running Rakudo program and run some code on it. | 16:17 | |
[Coke]: Looks like no Windows support yet though. | |||
arnsholt | jnthn: The interp is there in my code (omitted due to laziness) | 16:19 | |
The value should be a CArray (I think), or at least that's the RHS of the bind operator in my code | 16:20 | ||
16:20
att left
|
|||
jnthn | arnsholt: huh, you'd only call .type on an attribute meta-object | 16:22 | |
arnsholt | Oh, right. That would explain a lot =) | 16:23 | |
jnthn | arnsholt: If you need the type object of the value, just STABLE(value)->WHAT | ||
16:23
alester joined,
plobsing left
|
|||
arnsholt | Oooh. A lot easier, that | 16:24 | |
jnthn | ;) | ||
Yes, I did try to make 6model relatively nice to interact with in C-land too :) | |||
[Coke] | jnthn: yah, I was hoping maybe you could point nine at the right API for windows. ;) | 16:25 | |
bother. I can add a Rat that takes an epsilon that is ignored (pugs), but I cannot seem to invoke it. At least it's compiling now. | 16:26 | ||
pugs> 3.Rat(234) | 16:32 | ||
3/1 | |||
16:34
kaleem left
16:42
estrabd joined
16:48
mucker left
16:49
att joined
|
|||
dalek | gs.hs: adac868 | coke++ | Pugs/src/Pugs/Prim.hs: Add .Rat($epsilon) just ignore $epsilon for now. Closes #16 |
16:49 | |
16:51
kaleem joined,
kaleem left
16:52
kaleem joined
16:53
estrabd left
16:55
PacoAir joined
16:56
estrabd joined
|
|||
[Coke] | \o/ | 16:57 | |
p6: say (0+2i).WHAT | 16:59 | ||
p6eval | rakudo 442db9, niecza v16-21-g1b64073: OUTPUT«Complex()» | ||
..pugs: OUTPUT«Complex» | |||
[Coke] | colomon: why are there tests that have (0+2i).Complex in S32-trig ? | 17:00 | |
what is the coercion there buying us? | 17:01 | ||
geekosaur | was there a Gaussian integer type at one point? | ||
colomon | simplicity for the test code generator | ||
[Coke] | colomon: arglebargle. Ok. | ||
colomon | It probably can be improved. But then, Complex.Complex should be pretty darned easy to implement. ;) | 17:02 | |
[Coke] | done. now I need Rat.Str | 17:07 | |
p: say 3.Rat.Str | 17:10 | ||
p6eval | pugs: OUTPUT«*** No such method in class Rat: "&Str" at /tmp/ZEe1p2xBAe line 1, column 5 - line 2, column 1» | ||
[Coke] | p: say 3.Str | ||
p6eval | pugs: OUTPUT«*** No such method in class Int: "&Str" at /tmp/8YD_p3IRaS line 1, column 5 - line 2, column 1» | ||
17:12
dakkar left
|
|||
[Coke] | (and then bless, and FatRat, and asin). | 17:13 | |
colomon | [Coke]++ | 17:14 | |
17:18
flussence_ joined
|
|||
[Coke] | I didn't say I was DOING it. :P | 17:18 | |
17:19
flussence left
17:21
thou joined
17:23
flussence_ left
17:24
flussence joined,
plobsing joined
|
|||
[Coke] | I think we're going to end up with some failing tests here just to get all the simple math ones passing, but I think that's ok. | 17:25 | |
(ok, I am doing it. ;) | |||
17:34
tokuhirom joined
17:35
noam left
17:37
noam joined
|
|||
spider-mario | what would be an idiomatic way of getting the effect of “xx” in Perl 5? | 17:37 | |
PerlJam | spider-mario: ("foo") x 5 | 17:38 | |
spider-mario | oh, that works on lists? | ||
thanks a lot :D | |||
dalek | gs.hs: 1f8d97f | coke++ | Pugs/src/Pugs/Prim.hs: add Complex.Complex |
17:41 | |
gs.hs: f7180f8 | coke++ | Pugs/src/Pugs/Prim.hs: add acos, asin |
|||
gs.hs: 740cde8 | coke++ | Pugs/src/Pugs/Prim.hs: add basic .Str |
|||
gs.hs: 17e95c9 | coke++ | t/update_passing_test_data.pl: (temporary?) update to show planned # of tests. |
|||
[Coke] | still need a (noop is fine) bless, and a FatRat (which I'm probably just going to make an alias for Rat for now.) | 17:42 | |
17:50
thou left,
kaleem left,
daxim left
17:58
leprevost joined
|
|||
masak | geekosaur: I don't think the spec ever had gaussian ints. | 18:02 | |
geekosaur: but it's very easy to make such a type in userland. | 18:03 | ||
[Coke] | masak: I assumed his question was an answer to my question. | ||
masak | or you could just restrict Complex to having integral re and im parts. :) | ||
geekosaur vaguely recalled *something* having a distinct gaussian int type, which would explain a coercion of what looked like a gaussian int to a full complex | 18:04 | ||
jaffa4 | I made an on-line test for Perl 6 for people. You can test yourself if you know Perl 6 well enough or not. link: tests.equinoxbase.com/test.pl | ||
TimToady doesn't think anyone here knows Perl 6 well enough... :) | 18:05 | ||
jaffa4 | You excepted I guess | ||
18:06
benabik left,
benabik_ joined,
benabik_ is now known as benabik
18:09
benabik_ joined,
benabik left,
benabik_ is now known as benabik
|
|||
masak | jaffa4: there seems to be checkbox interference between questions 5 and 6. I checked a box in question 5, and it was still checked in question 6. | 18:09 | |
18:09
|newbie| joined
|
|||
moritz | r: print [+] 1,3,4,9; | 18:10 | |
p6eval | rakudo 442db9: OUTPUT«17» | ||
|newbie| | on cheating | ||
moritz | CHEATING IS TECHNIQUE | 18:11 | |
18:11
jaffa4 left
|
|||
jnthn | wtf, I only got 53.85%! | 18:11 | |
spider-mario | the program didn’t accept “add multi in front of both” + “add multi in front of the second one” | ||
technically, if you need to append it before both, you need to append it before the second one | 18:12 | ||
;) | |||
|newbie| | I am not getting you | ||
moritz | erm, wtf | 18:13 | |
it would be nice to see a summary of what one is supposed to have done wrong | |||
masak | japhb: I got 50.64%: gist.github.com/2400447 | 18:14 | |
er, jaffa4. | |||
oh, he left. | |||
moritz | I hope @a= <1 5 7 9 10>; isn't supposed to be a valid answer | ||
masak | that question was vague. | ||
18:14
|newbie| is now known as jaffa5
|
|||
jaffa5 | it is | 18:14 | |
moritz | because it's not the same as 1, 5, 7, 9, 10 | ||
jaffa5 | I thought it is | ||
moritz | p6: say <1 5 7 9 10>.perl | ||
p6eval | pugs, rakudo 442db9: OUTPUT«("1", "5", "7", "9", "10")» | ||
..niecza v16-21-g1b64073: OUTPUT«(val("1"), val("5"), val("7"), val("9"), val("10"))» | |||
jnthn | I got 0% for classes. I should learn about them. :) | ||
spider-mario | jaffa5 : I’m talking about i.imgur.com/2Y1Oe.png | 18:15 | |
moritz | jaffa5: well, you're wrong | ||
masak | jnthn: *lol* | ||
jaffa5: you should check the validity of the questions I got wrong. | |||
jaffa5: I don't know what numbers they correspond to, but you probably do. | |||
jaffa5 | It does so | ||
moritz | it's no fun to take wrong/imprecise tests | ||
jaffa5 | I tried to make it precise | 18:16 | |
masak | you're getting feedback now. | ||
it needs more precision. | |||
jaffa5: here's what's funny about jnthn getting 0% on classes: he is the guy who took S12 (about OO) and implemented it more or less single-handedly in Rakudo. what's your estimation that your quiz is right and he's wrong? :) | 18:18 | ||
jaffa5 | no, the program says that | ||
kill the program | |||
moritz | r: say 1.WHAT.^name | 18:19 | |
p6eval | rakudo 442db9: OUTPUT«Int» | ||
jnthn | Yeah, I ticked that as avlid | ||
masak | jaffa5: could you publish the "correct" answers somewhere? that's easier than a bunch of us reverse-engineering them. | 18:20 | |
jnthn | and the 1.^name | ||
masak | jnthn: me too. | ||
moritz | jnthn: I know | ||
jnthn goes to eat stuff, back in a bit. Probably with a tuit or two :) | |||
18:20
jaldhar left,
jaldhar joined
|
|||
jaffa5 | jif you publish the correct answer, it is not going to be a test anymore | 18:21 | |
masak takes some deep breaths | |||
moritz | well, if you miscredit answers it's not a test either | ||
masak | jaffa5: but we have strong reason to believe that some of the answers you put in there are wrong. | ||
cognominal | jnthn, I have refreshed blizkost. It passes tests. The diff : gist.github.com/2400493 | 18:22 | |
masak | jaffa5: for all the reasons stated above. | ||
jaffa5 | I will extend it , so that it will explain the right answers and the bad ones | ||
masak | jaffa5: sounds good. but that's just a complicated version of showing us the answers directly. | ||
moritz | r: constant %h = (a => 1, b => ").hash | ||
p6eval | rakudo 442db9: OUTPUT«===SORRY!===Preceding context expects a term, but found infix => instead at line 1, near " \").hash"» | ||
moritz | r: constant %h = (a => 1, b => 2).hash | ||
p6eval | rakudo 442db9: ( no output ) | ||
masak | still, better than nothing. | ||
moritz | r: constant %h = (a => 1, b => 2).hash; say %h.perl | ||
p6eval | rakudo 442db9: OUTPUT«("a" => 1, "b" => 2).hash» | ||
moritz | r: constant %h = (a => 1, b => 2).hash; INIT { say %h.perl } | 18:23 | |
p6eval | rakudo 442db9: OUTPUT«("a" => 1, "b" => 2).hash» | ||
moritz | wow, when has that been fixed? | ||
masak | was it once broken? | ||
moritz | yes | ||
masak | r: constant %h = (a => 1, b => 2).hash; CHECK { say %h.perl } | ||
p6eval | rakudo 442db9: OUTPUT«("a" => 1, "b" => 2).hash» | ||
moritz | there used to be no way to create a hash at compile time | ||
masak | r: constant %h = (a => 1, b => 2).hash; BEGIN { say %h.perl } | ||
p6eval | rakudo 442db9: OUTPUT«("a" => 1, "b" => 2).hash» | ||
masak | wow! | ||
that's really early! | |||
moritz | r: constant %h = (a => 1, b => 2); CHECK { say %h.perl } | ||
p6eval | rakudo 442db9: OUTPUT«("a" => 1, "b" => 2)» | ||
moritz | that's still wrong though | 18:24 | |
masak | aye. | ||
moritz | (RT #111944) | ||
masak | r: constant Int $x = 42; CHECK { say $x } | ||
p6eval | rakudo 442db9: OUTPUT«===SORRY!===Missing initializer on constant declarationat /tmp/kECJtXbY5E:1» | ||
masak | heh? | ||
std: constant Int $x = 42; CHECK { say $x } | |||
p6eval | std 3d13d53: OUTPUT«===SORRY!===Missing initializer on constant declaration at /tmp/QJRFBJ3vw_ line 1:------> constant Int ⏏$x = 42; CHECK { say $x }Two terms in a row at /tmp/QJRFBJ3vw_ line 1:------> constant Int ⏏$x = 42; CHECK … | ||
moritz | it parses it as (constant Int) # missing initiliazer | ||
masak | oh! | ||
r: constant $x = 42; CHECK { say $x } | 18:25 | ||
p6eval | rakudo 442db9: OUTPUT«42» | ||
18:25
leprevost left
|
|||
masak | r: my constant Int $x = 42; CHECK { say $x } | 18:25 | |
p6eval | rakudo 442db9: OUTPUT«===SORRY!===Missing initializer on constant declarationat /tmp/s023c8tcIq:1» | ||
masak | there's no way to type constants? | ||
moritz | nope | ||
18:26
jaldhar left
|
|||
jaffa5 | masak: not sure about what you wrote earlier... it is just a compilcated way of showing answers directly? | 18:26 | |
all tests are like that | |||
[Coke] | jaffa5: he's trying to help you improve the quality of your test. You're making it difficult. | ||
masak | jaffa5: I/we believe you got some of the answers wrong when you created the test. | 18:27 | |
[Coke] | If you don't want the core team to help you fix your test so that it's correct, that's fine, but I'm not sure what your expectation here is. | ||
jaffa5 | masak: ok | ||
masak | jaffa5: I've already taken the test. you're not spoiling it for me. take any measures you feel are necessary to hide the answers from others but show them to me. | ||
if not, you are indeed making it difficult for me to help you. | 18:28 | ||
jaffa5 | ok, wait a sec | ||
masak | [Coke]++ # diplomacy | ||
18:29
uvtc joined
18:32
thou joined
|
|||
uvtc | Hi #perl6. Can anyone tell me how to fix this: paste.pocoo.org/show/582533/ ? | 18:34 | |
jnthn | cognominal: You already have a commit bit there :) | 18:35 | |
cognominal | ok | 18:36 | |
18:36
lichtkind joined
18:37
leprevost joined
|
|||
moritz | uvtc: you probably want curly braces after the =>, not [ | 18:40 | |
spider-mario | (the outer =>) | ||
uvtc | Ah, that got me further. Thanks, moritz. | 18:41 | |
In all the examples of hashes I've seen so far, they always look like this: `my %h = 'a' => 1, 'b' => 2;`. That is, no commas, and no curlies required. What do the curlies do (in the context here)? | 18:42 | ||
moritz | uvtc: in 'my %h = ...', it's the assignment to a hash variable that creates the hash. If you don't do that, you need { ... } to create a hash | 18:43 | |
a => 1, b => 2 per se is just a list of Pair objects | |||
uvtc | (Oh, nice. Also, just had to change the "append" to "push", and everything works. :) ) | ||
moritz, Oh, of course. Thanks! | 18:44 | ||
lichtkind | uvtc: hai , yes i was not that responsive but i hope it gets better soon | ||
uvtc | lichtkind, hi. | 18:46 | |
lichtkind, Did you have a look at the generated html? | |||
lichtkind, Oops. Sorry, should take this offline. | 18:47 | ||
jaffa5 | spider-mario: I added the word "only" to the cases you found unclear. | ||
uvtc | lichtkind, re responsiveness, n/p | 18:48 | |
cognominal | now, I will try to see why panda does not install zavolaj | 18:50 | |
"not in the ecosystem" | 18:51 | ||
blatant lie | 18:53 | ||
[Coke] | seen au? | 18:55 | |
aloha | au was last seen in #perl6 1 days 9 hours ago saying ". o O ( whetstones )". | ||
[Coke] | p6: say sin(3).Rat | 18:56 | |
p6eval | pugs: OUTPUT«0.141120008059867213523475015790609177202» | ||
..niecza v16-21-g1b64073: OUTPUT«0.14111922141119221» | |||
..rakudo 442db9: OUTPUT«0.141119221411192» | |||
[Coke] | p6: say sin(3).Rat.perl | 18:57 | |
p6eval | rakudo 442db9: OUTPUT«58/411» | ||
..pugs: OUTPUT«5084384125703515/36028797018963968» | |||
..niecza v16-21-g1b64073: OUTPUT«<58/411>» | |||
[Coke] | I'd say that's pretty Fat(Rat). | ||
au | [Coke]: I'm fading fast, after staying up a night translating allisonrandal.com/2012/04/15/open-s...ghtenment/ into gist.github.com/2400315 | 18:58 | |
but please feel free to typeahead anything you'd like me to help with :) | |||
18:59
GlitchMr joined,
sporous left,
sporous joined
|
|||
masak | ooh, 繁體字! | 19:02 | |
spider-mario | ~glitchmr@….adsl.inetia.pl | ||
.pl? :D | 19:03 | ||
cognominal | how can I get the whole stack trace when I get : use of uninitialized value of type Command in string context in method Str at src/gen/CORE.setting:667 | ||
GlitchMr | spider-mario, yes | ||
spider-mario | that sounds appropriate | ||
moritz | cognominal: CONTROL { say $!.backtrace.nice } | ||
masak | cognominal: --ll-exception ? | ||
moritz | or .full if you're a bit more paranoid | ||
cognominal | masak++ moritz++ | 19:04 | |
moritz | r: CONTROL { say $!.backtrace.nice }; ~Any | ||
p6eval | rakudo 442db9: OUTPUT«Method 'backtrace' not found for invocant of class 'Any' in block <anon> at /tmp/3Z_eGnRUwI:1» | ||
moritz | r: CONTROL { say .backtrace.nice }; ~Any | ||
p6eval | rakudo 442db9: OUTPUT« in method Str at src/gen/CORE.setting:667 in method Stringy at src/gen/CORE.setting:674 in sub prefix:<~> at src/gen/CORE.setting:957 in block <anon> at /tmp/9cpXsFcUB0:1use of uninitialized value of type Any in string context in method Str at src/gen/CO… | ||
moritz | cognominal: sorry, $_ not $! | ||
I *always* do that wrong | 19:05 | ||
19:06
birdwindupbird joined
19:07
tokuhirom left
|
|||
uvtc | At some point did Perl 6 support calling fn's with a colon, as in `my-func: 3`? | 19:10 | |
moritz | that's the so-called "indirect method syntax" | ||
tadzik | doesn't it now? | ||
moritz | it's specced, but rakudo doesn't implement it | 19:11 | |
masak | std: use MONKEY_TYPING; augment class Int { method my-func {} }; my-func: 5 | ||
p6eval | std 3d13d53: OUTPUT«Compiled lib/MONKEY_TYPING.pm6ok 00:00 41m» | ||
TimToady | p6 has never specced *functions* with colons that I can recall | ||
tadzik | ha! The use of uninitialized value of type Command in string context in panda comes from gen-usage() | 19:12 | |
tadzik tries a fix | 19:13 | ||
uvtc | Well, that's what's strange. In this script paste.pocoo.org/show/582562/ , it works. But in this one paste.pocoo.org/show/582565/ it gives me an error. | ||
That little script gives me: | |||
===SORRY!=== | 19:14 | ||
Confused | |||
at ./bar.pl6:1 | |||
TimToady | after all, a function with a colon is indistinguishable from a label | ||
moritz | uvtc: yes, as I said, rakudo doesn't implement it | ||
and, as also said, it would call a method, not a subroutine | |||
cognominal | I have an account on feather but lost the password. how can I reset it? | ||
moritz | cognominal: I can do that for yuo | ||
19:14
Chillance joined
|
|||
cognominal | thx | 19:15 | |
uvtc | moritz, Oh, I didn't catch the difference there between method & function. Thanks. | ||
moritz | cognominal: erm, what's your username on feather? | ||
TimToady | masak: note that my-func: 5 is a label followed by a Useless use of constant 5 | ||
cognominal | moritz: "cognominal" if the account still exists. | ||
[Coke] | au: it would be awesome if you could setup a bless() function that would either 1) do what t/spec/S32-trig/sin.t needed it to do, or, barring that, 2) complete without throwing an exception. | ||
moritz | cognominal: no such account or home directory. So I guess the account doesn't exist | 19:16 | |
[Coke] | I may try to hack at it again (for #2) later tonight. | ||
uvtc | TimToady, If the function calling syntax doesn't allow the colon, why bother having method calling honor it? | 19:17 | |
masak | TimToady: is it always a label if it's \w ':' first in a statement? | ||
cognominal | moritz, I have not used in years so I am not surprised it has been removed. | ||
TimToady | because a function can be a listop without it, but a method can't | ||
moritz | cognominal: then contact Juerd to get a fresh account | ||
I think instructions are on feather.perl6.nl/ | |||
moritz still remains highly suspicious of the indirect method syntax | 19:18 | ||
cognominal | moritz, thx | ||
TimToady | masak: yes, provided the ':' isn't part of some longer token | ||
moritz | though that was methodname $invocant: rest, of, args, right? | ||
masak | oh, right. | 19:19 | |
TimToady | yes, it's quite unambiguous, at least compared to P5 | ||
masak | std: use MONKEY_TYPING; augment class Int { method my-func {} }; my-func 5: | ||
p6eval | std 3d13d53: OUTPUT«ok 00:00 42m» | ||
jnthn wonders what it'd take to parse it. | |||
masak | \o/ | ||
std: my-func 5: | |||
p6eval | std 3d13d53: OUTPUT«ok 00:00 42m» | ||
jnthn | (In Rakudo) | ||
masak | heh, it's a method call. don't need to declare the method :P | ||
TimToady | here's all it does: look to see if the first comma is really a colon, and if so, it's an invocant | ||
easy peasy | 19:20 | ||
jnthn | Hm. | ||
You almost make it sound like LHF... :P | |||
jnthn will take a peek once he's done with the last pseudo-packages | |||
moritz | std: m 5: 7: 1 | ||
p6eval | std 3d13d53: OUTPUT«===SORRY!===Alphanumeric character is not allowed as delimiter at /tmp/lWdqcAvrWD line 1:------> m ⏏5: 7: 1Parse failedFAILED 00:00 40m» | ||
moritz | std: mymethod 5: 7: 1 | ||
p6eval | std 3d13d53: OUTPUT«===SORRY!===Illegal use of colon as invocant marker at /tmp/hAwYe8LmLX line 1:------> mymethod 5: 7:⏏ 1Check failedFAILED 00:00 42m» | ||
masak | std: a b 2: 5: | 19:21 | |
p6eval | std 3d13d53: OUTPUT«===SORRY!===Illegal use of colon as invocant marker at /tmp/Sl2YzfHtac line 1:------> a b 2: 5:⏏<EOL>Undeclared routine: 'a' used at line 1Check failedFAILED 00:00 42m» | ||
masak | std: a b 2: : | ||
p6eval | std 3d13d53: OUTPUT«===SORRY!===Preceding context expects a term, but found infix : instead at /tmp/3PSfVdZGm8 line 1:------> a b 2: ⏏:Parse failedFAILED 00:00 42m» | ||
masak | std: a (b 2:): | ||
p6eval | std 3d13d53: OUTPUT«ok 00:00 42m» | ||
jnthn | std: 1 : 2 | ||
p6eval | std 3d13d53: OUTPUT«===SORRY!===Illegal use of colon as invocant marker at /tmp/AFKPy5e3ZO line 1:------> 1 :⏏ 2Check failedFAILED 00:00 41m» | ||
jnthn | ...infix : ? | 19:22 | |
TimToady | yes, parsed as a fancy comma | ||
that easily-peasily turns into an invocant marker | |||
uvtc | syntactic cologne | ||
skids | groan | ||
19:23
samlt joined,
plobsing left
|
|||
jnthn | :P | 19:24 | |
TimToady | it's also one of the many motivations for turning ?: into ??!!, or that : would be ambiguous | ||
jnthn | aye | ||
uvtc | skids, it's my understanding that #perl6 participants are allowed one awful joke and/or pun per diem. So, there, I've used mine up. | 19:25 | |
moritz | right, more puns are forbidden, by punishment of Nil | ||
:-) | |||
skids | uvtc: that one was bad enough to get expropriated, congrats. | 19:27 | |
TimToady | .oO(syntactic Köln) |
19:28 | |
uvtc | If you're going out on the town with a fancy comma, you need the cologne. [ducks] | ||
masak .oO( syntactic line of pillars ) | |||
TimToady | though, since it's really rewriting the AST, it's more like semantic cologne... | 19:29 | |
masak | arborial cologne. | 19:30 | |
moritz | macrologogne | ||
uvtc | Not sure if it was noticed before, but the error I get for trying to use the colon with a function call always tells me the problem is at line 1, regardless of where the offending cologne is. | ||
masak | Perl 6 parsers are so slow, they just assume they're still on line 1 :P | 19:31 | |
TimToady | perl6: my Int constant $x = 42; | 19:33 | |
p6eval | pugs: OUTPUT«***  Unexpected "constant" expecting ":" or "(" at /tmp/2AF2hBpHgo line 1, column 8» | ||
..rakudo 442db9: ( no output ) | |||
..niecza v16-21-g1b64073: OUTPUT«Potential difficulties: $x is declared but not used at /tmp/2yqY46vNUS line 1:------> my Int constant $x ⏏= 42;» | |||
TimToady | perl6: my Int constant $x = 42; say $x | ||
p6eval | pugs: OUTPUT«***  Unexpected "constant" expecting ":" or "(" at /tmp/_1VGr1BLr3 line 1, column 8» | ||
..rakudo 442db9, niecza v16-21-g1b64073: OUTPUT«42» | |||
TimToady | perl6: constant $x of Int = 42; say $x | ||
p6eval | pugs: OUTPUT«***  Unexpected "of" expecting "?", "!", trait, "=", infix assignment or operator at /tmp/jjSGyp06Vb line 1, column 13» | ||
..rakudo 442db9, niecza v16-21-g1b64073: OUTPUT«42» | |||
TimToady | sure you can type constants | ||
jnthn | constants | ||
.oO( gee, I can! ) |
19:34 | ||
TimToady | see! | ||
jnthn | fwiw, I'm not entirely sure Rakudo pays any attention to the "of" form | ||
Actually... | |||
19:34
FACEFOX left
|
|||
jnthn | How does the "of" form work? :) | 19:34 | |
There's no container to apply the trait to... | 19:35 | ||
TimToady | and yet there is a declarand | ||
jnthn | hehe | ||
multi trait_mod:<of>(Mu $value, Mu:U $type) { $value ~~ $type or die "Type check failed ..." } | 19:36 | ||
...no. :) | |||
Maybe there needs to be a ConstantDeclarand meta-object or something. | 19:37 | ||
Otherwise implementing export will be a problem too as we need to convey the name. | |||
TimToady | the "constant" keyword lives in the 'sub' slot, so maybe that's a hint | ||
jnthn | Well, for a sub we pass a Sub object. | 19:38 | |
But constants aren't invokable in any sense, so I'd not expect it to be anything that's ~~ Code | |||
moritz | std: constant a = 3; &a | ||
p6eval | std 3d13d53: OUTPUT«ok 00:00 43m» | ||
TimToady | though STD distinguishes type_declarator from routine_declarator, but they both are parsed at the same point | ||
moritz | std: &a | 19:39 | |
p6eval | std 3d13d53: OUTPUT«===SORRY!===Undeclared routine: 'a' used at line 1Check failedFAILED 00:00 42m» | ||
jnthn finds that std result bothersome | |||
nom: constant a = 3; say a; say &a | 19:40 | ||
p6eval | rakudo 442db9: OUTPUT«3Nil» | ||
TimToady | remember STD installs & variants for types so that you can talk about coercions as nouns | 19:41 | |
jnthn | Ah, for Int('eresting') ? | ||
OK | |||
TimToady | std: &Int | ||
p6eval | std 3d13d53: OUTPUT«ok 00:00 42m» | ||
masak | I believe this to be an autopun: twitter.com/dwineman/status/191950031409000448 | 19:42 | |
moritz calls the autopunpolice | |||
felher | moritz: I implemented a few typed exceptions similar to those that are already in IO.pm. The problem is they return Nil and die if something went wrong. Seems quite a few spectest require the funcitons i wanted to implement to return Failure or True. Whats the way to go? Implement the new with True/Failure and keep those that alreay have typed exceptions as they are? Rewrite the old to not die with a typed | 19:44 | |
exception but return True/Failure instead? | |||
19:44
wooden_ left
|
|||
uvtc | I think I recall heredocs being discussed here recently. That they're specced (<perlcabal.org/syn/S02.html#Heredocs>) but not yet implemented. Why does Perl 6 spec heredocs instead of using a multi-line quoting syntax (for example, Python's triple quotes)? | 19:44 | |
TimToady | because Python's triple quotes suck | 19:45 | |
19:45
fgomez joined,
fgomez left,
fgomez joined
|
|||
TimToady | and they are implemented in niecza | 19:45 | |
sjohnson | *gasp* | ||
uvtc | What about them sucks? | ||
masak | I thought triple quotes were for documentation. | ||
19:45
sivoais left
|
|||
geekosaur | no, they actually poduce strings; just happens a string in void context works as documentation (compare Lisp) | 19:46 | |
TimToady | the point of heredocs is to use the line sequence out-of-band to the character sequence | ||
triple quotes, besides being ugly and inflexible, don't do that | 19:47 | ||
19:47
sivoais joined
|
|||
uvtc | TimToady, I agree that using 3 quote marks together to mean a "quote" is ... not pretty. | 19:48 | |
TimToady | so you end up having to violate end-weight considerations to put any extra little arguments way down at the end | ||
pragmatically, heredocs are about end-weight | |||
19:49
benabik left
|
|||
TimToady | process( q:to/END/, 2, 3 ); # let's you finish the thought with a promise of the first argument | 19:50 | |
*lets | |||
uvtc | TimToady, Oh. Right. That explanation sticks nicely. Thanks. | ||
TimToady | and the fact that it's difficult to implement just reinforces the fact that Perl is designed to torment the implementors rather than the users | 19:51 | |
n: say q:to/END/, 'done'; Indented stuff. END | 19:53 | ||
p6eval | niecza v16-21-g1b64073: OUTPUT«Indented stuff.done» | ||
TimToady | niecza++ # implements trimming | ||
masak | n: say q:to/END/, 'done';Oops, forgot to indent! Silly me. END | 19:54 | |
p6eval | niecza v16-21-g1b64073: OUTPUT«Oops, forgot to indent! Silly me.done» | ||
masak | that's wrong, I think. | ||
TimToady | only if you think like a masak | ||
masak .oO( bug! bug! bug! ) | 19:55 | ||
masak .oO( say it's a bug! come on! ) | |||
geekosaur | *files a masakbug* | ||
TimToady | It might warrant a warning, but chopping non-whitespace off the front could be construed as needlessly unforgiving | ||
masak | I meant more like, shouldn't the text itself be at least as indented as the end marker? | 19:57 | |
I always thought so. | |||
TimToady | in fact, this is discussed at S02:4321 | ||
colomon | spec++ | 20:00 | |
masak | oh. only a warning. | 20:02 | |
I think a warning might be too mild there. | |||
TimToady | I'll let you off this time. | 20:03 | |
20:04
leprevost left,
GlitchMr left
|
|||
masak | but I don't hold that opinion strongly enough to get on the barricades, or blitz-patch the spec. :) | 20:04 | |
TimToady | well, you may s/may/must/, if you must | 20:05 | |
nap & | 20:08 | ||
masak | can I do s/warning/fatal warning/, too? :P | 20:10 | |
20:11
benabik joined
20:12
spider-mario left
|
|||
masak | putting the end marker at a deeper indentation level than some of the text signifies a deep confusion which should probably be addressed before the program is run anyway. | 20:12 | |
20:13
spider-mario joined
|
|||
masak | it's close to choosing the wrong string delimiter at the end of a string. | 20:13 | |
20:16
sivoais left
20:18
plobsing joined
20:20
sivoais joined
20:23
sivoais left,
sivoais joined
20:24
att left
|
|||
dalek | kudo/nom: f05a64d | moritz++ | src/core/Exception.pm: class X::TypeCheck (not yet used) |
20:37 | |
moritz | felher: sorry, missed your question earlier. Return True or die seems like a reasonable approach | 20:38 | |
harmonizing the tests also seems reasonable | 20:39 | ||
20:39
att joined
20:40
samlt left
|
|||
felher | moritz: shall i rewrite the Copy and Rename to do True/die instead of Nil/die too? | 20:40 | |
moritz | felher: yes, please | ||
felher | moritz: kk, will do :) | ||
moritz is excited that he isn't the only one anymore who takes care of such stuff | |||
20:41
jferrero left
|
|||
jnthn | felher++ | 20:42 | |
lichtkind | moritz: i know that feeling :) | 20:43 | |
20:44
lichtkind left
20:45
bacek joined,
lichtkind joined,
benabik left,
raiph joined
|
|||
moritz | jnthn: fwiw it seems to be impossible to create a constant hash inside the setting, or to create a non-constant hash and then use it inside an INIT block | 20:45 | |
felher | \o/ :) | 20:46 | |
moritz: i will still ask you if something goes wrong and you probably still have to review my patches :) | 20:47 | ||
+though | |||
moritz | felher: that's the way it always starts | ||
felher | moritz: okay then :) | 20:48 | |
moritz | jnthn: gist.github.com/2401418 that's what happens if I try | ||
code like constant $x = ( 'X::TypeCheck' => sub ($operation, $got, $expected) { X::TypeCheck.new(:$operation, :$got, :$expected).throw },).hash; | 20:49 | ||
jnthn | Hmm | ||
.oO( circularity sore ) |
|||
moritz | is it normal for all those setting routines to show up as nqp;Perl6;World;prefix:<!> in the backtrace? | 20:50 | |
not all, only some of them, it seems | |||
jnthn | That seems decidedly odd. | 20:51 | |
oh, no | |||
It's not. | |||
moritz | or even more precisely, most seem to come up twice, once with and once without that prefix | ||
jnthn | It's jsut a side-effect of the dynamic compilation | ||
Yeah | |||
There's various bits of thunkery going on as it discovers stuff it's gotta run off and compile. | |||
Are you doing this after Hash is fully defined? | 20:52 | ||
moritz | yes | ||
this is in Exception.pm | |||
which comes after Hash.pm | |||
raiph | took jaffa's test; got 46%; was disappointed; then saw scores of jnthn and masak... ;) | ||
phenny | raiph: 15 Apr 20:08Z <lichtkind> tell raiph thanks a lot uvtc is also currently helping me to decide but nothing final yet | ||
moritz | raiph: I was somewhere around 50% too | 20:53 | |
lichtkind | raiph: hai | ||
moritz | anyway, sleep time for me | 20:54 | |
zZzZz | 20:55 | ||
raiph | gnight moritz | ||
20:56
birdwindupbird left
|
|||
lichtkind | gut nacht | 20:56 | |
20:58
benabik joined
|
|||
jnthn | 'night, moritz | 20:58 | |
21:00
uvtc left
21:02
orafu left,
orafu joined
|
|||
masak | sweet sleeply, moritz. | 21:03 | |
21:03
skids left
|
|||
masak | p6: say "salmon live in trees and eat pencils".Bool | 21:06 | |
p6eval | pugs: OUTPUT«1» | ||
..rakudo 442db9, niecza v16-21-g1b64073: OUTPUT«True» | |||
21:06
envi_ left
|
|||
dalek | kudo/nom: ef6fe01 | jnthn++ | src/ (2 files): CORE, SETTING and UNIT. |
21:09 | |
ast: fa50707 | jnthn++ | S02-names/pseudo.t: Unfudge. |
|||
benabik | masak: Maybe we should hook up Str.Bool to a natural language processor so it can evaluate the truth of the statement. | 21:10 | |
masak | I see absolutely no philosophical hurdles with that. | ||
or even technical ones. | |||
dalek | kudo/nom: 1501f51 | jnthn++ | docs/ChangeLog: Update ChangeLog a little. |
21:16 | |
lichtkind | raiph allright just tell me when you have time | 21:23 | |
21:24
plobsing left,
bluescreen10 left
|
|||
dalek | kudo/nom: c4f9b1b | jnthn++ | docs/ROADMAP: Remove various completed ROADMAP items. |
21:24 | |
21:26
spider-mario left
21:28
huf_ is now known as huf
21:31
mdupont left
21:33
fsergot left
|
|||
tadzik | there is something abnormally satisfying in writing tests for Test:: modules | 21:37 | |
masak | yo dawg. | ||
I expect it's the same thrill as writing a bootstrapping compiler. | 21:38 | ||
tadzik | I herd you like tests? ok()? ok()? ok()? | ||
masak | :P | ||
so I put some tests in your tests: ok(ok(ok())) | 21:39 | ||
tadzik giggles | |||
tadzik wonders if github.com/tadzik/IO-Capture-Simpl...asic.t#L10 is even correct | 21:40 | ||
21:40
bluescreen10 joined
|
|||
masak | can you formulate a falsifiable hypothesis such that if it's not correct, you'd find out? | 21:42 | |
21:42
benabik left
21:43
brrt joined
|
|||
tadzik | possibly | 21:43 | |
I can break this tests, yes | 21:44 | ||
masak | sounds like a good idea. | 21:47 | |
21:48
att left,
ggoebel left
21:49
snearch joined
21:51
jaffa5 left,
PacoAir left
21:52
ggoebel joined
|
|||
felher | masak: was your question about a falsifiable hypothesis about something special or just a question to the world/channel/tadzik? :) | 21:56 | |
Tene | felher: responding to tadzik | 21:57 | |
felher | Tene: thanks :) | ||
tadzik | good knight #perl6 | 22:01 | |
22:01
fgomez left,
fgomez joined,
NamelessTee left
|
|||
felher | o/ | 22:05 | |
22:06
mdupont joined
22:18
Araq joined
22:23
plobsing joined,
localhost left
22:25
localhost joined
|
|||
jnthn | 'night o/ | 22:26 | |
22:37
Chillance left
|
|||
lichtkind | good night | 22:49 | |
sorear | good * #perl6 | 22:58 | |
sjohnson | hi | ||
:) | 23:00 | ||
everyday i learn multiple things about perl5, it almost makes me wonder if i'll be able to to undertake learning perl 6 | 23:01 | ||
23:20
ilogger2 joined,
ChanServ sets mode: +v ilogger2
23:24
Moukeddar joined
23:35
Moukeddar left
|
|||
lichtkind | vlixes: indeed :) | 23:42 | |
mayne said that :) | |||
many | |||
the perl 6 teblets are aimed to be an easy learnign | |||
learning | |||
23:57
tokuhirom joined
23:58
whiteknight joined
|