»ö« 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/WTy8KjmzFkVariable '$b' is not declaredat /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.272857Cannot 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.742Cannot 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.002No 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.020155No 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/5GHTdx8GBkUndeclared routine: ln used at line 1. Did you mean '&on', '&lc'?» | ||
..rakudo-parrot dc1544: OUTPUT«===SORRY!=== Error while compiling /tmp/zK2v4p4fIqUndeclared 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.648721270700131.868245957432221.947734041054681.978406389137571.990810150446971.996001308266771.998230231885941.999206168487741.999640071072791.99983535795882» | ||
..rakudo-jvm dc1544: OUTPUT«1.64872127070012821.86824595743222231.94773404105467571.97840638913757271.99081015044697351.99600130826677471.99823023188594131.9992061684877361.9996400710727911.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«FalseTrue» | ||
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 MARKERCalling 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
|