Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-11-08

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:04 alvis joined #perl6
00:09 abercrombie joined #perl6
00:10 sorear now I've picked out a new strategy for char classes and other random bits
00:10 sorear if only I had a reasonably complete Unicode Character Database accessible from C#!
00:14 sorear oh hey, Mono finally has General_Category data available for the astral planes
00:14 sorear in master
00:14 sorear but I need _all_ the properties for :Foo<Bar>
00:21 benabik joined #perl6
00:29 sorear o/ benabik
00:29 benabik o/ sorear
00:33 replore joined #perl6
00:42 benabik joined #perl6
00:44 geekosaur joined #perl6
00:45 sorear mode -b $a:clairvy
01:01 hypolin joined #perl6
01:07 geekosaur joined #perl6
01:16 whiteknight joined #perl6
01:16 kfo joined #perl6
01:33 geekosaur joined #perl6
01:35 TimToady sorear: I'd suggest stealing the tables from Perl 5
01:38 sorear TimToady: are you suggesting stealing the .txt files, or trying to port maketables?
01:43 dalek 6model: 2941d14 | diakopter++ | lua/ (2 files):
01:43 dalek 6model: more attempts at optimization
01:43 dalek 6model: review: https://github.com/diakopter/6model/commit/2941d14aac
01:48 TimToady I'm suggesting having maketables spit out P6 instead of P5
01:49 TimToady but whatever is easiest
01:49 TimToady P5 has the best Unicode support of any language out there currently, and only ICU is comparable in coverage
01:51 daemon joined #perl6
01:52 geekosaur joined #perl6
01:52 TimToady it's probably worth talking to Karl Williamson <public@khwilliamson.com>, who maintains the Unicodey bits of P5
01:52 TimToady whoops, didn't mean to post the address...
01:55 TimToady decomputing &
01:56 geekosaur joined #perl6
01:59 simcop2387 joined #perl6
02:01 geekosaur joined #perl6
02:11 sorear wah?  khwilliamson.com points to a domain squatter
02:15 geekosaur joined #perl6
02:21 wolfman2000 joined #perl6
02:25 geekosaur joined #perl6
02:29 agentzh joined #perl6
02:37 geekosaur joined #perl6
02:50 dalek 6model: 6fc09fa | diakopter++ | lua/ (3 files):
02:50 dalek 6model: more optimization attempts
02:50 dalek 6model: review: https://github.com/diakopter/6model/commit/6fc09fa4c0
02:55 danielb joined #perl6
02:57 geekosaur joined #perl6
03:02 clairvy joined #perl6
03:08 geekosaur joined #perl6
03:11 Guest68811 left #perl6
03:12 sorear sent a probably horrible mail to Karl Williamson
03:18 daniel__ joined #perl6
03:24 eviltwin_b joined #perl6
03:34 geekosaur joined #perl6
03:44 jaldhar joined #perl6
03:45 preflex_ joined #perl6
03:53 geekosaur joined #perl6
04:05 satyavvd joined #perl6
04:08 geekosaur joined #perl6
04:09 molaf joined #perl6
04:10 eviltwin_b joined #perl6
04:11 mkramer joined #perl6
04:18 eviltwin_b joined #perl6
04:27 eviltwin_b joined #perl6
04:29 geekosaur joined #perl6
04:30 envi_ joined #perl6
04:45 geekosaur joined #perl6
04:50 eviltwin_b joined #perl6
04:54 eviltwin_b joined #perl6
05:13 orafu joined #perl6
05:22 geekosaur joined #perl6
05:31 dalek roast: 48af882 | moritz++ | S32- (2 files):
05:31 dalek roast: refudge encode.t for rakudo
05:31 dalek roast: review: https://github.com/perl6/roast/commit/48af8822a9
05:32 moritz good morning
05:35 sorear o/ moritz
05:35 dalek rakudo/nom: c0b2e3a | moritz++ | / (3 files):
05:35 dalek rakudo/nom: enable "UTF-8" as encoding name, as well as a few aliases for ISO-8859-1; run encode.t
05:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c0b2e3a205
05:51 geekosaur joined #perl6
05:54 sorear TimToady: I've already gotten a responce back from Karl
05:55 sorear TimToady: 1. he doesn't know anything about P6 2. he thinks modification shouldn't be too hard 3. but he said mktables' raison d'etre is gone now that UCD-XML exists and if I'm going to make significant changes I should just use that instead
05:55 * sorear is reading UAX#42 now
05:57 packetknife joined #perl6
05:59 * sorear thinks that the Unicode names list could be very effectively compressed by Huffman-coding with words as the symbol level
06:00 sorear LATIN SMALL LETTER A WITH OGONEK ... not much entropy here!
06:09 simcop2387 joined #perl6
06:11 geekosaur joined #perl6
06:13 daniel-s joined #perl6
06:16 eviltwin_b joined #perl6
06:25 geekosaur joined #perl6
06:32 simcop2387 joined #perl6
06:44 simcop2387 joined #perl6
06:44 eviltwin_b joined #perl6
06:46 eviltwin_b joined #perl6
06:56 simcop2387 joined #perl6
07:02 geekosaur joined #perl6
07:04 eviltwin_b joined #perl6
07:06 wk joined #perl6
07:11 simcop2387 joined #perl6
07:19 wk_ joined #perl6
07:22 dual joined #perl6
07:22 mishin joined #perl6
07:26 * sorear sleep
07:29 kst joined #perl6
07:42 envi_ joined #perl6
07:44 geekosaur joined #perl6
07:57 kaleem joined #perl6
07:58 baest joined #perl6
08:19 geekosaur joined #perl6
08:28 daxim joined #perl6
08:32 MayDaniel joined #perl6
08:40 mkramer left #perl6
08:40 Trashlord joined #perl6
08:47 mj41 joined #perl6
08:50 geekosaur joined #perl6
08:57 geekosaur joined #perl6
09:07 moritz nom: '(a)' ~~ / '(' ~ ')' <alpha> / and say $<alpha>
09:07 p6eval nom c0b2e3: OUTPUT«Any()␤»
09:08 moritz nom: '(a)' ~~ / <alpha> / and say $<alpha>
09:08 p6eval nom c0b2e3: OUTPUT«=> <a>␤␤»
09:11 geekosaur joined #perl6
09:18 simcop2387 joined #perl6
09:21 jnthn morning, #perl6
09:21 moritz good morning jnthn
09:25 mishin joined #perl6
09:26 moritz jnthn: fwiw I've done a quick grep of nqp::\w_i ops in the src/core/ and implemented the _I variants of all of them (I think :-)
09:26 moritz erm, \w+_i of course
09:27 dakkar joined #perl6
09:27 moritz so apart from floating point conversion the bigint stuff should be feature complete
09:27 alc joined #perl6
09:29 jnthn moritz: nice!
09:30 jnthn moritz: I'll try and get the last 6model change needed in place today.
09:31 icwiener joined #perl6
09:32 moritz jnthn: one more thing, I'm pondering what to do about integer exponentation
09:32 moritz tommath offers a mp_pow(mp_int, mp_digit)
09:33 simcop2387 joined #perl6
09:33 moritz so that works for  up to $N ** (2 ** 31) or so, and I don't think we want to handle higher numbers anyway
09:33 moritz so I'm pondering something along these lines:
09:34 moritz 1) a special case when the exponent is 0 or 1
09:34 moritz 2) if the exponent is < 0, delegate to the pow_n opcode
09:34 moritz 3) if the exponent doesn't fit into an mp_digit, return +-Inf
09:35 moritz 4) otherwise, use mp_pow
09:35 moritz does that sound sane?
09:35 moritz or over-engineered?
09:37 geekosaur joined #perl6
09:43 masak morning, #p6
09:44 moritz perl6: say (-3) ** -1
09:44 p6eval niecza v11-22-gbebf7a0: OUTPUT«-1/3␤»
09:44 p6eval ..rakudo c0b2e3: OUTPUT«-0.333333333333333␤»
09:44 p6eval ..pugs b927740: OUTPUT«*** ␤    Unexpected "-"␤    at /tmp/aqCjROpWag line 1, column 13␤»
09:45 moritz perl6: say (-3) ** (-1)
09:45 p6eval niecza v11-22-gbebf7a0: OUTPUT«-1/3␤»
09:45 p6eval ..rakudo c0b2e3: OUTPUT«-0.333333333333333␤»
09:45 p6eval ..pugs b927740: OUTPUT«-0.3333333333333333␤»
09:45 moritz perl6: say (-3) ** (-2)
09:45 p6eval niecza v11-22-gbebf7a0: OUTPUT«1/9␤»
09:45 p6eval ..rakudo c0b2e3: OUTPUT«0.111111111111111␤»
09:45 p6eval ..pugs b927740: OUTPUT«0.1111111111111111␤»
09:48 moritz perl6: say 0 ** 0
09:48 p6eval pugs b927740, rakudo c0b2e3, niecza v11-22-gbebf7a0: OUTPUT«1␤»
09:48 jerome_ joined #perl6
09:48 mj41 joined #perl6
09:56 jnthn moritz: Sounds like it covers the various cases sanely.
09:57 jnthn moritz: Though it means that infix:<**> for Ints may not give you an Int back
09:57 jnthn Guess there's precedent for that though.
09:57 jnthn And the negative ones really can't...
09:57 moritz right
09:57 jnthn So, seems fine.
09:57 moritz jnthn: should the op also take the type object of the Float type to box into?
09:58 moritz otherwise we'd have to return a parrot Float
09:58 jnthn ah, good question
09:58 jnthn Guess it probably has to
09:58 f00li5h joined #perl6
09:59 jnthn Until I do the 6model language interop stuffs.
09:59 eviltwin_b joined #perl6
10:01 eviltwin_b joined #perl6
10:03 daniel-s joined #perl6
10:07 dalecooper joined #perl6
10:08 masak yeah, expecting infix:<**> to return an Int doesn't feel that important.
10:08 simcop2387 joined #perl6
10:09 dalecooper joined #perl6
10:11 eviltwin_b joined #perl6
10:15 moritz perl6: say (3**4).WHAT
10:16 p6eval pugs b927740: OUTPUT«Rat␤»
10:16 p6eval ..rakudo c0b2e3, niecza v11-22-gbebf7a0: OUTPUT«Int()␤»
10:16 moritz Int certainly DWIMs more
10:16 moritz ... at least when it can
10:27 eviltwin_b joined #perl6
10:33 masak blog post! \o/ http://strangelyconsistent.org/blog/macro-grant-accepted
10:34 masak (a short one)
11:01 geekosaur joined #perl6
11:05 mkramer joined #perl6
11:06 Mowah_ joined #perl6
11:11 eviltwin_b joined #perl6
11:11 simcop2387 joined #perl6
11:12 Moukeddar joined #perl6
11:32 wk joined #perl6
11:38 eviltwin_b joined #perl6
11:40 simcop2387 joined #perl6
11:44 eviltwin_b joined #perl6
11:53 simcop2387 joined #perl6
12:04 mberends joined #perl6
12:11 Psyche^ joined #perl6
12:11 eviltwin_b joined #perl6
12:19 simcop2387 joined #perl6
12:23 wallberg joined #perl6
12:27 mberends joined #perl6
12:28 wallberg joined #perl6
12:30 eviltwin_b joined #perl6
12:31 clairvy joined #perl6
12:31 flussence wtf, if I have "#Regex :$word-break = /\s/," (commented out) in a sub signature Niecza throws some error about an invocant
12:32 flussence if I take the comment out and leave it in the sub body or wherever, it works fine
12:33 colomon masak: I'd argue that it's pretty important that Int ** Int gives you an Int back, since the accuracy / range of an Int is so much greater than the range of a Num.
12:33 colomon perl6: say 9 ** 1000
12:33 p6eval niecza v11-22-gbebf7a0: OUTPUT«1747871251722651609659974619164660570529062487435188517811888011810686266227275489291486469864681111075608950696145276588771368435875508647514414202093638481872912380089977179381529628478320523519319142681504424059410890214500500647813935818925701905402605…
12:33 p6eval ..rakudo c0b2e3: OUTPUT«-9223372036854775808␤»
12:33 p6eval ..pugs b927740: OUTPUT«17478712517226516096599746191646605705290624874351885178118880118106862662272754892914864698646811110756089506961452765887713684358755086475144142020936384818729123800899771793815296284783205235193191426815044240594108902145005006478139358189257019054026054840981379…
12:33 wallberg joined #perl6
12:44 geekosaur joined #perl6
12:45 simcop2387 joined #perl6
12:45 masak colomon: good point.
12:46 masak colomon: I guess it's sort of part of the bigint "contract".
12:48 benabik joined #perl6
12:49 bluescreen10 joined #perl6
13:11 simcop2387 joined #perl6
13:11 simcop2387 joined #perl6
13:30 simcop2387 joined #perl6
13:32 eviltwin_b joined #perl6
13:35 eviltwin_b joined #perl6
13:40 simcop2387 joined #perl6
13:41 eviltwin_b joined #perl6
13:41 [Coke] p5p thread "Requesting permission for a new pragma named "here"" looks vaguely like START {}
13:45 felher masak: i'll read your post later but congratulations :)
13:52 masak thanks. it's basically what the URL says ;)
13:57 smash joined #perl6
13:57 smash hello everyone
14:03 masak hi smash!
14:04 colomon o/
14:06 flussence got an interesting regex problem while getting Text::Wrap to work: I'm grabbing chunks of text up to an output line length $n by doing rx/ (\N ** {0..$n-1}) ($line-break) | (\N ** $n) ($line-break)? /; ... the problem is $n=0 is a valid input (because of this module's weird indent functionality) and it blows up when that happens :(
14:07 flussence (I guess the right way to fix it is separate the indenting stuff from the wrapping stuff somehow...)
14:08 eviltwin_b joined #perl6
14:13 masak nom: my $x = 1; say so "foo" ~~ /^ f ** {0..$x} /
14:13 p6eval nom c0b2e3: OUTPUT«Bool::True␤»
14:14 masak nom: my $x = 2; say so "foo" ~~ /^ f ** {0..$x} /
14:14 p6eval nom c0b2e3: OUTPUT«Bool::True␤»
14:14 masak nom: my $x = 0; say so "foo" ~~ /^ f ** {0..$x} /
14:14 p6eval nom c0b2e3: OUTPUT«Bool::True␤»
14:14 benabik nom: say so "foo" ~~ /^ f ** 0..0 /
14:14 p6eval nom c0b2e3: OUTPUT«Bool::True␤»
14:14 masak well, that works. so there's probably something bigger going on.
14:14 flussence the -1 part
14:15 masak it's a bit weird, by the way, that infix:<**> binds tigher than infix:<..> in Perl 6, but the other way around in the regex slang.
14:16 benabik nom: my $x = -1; say so "foo" ~~ /^ f ** {0..$x} /
14:16 p6eval nom c0b2e3: OUTPUT«Bool::True␤»
14:17 flussence perl6: say ("foo" ~~ /^ f ** 0..-1 /)
14:17 p6eval niecza v11-22-gbebf7a0: OUTPUT«[31m===[0mSORRY![31m===[0m��Malformed range at /tmp/d4fKCS6epL line 1:�------> [32msay ("foo" ~~ /^ f ** 0..[33m�[31m-1 /)[0m��Parse failed��»
14:17 p6eval ..pugs b927740: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20111008/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HAND…
14:17 p6eval ..rakudo c0b2e3: OUTPUT«===SORRY!===␤Only integers or '*' allowed as range quantifier endpoint at line 1, near "-1 /)"␤»
14:17 flussence perl6: say ("foo" ~~ /^ f ** {0..-1} /)
14:17 p6eval rakudo c0b2e3: OUTPUT«=> <f>␤␤»
14:17 p6eval ..pugs b927740: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20111008/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HAND…
14:17 p6eval ..niecza v11-22-gbebf7a0: OUTPUT«#<match from(0) to(0) text() pos([].list) named({}.hash)>␤»
14:18 mkramer joined #perl6
14:19 jaldhar joined #perl6
14:20 simcop2387 joined #perl6
14:21 mberends joined #perl6
14:23 jaldhar joined #perl6
14:24 localhost joined #perl6
14:33 sayu joined #perl6
14:33 stepnem joined #perl6
14:35 vmspb joined #perl6
14:36 geekosaur joined #perl6
14:40 eviltwin_b joined #perl6
14:47 geekosaur joined #perl6
14:47 benabik left #perl6
14:47 benabik joined #perl6
14:51 eviltwin_b joined #perl6
14:51 cognominal_ joined #perl6
14:52 eviltwin_b joined #perl6
14:56 fhelmberger joined #perl6
14:56 pmurias joined #perl6
14:57 pmurias awwaiid: hi
14:58 eviltwin_b joined #perl6
14:58 awwaiid hi
14:59 pmurias awwaiid: i'm adding a gdb backend to Devel::ebug, and i need a way to plug it in
15:00 awwaiid ok
15:01 pmurias the backend currently is hardcoded into a custom copy of Devel::ebug and accepts the same protocol (yaml) as the perl one
15:01 awwaiid I put devel::ebug up on github in case you didn't see it, btw
15:03 awwaiid so let's see. what were you thinking - maybe a parameter to Devel::ebug to tell it what backend it is talking to? Or will they be pretty compatible?
15:03 pmurias it's currently fully compatible
15:03 pmurias is supposed to be
15:04 pmurias most of the commands are not implemented yet
15:04 awwaiid ok
15:04 awwaiid where does the hard-coding currently come in?
15:04 simcop2387 joined #perl6
15:04 awwaiid and what sort of plug in need are you thinking?
15:04 pmurias awwaiid: the name of the program that is executed
15:04 pmurias not sure
15:04 pmurias maybe run an ebug_backend_gdb executable?
15:05 awwaiid yeah, that would work to start -- see ebug_server vs ebug_client for example
15:05 clairvy joined #perl6
15:06 pmurias and Devel::ebug would have a backend attribute?
15:06 awwaiid I factored out a chunk of ebug_client last night
15:06 awwaiid well the main thing I think Devel::ebug should care about is how to talk to the backend, ie port, protocol, etc
15:06 clairvy joined #perl6
15:07 pmurias awwaiid: can i have a commit bit to the github repo or do you prefer pull requests?
15:07 geekosaur joined #perl6
15:08 GlitchMr joined #perl6
15:08 awwaiid pull requests are more my style if that's ok
15:08 pmurias ok
15:13 pmurias awwaiid: so Devel::ebug will have a backend attribute and ebug will take a --backend option?
15:13 pmurias should ebug automatically determin what sort of backend is needed for a given executable?
15:14 pmurias that is debug native programs with the gdb backend, perl5 ones with the current one and perl6 ones with the niecza one?
15:15 awwaiid if it can guess automatically then it should, but it should be overrideable with --backend and Devel::ebug should take a backend attribute which might affect how it talks to the backend
15:15 awwaiid but if the backends are compatible enough, only the ebug binary will care about how to start up the backend, Devel::ebug itself probably wouldn't care at all
15:19 pmurias Devel::ebug does the starting up
15:20 awwaiid oh. well then.
15:20 envi_ joined #perl6
15:20 awwaiid I think that needs to be refactored a bit. Before my patch yesterday (and even with it kinda), the ebug_client actually overrode that functionality of Devel::ebug to stop it
15:21 awwaiid but yeah, it can remain in Devel::ebug somewhere
15:21 un_oarecare joined #perl6
15:25 pmurias awwaiid: how do we call the current perl5 backend?
15:25 pmurias ebug_backend_perl?
15:28 un_oarecare left #perl6
15:28 awwaiid sounds good to me
15:32 pmurias how can i portable find the executable from the tests?
15:35 awwaiid you mean because of the slashy? the executable will be in the bin directory. you can do File::Spec->catfile('bin','ebug_backend_perl'). that's what I've done in the tests so far, anyway (I'm open to suggestions)
15:36 awwaiid I haven't worked on testing this in windows yet (some tests failing because of issues like that I think)
15:36 pmurias doesn't windows accept both forms?
15:36 awwaiid sometimes :)
15:37 eviltwin_b joined #perl6
15:37 * pmurias starts virtualbox
15:37 awwaiid oh maybe for executing that is fine. the test I fixed is what $trace->filename returns
15:37 pmurias awwaiid: you changed #!perl to #!/usr/bin/perl
15:37 pmurias in ebug
15:37 awwaiid ah. not very nice of me
15:38 clairvy joined #perl6
15:38 awwaiid esp since lately I've been using '#!/usr/bin/env perl' to make perlbrew work easily
15:39 awwaiid hm. ebug still has #!perl. I don't know what is correctest.
15:40 pmurias #!/usr/bin/perl and #!perl seemd to get corrected by Build at install
15:40 awwaiid hm. interesting
15:40 pmurias #!/usr/bin/env perl doesn't
15:41 pmurias maybe we should switch the discussion to #perl?
15:42 awwaiid sure
15:45 eviltwin_b joined #perl6
15:48 vmspb left #perl6
15:50 eviltwin_b joined #perl6
15:51 sorear hello.
15:52 masak hai.
15:52 * sorear is not very hopeful that Devel::ebug can have interchangable backends that are any good
15:52 TimToady ⟅ö⟆
15:53 sorear TimToady: did you see my reply at 21:54 PST?
15:53 TimToady yes
15:54 sorear .o( a bot that can turn date --rfc-822 output into clog links might be useful)
15:54 fsergot hi #perl6 o/
15:54 TimToady ö⟆
15:55 pmurias sorear: why the doubt?
15:56 sorear pmurias: significant differences in underlying data model
15:56 sorear .u ⟆
15:56 phenny U+27C6 RIGHT S-SHAPED BAG DELIMITER (⟆)
15:58 awwaiid isn't it all what line am I on, what line am I going to, when should I stop? :)
15:58 awwaiid anyway, let's try it and see
16:00 sorear TimToady: how much would it hurt completeness to use ucd-xml instead of mktables?
16:01 TimToady dunno; if Karl recommends it, it's probably a pretty good idea
16:01 pmurias sorear: so we won't be able to display things in a pretty enough way?
16:04 sorear maybe
16:04 TimToady sorear: though maybe you want to change it to a more compact format as a first step
16:05 sayu joined #perl6
16:08 sorear more compact and more searchable
16:08 TimToady and for performance you you might want to bring in the information lazily, like P5's swatches do
16:08 sorear it seems P5 doesn't support unihan properties
16:08 TimToady though those are tuned for UTF-8, so I wouldn't use the design directly
16:09 sorear I'll follow this lead, it shrinks the db nicely :p
16:09 TimToady unihan has properties now, does it?  sugoi...
16:10 sorear yeah... / \p{kMandarin=san} / os so
16:10 sorear or so
16:14 TimToady well, / <:kMandarin<san>> / in P6 spec-land
16:16 eviltwin_b joined #perl6
16:17 kaleem joined #perl6
16:20 sorear TimToady: had you any thoughts on efficient implementation of <:name(/^LATIN\ LETTER.*P$/)> and <:Nv(0 ^..^ 1)> or do we expect those to be calling back to ACCEPTS when characters are matched?
16:22 sorear I guess memoization would help, at least for alphabetic texts
16:22 moritz if somebody does that... doctor, it hurts
16:23 * sorear heads off
16:24 sorear moritz: both of those examples are from S05.
16:24 bluescreen10 joined #perl6
16:25 moritz sorear: well, the spec sometimes shows extreme examples more than usual examples
16:34 eviltwin_b joined #perl6
16:37 [Sec] joined #perl6
16:40 masak rakudo: Inf.S
16:40 p6eval rakudo c0b2e3: OUTPUT«Method 'S' not found for invocant of class 'Num'␤  in block <anon> at /tmp/NURxxzq1oO:1␤  in <anon> at /tmp/NURxxzq1oO:1␤»
16:40 masak rakudo: class A { has Int $.S = 0 }; say (A.new, A.new, A.new).min(*.S)
16:40 p6eval rakudo c0b2e3: OUTPUT«Method 'S' not found for invocant of class 'Num'␤  in whatevercode <anon> at /tmp/Pw1sTakJR9:1␤  in method reify at src/gen/CORE.setting:4007␤  in method reify at src/gen/CORE.setting:3914␤  in method reify at src/gen/CORE.setting:3914␤  in method gimme at src/gen/…
16:40 masak I think the former is what's happening in the latter.
16:40 * masak submits rakudobug
16:42 masak Inf is nice and all, but I think the above shows that the value Inf is not enough in the .min method (because we don't want to call Inf.S) -- rather, we need to special-case the initial value of the accumulator variable somehow.
16:42 masak TimToady: this would be a case of using an in-band value and wishing it were out-of-band, I guess :)
16:45 masak put differently, you can't both have Inf in that algorithm, and arbitrary closures that invoke on the smallest-value-found-so-far.
16:46 moritz well
16:46 moritz what you can do is default the return value to Inf
16:46 moritz but take the first value without comparison, and only compare to that in subsequent cases
16:46 masak right.
16:46 masak that's what I meant by 'special-case' above.
16:47 wk joined #perl6
16:47 masak we're then using Inf as an out-of-band value rather than an in-band value.
16:50 geekosaur joined #perl6
16:52 kaleem joined #perl6
16:52 eviltwin_b joined #perl6
16:57 dalek specs: 7b498ac | larry++ | S06-routines.pod:
16:57 dalek specs: de-sigil the |capture and \parcel params
16:57 dalek specs: review: https://github.com/perl6/specs/commit/7b498acc35
16:58 simcop2387 joined #perl6
16:59 eviltwin_b joined #perl6
17:00 masak "if you don't like sigils, just use these backslashes"
17:00 PerlJam TimToady: you always scare me with stuff like that.
17:00 TimToady sorear: re efficient properties, note that both of those are resolvable at compile time, if we assume the Unicode tables are relatively immutable
17:00 TimToady masak: and only on the declaration :)
17:00 masak right.
17:01 masak I think the patch looks nice and clean. but the sigil-less bit at the end is crazy. I hope no-one ever programs in that style.
17:01 * TimToady predicts that masak will someday program in that style :)
17:01 masak ;)
17:01 * moritz surely will... while writing setting code
17:02 masak I'm fine with the spec having bits that I don't like. just don't... expect me to like them. :)
17:02 eviltwin_b joined #perl6
17:03 PerlJam so ...  | is a "capture sigil" and \ is a "parcel sigil"     :-)
17:03 TimToady call it the 𝑖, 𝑗, 𝑘 style :)
17:03 moritz .u  �
17:03 phenny U+0020 SPACE ( )
17:03 phenny U+FFFD REPLACEMENT CHARACTER (�)
17:04 moritz .u ..
17:04 phenny U+0020 SPACE ( )
17:04 phenny U+0021 EXCLAMATION MARK (!)
17:04 phenny U+0022 QUOTATION MARK (") [...]
17:04 moritz hm
17:04 moritz the browser shows it correctly in the IR clogs
17:04 TimToady someone needs to drag irssi out of the stone age, maybe
17:04 moritz but I can't seem to copy&paste it to putty
17:05 daxim let me guess, astral characters?
17:05 moritz surreal characters
17:05 TimToady mathematical, which is much the same thing
17:05 daxim lots of software is still borken vav this
17:05 benabik joined #perl6
17:06 PerlJam TimToady: what does args get in  sub foo ($blah, |args, @goober) { ... }  ?
17:07 benabik Hm.  It appears some bit of unicode causes Colloquy to start eating memory.  That's fascinating.
17:07 TimToady a snapshot of the capture after $blah has been removed
17:07 PerlJam okay, that's what I thought
17:07 TimToady that's how jnthn++ has already implemented, iiuc
17:07 TimToady *it
17:08 eviltwin_b joined #perl6
17:11 simcop2387 joined #perl6
17:13 TimToady sorear: of course, if someone writes :prop($foo .. $bar) then it's back to DIHWIDT, though caching is still a possible strategy, assuming we can determine the identity of a pattern more efficiently than just redoing the match
17:16 PerlJam TimToady: since \ introduces a term, is that a useful shortcut for macro placeholders?  (at least for that category)
17:18 PerlJam (assuming there's a way to get at the AST-end of it :)
17:19 dalek specs: da0c71f | larry++ | S06-routines.pod:
17:19 dalek specs: include ability to have non-identifier aliases
17:19 dalek specs: review: https://github.com/perl6/specs/commit/da0c71f02c
17:20 TimToady you mean for quasi-unquoting?  I think it doesn't help the ambiguity as much as a real AST sigil would
17:21 * TimToady still kinda likes ¤ for that
17:21 TimToady it's very much a what-the-heck-is-that?!? character
17:21 eviltwin_b joined #perl6
17:22 MayDaniel joined #perl6
17:22 masak .u ¤
17:22 phenny U+00A4 CURRENCY SIGN (¤)
17:22 ashleydev TimToady: you like that better than the square in a circle one?
17:22 PerlJam currency sign?
17:23 masak PerlJam: it never really took off.
17:23 TimToady and as you may have noticed, the design criteria changed a bit between Perl 1 and Perl 6, so that we are now more likely to want to surprise people than to pander to their cultural preconceptions
17:23 colomon joined #perl6
17:23 masak PerlJam: turns out people have no great need to talk about amounts in an abstract currency.
17:23 TimToady masak: you mean it just hasn't been specced yet :P
17:23 TimToady oh, you mean the currency sign :)
17:23 masak TimToady: no, I was talking about the cu... yeah.
17:24 * TimToady loves abandoned symbols
17:24 masak I'm not going to argue against spec'ing it, because I don't think I'll be able to say anything I didn't say last time.
17:24 TimToady ASTs are the abstract fungibles of a compiler :)
17:25 masak I think it's a bad idea to introduce more non-ASCII into core Perl 6.
17:25 PerlJam TimToady: would you be amenable to ¤(...) as a shortcut for ¤term:(...)  ?
17:25 masak currencies aren't fungible.
17:25 TimToady that would seem useful
17:25 TimToady they are if you leave them out in the damp :)
17:28 TimToady masak: ¤ and ¢ are sneaky ways of tricking people into learning Unicode, so it's good for 'em in the long run
17:28 masak I just see it as bad for Perl 6 in the short run.
17:29 * TimToady is trying to optimize for the long term more than the short term, as you may have noticed...
17:30 masak std: my $a; term:($a)
17:30 p6eval std be1f10e: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'term' used at line 1�Check failed�FAILED 00:01 123m�»
17:31 masak std: my $a; sub term {}; term:($a)
17:31 p6eval std be1f10e: OUTPUT«ok 00:01 123m␤»
17:31 masak hm, that seems to parse as something already.
17:31 TimToady odd
17:32 masak actually, I find it a bit strange to have 'term' at all inside of the quasi. I'd much rather have it in the macro signature.
17:32 TimToady oh, it's term() :($a)
17:32 TimToady as an adverb
17:32 masak right.
17:33 masak if $a is a term, I'll never be tempted to write infix:($a). and I might use $a several time in the quasi.
17:33 TimToady std: term:[$a]
17:33 p6eval std be1f10e: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable $a is not predeclared at /tmp/AfmA6NtP6x line 1:�------> [32mterm:[[33m�[31m$a][0m�Undeclared routine:� 'term:[$a]' used at line 1�Check failed�FAILED 00:01 120m�»
17:33 masak every time I have to use 'term:'.
17:33 TimToady std: term:[42]
17:33 p6eval std be1f10e: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'term:[42]' used at line 1�Check failed�FAILED 00:01 119m�»
17:33 masak so it seems like the wrong place to put that information.
17:34 PerlJam masak: but you'll never have to use term: because it'll just be  ¤($a)   :-)
17:34 TimToady PerlJam: that's a hack
17:35 PerlJam so far I get the impression that masak only cares about terms, so it may be a hack, but one that's extremely useful to him.
17:35 eviltwin_b joined #perl6
17:36 masak no, I was just using 'term' as an example.
17:36 masak because that's what's been used the most so far in these discussion.
17:36 PerlJam okay.
17:37 masak my point isn't anything about 'term', it's that the grammatical category is placed on the wrong hook.
17:37 * TimToady is trying to decide if masak++'s factoring has merit; it kinda depends on the extent to which a given AST can be used in various different contexts, tagmemically speaking
17:37 masak preferably, the caller should specify the context. but that's too late. :)
17:38 masak if you want two contexts for the same AST, declare two params with the latter defaulting to the former.
17:38 PerlJam TimToady: when would you ever use the same AST in term and non-term position (for instance) within the same macro body?
17:39 kaleem joined #perl6
17:39 TimToady oh, that's trivial, how 'bout you want $a in both a declaration and as an rvalue later
17:39 * jnthn reads the spec changes
17:39 TimToady they're mostly what we discussed already
17:40 jnthn TimToady: std updated yet? ;)
17:40 TimToady nope, he sez proudly
17:42 masak &
17:42 * TimToady is an American, so hypocrisy is protected as a form of free speech
17:44 jnthn TimToady: OK. I probably wait for that so I don't have to come back and re-sync later...
17:44 * TimToady is now thinking about parameterized ASTs, like parameterized roles...
17:48 dalek 6model: 3c55146 | diakopter++ | lua/ (15 files):
17:48 dalek 6model: more optimization attempts
17:48 dalek 6model: review: https://github.com/diakopter/6model/commit/3c551462e6
17:49 DarthGandalf joined #perl6
17:50 TimToady masak: "my blogging plans are to ambitious"
17:50 molaf joined #perl6
17:53 * moritz is disappointed by the lack of HPMoR updates
17:54 geekosaur joined #perl6
17:55 jnthn moritz: So, for bigint we're just missing the coercion to Num?
17:55 moritz jnthn: aye
17:56 jnthn moritz: OK. Too bad the lib is missing that...
17:57 geekosaur joined #perl6
17:57 colomon Should be pretty easy to hack, no?
17:59 colomon at least, is there a log10 available for bigint?
18:01 moritz colomon: the lib stores an array of unsigned long digits
18:01 colomon so it's base 2**64, in effect?
18:01 moritz it should be possible (but fiddly) to use the first $n bits as mantissa, and the number of bits after that as exponent
18:01 moritz colomon: yes
18:02 moritz (sign and number of digits stored separately)
18:02 colomon just convert the first int64 non-zero bits to a Num, then multiply by the appropriate power of two?
18:03 moritz that would reproduce numbers around 2**65 very badly
18:03 colomon would it?
18:03 moritz because the first int64 would be around one bit
18:04 moritz so even if you write 2**65 + 2**64, it would return 2**65
18:04 colomon no, no, "non-zero bits"
18:04 moritz ah right
18:04 moritz yes, that's basically what I meant
18:05 colomon yeah, I was just thinking of it in terms of math operations rather than directly hacking the Num representation.
18:05 eviltwin_b joined #perl6
18:05 moritz needs a bit more care though, regarding overflow, producing denormalized floats etc.
18:06 dalek nqp/bigint: 102de40 | jnthn++ | src/6model/sixmodelobject.h:
18:06 dalek nqp/bigint: Add one more function to the REPR table (should be the final missing one for REPR API 2).
18:06 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/102de4070f
18:06 dalek nqp/bigint: 006974d | jnthn++ | src/6model/ (2 files):
18:06 dalek nqp/bigint: Tag the REPR function table with the ID the REPR gets, so it's conveniently available.
18:06 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/006974ddf8
18:06 moritz colomon: your contribution in that area would be very welcome, since I'm rather bad at low-level math and at C hackery
18:08 Grrrr joined #perl6
18:08 colomon moritz: I'm trying to figure out how you gracefully get the first int64 non-zero bits...
18:10 geekosaur joined #perl6
18:10 moritz colomon: probably using the built-in bit shift ops in some way
18:10 colomon built-in to ?
18:11 moritz libtommath
18:11 colomon ah
18:12 colomon hmmm
18:12 moritz they aren't called bitshift in the API, but division and multiplication by 2**n
18:13 moritz mp_div_2d and mp_mul_2d
18:14 benabik libtommath does appear to have a function that returns an array of bytes that you can then manipulate as you please.
18:14 vmspb joined #perl6
18:16 moritz well, you can operate on mp_int->dp, mp_int->used and mp_int->sign
18:16 jnthn http://graphics.stanford.edu/~seander/bithacks.html is an awesome page of bit manipulation, but don't see anything that immediately suits our case...
18:17 kaare_ joined #perl6
18:18 colomon is there an easy place to find the specs of libtommath?
18:19 moritz colomon: https://github.com/libtom/libtommath/blob/master/tommath.h
18:19 moritz there's also a .pdf, but it's more wordy without providing much more informaton
18:20 benabik The PDF is more about the algorithms used.
18:22 alvis joined #perl6
18:22 colomon mp_cnt_lsb?
18:24 geekosaur joined #perl6
18:27 tadzik o/
18:28 eviltwin_b joined #perl6
18:35 dalek nqp/bigint: 6d52f98 | jnthn++ | src/6model/ (2 files):
18:35 dalek nqp/bigint: Get dynamic repr registration to return the ID given to the representation.
18:35 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/6d52f988a4
18:35 dalek nqp/bigint: 965804c | jnthn++ | src/6model/reprs/ (8 files):
18:35 dalek nqp/bigint: Add get_boxed_ref functions; P6opaque one needs filling out more fully.
18:35 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/965804c849
18:35 dalek nqp/bigint: 1b2781c | jnthn++ | t/nqp/60-bigint.t:
18:35 dalek nqp/bigint: Fix typo in test.
18:35 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/1b2781c4c6
18:39 geekosaur joined #perl6
18:39 Chillance joined #perl6
18:39 moritz colomon: note that "digit" in tommath lingo means "64bit word"
18:40 skangas joined #perl6
18:40 moritz it doesn't give you a bit boundary
18:44 arnsholt_ joined #perl6
18:45 uniejo_ joined #perl6
18:46 ruoso joined #perl6
18:46 Reaganomicon joined #perl6
18:46 Yappoko___ joined #perl6
18:46 pochi joined #perl6
18:49 preflex joined #perl6
18:52 eviltwin_b joined #perl6
18:52 Sarten-X joined #perl6
18:53 wolfman2000 joined #perl6
18:56 eviltwin_b joined #perl6
18:59 GlitchMr joined #perl6
19:04 eviltwin_b joined #perl6
19:09 kaleem joined #perl6
19:09 wolfman2_ joined #perl6
19:11 fsergot joined #perl6
19:12 fsergot nom: say *,"a", *;
19:12 p6eval nom c0b2e3: OUTPUT«*a*␤»
19:12 fsergot nom: say "a" ¬¬  *,"a", *;
19:12 p6eval nom c0b2e3: OUTPUT«===SORRY!===␤Confused at line 1, near "say \"a\" \x{ac}\x{ac}"␤»
19:13 fsergot nom: say "a" ~~  *,"a", *;
19:13 p6eval nom c0b2e3: OUTPUT«Bool::Truea*␤»
19:13 colomon moritz: mp_cnt_lsb talks about lsbs and bits, not digits.  I suspect we want the msb rather than the lsb, alas.  But the C code ought to be similiar....
19:19 eviltwin_b joined #perl6
19:23 geekosaur joined #perl6
19:35 moritz uhm, it looks like only DIGIT_BIT = 60 bits are stored per word by default
19:38 TimToady I suppose that lets you unroll a few additions without worrying about overflow every time
19:38 moritz probably
19:38 TimToady two numbers plus a carry is three right there
19:38 moritz ah right, C doesn't make the carry flag available to the pained lib developer
19:39 eviltwin_b joined #perl6
19:40 dalek 6model: a8c8822 | diakopter++ | lua/ (3 files):
19:40 dalek 6model: minor fixes
19:40 dalek 6model: review: https://github.com/diakopter/6model/commit/a8c8822500
19:40 dalek 6model: 862ce02 | diakopter++ | lua/ (15 files):
19:40 dalek 6model: Merge branch 'master' of github.com:diakopter/6model
19:40 dalek 6model: review: https://github.com/diakopter/6model/commit/862ce022a1
19:40 dalek 6model: 3ac97e3 | diakopter++ | lua/compiler/profiler.lua:
19:40 dalek 6model: Add profiler.lua
19:40 dalek 6model: review: https://github.com/diakopter/6model/commit/3ac97e361f
19:41 packetknife joined #perl6
19:42 eviltwin_b joined #perl6
19:43 allbery_b joined #perl6
19:45 diakopter example profiler output https://gist.github.com/1348913
19:48 wolfman2000 joined #perl6
19:48 masak TimToady: thanks; fixed.
19:49 masak TimToady: quasis *are* parameterized ASTs :)
19:49 ksi joined #perl6
19:49 masak but I guess you mean along some other dimension.
19:49 eviltwin_b joined #perl6
19:56 jnthn diakopter: Is that output for the integer loop?
20:00 masak moritz: I'm toying with the idea of emailing LessWrong and expressing my interest in more HPMoR updates. I'm just not sure it would have net positive utility.
20:06 geekosaur joined #perl6
20:09 masak rakudo: multi foo(Any $x) { say "general" }; multi foo(Int $x) { say "specific"; nextwith("") }; foo(42)
20:09 p6eval rakudo c0b2e3: OUTPUT«specific␤general␤»
20:15 eviltwin_b joined #perl6
20:17 allbery_b joined #perl6
20:19 allbery_b joined #perl6
20:21 eviltwin_b joined #perl6
20:26 eviltwin_b joined #perl6
20:27 tadzik who wants to answer http://stackoverflow.com/questions/8056404/is-it-possible-to-implement-lisp-language-in-perl-6 ?
20:28 masak no, it's not possible. some unknown force prevents us from implementing Lisp in Perl 6. ;)
20:28 geekosaur joined #perl6
20:29 masak ah, person doesn't want to implement Lisp, but embed it.
20:30 colomon masak: it's not unknown -- Perl 6 simply isn't Turing-complete.  ;)
20:31 colomon either that or it just doesn't support enough parentheses.
20:32 zby_home joined #perl6
20:32 dalek 6model: 9cd77d6 | diakopter++ | lua/runtime/Runtime/MultiDispatch/DispatchCache.lua:
20:32 dalek 6model: off-by-one; jnthn++ for spotting
20:32 dalek 6model: review: https://github.com/diakopter/6model/commit/9cd77d63e2
20:32 jnthn nom: say (((((((((((((((((((('oh hai'))))))))))))))))))))
20:32 p6eval nom c0b2e3: OUTPUT«oh hai␤»
20:34 * moritz composes an answer
20:42 skangas joined #perl6
20:43 moritz answer composed.
20:50 dalek 6model: b1a90ab | jnthn++ | dotnet/runtime/Metamodel/KnowHOW/KnowHOWBootstrapper.cs:
20:50 dalek 6model: Get KnowHOWs to publish a method cache. ~9% performance improvement in 'loop up to 10 million' benchmark.
20:50 dalek 6model: review: https://github.com/diakopter/6model/commit/b1a90ab5f8
20:51 masak moritz++
20:58 linguini joined #perl6
21:01 dalek 6model: f7dcbc2 | diakopter++ | lua/runtime/Metamodel/KnowHOW/KnowHOWBootstrapper.lua:
21:01 dalek 6model: Get KnowHOWs to publish a method cache. ~25% performance improvement in 'loop up to 1 thousand' benchmark. jnthn++
21:01 dalek 6model: review: https://github.com/diakopter/6model/commit/f7dcbc275f
21:01 dalek 6model: 90de12b | diakopter++ | dotnet/runtime/Metamodel/KnowHOW/KnowHOWBootstrapper.cs:
21:01 dalek 6model: Merge branch 'master' of github.com:diakopter/6model
21:01 dalek 6model: review: https://github.com/diakopter/6model/commit/90de12ba65
21:02 geekosaur joined #perl6
21:09 moritz https://gist.github.com/1349237 <-- first shot at mp_int -> double conversion
21:09 moritz colomon, jnthn: ^^
21:11 moritz put in libtommath, and compile with gcc -I. -lm -o double mp_get_double.c *.o
21:11 moritz *put it into the libtommath dir
21:13 colomon Ah, so you take the top two DIGITs?  clever way of avoiding worrying about the shifting.
21:13 moritz yes :-)
21:13 moritz I figured it was easier not to do off-by-one errors that way :-)
21:13 moritz though I guess the double use of pow() might be costly
21:13 colomon maybe I'm being dense, but I don't get the d *= pow(2.0, DIGIT_BIT * i); bit
21:14 colomon what is DIGIT_BIT?
21:14 jnthn that gets the exponent right, iiuc?
21:14 colomon oh, number of bits in a digit.
21:14 moritz number of bits in a DIGIT
21:14 colomon okay, I do get it.
21:14 moritz jnthn: exactly
21:14 colomon i is the number of digits left, right?
21:14 moritz yes
21:15 colomon I would hope that pow(2.0, whatever) would be blazingly fast.  but I might be wrong about that.
21:15 moritz I just noticed that we probably need the other way round too :(
21:17 [Coke] does diakopter's work on 6model mean rakudo is running on lua?
21:17 [Coke] (or just nqp? or just 6model?)
21:17 * moritz -> sleep
21:18 masak 'night, moritz. dream of avoided off-by-one errors.
21:18 * moritz avoids accidental complexity... unless by accident
21:19 jnthn [Coke]: It means some of nqp and 6model is now running on lua :)
21:19 jnthn [Coke]: So, first step in getting Rakudo there.
21:19 moritz note that rakudo has still quite some parrot specific code
21:20 jnthn aye
21:20 moritz for example all the exceptions stuff
21:20 moritz and I guess lexicals too
21:20 jnthn Yeah, and the ops and multi-dispatcher
21:20 jnthn I just tend to expect those bits to need porting per platform.
21:20 jnthn Multi-dispatch and binding are too performance sensitive to try and put abstraction layers in the way.
21:25 * moritz -> really sleep
21:25 * masak -> sleep
21:28 lichtkind joined #perl6
21:31 eviltwin_b joined #perl6
21:33 [Coke] in any case, diakopter++ !
21:33 * [Coke] ponders doing similar JVM work.
21:33 jnthn [Coke]: mberends++ did a bunch of that already
21:34 [Coke] yay.
21:36 bluescreen10 joined #perl6
21:36 donaldh joined #perl6
21:36 dalek nqp/bigint: 2395763 | jnthn++ | src/6model/reprs/P6opaque. (2 files):
21:36 dalek nqp/bigint: Implement get_boxed_ref in P6opaque.
21:36 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/2395763a1f
21:36 dalek nqp/bigint: d6c0f7b | jnthn++ | src/ops/nqp_bigint.ops:
21:36 dalek nqp/bigint: Make bigint ops also capable of working when we have a bigint flattened into another type, such as will be the case with Perl 6's Int.
21:36 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/d6c0f7b4e7
21:36 dalek nqp/bigint: 39c6bcd | jnthn++ | t/nqp/60-bigint.t:
21:36 dalek nqp/bigint: Tests for the flattened in bigint case.
21:36 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/39c6bcdde2
21:42 eviltwin_b joined #perl6
21:44 allbery_b joined #perl6
21:47 geekosaur joined #perl6
21:50 dalek rakudo/nom: 1985138 | jnthn++ | src/binder/bind.c:
21:50 dalek rakudo/nom: Fix :U/:D and junction interaction.
21:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1985138d49
21:53 MayDaniel joined #perl6
21:58 donaldh joined #perl6
22:00 eviltwin_b joined #perl6
22:08 allbery_b joined #perl6
22:12 f00li5h joined #perl6
22:15 dalek 6model: ea903a6 | diakopter++ | lua/ (2 files):
22:15 dalek 6model: optimize try/catch/finally some; 40% overall speedup.
22:15 dalek 6model: review: https://github.com/diakopter/6model/commit/ea903a6a37
22:18 donaldh Is anyone hacking on a JVM implementation of Perl6 ?
22:19 dalek rakudo/bigint: d2d14a2 | jnthn++ | src/Perl6/SymbolTable.pm:
22:19 dalek rakudo/bigint: Load nqp_bigint ops, ensure they get set up.
22:19 dalek rakudo/bigint: review: https://github.com/rakudo/rakudo/commit/d2d14a2148
22:19 dalek rakudo/bigint: dd61d0e | jnthn++ | src/binder/sixmodelobject.h:
22:19 dalek rakudo/bigint: Bump to latest 6model API.
22:19 dalek rakudo/bigint: review: https://github.com/rakudo/rakudo/commit/dd61d0e496
22:19 dalek rakudo/bigint: 88d4129 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
22:19 dalek rakudo/bigint: Switch Int to use bigint. Note that we didn't switch to any of the bigint ops yet, though since bigint knows how to box/unbox native ints, we largely get away with it. New failures are confined to tests that have some clear relation to numerics, and even then the fallout doesn't immediately seem too bad.
22:19 dalek rakudo/bigint: review: https://github.com/rakudo/rakudo/commit/88d4129d50
22:20 mj41 joined #perl6
22:20 jnthn phenny: tell moritz I created the bigint branch in Rakudo. It needs the bigint branch of NQP installed. It's ready to start switching to use the new ops and triaging.
22:20 phenny jnthn: I'll pass that on when moritz is around.
22:21 colomon jnthn: is that to use bigint exclusively, or only if you overflow int64?
22:21 colomon well, int?
22:21 donaldh I've found 6model/java which looks untouched since the start of the year.
22:21 jnthn colomon: Int is always using P6bigint
22:21 jnthn colomon: Which for now always delegates to libtommath
22:21 jnthn colomon: We can do some other upgrade semantics later if needed.
22:22 jnthn colomon: int is always native (CPU) integer.
22:22 eviltwin_b joined #perl6
22:22 colomon jnthn: understood
22:23 donaldh I'm interested in contributing to a Java Perl6 project.
22:23 jnthn donaldh: Yeah, it got to the point of passing some of the nqp test suite.
22:24 donaldh jnthn: is it a good place to start then?
22:25 jnthn donaldh: It means not starting from scratch, and it's 6model based (if a little behind) so it's on the right path in that sense.
22:26 jnthn donaldh: It works in terms of generating Java code, just for prototyping purposes
22:26 donaldh jnthn: Yes, I've managed to figure out that 6model is where it's at!
22:26 jnthn donaldh: IIRC, it stalled because Java has no goto ;)
22:26 jnthn donaldh: So next was trying to get code gen to just emit either JASM as a stepping stone to bytecode.
22:26 jnthn Or bytecode itself
22:27 jnthn Probably the first is easier
22:27 jnthn donaldh: All of (nqpjava, nqplua, nqpclr) are relatively closely related.
22:27 donaldh I see.
22:28 jnthn The idea is to achieve convergence between them and the nqp that runs on Parrot.
22:28 donaldh what's the relationship between 6model (the git repo) and nqp (the git repo) ?
22:28 jnthn Actually nqpclr was there 6model was first explored/prototyped/designed
22:28 jnthn donaldh: 6model repo is more for prototyping and exploration.
22:29 jnthn donaldh: Eventually the various NQP backends, with their implementations of 6model core, should end up in the nqp repo.
22:29 jnthn donaldh: But I'm not totally sure how that should look yet, so it's just been easier to explore in another repo.
22:30 donaldh Okay, so if I want to hack on this then I should start with 6model/java
22:30 jnthn Yes
22:38 diakopter jnthn: reimplementing try/catch/finally got a 75% speedup
22:39 jnthn diakopter: whoa. Guess it was quite a bottleneck.
22:40 dalek 6model: c14bd69 | diakopter++ | lua/ (2 files):
22:40 dalek 6model: reimplement try/catch/finally entirely.
22:40 dalek 6model: review: https://github.com/diakopter/6model/commit/c14bd6919d
22:42 eviltwin_b joined #perl6
22:46 Moukeddar joined #perl6
22:48 jnthn diakopter: yeah, feels faster
22:48 * jnthn tries to quantify it
22:52 jnthn nom: say 27.48 / 327.3
22:52 p6eval nom 198513: OUTPUT«0.0839596700274977␤»
22:52 jnthn diakopter: ^ is nqpclr vs nqplua now
22:52 jnthn (for the benchmark up to 10 million)
22:52 diakopter better
22:53 jnthn yeah
22:55 jnthn fwiw, today's Rakudo cranks through it in 46.37s
22:55 jnthn Though it has the benefit of an optimizer and the most carefully tuned 6model implementation so far.
22:55 jnthn Plus a decent boolification protocol
22:56 jnthn Give nqpclr those and it probably gains a bit.
22:56 tadzik wut, only 2 times slower than clr?
22:56 jnthn tadzik: Only 2 times slower than nqpclr
22:56 tadzik yeah, that's what I meant
22:57 jnthn But yeah
22:57 jnthn It shows how far Rakudo has come
22:57 jnthn That difference used to be epic.
22:57 tadzik http://mlkshk.com/r/6AE0
22:57 jnthn :)
23:03 jnthn ok, rest time...$onsite-dayjob tomorrow
23:03 dalek 6model: 3997d21 | diakopter++ | lua/ (3 files):
23:03 dalek 6model: cleanup
23:03 dalek 6model: review: https://github.com/diakopter/6model/commit/3997d21747
23:09 eviltwin_b joined #perl6
23:10 japhb gjb6809e
23:14 wooden joined #perl6
23:14 wooden joined #perl6
23:14 allbery_b joined #perl6
23:17 cooper joined #perl6
23:28 pjcj joined #perl6
23:37 whiteknight joined #perl6
23:45 dfaure joined #perl6
23:45 dual joined #perl6
23:51 eviltwin_b joined #perl6
23:59 eviltwin_b joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo