»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
00:00 kolibrie joined
pugssvn r30690 | colomon++ | [t/spec] Tests for Real.succ, Real.pred, and .match :g modifier. 00:07
[Coke] any tests for 'say' ? 00:10
colomon S16-io/say.t 00:12
S16-io/bare-say.t
S16-filehandles/io.t
00:13 pnate left, rgrau joined 00:18 pnate joined 00:21 yinyin joined
[Coke] rakudo; use Test; is ([+] (1..999).grep( { $_ % 3 == 0 || $_ % 5 == 0 } ), 234) 00:25
rakudo: use Test; is ([+] (1..999).grep( { $_ % 3 == 0 || $_ % 5 == 0 } ), 234)
p6eval rakudo 980e03: OUTPUT«No applicable candidates found to dispatch to for 'is'. Available candidates are:␤:(Mu $got, Mu $expected, Any $desc)␤:(Mu $got, Mu $expected)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
lue The spec says nothing about what subjects of math it can handle. :/
snarkyboojum  term
[Coke] why is that?
be nice if that error told me what I /had/ not what was available. =-) 00:26
er, s/not/and/
00:26 rgrau left
[Coke] rakudo: my $a = ([+] (1..999).grep( { $_ % 3 == 0 || $_ % 5 == 0 } ); say $a.WHAT 00:29
p6eval rakudo 980e03: OUTPUT«Confused at line 11, near "my $a = ("␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
lue Apparently, the possible candiates are what it $expected :) 00:30
00:31 rgrau joined
colomon rakudo: my $a = [+] (1..999).grep( { $_ % 3 == 0 || $_ % 5 == 0 } ); say $a.WHAT 00:32
p6eval rakudo 980e03: OUTPUT«Int()␤»
colomon [Coke]: shouldn't Mu match anything anyway? 00:33
sorear yay! completely backlogged 00:34
on a Tuesday, even
colomon [Coke]: oh, the first arg eats what you think is the second arg
rakudo: use Test; is(([+] (1..999).grep( { $_ % 3 == 0 || $_ % 5 == 0 } )), 234)
p6eval rakudo 980e03: ( no output ) 00:35
colomon > use Test; is(([+] (1..999).grep( { $_ % 3 == 0 || $_ % 5 == 0 } )), 234);
not ok 1 -
# got: 233168
# expected: 234
I think it just takes too long on p6eval. 00:36
00:36 ashleydev joined
colomon (not that I disagree that listing what you have for args as well as what it wants would be a good thing.) 00:37
snarkyboojum should the parrot version be bumped to 46711 to correspond with the 2.4.0 parrot release (for testing purposes)?
colomon snarkyboojum: absolutely.
are you volunteering? ;)
(at least, assuming 46711 is the right number, I didn't check.) 00:38
snarkyboojum colomon: hehe - a patch hardly seems worth it :P, but yes, that's the right rev number
colomon: though it's worth checking :)
colomon snarkyboojum: ah, do you not have a rakudo commit bit?
00:38 plobsing joined
snarkyboojum colomon: nope - just a tinkerer 00:39
colomon Ah. Well, it definitely needs to be done and committed. Let me know how it goes for you. :)
snarkyboojum colomon: will do :)
colomon (and if it works, I'll get it in git.)
snarkyboojum builds fine with r46711 on my box, just running a spectest 00:42
lue I got thinking all of a sudden about math in perl 6. Any idea as to what subjects it covers? It's not obvious where this would be in the spec. 00:43
colomon lue: S32 Numerics
lue (I wouldn't mind writing a math module or two for R* possibly :P)
colomon: dankon
colomon (though be warned that I'm planning on a few changes to the Numeric section in the next few days. ;) 00:44
00:44 BrowserUk joined, BrowserUk left, rgrau left 00:45 rgrau joined
lue It looks like it could do nothing _but_ be changed. :) 00:45
snarkyboojum and FWIW, I typo'ed the rev number - it's 46771 not 46711 (but had updated my PARROT_REVISION correctly) :) 00:47
lue I still think a dependency-tree like system would be worth considering. 00:51
i.e. Complex needs Real and Imaginary
[Coke] do we have any tests that cover .fmt on a hash?
(because the random key ordering sucks for testing. =)
lue *cough* pseudo-random. It's good enough! :) 00:52
[unless you build for linux-quantumbit computers. Then that sucks]
00:53 rgrau left
colomon [Coke]: maybe in S02-names_and_variables/fmt.t 00:53
[Coke] colomon: no "my %" in that file. 00:54
snarkyboojum lue: what type of maths modules did you have in mind (just out of interest)?
colomon [Coke]: it has $hash.fmt
[Coke] sneaky. danke.
colomon dunno what $hash is, but it seems likely to be a hash. :)
lue Just based on what I'm learning. Logarithms right now :)
$hash is a compiling contradiction! :) 00:55
sorear lue is just now learning about logarithms? wow we recruit early these days
lue It took way too long to get to something I didn't already know. I'm happy. 00:56
snarkyboojum lue: sounds good :) read colomon's latest blogging on log implementation in rakudo? 00:57
eternaleye moritz_: re commandline parser, I can see at least one case where the shell and P6 will fight. -n='spacey value' vs -n=val1,'val 2',etc -- if 'val 2' contains a comma, we're screwed since the shell will eat the quotes.
Ditto for if 'spacey value' contains a comma, and ditto for the long forms
lue no. I has yet to get everyone's blogs situated. Good thing to do whilst compiling blender :)
snarkyboojum lue: justrakudoit.wordpress.com/2010/05/...-a-logger/ and friends 00:58
sorear Who else thinks that planet's filtering is broken?
eternaleye TimToady: Thoughts on ^^^ (commandline ambiguity)
sorear I might start having to use a real aggregater 00:59
lue Did you know that you can use a logs to find the # of digits in a number? (guaranteed only for nonnegative integers) 01:02
TimToady In general, I prefer forms that send in multiple arguments as multiple words, without comma separators.
01:02 ruoso joined
TimToady especially since comma is my history character instead of ! :) 01:03
[Coke] sorear: what problems are you having with planetsix? 01:04
last time someone complained it turned out that our blogger hadn't been tagging his posts. 01:05
[Coke] tries to come up with a permute one liner. 01:07
sorear [Coke]: That's the problem this time. By "broken" I mean "broken by design" 01:08
See also "I might have to start using a real aggregator"
colomon didn't tag sins of a logger
lue Well, I like that system. It means one does not need two blogs. People just need to remember to tag their posts :) 01:10
ruoso backlogs 01:14
phenny ruoso: 18 May 22:50Z <BrowserUk> tell ruoso My first reaction is that it is better dealt with using something like: my @a = async{ map{...}, grep, <== $*IN }.join; As everything that comes out of the grep is going to end up passing through the map and end up in memory in @a anyway.
ruoso: 18 May 22:54Z <BrowserUk> tell ruoso the use-case I'm envisaging is a filtering a small subset of a large input. You save memory by filtering the input lazily, but after that--depending upon how lists are implemented-- you don't save much more cos it's all going to end up in @a anyway.
ruoso: 18 May 22:58Z <BrowserUk> tell ruoso If @a was assigned a placeholder promise, you can get on with other stuff while it runs, and only block when you access @a at some point later if it hasn't completed.
ruoso: 18 May 23:07Z <BrowserUk> tell ruoso And if IO primitives are set up as coroutines dispatched in the IO/Events thread, that allocate sharable buffers and post thread-chimeric handles to those buffers through queues, then the whole chain runs as quickly as the data can be read without sleeps, locks or polling.
colomon sorear: sorry, I keep forgetting tags on the blog. 01:17
however, I think all of my posts go up on planetsix anyway. 01:18
they just have the unhelpful label: "Solomon Foster: colomon" instead of an actual subject. 01:19
eternaleye rakudo: sub powerset( *@foo ) { my $max = 2 ** @foo.elems(); gather { for 0..$max -> $iteration { my @subset; for (+@foo)...0 -> $place { @subset.unshift( @foo[$place] ) if $iteration +& ( 1 +<< $place ) }; take( @subset ); }; }; }; .say for powerset( 1, 2, 3, 4 );
p6eval rakudo 980e03: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1696 (ext/nqp-rx/src/stage0/Regex-s0.pir:932)␤»
01:21 wknight8111 left
ruoso tell BrowserUK the problem happens in: "my @a <== map { cpu_bound_calculation($_) } <== grep { other_cpu_bound_calculation($_) } <== map { yet_another_cpu_bound_calculation($_) } <== $*IN" having all these in a single IO event threads is just going to make it clog 01:21
eternaleye std: sub powerset( *@foo ) { my $max = 2 ** @foo.elems(); gather { for 0..$max -> $iteration { my @subset; for (+@foo)...0 -> $place { @subset.unshift( @foo[$place] ) if $iteration +& ( 1 +<< $place ) }; take( @subset ); }; }; }; .say for powerset( 1, 2, 3, 4 );
p6eval std 30690: OUTPUT«===SORRY!===␤Unable to parse quote words at /tmp/Iz18OzBuew line 1:␤------> @foo[$place] ) if $iteration +& ( 1 +<<⏏ $place ) }; take( @subset ); }; }; }; .␤Couldn't find final '>'; gave up at /tmp/Iz18OzBuew line 1 (EOF):␤------> ; }; };
..…
ruoso phenny, tell BrowserUK irclog.perlgeek.de/perl6/2010-05-19#i_2344712 01:22
phenny ruoso: I'll pass that on when BrowserUK is around.
eternaleye rakudo: sub powerset( *@foo ) { my $max = 2 ** @foo.elems(); gather { for 0..$max -> $iteration { my @subset; for (+@foo)...0 -> $place { @subset.unshift( @foo[$place] ) if $iteration +& ( 1 +< $place ) }; take( @subset ); }; }; }; .say for powerset( 1, 2, 3, 4 );
p6eval rakudo 980e03: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
eternaleye std: sub powerset( *@foo ) { my $max = 2 ** @foo.elems(); gather { for 0..$max -> $iteration { my @subset; for (+@foo)...0 -> $place { @subset.unshift( @foo[$place] ) if $iteration +& ( 1 +< $place ) }; take( @subset ); }; }; }; .say for powerset( 1, 2, 3, 4 );
p6eval std 30690: OUTPUT«ok 00:01 114m␤»
ruoso but maybe we accept a hint from the user... 01:23
eternaleye rakudo: sub powerset( *@foo ) { my $max = 2 ** @foo.elems(); gather { for 0..$max -> $iteration { my @subset; for ((+@foo).Int)...0 -> $place { @subset.unshift( @foo[$place] ) if $iteration +& ( 1 +< $place ) }; take( @subset ); }; }; }; .say for powerset( 1, 2, 3, 4 );
p6eval rakudo 980e03: OUTPUT«␤1␤2␤12␤3␤13␤23␤123␤4␤14␤24␤124␤34␤134␤234␤1234␤␤»
eternaleye \o/
lue
.oO( 1 out of every 2 symbols on #perl6 is not alphanumeric. )
ruoso "use concurrency :optimize<IO>" vs "use concurrency :optimize<CPU>"
eternaleye rakudo: sub powerset( *@foo ) { my $max = 2 ** @foo.elems(); gather { for 0..$max -> $iteration { my @subset; for ((+@foo).Int)...0 -> $place { @subset.unshift( @foo[$place] ) if $iteration +& ( 1 +< $place ) }; take( @subset ); }; }; }; .Str.say for powerset( 1, 2, 3, 4 ); 01:24
p6eval rakudo 980e03: OUTPUT«␤1␤2␤1 2␤3␤1 3␤2 3␤1 2 3␤4␤1 4␤2 4␤1 2 4␤3 4␤1 3 4␤2 3 4␤1 2 3 4␤␤»
snarkyboojum colomon: spectest passed for parrot at rev 46771. Got my usual 9 failures in t/spec/S05-mass/properties-derived.t due to platform dependent unicode weirdness, but that's it.
colomon snarkyboojum++ 01:25
ruoso TimToady, what do you think about the idea of pragmas giving hints to the interpreter on what type of concurrency should be used for that code?
01:25 [mark] joined 01:26 TiMBuS joined
colomon snarkyboojum: you're sure that's the right rev? 01:28
snarkyboojum colomon: yes 2.4.0 -> r46771 01:29
colomon thanks
working on it now....
[Coke] sorear: ... i fail to see the breakage. we're just not aggregating the feeds you want. 01:34
[Coke] gives up on day 2 for now. 01:36
pugssvn r30691 | coke++ | Add tests for advent 2009 01:37
TimToady ruoso: pragmas are a little bit of a design smell, like adverbs on operators
colomon lue: I actually have four blogs, plus am co-blogger on three others. ;)
ruoso TimToady, hmmm... so how would you tell the interpreter it's better to do a simple event loop vs openning several kernel threads? 01:38
lue colomon: :( ) 01:40
ruoso (where doing an event loop means no locking at all, and different kernel threads would turn some variables into lock-aware shared values)
lue [jawdrop]
colomon advent2009-day01.t ++
lue would the advent calendar ideally be provided with Rakudo? 01:41
colomon lue: I don't know, but I'm highly in favor of the advent calendar code making it into the spectests.
01:43 ashleydev left
isBEKaml colomon: I could help. For example. some of the code in advent calendar doesn't even work at all. 01:44
colomon I'll be happy to help.
01:45 snarkyboojum left
lue And if not a spectest (for whatever reason), then a neat little [src]/examples folder :) 01:45
colomon at least for a little bit, hoping to get a blog post out and then head to bed. :)
isBEKaml colomon: Ok, I will work on that this evening
lue: we already have an examples folder in pugs repo ( lots of cruft from old code). Perhaps, you could try cleaning them up? ;) 01:46
[Coke] Let me check in all my placeholders. hang on. =) 01:47
pugssvn r30692 | coke++ | Add placeholders (with urls to the problems.) 01:49
isBEKaml lue: I was actually trying to get hangman.pl in examples/games/ to work with Rakudo. I have given up on that for now :) 01:50
lue I could try and help with the examples :) . Right now I'm trying to compile Blender 2.5, so after that headache passes, I'd be happy to help.
pugssvn r30693 | coke++ | Add works in progress for days 2 & 3. 01:52
[Coke] there. day 1 is done. 2 & 3 are partially done. 4-24 are just placeholders (with the URL to to the page.) I will not mind if anyone works on them in the meantime. 01:53
zzz 01:54
isBEKaml gotta get to work. have a good one, #perl6! :) 01:55
lue goodnight, [Coke] o/
isBEKaml goodnight, [Coke]
01:56 isBEKaml left 01:57 ashleydev joined, JimmyZ joined 01:59 snarkyboojum joined
dalek kudo: 248ae36 | (Solomon Foster)++ | build/PARROT_REVISION:
Bump parrot to 2.4.0. snarkyboojum++
02:09
colomon loliblogged: justrakudoit.wordpress.com/2010/05/...some-more/ 02:17
snarkyboojum colomon++ (always fun reading the core dev's blog posts) 02:18
02:35 nimiezko left
lue It was just "a bit of code" :) 02:38
02:38 zorgnax joined, ashleydev left 02:53 gfx joined
snarkyboojum rakudo: my @a = 2, 4, 6, 8; say @a»++; 03:01
p6eval rakudo 248ae3: OUTPUT«2468␤»
snarkyboojum rakudo: my @a = 2, 4, 6, 8; @a»++; say @a.perl
p6eval rakudo 248ae3: OUTPUT«[3, 5, 7, 9]␤»
03:09 zorgnax left 03:10 zorgnax joined 03:15 molaf joined
snarkyboojum had a bash at writing tests for integration/advent2009-day05.t (gist.github.com/405908) - I'm sure I'm breaking rules for good test writing in here, so advice/mentoring appreciated :) 03:17
eternaleye rakudo: my @a = 2, 4, 6, 8; say ++«@a; 03:18
p6eval rakudo 248ae3: OUTPUT«3579␤»
dalek meta: r273 | diakopter++ | trunk/Sprixel:
[perlesque] ignore *.user (*.csproj.user) files in the solution root
03:21
lue bash? Is that used in some form I'm unaware of, or did you just inadvertantly create a malamanteau? 03:22
03:23 patspam left
snarkyboojum lue: could be an australianism (not sure) 03:23
lue: "have a bash" = "have a go" :)
lue if only it were a portmanteau! It sounds like a malpropism and neologism (to me at least) 03:24
snarkyboojum it's not a portmanteau :P
03:25 agentzh joined
snarkyboojum who here has worn a Perl 6 tshirt in public :) 03:25
lue ~~ False 03:27
PerlJam doesn't own a Perl 6 t-shrut
er, t-shirt 03:28
snarkyboojum I don't either - thinking of buying one online somewhere though :) 03:30
PerlJam Do some exist?
lue yes, I think at cafepress. 03:31
PerlJam looks
lue (we need more designs though, IMO)
TimToady has worn a pugs shirt that sez Perl 6 on it
diakopter www.shutterfly.com/photo-gifts/appa...s/t-shirts 03:32
disclaimer: I may have owned shares at the time of that url paste 03:33
PerlJam A nice solid color shirt with a small Camelia where a pocket would normally go would be nice.
TimToady rakudo.spreadshirt.com/shop/designs
diakopter har 03:34
PerlJam still boggles that someone thought Camelia was a bee
snarkyboojum I like the "I'm a Second System" one 03:35
diakopter "I'm a Second System. So are you." 03:36
PerlJam I do too except for the negative connotations.
pugssvn r30694 | snarkyboojum++ | [t/spec/integration/advent2009-day05.t] Added inital tests for Perl 6 Advent Calendar Day 5: Metaoperators 03:39
snarkyboojum typos are annoying
TimToady www.cafepress.com/rakudo
lue I never got that. Either there's a perception filter or I'm just thick :)
[the second system thing] 03:40
TimToady www.zazzle.com/rakudo
first systems are catepillars
lue Oh! Duh! :D 03:41
snarkyboojum lol
TimToady and people think 2nd systems are ugly :) 03:42
s/cate/cater/
lue Last I remember, there was just the 楽土 and second system shirt.
snarkyboojum are we going to turn on these advent integration tests in spectest.data or wait for a while? 03:43
PerlJam TimToady: they *are* ... at least Fred Brooks' version anyway. Maybe we can get him to "bless" Perl 6 ;)
lue has received the urge to design P6 tshirts like it was no thing. 03:44
TimToady our slogan is "Second system syndrome done right!"
lue PerlJam: thanks for the shirt idea :)
PerlJam lue: mix the rakudo japanese motif with camelia too :)
snarkyboojum wow a rakudo tie - mind boggling :) 03:45
TimToady seems to me there were some that just had camelia on the pocket-ish, but I don't see 'em now 03:46
lue
.oO( Support Perl 6 — Promote Japanese ! )
PerlJam A long time ago the CS club at university made a t-shirt that had something like the front page to their website as the front of the shirt and the HTML code as the back of the shirt. I wonder if we could do something similar with Perl 6 ... Camelia on the front and excerpts of STD on the back
snarkyboojum PerlJam: I like that idea :) 03:47
lue me too.
_sri perl6 rsa dolphin anyone?
snarkyboojum bbl& 03:48
03:48 snarkyboojum left
k23z__ sorry, this may sound as a stupid question 03:48
_sri loves his dolphin and camel shirts
k23z__ but related to this www.perlmonks.org/?node_id=663393
"
Perl Cannot Be Parsed: A Formal Proof
by Jeffrey Kegler (Friar) "
lue considers a dummy P6 module About::Perl6 to function like Firefox's about:mozilla address
k23z__ can Perl6 be parsed ?
PerlJam k23z__: heh. Mostly :)
k23z__ PerlJam, you mean the parts that haven't been implemented can't be parsed yet right ? 03:49
sorear There;s a reference grammar for Perl6
it parses lots of stuff that hasn't been implemented
TimToady we can parse pretty close to all of it, if you don't get too fancy with macros
PerlJam I mean that we have proof that some of it can be parsed, but the parts that are vaguely imaginary still I have a hard time believing in their parsability. 03:50
sorear Actually right now Rakudo parses 99% of Perl 6
the code generator and support libraries need to catch up
TimToady in the sense that Jeffrey Kegler says it can't be parsed, it's not yet true of the STD grammar, because it can't evaluate code on the fly 03:51
but we plan to make it formally unparseable in the future :)
lue I thought rakudo was good at parsing tests (oh sorry, we don't use that kind of accent here ;) ) 03:52
PerlJam lue++ subtle :) 03:54
TimToady std: sub circumfix:<☃ ☄> ($x) {...}; say ☃ 42 ☄;
p6eval std 30693: OUTPUT«ok 00:01 118m␤»
TimToady see, STD can even to snowman/comet quoting now :)
*do
lue .intenseoO(SNOWMAN COMET!)
TimToady well, it's not quoting, they are treated like parens 03:55
JimmyZ rakudo: sub circumfix:<☃ ☄> ($x) {...}; say ☃ 42 ☄;
p6eval rakudo 248ae3: OUTPUT«error:imcc:syntax error, unexpected '\n'␤ in file 'EVAL_1' line 57␤syntax error ... somewhere␤current instr.: 'perl6;PCT;HLLCompiler;evalpmc' pc 987 (compilers/pct/src/PCT/HLLCompiler.pir:542)␤»
lue Perl 6: We take bugs and make them into butterflies 03:56
TimToady
.oO(butterflies with attitude)
03:57
03:57 skangas joined
PerlJam lue: excellent sentiment, though the wording seems a little much. How about "Perl 6: We turn bugs into butterflies"? 03:57
lue: that would make a good tag line for perl6.org too
03:58 snarkyboojum joined
TimToady you really, really don't want to cross Camelia, or she will suck all your nectar. 03:58
PerlJam wonders if O'Reilly would have a fit if we made an animation of a camel morphing into camelia 03:59
TimToady she has a 3 meter wingspan, and she's still young
lue PerlJam: The Copyright Infringement War Machine wouldn't be happy.
TimToady: _only_ 3m !?
TimToady I wouldn't touch a ten-foot butterfly with a ten-foot pole... 04:00
PerlJam and apparently hiding a large, sharp proboscus behind that nice smile
modulo my poor spelling :) 04:01
lue
.oO(It has bio-GPS-ence, which is why the Rakudo Death Star knows where she is!)
04:02
snarkyboojum we have a wedge-tail camelia for all intents and purposes
lue I want to put the P5 camel on a tshirt, but I guess that would go towards infringment :/ [for a know your japanese/P6 tshirt] 04:04
.oO(bless() you)
04:05
sorear TimToady: what's the snowman comet thing a reference to? 04:07
TimToady a rakudo bug that used to treat them as the same character when used in a quote 04:08
rakudo: say q☃hi☄; 04:09
p6eval rakudo 248ae3: OUTPUT«Confused at line 11, near "say q\u2603hi\u2604;"␤current instr.: 'perl6;HLL;Grammar;panic' pc 501 (ext/nqp-rx/src/stage0/HLL-s0.pir:327)␤»
TimToady I guess they fixed it :)
lue It was a day of mourning :(
TimToady alpha: say q☃hi☄;
p6eval alpha 30e0ed: OUTPUT«Confused at line 10, near "\u2603hi\u2604;"␤in Main (file <unknown>, line <unknown>)␤»
TimToady ah well
something on the order of only looking at the first byte of the utf8 04:10
lue I want to see back in some module, when R* comes out. 04:11
see *it* back
k23z__ how many prolog programmers does it take to change a lightbulb ? 04:12
no.
04:14 molaf left
diakopter std: how many perl 6 programmers does it take to change a lightbulb ? 04:15
p6eval std 30694: OUTPUT«===SORRY!===␤Confused at /tmp/W5gJJ7lfnS line 1:␤------> how many perl 6 ⏏programmers does it take to change a lig␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Undeclared routines:␤ 'how' used
..at line 1␤ '…
TimToady k23z__: are the prolog programmers allowed to use their LIPs?
04:16 justatheory joined
k23z__ Logical Inferences Per Second ? :) 04:17
TimToady they'd probably try to cut the old one...
not sure whether prolog knows how to unify the socket and the light bulb though 04:18
lue Use a ruby-tipped knife for that :)
eternaleye rakudo: sub infix:<ö> ( $lhs, $rhs ) { say "$lhs, $rhs, I can't decide!" }; 'operators', 'pollen' »ö« 'twigils', 'nectar'
p6eval rakudo 248ae3: OUTPUT«Could not find sub &infix:<ö>␤current instr.: '' pc -1 ((unknown file):-1)␤»
TimToady aw 04:19
eternaleye Drat
TimToady though hypers aren't list infixes
so you'd need parens there
eternaleye rakudo: sub infix:<ö>( $lhs, $rhs ) { say "$lhs, $rhs, I can't decide!" }; ('operators', 'pollen') »ö« ('twigils', 'nectar') 04:20
04:20 skangas left
p6eval rakudo 248ae3: OUTPUT«Could not find sub &infix:<ö>␤current instr.: '' pc -1 ((unknown file):-1)␤» 04:20
eternaleye is sad
TimToady still doesn't work with user-defineds, I guess
eternaleye rakudo: sub infix:<foo>( $lhs, $rhs ) { ... }; 1 foo 2; 04:21
p6eval rakudo 248ae3: ( no output )
eternaleye Just unicode, maybe
TimToady rakudo: sub postfix:<!> ($n) { [*] 1..$n }; say (1..10)>>!
eternaleye ISTR a similar bug in alpha way back when
p6eval rakudo 248ae3: OUTPUT«Could not find sub &postfix:<!>␤current instr.: '' pc -1 ((unknown file):-1)␤»
lue
.oO(the quest to create »ö«!)
TimToady seems to be a general problem with metaops
eternaleye Ah, hypers on user-defined ops
ESLOWTYPIST
TimToady std: sub postfix:<!> ($n) { [*] 1..$n }; say (1..10)>>!
p6eval std 30694: OUTPUT«ok 00:01 116m␤» 04:22
TimToady std: sub infix:<ö>( $lhs, $rhs ) { say "$lhs, $rhs, I can't decide!" }; ('operators', 'pollen') »ö« ('twigils', 'nectar')
p6eval std 30694: OUTPUT«ok 00:01 115m␤»
TimToady STD is fine with it
lue Funny. I can type an integral (∫), but not an o with an umlaut :/
TimToady ö really?
do you have a compose key?
here it's COMPOSE+o+" 04:23
lue I think I ditched that for apple's third level.
TimToady oh, well, *apple*...
lue Funny, I can type a circumflex with the third level, but not an umlaut :/
I'm running out of spare keys on my keyboard though! :)
compose+third level+3 button mouse emulation = ENOTENOUGHKEYS 04:24
TimToady under gnome CTRL+SHIFT+u f6 works 04:25
04:25 pencilk joined
lue You and gnome! [snooty upturned nose here] hmph! 04:26
:)
TimToady gnome's ain't pretty, but they're functional :)
s/'//
04:26 ashleydev joined
lue I have my Apple key for mouse button emulation, Ctrl+Space for japanese input, a spare keypad enter key for apple third level. 04:27
Despite their physical location, both alt's and ctrl's are considered L_ALT (and so on) unless I hold shift first.
TimToady compose keys are quite useful at times, especially when you want to say something like 42° 04:28
lue [I need more keyboard keys. Halp!]
TimToady I just wish I could reprogram my compose key with the vim digraphs
lue With a bit of patience and bravery, YOU TOO can delve into the X11 keymap system! 04:29
I had to a couple times just to get this hodge-podge setup going.
TimToady as soon as I added the compose key, I backed away carefully
lue is now wondering where to add a compose key to all this...
eternaleye lue: Caps lock. Its only use is annoying people normally. 04:30
lue I did that. But then it didn't work like it should. I would have to turn off the caps lock before next use :( 04:31
I think I'd have to get into Ctrl-Alt-Shift type setups at this point :P ...
eternaleye Huh. What OS & DE are you using? In KDE, using the convenient dialog in the keyboard settings works perfectly
Scroll lock is a good option too, nobody ever uses it 04:32
lue I use a Mac laptop running Fedora/KDE.
TimToady he's got one of those Steve Jobs specials
lue I don't have a scroll lock :(
The dedicated keypad enter key right by space was lucky for me :) 04:33
TimToady bet it didn't come with any extra mouse buttons either
lue that's where the Apple key is gone (and fn+Apple)
04:33 ashleydev left
lue [Meta for me is option] 04:33
TimToady if your'e running KDE I'm sure you can find some keyboard setting that'll get you a compose key 04:34
might have to give up Q though :)
lue maybe fn+Enter for the compose key... [evil smile] 04:35
[look of fear, realizing the need to go back into the X11 keymap system]
TimToady: I have spent more time at that excuse for a keyboard setup dialog than you would believe :)
TimToady but think how easy it will become to type « and »
lue I can do that already with third-level! enter+\ and shift+enter+|
TimToady undoubtedly you have to edit a file somewhere 04:36
lue That endeavor was not fun. I shudder at the thought of going back.
TimToady that's very...mnemonicn't.
lue Just like Visual BASIC :D
TimToady and ¢ is just COMPOSE c/ 04:37
I use that one all the time in STD
lue The third level lets me type cedilles, circumflexes, graves, accents, tildes (ñ) and other diacritic marks.
Just not an umlaut (grrr) 04:38
TimToady what does " give you?
lue Æ
[shift+third-level+"]
TimToady how..useful
lue I know. I cycled through my whole keyboard several times. 04:39
The first time, I thought for sure the " would give me an umlaut.
TimToady interesting, I can get an umlaut all by itself by typing COMPOSE "" 04:40
lue I got to go into the keyboard echo thing, and see if there's a difference between Apple, Shift+Apple, and fn+Apple
TimToady have the appropriate amount of -Ofun
TimToady wanders off & 04:41
04:41 ashleydev joined
lue -Ofun -j$MAX -sarcasm="high" 04:41
eternaleye lue: zsh tabcompletes keysyms for xmodmap 04:44
lue never heard of that. Just past that direct into my shell? 04:45
*paste
Tene TimToady: you can just use a .XCompose file. 04:48
eternaleye lue: zsh is a shell
Tene TimToady: github.com/kragen/xcompose is an example.
04:49 kfo left
eternaleye running zsh, I can go 'xmodmap keysym Cap<TAB> = Multi_key' 04:49
And it'll map capslock
To compose
Then again, you can type out Caps_lock
lue Ah.
I'm too lazy to change shells though :P I'm not even sure I _have_ zsh. 04:50
eternaleye lue: MacPorts is your friend! 04:53
lue: xmodmap isn't a zsh thing, though, Just the tab completion 04:54
dalek meta: r274 | diakopter++ | trunk/Sprixel/src/Grammar/Grammar.cs:
[perlesque] lots o' progress on classes/methods
04:55
lue wonders if MacPorts is for linux; again, never heard of it :)
sorear if you have OS X, you have zsh 04:56
it's the default shell
04:56 kfo joined
sorear however, zsh and xmodmap have nothing to do with each other 04:56
eternaleye sorear: Huh, I thought bash was the default. Anyway, he's running fedora on mach hardware
*mac 04:57
snarkyboojum default shell on os x is bash
but yes, zsh is installed by default (at least on my 10.6 install)
lue It's a gnu 21-century way of bash-ing things :)
eternaleye lue: Anyway, in KDE it's under keyboard layout/language -> advanced tab -> scroll down to 'compose key position' -> first checkbox 04:58
Sets caps lock to compose, no side effects here
sorear snarkyboojum: was it always that way? Back when I used 10.2, ISTR zsh being default 04:59
lue For some reason for me, however, it seemed like I had to turn off caps lock before using the compose function again. I have to check again though. 05:00
snarkyboojum sorear: I think since 10.3
05:00 justatheory left 05:01 gpw left
lue (btw, the Xorg wiki is awful, at least for keyboard stuff) 05:01
eternaleye lue: What version of libxklavier is installed? I seem to remember that those options don't work when you have >=5.0 unless you're running KDE from SVN
(that was a fun bug to figure out for myself) 05:02
lue I'll have to check [just a second]
version 4 05:08
eternaleye Hm, should work then 05:10
lue I'll have to check later. Thanks anyway!
05:13 yinyin left 05:14 yinyin joined 05:16 pencilk left
dalek meta: r275 | diakopter++ | trunk/Sprixel/ (4 files):
[perlesque] more classes/methods progress
05:19
05:21 kaare joined 05:22 kaare is now known as Guest22250, ejs joined 05:38 jhuni left 05:42 Guest22250 is now known as kaare_ 05:46 uniejo joined
snarkyboojum rakudo: say ((0, pi/4, pi/2, 2*pi)>>.sin).perl 05:51
p6eval rakudo 248ae3: OUTPUT«(0, 0.707106781186547, 1, -2.44929359829471e-16)␤»
snarkyboojum rakudo: use Test; is ((0, pi/4, pi/2, 2*pi)>>.sin), [0, 0.707106781186547, 1, 1.22464679914735e-16, -2.44929359829471e-16], 'Hyperoperator used to call .sin on each list element';
p6eval rakudo 248ae3: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are:␤:(Int $a, Int $b)␤␤current instr.: 'perl6;Rat;new' pc 488403 (src/gen/core.pir:69988)␤»
moritz_ good morning 05:52
snarkyboojum I can't work out why that test is failing
moritz_: o/
moritz_ rakudo: say -2.44929359829471e-16
p6eval rakudo 248ae3: OUTPUT«-2.44929359829471e-16␤»
moritz_ rakudo: say 0.707106781186547
p6eval rakudo 248ae3: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are:␤:(Int $a, Int $b)␤␤current instr.: 'perl6;Rat;new' pc 488403 (src/gen/core.pir:69988)␤»
moritz_ rakudo: say 0.707106781186547e0
p6eval rakudo 248ae3: OUTPUT«0.707106781186547␤»
snarkyboojum oh
diakopter whee. 05:53
snarkyboojum moritz_: why is that?
diakopter classes/methods working
moritz_ snarkyboojum: because decimal fractions are stored as Rat objects internally, and that conversion fails when the numerator or denominator get too large 05:54
snarkyboojum: and rakudo doesn't support bigints yet 05:55
snarkyboojum moritz_: ok - thanks
an attempt at writing tests for t/spec/integration/advent2009-day06.t (gist.github.com/406003) 05:56
probably making the same mistakes as I made in t/spec/integration/advent2009-day05.t 05:57
so fire away :)
moritz_ snarkyboojum: looks good... except that you really shouldn't compare floating point numbers for equality 05:58
snarkyboojum moritz_: right - how to do that test then?
moritz_ snarkyboojum: rather assign the result to an array, and use is_approx @a[0], 0
snarkyboojum moritz_: ah ok - will have a play 05:59
moritz_ is_approx @a[1], sqrt(2);
06:03 Exodist_ is now known as Exodist
patrickas hello perlsixers 06:03
moritz_ oh hai
patrickas: I'm currrently spectesting your patch
patrickas moritz_ great thx, I have never been so excited about three lines of code :-) 06:05
moritz_ :-) 06:06
Tene patrickas: which three lines are these? 06:09
moritz_ snarkyboojum: also is ([<=] @a), True, is better written as ok ([<=] @a)
snarkyboojum moritz_: cheers :) 06:10
moritz_ and is ..., False better written as nok ...
snarkyboojum ok
moritz_: thanks v. much
moritz_ (but these are really only minor points; snarkyboojum++ for attacking the whole thing in the first place)
snarkyboojum I was hoping I'd learn the finer points of crafting tests, so moritz_++ :) 06:11
patrickas Tene: method list() {return self.pairs;} 06:12
and is( (map { .WHAT } , {"a"=> 1 , "b"=>2}).join(' ') , 'Pair() Pair()' , 'Hashes become pairs in list context');
:-)
dalek meta: r276 | diakopter++ | trunk/Sprixel/ (6 files):
[perlesque] classes, attributes, methods working. class predeclaration is NYI
06:17
moritz_ patrickas: is that already in a test file somewhere?
diakopter perlesque: class Foo { has int $a; method Bar (--> int) { say('in Bar ' ~ (self.a)); return self.a } }; my $blue = Foo.new(); say($blue.Bar()); say($blue.a); $blue.a = 5; say($blue.Bar()); say($blue.a) 06:19
p6eval perlesque: OUTPUT«in Bar 0␤0␤0␤in Bar 5␤5␤5␤»
diakopter perlesquel: .
p6eval perlesquel: OUTPUT«in Bar 0␤0␤0␤in Bar 5␤5␤5␤real 0.04␤user 0.04␤sys 0.01␤»
diakopter whee.
phenny: tell pmurias sorry for the delay. classes, attributes, methods working now. 06:20
phenny diakopter: I'll pass that on when pmurias is around.
dalek kudo: c4de1a7 | (Patrick Abi Salloum)++ | src/core/Hash.pm:
Hash in list context behaves like a list of pairs
patrickas moritz_: I don't think so .... that's why I sent the patch and the test .... I don't have commit bit to the test repos to add it 06:21
diakopter he
moritz_ patrickas: time to change that...
diakopter h
sorear hugme: add patrickas to pugs
hugme sorear: sorry, you don't have permissions to change 'pugs'
sorear I thought all pugs committers could add committers?
moritz_ sorear: yes, but not via hugme 06:22
sorear or does hugme just not know that?
moritz_ sorear: commitbit.pugscode.org/admin/project/Pugs/people
hugme: add patrickas,patrick.abisalloum@gmail.com to pugs
hugme hugs patrickas. If all goes well you'll get an email soon
moritz_ patrickas: there you go :-)
patrickas thx :-)
06:26 PZt left
patrickas got the mail but we might need to fix the link, for some reason it is pointing to port 6666 instead of port 80 ... 06:27
moritz_ huh.
patrickas: anyway, welcome to pugs. Please add yourself to AUTHORS in the first commit, as is custom 06:28
snarkyboojum moritz_: do I have the is_approx() usage wrong here? fwiw, is() works - gist.github.com/406003 06:32
doh - I need to lose the parens 06:33
06:33 ashleydev left
snarkyboojum moritz_: updated the gist - does that approach look better? 06:33
pugssvn r30695 | jimmy++ | add myself to AUTHORS 06:38
06:38 Su-Shee joined
pugssvn r30696 | snarkyboojum++ | [t/spec/integration/advent2009-day05.t] Updated tests with feedback from moritz_++ 06:40
sorear patrickas: you are "jimmy"? 06:43
patrickas no ... I am ... having problems :-)
JimmyZ :) 06:44
pugssvn r30697 | snarkyboojum++ | [t/spec/integration/advent2009-day06.t] Initial tests for Perl 6 Advent Calendar Day 6: Going Into Hyperspace 06:45
patrickas for some reason TortoiseSVN is giving me: Server sent unexpected return value (400 Bad Request) in response to MKACTIVITY 06:46
moritz_ patrickas: which svn url do you use? 06:47
svn.pugscode.org/pugs should work
patrickas svn.pugscode.org/pugs/
moritz_ "huh"
patrickas: are you behind a firewall or proxy? 06:48
patrickas I was able to check out ... but not commit
moritz_: yes ... and a nasty one
moritz_ :(
that might be the cause
patrickas i't ok
I'll do it form work ...
moritz_ because svn is really just http, and it uses other commands than GET and POST 06:49
which many firewalls block
patrickas or I'll setup a tunnel later (I'm kind of used to this crap from my provider)
moritz_ 32224 passing tests, btw
snarkyboojum moritz_: add a few more when we add the advent tests to spectest.data :) 06:50
patrickas moritz_: whoa! someone should really be updating rakudo.de !
moritz_ patrickas: it is automatically updated as soon as docs/spectest-progress.csv is updated 06:51
06:51 gfx left 06:52 ejs left
patrickas moritz_: whoa! someone should really be updating docs/spectest-progress.csv ! :-) 06:52
snarkyboojum and docs/spectest-progress.csv (at least the checked in version) is almost a month out of date :)
moritz_ :-)
06:53 Bzek joined
snarkyboojum patrickas: pmichaud was generating them on his laptop last I heard (read) 06:53
pugssvn r30698 | patrickas++ | First traditional commit to AUTHORS 06:55
r30699 | moritz++ | [t/spec] another test for :nth, :x and :overlap on .match 06:58
dalek kudo: d4bb7b2 | moritz++ | docs/ChangeLog:
[docs] add some entries to ChangeLog
06:59
07:00 ashleydev joined
sorear according to p6c, snarkyboojum just committed tests for RT#6 07:00
snarkyboojum sorear: yeah - what's that all about? 07:01
have I mucked something up? :|
moritz_ snarkyboojum: not you, the mailing script
snarkyboojum I hope so :) 07:02
moritz_ rakudo: say {foo => 1, bar => 2}.fmt 07:04
p6eval rakudo c4de1a: OUTPUT«bar 2␤foo 1␤»
pugssvn r30700 | patrickas++ | test for: Hashes become pairs in list context 07:05
patrickas ok I commited! I think I'll celebrate by going to work ;-)
thx moritz_ 07:06
moritz_ patrickas++ 07:08
07:08 viklund joined
pugssvn r30701 | moritz++ | [t/spec] advent day 2: add plan, handle random hash order 07:09
07:09 iblechbot joined
snarkyboojum phenny, tell [Coke] - followed your example and added some tests for the Perl 6 Advent stuff (days 5 and 6) 07:11
phenny snarkyboojum: I'll pass that on when [Coke] is around.
moritz_ phenny: tell [Coke] that it's fine to add failing, unfudged tests to the pugs repo as long as they are in new files - rakudo whitelists which of them are run 07:12
phenny moritz_: I'll pass that on when [Coke] is around.
07:16 patrickas left
pugssvn r30702 | moritz++ | [t/spec] fix up advent-03 tests 07:17
r30703 | moritz++ | [t/spec] day 4 advent calendar tests 07:20
moritz_ and [Coke]++ for the tests and stubs in the first place :-) 07:23
07:24 bbkr left
dalek kudo: 643442b | moritz++ | t/spectest.data:
run a few of the new advent calendar integration tests
07:24
07:24 bbkr joined 07:25 plobsing_ joined, plobsing left 07:29 PZt joined 07:32 rgrau joined 07:33 meppl joined 07:34 ejs joined 07:38 cosimo left, ejs left 07:39 ejs joined, IllvilJa joined 07:42 cosimo joined
lisppaste3 moritz_ pasted "week 3 challenge previes - feedback welcome" at paste.lisp.org/display/99446 07:55
moritz_ *preview
07:58 Bzek left
snarkyboojum I'm getting up to 3 different perl6 processes spawned during a spectest run now - using all cpus pretty nicely 08:01
moritz_ you can control that with the TEST_JOBS environment variable 08:02
snarkyboojum moritz_: thanks - didn't know that
also t/spec/integration/advent2009-day02.t is failing 08:03
mathw moritz_: that looks... entertaining :)
moritz_ mathw: is that good or bad?
mathw Probably good
It looks like the kind of thing I could either do, or get very frustrated by :)
moritz_ mathw: if you start to get frustrated, you can always ask here 08:04
mathw Of course 08:07
I'll think about it
I'm very busy this week though, so someone else might have already done it
pugssvn r30704 | snarkyboojum++ | [t/spec/integration/advent2009-day02.t] Fixed missed end quote
r30705 | snarkyboojum++ | [t/spec/integration/advent2009-day05.t] Added done_testing and cleanup 08:13
moritz_ snarkyboojum: no need for done_testing if you have planned with a defined number of tests in the first place 08:15
snarkyboojum oops
there's another one coming :|
moritz_ snarkyboojum: that's only needed when plan *; was used
more karma for you :-)
snarkyboojum moritz_: ok - apologies for the commit spam then :P
moritz_ 's first commit to the test suite screwed up some plans too
snarkyboojum: no problem
pugssvn r30706 | snarkyboojum++ | [t/spec/integration/advent2009-day06.t] Added done_testing 08:16
sorear you aren't really a committer until you've broken the build at least once 08:17
moritz_ :-)
sorear agh. *gently curses TimToady for depriving me of a perfectly good inductive base case* 08:18
you can't have a regex with 0 tokens
08:19 IllvilJa left 08:32 ashleydev left
moritz_ rakudo: say pir::gcd__iii(15, 25) 08:37
p6eval rakudo c4de1a: OUTPUT«5␤»
Gothmog_ sorear: Just prove what you want to for the legal regexes, PLUS the regex with 0 tokens; you've then showed it for a more general case, and it's especially valid for the legal regexes. 08:38
snarkyboojum gcd pir op! :O 08:40
moritz_ snarkyboojum: aye, just found that by idling on #parrot
snarkyboojum ah, yes :) 08:41
moritz_ I'm spectesting now with the Perl 6 implementation replaced by the PIR opcode
and will compare times
08:41 meteorjay left 08:42 meteorjay joined
snarkyboojum there's also lcm, factorial, coversine, exsecant... - obscure.ops :) 08:43
interesting :)
moritz_ lcm? 08:44
snarkyboojum lowest common multiple
moritz_ ah
snarkyboojum having a look at trac.parrot.org/parrot/browser/trun...bscure.ops 08:45
dalek kudo: 5ec28d3 | moritz++ | src/core/Rat.pm:
replace hand-rolled gcd function by PIR gcd opcode

