»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:00 mohij left 00:07 sftp joined 00:22 fribeiro left 00:24 berekuk left 00:57 kaare_ joined 01:01 ajr_ left
raydiak is there a consensus regarding file extentions for perl 6 scripts and modules? I've seen pl/p6/pl6, and pm/pm6 01:01
lue you forgot p6l and p6m :)
raydiak lue: my poor tangled neural pathways do not thank you :) 01:04
lue All are acceptable, though pl and pm can cause P5 confusion, imo. (In particular, I wish Rakudo would stop having their core implementation stored in .pm files) 01:05
raydiak yeah, I noticed vim for one doesn't notice if a pl or pm is perl 6 01:06
thanks lue++ ...as long as there isn't a single agreed standard, I won't worry about it 01:07
01:07 hoverboard left 01:13 thou left 01:16 kaare_ left, kaare_ joined 01:17 abnorman left
timotimo i have a binding <leader>p6 to :set ft=perl6 01:20
lue should get back to that emacs mode sometime... 01:21
timotimo is now interested in making a Perl6::Compiler::Whitelisted 01:22
it would be a QAST-level transformation that checks ops, calls and callmethods against whitelists and installs run-time checks for indirect lookups/method calls/sub calls/... 01:24
japhb raydiak: As the others have said, not much consensus. When starting a project myself, I've been thinking about .p6 for binaries, .pm6 for modules, and .pod6 for pure docs. 01:25
lue ^ that's what I do now.
timotimo ^ i'm going to adopt that
01:26 hoverboard joined
lue Hm, I wonder where it is I tell GitHub that yes, README.pod6 is supposed to be a README... 01:26
raydiak that's what I'm doing too, though I'm not entirely convinced on p6 vs pl6 01:27
my fingers seem firmly convinced that it should be pl6 when I tell them to type p6 01:30
01:34 colomon left 01:35 colomon joined 01:40 hoverboard left 01:47 genehack left 01:48 genehack joined 01:54 raiph joined 02:12 kurahaupo_mobile left 02:19 psch left 02:37 kivutar left 02:46 kurahaupo_mobile joined 02:56 hoverboard joined 03:11 raiph left 03:13 raiph joined 03:17 zakalwe left 03:18 zakalwe joined, zakalwe left, zakalwe joined 03:19 raiph left 03:26 zakalwe left 03:27 zakalwe joined, zakalwe left, zakalwe joined 03:32 zakalwe left 03:33 zakalwe joined 03:40 lue left 03:41 jnap left 03:46 SamuraiJack__ joined 03:47 PZt left
dalek rl6-roast-data: 65b58f0 | coke++ | / (6 files):
today (automated commit)
03:51
03:53 SamuraiJack__ left 03:58 lue joined 04:11 jnap joined 04:13 atroxaper joined 04:16 jnap left
[Coke] moar at 63.36% of jvm 04:28
atroxaper wow! 04:30
dalek kudo/nom: dc1544f | coke++ | lib/Test.pm:
track eval -> EVAL spec change
04:33
[Coke] if I want to grab just that commit without doing a full merge (using a cherry pick) - that's fine, yes? 04:34
(for moar-support branch)
[Coke] assumes so. 04:36
dalek kudo/moar-support: caa3b0f | coke++ | lib/Test.pm:
track eval -> EVAL spec change
04:37 Timbus joined 04:41 preflex left, preflex_ joined, ChanServ sets mode: +v preflex_, preflex_ is now known as preflex 04:59 kaleem joined 05:19 abnorman joined 05:23 DrEeevil left
[Coke] xkcd.com/1312/ - heh. 05:24
05:24 Grimnir_ left, preflex left 05:25 hoverboard left, Grimnir joined, Grimnir is now known as Guest68103 05:26 jnap joined, preflex joined, ChanServ sets mode: +v preflex 05:27 bonsaikitten joined, BenGoldberg left 05:30 jnap left 05:31 Grimnir_ joined 05:32 Guest68103 left 05:42 kaleem left 05:46 hoverboard joined
grondilu irclog.perlgeek.de/perl6/2014-01-02#i_8062978 « well, at some point, when Perl 6 is fast, we need to finish the final bootstrap stage of hiding nqp completely, but we're not there yet » 05:55
^ I'm not sure this is a possibility, from a theoretical point of view.
as I understand it, a self-hosted language should be defined in at least one simplified version of itself. 05:56
It's something related to the work of the logician Alfred Tarski, I think 05:58
otherwise I could write to you a one-line implementation of Perl6.
something like: eval { $*STDIN }
perigrin hiding not eliminating 05:59
grondilu oh, ok
perigrin nqp is [handwave] a subset of Perl6 06:00
geekosaur any time you have to drop into nqp from perl6 is a bug
lue grondilu: I think the idea was similar to hiding Parrot VM errors from rakudo-parrot users :)
geekosaur perl6 itself may do so, but you as someone writing a program in perl6 should not need to be aware of nqp or anything underneath it 06:01
grondilu not related: something's wrong with my local install of rakudo-parrot. 06:03
$ perl6 -e 'say "hi"'
===SORRY!===
month out of range. Is: 0, should be in 1..12
^ wtf?
moritz even my perl6-m gets that righter :-) 06:04
grondilu I did compile moarakudo recently. Could it have interfere with my installation of rakudo*? They are in very distinct directories, though. 06:06
grondilu ran 'make install' in the rakudo* directory and now it works again. 06:08
06:12 Grimnir_ left, Grimnir_ joined 06:13 atroxaper left 06:16 xenoterracide left 06:18 baest joined 06:26 jnap joined 06:31 jnap left 06:33 baest left 06:34 baest joined 06:35 nebuchadnezzar left 06:39 arcterus joined
arcterus Is the sized-array branch ready to be merged, or is there still something that I need to do? 06:43
moritz arcterus: irclog.perlgeek.de/perl6/2013-12-14 has some review by jnthn++ 06:49
06:49 arcterus left 06:50 nebuchadnezzar joined 06:51 arcterus joined 06:54 arcterus left 07:00 arcterus joined
arcterus moritz: thanks 07:00
07:03 arcterus left 07:13 PZt joined 07:15 kaleem joined
FROGGS[mobile] arcterus: I sent you a mail about that weeks ago 07:28
07:40 darutoko joined 07:52 nebuchadnezzar left 07:54 brrt joined 07:58 kurahaupo_mobile left 08:05 [Keith]- joined, [Keith] left 08:06 [Keith]- left, [Keith]- joined, [Keith]- is now known as [Keith] 08:09 zakharyas joined 08:12 [Sno] left, [Keith] left 08:13 [Keith] joined, [Keith] left, [Keith] joined 08:21 hoverboard left, hoverboard joined, hoverboard left, hoverboard joined
masak morning, #perl6 08:23
moritz good actual morning, masak :-) 08:26
08:28 jnap joined 08:33 jnap left 08:39 Piers joined
brrt \o #perl6 08:39
08:45 dmol joined
dalek ast: 14e7659 | (Elizabeth Mattijsen)++ | S02-types/deprecations.t:
Fix .eval deprecation test
08:51
09:01 brrt left, brrt joined 09:02 brrt left 09:13 kurahaupo left 09:14 Piers is now known as pdcawley, kurahaupo joined
FROGGS[mobile] grondilu: only do make m-install in your moarakudo, and it will only install perl6-m 09:16
09:19 daniel-s_ joined 09:27 xinming joined 09:29 jnap joined 09:30 xinming_ left 09:33 jnap left 09:35 nebuchadnezzar joined, arcterus joined
arcterus FROGGS[mobile]: sorry about that. apparently my email's spam filter mistook your email for spam... 09:36
FROGGS[mobile] happens... :o) 09:39
09:39 hoverboard left, arcterus left
FROGGS[mobile] would be awesome to get that feature in place... but I think you should talk about that with jnthn to make it happen 09:40
09:48 arcterus joined
arcterus FROGGS[mobile]: sounds good to me. 09:49
09:52 daxim joined 09:54 arcterus left
hoelzro morning #perl6! 09:56
raydiak \o good * hoelzro & #perl6 09:57
github.com/raydiak/pray # let the -Ofun be globally distributed :) 10:01
moritz raydiak++
hoelzro raydiak++
moritz raydiak: do you have some kind of release announcement?
raydiak moritz: I'm going to let you all tear it apart for a couple days before I announce 10:02
hoelzro huh
this is the first I'm seeing of the new Perl 6 syntax highlighting!
\o/
moritz \o/ indeed 10:03
hoelzro++
hoelzro and the project is detected as Perl6!
woooo
took long enough =P
I started that highlighter about a year ago!
wow, Dec 18 2012 10:08
masak raydiak++ # impressive 10:10
is there someone we can contact at Github so we can send them flowers (for the Perl6 detection)? :) 10:11
FROGGS \o/
hoelzro++ and raydiak++
hmmm, gists called foo.p6 are not recognized as Perl 6 though 10:12
hoelzro masak: I added the detection too
FROGGS maybe it needs updating
hoelzro FROGGS: I've noticed it's a bit off as well
ex. roast is just "Perl"
FROGGS: wrt gists, before or after posting? 10:13
FROGGS before
and after
hoelzro hmm 10:14
10:14 mohij joined
FROGGS v5 is Perl6 52.1% Perl 47.9% 10:14
nice to know :o)
hoelzro it seems I'll be poking the GH folks soon...
FROGGS: where do you see the language stats?
FROGGS there is a coloured bar on the front page of a repo
masak hoelzro++ # detection 10:15
FROGGS right underneath the title
and above the list of files
masak hoelzro: do you work at Github?
hoelzro ah
masak: no, I just wanted to do it
it was my way to help out!
FROGGS you an even filter it: github.com/rakudo-p5/v5/search?l=perl6
hoelzro roast: Perl 99.99% Other 0.1% =(
oh, that's neat
FROGGS even these recognize Perl 6 now, nice :o) osrc.dfm.io/froggs 10:17
10:19 sqirrel joined, betterwo1ld left
FROGGS damn, now I want to buy a github mug :/ # shop.github.com/ 10:21
masak "Carl Mäsak is a serious Perl coder who loves pushing code." -- I should put that on my business card. 10:22
"It seems like Carl is—or should be—friends with timo." -- timotimo: I should buy you a beer sometime :) 10:23
FROGGS masak: just come to the gpw in march :o) 10:24
masak unlikely :/ 10:26
FROGGS :( 10:28
but you are coming to the yapc::eu, right?
10:29 jnap joined 10:30 SHODAN left 10:32 SamuraiJack__ joined, SHODAN joined
masak yes, I'll do my very best. 10:34
10:34 berekuk joined, jnap left
raydiak alright, bed for me; 'night #perl6 10:36
masak 'night, raydiak++ 10:37
FROGGS gnight raydiak
10:49 arcterus joined 10:50 SamuraiJack__ left 10:52 arcterus left
hoelzro well, I done goofed. 11:04
I forgot to include .t as an extension for Perl 6 in both pygments *and* linguist 11:05
hoelzro facepalms
I know what I'm doing after work!
11:06 kurahaupo left, berekuk left
moritz you facepalm after work? 11:13
(just kidding)
hoelzro heh 11:14
11:16 atroxaper joined
dagurval hey FROGGS, osrc.dfm.io thinks we should be friends :P 11:16
FROGGS well, it is in the internet, it must be true :o)
dagurval hehe 11:17
11:24 sqirrel left
masak I read "facepalm after work" and pictured hoelzro in a reclining chair on a South Sea beach, being wafted with palm leaves. 11:25
FROGGS hehe 11:27
hoelzro that would be nice 11:28
are there any Perl5 files in roast? 11:29
other than fudge*?
11:30 jnap joined
moritz test_summary 11:31
and iirc the socket tests use a p5 script
not sure about that one though 11:32
dagurval rp: sub a(Pair $x) { }; a 'hello' => sub ($a) { };; a 'hello' => sub($b) { }
camelia rakudo-parrot dc1544: OUTPUT«===SORRY!=== Error while compiling /tmp/WTy8KjmzFk␤Variable '$b' is not declared␤at /tmp/WTy8KjmzFk:1␤------> o' => sub ($a) { };; a 'hello' => sub($b⏏) { }␤ expecting any of:␤ postfix␤»
dagurval should space between sub and ($b) really be required?
moritz std: sub($b) { }
camelia std 09dda5b: OUTPUT«===SORRY!===␤Variable $b is not predeclared at /tmp/Qn6x5LdRl7 line 1:␤------> sub(⏏$b) { }␤Word 'sub' interpreted as 'sub()' function call; please use whitespace around the parens at /tmp/Qn6x5LdRl7 line 1:␤------> …»
dagurval STD says YES
hoelzro ok, thanks moritz 11:33
I think I should use roast to tune the language detection a bit
FROGGS hoelzro:v5 could be more challenging 11:35
11:35 jnap left, spider-mario joined
hoelzro indeed =/ 11:36
I think I'll have to spend a bit of time on this, actually
stupid linguist doesn't allow you to provide your own heuristics =/ 11:37
pygments gets it right 99% of the time
linguist 1%
=( =( =(
moritz so, just always revert linguist's results? 11:38
masak :P 11:40
hoelzro haha
masak yeah, clearly listen to what linguist says, and then do the opposite.
it's only right in 1% of the cases, so you will have a high success rate.
woolfy dagurval: at the moment no special Perl 6 happenings are foreseen at FOSDEM. Did you have something in mind? Want to volunteer? :-) 11:41
masak woolfy! \o/ 11:42
FROGGS hi woolfy 11:43
woolfy ohoh... 11:44
:-)
dagurval woolfy: I was hoping to find an excuse to grab a few beers with #perl6 people :). 11:45
woolfy I forgot to wish you all a happy & healthy & successful 2014. Here it is. Happy & healthy & successful 2014 to all of you.
dagurval: in that case, be there at the friday night... the night before the event is the famous beer night at Delirium: Liz and I will certainly try to be there... fosdem.org/2014/practical/beerevent/ 11:46
masak woolfy: likewise. and since I like your ambitions/dreams re Perl 6, may they all come true.
wow, a beer night *at* Delirium. that sounds highly dangerous. 11:47
woolfy masak: thanks, I hope these dreams will come true... even though I never did much to make it so (except for supporting Liz and some of you)
Delirium Café is an immensely large pub and they have over 2,400 different beers, the book with descriptions of all their beers is a pleasure to browse through 11:48
masak woolfy: you're being too modest. if there's anyone's support I feel more or less constantly, it's yours. <3
dagurval This year I'll be sure to come timely. Last year it was full! Me and a friend I was traveling with gave up on it and ended up at another bar where the only table available was next to a bunch of XMPP guys. Which was great too, they were a great bunch of guys :). 11:50
woolfy Me modest? Hehe... 11:51
masak :)
woolfy dagurval: last year we were there at 17:00 and we "conquered" a nice big round table on the 1st floor, with enough space for 12 people and we had a nice and pleasant evening with a lot of Perl people, including some Perl 6 people 11:52
masak Perl 6 projects I want to work on in 2014: finish up p6cc2012, Nomic, Dark, macros/d3, MoarVM, secretary bot. 11:53
woolfy I hope we can repeat that same conquering this year. I hope I will not have pneumonia like last year, because I was not allowed to have any alcohol next to my medication...
masak++
masak trust me, this is more of a '++masak' declaration :P 11:54
but a guy can dream.
timotimo with a custom repr, would it be easy to implement mmapped file IO and shared memory regions? 12:11
moritz maybe for buffers 12:13
timotimo that was my thought, yes
i'm actually more interested in shared memory at the moment, though 12:14
there's an API with which you can display video frames to mplayer using shared memory. that would be a cool place for experimentation
(don't expect framerates above 1, though)
moritz 1 per... minute? :-)
timotimo yeah :) 12:15
12:16 atroxaper left
timotimo oh, actually i was wrong 12:22
you can pipe video data through the stdin of mplayer 12:23
12:31 jnap joined
jnthn afternoon o/ 12:31
preflex jnthn: you have 1 new message. '/msg preflex messages' to read it.
moritz \o jnthn 12:32
jnthn 63%...not bad
timotimo: How's le sort going?
FROGGS hi jnthn
timotimo jnthn: ran into a wall; can you look at it, too?
gist.github.com/timo/af7bc1b6725d1734a6eb 12:33
jnthn I'm looking at the wall you ran into. It looks quite intact, tbh.
:P
timotimo it seems to crash between "before the comparison" and "writing the * value to the b_list", so my guess is the call to comparator is somehow problematic
jnthn What's it crash with? 12:35
timotimo outer frame is of wrong type or something like that
jnthn ugh
timotimo When invoking frame_name_9928, Provided outer frame 0x5000510 (MVMStaticFrame frame_name_9929) does not match expected static frame type 0x5000390 (MVMStaticFrame message)
12:36 jnap left
jnthn That looks like an error reporting fail... 12:36
timotimo in any case i can't tell what's wrong :(
jnthn builds 12:37
If we can nail this before today's test run we might get some more %s :)
timotimo i'd like that :)
i think we have like 6 hours before it starts
12:39 mohij left, mohij joined
FROGGS jnthn: btw, that invocation of rethrow explodes here: github.com/rakudo/rakudo/blob/moar...on.pm#L180 12:43
-e "Nil.match" is a good test for that 12:44
jnthn timotimo: It looks like the dispatch to postcircumfix:[ ] fails in the block in the setting that is passed as the comparator. 12:47
timotimo oh, interesting
jnthn I wonder if we've an off-by-one somewhere and are passing something past the end of the input data? 12:48
In:
if $i0 < $right && ($i1 > $end || -1 == comparator(nqp::atpos(@data, $i0), nqp::atpos(@data, $i1))) {
Should that not be $i1 >= $end
FROGGS so I think it always explodes atm when it wants to print the list of candidates of a method call when
s/when// 12:49
timotimo that's a good question. let me look at the code i implemented again
jnthn FROGGS: Yes, looks like
timotimo you are right.
i'm annoyed that the error was so impenetrable :\ 12:50
hoelzro fg
dammit
apologies
timotimo you're back! \o/
hoelzro I am! 12:51
jnthn Well, when the error reporting is still busted... I but it mostly by just looking carefully at the backtrace though.
timotimo mhm. i should adopt that methodology
if it works now, i'll commit it 12:52
jnthn Well, now it doesn't crash, but it doesn't sort either :P 12:54
timotimo heh.
i think it needs to be return @b_list at the end
that doesn't explain why it doesn't look sorted at a ll, though
hm, no, it should be return @data 12:55
oh 12:56
it's expected to modify the list in-place
so the nqp::clone in the beginning is what busts it
jnthn ...but, you use @data everywhere else? 12:57
timotimo yeah, but not @input_data ;)
however, i can use this to have nqp::list_i for both arrays and be a tiny bit more efficient! 12:58
masak r: role Summable { method sum { [+] self.list } }; my @a = 1, 2, 3; @a does Summable; say @a.sum 13:01
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«6␤»
masak whoa. 13:02
r: role Proddable { method prod { [*] self.list } }; my @a = 10, 20, 30; @a does Proddable; say @a.prod
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«6000␤»
masak \o/
moritz p: role Summable { method sum { [+] self } }; my @a = 1..3; say (@a does Summable).sum 13:03
camelia rakudo-parrot dc1544: OUTPUT«6␤»
jnthn timotimo: oh, I see what you mean...yeah 13:04
jnthn removes the clone and builds, to see if it helps :)
xfix codegolf.stackexchange.com/a/17304/3103 13:08
Does it really have to be so ugly?
I need a function that finds most common keys in a bag. 13:09
moritz xfix: you shouldn't look for codegolf solutions when you want a pretty solution
xfix I don't mean this. I just ask if this could be shorter? 13:10
moritz first you find it ugly, now you don't want it prettier, but shorter?
xfix Python has most_common() method in counters.
moritz call me confused.
xfix I just was asking if there is something like that, so I wouldn't have to cast between many different types.
13:11 rindolf joined
moritz p: say bag <a b a b c b> 13:11
camelia rakudo-parrot dc1544: OUTPUT«bag(a(2), b(3), c)␤»
moritz p: say bag(<a b a b c b>).max
camelia rakudo-parrot dc1544: OUTPUT«bag(a(2), b(3), c)␤»
moritz p: say bag(<a b a b c b>).pairs.max(*.value)
camelia rakudo-parrot dc1544: OUTPUT«"b" => 3␤»
moritz p: say bag(<a b a b c b>).pairs.max(*.value).key
camelia rakudo-parrot dc1544: OUTPUT«b␤»
masak p: say bag(<a b a b c b>).pairs.sort 13:12
camelia rakudo-parrot dc1544: OUTPUT«"a" => 2 "b" => 3 "c" => 1␤»
masak meh.
p: say bag(<a b a b c b>).pairs.sort(-*.value)
camelia rakudo-parrot dc1544: OUTPUT«"b" => 3 "a" => 2 "c" => 1␤»
xfix At least removal of 􏿽xBB.key would be nice.
timotimo xfix: are you GlitchMr?
xfix yep
moritz ... but now your nick is golfed. 13:13
timotimo :) 13:14
masak xfix: does it really have to be so ugly? I need a nick that says "GlitchMr", but with fewer characters.
timotimo :P 13:15
xfix Yeah, sort of.
masak there's something about the Schwartzian transform that could be generalized and put into a language. 13:17
maybe LINQ is the closest manifestation of that anywhere.
there's also (which I've seen once, don't remember where) "do operation under a transform" which is an interesting idea. 13:18
13:19 abnorman left
xfix That indeed looks like an interesting idea. It would require a perfect object wrapper which remembers the position in list, but yeah. 13:19
13:19 skids joined 13:24 abnorman joined 13:25 shinobicl joined
masak I'm not quite sure what it would require. 13:28
I guess what I'm missing is some nice theory to bind it all together.
moritz probably a whole lot of architecture would be required :-)
masak it does remind me somehow about functors and natural transformations.
moritz: I'm not even sure about that. 13:29
moritz: it might be simply syntactic sugar.
timotimo there we go :)
masak I'm *not* suggesting we cram it into Perl 6, though :)
dalek kudo/moar-support: f920930 | (Timo Paulssen)++ | src/vm/moar/ (2 files):
implement p6sort on moarvm.
moritz and now, ladies and gentlemen, watch masak while he enters category theory :-)
13:29 kaare_ left
masak nah, I already bother you enough with category theory :P 13:29
timotimo i don't categorically oppose that 13:30
masak .oO( keep your eye on this identity arrow... focus on it... your eyelids are getting veeeeery heavy... )
13:30 atroxaper joined 13:32 jnap joined
colomon zzzzzzzzzzzzzzzzzzzzz 13:34
jnthn shoots an arrow at masak
masak r: sub length-of-sleep($sleep) { $sleep.chars }; say length-of-sleep 'zzzzzzzzzzzzzzzzzzzzz'
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«21␤»
13:35 kaleem left
jnthn multi sleep(Str $s where /^z+$/) { sleep($s.chars) } # :P 13:35
masak jnthn: you should definitely not shoot arrows inside of a category! all it takes is for a chain of arrows to lead back to you, and suddenly (by the definition of "category") you've shot yourself!
13:36 xenoterracide joined
masak r: multi sleep(Str $s where /^z+$/) { sleep($s.chars) }; say "going to sleep {now}"; sleep("zzz"); say "awake {now}!" 13:36
camelia rakudo-parrot dc1544: OUTPUT«going to sleep Instant:1388756234.272857␤Cannot call 'sleep'; none of these signatures match:␤:(Str $s)␤ in any at gen/parrot/BOOTSTRAP.nqp:1218␤ in any at gen/parrot/BOOTSTRAP.nqp:1209␤ in sub sleep at /tmp/L4NBiYKVry:1␤ in sub sleep a…»
..rakudo-jvm dc1544: OUTPUT«going to sleep Instant:1388756235.742␤Cannot call 'sleep'; none of these signatures match:␤:(Str $s)␤ in any at gen/jvm/BOOTSTRAP.nqp:1201␤ in sub sleep at /tmp/9Cv3wp2Qys:1␤␤»
13:36 jnap left
masak aww 13:36
the error is thrown from 'any'? 13:37
jnthn Oh...it musn't work 'cus sleep is not multi in the setting
13:37 benabik joined
jnthn So declaring one here hides it 13:37
masak oh! 13:38
r: multi sleep(Str $s where /^z+$/) { OUTER::sleep($s.chars) }; say "going to sleep {now}"; sleep("zzz"); say "awake {now}!"
camelia rakudo-jvm dc1544: OUTPUT«going to sleep Instant:1388756326.002␤No such method 'Any' for invocant of type 'Int'␤ in any at gen/jvm/BOOTSTRAP.nqp:1658␤ in sub sleep at /tmp/B9iameDYk8:1␤␤»
..rakudo-parrot dc1544: OUTPUT«going to sleep Instant:1388756324.020155␤No such method 'Any' for invocant of type 'Int'␤ in any at gen/parrot/BOOTSTRAP.nqp:1674␤ in any at gen/parrot/BOOTSTRAP.nqp:1669␤ in sub sleep at /tmp/BtacqqnHPF:1␤ in sub sleep at /tmp/BtacqqnHPF…»
masak mrrrrgh
13:38 benabik left
masak can't even get some decent &sleep around here! 13:38
jnthn bbiab 13:39
masak anyway, brownie points to whoever spectests and pushes making sleep a multi in the setting.
13:41 ajr joined 13:42 ajr is now known as Guest12053, Guest12053 is now known as ajr_
grondilu r: say ([*] 2 .. $_) / (2*log(2)**($_+1)) given 15 13:51
camelia rakudo-jvm dc1544: OUTPUT«2.3028319097785316E14␤»
..rakudo-parrot dc1544: OUTPUT«230283190977853␤»
colomon currently has a p5 program calling a p5 program which calls a p6 program. Gonna rewrite the top-level one to p6, though, I think. 13:52
grondilu r: my $n = 15; my $h = ([*] 2 .. $n) / (2*log(2)**($n+1)); say abs($h - $h.round);
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«0.15625␤»
grondilu n: my $n = 15; my $h = ([*] 2 .. $n) / (2*log(2)**($n+1)); say abs($h - $h.round); 13:53
camelia niecza v24-109-g48a8de3: OUTPUT«(timeout)[auto-compiling setting]␤»
grondilu is working on rosettacode.org/wiki/Hickerson_seri...ers#Perl_6 13:56
How can I have better precision than Num? Do I have to use native types? 13:57
dalek kudo/moar-support: 1324a70 | jonathan++ | src/core/GatherIter.pm:
Fix accidental double-nesting in gather/take hack.

