»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:04 alvis joined 00:09 abercrombie joined
sorear now I've picked out a new strategy for char classes and other random bits 00:10
if only I had a reasonably complete Unicode Character Database accessible from C#!
oh hey, Mono finally has General_Category data available for the astral planes 00:14
in master
but I need _all_ the properties for :Foo<Bar>
00:21 benabik joined 00:22 pmurias left
sorear o/ benabik 00:29
benabik o/ sorear
00:33 replore joined 00:41 benabik left 00:42 benabik joined, geekosaur left 00:44 icwiener left, geekosaur joined, ChanServ sets mode: +o sorear
sorear mode -b $a:clairvy 00:45
00:45 sorear sets mode: -b $a:clairvy, sorear sets mode: -o sorear 01:01 hypolin joined 01:05 wooden left 01:07 geekosaur left, geekosaur joined 01:14 mkramer left 01:15 Trashlord left 01:16 whiteknight joined, kfo joined, whiteknight is now known as Guest35304 01:20 kfo_ left 01:25 geekosaur left 01:33 geekosaur joined
TimToady sorear: I'd suggest stealing the tables from Perl 5 01:35
sorear TimToady: are you suggesting stealing the .txt files, or trying to port maketables? 01:38
01:43 wolfman2000 left
dalek odel: 2941d14 | diakopter++ | lua/ (2 files):
more attempts at optimization
01:43
TimToady I'm suggesting having maketables spit out P6 instead of P5 01:48
but whatever is easiest 01:49
P5 has the best Unicode support of any language out there currently, and only ICU is comparable in coverage
01:50 daemon left 01:51 daemon joined, geekosaur left 01:52 geekosaur joined
TimToady it's probably worth talking to Karl Williamson [email@hidden.address] who maintains the Unicodey bits of P5 01:52
whoops, didn't mean to post the address...
01:54 Chillance left
TimToady decomputing & 01:55
01:56 simcop2387 left, geekosaur left, geekosaur joined 01:59 simcop2387 joined 02:01 geekosaur left, geekosaur joined 02:07 Guest35304 left
sorear wah? khwilliamson.com points to a domain squatter 02:11
02:13 geekosaur left 02:15 geekosaur joined 02:21 wolfman2000 joined 02:22 geekosaur left 02:25 geekosaur joined 02:29 agentzh joined 02:37 geekosaur left, geekosaur joined
dalek odel: 6fc09fa | diakopter++ | lua/ (3 files):
more optimization attempts
02:50
02:55 danielb joined 02:56 danielb is now known as Guest68811, geekosaur left 02:57 geekosaur joined 03:02 clairvy joined 03:05 geekosaur left 03:08 geekosaur joined 03:11 Guest68811 left, pothos left, y3llow left
sorear sent a probably horrible mail to Karl Williamson 03:12
03:18 daniel__ joined 03:24 eviltwin_b joined 03:26 geekosaur left 03:34 geekosaur joined, eviltwin_b left 03:43 daniel__ left 03:44 jaldhar joined 03:45 preflex left 03:46 preflex_ joined, geekosaur left, preflex_ is now known as preflex 03:53 geekosaur joined 04:05 satyavvd joined 04:07 geekosaur left 04:08 geekosaur joined 04:09 molaf joined 04:10 eviltwin_b joined, geekosaur left 04:11 mkramer joined 04:12 eviltwin_b is now known as geekosaur 04:18 geekosaur left, eviltwin_b joined 04:19 eviltwin_b is now known as geekosaur 04:21 cafesofie left 04:27 eviltwin_b joined 04:28 geekosaur left, eviltwin_b left 04:29 geekosaur joined 04:30 envi_ joined 04:45 geekosaur left, geekosaur joined 04:49 geekosaur left 04:50 eviltwin_b joined 04:51 eviltwin_b is now known as geekosaur 04:54 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 05:12 orafu left 05:13 orafu joined 05:17 geekosaur left 05:22 geekosaur joined 05:23 risou_awy is now known as risou
dalek ast: 48af882 | moritz++ | S32- (2 files):
refudge encode.t for rakudo
05:31
moritz good morning 05:32
sorear o/ moritz 05:35
dalek kudo/nom: c0b2e3a | moritz++ | / (3 files):
enable "UTF-8" as encoding name, as well as a few aliases for ISO-8859-1; run encode.t
05:38 molaf left 05:47 wk left 05:51 geekosaur left, envi_ left, geekosaur joined 05:52 risou is now known as risou_awy
sorear TimToady: I've already gotten a responce back from Karl 05:54
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
sorear thinks that the Unicode names list could be very effectively compressed by Huffman-coding with words as the symbol level 05:59
LATIN SMALL LETTER A WITH OGONEK ... not much entropy here! 06:00
06:06 geekosaur left 06:09 simcop2387 left, simcop2387 joined 06:11 geekosaur joined 06:13 daniel-s joined 06:16 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 06:24 geekosaur left 06:25 daniel-s left, geekosaur joined 06:30 simcop2387 left 06:32 simcop2387 joined 06:38 packetknife left 06:42 simcop2387 left 06:44 simcop2387 joined, geekosaur left, eviltwin_b joined 06:45 eviltwin_b is now known as geekosaur 06:46 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 06:55 simcop2387 left 06:56 simcop2387 joined 07:01 geekosaur left 07:02 geekosaur joined 07:04 [Sec] left, geekosaur left, eviltwin_b joined 07:05 eviltwin_b is now known as geekosaur 07:06 wk joined 07:10 simcop2387 left, stepnem left 07:11 simcop2387 joined 07:19 wk_ joined, wk left 07:22 dual joined, mishin joined
sorear sleep 07:26
07:29 kst joined 07:35 geekosaur left 07:42 envi_ joined 07:44 geekosaur joined 07:57 kaleem joined, baest left 07:58 baest joined 08:09 geekosaur left 08:19 geekosaur joined 08:28 daxim joined 08:32 MayDaniel joined 08:40 mkramer left, Trashlord joined 08:43 geekosaur left 08:47 mj41 joined 08:50 geekosaur joined 08:55 f00li5h left 08:56 geekosaur left 08:57 geekosaur joined 09:02 mishin left 09:04 geekosaur left
moritz nom: '(a)' ~~ / '(' ~ ')' <alpha> / and say $<alpha> 09:07
p6eval nom c0b2e3: OUTPUT«Any()␤»
moritz nom: '(a)' ~~ / <alpha> / and say $<alpha> 09:08
p6eval nom c0b2e3: OUTPUT«=> <a>␤␤»
09:10 replore left 09:11 geekosaur joined 09:15 simcop2387 left 09:18 simcop2387 joined
jnthn morning, #perl6 09:21
moritz good morning jnthn
09:23 MayDaniel left 09:26 mishin joined
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
erm, \w+_i of course
09:27 dakkar joined
moritz so apart from floating point conversion the bigint stuff should be feature complete 09:27
09:27 alc joined 09:29 geekosaur left
jnthn moritz: nice! 09:29
moritz: I'll try and get the last 6model change needed in place today. 09:30
09:31 icwiener joined, mj41 left
moritz jnthn: one more thing, I'm pondering what to do about integer exponentation 09:32
09:32 wk_ left
moritz tommath offers a mp_pow(mp_int, mp_digit) 09:32
09:32 simcop2387 left 09:33 simcop2387 joined
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
so I'm pondering something along these lines:
1) a special case when the exponent is 0 or 1 09:34
2) if the exponent is < 0, delegate to the pow_n opcode
3) if the exponent doesn't fit into an mp_digit, return +-Inf
4) otherwise, use mp_pow 09:35
does that sound sane?
or over-engineered?
09:37 geekosaur joined
masak morning, #p6 09:43
moritz perl6: say (-3) ** -1 09:44
p6eval niecza v11-22-gbebf7a0: OUTPUT«-1/3␤» 09:45
..rakudo c0b2e3: OUTPUT«-0.333333333333333␤»
..pugs b927740: OUTPUT«*** ␤ Unexpected "-"␤ at /tmp/aqCjROpWag line 1, column 13␤»
moritz perl6: say (-3) ** (-1)
p6eval niecza v11-22-gbebf7a0: OUTPUT«-1/3␤»
..rakudo c0b2e3: OUTPUT«-0.333333333333333␤»
..pugs b927740: OUTPUT«-0.3333333333333333␤»
moritz perl6: say (-3) ** (-2)
p6eval niecza v11-22-gbebf7a0: OUTPUT«1/9␤»
..rakudo c0b2e3: OUTPUT«0.111111111111111␤»
..pugs b927740: OUTPUT«0.1111111111111111␤»
09:46 agentzh left 09:47 jerome_ left
moritz perl6: say 0 ** 0 09:48
p6eval pugs b927740, rakudo c0b2e3, niecza v11-22-gbebf7a0: OUTPUT«1␤»
09:48 jerome_ joined, mj41 joined 09:53 fhelmberger_ left
jnthn moritz: Sounds like it covers the various cases sanely. 09:56
moritz: Though it means that infix:<**> for Ints may not give you an Int back 09:57
Guess there's precedent for that though.
And the negative ones really can't...
moritz right
jnthn So, seems fine.
moritz jnthn: should the op also take the type object of the Float type to box into?
otherwise we'd have to return a parrot Float 09:58
jnthn ah, good question
Guess it probably has to
09:58 f00li5h joined
jnthn Until I do the 6model language interop stuffs. 09:59
09:59 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 10:01 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 10:02 hypolin left 10:03 daniel-s joined 10:07 dalecooper joined 10:08 simcop2387 left
masak yeah, expecting infix:<**> to return an Int doesn't feel that important. 10:08
10:08 simcop2387 joined 10:09 dalecooper left, dalecooper joined 10:11 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 10:15 icwiener left
moritz perl6: say (3**4).WHAT 10:15
p6eval pugs b927740: OUTPUT«Rat␤» 10:16
..rakudo c0b2e3, niecza v11-22-gbebf7a0: OUTPUT«Int()␤»
moritz Int certainly DWIMs more
... at least when it can
10:27 eviltwin_b joined, geekosaur left 10:31 eviltwin_b left
masak blog post! \o/ strangelyconsistent.org/blog/macro-...t-accepted 10:34
(a short one)
11:01 geekosaur joined 11:05 mkramer joined 11:06 Mowah_ joined 11:09 simcop2387 left 11:10 alc left 11:11 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur, simcop2387 joined 11:12 Moukeddar joined 11:32 wk joined 11:38 simcop2387 left, geekosaur left, eviltwin_b joined 11:39 eviltwin_b is now known as geekosaur 11:40 simcop2387 joined 11:44 geekosaur left, eviltwin_b joined 11:45 eviltwin_b is now known as geekosaur 11:52 mberends left 11:53 simcop2387 left, simcop2387 joined 11:56 satyavvd left 12:04 mberends joined, benabik left 12:11 Psyche^ joined, geekosaur left, eviltwin_b joined 12:12 eviltwin_b is now known as geekosaur 12:14 Patterner left, Psyche^ is now known as Patterner 12:15 mberends left 12:18 simcop2387 left 12:19 simcop2387 joined 12:22 Mowah_ left 12:23 wallberg joined 12:27 mberends joined, wallberg left 12:28 wallberg joined 12:30 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur, clairvy left 12:31 clairvy joined
flussence wtf, if I have "#Regex :$word-break = /\s/," (commented out) in a sub signature Niecza throws some error about an invocant 12:31
if I take the comment out and leave it in the sub body or wherever, it works fine 12:32
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
perl6: say 9 ** 1000
12:33 wallberg left
p6eval niecza v11-22-gbebf7a0: OUTPUT«1747871251722651609659974619164660570529062487435188517811888011810686266227275489291486469864681111075608950696145276588771368435875508647514414202093638481872912380089977179381529628478320523519319142681504424059410890214500500647813935818925701905402605… 12:33
..rakudo c0b2e3: OUTPUT«-9223372036854775808␤»
..pugs b927740: OUTPUT«17478712517226516096599746191646605705290624874351885178118880118106862662272754892914864698646811110756089506961452765887713684358755086475144142020936384818729123800899771793815296284783205235193191426815044240594108902145005006478139358189257019054026054840981379…
12:33 wallberg joined 12:35 geekosaur left, clairvy left 12:42 simcop2387 left 12:44 geekosaur joined 12:45 simcop2387 joined
masak colomon: good point. 12:45
colomon: I guess it's sort of part of the bigint "contract". 12:46
12:48 benabik joined 12:49 bluescreen10 joined 12:58 risou_awy is now known as risou 13:11 simcop2387 left, simcop2387 joined, simcop2387 left, simcop2387 joined 13:30 simcop2387 left, simcop2387 joined 13:32 mishin left, geekosaur left, eviltwin_b joined 13:33 eviltwin_b is now known as geekosaur 13:35 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 13:36 simcop2387 left 13:40 simcop2387 joined 13:41 geekosaur left, eviltwin_b joined
[Coke] p5p thread "Requesting permission for a new pragma named "here"" looks vaguely like START {} 13:41
13:41 eviltwin_b is now known as geekosaur 13:44 mj41 left
felher masak: i'll read your post later but congratulations :) 13:46
13:47 mkramer left
masak thanks. it's basically what the URL says ;) 13:52
13:57 smash joined
smash hello everyone 13:57
masak hi smash! 14:03
colomon o/ 14:04
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:06
(I guess the right way to fix it is separate the indenting stuff from the wrapping stuff somehow...) 14:07
14:07 mberends left 14:08 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur
masak nom: my $x = 1; say so "foo" ~~ /^ f ** {0..$x} / 14:13
p6eval nom c0b2e3: OUTPUT«Bool::True␤»
masak nom: my $x = 2; say so "foo" ~~ /^ f ** {0..$x} / 14:14
p6eval nom c0b2e3: OUTPUT«Bool::True␤»
masak nom: my $x = 0; say so "foo" ~~ /^ f ** {0..$x} /
p6eval nom c0b2e3: OUTPUT«Bool::True␤»
benabik nom: say so "foo" ~~ /^ f ** 0..0 /
p6eval nom c0b2e3: OUTPUT«Bool::True␤»
masak well, that works. so there's probably something bigger going on.
flussence the -1 part
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:15
benabik nom: my $x = -1; say so "foo" ~~ /^ f ** {0..$x} / 14:16
p6eval nom c0b2e3: OUTPUT«Bool::True␤»
flussence perl6: say ("foo" ~~ /^ f ** 0..-1 /) 14:17
p6eval niecza v11-22-gbebf7a0: OUTPUT«===SORRY!===␤␤Malformed range at /tmp/d4fKCS6epL line 1:␤------> say ("foo" ~~ /^ f ** 0..⏏-1 /)␤␤Parse failed␤␤»
..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…
..rakudo c0b2e3: OUTPUT«===SORRY!===␤Only integers or '*' allowed as range quantifier endpoint at line 1, near "-1 /)"␤»
flussence perl6: say ("foo" ~~ /^ f ** {0..-1} /)
p6eval rakudo c0b2e3: OUTPUT«=> <f>␤␤»
..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…
..niecza v11-22-gbebf7a0: OUTPUT«#<match from(0) to(0) text() pos([].list) named({}.hash)>␤»
14:18 simcop2387 left, mkramer joined 14:19 jaldhar left, jaldhar joined 14:20 simcop2387 joined 14:21 jaldhar left, mberends joined 14:22 localhost left 14:23 jaldhar joined 14:24 localhost joined 14:30 mkramer left 14:33 sayu joined, geekosaur left, stepnem joined 14:35 vmspb joined 14:36 geekosaur joined 14:40 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 14:43 geekosaur left 14:47 geekosaur joined, benabik left, benabik joined 14:51 eviltwin_b joined, geekosaur left, cognominal_ joined 14:52 eviltwin_b left, eviltwin_b joined, eviltwin_b is now known as geekosaur 14:54 cognominal left 14:56 fhelmberger joined, pmurias joined
pmurias awwaiid: hi 14:57
14:58 geekosaur left, eviltwin_b joined
awwaiid hi 14:58
14:58 eviltwin_b is now known as geekosaur
pmurias awwaiid: i'm adding a gdb backend to Devel::ebug, and i need a way to plug it in 14:59
awwaiid ok 15:00
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
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
15:03 simcop2387 left
pmurias it's currently fully compatible 15:03
is supposed to be
most of the commands are not implemented yet 15:04
awwaiid ok
where does the hard-coding currently come in?
15:04 simcop2387 joined
awwaiid and what sort of plug in need are you thinking? 15:04
pmurias awwaiid: the name of the program that is executed
not sure
maybe run an ebug_backend_gdb executable?
awwaiid yeah, that would work to start -- see ebug_server vs ebug_client for example 15:05
15:05 clairvy joined
pmurias and Devel::ebug would have a backend attribute? 15:06
15:06 clairvy left
awwaiid I factored out a chunk of ebug_client last night 15:06
15:06 geekosaur left
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
15:06 clairvy joined
pmurias awwaiid: can i have a commit bit to the github repo or do you prefer pull requests? 15:07
15:07 geekosaur joined 15:08 GlitchMr joined
awwaiid pull requests are more my style if that's ok 15:08
pmurias ok
awwaiid: so Devel::ebug will have a backend attribute and ebug will take a --backend option? 15:13
should ebug automatically determin what sort of backend is needed for a given executable?
that is debug native programs with the gdb backend, perl5 ones with the current one and perl6 ones with the niecza one? 15:14
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
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
pmurias Devel::ebug does the starting up 15:19
awwaiid oh. well then. 15:20
15:20 envi_ left, envi_ joined
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:20
but yeah, it can remain in Devel::ebug somewhere 15:21
15:21 un_oarecare joined
pmurias awwaiid: how do we call the current perl5 backend? 15:25
ebug_backend_perl?
15:28 un_oarecare left
awwaiid sounds good to me 15:29
pmurias how can i portable find the executable from the tests? 15:32
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:35
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?
awwaiid sometimes :)
15:37 geekosaur left, eviltwin_b joined
pmurias starts virtualbox 15:37
awwaiid oh maybe for executing that is fine. the test I fixed is what $trace->filename returns
15:37 eviltwin_b is now known as geekosaur
pmurias awwaiid: you changed #!perl to #!/usr/bin/perl 15:37
15:37 clairvy left
pmurias in ebug 15:37
awwaiid ah. not very nice of me
15:38 clairvy joined
awwaiid esp since lately I've been using '#!/usr/bin/env perl' to make perlbrew work easily 15:38
hm. ebug still has #!perl. I don't know what is correctest. 15:39
pmurias #!/usr/bin/perl and #!perl seemd to get corrected by Build at install 15:40
awwaiid hm. interesting
pmurias #!/usr/bin/env perl doesn't
maybe we should switch the discussion to #perl? 15:42
awwaiid sure
15:45 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 15:47 Moukeddar left 15:48 vmspb left 15:50 eviltwin_b joined, geekosaur left 15:51 eviltwin_b is now known as geekosaur
sorear hello. 15:51
masak hai. 15:52
sorear is not very hopeful that Devel::ebug can have interchangable backends that are any good
TimToady ⟅ö⟆
sorear TimToady: did you see my reply at 21:54 PST? 15:53
TimToady yes
sorear .o( a bot that can turn date --rfc-822 output into clog links might be useful) 15:54
fsergot hi #perl6 o/
TimToady ö⟆
pmurias sorear: why the doubt? 15:55
sorear pmurias: significant differences in underlying data model 15:56
.u ⟆
phenny U+27C6 RIGHT S-SHAPED BAG DELIMITER (⟆)
awwaiid isn't it all what line am I on, what line am I going to, when should I stop? :) 15:58
anyway, let's try it and see
16:00 kaleem left
sorear TimToady: how much would it hurt completeness to use ucd-xml instead of mktables? 16:00
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 sayu left
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
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
sorear it seems P5 doesn't support unihan properties
TimToady though those are tuned for UTF-8, so I wouldn't use the design directly
16:09 dalecooper left
sorear I'll follow this lead, it shrinks the db nicely :p 16:09
16:09 bluescreen10 left
TimToady unihan has properties now, does it? sugoi... 16:09
sorear yeah... / \p{kMandarin=san} / os so 16:10
or so
16:12 wk left
TimToady well, / <:kMandarin<san>> / in P6 spec-land 16:14
16:16 eviltwin_b joined, geekosaur left, eviltwin_b is now known as geekosaur 16:17 kaleem joined
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:20
I guess memoization would help, at least for alphabetic texts 16:22
moritz if somebody does that... doctor, it hurts
sorear heads off 16:23
moritz: both of those examples are from S05. 16:24
16:24 bluescreen10 joined
moritz sorear: well, the spec sometimes shows extreme examples more than usual examples 16:25
16:34 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur, kaleem left 16:37 [Sec] joined
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␤»
masak rakudo: class A { has Int $.S = 0 }; say (A.new, A.new, A.new).min(*.S)
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/…
masak I think the former is what's happening in the latter.
masak submits rakudobug
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
TimToady: this would be a case of using an in-band value and wishing it were out-of-band, I guess :)
16:45 daniel-s left
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:45
moritz well 16:46
what you can do is default the return value to Inf
but take the first value without comparison, and only compare to that in subsequent cases
masak right.
that's what I meant by 'special-case' above.
16:47 wk joined
masak we're then using Inf as an out-of-band value rather than an in-band value. 16:47
16:49 geekosaur left 16:50 geekosaur joined 16:51 simcop2387 left 16:52 kaleem joined, geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur
dalek ecs: 7b498ac | larry++ | S06-routines.pod:
de-sigil the |capture and \parcel params
16:57
16:58 simcop2387 joined 16:59 geekosaur left, eviltwin_b joined 17:00 eviltwin_b is now known as geekosaur
masak "if you don't like sigils, just use these backslashes" 17:00
PerlJam TimToady: you always scare me with stuff like that.
TimToady sorear: re efficient properties, note that both of those are resolvable at compile time, if we assume the Unicode tables are relatively immutable
masak: and only on the declaration :)
masak right.
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 :)
masak ;)
moritz surely will... while writing setting code
masak I'm fine with the spec having bits that I don't like. just don't... expect me to like them. :) 17:02
17:02 am0c left, geekosaur left, eviltwin_b joined
PerlJam so ... | is a "capture sigil" and \ is a "parcel sigil" :-) 17:03
17:03 eviltwin_b is now known as geekosaur
TimToady call it the 𝑖, 𝑗, 𝑘 style :) 17:03
moritz .u �
phenny U+0020 SPACE ( )
U+FFFD REPLACEMENT CHARACTER (�)
moritz .u .. 17:04
phenny U+0020 SPACE ( )
U+0021 EXCLAMATION MARK (!)
U+0022 QUOTATION MARK (") [...]
moritz hm
the browser shows it correctly in the IR clogs
TimToady someone needs to drag irssi out of the stone age, maybe
moritz but I can't seem to copy&paste it to putty
daxim let me guess, astral characters? 17:05
moritz surreal characters
TimToady mathematical, which is much the same thing
17:05 benabik left
daxim lots of software is still borken vav this 17:05
17:05 benabik joined
PerlJam TimToady: what does args get in sub foo ($blah, |args, @goober) { ... } ? 17:06
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
PerlJam okay, that's what I thought
TimToady that's how jnthn++ has already implemented, iiuc
*it
17:08 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 17:11 simcop2387 left, simcop2387 joined
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:13
17:13 alvis left
PerlJam TimToady: since \ introduces a term, is that a useful shortcut for macro placeholders? (at least for that category) 17:16
(assuming there's a way to get at the AST-end of it :) 17:18
dalek ecs: da0c71f | larry++ | S06-routines.pod:
include ability to have non-identifier aliases
17:19
TimToady you mean for quasi-unquoting? I think it doesn't help the ambiguity as much as a real AST sigil would 17:20
17:21 colomon left
TimToady still kinda likes ¤ for that 17:21
it's very much a what-the-heck-is-that?!? character
17:21 eviltwin_b joined, geekosaur left 17:22 MayDaniel joined, eviltwin_b is now known as geekosaur
masak .u ¤ 17:22
phenny U+00A4 CURRENCY SIGN (¤)
ashleydev TimToady: you like that better than the square in a circle one?
PerlJam currency sign? 17:23
masak PerlJam: it never really took off.
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
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
oh, you mean the currency sign :)
masak TimToady: no, I was talking about the cu... yeah.
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.
TimToady ASTs are the abstract fungibles of a compiler :)
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:(...) ?
masak currencies aren't fungible.
TimToady that would seem useful
they are if you leave them out in the damp :)
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.
TimToady is trying to optimize for the long term more than the short term, as you may have noticed... 17:29
17:29 sayu left
masak std: my $a; term:($a) 17:30
p6eval std be1f10e: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'term' used at line 1␤Check failed␤FAILED 00:01 123m␤»
masak std: my $a; sub term {}; term:($a) 17:31
p6eval std be1f10e: OUTPUT«ok 00:01 123m␤»
masak hm, that seems to parse as something already.
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.
TimToady oh, it's term() :($a)
as an adverb
masak right.
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]
p6eval std be1f10e: OUTPUT«===SORRY!===␤Variable $a is not predeclared at /tmp/AfmA6NtP6x line 1:␤------> term:[⏏$a]␤Undeclared routine:␤ 'term:[$a]' used at line 1␤Check failed␤FAILED 00:01 120m␤»
masak every time I have to use 'term:'.
TimToady std: term:[42]
p6eval std be1f10e: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'term:[42]' used at line 1␤Check failed␤FAILED 00:01 119m␤»
masak so it seems like the wrong place to put that information.
PerlJam masak: but you'll never have to use term: because it'll just be ¤($a) :-) 17:34
TimToady PerlJam: that's a hack
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
17:35 eviltwin_b joined, geekosaur left 17:36 eviltwin_b is now known as geekosaur
masak no, I was just using 'term' as an example. 17:36
because that's what's been used the most so far in these discussion.
PerlJam okay.
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 kaleem left
masak preferably, the caller should specify the context. but that's too late. :) 17:37
17:38 MayDaniel left, wolfman2000 left
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
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
TimToady they're mostly what we discussed already
jnthn TimToady: std updated yet? ;) 17:40
17:40 skangas left
TimToady nope, he sez proudly 17:40
masak & 17:42
TimToady is an American, so hypocrisy is protected as a form of free speech
17:43 DarthGandalf left
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...
dalek odel: 3c55146 | diakopter++ | lua/ (15 files):
more optimization attempts
17:48
17:49 DarthGandalf joined
TimToady masak: "my blogging plans are to ambitious" 17:50
17:50 molaf joined 17:53 geekosaur left
moritz is disappointed by the lack of HPMoR updates 17:53
17:54 geekosaur joined
jnthn moritz: So, for bigint we're just missing the coercion to Num? 17:55
moritz jnthn: aye
jnthn moritz: OK. Too bad the lib is missing that... 17:56
17:57 geekosaur left, geekosaur joined
colomon Should be pretty easy to hack, no? 17:57
at least, is there a log10 available for bigint? 17:59
moritz colomon: the lib stores an array of unsigned long digits 18:01
colomon so it's base 2**64, in effect?
moritz it should be possible (but fiddly) to use the first $n bits as mantissa, and the number of bits after that as exponent
colomon: yes
(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?
moritz that would reproduce numbers around 2**65 very badly 18:03
colomon would it?
moritz because the first int64 would be around one bit
so even if you write 2**65 + 2**64, it would return 2**65 18:04
colomon no, no, "non-zero bits"
moritz ah right
yes, that's basically what I meant
colomon yeah, I was just thinking of it in terms of math operations rather than directly hacking the Num representation. 18:05
18:05 geekosaur left, eviltwin_b joined
moritz needs a bit more care though, regarding overflow, producing denormalized floats etc. 18:05
18:05 eviltwin_b is now known as geekosaur
dalek p/bigint: 102de40 | jnthn++ | src/6model/sixmodelobject.h:
Add one more function to the REPR table (should be the final missing one for REPR API 2).
18:06
p/bigint: 006974d | jnthn++ | src/6model/ (2 files):
Tag the REPR function table with the ID the REPR gets, so it's conveniently available.
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:07 Grrrr left 18:08 Grrrr joined
colomon moritz: I'm trying to figure out how you gracefully get the first int64 non-zero bits... 18:08
18:09 geekosaur left 18:10 geekosaur joined
moritz colomon: probably using the built-in bit shift ops in some way 18:10
colomon built-in to ?
moritz libtommath 18:11
colomon ah
hmmm 18:12
moritz they aren't called bitshift in the API, but division and multiplication by 2**n
mp_div_2d and mp_mul_2d 18:13
benabik libtommath does appear to have a function that returns an array of bytes that you can then manipulate as you please. 18:14
18:14 vmspb joined 18:15 GlitchMr left
moritz well, you can operate on mp_int->dp, mp_int->used and mp_int->sign 18:16
jnthn 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
colomon is there an easy place to find the specs of libtommath? 18:18
moritz colomon: github.com/libtom/libtommath/blob/.../tommath.h 18:19
there's also a .pdf, but it's more wordy without providing much more informaton
benabik The PDF is more about the algorithms used. 18:20
18:22 alvis joined
colomon mp_cnt_lsb? 18:22
18:22 geekosaur left 18:24 geekosaur joined
tadzik o/ 18:27
18:27 DarthGandalf left 18:28 geekosaur left, eviltwin_b joined 18:29 eviltwin_b is now known as geekosaur, dakkar left 18:30 envi_ left
dalek p/bigint: 6d52f98 | jnthn++ | src/6model/ (2 files):
Get dynamic repr registration to return the ID given to the representation.
18:35
p/bigint: 965804c | jnthn++ | src/6model/reprs/ (8 files):
Add get_boxed_ref functions; P6opaque one needs filling out more fully.
p/bigint: 1b2781c | jnthn++ | t/nqp/60-bigint.t:
Fix typo in test.
18:37 geekosaur left 18:39 geekosaur joined, Chillance joined
moritz colomon: note that "digit" in tommath lingo means "64bit word" 18:39
18:40 skangas joined
moritz it doesn't give you a bit boundary 18:40
18:44 f00li5h left, arnsholt_ joined 18:45 uniejo_ joined, preflex left, Sarten-X left, Reaganomicon left, uniejo left, arnsholt left, ruoso left, Yappoko___ left, pochi left 18:46 ruoso joined, Reaganomicon joined, Yappoko___ joined, pochi joined 18:49 preflex joined 18:52 geekosaur left, eviltwin_b joined, Sarten-X joined 18:53 eviltwin_b is now known as geekosaur, wolfman2000 joined, fsergot left 18:56 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 18:59 GlitchMr joined 19:04 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 19:08 kaleem left 19:09 kaleem joined, wolfman2_ joined 19:11 fsergot joined, wolfman2000 left
fsergot nom: say *,"a", *; 19:12
p6eval nom c0b2e3: OUTPUT«*a*␤»
fsergot nom: say "a" ¬¬ *,"a", *;
p6eval nom c0b2e3: OUTPUT«===SORRY!===␤Confused at line 1, near "say \"a\" \x{ac}\x{ac}"␤»
fsergot nom: say "a" ~~ *,"a", *; 19:13
p6eval nom c0b2e3: OUTPUT«Bool::Truea*␤»
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 geekosaur left, eviltwin_b joined 19:20 eviltwin_b is now known as geekosaur 19:21 kshannon left 19:23 geekosaur left 19:24 geekosaur joined 19:31 geekosaur left
moritz uhm, it looks like only DIGIT_BIT = 60 bits are stored per word by default 19:35
TimToady I suppose that lets you unroll a few additions without worrying about overflow every time 19:38
moritz probably
TimToady two numbers plus a carry is three right there
moritz ah right, C doesn't make the carry flag available to the pained lib developer
19:39 eviltwin_b joined
dalek odel: a8c8822 | diakopter++ | lua/ (3 files):
minor fixes
19:40
odel: 862ce02 | diakopter++ | lua/ (15 files):
Merge branch 'master' of github.com:diakopter/6model
odel: 3ac97e3 | diakopter++ | lua/compiler/profiler.lua:
Add profiler.lua
19:41 packetknife joined 19:42 eviltwin_b left, eviltwin_b joined 19:43 allbery_b joined, allbery_b is now known as geekosaur
diakopter example profiler output gist.github.com/1348913 19:45
19:47 eviltwin_b left 19:48 wolfman2000 joined
masak TimToady: thanks; fixed. 19:48
TimToady: quasis *are* parameterized ASTs :) 19:49
19:49 ksi joined
masak but I guess you mean along some other dimension. 19:49
19:49 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 19:51 wolfman2_ left
jnthn diakopter: Is that output for the integer loop? 19:56
19:58 GlitchMr left
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:00
20:01 geekosaur left 20:05 daxim left 20:06 geekosaur joined
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 geekosaur left, eviltwin_b joined 20:17 allbery_b joined, allbery_b is now known as geekosaur 20:19 geekosaur left, allbery_b joined 20:20 allbery_b is now known as geekosaur, eviltwin_b left 20:21 geekosaur left, eviltwin_b joined, eviltwin_b is now known as geekosaur 20:27 eviltwin_b joined, geekosaur left, eviltwin_b left
tadzik who wants to answer stackoverflow.com/questions/8056404...-in-perl-6 ? 20:27
masak no, it's not possible. some unknown force prevents us from implementing Lisp in Perl 6. ;) 20:28
20:28 geekosaur joined
masak ah, person doesn't want to implement Lisp, but embed it. 20:29
colomon masak: it's not unknown -- Perl 6 simply isn't Turing-complete. ;) 20:30
either that or it just doesn't support enough parentheses. 20:31
20:32 zby_home joined, skangas left
dalek odel: 9cd77d6 | diakopter++ | lua/runtime/Runtime/MultiDispatch/DispatchCache.lua:
off-by-one; jnthn++ for spotting
20:32
jnthn nom: say (((((((((((((((((((('oh hai'))))))))))))))))))))
p6eval nom c0b2e3: OUTPUT«oh hai␤»
20:34 wolfman2000 left, risou is now known as risou_awy
moritz composes an answer 20:34
20:36 abercrombie left 20:38 geekosaur left 20:42 skangas joined
moritz answer composed. 20:43
dalek odel: b1a90ab | jnthn++ | dotnet/runtime/Metamodel/KnowHOW/KnowHOWBootstrapper.cs:
Get KnowHOWs to publish a method cache. ~9% performance improvement in 'loop up to 10 million' benchmark.
20:50
masak moritz++ 20:51
20:58 linguini joined
dalek odel: f7dcbc2 | diakopter++ | lua/runtime/Metamodel/KnowHOW/KnowHOWBootstrapper.lua:
Get KnowHOWs to publish a method cache. ~25% performance improvement in 'loop up to 1 thousand' benchmark. jnthn++
21:01
odel: 90de12b | diakopter++ | dotnet/runtime/Metamodel/KnowHOW/KnowHOWBootstrapper.cs:
Merge branch 'master' of github.com:diakopter/6model
21:02 geekosaur joined
moritz gist.github.com/1349237 <-- first shot at mp_int -> double conversion 21:09
colomon, jnthn: ^^
put in libtommath, and compile with gcc -I. -lm -o double mp_get_double.c *.o 21:11
*put it into the libtommath dir
colomon Ah, so you take the top two DIGITs? clever way of avoiding worrying about the shifting. 21:13
moritz yes :-)
I figured it was easier not to do off-by-one errors that way :-)
though I guess the double use of pow() might be costly
colomon maybe I'm being dense, but I don't get the d *= pow(2.0, DIGIT_BIT * i); bit
what is DIGIT_BIT? 21:14
jnthn that gets the exponent right, iiuc?
colomon oh, number of bits in a digit.
moritz number of bits in a DIGIT
colomon okay, I do get it.
moritz jnthn: exactly
colomon i is the number of digits left, right?
moritz yes
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:15 vmspb left
[Coke] does diakopter's work on 6model mean rakudo is running on lua? 21:17
(or just nqp? or just 6model?)
moritz -> sleep
masak 'night, moritz. dream of avoided off-by-one errors. 21:18
moritz avoids accidental complexity... unless by accident
jnthn [Coke]: It means some of nqp and 6model is now running on lua :) 21:19
[Coke]: So, first step in getting Rakudo there.
moritz note that rakudo has still quite some parrot specific code
jnthn aye 21:20
moritz for example all the exceptions stuff
and I guess lexicals too
jnthn Yeah, and the ops and multi-dispatcher
I just tend to expect those bits to need porting per platform.
Multi-dispatch and binding are too performance sensitive to try and put abstraction layers in the way.
21:25 bluescreen10 left
moritz -> really sleep 21:25
masak -> sleep
21:28 lichtkind joined 21:31 eviltwin_b joined, geekosaur left
[Coke] in any case, diakopter++ ! 21:33
[Coke] ponders doing similar JVM work.
jnthn [Coke]: mberends++ did a bunch of that already
[Coke] yay. 21:34
21:36 bluescreen10 joined, donaldh joined
dalek p/bigint: 2395763 | jnthn++ | src/6model/reprs/P6opaque. (2 files):
Implement get_boxed_ref in P6opaque.
21:36
p/bigint: d6c0f7b | jnthn++ | src/ops/nqp_bigint.ops:
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.
p/bigint: 39c6bcd | jnthn++ | t/nqp/60-bigint.t:
Tests for the flattened in bigint case.
21:38 eviltwin_b is now known as geekosaur 21:42 eviltwin_b joined 21:44 allbery_b joined 21:45 geekosaur left 21:46 bluescreen10 left, kaare_ left 21:47 geekosaur joined, eviltwin_b left 21:49 allbery_b left, kaleem left 21:50 donaldh left
dalek kudo/nom: 1985138 | jnthn++ | src/binder/bind.c:
Fix :U/:D and junction interaction.
21:50
21:53 MayDaniel joined 21:58 donaldh joined 22:00 eviltwin_b joined, geekosaur left 22:08 allbery_b joined 22:09 allbery_b is now known as geekosaur 22:10 eviltwin_b left 22:12 f00li5h joined
dalek odel: ea903a6 | diakopter++ | lua/ (2 files):
optimize try/catch/finally some; 40% overall speedup.
22:15
donaldh Is anyone hacking on a JVM implementation of Perl6 ? 22:18
dalek kudo/bigint: d2d14a2 | jnthn++ | src/Perl6/SymbolTable.pm:
Load nqp_bigint ops, ensure they get set up.
22:19
kudo/bigint: dd61d0e | jnthn++ | src/binder/sixmodelobject.h:
Bump to latest 6model API.
kudo/bigint: 88d4129 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
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 MayDaniel left 22:20 mj41 joined
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.
colomon jnthn: is that to use bigint exclusively, or only if you overflow int64? 22:21
well, int?
donaldh I've found 6model/java which looks untouched since the start of the year.
jnthn colomon: Int is always using P6bigint
colomon: Which for now always delegates to libtommath
colomon: We can do some other upgrade semantics later if needed.
colomon: int is always native (CPU) integer. 22:22
22:22 eviltwin_b joined
colomon jnthn: understood 22:22
22:23 geekosaur left
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.
donaldh jnthn: is it a good place to start then? 22:24
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:25
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!
jnthn donaldh: IIRC, it stalled because Java has no goto ;)
donaldh: So next was trying to get code gen to just emit either JASM as a stepping stone to bytecode.
Or bytecode itself
Probably the first is easier 22:27
donaldh: All of (nqpjava, nqplua, nqpclr) are relatively closely related.
donaldh I see.
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) ?
jnthn Actually nqpclr was there 6model was first explored/prototyped/designed
donaldh: 6model repo is more for prototyping and exploration.
donaldh: Eventually the various NQP backends, with their implementations of 6model core, should end up in the nqp repo. 22:29
22:29 eviltwin_b is now known as geekosaur
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:29
22:30 zby_home left
donaldh Okay, so if I want to hack on this then I should start with 6model/java 22:30
jnthn Yes
diakopter jnthn: reimplementing try/catch/finally got a 75% speedup 22:38
jnthn diakopter: whoa. Guess it was quite a bottleneck. 22:39
dalek odel: c14bd69 | diakopter++ | lua/ (2 files):
reimplement try/catch/finally entirely.
22:40
22:42 eviltwin_b joined, geekosaur left 22:43 eviltwin_b is now known as geekosaur 22:46 Moukeddar joined 22:47 dual left
jnthn diakopter: yeah, feels faster 22:48
jnthn tries to quantify it
nom: say 27.48 / 327.3 22:52
p6eval nom 198513: OUTPUT«0.0839596700274977␤»
jnthn diakopter: ^ is nqpclr vs nqplua now
(for the benchmark up to 10 million)
diakopter better
jnthn yeah 22:53
fwiw, today's Rakudo cranks through it in 46.37s 22:55
Though it has the benefit of an optimizer and the most carefully tuned 6model implementation so far.
Plus a decent boolification protocol
Give nqpclr those and it probably gains a bit. 22:56
tadzik wut, only 2 times slower than clr?
jnthn tadzik: Only 2 times slower than nqpclr
tadzik yeah, that's what I meant 22:57
jnthn But yeah
It shows how far Rakudo has come
That difference used to be epic.
tadzik mlkshk.com/r/6AE0
jnthn :)
ok, rest time...$onsite-dayjob tomorrow 23:03
dalek odel: 3997d21 | diakopter++ | lua/ (3 files):
cleanup
23:09 eviltwin_b joined
japhb gjb6809e 23:10
23:10 geekosaur left 23:14 Moukeddar left, wooden joined, wooden left, wooden joined, allbery_b joined, allbery_b is now known as geekosaur, fridim_ left 23:16 eviltwin_b left 23:17 benabik left, cooper joined 23:19 pjcj left 23:28 pjcj joined, donaldh left, Chillance left 23:37 whiteknight joined, whiteknight is now known as Guest67404 23:43 wallberg left 23:44 mberends left 23:45 dfaure joined, dual joined 23:51 eviltwin_b joined, geekosaur left 23:53 dual left 23:55 eviltwin_b is now known as geekosaur 23:58 dfaure left 23:59 eviltwin_b joined