Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-04-01

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

All times shown according to UTC.

Time Nick Message
01:01 MasterDuke m: use Test; my @a = ^3; isa-ok @a[*], List; isa-ok @a[], Array
01:01 camelia rakudo-moar e7e97c: OUTPUT: «ok 1 - The object is-a 'List'␤ok 2 - The object is-a 'Array'␤»
01:05 Zoffix m: use Test; isa-ok [], List
01:05 camelia rakudo-moar e7e97c: OUTPUT: «ok 1 - The object is-a 'List'␤»
01:26 nbrown joined #perl6-dev
01:49 ilbot3 joined #perl6-dev
01:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
04:03 Guest72455 joined #perl6-dev
04:45 samcv argh i hate travis ci
04:46 samcv why would this not be in the path
05:04 samcv MasterDuke, llvm utils can't be in the path on Travis CI because that would just be too easy
05:04 MasterDuke what do you want llvm utils for?
05:05 samcv idk true or not some people on line at least say they should be part of the path on installing Xcode or wahtever
05:05 samcv oh for MVM code coverage Travis CI
05:05 samcv i want it to build it then dump coverage info after running Travis checks
05:06 MasterDuke and you're installing Xcode in travis, but them llvm utils isn't in the path?
05:06 MasterDuke *then
05:06 samcv no. it is already installed
05:06 samcv but somehow nothing is in the path
05:06 samcv well i guess a few things are
05:07 samcv but not a whole bunch of compilier utilities and such
05:07 MasterDuke might have to install the xcode command line tools
05:07 samcv that should be in the path when they're installed apparently
05:07 samcv no they are there
05:07 samcv but not in the path and it drove me crazy
05:07 samcv figuring out which folder on the os they were
05:08 samcv tried /usr/bin, then tried the Xcode.app, which had some utilities but not most of the bluk of them
05:08 samcv which ended up being in /Library or something some library folder like 4 levels deep
05:10 samcv exported /Library/Developer/CommandLineTools/usr/bin/:/Applications/Xcode.app/Contents/Developer/usr/bin/
05:10 samcv just to be safe. only really needed one of those the library one
05:10 samcv but they should just be in the path so i don't have to waste my time
05:11 samcv but yeah i don't install Xcode, travis ci os x servers already have it
05:11 samcv since it's a build machine
05:11 MasterDuke PR to travis to document that?
05:26 samcv maybe after i get this to work right
05:42 samcv MasterDuke, think i'm almost there https://travis-ci.org/samcv/MoarVM/builds/217449258#L957
05:42 samcv seemed to find my coverage report. but i think it got confused cause i gave it a raw file and a nonprocessed file, and maybe was in the nqp directoy or something. idk will have to play with it. not sure how smart this codecov script is
05:43 samcv cause with llvm-whatever i need to tell it where libmoar.so is, and be in the MoarVM folder so it can read all the weird files it makes in the repository when it compiles it to process the report
05:44 samcv would be cool if we can get a coverage badge lol
05:49 samcv their instructions are kind of not that great for C projects. not sure why it has to be so difficult
05:49 samcv oh well. i will figure it out
06:37 RabidGravy joined #perl6-dev
08:04 RabidGravy joined #perl6-dev
09:11 Geth ¦ rakudo/nom: 213a72ccff | (Elizabeth Mattijsen)++ | src/core/Setty.pm
09:11 Geth ¦ rakudo/nom: Streamline Set.new-from-pairs a bit for Pairs
09:11 Geth ¦ rakudo/nom:
09:11 Geth ¦ rakudo/nom: - use nqp::getattr to get at the Pair innards
09:11 Geth ¦ rakudo/nom: - makes it about 4% faster for Pairs
09:11 Geth ¦ rakudo/nom: - also affects .Set/.SetHash, specifically when coercing a Map
09:11 Geth ¦ rakudo/nom: - which is used a lot inside many set operators
09:11 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/213a72ccff
09:16 cog_ joined #perl6-dev
10:16 llfourn joined #perl6-dev
10:37 robertle joined #perl6-dev
10:53 bartolin the build process is broken with bsd make 'cause https://github.com/rakudo/rakudo/commit/408b4035ea introduced a conditional that is not supported by bsd make
10:53 bartolin should we require a gnu make?
10:54 * bartolin is talking about rakudo's build process
10:57 Geth ¦ rakudo/nom: fab9f87c3f | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
10:57 Geth ¦ rakudo/nom: Simplify R:I.ALL_TYPE/ALL_DEFINED_TYPE
10:57 Geth ¦ rakudo/nom:
10:57 Geth ¦ rakudo/nom: We don't need the number of elements functionality.
10:57 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fab9f87c3f
10:57 Geth ¦ rakudo/nom: 9671ffec1b | (Elizabeth Mattijsen)++ | 2 files
10:57 Geth ¦ rakudo/nom: Add R:I.ANY_DEFINED_TYPE and use it
10:57 Geth ¦ rakudo/nom:
10:57 Geth ¦ rakudo/nom: - provides a faster way to do @a.first(Foo)
10:57 Geth ¦ rakudo/nom: - 10x faster for 10 element list and no match
10:57 Geth ¦ rakudo/nom: - 6x faster for 10 element list and match on first
10:57 Geth ¦ rakudo/nom: - affects all set operators that first check for any Mixy / Baggy types
10:57 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9671ffec1b
11:18 Geth ¦ rakudo/nom: 08a973572f | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm
11:18 Geth ¦ rakudo/nom: Make IO::Handle.close/DESTROY a bit smarter
11:18 Geth ¦ rakudo/nom:
11:18 Geth ¦ rakudo/nom: - don't do anything if file handle already closed / not opened yet
11:18 Geth ¦ rakudo/nom: - DESTROY is now same as close, but without (todoed) error checking
11:18 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/08a973572f
11:48 lizmat m: use nqp; dd nqp::objectid(∅); dd nqp::objectid(∅)  # so we get a fresh empty Set whenever we ask for the immutable empty Set
11:48 camelia rakudo-moar 08a973: OUTPUT: «74988064␤74988160␤»
11:48 lizmat code gen suggests it's calling set()
11:49 lizmat shouldn't we codegen the result of a nqp::create(Set) ?
11:54 geekosaur joined #perl6-dev
12:02 lizmat https://gist.github.com/lizmat/5f5bdb529a46d8c037d06e6093249251  # guess this change is too simplistic :-(
12:02 lizmat jnthn: what am I missing ?
12:03 lizmat putting the assignment in the main line, starts mumbling about not being able to find find_symbol
12:04 lizmat ah, but that's correct of course, because Actions doesn't know anything about HLL things such as Sets
12:04 lizmat at the time it is getting compiler
12:04 lizmat *compiled
12:06 jnthn It's because the empty set object you're creating isn't being put into the SC
12:06 jnthn But it's quite dangerous to do it this way
12:06 jnthn Since it'll break compiler reentrancy
12:07 jnthn There's a $*W.add_constant that does this stuff in a smarter way
12:07 jnthn Though perhaps better still would be in the implementation of set in CORE.setting to check if we're making an empty one and then construct one at BEGIN time
12:07 jnthn Well, use one constructed at BEGIN time
12:08 jnthn Oh wait
12:08 lizmat well, I ti
12:08 lizmat yes?
12:08 jnthn We're actually code-generating the term directly
12:08 jnthn Not emitting a call
12:09 jnthn Oh, no, we *were* emitting a call :)
12:09 lizmat yes
12:09 lizmat and that generates a new empty one every time
12:09 lizmat so you're saying, make sure that set() always returns the same ?
12:09 jnthn Is there a reason we can't have a set() zero-arg multi candidate that just does BEGIN nqp::create(Set) or so?
12:09 lizmat sure, can do that
12:09 jnthn That'll actually compile into a QAST::WVal too
12:09 lizmat but then it would still be a call in the codegen
12:10 lizmat ok, will take that approach
12:10 jnthn Sure, but a very easy one for spesh inlining :)
12:55 timotimo this is especially fun when someone mixes into the one immutable set and it ends up having the changes everywhere in the whole program :)
12:57 jnthn That's already a problem with other constants :)
12:57 jnthn It'd be nice to have a role to mark out such things, and have does refuse to work on them, though
12:58 timotimo oh, sneaky
13:06 lizmat but then, how would one mix a role into *an* empty set ?
13:08 jnthn but
13:08 jnthn Which clones first
13:18 MasterDuke m: use nqp; say nqp::objprimunsigned(uint); say nqp::objprimunsigned(uint8);
13:18 camelia rakudo-moar 08a973: OUTPUT: «0␤1␤»
13:18 MasterDuke jnthn: ^^^ that's a bug, correct?
13:18 timotimo oh, we didn't commit anything for that yet, right?
13:19 MasterDuke timotimo: no, i haven't been able to figure it out yet
13:20 timotimo oh, i thought we were almost there last time
13:20 MasterDuke i think i tried adding an additional check here https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Metamodel/BUILDPLAN.nqp#L61-L63, but it didn't work
13:21 jnthn MasterDuke: Looks rather wrong, yes
13:21 MasterDuke oh wait, no, the check i added there was for the actual uint attribute support, which would have had a bug for uint precisely because objprimunsigned would return 0
13:22 timotimo right, that's not the code where we were trying to fix that
13:22 MasterDuke now i don't remember where to try and fix nqp::objprimunsigned(uint)
13:23 timotimo it's in the NativeHOW
13:23 timotimo and inside moarvm
13:23 timotimo remember, moarvm was seeing "oh, no native size was passed, so we don't have to set anything in the storage spec"
13:23 timotimo but signedness is part of the storage spec
13:24 timotimo so if you have no nativesize, but a signedness, the signedness just gets completely ignored
13:24 MasterDuke right
13:25 MasterDuke i think i tried changing https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Metamodel/NativeHOW.nqp#L37 from `if !$!composed && $!nativesize {` to `if !$!composed && ($!nativesize || $!unsigned) {`
13:25 MasterDuke but i think that didn't do anything
13:27 * MasterDuke is trying that again
13:28 MasterDuke Stage parse      : MVMP6int: Unsupported int size (0bit)    at gen/moar/Metamodel.nqp:3237  (blib/Perl6/Metamodel.moarvm:compose)
13:32 timotimo i believe it has to have a change inside MoarVM, too
13:32 timotimo so that if nativesize is 0 it'll take the default size there
13:32 Geth ¦ rakudo/nom: 0f9f00082b | (Jonathan Worthington)++ | 3 files
13:32 Geth ¦ rakudo/nom: Make Parameter object available in bind error.
13:32 Geth ¦ rakudo/nom:
13:32 Geth ¦ rakudo/nom: Just for the nominal error so far. This also allows a slight wording
13:32 Geth ¦ rakudo/nom: improvement to the error to make clear that it was a parameter that
13:32 Geth ¦ rakudo/nom: could not be bound. Since this is a subtype of the previous exception
13:32 Geth ¦ rakudo/nom: type, any tests/code relying on the previous exception type will work
13:32 Geth ¦ rakudo/nom: as before.
13:32 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0f9f00082b
13:32 Geth ¦ rakudo/nom: f1cd8e313a | (Jonathan Worthington)++ | 2 files
13:32 Geth ¦ rakudo/nom: Typed exception for parameter constraint failure.
13:32 Geth ¦ rakudo/nom:
13:32 Geth ¦ rakudo/nom: Also providing access to the Parameter object, and allowing for a
13:32 Geth ¦ rakudo/nom: slightly better error message that includes the non-matching value
13:32 Geth ¦ rakudo/nom: and, where the constraint is a named subset type, that type name.
13:32 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f1cd8e313a
13:33 timotimo neat.
13:34 * jnthn had a need for the Parameter object of the failing thing for something he's working on, and figured he'd make errors a little better along the way :)
13:35 jnthn At least I got a Rakudo commit in this week :P
13:35 jnthn Busy times...
13:37 MasterDuke timotimo: the `nqp::unbox_i($!nativesize)` here https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Metamodel/NativeHOW.nqp#L47 will die if $!nativesize isn't instantiated
13:37 timotimo ah yes
13:37 timotimo because we want to be able to have nativesize "not set"
13:37 timotimo or maybe we want to allow strings, too?
13:38 MasterDuke so i could set it to the default
13:38 MasterDuke or somehow skip that code
13:38 timotimo does the moarvm side handle the keys not existing?
13:38 MasterDuke in the `|| $!unsigned` case
13:39 timotimo m: use nqp; say nqp::objprimspec(Int)
13:39 camelia rakudo-moar 08a973: OUTPUT: «0␤»
13:39 timotimo OK
13:39 MasterDuke pretty sure moarvm makes it the default
13:39 timotimo cool, then we can skip it
13:39 timotimo but hold on
13:39 timotimo there's a && $!nativesize up top there
13:39 timotimo if it isn't set, it wouldn't go into that code at all
13:39 timotimo which is also bad because we really want to compose if only signedness is set
13:40 MasterDuke i changed it to `($!nativesize || $!unsigned)`
13:40 timotimo OK, that explains why the code below didn't check anything more
13:47 MasterDuke but it's dying here https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Metamodel/NativeHOW.nqp#L50 `nqp::composetype($obj, $info);`
13:48 timotimo OK, that's inside moarvm's c code now
13:49 MasterDuke here you think? https://github.com/MoarVM/MoarVM/blob/master/src/6model/reprs/P6int.c#L123
13:50 MasterDuke oh wait, that's where i thought it set it to default if not set, maybe i was wrong
13:51 timotimo that's the function, yes
13:55 Zoffix MasterDuke: any idea how to fix your change to make it work in bsd make? https://irclog.perlgeek.de/perl6-dev/2017-04-01#i_14359897
13:55 MasterDuke huh. i tried adding `else repr_data->bits = 64;` to the `if (!MVM_is_null(tc, bits_o)) {`, but still same thing
13:56 MasterDuke Zoffix: i don't know bsd make, but some googling suggests it uses a completely different syntax for conditionals
13:57 MasterDuke so if there's a way to know in Configure.pl which is going to be used i guess we can emit different code
13:58 MasterDuke or maybe there is some shared syntax to do the same thing as what i added?
13:58 Zoffix We do choose harnesses with `make spectest`; surely the same method can be used for `make test-file`
14:00 MasterDuke i believe `make spectest` calls `make spectest5` or `make spectest6`, but there's no `make test-file5` and `make test-file6` to choose from
14:00 MasterDuke the target is just `t/*/*.t t/*.t t/*/*/*.t: all`
14:01 MasterDuke but my make-fu is weak in general, so i'm sure somebody knows a better way
14:03 MasterDuke timotimo: ah, my else branch isn't getting called
14:03 MasterDuke in P6int.c
14:04 timotimo i don't know where you have what if or else :)
14:05 MasterDuke timotimo: i added `else repr_data->bits = 64;` here https://github.com/MoarVM/MoarVM/blob/master/src/6model/reprs/P6int.c#L152
14:05 MasterDuke and then i added an fprintf in the else branch, but it didn't get hit
14:06 timotimo that only gets called when there is no "bits" key in the hash, right?
14:06 MasterDuke that's how i read it
14:07 timotimo does the "then" branch get called at all?
14:11 MasterDuke timotimo: oh, it's actually dying here https://github.com/MoarVM/MoarVM/blob/master/src/6model/reprs/P6int.c#L149
14:12 timotimo ah, so it gets into the "then"
14:12 timotimo the info hash is there, but bits isn't set
14:12 timotimo it should be possible to just set the bits to default_storage_spec.bits in a default branch for the switch, or something
14:13 timotimo no
14:13 timotimo that'd be wrong
14:13 MasterDuke heh, trying that now
14:15 timotimo why are we still setting the bits field if we don't have nativesize set at all?
14:15 MasterDuke huh, rakudo built, but then got `Normalization output must be native array of 32-bit integers` from ./perl6-m tools/build/upgrade-repository.pl /home/dan/Source/perl6/install/share/perl6
14:15 timotimo that'd be the right way to signal "no nativesize was asked for"
14:15 MasterDuke well, it has to have some size, right?
14:16 timotimo yeah, default_storage_spec.bits
14:16 MasterDuke ooh, `use nqp; say nqp::objprimunsigned(uint)` give 1 for me locally
14:17 timotimo neat.
14:18 MasterDuke don't know what to do about that normalization error though
14:19 timotimo could it be it's relying on uint pretending to be signed?
14:20 timotimo could it be we broke int32 in the process?
14:20 timotimo did you put in a default: in the switch/case?
14:20 MasterDuke default:                        repr_data->bits = default_storage_spec.bits; break;``
14:20 timotimo yes
14:21 timotimo remember when i said "no that'd be wrong"?
14:21 timotimo that's what i meant :)
14:21 timotimo we're now giving every int 64bits except for "long", "size_t", "char", "short", ...
14:21 MasterDuke heh, then what'd be right?
14:21 timotimo we ought to set no "bits" field in the hash
14:21 timotimo then we won't enter the !MVM_is_null(tc, bits_o)
14:21 timotimo instead, we'll put an else there that sets repr_data->bits = default_...bits
14:22 MasterDuke i put an else there, didn't get hit
14:22 timotimo right, we need to change the nqp code a bit
14:23 timotimo show me what you have there at the moment?
14:24 MasterDuke well, i just removed the default and added `else repr_data->bits = default_storage_spec.bits;`
14:24 MasterDuke but it never gets to that else
14:25 timotimo oh, no changes in the nqp code at all?
14:26 timotimo hm. let me try to do this whole thing from scratch, maybe i need a bit more clarity than irc can provide
14:27 MasterDuke just changing NativeHOW.nqp to `($!nativesize || $!unsigned)`
14:28 timotimo i also put an if around the second batch of $info<float/int><bits> = ...
14:29 timotimo compiling now to see how it explodes over here
14:29 timotimo ah, yes: Unsupported int size (0bit)
14:29 MasterDuke yeah, at one point i changed the `else` to `elsif $!nativesize`, but it didn't seem to be needed
14:30 Zoffix jnthn: any word on IO Action Plan? Should I proceed with it tomorrow?
14:36 timotimo gaaaaah
14:36 timotimo it's setting nativesize to 0 in the constructor
14:36 timotimo that's why it wasn't doing set_nativesize, but still had a valid int in there
14:40 MasterDuke oh, damn. i saw that earlier, but completely forgot
14:42 timotimo i got a rakudo that builds
14:42 MasterDuke and nqp::objprimunsigned(uint)?
14:43 timotimo one sec
14:43 timotimo 1
14:44 MasterDuke nice
14:44 Geth ¦ rakudo/nom: af4aae240d | (Timo Paulssen)++ | src/Perl6/Metamodel/NativeHOW.nqp
14:44 Geth ¦ rakudo/nom: allow nativesize to be unset in NativeHOW, but still compose
14:44 Geth ¦ rakudo/nom:
14:44 Geth ¦ rakudo/nom: this makes uint properly marked as unsigned. MasterDuke++
14:44 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/af4aae240d
14:44 timotimo oh, wait
14:44 timotimo nooooo
14:44 timotimo i should have bumped first
14:46 timotimo um ... sorry, geth?
14:47 timotimo Zoffix: how did i(?) break geth?
14:47 timotimo Zoffix: could it be it doesn't like when two consecutive nqp commits are just MOAR_REVISION bumps?
14:49 buggable_ joined #perl6-dev
14:49 MasterDuke timotimo++
14:50 Geth joined #perl6-dev
14:50 timotimo that was quite something to unravel
14:51 Zoffix timotimo: no idea. All exceptions thrown by plugins get caught. Maybe something makes it nom too much ram and it gets killed? No idea. Gonna add a logger some time, to see the last messages before its death at least
14:52 MasterDuke really glad we found that nqp::objprimunsigned(uint) bug first before getting too far into unsigned native attributes, that could have been a real red herring
14:52 timotimo infinite recursion would nom all ram, for example
14:52 timotimo oh yes, indeed
14:52 timotimo especially since most probably the type would still have given 1 as .^unsigned even though it isn't unsigned "on the inside"
14:53 timotimo m: say uint.unsigned; use nqp; say nqp::objprimunsigned(uint)
14:53 camelia rakudo-moar 932b59: OUTPUT: «No such method 'unsigned' for invocant of type 'uint'␤  in block <unit> at <tmp> line 1␤␤»
14:53 timotimo m: say uint.^unsigned; use nqp; say nqp::objprimunsigned(uint)
14:53 camelia rakudo-moar 932b59: OUTPUT: «1␤1␤»
14:53 timotimo oh, it's already got that commit?
14:53 timotimo it does, that's fast
14:53 MasterDuke c: 2017.03 say uint.^unsigned; use nqp; say nqp::objprimunsigned(uint)
14:53 committable6 MasterDuke, ¦2017.03: «1␤0»
14:53 Zoffix huggable: camelia
14:53 huggable Zoffix, Camelia updates every 20m at 8, 28, and 48 minutes of the hour
14:54 Zoffix just updated 5m ago
14:54 timotimo neat.
14:55 timotimo i wouldn't put a test with nqp:: ops in them into roast, but maybe under t/ somewhere we can test the signed/unsigned natives to see if their otuside matches their inside
14:58 MasterDuke m: use Test; use nqp; for uint, uint8, int, int8 { is $_.^unsigned, nqp::objprimunsigned($_) }  # like this?
14:58 camelia rakudo-moar 932b59: OUTPUT: «ok 1 - ␤ok 2 - ␤ok 3 - ␤ok 4 - ␤»
14:58 timotimo kind of, yeah
15:00 MasterDuke so now for unsigned native attributes, istr we need to do something here https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Metamodel/BUILDPLAN.nqp#L61
15:01 MasterDuke c: 2017.03 use Test; use nqp; for uint, uint8, int, int8 { is $_.^unsigned, nqp::objprimunsigned($_) }  # like this?
15:01 committable6 MasterDuke, ¦2017.03: «not ok 1 - ␤␤# Failed test at /tmp/aR9JDvHpMQ line 1␤# expected: '0'␤#      got: '1'␤ok 2 - ␤ok 3 - ␤ok 4 -  «exit code = 1»»
15:14 jnthn Zoffix: Not had anything like the time I woulda liked to comment on it this week. :( I'll leave some commnets on tickets now, though.
15:14 Zoffix OK.
15:31 hankache joined #perl6-dev
15:31 AlexDaniel huggable: whateverable
15:31 huggable AlexDaniel, nothing found
15:33 AlexDaniel huggable: whateverable :is: whateverable updates every 5 minutes (+ it takes 3 minutes to build rakudo)
15:33 AlexDaniel
15:33 huggable AlexDaniel, Added whateverable as whateverable updates every 5 minutes (+ it takes 3 minutes to build rakudo)
15:33 lizmat m: sub a() { Proxy.new( FETCH => {}, STORE => -> $, Int() $v { say "didnt throw"; dd $v } ) }; a() = "foo"   # shouldn't this throw ?
15:33 camelia rakudo-moar 932b59: OUTPUT: «didnt throw␤Failure $v = Failure.new(exception => X::Str::Numeric.new(source => "foo", pos => 0, reason => "base-10 number must begin with valid digits or '.'"), backtrace => Backtrace.new)␤»
15:35 lizmat hmmm... guess not
15:35 lizmat m: sub a(Int() $a) { say "didn't throw"; dd $a }; a "foo
15:35 camelia rakudo-moar 932b59: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in double quotes; couldn't find final '"' ␤at <tmp>:1␤------> 3a) { say "didn't throw"; dd $a }; a "foo7⏏5<EOL>␤    expecting any of:␤        argument list␤      …»
15:35 lizmat m: sub a(Int() $a) { say "didn't throw"; dd $a }; a "foo"
15:35 camelia rakudo-moar 932b59: OUTPUT: «didn't throw␤Failure $a = Failure.new(exception => X::Str::Numeric.new(source => "foo", pos => 0, reason => "base-10 number must begin with valid digits or '.'"), backtrace => Backtrace.new)␤»
15:37 Zoffix m: sub a(Int() $a) { say "didn't throw"; dd $a }; a "foo" but role { method Int { my class Meows {} } }
15:37 camelia rakudo-moar 932b59: OUTPUT: «didn't throw␤<anon|29974016>::Meows $a = <anon|29974016>::Meows␤»
15:37 Zoffix I think there's a ticket for "coersers don't check the result type"
15:38 Zoffix This one: https://rt.perl.org/Ticket/Display.html?id=128927#ticket-history
15:39 lizmat I see
15:48 * Zoffix is dissapointed no one's biting on the prime factors tweet...
15:48 Zoffix https://twitter.com/zoffix/status/848180417194852353
15:50 MasterDuke maybe you need a follow up that you used it to find the next Mersenne prime?
15:51 MasterDuke or would that be too obvious?
15:52 Zoffix Too obvious :D
15:52 lizmat in this world of fake news... all of the April Fool's jokes are spoilt
15:57 MasterDuke timotimo: i modified Mu.pm and BUILDPLAN.nqp to add a kind of plan for unsigned, which calls bindattr_u (which i added to nqp, but not yet to moar)
15:58 Zoffix So it's the only day of the year where people bother to verify claims before accepting them as true? :) I forsee the holiday being renamed to something else in the future :)
15:58 MasterDuke and `class :: { has uint64 $.foo; }.new( foo => -2 ).foo.say` calls my new code (i added a debugging print to be sure), but doesn't die
15:59 Ven joined #perl6-dev
16:00 Geth ¦ rakudo/nom: 743394795e | (Elizabeth Mattijsen)++ | 3 files
16:00 Geth ¦ rakudo/nom: Make sure that Baggy handle bare objects ok
16:00 Geth ¦ rakudo/nom:
16:00 Geth ¦ rakudo/nom: As a step towards not allocating storage for empty Baggies.
16:00 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/743394795e
16:00 jnthn Zoffix: I've left comments on various of the issues
16:00 jnthn Zoffix: Hope they're of some help
16:01 MasterDuke how in the world is nqp::bindattr_u() not dying when there's no bindattr_u op in moar?
16:01 jnthn I dunno, is it mapped to something else? :)
16:03 MasterDuke i added `add_bindattr_op('bindattr_u', 'bindattr_u', 'bindattrs_u', $MVM_reg_uint64);` to QASTOperationsMAST.nqp, but there's no bindattr_u or bindattrs_u in moar
16:03 timotimo it's not being compiled into anything?
16:04 jnthn Oh...this sounds familiar
16:04 jnthn I think it's probably turning it into a noop
16:04 jnthn Because something numifies to 0 somewhere in the lookup
16:07 MasterDuke ok, so that's somewhat expected then? now to figure out which git stash was it where i actually added bindattr_u and bindattrs_u to moar...
16:07 Zoffix jnthn++ thanks. Yes, they're very helpful.
16:35 jnthn Oh dear...
16:35 jnthn makefile(630) : fatal error U1034: syntax error : separator missing
16:35 jnthn Stop.
16:36 jnthn That's nmake on Windows
16:36 timotimo huh, is that perhaps the one that also broke our makefile on bsd make (or what was it?)
16:37 MasterDuke yep, my commit https://github.com/rakudo/rakudo/commit/408b4035eab51be3154618234b05ab6fc2403541
16:38 MasterDuke some discussion with Zoffix earlier today https://irclog.perlgeek.de/perl6-dev/2017-04-01#i_14360554
16:40 timotimo so better revert it for the time being?
16:42 geekosaur maybe just a leading newline to match the leading newline in the other?
16:43 geekosaur the fact that the original started with a newline makes me think the ifeq is being output in the middle of a line
16:43 MasterDuke i don't have a windows env to test with, and i don't know make very well, so i'll defer to whatever anybody else suggests
16:43 geekosaur also, uh, that ifeq syntax is gnumake only
16:44 geekosaur not bsd make, also I think not nmake
16:44 geekosaur so yes, revert and figure out how to do it portably
16:44 dogbert17 o/ anyone getting a test failure in t/spec/integration/error-reporting.t all of a sudden?
16:47 dogbert17 # Error message: Constraint check failed in binding to parameter '$x'; expected Even but got Int (3)
16:47 dogbert17 not ok 6 - subset type check fail mentions type check
16:47 * geekosaur would want to see the generated makefile, to be certain...
16:48 MasterDuke geekosaur: https://gist.github.com/MasterDuke17/506bc232269ea195245beae9a1c79f9a
16:49 timotimo dogbert17: i think jnthn just recently changed something about typecheck error messages
16:49 timotimo https://github.com/rakudo/rakudo/commit/f1cd8e313a
16:49 geekosaur ok, then (aside from I would still put a blank line before the following target) that's just using a gnumake-ism in non-gnumake
16:50 timotimo it wants 'type check' and 'constraint' to both be in the error message
16:50 dogbert17 timotimo: thx, didn't think jnthn hacked on weekends :)
16:50 geekosaur either require gnumake or find a different way to do it
16:51 timotimo we simply dropped the "type" from the "check"
16:51 timotimo thus: boom
16:51 dogbert17 should the test be changed then?
16:53 timotimo don't think so
16:54 dogbert17 the code test stuff related to RT #74348
16:54 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=74348
16:56 * dogbert17 leaves the test to jnthn
16:57 jnthn Sorry, cooking needed attention
16:57 jnthn I've no idea how to fix the makefile thing to work on nmake
16:57 jnthn so yeah, let's revert it for now
16:58 * dogbert17 suspects jnthn is cooking up some Indian dish
16:59 jnthn No, chili con carne today :)
16:59 jnthn Got family visiting next week and will be doing a bunch of Indian for them :)
16:59 MasterDuke jnthn: there's also t/spec/integration/error-reporting.t that dogbert17 pointed out
16:59 jnthn So figured some variety was good
16:59 jnthn Yeah...grrr, tests that check for words, not types :P
17:00 * MasterDuke was excited when an Indian restaurant announced they were opening just down the road, but construction seems to have stalled...
17:00 dogbert17 chili con carne can be very nice 8and can contain many spices)
17:01 jnthn Indeed
17:01 * MasterDuke has gotten my wife to start eating (some) Indian food over the past couple years
17:02 MasterDuke but it's not big in our area
17:02 * jnthn usually puts in a real chili, some broken up dried chili, and some kashmiri chili powder, to get an interesting blend
17:03 * dogbert17 sounds like a strong mix
17:03 * MasterDuke doesn't know kashmiri chili powder, but loves the flavor of chipotle chilis
17:03 Geth ¦ rakudo/nom: 1f854b12a5 | (Jonathan Worthington)++ | src/core/Exception.pm
17:03 Geth ¦ rakudo/nom: Keep a test looking for exact wording happy.
17:03 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1f854b12a5
17:04 jnthn There's the integration test happy again...sorry I missed that
17:05 jnthn I spectested...but only the first of my 2 patches. D'oh.
17:08 timotimo :)
17:08 jnthn Any objections to reverting 408b4035eab51be?
17:10 timotimo nah, that hash isn't particularly pretty
17:10 MasterDuke not from me (but it'd be nice if someone who know make better could implement it in a portable way)
17:10 timotimo well, we could check if the platform is linux and only emit the new code there :P
17:10 Geth ¦ rakudo/nom: 20f335f145 | (Jonathan Worthington)++ | Configure.pl
17:10 Geth ¦ rakudo/nom: Revert "Enable `make t/spec/<file> HARNESS_TYPE=6` to work"
17:10 Geth ¦ rakudo/nom:
17:10 Geth ¦ rakudo/nom: This reverts commit 408b4035eab51be3154618234b05ab6fc2403541, which
17:10 Geth ¦ rakudo/nom: relies on gnumake-specific syntax (or at least, syntax that neither
17:10 Geth ¦ rakudo/nom: nmake or BSD make understand).
17:10 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/20f335f145
17:11 jnthn timotimo: In git, the hash is forever anyway :)
17:11 geekosaur BSD make uses directives that start with a dot. I don't know what nmake does
17:11 geekosaur also the conditions look quite different
17:12 timotimo can always invoke system commands to do heavy-lifting :)
17:14 jnthn nmake happy again after that revert
17:53 camelia joined #perl6-dev
17:56 lizmat hmmm: looks like t/spec/integration/error-reporting.t test #6 got borked today
17:56 timotimo lizmat: already fixed
17:56 lizmat ah?
17:56 timotimo 190334     +Geth │ ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1f854b12a5
17:56 timotimo er, wrong line
17:56 timotimo but you can click that to get the description, which is what i had hoped to copy
17:57 lizmat oki  :-)
17:58 bartolin joined #perl6-dev
18:06 MasterDuke joined #perl6-dev
19:39 patrickz joined #perl6-dev
19:39 patrickz m: use NativeCall; my CArray[uint8] $a .= new(128); say $a[0];
19:39 camelia rakudo-moar 20f335: OUTPUT: «-128␤»
19:55 Zoffix Known bug: https://rt.perl.org/Ticket/Display.html?id=130267#ticket-history
20:05 Ven joined #perl6-dev
20:14 Geth ¦ rakudo/nom: e660a57337 | (Elizabeth Mattijsen)++ | 2 files
20:14 Geth ¦ rakudo/nom: Make sure that Setty handles bare objects ok
20:14 Geth ¦ rakudo/nom:
20:14 Geth ¦ rakudo/nom: As a step towards not allocating storage for empty Setties.
20:14 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e660a57337
20:23 Geth ¦ rakudo/nom: 8a4df16204 | (Elizabeth Mattijsen)++ | 3 files
20:23 Geth ¦ rakudo/nom: Don't allocate hash for empty Set/Bag/Mix
20:23 Geth ¦ rakudo/nom:
20:23 Geth ¦ rakudo/nom: - set()/bag()/mix() now return a sentinel value
20:23 Geth ¦ rakudo/nom: - Set/Bag/Mix.new still return a new (empty) object each time
20:23 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8a4df16204
20:35 Geth ¦ rakudo/nom: e24980f91b | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
20:35 Geth ¦ rakudo/nom: Add shortcut for infix:<(|)>()
20:35 Geth ¦ rakudo/nom:
20:35 Geth ¦ rakudo/nom: Like the other set operators have that return a Set by default.
20:35 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e24980f91b
20:38 robertle joined #perl6-dev
20:44 patrickz Zoffix: timotimos latest commit sounded promising wrt that bug and I was to lazy to update rakudo locally. That was basically the test whether that bug is still there. Sadly it is...
20:45 timotimo it didn't change anything about uint8
20:45 timotimo uint8 was already correct
20:45 timotimo uint itself wasn't, because there was no "is nativesize(...)" attached to it
20:46 timotimo MasterDuke is looking into all kinds of unsignedness things
21:22 * Zoffix snickers
21:22 Zoffix "So, ignoring that factoring isn't even a part of RSA's normal operation (only for breaking it), it's utterly broken to use this for RSA"
21:23 Zoffix Haters hating on an imaginary Perl 6 function :)
21:26 samcv hi Zoffix
21:27 samcv so if i have a html profile file generated by travis. how can i get it onto perl6.fail/moarvm
21:33 Zoffix Dunno. I never give out keys to the box perl6.fail is on. I guess I should've thought of that when I said I could add that stuff to perl6.fail. I could make that URL redirect to somewhere; would that work?
21:40 samcv uhm i guess. hmm
21:40 samcv trying to think best way to upload something from travis
21:40 samcv without having to give it secrets
21:40 timotimo oh, doesn't it have a "artifacts" mechanism somewhere?
21:41 timotimo https://docs.travis-ci.com/user/deployment/custom/ - this is what you mean with "give it secrets", right?
21:42 samcv maybe. if you can find out a way for it to upload something somewhere without having to store private keys or secret tokens in repo
21:42 samcv that would be great
21:43 timotimo oh, cool, they have a public key you can just encrypt stuff with
21:43 timotimo just "gem install travis", then - while inside your project - travis encrypt SOMEVAR="secretvalue"
21:51 timotimo i.e. you can use that to upload stuff with a secret that doesn't have to get put into the .travis.yml
22:02 samcv kk will work on that once I get coverage printing out online
22:02 samcv er on travis or whatever
22:03 samcv also sent a message to codecov.io site, cause that would be great to have stats and graphs with this stuff. but their examples and documentatiuon is not that great for C
22:44 Geth ¦ rakudo/nom: 6686abbff7 | (Elizabeth Mattijsen)++ | 2 files
22:44 Geth ¦ rakudo/nom: Make Setty coercion to (Bag|Mix)Hash 7x faster
22:44 Geth ¦ rakudo/nom:
22:44 Geth ¦ rakudo/nom: - for a 10 element set, larger sets will probably be faster still
22:44 Geth ¦ rakudo/nom: - basically first clone the internal hash, then replace values
22:44 Geth ¦ rakudo/nom: - doesn't need any possibly expensive .WHICH re-calculations
22:44 Geth ¦ rakudo/nom: - so for sets with expensive .WHICH, this will probably be faster still
22:44 Geth ¦ rakudo/nom: - should also affect many set operators that do a lot of coercions
22:44 Geth ¦ rakudo/nom: - also make SET-SELF non-private, so we can use it from other classes
22:44 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6686abbff7
23:02 Geth ¦ rakudo/nom: f947a19717 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm
23:02 Geth ¦ rakudo/nom: Make Baggy coercion to Set|SetHash 10x faster
23:02 Geth ¦ rakudo/nom:
23:02 Geth ¦ rakudo/nom: - for a 10 element bag, larger baggies will probably be faster still
23:02 Geth ¦ rakudo/nom: - basically first clone the internal hash, then replace values
23:02 Geth ¦ rakudo/nom: - doesn't need any possibly expensive .WHICH re-calculations
23:02 Geth ¦ rakudo/nom: - so for baggies with expensive .WHICH, this will probably be faster still
23:02 Geth ¦ rakudo/nom: - should also affect many set operators that do a lot of coercions
23:02 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f947a19717
23:03 lizmat and this concludes my hacking for today
23:03 lizmat good night, #perl6-dev!
23:05 samcv night lizmat :)
23:05 samcv sleep well
23:23 travis-ci joined #perl6-dev
23:23 travis-ci Rakudo build passed. Elizabeth Mattijsen 'Make Setty coercion to (Bag|Mix)Hash 7x faster
23:23 travis-ci https://travis-ci.org/rakudo/rakudo/builds/217638480 https://github.com/rakudo/rakudo/compare/e24980f91b79...6686abbff7c9
23:23 travis-ci left #perl6-dev
23:36 sivoais joined #perl6-dev

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