After the release (and bumping the parrot revision) this will require
  .loadlib 'obscure_ops'
09:18
09:25 pencilk joined 09:34 ejs left 09:36 PZt left 09:37 pencilk left
jnthn dexito/ 09:38
09:39 k23z__ left
jnthn er, o/ 09:39
:-)
09:40 plobsing_ left, k23z__ joined
cognominal \o 09:40
09:41 ejs joined, dakkar joined
moritz_ good morning 09:43
perlgeek.de/blog-en/perl-6/contribu...n-sub.html
09:45 clintongormley joined, yinyin left
colomon o/ 09:53
gcd opcode?!? 09:55
moritz_++ 09:56
jnthn thought that had been removed from Parrot loooong ago! 09:58
09:58 pencilk joined 09:59 kst``` left 10:01 lestrrat is now known as lest_away 10:12 colomon left, jaldhar_ left 10:13 yahooooo left, jaldhar_ joined, simcop2387 left 10:14 simcop2387 joined 10:15 yahooooo joined 10:17 BrowserUk joined
BrowserUk ? 10:17
phenny BrowserUk: 01:22Z <ruoso> tell BrowserUk irclog.perlgeek.de/perl6/2010-05-19#i_2344712
BrowserUk ruoso: If you have two cpu bound calculations to run on each input, there is no point in threading the IO. 10:20
ruoso: And in your example, the two cpu-bound calculations have to be performed serially upon each input (or surviving filtration thereof), so there's no scope for concurrency there either. 10:22
pugssvn r30707 | colomon++ | [t/spec] Remove unneeded fudging and cruft. 10:24
BrowserUk So, a simple (with apologies for lack of familiarity with P6 syntax) my @a; for my $in =$*IN { if( my $filtered = cpuBound1( $in ) ) { push @a = cpuBound2( $filtered ) } } is as good as it gets. 10:26
ruoso: There no point trying to cater for concurrency in scenarios where there's no benefit to be had. 10:27
ruoso: (*and apologies for the typos also :) ) 10:28
10:28 jaldhar_ left
BrowserUk ruoso: I think that it is time to ask for and write down as many concurrency use-cases as we can get and try to categorise them. And then work through the requirements/implications. 10:38
10:40 ruoso left 10:43 JimmyZ left 10:54 lest_away is now known as lestrrat
BrowserUk ruoso: But then again :), there *is* some scope for overlapping cpuBound2( input_N ), with cpuBound1( input_N+1 ). Especially if cpuBound1( ) is quicker than cpuBound2() but filters its inputs. Eg. cpuBound1() might process 10 or 100 of it's inputs for each output, that cpuBound2() spends much longer processing. Hm. 10:55
10:56 jferrero joined, dakkar left 11:05 mikehh joined 11:17 iblechbot left 11:18 dakkar joined 11:20 colomon joined
colomon moritz_++'s contribution for the week is so much better than my suggestion.... 11:20
colomon is pleased with all the workarounds in Complex.roots that he can eliminate now. 11:21
moritz_ rakudo: class A { has $.foo }; say A.^methods(:local)».name 11:22
p6eval rakudo 5ec28d: OUTPUT«accessor_helper_ro␤»
moritz_ submits rakudobug 11:23
11:23 rv2733 joined
moritz_ rakudo: class A { has $.foo is rw }; say A.^methods(:local)».name 11:23
p6eval rakudo 5ec28d: OUTPUT«accessor_helper_rw␤»
11:24 masonkramer joined
colomon 32299 passing tests 11:25
moritz_ rakudo: class A { }; A.add_method(A, 'foo', sub bar($self) { say $self }); A.new.bar
p6eval rakudo 5ec28d: OUTPUT«Method 'add_method' not found for invocant of class ''␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
moritz_ rakudo: class A { }; A.^add_method('foo', sub bar($self) { say $self }); A.new.bar
p6eval rakudo 5ec28d: OUTPUT«Method 'bar' not found for invocant of class 'A'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
moritz_ rakudo: class A { }; A.^add_method('foo', sub bar($self) { say $self }); A.new.foo
p6eval rakudo 5ec28d: OUTPUT«A()<0x41bd690>␤»
pugssvn r30708 | colomon++ | [t/spec] Test Rat.root and Num.root. 11:26
moritz_ npq: sub A { }; say &A.WHAT
nqp: sub A { }; say(&A.WHAT) 11:27
p6eval nqp: OUTPUT«Routine declaration requires a signature at line 1, near "{ }; say(&"␤current instr.: 'parrot;HLL;Grammar;panic' pc 501 (src/cheats/hll-grammar.pir:196)␤»
moritz_ nqp: sub A() { }; say(&A.WHAT)
p6eval nqp: OUTPUT«Symbol '&A' not predeclared in <anonymous>␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
moritz_ nqp: sub A() { }; say(A.WHAT)
p6eval nqp: OUTPUT«Method 'WHAT' not found for invocant of class 'Sub'␤current instr.: '_block11' pc 0 (EVAL_1:8202660)␤»
dalek kudo: 77c58c2 | (Solomon Foster)++ | src/core/Complex.pm:
Rework Complex.roots a bit, restoring its original elegance. (It had been
11:29
kudo: 3a694dd | (Solomon Foster)++ | src/core/ (4 files):
Change Complex.roots to take an Int as spec'd, and make it a normal method

unneeded Int.Complex and Num.Complex. Clean up Real.unpolar now that cheats are unneeded.
11:30 envi^home joined
moritz_ nqp: my $x := sub f() { }; say($x) 11:37
p6eval nqp: OUTPUT«f␤»
moritz_ nqp: my $x := sub f() { }; pir::set_string_native__vPs($x, 'bar'); say($x) 11:38
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P20')␤ in file 'EVAL_1' line 15␤syntax error ... somewhere␤current instr.: 'parrot;PCT;HLLCompiler;evalpmc' pc 987 (compilers/pct/src/PCT/HLLCompiler.pir:542)␤»
moritz_ nqp: my $x := sub f() { }; Q:PIR { $P0 = find_lex 'f'␤$S0 = 'bar'␤$P0 = $S0}; say($x) 11:39
p6eval nqp: OUTPUT«bar␤»
moritz_ nqp: my $x := sub f() { }; pir::set_ps($x, 'foo'); say($x) 11:41
p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P20')␤ in file 'EVAL_1' line 17␤syntax error ... somewhere␤current instr.: 'parrot;PCT;HLLCompiler;evalpmc' pc 987 (compilers/pct/src/PCT/HLLCompiler.pir:542)␤»
moritz_ 13:41 <@moritz_> nqp: my $x := sub f() { }; pir::set__ps($x, 'foo'); say($x) 11:42
11:42 quester_ joined
moritz_ nqp: my $x := sub f() { }; pir::set__ps($x, 'foo'); say($x) 11:42
p6eval nqp: OUTPUT«The opcode 'set_p_s_sc' (set<3>) was not found. Check the type and number of the arguments␤current instr.: 'parrot;PCT;HLLCompiler;evalpmc' pc 987 (compilers/pct/src/PCT/HLLCompiler.pir:542)␤»
11:43 agentzh left
quester_ rakudo: sub infix:<ö>( $lhs, $rhs ) { say "$lhs, $rhs, I can't decide!" }; ('operators', 'pollen') »ö« ('twigils', 'nectar') 11:48
p6eval rakudo 5ec28d: OUTPUT«Could not find sub &infix:<ö>␤current instr.: '' pc -1 ((unknown file):-1)␤»
quester_ rakudo: our sub infix:<ö>( $lhs, $rhs ) { say "$lhs, $rhs, I can't decide!" }; ('operators', 'pollen') »ö« ('twigils', 'nectar')
p6eval rakudo 5ec28d: OUTPUT«operators, twigils, I can't decide!␤pollen, nectar, I can't decide!␤»
snarkyboojum rakudo: say "Perl 6 Advent".comb(/<alpha>/); 11:52
p6eval rakudo 5ec28d: OUTPUT«Cannot take substr outside string␤current instr.: 'perl6;Regex;Cursor;alpha' pc 1506 (ext/nqp-rx/src/stage0/Regex-s0.pir:872)␤»
snarkyboojum alpha: say "Perl 6 Advent".comb(/<alpha>/);
p6eval alpha 30e0ed: OUTPUT«PerlAdvent␤»
quester_ phenny: tell eternaleye The only problem with your definition of the Camellia metaop »ö« is that you have to declare "our sub infix:<ö>" and not just "sub infix:<ö>".
phenny quester_: I'll pass that on when eternaleye is around.
snarkyboojum is that a known bug? 11:53
I should have a look shouldn't I :) 11:54
quester_ snarkyboojum: I'm not sure if it's a bug or if there is some reason that metaops have to be global.
snarkyboojum quester_: sorry - was referring to the comb error above 11:55
quester_ snarkyboojum: Oops! Sorry...!
bacek nqp: my $x := sub f() { }; pir::set__vps($x, 'foo'); say($x)
p6eval nqp: OUTPUT«foo␤»
bacek moritz_, see 11:56
moritz_ ah! 12:01
12:02 rv2733 left 12:04 PZt joined
pugssvn r30709 | moritz++ | [t/spec] integration tests for day 11 advent 12:06
r30710 | moritz++ | [t/spec] add a marker for RT #75180 12:08
12:11 [mark] left
dalek kudo: 603c64c | moritz++ | (2 files):
fix RT #75180, accessors appear under wrong name in introspection
12:14
[Coke] backscrolls and guesses he's going to need to buy a tshirt before yapc. 12:15
phenny [Coke]: 07:11Z <snarkyboojum> tell [Coke] - followed your example and added some tests for the Perl 6 Advent stuff (days 5 and 6)
[Coke]: 07:12Z <moritz_> tell [Coke] that it's fine to add failing, unfudged tests to the pugs repo as long as they are in new files - rakudo whitelists which of them are run
colomon [Coke]: what's that about a t-shirt? 12:17
(and do you mean yapc:na?)
12:20 ruoso joined
[Coke] dev.pugscode.org/wiki/ seems to be dead. (linked to from perlcabal.org) 12:21
ruoso BrowserUk, but if there are two CPU bound operations that could be paralellized and the IO produces faster then the CPU bound operations process, then threading would be the best choice 12:23
12:23 quester_ left
ruoso i.e.: @a <== map { expensive_operation_1($_) } <== map { expensive_operation_2($_) } <== $*IN 12:24
ruoso meant "kernel therading would be the best choice" -- considering a multicore system 12:25
[Coke] finds that he can fix the web site. fixing... 12:26
ruoso quite convinced that we could have some sort of hint so the interpreter can know which is the best strategy for a given code... 12:28
12:30 takadonet joined
takadonet morning all 12:30
12:32 iblechbot joined
pugssvn r30711 | coke++ | fix HTML validation errorswq 12:34
[Coke] /usr/local/bin/perl6 on feather blows up, missing a libparrot. 12:40
12:44 sahadev joined
pugssvn r30712 | coke++ | Add links to rakudo, perl6, and the pugs svn browser. 12:46
12:47 nimiezko joined, nimiezko left, nimiezko joined 12:48 nimiezko left, nimiezko joined, nimiezko left, nimiezko joined, nimiezko left 12:51 M_o_C joined
moritz_ jnthn: if you look at 603c64c, I wonder if that was actually the right fix 13:02
jnthn: or if .add_method should do the cloning + name assigning 13:03
jnthn: or if the introspection should look at the names with which the methods were added to the method table, not the internal names stored in the Sub
[Coke] phenny: tell Su-Shee about search.cpan.org/perldoc?Moose::Cookbook
phenny [Coke]: I'll pass that on when Su-Shee is around.
colomon rakudo: -4.roots.perl.say 13:09
p6eval rakudo 5ec28d: OUTPUT«No applicable candidates found to dispatch to for 'roots'. Available candidates are:␤:(Mu : Any $n;; *%_)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
sahadev rakudo: my @r = (1, 2, 3); @r>>++; @r.perl.say
colomon rakudo: -4.roots(2).perl.say
p6eval rakudo 5ec28d: OUTPUT«[2, 3, 4]␤»
rakudo 5ec28d: OUTPUT«(Complex.new(2, 0), Complex.new(-2, -5.82864638634609e-11))␤»
sahadev rakudo: my @r = (1, 2, 3); try { @r>>++ }; @r.perl.say
p6eval rakudo 5ec28d: OUTPUT«[2, 3, 4]␤»
colomon alpha: -4.roots(2).perl.say 13:10
p6eval alpha 30e0ed: OUTPUT«[Complex.new(2, 0), Complex.new(-2, 2.44929359829471e-16)]␤»
Su-Shee [Coke]: I'm not that stupid, thank you. ;)
phenny Su-Shee: 13:03Z <[Coke]> tell Su-Shee about search.cpan.org/perldoc?Moose::Cookbook
colomon quite the bug in roots there.... 13:11
[Coke] Su-Shee: I was reading your blog post and saw moose-related pain. just trying to help.
moritz_ colomon: you call -(4.roots...)
colomon you can't apply - to a list, can you? 13:12
[Coke] (also, a lot of that work was done under a TPF grant, so I want to make sure people know about it). No offense intended.
colomon rakudo: say -(1, 2)
moritz_ colomon: sure you can, just as you can +
p6eval rakudo 5ec28d: OUTPUT«-2␤»
moritz_ it returns the number of elements
Su-Shee [Coke]: I'm seriously lost for words. 13:13
colomon rakudo: (-4).roots(2).perl.say
p6eval rakudo 5ec28d: OUTPUT«(Complex.new(1.22464679914735e-16, 2), Complex.new(5.82854532203613e-11, -2))␤»
13:13 bluescreen joined
colomon is utterly mystified.... 13:14
rakudo: (-4).roots(4).perl.say
p6eval rakudo 5ec28d: OUTPUT«(Complex.new(1, 1), Complex.new(-1.00000000001457, 0.999999999985429), Complex.new(-0.999999999970857, -1.00000000002914), Complex.new(1.00000000004372, -0.999999999956285))␤»
13:14 bluescreen is now known as Guest78801
moritz_ colomon: what's wrong? 13:14
colomon oh, I see.
-4.roots(2).perl.say is -(4.roots(2).perl.say) 13:15
oy vey
moritz_ yes
colomon rakudo: say (1 + 1i) ** 4
moritz_ and say() actually returns a Bool
p6eval rakudo 5ec28d: OUTPUT«-4 + 4.89858719658941e-16i␤»
13:16 kaare_ left
colomon rakudo: say -3.14 ** .25 13:17
p6eval rakudo 5ec28d: OUTPUT«-1.33116659914037␤»
hejki rakudo: say Pi ** 1/4
p6eval rakudo 5ec28d: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
moritz_ rakudo: say pi ** (1/4)
p6eval rakudo 5ec28d: OUTPUT«1.33133536380039␤»
hejki ahh
rakudo: say pi/4
p6eval rakudo 5ec28d: OUTPUT«0.785398163397448␤»
moritz_ rakudo: say Pi.WHAT
p6eval rakudo 5ec28d: OUTPUT«Could not find sub &Pi␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
moritz_ wher did the "class 'Block'" come from the in the error message above? 13:18
colomon rakudo: say (-3.14) ** .25
p6eval rakudo 5ec28d: OUTPUT«NaN␤»
colomon one day I will learn....
moritz_ about precedence? :-)
colomon rakudo: say -3.14.Complex ** .25
p6eval rakudo 5ec28d: OUTPUT«Method 'Complex' not found for invocant of class 'Rat'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
snarkyboojum alpha: say "5065726C36".comb(/<xdigit>**2/).map: { chr '0x' ~ $_ } ; 13:19
p6eval alpha 30e0ed: OUTPUT«Perl6␤»
[Coke] briefly tries to puzzle out what he did wrong there and fails miserably.
colomon my latest patch hasn't reached p6eval yet, I see
moritz_ rakudo: say "5065726C36".comb(/<xdigit>**2/).map: { :16($_) }
p6eval rakudo 5ec28d: OUTPUT«8010111410854␤»
moritz_ rakudo: say "5065726C36".comb(/<xdigit>**2/).map: { chr :16($_) }
p6eval rakudo 5ec28d: OUTPUT«Perl6␤»
moritz_ rakudo: say "5065726C2036".comb(/<xdigit>**2/).map: { chr :16($_) } 13:20
p6eval rakudo 5ec28d: OUTPUT«Perl 6␤»
moritz_ rakudo: say "5065726C2036".comb(/<xdigit>**2/).map: {:16($_).char }
p6eval rakudo 5ec28d: OUTPUT«Method 'char' not found for invocant of class 'Num'␤current instr.: '_block58' pc 625 (EVAL_1:22821520)␤»
moritz_ rakudo: say "5065726C2036".comb(/<xdigit>**2/).map: {:16($_).chr }
p6eval rakudo 5ec28d: OUTPUT«Perl 6␤»
snarkyboojum should I be changing that example from day 8 then or leaving it as a fail 13:21
moritz_ snarkyboojum: what fails? 13:22
snarkyboojum rakudo: say "5065726C36".comb(/<xdigit>**2/).map: { chr '0x' ~ $_ } ;
p6eval rakudo 5ec28d: OUTPUT«Perl6␤»
snarkyboojum oh
:)
well this one does 13:23
rakudo: say "5065726C36".comb(/<xdigit>**2/)».fmt("0x%s")».chr
p6eval rakudo 5ec28d: OUTPUT«
jnthn moritz_: add_method shouldn't clone 13:24
snarkyboojum and these ones using <alpha> in comb
jnthn moritz_: And it changing the name of the blob of code it's been given feels wrong too.
snarkyboojum rakudo: say "Perl 6 Advent".comb(/<alpha>/).join('|')
p6eval rakudo 5ec28d: OUTPUT«Cannot take substr outside string␤current instr.: 'perl6;Regex;Cursor;alpha' pc 1506 (ext/nqp-rx/src/stage0/Regex-s0.pir:872)␤»
moritz_ jnthn: right, it would only do that if it clones... which it doesn't
jnthn moritz_: Well, it probably shouldn't do it even if it does. 13:25
$foo.^add_method('blah', anon method foo() { ... }) # otherwise someone complains introspection doesn't return foo later... :-)
It _is_ evil though. :-) 13:26
Anyway, +1 on the fix you did.
moritz_ ok 13:27
13:27 meteorjay left, meteorjay joined 13:28 ruoso left
moritz_ btw fun Perl 5 question: www.perlmonks.org/?node_id=840692 - I love it how Perl 6 has explicit (and a bit more verbose) syntax for symbolic references 13:29
colomon moritz_: just got burned by the ** precedence thing again locally. :\ 13:31
pugssvn r30713 | colomon++ | [t/spec] Add bridge test for Real.roots. 13:32
colomon that should put us over 32,300 passing tests. ;)
13:33 gbacon_ joined
takadonet !! 13:34
snarkyboojum moritz_: if I have a test file which mostly blows up on current master for day 8, should I commit anyway (gist.github.com/406306)?
jnthn snarkyboojum: Which bit explodes, ooi? 13:35
snarkyboojum colomon: at how many passing tests were you going to break out the beer - 32k? 13:36
jnthn Does the first two pass?
snarkyboojum jnthn: yes
jnthn OK, I was gonna be worried if they didn't
colomon snarkyboojum: well, that was one mark
snarkyboojum jnthn: signatures are solid :)
colomon full celebration should be 33k, I reckon.
snarkyboojum colomon: excellent :)
jnthn colomon: Beer celebration every 1k extra tests. ;-) 13:37
colomon I'd prefer cider or single malt.
13:37 masonkramer left
colomon ;) 13:37
jnthn s/Beer/Tasty beverage/
:-)
13:37 masonkramer joined 13:38 fengshaun joined
colomon I celebrated with strawberry quik the other day.... (when the Habs beat the Penguins) 13:38
[Coke] ISTR moritz said new tests that fail are OK, since rakudo isn't running them by default.
moritz_ right
snarkyboojum: so go ahead
[Coke] I am glad to see folks hacking on the tests.
moritz_ aye, [Coke]++ did a good kick-start 13:39
jnthn [Coke]++, snarkyboojum++, moritz_++ :-)
colomon ditto
snarkyboojum moritz_++ for helping and [Coke]++ for starting and creating the stubs :) 13:40
[Coke] ETOOMUCHKARMA. 13:41
moritz_ [Coke]-- # just to prevent karma overflow :-)
[Coke] whgew. 13:42
jnthn Any sense of how bad we're doing the tests so far?
*doing on
moritz_ 'handles' test throws
jnthn (In terms of Rakudo's ability to run/pass them...)
handles NYRI
I've been meaning to get onto that for a while.
snarkyboojum moritz_: rightio 13:44
moritz_ jnthn: another test barfs on Whatever currying
infix:Z with more than two args is also NYI 13:45
snarkyboojum grammars (day 21) aren't going to work either are they 13:46
moritz_ haven't really looked at them... most gramamr stuff works, just match objects don't
snarkyboojum moritz_: I haven't had any lucky with simple grammars on rakudo really - fine with alpha 13:47
luck
sahadev rakudo: @r = (1,2,3,4) >>+>> (1,2); @r.perl.say 13:48
p6eval rakudo 5ec28d: OUTPUT«Symbol '@r' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
sahadev rakudo: my @r = (1,2,3,4) >>+>> (1,2); @r.perl.say
p6eval rakudo 5ec28d: OUTPUT«[2, 4, 5, 6]␤»
sahadev can someone confirm if the "upgrade" of the RHS is correct? the test (t/spec/S03-metaops/hyper.t) says expected output is [2, 4, 3, 4] 13:50
colomon the test is wrong for sure, I think.
but I'm not sure the "upgrade" is properly spec'd. 13:51
moritz_ well
13:51 zostay joined
colomon I think TimToady indicated to me a while back it was only supposed to upgrade full dimensions. 13:51
moritz_ upgrading is only specced in the context of "upgrading to more dimensions"
right
jnthn I thought it just repeated the last element.
snarkyboojum that's what is currently does
moritz_ that was my previous understanding
jnthn Thus why @as-long-as-you-like >>+>> 1 works.
I thought that was spec too. 13:52
snarkyboojum it did today when I was doing the tests for day 6 - hypers :)
colomon jnthn: no, that works (in theory) because you are upgrading the dimension from 0 to 1 13:53
by repeating.
jnthn Ah.
colomon in practice, it works by repeating the last element, because that's how I thought it worked when I implemented it.
and I think that's how alpha has it, too.
jnthn Heh. That's how I did it in...right. :-)
snarkyboojum those tests are marked with #?rakudo todo - does that skip them? 13:54
jnthn Or put differently, it doesn't know the difference between a list of one element and a single element.
(because iirc we listify)
colomon todo means "run the test, but we know the answer is wrong -- allow that as okay"
skip means "don't run the test"
snarkyboojum colomon: cheers
knew skip, wasn't sure about todo 13:55
colomon basically, if it is going to crash, we skip. otherwise we todo. :)
13:55 pencilk left, ejs left
jnthn todo is nicer 13:55
If there's teh chice
grrr, I forgot how to type 13:56
*the choice
Since then if we fix it, we get told it's a passing todo.
pugssvn r30714 | snarkyboojum++ | [t/spec] Added initial tests for Perl 6 Advent Calendar Day 8: .comb your constraints
snarkyboojum 3 of those test break on rakudo currently fwiw 13:57
tests
colomon rakudo: "Perl 6 Advent".comb(/<alpha>/).join('|').say 13:58
p6eval rakudo 5ec28d: OUTPUT«Cannot take substr outside string␤current instr.: 'perl6;Regex;Cursor;alpha' pc 1506 (ext/nqp-rx/src/stage0/Regex-s0.pir:872)␤»
colomon ouch.
moritz_ bug in comb? or in the regex engine? 13:59
rakudo: "Perl 6 Advent".comb(/<alpha>/).join('|')
p6eval rakudo 5ec28d: OUTPUT«Cannot take substr outside string␤current instr.: 'perl6;Regex;Cursor;alpha' pc 1506 (ext/nqp-rx/src/stage0/Regex-s0.pir:872)␤»
moritz_ rakudo: eager "Perl 6 Advent".comb(/<alpha>/)
p6eval rakudo 5ec28d: OUTPUT«Cannot take substr outside string␤current instr.: 'perl6;Regex;Cursor;alpha' pc 1506 (ext/nqp-rx/src/stage0/Regex-s0.pir:872)␤»
13:59 ruoso joined 14:00 ejs joined 14:02 Jedai left
snarkyboojum rakudo: "Perl 6 Advent".comb(/<[A..z]>/).join('|').say # this doesn't help, but it works :) 14:02
p6eval rakudo 5ec28d: OUTPUT«P|e|r|l|A|d|v|e|n|t␤»
14:02 uniejo left 14:03 circuitbreaker left 14:06 khasselbacher joined 14:07 mjk joined
khasselbacher I've changed the test reporter so that it requires TWO digits to trigger an email now. No more messages to bug number 6 about the Perl 6 Advent Calendar work. 14:07
moritz_ khasselbacher++
khasselbacher *bow*
14:08 khasselbacher is now known as KyleHa
moritz_ khasselbacher: have you also committed the script? I think it's still somewhere in the pugs repo 14:08
KyleHa No commit. I didn't think it was in there.
Let me look.
Ah, indeed it is.
moritz_ misc/commit-mails/test-reporter.pl 14:09
KyleHa I'll review my changes and commit later-ish.
14:09 mjk left
moritz_ KyleHa++ # now the karma goes to the right nick 14:10
KyleHa Nyuck nyuck nyuck.
14:11 mjk joined, KyleHa left 14:12 mjk left
snarkyboojum ok - now I know what's causing it I'll stop using Perl 6 in the commit message :| 14:13
lol
moritz_ snarkyboojum: no need, it's already fixed 14:14
snarkyboojum well, another email just came through, so I guess I just missed the fix
moritz_ it just took a time for the email to perculate
snarkyboojum I have to admit, this writing tests business for the advent calendar is a lot of fun :) 14:15
colomon snarkyboojum++
it's even more addictive when you start getting the tests working.... ;) 14:16
14:16 Jedai joined
moritz_ aye 14:16
snarkyboojum colomon: I can only imagine :)
moritz_ although I spent half an hour for that accessor name introspection fix
it was pretty easy to find the culprint; the fix just required some parrot-Fu that I mostly lacked 14:17
14:24 plobsing joined 14:31 SmokeMachine joined 14:34 k23z__ left
[Coke] if it's just writing PIR, I can usually help with that. 14:34
sahadev reading back the comments made about "upgrading", am I right to assume that the current behavior of repeating the last element (as it is implemented now) is the correct behavior? 14:38
if so, any objections if I fixed the tests?
moritz_ sahadev: none of us knows what the correct/expected behaviour is
colomon sahadev: unfortunately, it's unclear if that's the correct behavior. I think I'd mark the tests "vague" and move on. 14:39
"spec is vague", I mean.
sahadev ok
pugssvn r30715 | kyle++ | [misc] Trigger bug test emails only when there are 2+ digits (no more triggers for "Perl 6 Advent Calendar" tests). 14:47
moritz_ actually the old open perl6 tickets are all 5 digits 14:48
and the new ones too 14:49
takes a few masakyears to bump it up to 6 digits :-)
14:52 patspam joined 14:54 iblechbot left 14:57 isBEKaml joined, bubaflub joined 14:58 xomas_ joined, plobsing left
diakopter [Coke]: what's teh name of the hash-with-inheritance thingy in parrot 15:04
or jnthn or moritz_ or whoever
pmichaud: ^^ ? 15:05
[Coke] diakopter: ... Hash ? 15:06
diakopter maybe I'm dreaming, but I thought I read there was an object that acted like a js prototype object
colomon Assoctional? (speeelling?)
that's a role. 15:07
(if spelled correctly.)
diakopter in parrot I mean
[Coke] diakopter: sorry. I don't understand the question, i guess. 15:08
diakopter I thought there was a built-in PMC or some other Object in parrot that acts like a js prototype object, where it has keys & values, and also a parent (or prototype)
if not, I musta dreamt it up 15:09
15:10 orafu left
[Coke] unless you mean something special by "parent", you can just subclass the existing Hash. (which itself doesn't have a parent.) 15:10
jnthn diakopter: No, not afaik.
diakopter ok 15:11
[Coke] but I think you're meaning something special with the prototype there.
jnthn diakopter: There's been discussion about having a Prototype PMC in the future.
diakopter ah
jnthn Not sure how much, just remember noting in on a mailing list thread.
15:11 orafu joined
diakopter ok; noted my dreamt-it-up-ness in my blogpost 15:11
15:12 ejs left 15:17 ejs joined, Trashlord left 15:18 am0c joined, am0c left
jnthn It would be nice to have something like it, but I suspect what Rakudo wants may be too specific for Parrot. 15:18
diakopter I bloggeth'd 'gain: diakopter.blogspot.com/2010/05/perl...tions.html 15:20
probably I should note the lack of ! on attributes 15:22
oh, blogspot ate my < > after PrototypeChain. boo. 15:23
LOL; it transformed it to PrototypeChain<tkey, tvalue=""> 15:24
stupid rich text editor
fixed
15:25 k23z__ joined 15:30 ashleydev joined, justatheory joined 15:32 hirschnase left
diakopter planetsixes being slow 15:35
15:36 justatheory left 15:39 TiMBuS left 15:40 burmas joined 15:42 colomon_ joined, colomon left, colomon_ is now known as colomon
colomon oh noes! I broke Ra! 15:42
Rat!
15:43 iblechbot joined
colomon Num.Rat! 15:43
jnthn Oh noes HALP! 15:44
moritz_ git reset --hard HEAD # it helps, for some value of HALP 15:45
isBEKaml if it's just one file, git checkout <filename> helps too. (btw, Hi! ) 15:47
moritz_ if it's all files: git checkout .
isBEKaml ^^what moritz_++ said
moritz_ oh, I forgot.. the *real* cleaning is git reset --hard origin/master; git clean -xdf
this also throws local commits away and files that are not under version control 15:48
it took me quite some time to understand that 'svn revert' and 'git revert' have nothing in common, and that 'svn revert' is typically achieved in git with 'git checkout' 15:51
isBEKaml git revert is post commit, it seems. Btw, I don't normally do resets (don't know why, painful memories, perhaps ;) )and I usually end up with checkouts. 15:52
while svn revert is pre-commit.
moritz_ right; git revert creates another commit that nihilates the actions of a previous commit 15:53
isBEKaml finally got hangman to compile (no output :D ). Will rewrite the whole thing in some time... 15:54
dalek kudo: c6ecc98 | (Solomon Foster)++ | src/core/ (4 files):
Try to clean up and make consistent Real.Int, Real.Rat, and Real.Num.
15:56
colomon no worries, fixed up in that patch. 15:57
pugssvn r30716 | lwall++ | [advent2009-day02.t] remove parsefail 15:58
[Coke] wonders how often perlcabal.org is updated. 16:01
longer than the 15m that it says.
diakopter [Coke]: actually that one's not updated I think 16:03
for years
[Coke] the source seemed pretty close to docs/feather/index.html 16:04
colomon perlcabal.org/syn/S32/Numeric.html#Numeric
"This page was generated at 2010-05-19 02:01:49 GMT."
16:04 colomon left
diakopter colomon: I think [Coke] was referring to perlcabal.org/ ? 16:04
[Coke] perlcabal.org/ 16:05
diakopter yes.
I don't think that's been updated in years
it's an svn checkout in audreyt's homedir, I think.
[Coke] diakopter: you mean in svn, or from svn?
ah. 16:06
well, I just updated the svn today. I'll leave it to someone else to figure out how to get the updates working.
diakopter commute-ish&
16:12 skangas joined
isBEKaml S12 -> "Perl 6 supports multiple inheritance, anonymous classes, and autoboxing.". Multiple Inheritance? 16:13
PerlJam isBEKaml: aye. class Foo is Bar is Baz { ... }
jnthn class Snakebite is Beer is Cider { ... }
isBEKaml class Foo is Bar is Baz { ... } Does this mean Foo is both a Bar and a Baz or just that a Bar is a Baz and it inherits both of them in one fell swoop? 16:15
jnthn For is a Bar and a Baz
PerlJam isBEKaml: the former
isBEKaml expanding on the second case: a Foo is just a Bar that (Bar) had inherited Baz
PerlJam isBEKaml: I guess your second one could be a way to implement it but I'm not sure what the utility of all the anonymous classes would be. 16:17
16:17 M_o_C left
k23z__ hey I don't understand this 16:18
splitOn :: Eq a => [a] -> [a] -> [[a]]
does this mean that spliton takes as parameter an (equation that takes as parameter a and returns a function ... 16:19
what the hell is that ?
I don't get it
crap this is not #haskell sorry 16:20
bubaflub hahaha
phenny bubaflub: 13 May 08:23Z <moritz_> tell bubaflub sure, would be great to have some kind of systematic test for all of them - see perlcabal.org/syn/S02.html#line_1849 for the complete list; if you have troubles using one of them, feel free too ask
bubaflub k23z__: i don't understand it either! 16:21
k23z__ bubaflub, but you know haskell ?
bubaflub nope!
k23z__ I think it takes two parameters Eq and a
and it returns some sort of thing
bubaflub you might be able to find a haskell person around here, but i'm not very familiar with it 16:22
cognominal k23z__, I do, sort of, I have not practized in a year.
16:22 ashleydev_ joined
cognominal I will probably warm up back to it because I will do a presnetation that compares multimethod diispatch and haskell pattern mathcing. 16:23
PerlJam k23z__: I don't remember the ":: Eq a" part right off but [a] is a list of something.
isBEKaml PerlJam: The way I see it, anonymous classes are simply a convenience. For example, you have a class that you want to instantiate with variables to set or define method callbacks, this would be the way to go. I don't know how they are done in perl6 though :( 16:24
16:24 ashleydev__ joined, skangas left, ashleydev left
PerlJam k23z__: so the function takes 2 lists of something and return a list of lists of something 16:24
k23z__: or that's one way to look at it.
cognominal the => Eq a means splitOn depends the Eq class, like a Perl6 role 16:25
PerlJam k23z__: oh, :: Eq a ... what cognominal just said
jnthn isBEKaml: Anonymous classes are either class { ... } (that is, don't give it a name) or anon class Foo { ... }
isBEKaml: Of course, you should assign the result to something so you can actually use the anonymous class. :-)
cognominal the haskell class has many similarities with a Perl 6 role. 16:26
isBEKaml jnthn: Not too different from references? :-)
cognominal s/the/an/
jnthn isBEKaml: Well, what you get back is just the type object.
The same thing that gets installed in the namespace if you were not declaring an anonymous class.
isBEKaml jnthn: In this case Mu or Any, since we don't see any type assigned to them? 16:27
16:27 ashleydev_ left
jnthn No, it's its own type. 16:27
Maybe doesn't know its name though.
rakudo: my $c = class { method m() { say "lol 42" } }; $c.new.m
p6eval rakudo 603c64: OUTPUT«lol 42␤»
isBEKaml jnthn: If I were to say my $fooclass = class {.. }
jnthn rakudo: my $c = class { method m() { say "lol 42" } }; say $c.WHAT 16:28
p6eval rakudo 603c64: OUTPUT«()␤»
jnthn No name
but
rakudo: my $c = anon class Wabulator { method m() { say "lol 42" } }; say $c.WHAT
p6eval rakudo 603c64: OUTPUT«Wabulator()␤»
isBEKaml then that would be base type, right? I thought of Mu or Any since all objects are derived from this..
ESLOWTYPIST :(
jnthn Well, yes, all things derive from that
A class - anonymous or otherwise - inherits from Any by default. 16:29
isBEKaml so why didn't we see Any() in my $c = class { blah } ?
jnthn rakudo: my $c = anon class Wabulator { }; say $c ~~ Any; 16:30
p6eval rakudo 603c64: OUTPUT«1␤»
jnthn rakudo: my $c = anon class Wabulator { }; say $c ~~ Mu;
p6eval rakudo 603c64: OUTPUT«1␤»
isBEKaml rakudo: my $c = class { method foomethod { say "foo!" } }; say $c.new.WHAT; say $c.WHAT; 16:31
p6eval rakudo 603c64: OUTPUT«()␤()␤»
isBEKaml rakudo: my $c = class { method foomethod { say "foo!" } }; say $c ~~ Any; say $c ~~ Mu;
p6eval rakudo 603c64: OUTPUT«1␤1␤»
jnthn Maybe we should make it say like <anon>() or something. 16:32
isBEKaml yes, that would be better. I was pretty confused when I first encountered .WHAT, thinking it to be pointing to a callable ;)
16:33 cdarroch joined, cdarroch left, cdarroch joined
[Coke] rakudo: my $a = 3/7; 16:34
p6eval rakudo 603c64: ( no output )
[Coke] rakudo: my $a = 3/7; # what is this failing with div, no applicable candidates for me locally. wtff.
p6eval rakudo 603c64: ( no output )
[Coke] updates. 16:35
isBEKaml rakudo: my $c = anon class { method foomethod { say "foo!" } }; $c.new.foomethod.perl.say; 16:39
p6eval rakudo 603c64: OUTPUT«foo!␤Bool::True␤»
isBEKaml rakudo: my $c = anon class { method foomethod { say "foo!" } }; say $c.new.foomethod;
p6eval rakudo 603c64: OUTPUT«foo!␤1␤»
isBEKaml why does it return a Bool::True when calling on anon objects? 16:40
rakudo: my $c = anon class { method foomethod { say "foo!" } }; say $c.foomethod;
p6eval rakudo 603c64: OUTPUT«foo!␤1␤»
isBEKaml rakudo: my $c = anon class { method foomethod { "foo!" } }; say $c.new.foomethod; say $c.foomethod; 16:41
p6eval rakudo 603c64: OUTPUT«foo!␤foo!␤»
isBEKaml D'oh! :(
rakudo: say say "something"; 16:42
p6eval rakudo 603c64: OUTPUT«something␤1␤»
jnthn :-)
isBEKaml rakudo: say say "something".perl.say;
p6eval rakudo 603c64: OUTPUT«"something"␤1␤1␤» 16:43
isBEKaml this is not valid behaviour, right? shouldn't it throw an error or something?
16:43 jferrero left 16:44 ashleydev__ left
jnthn isBEKaml: It's fine. 16:44
say returns True (provided the say is successful)
It's just a function.
isBEKaml jnthn: I was thinking of say as an handle to the output stream, then calling this handle to another handle on the output stream can't be right... 16:45
16:46 pyrimidine joined
isBEKaml jnthn: since it outputs something, wouldn't it be right to say that it should return a void type? 16:46
jnthn No
What if the output fails?
isBEKaml go to error?
again output an error (void type here) 16:47
jnthn In that case it returns a Failure object.
(or, under "use fatal", blows up immediately)
isBEKaml I see... 16:49
16:49 dakkar left
isBEKaml The Failure object here is implicit in most perl programs running in anonymous namespace, yes? or do we have to use ... or die $! ? 16:50
Tene isBEKaml: the 'say' function just calls the 'say' method on the $*OUT contextual variable.
isBEKaml: You can say 'use fatal;' to die whenever a failure occurs. If you don't, then the failures aggregate in $!, and on every scope exit, $! is checked to determine whether all of the failures have been handled or not. If they haven't, they actually fail at that point. 16:51
bubaflub moritz_: ping
TimToady Tene: thanks for the .XCompose pointer; unfortunately both gnome and ibus appear to be blissfully hardwired to ignore it
16:52 justatheory joined
Tene Hmm. There was something more I seem to remember doing to get X to notice it under gnome... 16:52
I know that it can be done, but I don't remember how.
TimToady switching to XIM maybe?
Tene Could be.
moritz_ bubaflub: pong
Tene Are you sufficiently interested that you'd like me to go dig through IRC logs? 16:53
16:53 Intensity left 16:54 cls_bsd left
TimToady I just hesitate to switch back to something that the distribution folks consider to be two evolutionary steps more primitive. :) 16:54
bubaflub moritz_: sorry i was slow in getting that patch in for the S02-literals/pairs.t spec, i just finished finals
isBEKaml Tene: Thanks for the $! check on every scope exit - I was looking for that :)
16:54 justatheory left
bubaflub s/was/am/ 16:54
16:54 justatheory joined
bubaflub moritz_: i'm a bit confused on how to test for the positional twigil 16:54
moritz_ bubaflub: you mean $^a? 16:55
bubaflub moritz_: yes
moritz_: for context, this is part of the patch i have to test pairs and twigils
gist.github.com/397483
moritz_ that .perl in there is wrong 16:56
{ $^a * 2 } is short for sub ($a) { $a * 2 }
so you can write someething like
bubaflub moritz_: sorry, old gist, lemme update it
moritz_ my $pair_gen = { :$^a };
$pair_gen(3); # should return a => 3 16:57
16:57 justatheory left, justatheory joined
bubaflub moritz_: updated 16:57
16:57 justatheory left, justatheory_ joined
moritz_ rakudo: my $a = 3; say :$a eqv a => 3 16:57
pugssvn r30717 | coke++ | [t/spec] add tests for day 14; rakudo skip'd 2, todo'd 1.
p6eval rakudo c6ecc9: OUTPUT«1␤»
[Coke] colomon - the two skip's are Num() related, if you want them. 16:58
moritz_ bubaflub: looks good... but please call them classes differently (Foo1 vs. Foo2 or so)
bubaflub moritz_: ok
[Coke] moritz_: file should be safe to whitelist.
bubaflub moritz_: ah, yes, when the skip block is gone they'll conflict 16:59
TimToady rakudo: my $a = 3; say :$a eqv "a" => 3
p6eval rakudo c6ecc9: OUTPUT«0 3␤»
TimToady note the difficulty
moritz_ they are actually named args to the operator, no?
TimToady rakudo: my $a = 3; say :$a eqv ("a" => 3)
p6eval rakudo c6ecc9: OUTPUT«1␤»
TimToady precedence problem
moritz_ oh 17:00
TimToady which ident => hides by being a single term
but => is of item assignment precedence otherwise
moritz_ [Coke]: two nit-picks: 1) testing for the exact form of .perl is a bad idea, since it's not specced as canonical 17:01
[Coke]: 2) comparing floats should be done with is_approx
(with the exception of Rat.perl being specced) 17:02
but for ecample $rat.nude.perl could be made of less spaces, or List.new(3, 7) or so
17:02 Su-Shee left
moritz_ will push a fix soon 17:04
17:05 Su-Shee joined
isBEKaml moritz_: $rats are running nude? ewww... 17:05
Tene isBEKaml: My girlfriend has rats, and I've actually never seen them clothed.
isBEKaml Tene: atleast they are covered in fur, no? 17:06
Tene Well, yes.
isBEKaml that's not nude!
Tene A friend I had back in Utah kept hairless rats. They were kinda creepy.
TimToady en.wikipedia.org/wiki/Naked_mole_rat 17:07
moritz_ rakudo: use Test; my $a = 1/60000 + 1/60000; is_approx $a, 3.33333333333333e-05;
p6eval rakudo c6ecc9: OUTPUT«ok 1 - ␤»
17:07 ejs left
isBEKaml yes, very creepy. Imagine hairless rodents wrecking havoc in your place. ;) 17:07
TimToady if they wreck the havoc, then there will be no more havoc 17:08
isBEKaml bites tongue. TimToady++ 17:09
moritz_ stupid
TimToady I assume you are not a native speaker, and you probably learned the mis-usage from a native speaker, so I don't blame you. :)
isBEKaml s/wreck/wreak/
pugssvn r30718 | moritz++ | [t/spec] make advent2009-day14.t a bit more robust 17:10
isBEKaml No, I'm not
the naked mole rat would surely win spots in the world's ugliest creatures contest. :) 17:11
TimToady well, the beetles might vote us the ugliest ape rat...
if it's one vote per species, though, I suppose bacteria will decide 17:12
isBEKaml lol, for a moment I read them as /beatles/
cognominal the naked ape does not even have a decent fur
TimToady except those with neandertal ancestry :)
dalek kudo: 8816781 | moritz++ | t/spectest.data:
run another advent calendar integration test
17:14
17:16 skangas joined 17:17 ash_ joined 17:19 pmurias joined
pmurias diakopter: hi 17:19
phenny pmurias: 06:20Z <diakopter> tell pmurias sorry for the delay. classes, attributes, methods working now.
pmurias diakopter: one bug that i just found is that if i omit an return in a method the program loops 17:20
dalek meta: r277 | pawelmurias++ | trunk/Sprixel/t/class.t:
expand t/class.t
17:21
17:21 molaf joined
cognominal TimToady S12:463 -> "Normally a space is required after the colon to disambiguate what follows from from a pair that extends the previous name." ~~ s/from from/from/ 17:29
PerlJam he was doubling for emphasis ;) 17:30
takadonet rakudo: say 'hello all' 17:32
p6eval rakudo c6ecc9: OUTPUT«hello all␤»
17:33 hercynium joined
[Coke] moritz_: I note you also changed a .WHAT to a ~~ : - while that's arguably a better test, it's not what's in the advent page. 17:33
moritz++ for the approx updates.
17:33 perlygatekeeper left
cognominal I am never too sure if I should attribute such things to my poor english understanding or TimToady overcuteness 17:33
diakopter pmurias: yes, a return statement is required; not a bug 17:34
PerlJam cognominal: word doubling is usually a mistake ... there's even a chapter in the Perl 6 book that gives some Perl 6 code for fixing it. 17:36
diakopter pmurias: well, maybe the failure to detect lack of return statement is a bug 17:37
jnthn PerlJam: That's very very often the case, yes. :-) 17:38
cognominal so S04 is so so?
TimToady nod nod 17:39
cognominal hum, apparently the current form is so-so, so that does not count as a doubling.
TimToady quite quite
cognominal s/current/correct/
k23z__ upload.wikimedia.org/wikipedia/comm...oster.jpeg 17:40
TimToady anyway, I don't know of prepositional doubling forms, except for possibly, "Up, up, and away". :)
sorear though m:s/(\w+) $0/ can still be valid, if the contexts differ 17:42
that that is a common case
when one that is a pronoun and the other that is a connective
that that works, works
arnsholt Ah, the joys of NLP =) 17:44
cognominal natural language is so illogic, double negative can still be negative like "I don't take no shit" and a double positive is not even always a positive : "yea, right" 17:45
isBEKaml like "I don't know nothing" ~~ "I know everything" ? ;) 17:46
arnsholt cognominal: That last one probably falls under the heading "sarcasm", but yeah. There are a lot of interesting stuff going on
cognominal meaning, that language is ambiguous or downright meaningless without context. 17:48
arnsholt How to interpret a doubled negative is interesting as well. IIRC it's language-dependent. In some languages it reinforces the negation (Russian), while in others it reverses it (Latin and Sanskrit do this)
Yeah, context is very important
cognominal And some are against context in computer language. Like crockford who is against the "with" construct in PostScript (not even for performance reason). 17:49
The wikipedia as a whole article on the subject : en.wikipedia.org/wiki/Double_negative 17:50
17:50 justatheory_ left 17:52 justatheory joined 17:53 justatheory left, justatheory joined 17:54 justatheory_ joined, justatheory left, justatheory_ is now known as justatheory 17:57 justatheory_ joined 17:58 justatheory left, justatheory_ is now known as justatheory
TimToady "All music is folk music--ain't never heard no horse sing no song." --Louis Armstrong 18:01
[particle] louie didn't know mr. ed. 18:02
PerlJam He was just a little too anthropocentric. 18:03
cognominal "We don't need no education We don't need no thought control" -- Pink Floyd
TimToady I don't recall Mr. Ed singing, but it's possible I put it out of my memory :)
18:04 stephenlb joined
diakopter "with" in js makes for way too much runtime ambiguity 18:06
[particle] you don't remember "mr. ed's blues"?
18:10 justatheory_ joined, justatheory_ left, justatheory left, justatheory joined, justatheory_ joined, justatheory left, justatheory_ is now known as justatheory, justatheory left 18:11 justatheory_ joined, justatheory_ is now known as justatheory, justatheory left, justatheory joined 18:12 justatheory left, justatheory joined 18:13 justatheory_ joined, justatheory left, justatheory_ is now known as justatheory, justatheory_ joined, justatheory left, justatheory_ is now known as justatheory
cognominal rakudo: class Tutu { token a { a } } # is the grammar keyword equivalent to the class keyword and just a hint about its intended purpose? 18:13
18:13 justatheory left
p6eval rakudo c6ecc9: ( no output ) 18:13
cognominal or has it some special semantic that escapes my attention? 18:14
[Coke] diakopter: but it does make for some very concise code. 18:15
18:15 justatheory joined, justatheory left, justatheory joined, justatheory left 18:16 justatheory joined, justatheory left, justatheory_ joined, justatheory_ left, justatheory__ joined, SmokeMachine left 18:17 justatheory__ left, justatheory joined, justatheory left
diakopter theory: you flap 18:17
18:18 justatheory joined 18:21 kst joined 18:30 justatheory_ joined, justatheory left, justatheory_ is now known as justatheory 18:36 Guest78801 left, Guest78801 joined, yahooooo left 18:39 yahooooo joined 18:41 M_o_C joined 18:49 colomon joined
colomon whoops 18:49
colomon--
jnthn colomon: Aww...'sup?
colomon pretty sure I broke the build...
wardrove around the outlet mall until I could find someplace with wifi 18:50
has anyone noticed and fixed it yet?
jnthn cognominal: No, it implies a different metaclass. But actually all the metaclass does different is change the default parent.
colomon (basically I didn't have all my local changes committed when I pushed before getting in the car for the epic trip home.) 18:51
jnthn cognominal: So grammar means you default parent is not Any, but (something that derived from Cursor)
colomon: I didn't notice, and I didn't notice anybody else noticing. 18:52
colomon huh.
definitely looks like it should be broke. 18:53
let me see if I can push the fix.
[Coke] NO ULL BREAK IT
18:53 M_o_C left
colomon I mean, it shouldn't even compile at the moment... 18:53
18:54 k23z__ left
colomon I just pushed a not-spec-tested change as well, but I think it should be safe. 18:54
dalek kudo: f6374ad | (Solomon Foster)++ | src/core/Real.pm:
Real.Int is now just sugar for Real.truncate.
kudo: ad8556c | (Solomon Foster)++ | src/core/Num.pm:
modf is now a local function instead of a private function; call it accordingly.
colomon If not, revert f6374ad
[Coke] will that modf fix fix day 14?
colomon [Coke]: doubt it. 18:55
what's wrong with day 14?
[Coke] k
colomon I need to be going soon, but I can take another minute or two....
TimToady I just did realclean, pull, reconfig, and it built
[Coke] rakudo: 3.14.Rat.perl
p6eval rakudo 881678: ( no output )
colomon TimToady: what is your highest patch?
[Coke] rakudo: say 3.14.Rat.perl 18:56
p6eval rakudo 881678: OUTPUT«157/50␤»
[Coke] ... that looks like you fixed it, yah. =-)
diakopter pmurias: how goes it
TimToady colomon: how do I find htat out?
colomon git log
TimToady: git log
the first line should be commit <huge hex number>
and the huge hex is what I'm looking for. 18:57
18:57 SmokeMachine joined
TimToady 88167814bc9acb4b80054f6a8ce12e6ee341369f 18:57
colomon huh.
well, I guess I didn't break the build, then.
but darned if I understand how.
(how I didn't)
well, hopefully the latest two patches don't break it either. :)
TimToady trying 18:58
colomon gotta run. will check back in when we reach home (we're an hour away plus at least two more shopping stops)....
ooo, I can wait a sec for TimToady++
TimToady (just a remake) 18:59
fortunately this T61 is pretty fast, obra++
19:00 j1n3l0 joined
TimToady worked 19:00
colomon++ for sweating at least
19:00 M_o_C joined
colomon \o/ 19:00
TimToady go in peace
colomon all right, catch y'all later!
19:01 j1n3l0 left
jnthn colomon++ 19:02
pugssvn r30719 | coke++ | remove fudge, latest rakudo passes these.
[Coke] day14 all unfudged, whee.
jnthn \o/ 19:04
19:05 colomon left
jnthn master builds for me. 19:11
:-)
pugssvn r30720 | coke++ | fix urls for days 19&20
19:12 M_o_C left 19:15 envi^home left
[Coke] peers at perl6advent.wordpress.com/2009/12/1...omment-212 19:22
sorear that's not a bug as such 19:23
Whatever currying is NYI 19:24
except in the special cases of * + *, * + N, and * - N
alpha: (* * *).(2,3).say
p6eval alpha 30e0ed: OUTPUT«too many positional arguments: 2 passed, 1 expected␤in Main (file <unknown>, line <unknown>)␤»
arnsholt Are the semantics of multiple Whatevers in an expression hammered out yet? 19:29
sorear yes
they turn into separate arguments
arnsholt 'k
sorear *+* is basically the same as &infix:<+>
rakudo: (1, 1, *+* ... *).batch(20).eager.perl.say 19:30
p6eval rakudo 881678: OUTPUT«(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765)␤»
sorear rakudo: (1, 1, &[-] ... *).batch(20).eager.perl.say
p6eval rakudo 881678: OUTPUT«get_attr_str() not implemented in class 'Perl6MultiSub'␤current instr.: 'perl6;Code;signature' pc 14018 (src/builtins/Str.pir:28)␤»
arnsholt Yeah. But at some point it was (I think) a bit uncertain if multiple Whatevers should be independent or be one argument
PerlJam arnsholt: indeed. 19:32
19:33 circuitbreaker joined
sorear TimToady: Can you explain to me how the _xact mechanism works? 19:36
arnsholt An expression with multiple Whatevers in it should be the same as sub($arg1, arg2, ...) { $the-expression } right? 19:38
TimToady sorear: it's really just dynamic context pointers up to the root, but threaded through all the cursor "continuations" 19:41
19:41 hercynium left
TimToady each xact has a transaction type, a valid flag, and a pointer upward 19:41
the funny -1 -2 trick was so I could have optional fields after the type, but haven't used them
any backtracking control merely needs to run up its chain of pointers and invalidate all the operations that are being "cut" 19:42
and all choice points that care will check the validity of their xact before proceeding to another alternative 19:43
19:43 ash_ left
TimToady this could be done with real dynamic variables if we had them, and if we had real continuations 19:43
fengshaun is perl6 ready for day to day use? 19:44
TimToady still depends on what you want to use it for
fengshaun I'm not picky, as long as it doesn't crash too often
TimToady "too often" is also negotiable :) 19:45
sorear crashes are extremely rare
fengshaun lol!
PerlJam fengshaun: The only way for you to find out is to try it. :)
TimToady but it's a lot more stable than it used to be
sorear more often, what you'll get is a NYI error
fengshaun PerlJam: true
[Coke] fwiw, another rakudo release is due out tomorrow.
fengshaun sorear: that's enough for me, as long as it's not "often"
[Coke] (you can always try out the version in git.)
PerlJam fengshaun: rakudo.org/how-to-get-rakudo too
fengshaun but perl5 libraries won't work, right? 19:46
TimToady the two major irritations right now are probably lack of speed, and strange error messages that don't help you as much as they could.
sorear TimToady: so basically, xact is used to implement non-local cuts
TimToady yes
fengshaun PerlJam: we have it in AUR in Archlinux
how's the library support? lacking a lot of them?
WWW, Net, Curses 19:47
PerlJam Hmm.
bubaflub i know parrot just got some LWP and some Archive ZIP and Tar support 19:48
jnthn fengshaun: There is a project called Blizkost, which goes some way to making Perl 5 libraries usable from Rakudo.
PerlJam Perl 6 doesn't quite yet have a CPAN
fengshaun jnthn: thanks, I will check that out.
PerlJam, bubaflub: thanks!
jnthn github.com/jnthn/blizkost
sorear > use CGI:from<perl5>; say CGI.new.header
Content-Type: text/html; charset=ISO-8859-1
PerlJam fengshaun: There's a Rakudo distribution due out in June called "Rakudo Star" or "Rakudo *" It should have many of the things you're asking about. 19:49
19:49 ShaneC joined
sorear right now, you normally have to compile a custom perl 5 to use blizkost 19:49
I'm hoping to fix that soon
PerlJam seen pmichaud
19:50 ShaneC left
PerlJam Is there a seen bot here? 19:50
fengshaun if I can get blizkost to work properly...only if...!
jnthn buubot: seen pmichaud
buubot jnthn: I last saw pmichaud saying "spack IEEE" at Sat Aug 29 03:18:43 2009 Z.
PerlJam ah. buubot
bubaflub fengshaun: what are you looking to accomplish?
jnthn ...er...
PerlJam but, buubot is wrong.
jnthn Very.
fengshaun bubaflub: nothing specific, to be honest! Just searching for information :)
information on the state of things on perl6 19:51
cognominal sorear: for info, I compiled blizkost successfully with perl 5.12 but it crashes when the perl5 interpreter starts
PerlJam So ... I just wanted a little empirical evidence that pmichaud hasn't been around much the last few days so that I could infer that he is happily, busily make Rakudo better :)
sorear cognominal: I'm running it on 5.12
cognominal ho 19:52
sorear cognominal: can you nopaste the output of perl -V and your blizkost version?
PerlJam s/make/making/
cognominal sorear++ :yes!
getting the last blizkost before 19:53
lisppaste3 cognominal pasted "perl " at paste.lisp.org/display/99480 19:56
sorear cognominal: What did I do to get the ++?
19:56 cls_bsd joined
sorear oh, -DDEBUGGING 19:56
I haven't tested that
sorear makes note
cognominal the @INC and PERL5LIB are scary
19:57 cls_bsd left
cognominal so much stuff there 19:57
sorear, I will compile without -DDEBUGGING and keep you posted. 19:58
sorear also experiment with -Duseshrplib
Parrot extensions need to be dynamically linked
your Perl is not built as a dynamic library 19:59
cognominal I am not sure how to do that...
sorear on Linux, this causes significant performance loss; I don't know if it could explain crashes on Mach
./Configure -des -Duseshrplib -Duseithreads
TimToady phone 20:00
20:00 cls_bsd joined 20:01 bubaflub left, cls_bsd left 20:05 cls_bsd joined 20:06 cls_bsd left 20:10 cls_bsd joined 20:11 Su-Shee left, cls_bsd left 20:15 M_o_C joined, cls_bsd joined 20:16 cls_bsd left
pmichaud no phone today? 20:18
or am I just too late?
20:19 hercynium joined 20:21 cls_bsd joined, molaf left, cls_bsd left
[Coke] we finished up quick. 20:22
20:22 M_o_C left
[Coke] Just email report? 20:22
20:24 molaf joined 20:26 cls_bsd joined, molaf left, cls_bsd left 20:27 vinanna joined 20:28 molaf joined 20:31 cls_bsd joined
cognominal sorear++ # it works! 20:31
20:32 cls_bsd left 20:36 cls_bsd joined 20:37 cls_bsd left
pmichaud yes, will email report 20:40
20:41 cls_bsd joined 20:48 ajs joined 20:55 iblechbot left, vinanna left 21:05 alester left
diakopter [Coke]: the planetsixes aren't getting my latest post 21:10
[Coke]: nm; yes it is
[Coke]: oh, I see, it does't adjust the timestamps for timezone.
:)
[Coke] diakopter: ... np! 21:11
;)
21:23 molaf left 21:25 justatheory left
pmurias diakopter: how do i specify that a subroutine doesn't return nothing in perlesque? 21:28
21:31 REPLeffect left 21:32 Intensity joined 21:34 jotr is now known as jotr^afk 21:39 ruoso left 21:40 pyrimidine left
pmurias diakopter: other thing shouldn'attribute declarations be written as has int $.foo in perlesque? 21:40
lue OHi there
21:40 sahadev left 21:43 Guest78801 left 21:47 pmurias left 21:54 Exodist left
lue hello? [hello...ello...llo] 21:55
21:57 jogla joined 22:00 clintongormley left 22:02 gbacon_ left
diakopter phenny: tell pmurias re: has int $.foo , yeah, I should change that I guess. I don't see the point of the extra . though 22:03
phenny diakopter: I'll pass that on when pmurias is around.
diakopter phenny: tell pmurias re: subroutine not returning, I don't know... 22:04
phenny diakopter: I'll pass that on when pmurias is around.
diakopter TimToady: may I spec the &:(--> int) thing for strongly-typed closures? it'd be much preferable to requiring the Callable[] to fake it
22:06 stepnem left 22:11 jogla left, jogla joined
[Coke] so /that's/ what jnthn looks like. 22:14
jnthn [Coke]: ... :-) 22:15
lue
.oO(Oh! People! Quick, Alt-Tab to the chat window!)
22:19
22:20 dvjennings joined
dvjennings ido/j #svn-dev 22:27
22:28 dvjennings left 22:43 ejs joined
diakopter constructors are tricky 22:47
22:48 felipe left 22:49 Exodist joined 22:50 PacoLinux left, PacoLinux joined 22:51 lisppaste3 left, lisppaste3 joined
TimToady diakopter: sure, you can spec it; I'll even reissue your commit bit if you want to do it aboveboard this time. :) 22:51
diakopter heh 22:52
TimToady does your veradox address still work? 22:53
22:54 occamshatchet left
sorear aboveboard? 22:56
TimToady: Is there any deep magic in LazyMap?
TimToady you mean, other than that I had to whack on it for several days to get it right? 22:57
diakopter yes
TimToady shall I reissue the bit then?
diakopter no plz
I mean, no thx 22:58
sorear TimToady: I mean, it'd like to just abstract it as "This is a lazy list"
in my mind
22:58 Psyche^ joined
sorear if this were in Perl 6, could LazyMap be replaced with native lazy lists? 22:59
TimToady the tricky bit semantically is that it is *never* lazy on the first element
22:59 [circuitbreaker] joined
TimToady or we couldn't guarantee to have ->[0] be a Cursor 22:59
22:59 circuitbreaker left
TimToady I think it could be replaced by real lazy lists 23:00
23:00 lestrrat is now known as lest_away
TimToady as long as they are flattened appropriately to get a list of Cursors, and not have Parcels popping out 23:01
23:01 fengshaun left
TimToady they'd be a good stress test for a lazy list implementation, in fact. :) 23:01
23:02 Patterner left, Psyche^ is now known as Patterner, jogla left
sorear Why would Parcels pop out? 23:03
TimToady if you did .getarg
and if there were any embedded parcels
sorear doesn't grok parcel/slicel/etc and is looking at this using his Haskell model kit
(yet)
TimToady parcels don't know how they will be bound yet, so provisionally keep inner parcel boundaries intact 23:04
a slicel is just a parcel that knows it has been ; separated, I suspect
so we can distinguish a subscript .[1,2,3] from .[1;2;3]
23:05 ajs left
TimToady so it should expect one level more level of indirection on its subslices 23:05
sorear Under what circumstances is the difference between (1,2,3) and (1,(2,3)) significant?
TimToady that is, whatever handles .[1,2,3] can be called by .[1,2,3;4,5,6] to handle the first dimension 23:06
when you call foo(1,2,3) vs foo(1,(2,3))
and you have multi ($,$,$) vs ($,$)
sorear Does the parameter get bound to the parcel?
TimToady in the second case, the (2,3) would get bound as the second arg 23:07
hence "getarg"
vs bare "get", which flattens
sorear Why is this superior to requiring (1,[2,3])?
TimToady (2,3) is immutable? 23:08
and (2,3) knows to flatten if it gets into list context 23:09
whereas [2,3] never does
every return of a list returns a (2,3), basically
so each take, each map subcall, returns a (), which flattens in list context, as a p5 programmer expects 23:10
but you can still get the structure if you want it by binding it via ** instead of *
sorear mm 23:12
I'm getting closer.
sorear wonders if he is leading himself astray by thinking of LazyMap as the List monad
TimToady well, LazyMap knows nothing about parcels, so in some sense it is more similar to a monad than a P6 list is; but it's really more like a lazy Perl 5 list, if there were such a thing.... :) 23:14
certainly LazyMap can have side effects outside the "monad" :) 23:15
plus Lazymap really does have the map semantics at every level 23:16
sorear "map" semantics?
TimToady one of the tricky bits is to call each map closure only once on a bit of data
it's making map {...}, @list lazy, specifically 23:17
well, omit the , in p5
but all of the laziness is implemented with map-like closures, basically 23:18
sorear are the one-letter field names an optimization? 23:19
TimToady yes
sorry :)
block, called, lazies 23:20
sorear transact 23:21
TimToady the transaction bits of it are fairly newish 23:22
when I realized throwing exceptions to do cuts doesn't work when some of your dynamic state context is off of the real stack. 23:24
sorear and I guess Scope::Guard is too heavyweight
TimToady and as far as I know, p5 doesn't support cactus stacks yet
sorear looks up cactus stacks
23:25 burmas left
TimToady stacks with "alternate universes" basically :) 23:25
sorear the wikipedia article is pretty clear, for once
TimToady where many universes share the base of the stack
sorear is very familiar with the concept but not the name 23:26
TimToady it might not be the modern term :)
but it's quite descriptive...
assuming you're thinking of the prototypical cactus from Arizona... 23:27
23:31 zorgnax left 23:33 ejs left
sorear what is 'N'? 23:33
oh 23:39
TimToady number of real values we've returned, so that we can guarantee that the first one is reified, so that the ratchet code can just subscript the first element (if any) and assume it's a real result
sorear Do we ever return fake values? 23:40
TimToady only where we know they will be run through another lazymap call to make sure there's at least one real one 23:41
pugssvn r30721 | diakopter++ | [S06] specify syntax for strongly-typed closure variables
TimToady of course, it's also perfectly legal to return 0 values, which is how failure is returned 23:42
sorear Can you parse return $candidate unless $xact->[-2] and $n; for me?
TimToady xact->[-2] says whether this list has been "cut"
$n is how many real values we've returned 23:43
the cut only applies to the 2nd and subsequent value, in other words
because the first value in the list is, in essence, the "current" hypothesis 23:44
pugssvn r30722 | diakopter++ | [S06] specify syntax for strongly-typed closure variables (reprise)
TimToady which is cutting away the rest of them.
otherwise the current hypothesis ends up commiting suicide, which is not desirable :) 23:46
or to look at it another way, there's a pedigree of hypotheses in our dynamic context, and some of them may have been 23:47
already pulled from their lazymap, and some not 23:48
we have to handle it either way.
23:49 rgrau_ joined, felipe joined
TimToady it's quite possible there's a more elegant way to do that, but it might also be beyond p5's capabilities 23:50
23:50 BrowserUk left
eternaleye moritz_: (backlogging) re "Where did class 'Block' come from" - you capitalized pi, so it looked for a sub instead of the (lowercase) constant 23:51
phenny eternaleye: 11:52Z <quester_> tell eternaleye The only problem with your definition of the Camellia metaop »ö« is that you have to declare "our sub infix:<ö>" and not just "sub infix:<ö>".
eternaleye erm, colomon capitalized it, and you realized. nvm
TimToady well, you have to declare it 'our' in rakudo, but that's a bug really 23:52
multi dispatch isn't supposed to have to look in packages
eternaleye TimToady: I use ibus, and compose works. Just put "xmodmap 'keysym Caps_lock = Multi_key'" somewhere it'll run on starting X, like bashrc or an autostart script 23:53
TimToady ibus under gnome? or kde? 23:57
Tene eternaleye: the issue was reading the .XCompose file, I thought. 23:58
23:59 justatheory joined