Camelia, the Perl 6 bug

IRC log for #perl6, 2011-11-15

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:04 molaf_ joined #perl6
00:17 PacoLinux_ joined #perl6
00:40 Eth4n joined #perl6
00:47 ab5tract joined #perl6
00:48 bluescreen10 joined #perl6
01:01 whiteknight joined #perl6
01:18 dorlamm joined #perl6
01:25 hypolin joined #perl6
01:52 ethndbst joined #perl6
01:53 preflex joined #perl6
01:54 am0c^ joined #perl6
01:54 kboga left #perl6
02:20 wolfman2000 joined #perl6
02:29 odoacre joined #perl6
02:42 replore_ joined #perl6
02:44 am0c joined #perl6
03:12 envi_ joined #perl6
03:50 odoacre text
03:52 sorear binary
03:59 Util :raw
04:02 worr joined #perl6
04:14 agentzh joined #perl6
04:17 PacoLinux_ joined #perl6
04:25 pyDude joined #perl6
04:41 woosley joined #perl6
04:50 thou joined #perl6
05:49 PacoLinux_ joined #perl6
05:52 thou joined #perl6
05:59 donri joined #perl6
06:03 moritz good morning
06:05 packetknife joined #perl6
06:05 alvis joined #perl6
06:09 sorear good morning mortz
06:12 tadzik good morning #perl6
06:13 tadzik I'm going to write an open letter to this idiot who drills walls at 7 AM
06:13 tadzik argh. Disregard me
06:14 moritz drills for everone! Open Drill Foundation!
06:15 tadzik phenny: "wiertarka"?
06:15 phenny tadzik: "drill" (pl to en, translate.google.com)
06:15 tadzik ok, no faux pas ;)
06:17 sorear you live in a multiple-family-housing-structure, tadzik?
06:20 tadzik yeah, a block of flats
06:21 tadzik it's quite fine when some idiot is not drilling at 7 AM
06:21 packetknife joined #perl6
06:25 alvis joined #perl6
06:41 PacoLinux_ joined #perl6
06:44 koban joined #perl6
06:56 birdwindupbird joined #perl6
07:00 dalek rakudo/bigint: 71b0059 | moritz++ | src/Perl6/Actions.pm:
07:00 dalek rakudo/bigint: use better bigint -> num conversion in radcalc. Might fix the problem with the $Pi constant jnthn++ was seeing
07:00 dalek rakudo/bigint: review: https://github.com/rakudo/rakudo/commit/71b0059ed1
07:08 wtw joined #perl6
07:16 nebuchadnezzar joined #perl6
07:16 nebuchadnezzar yo
07:21 moritz jnthn: hah, found the problem
07:21 moritz $ ./perl6 -e 'say 10000000000000000.Num'
07:21 moritz 1874919424
07:33 japhb moritz, What causes that?
07:33 moritz japhb: a bug in the bigint -> float converter that I wrote
07:34 japhb Right, I meant, what was the bug?
07:34 moritz japhb: "moritz being too silly to read the API docs of the library he is using"
07:35 japhb That'll get you every time.  ;-)
07:35 moritz aye :-)
07:35 moritz basically I missed a note that mp_get_int always cuts the result off to 32bit
07:35 japhb ouch.
07:35 moritz which is a nice idea if you want consistency, but not a nice idea if you want to use machine size ints
07:36 japhb NOD
07:36 moritz luckily easy to fix, it seems
07:37 moritz .oO( by reading the API docs :-) )
07:37 japhb heh
07:37 japhb BTW, did jnthn ever figure out why he was getting 32-bit INTVAL on a 64-bit arch?
07:37 moritz dunno
07:39 moritz I'd guess it's a parrot Configure.pl hiccup, or a weird default in the compiler, or a mixture thereof
07:40 dalek nqp/bigint: d554f1d | moritz++ | / (2 files):
07:40 dalek nqp/bigint: fix, simplify and test bigint -> float conversion for 32 < size < 64
07:40 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/d554f1d510
07:40 * japhb suspects "all of the above"
07:40 moritz if you read through that diff, the change from mp_get_int (32 bit) to DIGIT(a, 0) (full "digit" width, ususally 60 bit) is the interesting part
07:41 moritz and it also explains why jnthn didn't see the erorrs, because on his platforms DIGIT is smaller than 32bit
07:41 japhb right.
07:42 japhb That reminds me: might your problem with isbig be because of the upper 4 "reserved" bits left over from DIGIT are not necessarily all 0?
07:43 japhb Meaning, do you need to mask them off before doing your isbig test?
07:44 japhb (I'm not looking at the code at the moment, just something I thought of a while ago)
07:46 japhb g'night, Perlwrights
07:56 TiMBuS moritz
07:57 moritz ... yes?
07:57 TiMBuS does the bigint implementation cause all ints to become.. big
07:57 TiMBuS had trouble phrasing that for some reason
07:57 TiMBuS does it box all ints
07:58 moritz well, the question is on what level
07:58 TiMBuS or does it use some overflow/upgrade magic
07:58 moritz an Int now always stores its data in an mp_int structure
07:58 moritz but an int is still a machine-sized integer register
07:59 TiMBuS i see
08:00 TiMBuS i need to use my shift key more
08:00 moritz I'm surprised you don't, with that nick of yours :-)
08:01 TiMBuS about 11 years of using it and its sorta like a tattoo
08:01 TiMBuS i dont like it anymore but im stuck with it
08:02 * moritz doesn't have any tattoos he doesn't like
08:02 Timbus easier than i thought
08:05 moritz Timbus++
08:05 dalek roast: df923e9 | moritz++ | S32-num/rat.t:
08:05 dalek roast: refudge rat.t for bigint usage
08:05 dalek roast: review: https://github.com/perl6/roast/commit/df923e9fb6
08:07 moritz jnthn: https://gist.github.com/1366434 current spectest status on bigint
08:08 moritz jnthn: it seems the regex tests fail while compiling \x escapes, because I've overridden the hex -> int conversion method to return an Int
08:08 moritz jnthn: I don't know what the best fix is, maybe you have an idea?
08:15 koban left #perl6
08:29 domidumont joined #perl6
08:34 mj41 joined #perl6
08:52 mkramer joined #perl6
08:57 icwiener joined #perl6
08:58 flip214 joined #perl6
09:01 flip214 left #perl6
09:05 huf joined #perl6
09:07 [particle] joined #perl6
09:09 jjore joined #perl6
09:19 domidumont joined #perl6
09:22 woosley left #perl6
09:29 snearch joined #perl6
09:40 jnthn morning, #perl6
09:41 moritz \o jnthn
09:43 jnthn Ugh. Caught a cold.
09:43 * jnthn pulls the latest changes
09:44 jnthn moritz: OK, seems like I was having a bunch of those fail too
09:44 moritz rakudo doesn't yet declare the proper nqp/bigint dependency, it's just "the latest" :-)
09:45 moritz $ ./perl6 --ll-exception -e '/\x12/' 2>&1|head
09:45 moritz Null PMC access in invoke()
09:45 moritz current instr.: 'nqp;QRegex;P6Regex;Actions;backslash:sym<x>' pc 76331 (src/stage2/QRegex.pir:26301) (src/stage2/QRegex.nqp:1300)
09:45 jnthn oh, is that the rx.t fail?
09:45 moritz yes
09:45 moritz and another regex fail
09:46 moritz I guess it's because the hex-to-int conversion now returns an Int
09:46 moritz maybe I should revert that, and have it always return a parrot number in nqp, and override all action methods in rakudo
09:47 jnthn Is overriding backslash:sym<x> and friends in Rakudo not enough?
09:47 moritz dunno
09:48 jnthn ok 26 - bigint -> float, 1e16
09:49 moritz oh, it might be much simpler
09:49 jnthn however
09:49 jnthn not ok 1 - pi (using constant)
09:49 jnthn # got:      3.14159265
09:49 jnthn # expected: 0.552631241154582
09:49 moritz I've changed ints_to_string to a method, and QRegex still assumes it's a sub
09:49 moritz :(
09:49 jnthn oh!
09:50 dakkar joined #perl6
09:51 * jnthn hopes the :: to . fix does it
09:51 moritz jnthn: what does '3.14159265.perl' print on your machine?
09:52 moritz it's 62831853/20000000 here
09:53 jnthn moritz: Seems it's something to do wiht length... https://gist.github.com/1366601
09:53 jnthn moritz: Note that it's not a Rat - it's a Num literal.
09:53 jnthn > 3.14159265.perl
09:53 jnthn 62831853/20000000
09:54 moritz jnthn: then I need 3.141592653589.perl :-)
09:55 moritz (radcalc deals with Num and Rat mostly the same way, so the output is still interesting)
09:56 jnthn > 3.141592653589.perl
09:56 jnthn 3141592653589/1000000000000
09:56 jnthn moritz: I see we do this:
09:56 jnthn my num $result := nqp::mul_n(nqp::div_n(nqp::unbox_i($iresult), nqp::unbox_i($fdivide)), nqp::pow_n($base, $exponent));
09:56 jnthn return $*ST.add_numeric_constant('Num', $result);
09:56 moritz I thought I changed that from unbox_i to tonum_I
09:57 jnthn yeah, I was wondering why it wasn't tonum_I
09:57 jnthn Line 4317
09:57 moritz did I forget to push 71b0059ed1b7a54981de89fa932f077a4e70ac3f ?
09:57 jnthn oh wait
09:57 moritz jnthn: you forgot to pull :-)
09:57 jnthn Yeah...grr
09:57 jnthn sorry.
09:58 jnthn I thought I had :S
09:58 moritz no problem :-)
09:58 jnthn pi.t is happy again \o/
09:58 jnthn moritz++
09:58 moritz jnthn: if 3141592653589.Num seems sensible on your machine, the fix is likely to...
09:58 moritz work
09:58 * moritz too slow
09:59 jnthn t/spec/S02-types/infinity.rakudo - I suspect this one may need re-fudging; it doen't take kindly to Int.Inf failing.
09:59 moritz aye
09:59 moritz I'm fine with fudging that one
09:59 GlitchMr joined #perl6
10:00 moritz it's todo()ed anyway
10:01 dalek roast: 82f7dc2 | moritz++ | S02-types/infinity.t:
10:01 dalek roast: s/todo/skip/ some Inf related tests which bigint branch will break completely
10:01 dalek roast: review: https://github.com/perl6/roast/commit/82f7dc2820
10:01 jnthn oh, heh, I just did it too
10:01 jnthn No changes -- Patch already applied.
10:01 jnthn Everything up-to-date
10:01 jnthn We did the exact same change ;)
10:01 moritz it's nice that git doesn't bother us with conflicts in that case
10:02 dalek nqp/bigint: 13943ae | moritz++ | src/ (2 files):
10:02 dalek nqp/bigint: fix regexes again
10:02 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/13943aedef
10:02 dalek nqp/bigint: feb1973 | moritz++ | src/stage0/ (6 files):
10:02 dalek nqp/bigint: update bootstrap
10:02 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/feb1973aa9
10:02 jnthn nom: .say for :16<dead_beef> * 16**8, :16<dead_beef*16**8>
10:03 p6eval nom ef4702: OUTPUT«1.60456909810974e+19␤1.60456909810974e+19␤»
10:03 jnthn > .say for :16<dead_beef> * 16**8, :16<dead_beef*16**8>
10:03 jnthn 16045690981097406464
10:03 jnthn 1.60456909810974e+19
10:03 jnthn hmm...we accidentally the num somewhere :)
10:04 moritz src/Perl6/Actions.pm +4318 I'd guess
10:04 moritz (ack'ing for pow_n)
10:04 moritz hm, yes
10:05 moritz we need to make radcalc smarter
10:05 moritz to not always assume Num when an exponent is present
10:05 moritz maybe just another flag to it
10:05 jnthn ah, yeah, I see what's going on
10:05 jnthn We conflate e123 with the **123 inside the rad
10:06 moritz right
10:06 moritz maybe a :$num named param
10:06 moritz then we can get rid of that exponent definedness check too
10:06 jnthn +1
10:07 daxim joined #perl6
10:08 jnthn nom: $x := 0; say 3 div $x;
10:08 p6eval nom ef4702: OUTPUT«===SORRY!===␤Variable $x is not predeclared at line 1, near " := 0; say"␤»
10:08 jnthn nom: my $x := 0; say 3 div $x;
10:08 p6eval nom ef4702: OUTPUT«Divide by zero␤  in sub infix:<div> at src/gen/CORE.setting:2324␤  in block <anon> at /tmp/SJaS0EAVb6:1␤  in <anon> at /tmp/SJaS0EAVb6:1␤»
10:08 jnthn > my $x := 0; say 3 div $x;
10:08 jnthn 0
10:09 jnthn That's the arith.t one
10:09 moritz aye
10:10 moritz should probably be fixed on the nqp_bigint_div op level
10:10 jnthn Yeah, looking at the op now :)
10:10 moritz nom: say nqp::box_I(1, 1)
10:10 p6eval nom ef4702: OUTPUT«===SORRY!===␤Unrecognized nqp:: opcode 'nqp::box_I' at line 1, near ""␤»
10:10 moritz nom: say nqp::box_i(1, 1)
10:10 p6eval nom ef4702: OUTPUT«1␤»
10:11 moritz maybe checking the return value of the mp_div call would be a good idea :-)
10:12 jnthn yeah, just making sure that it behaves :)
10:14 jnthn Testing it now
10:20 dalek nqp/bigint: 3bf3807 | jnthn++ | src/ops/nqp_bigint.ops:
10:20 dalek nqp/bigint: Check return value of mp_div and throw exception. Fixes the arith.t regression.
10:20 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/3bf380713d
10:21 moritz jnthn++
10:23 jnthn nom: .say for +^0xdead +& 0xbeef, 0x2042
10:23 p6eval nom ef4702: OUTPUT«8258␤8258␤»
10:24 jnthn > +^0xdead +& 0xbeef, 0x2042
10:24 jnthn 40622 8258
10:24 jnthn hmm..there's the bit.t one
10:24 * jnthn digs a bit
10:25 jnthn nom: say +^0xdead
10:25 p6eval nom ef4702: OUTPUT«-57006␤»
10:25 moritz oh.
10:25 jnthn that matches
10:25 moritz not oh.
10:25 jnthn > say +^0xdead
10:25 jnthn -57006
10:26 moritz $ ./perl6 -e '.say for :16<dead_beef> * 16**8, :16<dead_beef*16**8>'
10:26 moritz 16045690981097406464
10:26 moritz 1.60456909810974e+19
10:26 moritz meh, patch didn't work :/
10:26 jnthn aww
10:26 jnthn nom: say -1 +& 1
10:27 p6eval nom ef4702: OUTPUT«1␤»
10:27 jnthn nom: say -5 +& 2
10:27 p6eval nom ef4702: OUTPUT«2␤»
10:27 moritz ah, I see why my patch failed; trying to fix now
10:27 jnthn nom: say -57006 +& 0xbeef
10:27 p6eval nom ef4702: OUTPUT«8258␤»
10:28 jnthn nom: say +^0xdead +& 0xbeef
10:28 p6eval nom ef4702: OUTPUT«8258␤»
10:28 moritz jnthn: oh, it might be that bitwise ops from tommath do different things for negative numbers than perl 6 semantis
10:28 jnthn > say +^0xdead +& 0xbeef
10:28 jnthn 40622
10:28 jnthn yeah
10:29 moritz I must admit I just wrapped the ops without thinking about possible semantic mismatches :/
10:30 jnthn well, guess this is why we have tests :)
10:30 moritz nom: say (-3) +|
10:30 p6eval nom ef4702: OUTPUT«===SORRY!===␤Confused at line 1, near "say (-3) +"␤»
10:30 moritz nom: say (-3) +| 3
10:30 p6eval nom ef4702: OUTPUT«-1␤»
10:30 moritz that's 3 on bigint branch
10:31 moritz because it just bit-ORs the magnitudes
10:31 jnthn ah, seems you fixed the rx.t \o/
10:31 moritz \o/
10:32 moritz any ideas how the bit fiddling can be fixed?
10:33 jnthn t/spec/S10-packages/basic.rakudo also works for me now
10:33 jnthn As does t/spec/S10-packages/use-with-class.t
10:33 jnthn Thinking about the bit fiddling
10:37 moritz sorry, didn't spectest that one, takes too long here :/
10:37 dalek rakudo/bigint: 14baa3e | moritz++ | src/Perl6/Actions.pm:
10:37 dalek rakudo/bigint: make :16<dead_beef*16**8> return an Int
10:37 dalek rakudo/bigint: review: https://github.com/rakudo/rakudo/commit/14baa3e2b9
10:37 dalek roast: 9eca146 | jnthn++ | S32-num/rat.t:
10:37 dalek roast: A couple of Inf related skips.
10:37 dalek roast: review: https://github.com/perl6/roast/commit/9eca146619
10:38 jnthn That last one sorts out rat.t
10:38 jnthn moritz: Are those S10 ones working for you again now?
10:38 moritz jnthn: will see in about 20min :/
10:38 jnthn k
10:39 moritz my laptop has the unhealthy tendency to overheat, and then turn itself off :/
10:39 jnthn :(
10:39 jnthn Your radix fix works here \o/
10:39 * jnthn crosses that test off the todo list
10:39 moritz and that's really bad if you use it remotely, and can't switch it on again
10:39 moritz \o/
10:40 jnthn By my reckoning, we're now down to just needing to fix one test in bit.t, plus I should sort out big rats in pre-comp
10:40 moritz that sounds managable before the release :-)
10:40 jnthn :)
10:41 jnthn 2011-11-17   Rakudo #46                      -vacant-
10:41 jnthn Anybody who wants their moment of Rakudo release fame, step forward now ;)
10:43 arnsholt I've had mine, thanks =)
10:44 arnsholt moritz: You're the Rat-man, no?
10:44 moritz arnsholt: I think colomon++ implemented them initially :-)
10:45 jnthn phenny: assk japhb if usage message in MAIN is up to the point where we can turn the MAIN entry green in http://perl6.org/compilers/features
10:45 jnthn phenny?
10:45 jnthn oh
10:45 jnthn phenny: ask japhb if usage message in MAIN is up to the point where we can turn the MAIN entry green in http://perl6.org/compilers/features
10:45 phenny jnthn: I'll pass that on when japhb is around.
10:46 arnsholt Ah, right
10:46 moritz anyway, I'm not up for a release this month (vacation in Oslo, unsure about internet access/computer usage at host family)
10:47 jnthn moritz: yes, I wasn't particularly thinking of you :)
10:47 jnthn ooh, Oslo vacation :)
10:47 jnthn enjoy it!
10:47 jnthn afk for a little bit...
10:47 moritz mostly wife's family
10:47 arnsholt I've been toying with an idea of trying to implement Rats with continued fraction representations, but figured it'd be a good idea to have a chat with people familiar with the present Rats
10:48 moritz arnsholt: well, there are two major questions to ask
10:48 moritz 1) how expensive is the storage and  2) how costly are operations
10:48 arnsholt Yeah, I agree
10:49 moritz and possibly 3) how easy/hard is it to detect overflow
10:49 arnsholt It'll be more expensive in terms of memory (obviously), but run-time I'm not sure
10:49 arnsholt Which is why I wanna try
10:49 moritz arnsholt: just implement it in user space for a start
10:49 moritz it offers everything you need, really
10:50 arnsholt Yeah, definitely. That's the nice thing with Perl 6: The code I want to compare with is in Perl 6 already, so it's easy to do
10:50 moritz what exactly would you need to store? a variable-sized list of integers?
10:51 arnsholt Yeah, it's a long array of ints
10:51 arnsholt (The idea itself comes from reading MJD's blog, which talks about this a bit)
10:51 moritz you can use a ResizableIntegerArray from parrot for that, I gues
10:51 arnsholt There are some interesting properties to the representation. It's very easy to get good decimal approximations for example
10:52 arnsholt But a priori I suspect the current way and continued fractions will be better at different things
10:52 moritz /home/moritz/p6/rakudo/install/bin/parrot: symbol lookup error: dynext/nqp_group.so/home/moritz​/p6/rakudo/install/bin/parrot: symbol lookup error: dynext/nqp_group.so: undefined symbol: pmc_new
10:52 moritz : undefined symbol: pmc_new
10:53 moritz that's when trying to build nqp on newest parrot
11:01 xinming joined #perl6
11:03 jnthn er, wtf :S
11:05 jnthn https://github.com/parrot/parrot/commit/​dffbd936320ad9277155e4f6ae4152b7d5f8951b
11:05 dalek nqp/bigint: 52cef6e | moritz++ | src/ (12 files):
11:05 dalek nqp/bigint: track parrot name changes
11:05 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/52cef6e247
11:05 jnthn aha, the regularly scheduled deckchair rearrangement...
11:09 ab5tract joined #perl6
11:09 jnthn ooh, though it was by bacek++...wonder if that means we get more awesome bacek hacking again :)
11:09 moritz jnthn: he just announced his intent to merge a branch (after parrot release), so seems like "yes" :-)
11:10 jnthn :D
11:11 jnthn OK, time to pretend I actually have a $dayjob for a while :)
11:31 PacoLinux_ joined #perl6
11:32 dalek nqp: 76e7d6e | bacek++ | src/6model/knowhow_bootstrapper.c:
11:32 dalek nqp: Use PMCNULL instead of NULL to avoid triggering of assertions
11:32 dalek nqp: review: https://github.com/perl6/nqp/commit/76e7d6e0a2
11:33 dalek nqp: 397dab4 | bacek++ | src/ (11 files):
11:33 dalek nqp: Avoid using of deprecated parrot's functions
11:33 dalek nqp:
11:33 dalek nqp: Replace pmc_new with Parrot_pmc_new, pmc_type with
11:33 dalek nqp: Parrot_pmc_get_type_str.
11:33 dalek nqp: review: https://github.com/perl6/nqp/commit/397dab4be2
11:58 lestrrat joined #perl6
12:05 am0c joined #perl6
12:13 colomon arnsholt: do you have a link to the relevant sections in MJD's blog?  :)
12:15 arnsholt colomon: Just a 'sec
12:16 bluescreen10 joined #perl6
12:16 Psyche^ joined #perl6
12:16 arnsholt colomon: http://perl.plover.com/yak/cftalk/
12:17 arnsholt Turns out it wasn't his blog =)
12:18 arnsholt There's a reference to a website with a more technical presentation at the end
12:23 colomon thanks!
12:23 colomon arnsholt++
12:23 arnsholt You're welcome =)
12:24 arnsholt As I mentioned to moritz, this is obviously more expensive in terms of memory, but it might offset the cost of gcd a bit
12:24 arnsholt And they're very simple to make lazy
12:31 JimmyZ joined #perl6
12:31 JimmyZ ส็็็็็็็็็็็็็็็็็็็็็็็็็็็​็็็็็็็็็็็็็็็็็็็็็็็็็็็็
12:31 am0c joined #perl6
12:31 JimmyZ what's this?
12:32 tadzik mirrored n with an umbrella
12:32 JimmyZ ส็็็็็็็็็็็็็็็à¹​‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à​¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡​็็็็็็็็็็็็็็็็à¹​‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à​¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¸ªà¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡​็็็็็็็็็็็็็็็็à¹​‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à
12:32 JimmyZ ¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡​็็็็็็็็็็็็็็็็à¹​‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¸ªà¹‡à¹‡à​¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡​็็็็็็็็็็็็็็็็à¹​‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à​¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡​็็็็็็็็็็็็็็็็à¹
12:32 JimmyZ ‡à¹‡à¹‡à¹‡à¸ªà¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à​¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡​็็็็็็็็็็็็็็็็à¹​‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à​¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡​็็็็็็็็็็ส็็็็็à¹​‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à​¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡
12:32 JimmyZ ็็็็็็็็็็็็็็็็à¹​‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à​¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡​ส็็็็็็็็็็็็็็็à¹​‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à​¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡​็็็็็็็็็็็็็็็็à¹​‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à
12:32 JimmyZ ¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¸ªà¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹​‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡​็็็็็็็็็็็็็็็็à​¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹​‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡à¹‡​็็็็็็็็็็็็็็็
12:32 JimmyZ .....
12:33 moritz that was not nice, JimmyZ
12:33 JimmyZ yes
12:33 JimmyZ I don't know it outputs this
12:34 * flussence sometimes wishes there were a regex shorthand to match things like "% 10s" (multiple atoms adding up to a fixed string length)
12:35 tadzik hmm, you could maybe do that
12:36 tadzik / $<foo>=[ <atom> <matom> <otam> ] <?{ $<foo>.chars == 10 }> /
12:36 moritz flussence: [. **10 & \s* \w*]
12:36 tadzik oh!
12:37 flussence wow. that was easy :D
12:37 tadzik & is like |?
12:37 arnsholt tadzik: Pretty much (in the sense I think you mean =)
12:38 tadzik (:
12:38 moritz nom: say '0045' ~~ / \d ** $ & 0+\d* /
12:38 p6eval nom ef4702: OUTPUT«=> <0>␤␤»
12:38 arnsholt Except it requires both branches to match, obviously
12:38 moritz nom: say '0045' ~~ / \d ** & & 0+\d* /
12:38 p6eval nom ef4702: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 1, near " & & 0+\\d*"␤»
12:38 moritz nom: say '0045' ~~ / \d ** 4 & 0+\d* /
12:38 p6eval nom ef4702: OUTPUT«=> <0045>␤␤»
12:38 moritz nom: say '0045' ~~ / ^[\d ** 3 & 0+\d*]$ /
12:38 p6eval nom ef4702: OUTPUT«#<failed match>␤»
12:38 moritz nom: say '0045' ~~ / ^[\d ** 4 & 0+\d*]$ /
12:38 p6eval nom ef4702: OUTPUT«=> <0045>␤␤»
12:38 moritz seems to even work :-)
12:42 benabik joined #perl6
12:42 dalek rakudo/bigint: c3f6974 | moritz++ | src/ (5 files):
12:42 dalek rakudo/bigint: track parrot renames
12:42 dalek rakudo/bigint: review: https://github.com/rakudo/rakudo/commit/c3f6974231
12:47 wk joined #perl6
12:49 moritz $ echo 'class A { method x { say 3.1444444444444444447 } }' > A.pm
12:49 moritz $ ./perl6 --target=pir A.pm > A.pir
12:49 moritz $ ./perl6 -e 'use A; A.x'
12:49 moritz 0.645105813011996
12:49 moritz the Rat serialization problme on 3 lines :-)
12:53 arnsholt Heehee =)
12:54 JimmyZ joined #perl6
12:56 moritz arnsholt: I've skimmed the slides on continuous fractions. Now I know why it's not used more widely :-)
12:56 moritz it's just much more complicated than storing numerator and denominator
12:57 arnsholt Yeah, it looks a bit more fiddly
12:57 moritz and does seem to make + and * a lot more expensive
12:58 arnsholt Yeah, that's a distinct possibility
12:58 moritz (I'm not saying you shouldn't try, it sure is an interesting experiment)
12:58 arnsholt Yeah, I'm gonna try to find the tuits to tet it
12:58 arnsholt s/tet/test
13:00 tokuhirom joined #perl6
13:01 Tamal joined #perl6
13:01 Tamal hello
13:02 moritz hi Tamal
13:02 Tamal how i can set up perl 6 ?
13:02 Tamal and where i can get its book ?
13:02 Tamal plz help
13:03 moritz Tamal: http://rakudo.org/how-to-get-rakudo/
13:03 moritz and the book from https://github.com/perl6/book/downloads
13:03 Tamal thanks
13:11 moritz jnthn: t/spec/S03-operators/bit.t is now the only failing test in the bigint branch
13:11 moritz on my machine
13:12 takadonet joined #perl6
13:13 takadonet hey all
13:13 moritz \o takadonet
13:14 jnthn moritz: Great, that matches what I have too
13:17 jnthn moritz: I'm trying to find the bit of the bitwise spec that covers the case we're seeing here
13:18 jnthn (looking in S03)
13:18 jnthn Or is it a "same as 5" thingy?
13:18 J__ joined #perl6
13:19 mishin joined #perl6
13:19 moritz +^$x
13:19 moritz Coerces to Int and then does bitwise negation on the number, returning an Int. (In order not to have to represent an infinitude of 1's, represents that value as some negative in 2's complement form.)
13:20 moritz so it is implied that int bitops work with 2's complement
13:20 jnthn aha, ok
13:20 jnthn Which is "fun" since our bigint library has a sign bit
13:20 moritz aye
13:21 moritz (though honestly I'm fine with regressing on that bit for now, and worry about it later)
13:21 jnthn Only a bit later though ;)
13:22 jlaire joined #perl6
13:23 moritz hm
13:24 moritz can't you emulate  $a +| $b (2's complement) as $a +^ ($b + 1) (sign bit)?
13:25 moritz nom: say 3 +| (-6)
13:25 p6eval nom ef4702: OUTPUT«-5␤»
13:25 jnthn Well, two's complement is flip all the bits (including an extra added MSB) and then add 1.
13:26 moritz yeah, I'm wrong here
13:28 jnthn We could explicitly form the 2's complement of negative numbers
13:28 jnthn (before the anding and oring)
13:30 moritz sounds... inconvenient
13:31 moritz like, growing the integer to the size of the other integer
13:31 moritz manually inverting all the digits
13:31 moritz clipping them to fit into DIGIT_BIT again
13:31 moritz adding one
13:31 moritz doing the bit operation
13:32 moritz and all that only if exactly one of them is negative
13:36 jnthn yeah, not so efficient
13:41 moritz should I try to implement it anyway?
13:43 jnthn Well, guess correctness is a good thing
13:43 jnthn And we provide native ints for people needing raw performance now :)
13:53 moritz nom: say (-1) +& 1
13:53 p6eval nom ef4702: OUTPUT«1␤»
13:53 moritz nom: say (-1) +& 3
13:53 p6eval nom ef4702: OUTPUT«3␤»
13:54 moritz nom: say (-1) +& (-3)
13:54 p6eval nom ef4702: OUTPUT«-3␤»
13:58 PacoLinux_ joined #perl6
14:04 moritz jnthn: http://moritz.faui2k3.org/tmp/bit_fiddling.patch is my current approach (compiles, not tested; doesn't produce the right sign yet)
14:08 moritz oh, and it needs to negate back :/
14:16 moritz (patch updated)
14:16 moritz seems to work, modulo the sign
14:17 [particle] joined #perl6
14:18 wknight8111 joined #perl6
14:19 wknight8111 jnthn: ping
14:20 sayu joined #perl6
14:24 jnthn wknight8111: pong
14:24 grondilu joined #perl6
14:25 kaleem joined #perl6
14:25 jnthn moritz: Looks like what I was expecting.
14:26 grondilu perl6: my $x; push @$x, 42; say @$x
14:26 p6eval niecza v11-23-g18f7db0: OUTPUT«Use of uninitialized value in string context␤  at /home/p6eval/niecza/lib/CORE.setting line 773 (warn @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 168 (Mu.Str @ 9) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting …
14:26 p6eval ..rakudo ef4702: OUTPUT«Use of uninitialized value in string context␤␤»
14:26 p6eval ..pugs b927740: OUTPUT«42␤»
14:26 moritz I probably have to abort/interrupt my attempts right now; feel free to pick it up
14:26 jnthn moritz: ok, thanks...will see what time I get this evening
14:28 aloha joined #perl6
14:29 grondilu_ joined #perl6
14:30 grondilu_ pugs: say q{foo X bar foo Y bar} ~~ /foo [ .* !~~ X ]  bar/;'
14:30 p6eval pugs b927740: OUTPUT«*** ␤    Unexpected end of input␤    expecting "\\", variable name or "'"␤    at /tmp/bxmJlnFHI5 line 2, column 1␤»
14:32 wknight8111 jnthn: I was going to try to recruit you to help debug some parrot build errors on windows, but I seem to be making progress myself
14:32 jnthn wknight8111: I'm doing $dayjob bits but can certainly kick off a build and let you know what happens
14:33 jnthn wknight8111: Let me know what branch etc
14:52 Trashlord joined #perl6
15:07 thou joined #perl6
15:22 tadzik I get a few 'non zero exit status' spectests on the parrot/kill_constants, do you?
15:27 wknight8111 tadzik: Do you not see those errors on master?
15:28 wknight8111 tadzik: I heard rumors about those kinds of errors on master a while back, but never saw a ticket or anything. I assumed the issue disappeared
15:36 domidumont joined #perl6
15:42 tadzik wknight8111: I didn't check on master, I can rebuild the thing
15:48 wknight8111 tadzik: I'm just trying to narrow down between a problem specific to the branch or an endemic Parrot problem
15:48 tadzik sure thing
15:48 tadzik building rakudo now
15:49 jnthn I've had various such things
15:49 jnthn Got a couple at the moment
15:49 jnthn (On master)
15:49 wknight8111 I *suspect* it's an issue of inferior runloops coming up to bite us
15:51 sorear good * #perl6
15:51 colomon \o
15:51 ab5tract joined #perl6
15:51 colomon sorear: that reminds me, I wanted to ask you about MAIN.  :)
15:51 tadzik rakudo doesn't build on plain parrot for me now
15:51 tadzik ./perl6: symbol lookup error: dynext/perl6_ops.so: undefined symbol: pmc_type
15:52 tadzik funny, it built just a moment ago on kill_constants
15:52 tadzik wasn't the fix commited to bigint branch or such?
15:52 sorear colomon: not supported, and I don't _quite_ understand how it's supposed to work, mostly for want of research
15:53 colomon sorear: yeah, I was just wondering if you had a notion of how hard it would be to support it, even if just partially.
15:53 tadzik it was, mind me cherry-picking that into nom?
15:53 tadzik moritz, jnthn?
15:55 jnthn tadzik: Go ahead, though we should merge bigint soon anyway :)
15:55 jnthn I can handle losing 1 spectest for bigint support
15:55 jnthn And may be able to not do that
15:55 tadzik done
15:55 dalek rakudo/nom: 0296f41 | moritz++ | src/ (5 files):
15:55 dalek rakudo/nom: track parrot renames
15:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0296f41564
15:56 tadzik suddenly, karma. Out of nowhere! :)
15:56 pochi joined #perl6
15:56 mux jnthn: is the bigint support for perl6 "homemade" or are you using libgmp or some other lib?
15:56 TimToady s/perl6/rakudo/
15:57 jnthn mux: libtommath
15:57 sorear colomon: eheh.  discounting argument parsing, I think it would be not-too-hard to inject an ::Op::CallSub.new(|node($/), invocant => mklex($/, '&MAIN'), positionals => []) at the end of the mainline code if $*CURLEX<!sub>.has_lexical('&MAIN')
15:57 mux jnthn: I've heard many good things about this one
15:58 tadzik I've never heard about it, but everyone seems excited :)
15:58 mux same goes for libtomcrypt
15:58 jnthn mux: license and trivial to build on whatever platform are two good ones :)
15:58 * mux nods violently
15:58 mux libtomcrypt seems to be a lot more complete than openssl
15:58 colomon sorear: I may take a look at doing that, then.  assuming I get tuits, of course.  :)
15:59 jnthn It's bad enough that Rakudo users have to go chase down ICU to get proper unicode support. I didn't want similar fun for bigint.
15:59 flussence (I've heard a few horror stories about openssl's internals...)
15:59 sorear colomon: otoh, this wouldn't work in the case of class Something; sub MAIN() { } # because now &MAIN is in class-Something rather than mainline
15:59 mux flussence: Don't. Ever. Read. It. :-)
15:59 flussence point taken
15:59 mux most people need to seek professional help after having read OpenSSL's code
16:00 sorear hmm, I wonder what would happen if I fed ICU4J into ikvm
16:00 flussence I get headaches just trying to *use* it :)
16:01 mux flussence: hah yeah, merely trying to use the openssl(1) CLI tool is a challenge - every damn time I need to, i fall in the same traps :-) the thing is, I rarely need to use it so I forget everything quickly
16:04 sorear colomon: you could also steal Rakudo's MAIN_HELPER, but you'd have to improve niecza's Sub introspection first
16:05 colomon sorear: that sounds like more of a project.  :(
16:06 TimToady how far away is something like 6model for niecza?
16:06 packetkn_ joined #perl6
16:08 slavik1 joined #perl6
16:09 sorear I would call finishing the 6model convergence a 2-week project
16:10 * jnthn would call it an ongoing project, given even he doesn't consider 6model "complete" yet ;)
16:10 TimToady that would be 2 sorear-weeks, not 2 mere-mortal-weeks, I presume :)
16:10 sorear the biggest thing between Niecza-today and "6model" functionality is that HOWs aren't real P6 objects yet
16:10 sorear TimToady: more to the point, 2-slow-weeks-at-school :)
16:11 TimToady nodnodnod
16:11 sorear these current weeks aren't slow
16:11 TimToady much as we are in favor of Perl 6, we are also in favor of people not blowing up their lives :)
16:11 sorear also it's a little hard to say what is meant by 6model
16:12 sorear niecza is never going to quite look like 6model/clr because niecza made a few design decisions rather differently, like the one to use global "CPS"
16:13 jnthn Well, one of the points of "small core" was that the core could be implemented as best suits a platform.
16:27 tadzik arr, 451 open
16:27 tadzik not on my watch
16:30 smash joined #perl6
16:30 ethndbst joined #perl6
16:30 smash hello everyone
16:31 tadzik hi smash
16:32 tadzik https://rt.perl.org/rt3/Tic​ket/Display.html?id=100782 closable
16:35 * masak closed it
16:35 masak (hi, #perl6)
16:36 jnthn evenin', masak
16:36 kaare_ joined #perl6
16:38 tadzik hello masak
16:38 tadzik wknight8111: same results on parrot master
16:39 wk joined #perl6
16:39 dalek roast: f362fbd | tadzik++ | S14-roles/mixin.t:
16:39 dalek roast: Tests for RT #100782
16:39 dalek roast: review: https://github.com/perl6/roast/commit/f362fbd43b
16:39 dalek roast: 681e1e4 | tadzik++ | S02-lexical-conventions/sub-block-parsing.t:
16:39 dalek roast: Test for RT #85844
16:39 dalek roast: review: https://github.com/perl6/roast/commit/681e1e4d35
16:39 wknight8111 tadzik: okay, so it's a pervasive problem. Like I said, I suspect it's related to inferior runloops but don't know for certain
16:39 tadzik m'kay
16:40 tadzik https://rt.perl.org/rt3/Ti​cket/Display.html?id=85844 closable
16:40 tadzik and below 450 again :)
16:40 flussence .oO( I'm having a productive week so far at $dayjob... 500 lines of code removed :)
16:43 tadzik testneeded in https://rt.perl.org/rt3/Ti​cket/Display.html?id=77112
16:45 masak tadzik: closed.
16:45 masak (the #85844, that is)
16:45 tadzik heh, I added a test for wrap.t, but we don't run wrap.t yet
16:45 tadzik never sure what to do in such situation :)
16:46 jnthn Implement .wrap? ;-)
16:46 tadzik :>
16:46 tadzik hehe
16:46 tadzik is meet('masak'), 'meet masak', 'wrapped meet() works';
16:46 jnthn .oO( wrapped meat )
16:47 tadzik hrm
16:47 tadzik nom: use Test; eval_dies_ok 'nextsame' # what kind of error is that?
16:47 p6eval nom 0296f4: OUTPUT«not ok 1 - ␤»
16:48 tadzik it doesn't die, it's just the compiler failing
16:48 alester joined #perl6
16:48 mls Hi huys!
16:48 tadzik nom: use Test; dies_ok { nextsame }
16:48 tadzik hi mls!
16:48 mls guys
16:48 p6eval nom 0296f4: OUTPUT«not ok 1 - ␤»
16:48 jnthn gi mls!
16:48 mls ;)
16:49 tadzik oh, heh
16:49 mls jnthn: rakudo's closure creation code doesn't do a capture_lex
16:49 tadzik "huys" could sound offensive in Polish :>
16:50 jnthn mls: oh? It should do that at block entry...
16:50 jnthn mls: Example?
16:50 mls block entry doesn't work when recursion happens
16:50 mls we had an example last week, wait a sec
16:52 tadzik I have a feeling https://rt.perl.org/rt3/Ti​cket/Display.html?id=76328 is an alter ego of https://rt.perl.org/rt3/Ti​cket/Display.html?id=70267 and should be closed as well
16:52 mls https://gist.github.com/1367579
16:53 tadzik masak: your call ^
16:53 KirG0FF joined #perl6
16:55 mls jnthn: my proposed fix is to add a perl6_capture_lex op that does a capture_lex on the $!do of the Code object and use it after "clone" is called
16:55 jnthn mls: will look in a moment
16:55 donri left #perl6
16:56 dalek roast: 43de0a9 | tadzik++ | S12-class/augment-supersede.t:
16:56 dalek roast: Test for RT #75432
16:56 dalek roast: review: https://github.com/perl6/roast/commit/43de0a9b02
16:57 tadzik https://rt.perl.org/rt3/Ti​cket/Display.html?id=75432 closable
16:59 tadzik nom: =pod ␤ die ␤ ␤ say 1
16:59 p6eval nom 0296f4: OUTPUT«1␤True␤  in block <anon> at /tmp/HV4njUElSg:4␤  in <anon> at /tmp/HV4njUElSg:1␤»
17:00 masak tadzik: I don't know about alter ego. they look distinct enough to me.
17:00 masak even though the error messages are now the same.
17:00 tadzik hrm
17:00 * masak closes #75432
17:01 slavik1 would anyone advise against using perl6 for text processing? like reading a csv and dumping text after substituting some text?
17:02 tadzik I won't :)
17:02 masak slavik1: have you tried the Text::CSV module? :)
17:02 slavik1 masak: for perl6 or perl5?
17:02 masak for Perl 6.
17:02 tadzik masak: works on nom?
17:03 slavik1 not yet, I haven't really used perl6 yet :)
17:03 masak tadzik: unlikely.
17:03 slavik1 masak: the goal is to use perl6, not to parse csv files ;)
17:03 masak don't attempt to parse CSV on your own. it's tricky.
17:03 tadzik masak: may be worth adding to https://github.com/perl6/ecosyst​em/wiki/State-of-modules-on-nom
17:03 masak http://secretgeek.net/csv_trouble.asp
17:03 slavik1 besides a simple while $*IN, split /\s*,\s*/ will be fine for this
17:03 masak tadzik: please feel free, I don't have tuits big enough right now :/
17:04 tadzik masak: okay
17:04 masak slavik1: it's your data. you do what you want.
17:04 masak slavik1: just saying it's a common trap :)
17:04 slavik1 sounds good, thanks :)
17:04 japhb o/
17:04 phenny japhb: 10:45Z <jnthn> ask japhb if usage message in MAIN is up to the point where we can turn the MAIN entry green in http://perl6.org/compilers/features
17:05 slavik1 is rakudo still the most actively developed implementation?
17:05 masak slavik1: it has the highest bus number, if that's what you mean.
17:05 tadzik slavik1: niecza is actively developed too
17:05 masak slavik1: but sorear is pretty impressive in terms of output.
17:05 tadzik not sure about more-less active
17:05 slavik1 hmm, if I asked what implementation to use for perl6, what would be the recomendation?
17:06 ethndbst joined #perl6
17:06 ethndbst joined #perl6
17:06 slavik1 and least broken in basic stuffs
17:06 tadzik Rakudo Star imho
17:06 masak slavik1: try Niecza if you're about to parse something.
17:06 masak fewer unpleasant surprises.
17:06 slavik1 I want to start using perl6 more and more
17:06 masak \o/
17:06 japhb jnthn, I haven't backlogged to see if you said anything else, but I'd say: We can turn it green as soon as the generation of the USAGE message is moved out of MAIN_HELPER so that it is available as $*USAGE for the user's &USAGE.  We talked about that at one point, but I had not had tuits to make it happen.
17:07 slavik1 so niecza and rakudo*
17:07 jnthn japhb: ok
17:07 japhb jnthn, there is definitely more to do to improve src/core/Main.pm -- see the TODO list at the top of the file -- but I think we're good enough for green on MAIN with just that improvement.
17:08 japhb er, I guess that was $?USAGE
17:08 japhb I've been doing the Str.Numeric() work because I wanted to kill that top block of TODO items dead.  ;-)
17:09 tadzik <?before> NYI in nom,?
17:10 jnthn tadzik: I think it's protoregexes that are the biggest blocker
17:11 tadzik right
17:11 jnthn tadzik: That's mostly been waiting on pmichaud++, though I've not had the tuits to really give us any other options over the last month
17:11 masak nom: say so "foo" /<?before foo> foo/
17:11 slavik1 so, what is "special" about nom?
17:11 p6eval nom 0296f4: OUTPUT«===SORRY!===␤Confused at line 1, near "say so \"fo"␤»
17:11 masak nom: say so "foo" ~~ /<?before foo> foo/
17:11 p6eval nom 0296f4: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected␤  in before at src/stage2/QRegex.nqp:612␤  in regex <anon> at /tmp/E0e8greiX0:1␤  in method ACCEPTS at src/gen/CORE.setting:6602␤  in block <anon> at /tmp/E0e8greiX0:1␤  in <anon> at /tmp/E0e8greiX0:1␤»…
17:12 tadzik jnthn: I understand
17:12 jnthn Now I have tuits and I'm tired of us being blocked on the ecosystem and so forth, so I'll probably see what I can do.
17:12 jnthn Plus we can't go on having a bus number of 1 on the regex engine.
17:12 jnthn Plus it will need its code-gen porting at some point.
17:12 masak slavik1: new, more p6ish object model, which in turn means a lot of doors open to other stuff.
17:14 MayDaniel joined #perl6
17:14 slavik1 I see, so rakudo* will eventually be nom* or something along those lines?
17:14 jnthn slavik1: No, we'll just do a Rakudo * release based on the "nom" development line.
17:15 tadzik once it's functional enough we'll just stop calling it "nom" :)
17:16 arnsholt slavik1: An optimiser and native types are some good highlights from nom
17:17 slavik1 ok, I see
17:17 slavik1 so, we'll get bignum?
17:17 slavik1 :P
17:17 slavik1 nom: say 2**64
17:17 p6eval nom 0296f4: OUTPUT«-9223372036854775808␤»
17:17 slavik1 :(
17:17 jnthn slavik1: We have it in a branch
17:17 slavik1 rakudo: say 2**64
17:17 p6eval rakudo 0296f4: OUTPUT«-9223372036854775808␤»
17:17 jnthn slavik1: Expect to merge it tonight, all being well
17:18 jnthn locally
17:18 jnthn > say 2**64
17:18 jnthn 18446744073709551616
17:18 jnthn :)
17:18 slavik1 nice, so tomorrow, it will output the right stuff :)
17:18 slavik1 pugs: say 2**64
17:18 p6eval pugs b927740: OUTPUT«18446744073709551616␤»
17:18 jnthn slavik1: Yeah, moritz++ has been busily working away at it :)
17:18 slavik1 ^^
17:18 slavik1 moritz: come to NYC, I buy you vodka and beer
17:18 slavik1 :)
17:19 slavik1 will there ever be a YAPC around NYC?
17:20 jnthn mls: Yes, see the issue
17:21 jnthn mls: oh, maybe
17:21 mls you maybe see the issue? ;)
17:22 jnthn :)
17:22 jnthn mls: It is doing capture_lex at the top
17:22 mls right
17:22 mls doesn't work when it recurses
17:22 mls as it doesn't get restored when it comes back
17:22 jnthn oh!
17:23 jnthn ok, now I get it :)
17:23 mls actually I plan a bigger change: I want to get rid at all of the capture_lex at the beginning of the subs
17:23 mls cause that can't work when we have multiple threads in the future
17:23 jnthn *nod*
17:24 Mowah_ joined #perl6
17:24 mls so I rewrote parrot's autoclosing so that it no longer uses that "ctx" element
17:24 mls (in fact, sub no longer has ctx in my branch)
17:25 mls autoclose now uses the call chain to find the correct outer ctx
17:25 wknight8111 mls: what's the status of that branch? Is it ready to merge?
17:25 mls not before you release parrot ;)
17:26 mls (and I want to merge my exception branch first)
17:26 mls anyway, today I got nqp and rakudo to work with the new autoclose semantics
17:26 wknight8111 mls: oh, that hasn't gotten merged either? We are running behind!
17:26 mls we'll have it in next months release
17:27 mls so nqp and rakudo works again, surprisingly few changes were needed but it took some time to find the correct spots ;)
17:28 jnthn mls: Would be interested to see what changed, fwiw
17:28 mls I'll paste the rakudo changes, just a sec
17:29 tadzik flussence: oh, btw. Did the Pod issues you've noticed eventually get to the RT?
17:29 wknight8111 hopefully this cycle I'll have enough time to get to work on my growing to-do list and help out with all this stuff
17:30 mls jnthn: https://gist.github.com/1367707
17:30 mls so it's just a couple of capture_lex added
17:30 mls ;)
17:31 mls The difference is that immediate blocks no longer do a capture_lex
17:31 mls we still have it for sub and method definitions
17:31 mls (which is something we maybe want to change at somepoint in the future, I don't know the correct semantics tough)
17:32 benabik mls: Do immediate blocks have their :outer set correctly?
17:32 mls they always had
17:32 pyrimidine joined #perl6
17:35 mls jnthn: proposed closure fix https://gist.github.com/1367725
17:36 mls (probably needs a comment in perl6.ops, though)
17:36 localhost joined #perl6
17:37 orafu joined #perl6
17:39 jnthn mls: oh heh, I was just compiling almost exactly that patch locally :)
17:39 jnthn hm, segv :/
17:39 mls make clean
17:40 flussence tadzik: I think I forgot to do that...
17:41 pyrimidine left #perl6
17:41 tadzik flussence: no worries :)
17:41 flussence (I've been distracted by trying to get Text::Wrap usable lately)
17:41 tadzik not that I look forward to bugs and such
17:45 jnthn mls: Seems to work. Testing.
17:50 jnthn mls: ooh. It seems to fix some spectests too :)
17:52 ksi joined #perl6
17:52 mls \o/
17:54 pyrimidine joined #perl6
17:55 jnthn Think I have a fix for the rat issue that's blocking bigint too :)
17:56 lichtkind joined #perl6
17:56 lichtkind perl6:my $a = [1..4]
17:56 lichtkind perl6: my $a = [1..4]
17:56 p6eval niecza v11-23-g18f7db0: OUTPUT«Potential difficulties:â�¤  $a is declared but not used at /tmp/ZSyMYf_3st line 1:â�¤------> [32mmy [33mâ��[31m$a = [1..4][0mâ�¤â�¤Â»
17:56 p6eval ..pugs b927740, rakudo 0296f4:  ( no output )
17:57 lichtkind rakudo: my $a = [1..4]
17:57 p6eval rakudo 0296f4:  ( no output )
17:57 lichtkind rakudo: my $a = [1..4]; say $a
17:57 p6eval rakudo 0296f4: OUTPUT«1 2 3 4␤»
17:58 lichtkind hm strange
17:59 colomon rakudo: my $a = [1..4]; say $a.perl
17:59 p6eval rakudo 0296f4: OUTPUT«[1, 2, 3, 4]␤»
17:59 lichtkind yes but that doesnt work in my lokal rakudo
17:59 colomon rakudo: say [1, 2,  3, 4]
17:59 p6eval rakudo 0296f4: OUTPUT«1 2 3 4␤»
17:59 colomon lichtkind: oh, okay, that is strange.  :)
18:00 jnthn lichtkind: "doesn't work"? :)
18:00 dalek rakudo/bigint: 768d3b9 | jnthn++ | src/ (2 files):
18:00 dalek rakudo/bigint: Apply patch from mls++ that fixes a lexical capturing and recursion interaction bug.
18:00 dalek rakudo/bigint: review: https://github.com/rakudo/rakudo/commit/768d3b914d
18:00 dalek rakudo/bigint: 9a4fc87 | jnthn++ | src/Perl6/SymbolTable.pm:
18:00 dalek rakudo/bigint: Fix handling of rats in pre-compiled code.
18:00 dalek rakudo/bigint: review: https://github.com/rakudo/rakudo/commit/9a4fc8764d
18:00 tadzik I'll try this bigint branch with you :)
18:00 jnthn mls: Your patch went into the bigint branch 'cus I was doing other stuff there...will be merging this into master soon though
18:00 jnthn tadzik: Testing welcome. Only one test in bit.t is regressed, all being well.
18:00 jnthn This goes for anyone else, btw.
18:00 mls no prob.
18:01 tadzik jnthn: do we have any bigint-specific (spec)tests?
18:01 jnthn tadzik: I suspect grepping through the test suite for "bigint" may get us some :)
18:01 jnthn tadzik: If not, we could do with some :)
18:04 colomon yes, we have bigint specific tests
18:04 colomon they are either todo'd or skipped at the moment, obviously.  :)
18:05 colomon (in roast, I mean.)
18:05 jnthn OK, great :)
18:07 tadzik I just love this university code. "///Coping constructor." I wonder what it's coping with, supposedly that other object passed into it :)
18:08 jnthn :)
18:08 jnthn Then there's those constructors commented "Initializes the object"
18:08 jnthn Wow, really?!?!
18:08 colomon mind you, that isn't to say that we have all the bigint tests we need -- just that there are quite a few already.
18:09 tadzik jnthn: I got better ones in this code:P "///const iterator.\nclass const_iterator {};"
18:10 jnthn nom: say -3 +& 1; say -3 +& 2;
18:10 p6eval nom 0296f4: OUTPUT«1␤0␤»
18:10 tadzik we are supposed to fill-in the code, so maybe this documentation is supposed to make us cry and fill it in as well ;)
18:12 jnthn .oO( what is our children learning?! )
18:12 ethndbst joined #perl6
18:12 ethndbst joined #perl6
18:13 wk joined #perl6
18:14 tadzik oh, I'm laughing at this code from the very beginning. "Your task is to fill in the code in aisdihashmap.h. It's not very nice to write all the code in .h, but, well, deal with it"
18:15 tadzik oh well, I should stop bothering with all this probably
18:17 jnthn moritz: Hmm. Bitwise patches don't quite work. There was a compile error that I fixed (missing &s). Will look for logic bugs now.
18:22 alvis joined #perl6
18:23 mls afk -> home
18:25 moritz jnthn: it needs to check the MSB, and grow_and_negate again if it's one
18:25 moritz I think you can try  DIGIT(that_int, USED(that_int)-1) & (MP_MASK > 1)
18:26 moritz for that check
18:26 jnthn moritz: Where exactly?
18:26 moritz in the nqp_bigint_bor at the end of the if (SIGN(a) xor SIGN(b)) branch
18:27 moritz s/at/opcode at/
18:28 jnthn moritz: We already have a
18:28 jnthn grow_and_negate(&d, d.used, get_bigint(interp, $1));
18:28 jnthn moritz: We need to do it a second time?
18:29 jnthn hm, think I need dinner ;)
18:30 mj41 joined #perl6
18:32 Sarten-X joined #perl6
18:35 moritz jnthn: we need it once *only* if the MSB is 1
18:38 cotto joined #perl6
18:44 japhb jnthn, when you're back: I'd like to try to get the MAIN feature green before this week's release.  So IIRC you said I needed to do three things: 1. move MAIN_HELPER's private gen-usage() to be a Routine.usage method, 2. Create a $?USAGE variable per compilation unit, 3. Fill $?USAGE with &MAIN.usage if &MAIN exists in the comp unit after it is fully compiled.  SO: A) Do those steps sound right? and B) How do I do #2 and #3?  :-)
18:44 japhb moritz, feel free to chime in if you know the answers, of course ...
18:47 * moritz feels free, but not useful :-)
18:48 japhb awww
18:48 moritz japhb: I can only suggest to look at how tadzik++ did it with the POD variable(s)
18:48 slavik1 what is "MAIN" ?
18:48 moritz $pod2text.push(PAST::Var.new(:name<$=POD>, :node($/)))
18:48 moritz that sounds promising, no?
18:48 moritz slavik1: a routine that is automatically called on program start
18:49 slavik1 ahh
18:49 moritz nom: sub MAIN($x = 5) { say $x }
18:49 p6eval nom 0296f4: OUTPUT«5␤»
18:49 slavik1 like BEGIN{} ? :P
18:49 jnthn japhb: bit distracted making food but 2 and 3 will involve interaction with $*ST
18:49 slavik1 rakudo: sub MAIN($x = 5) { say $x }
18:49 p6eval rakudo 0296f4: OUTPUT«5␤»
18:49 slavik1 :D
18:49 moritz if you provide a command line argument to that script, it ends up being in $x
18:49 slavik1 moritz: is there a similar way to do what python users do: if __name__ == something, call main
18:49 jnthn japhb: You can create a variable in the top scope using that and give it a compile-time value
18:49 moritz slavik1: http://perl6advent.wordpress.com/2010/12/02/day-2-​interacting-with-the-command-line-with-main-subs/
18:50 slavik1 to know whether a script was called as main or loaded as module
18:50 moritz jnthn: I might have a working bit twiddling patch, just a sec
18:50 moritz slavik1: well, it does much more, it parses the command line for you
18:50 jnthn japhb: You can get hold of the MAIN routine and just call its usage method
18:50 slavik1 yeah, reading that, nice :)
18:50 jnthn japhb: You'll want to nqp::unbox_s($main.usage())
18:51 masak slavik1: MAIN is meant to be called only if the file *wasn't* loaded as a module.
18:51 jnthn japhb: And then $*ST.add_constant to add a string constant to the SC
18:51 slavik1 masak: awesome!
18:51 slavik1 so MAIN is good practice/style
18:51 jnthn japhb: Then after that you'll be able to take the returned value and set install it as a lexical
18:52 jnthn $*ST.install_lexical_symbol(...)
18:52 * jnthn goes to keep an eye on food
18:52 japhb jnthn, OK, thank you so far.
18:52 slavik1 masak: how come last example has :$how, but previous examples have only the variable
18:52 japhb I'll look for similar expressions and see if I can figure it out.
18:53 dalek nqp/bigint: ed5e66c | bacek++ | src/6model/knowhow_bootstrapper.c:
18:53 dalek nqp/bigint: Use PMCNULL instead of NULL to avoid triggering of assertions
18:53 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/ed5e66cb33
18:53 dalek nqp/bigint: 6dc4277 | moritz++ | src/ops/nqp_bigint.ops:
18:53 dalek nqp/bigint: try to adopt bigint bitop semantics to 2s complement, which Perl 6 needs
18:53 dalek nqp/bigint: review: https://github.com/perl6/nqp/commit/6dc4277870
18:53 moritz jnthn: I haven't tested that patch in detail yet, but in the one example that I tried it gave the right result :-)
18:55 wk joined #perl6
18:56 masak slavik1: not sure I understand the question. both nameds and positionals work.
18:56 jnthn masak: doing a make install and then will build Rakudo against it
18:57 jnthn er
18:57 jnthn moritz: ^^
18:57 * masak tapes a note with the word "mis-tab" on jnthn and runs off tittering
18:58 slavik1 masak: what is the diff between sub MAIN(:$var) {} and sub MAIN ($var) {} ?
18:58 masak nom: sub foo($var) { say $var }; foo(5); foo( :var(5) )
18:58 p6eval nom 0296f4: OUTPUT«5␤Not enough positional parameters passed; got 0 but expected 1␤  in sub foo at /tmp/lYlHlbM5ng:1␤  in block <anon> at /tmp/lYlHlbM5ng:1␤  in <anon> at /tmp/lYlHlbM5ng:1␤»
18:59 masak nom: sub foo(:$var) { say $var }; foo( :var(5) ); foo(5)
18:59 p6eval nom 0296f4: OUTPUT«5␤Too many positional parameters passed; got 1 but expected 0␤  in sub foo at /tmp/QHxcMbZe0u:1␤  in block <anon> at /tmp/QHxcMbZe0u:1␤  in <anon> at /tmp/QHxcMbZe0u:1␤»
18:59 slavik1 lol
19:00 moritz slavik1: if the declaration says :$var, the command line expects --var=vars_value
19:00 slavik1 ahh, I see
19:00 slavik1 getopt::long for free :)
19:01 slavik1 would -v work?
19:02 jnthn moritz: bit.t passes \o/
19:02 jnthn moritz: And I fixed the rat pre-comp bug earlier
19:02 jnthn moritz: Running a full spectest now...looks like we're on the verge of a merge \o/
19:02 tadzik wooo
19:03 snearch joined #perl6
19:04 japhb jnthn, OK, it looks like I need to add a new my variable $*USAGE to the list at the top of token comp_unit in Grammar.pm, and then around line 450 in the same token add a line: $*ST.install_lexical_symbols($*UNIT, '$?USAGE', $*USAGE);
19:04 japhb Does that sound about right?
19:04 japhb And then where do I set it's value?
19:04 japhb In the block around 462-471?
19:04 jnthn japhb: oh, you could do it that way
19:05 japhb OK, what did I not understand?  ;-)
19:05 * japhb is going deep into new-to-him code here
19:05 jnthn japhb: I was thinking of just keeping track of the MAIN
19:05 jnthn japhb: And calling .usage() on that when we come to install $?USAGE
19:06 jnthn japhb: You could do it the way you have it too, though :)
19:06 jnthn japhb: To set $*USAGE, you need to tkae the result of calling .usage(), unbox it (nqp::unbox_s)
19:06 jnthn And then do
19:07 benabik joined #perl6
19:07 jnthn $*USAGE := $*ST.add_string_constant($unboxed_re​sult_of_usage)<compile_time_value>;
19:09 japhb So how do I find &MAIN (or track it, as you suggest) from within Grammar.pm?  MAIN_HELPER uses callframe(1).my<&MAIN>, but I'm assuming that's as nonsensical as it appears in Grammar.pm
19:12 japhb jnthn: ^^
19:12 jnthn japhb: Oh, I was assuming you already tracked that in the grammar
19:12 jnthn japhb: Well, one way is in routine_def
19:12 jnthn if the name eq 'MAIN'...
19:12 jnthn And you have the code object there
19:12 jnthn Well, you do after create_code_object is called
19:13 japhb I've spent time some time learning the setting and STD.pm.  I had not yet learned Rakudo's Grammer.pm and Actions.pm ...  :-/
19:13 japhb No time like the present, I guess.
19:14 jnthn japhb: The main thing to keep in mind is that Rakudo keeps a 3-way distinction
19:14 jnthn Grammar for parsing, Actions for making AST, and SymbolTable which keeps track of all the declarational stuff, including meta-objects
19:16 * jnthn noms, bbs
19:16 japhb enjoy!
19:18 wolfman2000 joined #perl6
19:19 localhost joined #perl6
19:28 moritz jnthn: I get a failure in t/spec/S11-modules/require.t
19:28 moritz not ok 3 - can require with variable name
19:28 moritz # Incorrect pre-compiled version of src/gen/Metamodel.pm loaded
19:29 moritz (but I've seen that one before; a clean rebuild might fix it
19:29 envi_ joined #perl6
19:33 japhb jnthn, OK, if I'm reading method routine_def() properly, it looks like I need to track MAIN in two places, depending on whether it is a multi or not:  1) Around line 1455, at the end of the block that begins "if $*MULTINESS eq 'multi' {", I need to "$*MAIN := $proto", so that the &MAIN I call .usage on is actually the proto. and 2) in the block around line 1470 that begins "elsif $*SCOPE eq 'our', I need to set "$*MAIN := $code", because i
19:33 japhb t's an only routine.
19:33 japhb Is that about right?
19:33 japhb Hmmmm, I guess &MAIN will still get called even if it has 'my' scope ...
19:34 moritz all subs are 'my' by default
19:34 japhb Ah, OK, good.
19:35 japhb Now the question is ... the line at the top of MAIN_HELPER that says 'my $m = callframe(1).my<&MAIN>' ... will that be foiled if the programmer wrote 'our sub MAIN ...' ?
19:37 PerlJam japhb: probably.
19:38 japhb Yeah, that felt like an old bug.  I didn't mess with it when I did the rewrite, but I think now's the time to fix it.  What should it be, anyway?
19:41 jnthn back
19:42 jnthn moritz: require.t works fine here fwiw
19:42 moritz jnthn: trying again after a real clean
19:42 jnthn japhb: our installs a lexical alias
19:42 jnthn japhb: The bigger issue is if they write
19:43 jnthn module Foo { sub MAIN() { } }
19:43 japhb oh, eww.
19:43 japhb Yeah.
19:44 PerlJam jnthn: shouldn't it be more like $*ST.find_symbol('&MAIN') ?
19:44 PerlJam (note, I'm only barely paying attention here :)
19:44 jnthn PerlJam: If we're in the Actions, yes
19:45 PerlJam japhb: what's the problem you're trying to solve?
19:45 jnthn But MAIN_HELPER isn't - it's on the runtime side of the fence :)
19:45 jnthn moritz: I'm good for merging, if you are. I can do it
19:46 packetknife joined #perl6
19:46 moritz jnthn: go right ahead
19:46 moritz I can confirm that the Rat precompilation problem is gone too
19:46 moritz there are still two things that bother me
19:47 moritz 1) &radcalc is called twice for every Rat literal
19:47 moritz and 2) since Rat serialization is specialized, the argument passing to $*ST.add_constant('Rat', ...) in &radcalc can probably be simplified
19:47 jnthn moritz: (1) is true for master too, I believe
19:47 moritz but nothing of that should hold off the merge
19:47 moritz jnthn: any idea why?
19:48 jnthn moritz: Not off hand...seems like it's backtracking or something
19:48 PerlJam Isn't there supposed to be a Rakudo compiler release this week?  (or are we going to skip it again like we did in Aug?)
19:48 jnthn PerlJam: We'll do it this week
19:48 jnthn PerlJam: Thus the work to get bigint into shape for it ;)
19:49 PerlJam yeah, sorry I haven't kept up with #perl6 or the bigint progress  :)
19:49 PerlJam jnthn++ moritz++
19:49 PerlJam and tom++ whoever he is ;)
19:51 dalek nqp: ed5e66c | bacek++ | src/6model/knowhow_bootstrapper.c:
19:51 dalek nqp: Use PMCNULL instead of NULL to avoid triggering of assertions
19:51 dalek nqp: review: https://github.com/perl6/nqp/commit/ed5e66cb33
19:51 dalek nqp: 6dc4277 | moritz++ | src/ops/nqp_bigint.ops:
19:51 dalek nqp: try to adopt bigint bitop semantics to 2s complement, which Perl 6 needs
19:51 dalek nqp: review: https://github.com/perl6/nqp/commit/6dc4277870
19:51 dalek nqp: 0e7280c | jnthn++ | / (154 files):
19:51 dalek nqp: Merge branch 'bigint'
19:51 dalek nqp: review: https://github.com/perl6/nqp/commit/0e7280c179
19:53 benabik_ joined #perl6
19:57 japhb Excellent, once nom merges rakudo/bigint, I can move my current snapshot of the Str.Numeric() over to use the bigint ops, and then it's mergeable, I think.  (Far from finished, but sufficiently more capable than the existing that it'll be a decent win.)
19:58 japhb After that, I'll try to get these MAIN/USAGE things nailed.
19:58 japhb *snapshot of the Str.Numeric() rewrite
20:04 dalek rakudo/nom: 768d3b9 | jnthn++ | src/ (2 files):
20:04 dalek rakudo/nom: Apply patch from mls++ that fixes a lexical capturing and recursion interaction bug.
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/768d3b914d
20:04 dalek rakudo/nom: 9a4fc87 | jnthn++ | src/Perl6/SymbolTable.pm:
20:04 dalek rakudo/nom: Fix handling of rats in pre-compiled code.
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9a4fc8764d
20:04 dalek rakudo/nom: 7cd5def | jnthn++ | / (10 files):
20:04 dalek rakudo/nom: Merge branch 'bigint' into nom
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7cd5def7c9
20:04 dalek rakudo/nom: 2926f27 | jnthn++ | tools/build/NQP_REVISION:
20:04 dalek rakudo/nom: Bump to latest NQP_REVISION.
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2926f27d4f
20:05 dalek roast: eac8f06 | jnthn++ | S04-statements/for.t:
20:05 dalek roast: Untodo now passing test for 103332 (mls++ for the fix).
20:05 dalek roast: review: https://github.com/perl6/roast/commit/eac8f069d4
20:07 kfo_ joined #perl6
20:08 MayDaniel joined #perl6
20:15 japhb jnthn, everything ready to pull and rebuild nom at this point?
20:15 mikehh joined #perl6
20:15 jnthn japhb: yes
20:16 jnthn japhb: let me know if you run into any issues
20:16 dalek roast: 6ca8c15 | jnthn++ | S06-signature/unpack-array.t:
20:16 dalek roast: Unfudge a couple of tests we now pass.
20:16 dalek roast: review: https://github.com/perl6/roast/commit/6ca8c15a1c
20:16 dalek roast: 987ade2 | jnthn++ | S0 (2 files):
20:16 dalek roast: Unfudge some bigint tests; remove a stray say.
20:16 dalek roast: review: https://github.com/perl6/roast/commit/987ade269c
20:16 * jnthn wonders if today's Parrot release was cut yet
20:16 japhb OK, doing 'make realclean; rm -rf install/; perl Configure.pl --gen-parrot; make'
20:16 benabik jnthn: Not yet.
20:18 am0c joined #perl6
20:18 dalek rakudo/nom: 0bd4922 | jnthn++ | docs/ChangeLog:
20:18 dalek rakudo/nom: Update changelog a little.
20:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0bd4922e32
20:19 masak not long ago, I received a nice email from a Mr Eugene Burmako, pertaining to my macro grant.
20:19 masak turns out Mr Burmako is the person behind http://scalamacros.org/
20:20 masak (which looks at least vaguely similar to Perl 6 macros)
20:21 masak I'm thinking I should study Scala macros a little bit. at least enough to make sure that they're not doing something we should clearly be doing too :)
20:23 dalek roast: 06ae20e | jnthn++ | S03-operators/ (2 files):
20:23 dalek roast: Two more sets of unfudges now we have bigint landed.
20:23 dalek roast: review: https://github.com/perl6/roast/commit/06ae20ea1b
20:23 natureboy joined #perl6
20:24 dalek nqp: f1b02e1 | moritz++ | src/ops/nqp_bigint.ops:
20:24 dalek nqp: save an allocation in nqp_bigint_div
20:24 dalek nqp:
20:24 dalek nqp: the mp_div code allows NULL as remainder, so no need to allocate it
20:24 dalek nqp: review: https://github.com/perl6/nqp/commit/f1b02e115d
20:25 colomon bigint has landed!  \o/
20:26 jnthn moritz: Does git describe work for you in the Parrot repo?
20:26 moritz jnthn: needs   git describe --tags
20:26 jnthn moritz: thanks!
20:27 * jnthn tries a build against latest Parrot
20:28 masak wow. big Ints.
20:28 moritz and our rats are all Fat right now
20:28 colomon doh!
20:29 colomon I was wondering if it's time to work on the Rational role
20:29 dalek features: 834bed4 | jnthn++ | features.json:
20:29 dalek features: Rakudo now has big integers.
20:29 dalek features: review: https://github.com/perl6/f​eatures/commit/834bed4aba
20:29 jnthn moritz: Yeah
20:30 jnthn moritz: Realized that. :)
20:30 moritz I thought I had already done that patch days ago, turns out I was wrong
20:34 jnthn std: method addto (|args, $self: @x) { trace(args); $self += [+] @x }
20:34 p6eval std be1f10e: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Malformed parameter at /tmp/Ms0bHxEqw8 line 1:â�¤------> [32mmethod addto ([33mâ��[31m|args, $self: @x) { trace(args); $self +[0mâ�¤    expecting any of:â�¤     method_defâ�¤     nameâ�¤   parameterâ�¤      signatureâ�¤Parse failedâ�¤FAILED 00:01 120mâ�¤Â»â€¦
20:34 jnthn ENOTYET
20:38 dalek nqp: 2fcf054 | jnthn++ | tools/build/PARROT_REVISION:
20:38 dalek nqp: Bump to latest Parrot (not quite release yet) in order to get more testing against it.
20:38 dalek nqp: review: https://github.com/perl6/nqp/commit/2fcf0546bd
20:42 japhb jnthn, initial build and run of the old version of my Str.Numeric() stress test worked on the newly merged nom.
20:42 japhb Now to figure out what to change to make it use the new bigint ops
20:43 pyrimidine joined #perl6
20:44 japhb BAH
20:45 japhb ARGH
20:45 jnthn ?
20:45 benabik Grr, argh?
20:46 * japhb messed up, and pulled and built the wrong thing.  It looked like nom ... but it was not nom.
20:46 jnthn oops :(
20:46 jnthn japhb: nqp::radix_I is probably the op you're looking for
20:47 japhb jnthn, yep.  And that's how I new I had somehow gotten the wrong thing.  nqp::radix_I wasn't being used anywhere.  :-/
20:47 japhb Ah well, just some wasted time.
20:47 jnthn phenny: tell mls I tried to bring in your directaccess patch to nqp again, but it breaks the Rakudo build.
20:47 phenny jnthn: I'll pass that on when mls is around.
20:50 benabik homebrew++ # libtommath
20:53 Lothbot joined #perl6
20:54 japhb lunch &
21:04 dalek Heuristic branch merge: pushed 229 commits to nqp/nfa by jnthn
21:05 mj41 joined #perl6
21:09 dalek rakudo/nom: abc35ca | moritz++ | src/Perl6/Actions.pm:
21:09 dalek rakudo/nom: simplify Rat codegen a bit
21:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/abc35ca2fb
21:20 ethndbst joined #perl6
21:20 ethndbst joined #perl6
21:20 tadzik spectest is not slower (significantly) than before the merge
21:21 jnthn tadzik: Yeah, same result here
21:21 tadzik good
21:22 dalek nqp/nfa: 4e60875 | jnthn++ | src/NQPQ/Actions.pm:
21:22 dalek nqp/nfa: Fix nqpq enough that it can at least run an nqp program with regexes in.
21:22 dalek nqp/nfa: review: https://github.com/perl6/nqp/commit/4e60875923
21:33 dalek nqp/nfa: ffb5596 | jnthn++ | src/NQPQ/Actions.pm:
21:33 dalek nqp/nfa: Catch NQPQ up with changes to NQP (just some actions twiddles).
21:33 dalek nqp/nfa: review: https://github.com/perl6/nqp/commit/ffb55961ee
21:36 rjbs- joined #perl6
21:37 rjbs- perl6: my $x = 5 || ...; say $x
21:37 p6eval pugs b927740, rakudo 0bd492, niecza v11-23-g18f7db0: OUTPUT«5␤»
21:37 rjbs- (Hi, I'm just here to harass the bot)
21:37 rjbs joined #perl6
21:37 masak interesting. :)
21:38 * rjbs was just feeling sad that p5's ... can't be used as an expression.
21:38 rjbs I was 99% sure p6's could, and wanted to check.
21:38 jnthn It's just parsed as a term.
21:38 rjbs That's what I thought / hoped.  Excellent.
21:49 dalek nqp/nfa: 0be2206 | jnthn++ | src/QRegex/Cursor.nqp:
21:49 dalek nqp/nfa: Add missing .chars method to NQPMatch, getting us a bit further with 31-grammar.t.
21:49 dalek nqp/nfa: review: https://github.com/perl6/nqp/commit/0be2206303
21:49 dalek nqp/nfa: 60b88d4 | jnthn++ | src/QRegex/Cursor.nqp:
21:49 dalek nqp/nfa: Add a couple of missing vtable overrides to NQPMatch. Gets 31-grammar.t passing again.
21:49 dalek nqp/nfa: review: https://github.com/perl6/nqp/commit/60b88d4f12
21:50 rjbs niecza?
21:51 colomon niecza what?
21:51 rjbs What is it?
21:51 rjbs aha, CLR
21:52 colomon a separate implementation of Perl 6
21:52 rjbs Yeah, I figured that part (since p6eval mentioned it) but hadn't heard of it before.  Should've googled, but I thought some infobot might just tell me :)
21:53 benabik joined #perl6
21:57 ab5tract joined #perl6
21:59 masak rjbs: we haven't found the right balance between infobot and too chatty in here yet :)
22:01 masak thankfully, single-word questions tend to cause non-bot players to proffer information too...
22:03 Trashlord joined #perl6
22:05 rjbs masak: :)  yeah, infobots can be a real pain, too
22:05 masak ss/can be/are/ # :)
22:06 masak *cough* purl *cough*
22:07 tadzik I liked that guy
22:07 masak tadzik: purl is (1) a girl, (2) not likeable. :)
22:07 * rjbs still likes purl.
22:07 rjbs I get annoyed when purl *and* dispy are around.
22:08 masak haha
22:09 rjbs "what's up?" // "up is a pronoun, or your face, or a good REM album, or at http://example.com/~someguy/301-up.html // url title: 301 up at someguy // uh oh! long url!  try this one:  http://sho.rt/123 // url title:  301-up at someguy // ...
22:11 masak aaugh
22:12 * rjbs will not further remind you of such nonsense.
22:12 masak :)
22:14 masak rjbs: by the way, congratulations on being the new Holder of the Perl 5 Pumkin.
22:14 masak 'night, #perl6
22:14 rjbs Thanks!  Here's hoping I come out of it unscathed.
22:15 masak -Ounscathing
22:15 dalek nqp/nfa: 71ec512 | jnthn++ | src/NQPQ/Actions.pm:
22:15 dalek nqp/nfa: Get regex grammar related actions in nqpq switched over from PAST::Regex to QAST::Regex. Fixes various of the failing tests.
22:16 dalek nqp/nfa: review: https://github.com/perl6/nqp/commit/71ec5120e5
22:17 pyrimidine left #perl6
22:18 am0c joined #perl6
22:35 daniel-s joined #perl6
22:59 whiteknight joined #perl6
23:08 addicted joined #perl6
23:08 addicted hi
23:08 addicted i need some help with a small simple project
23:08 addicted already have the program done, but i have to chance the website it uses
23:08 addicted basicly it takes a list of domains in a .txt and passes it throught the www.websiteoutlook.com
23:08 addicted and it gets the value of the website in the list and its daily views
23:08 addicted but now the websiteoutlook.com closed..
23:08 addicted so i need someone to "update" the progrm to use alexa.com
23:11 cooper joined #perl6
23:24 fsergot joined #perl6
23:27 dalek nqp/nfa: 9e0867d | jnthn++ | src/NQPQ/Grammar.pm:
23:27 dalek nqp/nfa: Add missing contextual declaration to / / parsing, so QRegex nibbler won't explode.
23:27 dalek nqp/nfa: review: https://github.com/perl6/nqp/commit/9e0867df7c
23:27 dalek nqp/nfa: 1427edb | jnthn++ | src/NQPQ/Grammar.pm:
23:27 dalek nqp/nfa: Also toss now-unwanted #=open usage.
23:27 dalek nqp/nfa: review: https://github.com/perl6/nqp/commit/1427edb387
23:27 dalek nqp/nfa: 6efeb3c | jnthn++ | src/ops/nqp.ops:
23:27 dalek nqp/nfa: Fix is_invokable op.
23:27 dalek nqp/nfa: review: https://github.com/perl6/nqp/commit/6efeb3c75d
23:27 dalek nqp/nfa: 3611d39 | jnthn++ | src/QRegex/Cursor.nqp:
23:27 dalek nqp/nfa: Make NQPCursor.parse able to handle being passed an invokable rule. Sketch in NQPRegexMethod and NQPRegex classes, as QRegexy replacements for Regex::Method and Regex::Regex.
23:27 dalek nqp/nfa: review: https://github.com/perl6/nqp/commit/3611d39594
23:29 japhb Unfortunately I've lost the earlier run back past the start of my scrollback buffer, but if my recollection of the orginal values is correct, my Str.Numeric() stress test perf test *WITHOUT* updating to newer bigint ops is 20-30% slower than pre-bigint-merges.
23:29 japhb Now let's see what happens when I convert to bigint ops ...
23:32 dalek nqp/nfa: 2da67f4 | jnthn++ | src/NQPQ/Actions.pm:
23:32 dalek nqp/nfa: Update quote:sym</ /> actions. We can now do things like say('b33r' ~~ /\d+/) again.
23:32 dalek nqp/nfa: review: https://github.com/perl6/nqp/commit/2da67f4c71
23:32 dalek nqp/nfa: 124f95e | jnthn++ | t/nqp/50-regex.t:
23:32 dalek nqp/nfa: Update a test to use the new NQPCursor type.
23:32 dalek nqp/nfa: review: https://github.com/perl6/nqp/commit/124f95e717
23:33 cognominal joined #perl6
23:40 dalek nqp/nfa: a915744 | jnthn++ | src/NQPQ/Actions.pm:
23:40 dalek nqp/nfa: Make regex declartors work out of sink context and smartmatch correctly. Mostly fixes 45-smartmatch.t (if you remove the last test, which compile fails while building the NFA).
23:40 dalek nqp/nfa: review: https://github.com/perl6/nqp/commit/a915744500

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs