»ö« | 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 11current 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«12123132312341424124341342341234» | ||
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«121 231 32 31 2 341 42 41 2 43 41 3 42 3 41 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 57syntax error ... somewherecurrent 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 loopUndeclared 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 000in Bar 555» | ||
diakopter | perlesquel: . | ||
p6eval | perlesquel: OUTPUT«in Bar 000in Bar 555real 0.04user 0.04sys 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 2foo 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 15syntax error ... somewherecurrent 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 17syntax error ... somewherecurrent 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 argumentscurrent 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 stringcurrent 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 &Picurrent 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 stringcurrent 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 stringcurrent 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 stringcurrent 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 stringcurrent 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«11» | ||
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«something1» | ||
jnthn | :-) | ||
isBEKaml | rakudo: say say "something".perl.say; | ||
p6eval | rakudo 603c64: OUTPUT«"something"11» | 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 expectedin 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
|