Will go away once we get the real gather/take implementation done.
14:02
colomon grondilu: native types will not help at all
jnthn grondilu: Use Rat or FatRat? 14:03
FROGGS: Above seems to fix first two issues in gist.github.com/FROGGS/cbdcd4054a450d0faa22
colomon that won't help with calls to log, but it might help with **?
jnthn ah, true...
masak grondilu: use Rat or FatRat, by rounding the denominator to the nearest integer? 14:04
FROGGS jnthn++
will test is a sec
masak there will be loss of precision, but maybe not by much...
feels like it would be very negligible for large denominators.
14:07 pnu joined
masak pnu: you left on a jet plane, not knowing when you'd be back again -- and you came back within one minute!? :P 14:09
that's some jet plane.
grondilu tried with Rat and FatRats, does not help much. 14:10
masak aww
pnu masak: yes.. just flying from a cloud to another.. ;-)
grondilu also I had to build a Rat constant for log(2)
constant log2 = log(2).Rat 14:11
masak that sounds sensible in any case.
as it's computed a lot.
s/computed/used/
grondilu isn't it cached by the optimizer?
timotimo no, i don't think it does that
... maybe it does
look for a WVal in --target=optimize 14:12
timotimo has no compiled perl6 hand
handy
grondilu once wondered if a "deterministic" trait could not be used so that an optimizer would know whether or not he can cache a function call with a literal or constant argument 14:13
timotimo "is pure"
grondilu oh, I did not know about this trait. 14:14
timotimo it may be an implementation detail :P
also it will only work locally
grondilu anyway, this rosetta task is a tricky one.
dalek kudo/moar-support: 7118b92 | (Timo Paulssen)++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
implement arity_fail for moarvm's binder.
14:15
grondilu Maybe we could use a FatNum type ;-) 14:16
14:16 jnap joined
timotimo you may need to make clean to get the new bootstrap to stick :( 14:17
something's not quite right in the makefile i fear
grondilu r: say map &log, 1 .. 5 14:26
camelia rakudo-jvm dc1544: OUTPUT«0 0.7924812503605781 1.6094379124341003␤»
..rakudo-parrot dc1544: OUTPUT«0 0.792481250360578 1.6094379124341␤»
14:26 denis_boyun joined
grondilu r: say map &log, 6 .. 10 14:26
camelia rakudo-jvm dc1544: OUTPUT«0.9207822211616018 0.946394630357186 2.302585092994046␤»
..rakudo-parrot dc1544: OUTPUT«0.920782221161602 0.946394630357186 2.30258509299405␤»
grondilu r: say map { log($_) }, 6 .. 10
camelia rakudo-jvm dc1544: OUTPUT«1.791759469228055 1.9459101490553132 2.0794415416798357 2.1972245773362196 2.302585092994046␤»
..rakudo-parrot dc1544: OUTPUT«1.79175946922805 1.94591014905531 2.07944154167984 2.19722457733622 2.30258509299405␤»
grondilu sorry for the noise, I'm trying to reproduce a local weird behavior 14:27
r: say map &log, 1 .. 10 14:28
camelia rakudo-jvm dc1544: OUTPUT«0 0.7924812503605781 0.8982444017039272 0.9357849740192015 0.9542425094393249␤»
..rakudo-parrot dc1544: OUTPUT«0 0.792481250360578 0.898244401703927 0.935784974019201 0.954242509439325␤»
grondilu ^ this 14:29
14:29 kbaker_ joined
grondilu r: say (map &log, 1 .. 10).elems 14:29
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«5␤»
grondilu why 5 elements??
oh, I think I see 14:30
log can take two positional arguments, so it takes them two at a time
jnthn r: say (map *.log, 1..10).elems 14:31
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«10␤»
14:31 sqirrel joined
grondilu it's an easy error to make, imho. The logarithm base should not be given positionally, maybe. 14:32
r: say log(10, :base(10))
camelia rakudo-jvm dc1544: OUTPUT«Unexpected named parameter 'base' passed␤␤»
..rakudo-parrot dc1544: OUTPUT«Unexpected named parameter 'base' passed␤ in sub log at gen/parrot/CORE.setting:3847␤ in block at /tmp/jyJ3iBKewN:1␤␤»
grondilu r: say log(10, 10) 14:33
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«1␤»
timotimo r: say (1 .. 10)».log 14:35
camelia rakudo-jvm dc1544: OUTPUT«0 0.6931471805599453 1.0986122886681098 1.3862943611198906 1.6094379124341003 1.791759469228055 1.9459101490553132 2.0794415416798357 2.1972245773362196 2.302585092994046␤»
..rakudo-parrot dc1544: OUTPUT«0 0.693147180559945 1.09861228866811 1.38629436111989 1.6094379124341 1.79175946922805 1.94591014905531 2.07944154167984 2.19722457733622 2.30258509299405␤»
FROGGS jnthn: I can confirm that it works :o)
14:36 johnmilton joined
colomon r: [+] (1..100).map(-> $k { -1.FatRat ** ($k - 1) / $k }) 14:38
camelia ( no output )
colomon r: my $ln2 = [+] (1..100).map(-> $k { -1.FatRat ** ($k - 1) / $k }); say $ln2
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«-5.18737751763962026080511767565825315790897␤»
colomon r: my $ln2 = [+] (1..100).map(-> $k { (-1).FatRat ** ($k - 1) / $k }); say $ln2
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«0.688172179310195203244645882693484065938370␤»
colomon r: my $ln2 = [+] (1..100).map(-> $k { (-1).FatRat ** ($k - 1) / $k }); say ln 2 - $ln2 14:39
camelia rakudo-jvm dc1544: OUTPUT«===SORRY!=== Error while compiling /tmp/5GHTdx8GBk␤Undeclared routine:␤ ln used at line 1. Did you mean '&on', '&lc'?␤␤»
..rakudo-parrot dc1544: OUTPUT«===SORRY!=== Error while compiling /tmp/zK2v4p4fIq␤Undeclared routine:␤ ln used at line 1. Did you mean '&lc'?␤␤»
colomon r: my $ln2 = [+] (1..100).map(-> $k { (-1).FatRat ** ($k - 1) / $k }); say 2.log - $ln2
camelia rakudo-jvm dc1544: OUTPUT«0.004975001249750033␤»
..rakudo-parrot dc1544: OUTPUT«0.00497500124975003␤»
colomon ugh
r: my $ln2 = [+] (1..200).map(-> $k { (-1).FatRat ** ($k - 1) / $k }); say 2.log - $ln2
camelia rakudo-parrot dc1544: OUTPUT«0.00249375007812103␤»
..rakudo-jvm dc1544: OUTPUT«0.0024937500781210264␤»
14:39 denis_boyun left
colomon r: my $ln2 = [+] (1..1000).map(-> $k { (-1).FatRat ** ($k - 1) / $k }); say 2.log - $ln2 14:39
camelia rakudo-parrot dc1544: OUTPUT«0.000499750000124921␤»
..rakudo-jvm dc1544: OUTPUT«4.997500001249211E-4␤»
colomon r: my $ln2 = [+] (1..2000).map(-> $k { (-1).FatRat ** ($k - 1) / $k }); say 2.log - $ln2 14:40
14:40 xenoterracide left
camelia rakudo-jvm dc1544: OUTPUT«2.499375000077908E-4␤» 14:40
..rakudo-parrot dc1544: OUTPUT«0.000249937500007902␤»
colomon is impressed at the speed, depressed at the accuracy
moritz colomon++ # taylored functions
timotimo jnthn: any way we can make sure grammars and other things that i create inside an eval will get cleaned up by the java and/or parrot and/or moarvm GC after they become unreachable? 14:42
moritz hunt down the references to them?
timotimo not sure how :|
moritz do we create new SC in an eval? 14:43
moritz neither
timotimo that was my first thought, but i didn't know how to check
14:44 benabik joined 14:48 raiph joined 14:49 denis_boyun joined
grondilu colomon: this converges way too slowly. Feel free to suggest a faster series. 14:50
colomon grondilu: I'm working on it.
grondilu isn't there a continued fraction, maybe? 14:52
colomon grondilu: I'm trying to implement (13) from mathworld.wolfram.com/NaturalLogarithmof2.html
but I'm having an issue of some sort here.
grondilu lol 14:53
what a formula :)
colomon I'm building very elaborate FatRats which are never-the-less not terribly close to ln2
grondilu that's really the big guns
colomon I implemented sub infix:<choose>($n, $k) to get there. ;)
missed a term in the formula 14:54
that's got it working now 14:55
timotimo xfix: now you've made me try some codegolf myself :| 14:56
14:56 btyler joined
grondilu (18) and (19) should converge fast too. 14:56
(and much easier to implement) 14:57
colomon grondilu: sorry, got distracted by my wife 14:58
xfix timotimo, yeah. Sadly, Perl 6 is somewhat verbose (mandatory whitespace), but it works well in certain cases.
colomon gist.github.com/colomon/8239209 14:59
timotimo xfix: ".trim-trailing" *g*
colomon grondilu: try FatRat.new(33636436125281008291653702688829128057940764118386796024399, 48527119591121290137917232399964930206766900113689699942400) for your 2.log
xfix I mean, you cannot say `say[+]lines`. You have to type `say [+] lines`. 15:00
grondilu tries it
timotimo i'm trying the "transpose text" golf right now, but [Z~] will stop at the shortest line :( 15:01
colomon grondilu: there may be precision issues with using printf and a FatRat, btw. but if you switch to .gist for the output it does a good job
grondilu damn, amazingly even with this ln(2), it fails for n >= 16 15:02
15:02 xenoterracide joined
colomon grondilu: hold on, let me try to generate a better one for you. 15:04
FatRat.new(11497654316995854314538600826176386914675840284781772934832310629025531009647835922483180950073671, 16587608864985500678430621519107217028770145595488224555912965535307732927005633645841205742796800)
jnthn FROGGS: spectest looks a bit better in S05 after that fix too...
colomon r: say FatRat.new(11497654316995854314538600826176386914675840284781772934832310629025531009647835922483180950073671, 16587608864985500678430621519107217028770145595488224555912965535307732927005633645841205742796800)
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«0.693147180559945309417232121458176720436878413072877796805022437563561095101202914337276226823724532␤» 15:05
grondilu uses constant ln2 = [+] map { 1.FatRat / 2**$_ / $_ }, 1 .. *; 15:07
r: constant ln2 = [\+] map { 1.FatRat / 2**$_ / $_ }, 1 .. *; say .exp for ln2[^10] 15:08
camelia rakudo-parrot dc1544: OUTPUT«1.64872127070013␤1.86824595743222␤1.94773404105468␤1.97840638913757␤1.99081015044697␤1.99600130826677␤1.99823023188594␤1.99920616848774␤1.99964007107279␤1.99983535795882␤»
..rakudo-jvm dc1544: OUTPUT«1.6487212707001282␤1.8682459574322223␤1.9477340410546757␤1.9784063891375727␤1.9908101504469735␤1.9960013082667747␤1.9982302318859413␤1.999206168487736␤1.999640071072791␤1.999835357958819␤»
grondilu I tried with the 1000th term of (18) with no success :( 15:10
no success with the 2000th term either. 15:12
moritz aren't there any spigot algorithms for ln 2?
grondilu I suspect this is not the issue here. I think FatRat is just not Fat enough. 15:14
I should try with colomon's last value, though
15:14 thou joined
colomon FatRat is infinitely fat 15:14
diakopter also heavy 15:15
15:15 sqirrel left
grondilu colomon: FatRat.new(11497654316995854314538600826176386914675840284781772934832310629025531009647835922483180950073671, 16587608864985500678430621519107217028770145595488224555912965535307732927005633645841205742796800) failed as well for n >= 16 15:16
colomon grondilu: that sounds like something else is wrong here.
grondilu the code I'm trying: gist.github.com/grondilu/8239521 15:17
dalek kudo/moar-support: b7e8ae0 | jonathan++ | .gitignore:
Update .gitignore.
15:19
jnthn timotimo: If you want something to look into with a potentially very big win: t\spec\S32-num\rat.rakudo.moar hangs on the first test. 15:20
timotimo: If Rats are busted this could explain various hangs. Also could win quite a few tests :)
timotimo: oh, actually...maybe it hangs a bit later 15:22
timotimo probably didn't output all of its stuff before it hung?
15:22 ajr_ left
jnthn Yeah 15:22
Golfed it
It's Rat.new that hangs
(with no args)
timotimo i can look into that :)
15:23 ajr joined, ajr is now known as Guest89421, Guest89421 left
grondilu ooops SORRY 15:24
it's actually normal that for n >= 16 it's not almost integer
colomon right, was just seeing that
it fails in every example program.
15:25 ajr_ joined
grondilu then I guess I can use (18), it's a neat formula. Sorry for the false alarm, guys. 15:26
timotimo interesting
jnthn: ./perl6-m --ll-exception -e 'sub test(\a = 0, \b = 1) { say a, b }; test()
'
(Any)1
maybe the 0 comes up as "no default set" in the binder due to an improper check? 15:27
False gives the same output. and switching a and b around
15:27 ajr_ left
timotimo looks at the binder 15:27
15:28 ajr_ joined
timotimo yup 15:28
if (my $default := nqp::getattr($param, Parameter, '$!default_value')) 15:29
that would do it
jnthn Oh...yeah, that looks wrong.
timotimo do i compare that against NQPMu or nqp::isnull it? 15:30
jnthn Should be a null check
timotimo good
good hint btw :) 15:31
that could potentially unbust a lot more stuff 15:34
15:34 ajr_ left
timotimo # Looks like you failed 1 tests of 824 15:36
# FUDGED!
that's pretty darn good
15:36 ajr_ joined
timotimo not ok 823 - Rat.Rat yields correct Rat 15:36
# got: '301281685344656669 1250'
# expected: '301281685344656640 1250'
there you go :)
dalek kudo/moar-support: 7f8a180 | (Timo Paulssen)++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
fix default value check in moarvm binder, unbusts Rat.
timotimo todays test run is bound to give a much better percentage.
daxim wiki.python.org/moin/2.x-vs-3.x-su...survey.pdf (~40 KiB) 15:38
jnthn timotimo: Yes, what with this and sort... :) 15:41
15:41 ajr_ left
woolfy I bought ten soft toy camels, so-called Cool Camels. They can form the number 6. www.flickr.com/photos/wendyga/11731...9349680056 15:41
15:42 ajr_ joined
moritz woolfy++ 15:42
15:43 denis_boyun left
masak woolfy: cute! 15:43
jnthn Nice :) 15:44
15:44 espadrine left 15:46 espadrine joined 15:57 jnap left 15:58 Psyche^_ joined 16:01 jnap joined 16:02 Psyche^ left 16:07 kst` joined 16:09 kst left 16:45 colomon left
rjbs Take away two camels and you'd have a 5. 16:45
6 - 2 = 5
5 + 2 = 7
6 = 7
Debate settled.
16:46 colomon joined
japhb raydiak: Couple things I would suggest for scene files: 1) Change color(r:,g:,b:) to rgb(,,) or color('rgb',,,), since you may have other color spaces in the future, and it will just be confusing to magically figure out color space from names of coordinate keys; 16:48
2) In general, replace {"r":R,"g":G,"b":B} with [R,G,B] and {"x":X,"y":Y,"z":Z} with [X,Y,Z]. It's shorter, less cumbersome, and everyone knows what order they coordinates come in. Besides, you'll just want them in vector form anyway. 16:50
3) Consider putting instancing on your feature short list. The canonical examples are wheels on a car model, windows in a building model, and flowers in a garden model. If you do this in a general way, that will include material instancing, not just geometry instancing, and it will be way easier to make medium-complexity scenes by hand. 16:52
16:53 zakharyas left
japhb COLLADA has some interesting lessons here, not that it's perfect. But they did seem to understand where the boundary of named keys versus arrays of values should be (COLLADA used to advertize the interesting property that gzip'ed COLLADA scenes could often be smaller than native binary scenes from various modeling tools) 16:55
And they do a LOT of instancing.
(I should note that the interesting bit about that COLLADA file size claim is that at the outermost level, COLLADA is an *XML* format. It just stops doing that at a certain point in the object heirarchy and reverts to space-delimited arrays.) 16:57
17:03 atroxaper left 17:04 atroxaper joined 17:07 atroxaper left 17:09 atroxaper joined 17:11 kbaker_ left
japhb Further fun: Use 256 color terminal mode and additive color samples to make a swank preview mode. :-) 17:14
17:14 jnap left 17:15 ajr_ left 17:23 jnap joined 17:26 kbaker_ joined
timotimo Konsole from kde has full rgb ansi escapes. 17:32
and with half blocks you can use background and foreground to have two colors above each other for every character in your terminal 17:49
and these colors will be in mostly square blocks, rather than horribly stretched rectangles
raydiak japhb: yeah the way colors and coordinates are handled in the scene files is one of the things that will definitely be improved 17:51
instancing is also planned; I was thinking about putting a "resources" or somethring key, and a way to reference from the rest of the scene file 17:52
or a way to specify a path to any other data in the scene, wherever it may be
timotimo XPath style :) 17:53
17:53 Entonian joined
raydiak japhb: but medium-complexity scenes scare me until you have your way with the slow bits :) 17:53
yeah, exactly XPath
*exactly like
(and 'morning #perl6 \o) 17:54
timotimo 'morning raydiak :)
18:03 Entonian left 18:13 ajr joined, ajr is now known as Guest57224 18:14 Guest57224 is now known as ajr_
[Coke] r: say 20866 / 28453 18:15
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«0.733350␤»
18:18 ajr_ left 18:22 ajr_ joined 18:23 djanatyn left 18:24 djanatyn joined 18:25 dmol left
raydiak oh, and timotimo: I did think about going further to spruce up the preview...at least color...but I'm waiting to see whether we can still have a preview after concurrency is added without adding ncurses dependency or the like 18:29
18:35 denis_boyun joined, beastd joined 18:36 FROGGS[mobile] left
dalek rl6-roast-data: c667117 | coke++ | bin/ (3 files):
Don't bother dumping core.

  timotimo++
18:38
rl6-roast-data: 632bd75 | coke++ | bin/rakudo.moar.sh:
combine clone/checkout

  benabik++
18:39 [Keith] left, [Keith] joined
dalek kudo-star-daily: de56ca7 | coke++ | log/ (5 files):
today (automated commit)
18:39
18:42 djanatyn left, djanatyn joined 18:55 darutoko left, atroxaper left 18:56 abnorman left 18:57 btyler left 19:06 jnap left, dbrock joined 19:25 abnorman joined
japhb_ raydiak, I haven't had a chance to dive deep into the code (just the top two levels so far), but if you haven't already, there's a general algorithmic improvement that's usually worth it even relatively early in a ray-tracer's life: keeping a cache (usually only 1 or 2 entries) for each object of the most recent nearest other object hit by rays from that source -- then when emitting from that source always check that cached destination for inters 19:27
ection *first* in order to get an upper bound for distance to objects that might matter for that ray.
Once that's in place, the next optimization (which feeds in well to concurrency), is to send rays out in Hilbert Curve order, which maximizes the cache hits. 19:29
timotimo oh i love hilbert curves 19:30
japhb_ The part that works for concurrency is that the Hilbert Curve is self-similar, so you can break up the image into (say) 64x64 pixel squares, hand them off in Hilbert Curve order to the rendering task queue, and then each render worker picks up the squares and renders the pixels in Hilbert Curve order.
If you do multisampling, and more than a few samples, do the *samples* in Hilbert Curve order as well. 19:31
It's HC all the way down. ;-)
Of course, when you go concurrent, you'll either have to be smart about cache updates, or do the cache per-thread. (You might think this means it doesn't matter any more what order you send squares to the render queue, but there's still a second-order memory cache effect on the objects in the scene to be hit by the initial rays.) 19:33
19:37 ivanshmakov is now known as ivanshmakov-1 19:38 ivanshmakov joined 19:39 jnap joined 19:40 ivanshmakov-1 left
masak any native English-speaker free for a brief privmsg? :) 19:43
raydiak japhb_: thanks! makes sense, all noted - though I'll have to lose the preview
timotimo no preview? :( 19:45
raydiak or render extremely small portions at a time and buffer the output...
timotimo sure
raydiak or use ncurses and not have to worry about serial output
timotimo i'd love to get Blessinx (blessix?) up to speed for you
raydiak (choosing the render tile size based on the console preview doesn't sound very wise to me)
japhb_ raydiak, Oh, yeah, I was going to mention that. As long as the height of characters in the preview represent an area the height of the squares sent to the rendering queue, you can lose the outermost level of Hilbert-ing (keeping it within each render square), and still have a preview window rendered in row-wise order. :-)
raydiak, Other way around: Choose the preview size based on the render tile size. ;-) 19:46
masak loves the phrase "lose the outermost level of Hilbert-ing" :)
japhb_ Speaking of which, if you need the English speaker still, I'm here. Though you tend to be more pedantic than I. 19:47
raydiak japhb_: unless I'm doing higher-res renders, won't that create extremely small previews for reasonable tile sizes? 19:48
timotimo i think i'll see if i can find something to cause the slowness in stage mast ...
raydiak: the preview should be as big as the terminal we're using, methings
raydiak I agree...that's what confused me about "choose the preview size based on the tile size" 19:50
timotimo that was probably a tiny thinko 19:51
raydiak or if you mean "the preview should not assume 80 columns", I also agree with that, but want to keep it portable
timotimo sure, if you just set the preview size based on some variable, it doesn't matter what source the value for that variable is
raydiak I was thinking about just letting people pass --preview=160 or whatever 19:52
and what is Blessinx? 19:53
timotimo i tried to port the "blessings" module from python to perl6
the name is crazy lame, though
raydiak I'll probably have to buffer the whole image in memory eventually anyway, so worst case for the preview is only undating it in 64-pixel rows at a time or something 19:54
timotimo for a preview, wouldn't it be enough to very roughly sample?
instead of letting all the data flow into the output?
just have like 2 samples per character that ends up on the terminal? 19:55
japhb_ pops his window stack
raydiak you mean cast separate rays for the preview? 19:56
japhb_ Hmmm, actually raydiak, that's an excellent idea.
raydiak ?
japhb_ Since a 64x64 tile has 4K pixels in it, if you cast a ray or 4 per tile for the preview, your total runtime doesn't even increase a tenth of a percent. 19:57
timotimo yeah, that way you could have a preview very early 19:58
raydiak both true
japhb_ Come to think of it, a preview ray per 16x16 subtile would also be "efficient enough", and work well for small renders that would otherwise result in a tiny preview. 20:00
raydiak though I might rather keep it throttled with the rendering process, so it still functions as a progress indicator...if I just want a fast preview, I try --width=32 before starting a higher-res version
I could also probably disable some of the lighting features in some cases, or render in greyscale, to make the preview parts go faster 20:01
japhb_ The other thing is that you can just keep a running counter updated with tile number, or (swankier) a status line with number of queued tiles, number of active tiles, and number of finished tiles. \r to the rescue. ;-)
japhb_ has used r to great effect many a time. 20:02
raydiak as long as it works as expected in cmd.exe, too, I'm all for it :)
japhb_ I think it should ... but I haven't used that in quite a while. 20:03
raydiak not a windows fan myself, but not abandoning supporting it either
FROGGS maybe the autoflush could be a problem on windows
japhb_ I've also done the moral equivalent of '"\c8" x $message.chars' on truly lame terminals.
raydiak gotta run some errands; thanks for all the advice, everyone! 20:08
japhb_ You're quite welcome. :-)
20:09 kathyz joined
ribasushi buahahahahahahahahahahahahaha 20:10
python devs discover... ithreads (in 2014): permalink.gmane.org/gmane.comp.pyth...kless/5874 20:11
timotimo hey mister sushi :) 20:12
ribasushi o/
FROGGS o/ 20:13
20:28 dmol joined 20:37 jnap left 20:38 skids left 20:40 xenoterracide left, jnap joined 20:42 rindolf left 20:49 xenoterracide joined 21:02 xenoterracide left 21:10 kathyz left
lizmat resolves to look at backlog since Dec 24 and make a list of issues to be looked into 21:12
timotimo sounds good :) 21:17
ajr_ masak; did you get your English speaker? 21:20
dalek ecs: dcaef33 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Add HN related lemma's
21:21 xenoterracide joined
timotimo jnthn: can you tell me if i can get at the line number of a QAST::Block's (for example) .node from inside QASTCompilerMAST.nqp? 21:21
if and how*
er, more precisely how i can get at the compiler object in use that would have the right .lineof method
masak ajr_: yes; thanks.
timotimo hm, actually, this may be a bad idea.
FROGGS timotimo: I thought :node gets $/ so you can try to find that match (and so the line number) when producing a backtrace 21:22
[Coke] r: say 21339 - 20866; # how long until moar passes niecza :( :)
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«473␤» 21:23
FROGGS wow
[Coke] (and I think we already got some of those.)
FROGGS the numbers are great, even when that does not say much about usability
woolfy \o/ rjbs++ 21:24
woolfy was looking through backlog and saw rjbs do 6=7 & "Debate settled" which makes me happy 21:28
lizmat re irclog.perlgeek.de/perl6/2013-12-23#i_8033798 21:32
r: my @a; say @a[*-1]:exists; say ?(@a[*-1]:exists)
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«False␤True␤»
lizmat I'm not sure how the latter flips the boolean state 21:33
[Coke] woolfy, lizmat: Hio!
lue r: my @a; say (@a[*-1]:exists).WHAT 21:34
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«(Parcel)␤»
lizmat [Coke]: hio to yuo too
japhb_ a = b = 1; a * a = b * a; a * a - b * b = b * a - b * b; (a + b) * (a - b) = b * (a - b); a + b = b; a + b + 5 = b + 5; 1 + 1 + 5 = 1 + 5; 7 = 6; # There, a second, independent proof.
timotimo FROGGS: the match has the position in the string, but to get the line number you have to go through the lineposcache
lizmat ah, of course
lue r: my @a; say (@a[*-1]:exists).perl
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«(Bool::False,)␤»
lue r: say ?(Bool::False,)
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«True␤»
lue lizmat: that's why ^ 21:35
lizmat ah, so the problem is really that [*-1] returns a Parcel rather than a Bool
lue r: my @a; say (@a[0]:exists).perl 21:36
camelia rakudo-parrot dc1544, rakudo-jvm dc1544: OUTPUT«Bool::False␤»
lizmat lue: the array slice handler sees it's a single element, so returns Bool 21:37
[*-1] it cannot see it's a single element 21:38
I think, hmmm.... lemme check
lue lizmat: I was just checking on your "specific to [*-1]" statement, that's all.
timotimo i think i want to give rakudo support for sub(:named(1):named(2):named(3)) this month 21:39
21:43 wtw left, wtw joined 21:45 kbaker_ left
dalek kudo/nom: e322495 | (Timo Paulssen)++ | docs/ChangeLog:
a few changelog entries
21:46
21:56 wtw left 21:57 kaare_ joined
timotimo so ... how do i get rxtrace to actually do anything at all for rakudo instead of nqp? 22:07
right now it just stops dead in its tracks once it reaches compunit
(--target=parse is much more helpful if your parse doesn't abort somewhere) 22:08
FROGGS I think you would have to PerlG::Grammar.HOW.trace-on(Perl6::Grammar) 22:09
same for Q and Regex
timotimo mhm
FROGGS I do this for v5: Perl5::Grammar.HOW.trace-on(Perl5::Grammar) if nqp::getenvhash()<V5TRACE> eq 'Perl5::Grammar';
timotimo some time i'll fix that >_>
22:10 shinobicl left
FROGGS p: BEGIN { use Perl6::Grammar:from<NQP>; PerlG::Grammar.HOW.trace-on(Perl6::Grammar) }; say 42 22:11
camelia rakudo-parrot dc1544: OUTPUT«===SORRY!===␤Could not find symbol '&Grammar'␤»
22:11 monk111 joined
FROGGS p: BEGIN { use Perl6::Grammar:from<NQP>; Perl6::Grammar.HOW.trace-on(Perl6::Grammar) }; say 42 22:11
camelia rakudo-parrot dc1544: OUTPUT«Calling postfixish␤ Calling stdstopper␤ Calling MARKED␤ Calling terminator␤ Calling terminator:sym<;>␤Calling ws␤ Calling MARKED␤ Calling _ws␤ Calling ww␤ Calling MARKER␤Calling infixish␤ Calling stdstopper␤ …»
FROGGS nice typo >.<
monk111 may i have the wisdom of other monks here plz?
FROGGS monk111: for free? :o) 22:12
monk111 yep ;) 22:13
anyone on genetic algorithms
i'm kinda stack
22:13 BenGoldberg joined
monk111 terminate funtion is not terminating 22:13
FROGGS O.o
monk111 specifically speaking of AI::Genetic::Pro; 22:14
FROGGS monk111: can you put your question in a one-liner and run it here via p: ?
ohh, seems like not
timotimo we have a module for that? cool
FROGGS that is a Perl 5 module :/ 22:15
timotimo ... oh :(
monk111 sooo.. channel then ? :P
FROGGS maybe #perl-help on irc.perl.org?
huf or just #perl on this network 22:17
masak monk111: sorry to hear you're stack. hope they can help you on some Perl 5 channel. 22:27
FROGGS monk111: there seems to be a channel: irclog.tt.ro.vutbr.cz/perl-ai/2011-11-28 22:29
monk111: and a mailing list: www.google.de/url?sa=t&rct=j&am...7178,d.Yms 22:31
eww, sorry
monk111: this lists.perl.org/list/perl-ai.html
masak .oO( WHO DEFILES MY BACKLOG WITH UNAESTHETIC URLS ) 22:32
FROGGS :/
22:33 monk111 left
lue .oO(%20WHO%20DEFILES%20MY%20BACKLOG%20WITH%20UNAESTHETIC%20URLS%20) 22:33
22:33 colomon left
FROGGS .oO(+WHO+DEFILES+MY+BACKLOG+WITH+UNAESTHETIC+URLS+) 22:34
22:34 colomon joined 22:39 djanatyn left 22:40 djanatyn joined
japhb_
.oO( "We do!" [ from The Simpson's Stonecutters Song] )
22:44
Gah, move that apostrophe one word to the right. Sigh.
22:46 HaraldJoerg joined
jnthn Wow, we broke 70% mark already? :) 22:49
timotimo yup :D
japhb_ What's the current %?
jnthn Now somebody fix the unicode property testes in S05 :P
That'll be another bunch :P
japhb_ jnthn, What's your minimum % to merge moar-support? 22:50
FROGGS I'd vote for 83% :o)
japhb_ 5/6? Why? 22:51
jnthn japhb_: Well, I'm not quite so worried about % as I am about it building.
japhb_: I think merging conveys "we at least build and pass sanity test quite reliably"
timotimo wow. i'm trying to .dump a match object from arglist's EXPR and it goes over the recursion limit o_O 22:52
how does that happen
lizmat circular refs?
timotimo yeah, but how?
japhb_ .DUMP? Circular refs should be noticed and trimmed.
timotimo .dump actually
dump comes from NQP's NQPMatch 22:53
japhb_ Oh ah. Yeah, that may not have circular ref detection.
timotimo why would the match stuff ever build a circular ref? 22:54
22:55 woolfy joined
timotimo i'd like to pass a flag deep into nqp-land to only get that output when i give a commandline flag or env var 22:55
hm, maybe an env var would be kinda easy to check
how do i do that in nqp? query a single env var? 22:56
FROGGS <FROGGS> I do this for v5: Perl5::Grammar.HOW.trace-on(Perl5::Grammar) if nqp::getenvhash()<V5TRACE> eq 'Perl5::Grammar';
timotimo oh!
FROGGS :o)
diakopter wuts wring eith the unicode tests
timotimo they fail
diakopter ..
FROGGS it is failicode 22:57
diakopter: fix 'em if you can handle the fame :o)
diakopter well 22:58
I'll see
[Coke] ugh, rakudo.jvm test_summary run sooo slow.
FROGGS yeah, that prevents me fro running a v5 test on it
from*
23:02 dmol left, johnmilton left
japhb_ preflex, tell jnthn Along with native-type union() -- the most immediate case of which is the num32/uint32 and num64/uint64 cases I need for Protocol Buffers -- it would also be nice to have fast NQP ops for byteswap of uint16, uint32, uint64 (and uint128, if that's even a thing in Perl 6) 23:02
preflex Consider it noted.
timotimo but jnthn is right here! 23:03
jnthn japhb_: byteswap as in, endian conversion?
preflex jnthn: you have 1 new message. '/msg preflex messages' to read it.
FROGGS right over there --^
japhb_ jnthn, yeah, exactly.
timotimo: Heh, I read FROGGS saying "jnthn jnap" as jnthn saying he was taking a nap. :-) 23:04
timotimo :D
jnthn japhb_: I'm pondering that these want to be operations on buffers or something like that.
23:05 HaraldJoerg left
japhb_ jnthn, that's fine by me, as long as there's a way to convert num* to a buffer. :-) 23:05
But yeah, byteswapping a 2**n-byte section of a buf8 seems very valuable. 23:06
jnthn buf is mutable, so no reason we can't implement a whole bunch of methods for doing these things.
japhb_ nodnod.
I suggested an NQP op, because if you're having to do endian conversion, you're generally having to do it a LOT, and every bit of speed counts. 23:07
jnthn aye
But we still want a nice method-y Perl 6 API to it.
lizmat will dream about fixing @a[*-1]:exists returning a Parcel rather than a Bool 23:08
japhb_ No argument. There's no reason not to have a method on the buf that wraps the nqp::op, especially if we want to do "byteswap every 8-byte chunk of this big buffer" or "... of this byte range within the buffer"
FROGGS lizmat: sleep well :o)
japhb_ (day)dreams of ISAs that included arbitrary byte rearrangement as a single instruction. 23:10
.oO( You want those bytes in 18275634 order? We can do that! )
23:11
23:13 wooden left
timotimo hrmpf. making sure adverbial forms will end up in the arglist properly seems a bit daunting 23:15
japhb_ Interesting data point: To write a double in Go's native binary serialization format, you union it to a 64-byte integer, endian swap it, then write the resulting integer using 7-bits-per-octet variable-length encoding. They do this because they claim the win from dropping all the trailing zeroes in floating-point values that happen to be integers or simple base-2 fractions more than makes up for the expansion from variable-length encoding.
timotimo hm, maybe i just need to look out for fake_infix 23:16
lue japhb_: surely you mean 7-bits-per-byte? :) 23:18
japhb_ lue: "7 bits of source data per octet of serialized data"
lue Ah, I misread that as you saying "7 bits per 8 bits" then :) 23:19
japhb_ I used to hate the use of 'octet'. And now I do it all the time, as a way to differentiate between in-memory and serialized forms.
Spent too much time around network engineers, I guess. :-) 23:21
lue I use 'octet' whenever I'm in a environment that doesn't guarantee 8b/B . Which doesn't happen often.
japhb_ is reminded of modems and other serial beasties 23:23
diakopter like Tony the Tiger 23:24
23:28 wooden joined, wooden left, wooden joined
masak :P 23:32
clearly, if I got that one, Sweden is too influenced by US culture for its own good...
23:32 wtw joined
masak (and yes, we had them at home. corn with *sugar* on it! it was the 1980s and no-one knew sugar was dangerous.) 23:33
jnthn We have frosties in UK too :P
I ate those for breakfast loads as a kid :)
All that sugar. Guess that's why I turned out so bad. 23:34
:P
japhb_ en.wikipedia.org/wiki/Honey_Smacks <-- Originally called "Sugar Smacks". Seriously.
masak :P
japhb_ jnthn: Truly bad to the bone.
masak .oO( Originally called "Cheese Smacks". Syriously. ) 23:35
23:35 aindilis joined
japhb_ en.wikipedia.org/wiki/Honey_Smacks#Sugar_content # You gotta love people selling something that is over half sugar by weight as a kid's breakfast cereal. That takes ... a certain mentality. 23:40
Perhaps one which hates parents.
FROGGS or teeth 23:45
23:45 mohij left
masak or children. 23:45
lue or sugar production workers. 23:47
23:47 denis_boyun left 23:52 silug_ joined, silug_ is now known as silug
japhb_ Heh. After the octet discussion with lue, it turns out that they don't use the 7-bits-per-octet encoding after all; that was a misleading article. They use one-byte value if representable in 7 bits, or negated byte-count followed by minimum bytes to represent if needing more than 7 bits. That seems a bit complex, but I guess it avoids bitwise shifts in the common case, which could be slow on some arches. 23:52
23:58 ajr_ left