Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-11-16

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

All times shown according to UTC.

Time Nick Message
00:16 stmuk_ joined #perl6-dev
01:47 ugjka joined #perl6-dev
02:49 ilbot3 joined #perl6-dev
02:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
06:52 RabidGravy joined #perl6-dev
07:17 [TuxCM] This is Rakudo version 2016.10-285-gee8ae92 built on MoarVM version 2016.10-55-g20c8591
07:17 [TuxCM] csv-ip5xs        3.081
07:17 [TuxCM] test            13.988
07:17 [TuxCM] test-t           6.545
07:17 [TuxCM] csv-parser      14.669
08:59 brrt joined #perl6-dev
10:15 camelia joined #perl6-dev
10:22 camelia joined #perl6-dev
10:26 dalek joined #perl6-dev
10:42 dalek roast: bfd9438 | timotimo++ | integration/weird-errors.t:
10:42 dalek roast: don't segfault when null str goes into hash access
10:42 dalek roast:
10:42 dalek roast: not satisfied with putting it into this file, though.
10:42 dalek roast: review: https://github.com/perl6/roast/commit/bfd9438d68
11:26 AlexDaniel joined #perl6-dev
11:30 viki m: say -100.base(16).parse-base(16) # Zoffix--
11:30 camelia rakudo-moar ee8ae9: OUTPUT«-100␤»
11:30 viki oh
11:30 viki m: say (-100).base(16).parse-base(16) # Zoffix--
11:30 camelia rakudo-moar ee8ae9: OUTPUT«Invalid base-16 character: ⏏-64␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
12:04 ggoebel joined #perl6-dev
12:16 Hotkeys joined #perl6-dev
12:21 pmurias joined #perl6-dev
12:44 MasterDuke_ joined #perl6-dev
12:49 MasterDuke_ .ask jnthn do you have any thoughts on my line directive PR https://github.com/rakudo/rakudo/pull/919 and Zoffix's suggestion?
12:49 yoleaux2 MasterDuke_: I'll pass your message to jnthn.
12:49 MasterDuke_ .ask lizmat do you have any thoughts on my line directive PR https://github.com/rakudo/rakudo/pull/919 and Zoffix's suggestion?
12:49 yoleaux2 MasterDuke_: I'll pass your message to lizmat.
12:58 lizmat .
12:58 yoleaux2 12:49Z <MasterDuke_> lizmat: do you have any thoughts on my line directive PR https://github.com/rakudo/rakudo/pull/919 and Zoffix's suggestion?
13:00 lizmat MasterDuke_: left a comment
13:19 MasterDuke_ lizmat: thanks
13:40 dalek nqp: 0538cae | MasterDuke17++ | src/ (5 files):
13:40 dalek nqp: Initial support for line directives
13:40 dalek nqp:
13:40 dalek nqp: This will allow backtraces to report the original file and line number
13:40 dalek nqp: instead of m-CORE.setting and its line number.
13:40 dalek nqp:
13:40 dalek nqp: This also works in EVALs, making it easier to know which one has died.
13:40 dalek nqp: review: https://github.com/perl6/nqp/commit/0538cae0b6
13:40 dalek nqp: 438b8e3 | (Zoffix Znet)++ | src/ (5 files):
13:40 dalek nqp: Merge pull request #319 from MasterDuke17/source_file_line_numbers
13:40 dalek nqp:
13:40 dalek nqp: Initial support for line directives
13:42 dalek rakudo/nom: 2e9e89b | (Zoffix Znet)++ | tools/build/NQP_REVISION:
13:42 dalek rakudo/nom: Bump NQP version
13:42 dalek rakudo/nom:
13:42 dalek rakudo/nom: To bring in line directives PR https://github.com/perl6/nqp/pull/319
13:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2e9e89b61a
13:42 dalek rakudo/nom: 5b0d81b | MasterDuke17++ | / (2 files):
13:42 dalek rakudo/nom: Changes needed to support line directives
13:42 dalek rakudo/nom:
13:42 dalek rakudo/nom: An extra blank line after a directive throws off the numbering.
13:42 dalek rakudo/nom:
13:42 dalek rakudo/nom: The m-CORE.setting file is no longer seen in a backtrace, so we need
13:42 dalek rakudo/nom: another way of determining if we are in the settings. This isn't a
13:42 dalek rakudo/nom: great solution, but should work for now.
13:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5b0d81bf75
13:42 dalek rakudo/nom: b068e3a | MasterDuke17++ | tools/build/gen-cat.nqp:
13:42 dalek rakudo/nom: Mark the line directives for Rakudo core src files
13:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b068e3a2c4
13:44 viki s/This isn't a great solution//; # that has been amended
13:44 cognominal m: class A { method Str { 1 } }; say A.new.Str  # should not it be some kind of compile time type enforcement of returned value when defining casting methods,
13:44 camelia rakudo-moar ee8ae9: OUTPUT«1␤»
13:44 cognominal obviously there is none
13:45 viki Well, it's really a casting method. It's just a method.
13:46 viki m: class is-prime {}; sub (is-prime(Int) $x) { say $x }(31337)
13:46 camelia rakudo-moar ee8ae9: OUTPUT«True␤»
13:47 viki ^ any method can be a "casting method" really :)
13:47 viki s/it's really/it's not really/;
13:47 timotimo the fact that methods called Int cast something to Int is really just a convention
13:48 cognominal timotimo: yes that´s my point. Should it be when the method name is a type ?
13:48 viki My opinion: definitely not
13:49 jnthn It's just a convention.
13:49 jnthn Ah, timotimo already said that :)
13:49 jnthn But anyway, I agree. I'd not expect an automatic return type enforcement here
13:51 cognominal ok, just asking. I don´t yet have an opinion on the subject
13:52 viki cognominal: adding such an enforcement basically means we can never add or change a core class. Because someone may have a method named like that and our enforcement would break that method. Also, it's just an assumption that a method name that matches a core type name necessarily means you want to cast it. I could have a .DateTime method on an object that stamps it with current date or tells me whether it
13:52 viki has been stampted.
13:53 viki (granted, I'd name that method .date-time, but there are these strange people who use CamelCase :)))
13:54 timotimo date'time :P
13:54 timotimo like 0'00"00
13:54 viki :)
14:00 lizmat afk&
14:01 viki ZOFVM: Files=1203, Tests=130161, 134 wallclock secs (20.46 usr  2.79 sys + 2354.09 cusr 195.34 csys = 2572.68 CPU)
14:04 cognominal updated S13 to hopefully clarify the matter
14:08 viki Well, specs are speculations—historical documents. A lot of the stuff in 'em is outdated.
14:14 diakopter joined #perl6-dev
14:37 dalek joined #perl6-dev
14:40 ggoebel joined #perl6-dev
14:53 viki m: say "{.file}:{.line}" with &say
14:53 camelia rakudo-moar f03ef5: OUTPUT«SETTING::src/core/io_operators.pm:20␤»
14:53 viki hehe. neat. MasterDuke_++
14:53 viki s: &say
14:53 SourceBaby viki, Sauce is at https://github.com/rakudo/rakudo/blob/f03ef55/SETTING::src/core/core_prologue.pm#L16
14:53 viki heh. time to update CoreHackers::Sourcery, I guess
14:55 pmurias viki: does a lot of stuff in the specs need updating?
14:56 [Coke] you mean the syn?
14:56 viki pmurias: well, almost a year ago we decided keeping them up-to-date was wasted effort. So I'd guess a lot of them are out of date, but *none* need updating.
14:56 [Coke] It's probably not getting updated at this point. We're considering them historical docs. Inspirational, not definitive.
14:58 pmurias [Coke]: yes
14:58 pmurias viki: so the current docs live at docs.perl6.org?
14:59 [Coke] as current as we have, yes.
14:59 viki pmurias: yes, roast is The Official Perl 6 Specification and docs.perl6.org is the human-readable version that depends on the former
14:59 viki (that is, if the two disagree, the roast is the authoratitive source)
15:05 dalek nqp: 798eeb3 | jnthn++ | tools/build/MOAR_REVISION:
15:05 dalek nqp: Bump MOAR_REVISION for latest MoarVM.
15:05 dalek nqp: review: https://github.com/perl6/nqp/commit/798eeb3302
15:07 viki \o/
15:08 dalek rakudo/nom: 395f369 | jnthn++ | tools/build/NQP_REVISION:
15:08 dalek rakudo/nom: Bump for latest MoarVM.
15:08 dalek rakudo/nom:
15:08 dalek rakudo/nom: This includes fixes to a SEGV in multi-threaded programs where strings
15:08 dalek rakudo/nom: internally represented as strands were used in various ways (typically
15:08 dalek rakudo/nom: as hash keys). As a bonus, hashes now use 4 (32-bit) or 8 (64-bit)
15:08 dalek rakudo/nom: bytes less memory per item stored, so a hash of 1000 keys will be
15:08 dalek rakudo/nom: up to 8KB smaller.
15:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/395f369c92
15:09 jnthn Hope that description helps the changelog :)
15:10 viki It does. jnthn++
15:10 dalek roast: 6a40128 | jnthn++ | S17-promise/start.t:
15:10 dalek roast: Test covering RT #129781.
15:10 dalek roast: review: https://github.com/perl6/roast/commit/6a40128b4a
15:10 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129781
15:15 dalek nqp: 6dadbe3 | (Pawel Murias)++ | src/vm/js/nqp-runtime/core.js:
15:15 dalek nqp: [js] settypecheckmode with nqp::const::TYPE_CHECK_NEEDS_ACCEPTS.
15:15 dalek nqp: review: https://github.com/perl6/nqp/commit/6dadbe3152
15:15 dalek nqp: 687bdf4 | (Pawel Murias)++ | t/nqp/103-typecache.t:
15:15 dalek nqp: Test the type check cache.
15:15 dalek nqp: review: https://github.com/perl6/nqp/commit/687bdf4bdb
15:15 dalek nqp: 4965e17 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (4 files):
15:15 dalek nqp: [js] Improve the VMArray repr as we work on using it instead of the NQPArray class.
15:15 dalek nqp: review: https://github.com/perl6/nqp/commit/4965e172e7
15:16 dalek nqp: d8f1a24 | (Pawel Murias)++ | t/serialization/01-basic.t:
15:16 dalek nqp: Test serialization of a VMArray.
15:16 dalek nqp: review: https://github.com/perl6/nqp/commit/d8f1a24234
15:31 dalek nqp: e61fa7c | (Pawel Murias)++ | src/vm/js/ (2 files):
15:31 dalek nqp: [js] Remove old code for doing a splice on raw js arrays, call the $$splice method directly.
15:31 dalek nqp: review: https://github.com/perl6/nqp/commit/e61fa7ce29
15:44 dalek nqp: 1f7721e | (Pawel Murias)++ | src/vm/js/ (2 files):
15:44 dalek nqp: [js] Use $obj.$$iterator instead of nqp.op.iterator($obj) everywhere.
15:44 dalek nqp: review: https://github.com/perl6/nqp/commit/1f7721e3cd
15:51 FROGGS joined #perl6-dev
16:33 dalek rakudo/nom: 4ccb2f3 | jnthn++ | src/core/Grammar.pm:
16:33 dalek rakudo/nom: Make `parse` try a bit harder to get a match.
16:33 dalek rakudo/nom:
16:33 dalek rakudo/nom: While a Grammar built out of regexes isn't a particularly wise idea,
16:33 dalek rakudo/nom: if we do have a `regex TOP` (or the `rule` we specify to `parse` is a
16:33 dalek rakudo/nom: `regex`) then we should at leave give it a chance to do the required
16:33 dalek rakudo/nom: backtracking to produce a result that eats the whole string. It costs
16:33 dalek rakudo/nom: nothing for non-regex grammars to add this.
16:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4ccb2f3fc0
16:34 dalek roast: 7b838ea | jnthn++ | S05-grammar/parse_and_parsefile.t:
16:34 dalek roast: Test for RT #130081.
16:34 dalek roast: review: https://github.com/perl6/roast/commit/7b838eacfc
16:34 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130081
17:13 jnthn m: use Test; { my $p = Promise.new; $p.break("OH NOES"); try await $p; is $!.message, "OH NOES", "Promise broken with string form of .break conveys correct message"; }
17:13 camelia rakudo-moar 4ccb2f: OUTPUT«not ok 1 - Promise broken with string form of .break conveys correct message␤␤# Failed test 'Promise broken with string form of .break conveys correct message'␤# at <tmp> line 1␤# expected: 'OH NOES'␤#      got: 'bindexpayload needs a VMException…»
17:15 [Coke] hey, that looks familiar! :)
17:16 jnthn plan 2999999999;
17:16 jnthn ...seems I need to keep working on these vim skills :P
17:16 timotimo hehe
17:16 jnthn [Coke]: Yeah, it's RT #130064; spectesting the fix now
17:16 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130064
17:16 timotimo ctrl-a will increase the next number the cursor can find
17:16 jnthn And wanted to make sure that my test really covered it
17:16 timotimo (on the same line)
17:17 jnthn o.O
17:17 timotimo ctrl-x is for decreasing
17:17 jnthn omg
17:17 jnthn That's awesome
17:17 jnthn timotimo++
17:17 timotimo it's neat, yeah :)
17:17 timotimo ^A timotimo ;)
17:18 timotimo also, did you know that when you search with /foobar/e, the cursor will end up on the last matched character instead of the first
17:18 timotimo so you can start appending immediately
17:20 jnthn Didn't know about /e, no :)
17:20 jnthn Also cool
17:20 timotimo very helpful, indeed indeed
17:20 viki .oO( pfft... vim users and their crazy shortcuts! )
17:22 timotimo who will go ahead and write a perl6-compatible regex engine in vim? :P
17:22 timotimo *cough* vimscript *cough*
17:22 * jnthn is seeing some backtrace/line number or similar fails in spectst
17:23 jnthn And can't track them back to anything I've done; appeared after a fetch
17:23 jnthn One each in S32-basics/warn.t and integration/error-reporting.t
17:23 dalek rakudo/nom: 58a4826 | jnthn++ | src/core/Exception.pm:
17:23 dalek rakudo/nom: Allow `.rethrow` to work on unthrown exceptions.
17:23 dalek rakudo/nom:
17:23 dalek rakudo/nom: For example, those created with `.new`. Previously, we spat out an
17:23 dalek rakudo/nom: internal error when trying to do this. Fixes a regression in some
17:23 dalek rakudo/nom: cases of error reporting involving promises.
17:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/58a482615a
17:23 dalek roast: 63f7e36 | jnthn++ | S17-promise/basic.t:
17:23 dalek roast: Test to cover RT #130064.
17:23 dalek roast: review: https://github.com/perl6/roast/commit/63f7e367b0
17:23 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130064
17:25 viki We did make a backtrace/line-number change today, but stresstest was clean after I merged it
17:26 jnthn Hmm
17:26 * dogbert17 wonders if that might fix the oldie hexdump bug we discussed yesterday
17:26 * viki pulls and fires up another run
17:27 viki m: use v6; warn("OH NOEZ"); say "alive"
17:27 camelia rakudo-moar 4ccb2f: OUTPUT«OH NOEZ␤  in block <unit> at <tmp> line 1␤alive␤»
17:27 timotimo the repl test hangs even without my string encoding stuff
17:27 viki 0.o
17:27 jnthn OK, I need to a break from the keybarod.
17:28 jnthn And then should cook us some dinner here, I guess... :-)
17:28 timotimo that sounds nice :)
17:28 jnthn bbl
17:28 viki Sweet. What are we having?
17:28 timotimo oh wait, you don't mean us as in all of the people in irc here ...
17:28 jnthn No, I meant wife and I :-)
17:28 viki :)
17:29 dogbert17 indian food?
17:29 jnthn Will make kofta (meatballs) and some spicy-ish sauce to go on them. :)
17:30 jnthn Yeah, the sauce qualifies it as Indian food I guess :)
17:30 viki kofta? Lol :) https://translate.google.ca/#ru/en/kofta
17:30 jnthn Though lots of places seem to have things they call kofta
17:31 timotimo allowing strings that are decoded from latin1 to become 8bit-per-char stored gets us about 3/4 of a megabyte less for perl6 -e ''
17:31 jnthn viki: Yes, my wife has pointed that out more than once :P
17:31 viki :)
17:31 jnthn timotimo: Nice saving!
17:32 timotimo oh
17:32 jnthn OK, really off for a bit... :)
17:32 timotimo actually closer to 1/2 or 1/3rd
17:33 viki All tests successful.
17:33 viki Files=1203, Tests=130164, 164 wallclock secs (20.62 usr  3.01 sys + 3092.72 cusr 283.71 csys = 3400.06 CPU)
17:33 viki Result: PASS
18:37 dalek nqp: 1c36493 | (Pawel Murias)++ | src/vm/js/Operations.nqp:
18:37 dalek nqp: [js] Use a :method_call adverb to add_simple_op to avoid reptitive code.
18:37 dalek nqp: review: https://github.com/perl6/nqp/commit/1c36493309
18:37 dalek nqp: 876ccd5 | (Pawel Murias)++ | src/vm/js/Operations.nqp:
18:37 dalek nqp: [js] Make :ctx work together with :method_call on add_simple_op.
18:37 dalek nqp: review: https://github.com/perl6/nqp/commit/876ccd5c7f
18:37 dalek nqp: 1178c84 | (Pawel Murias)++ | src/vm/js/Operations.nqp:
18:37 dalek nqp: [js] Remove unneeded argument.
18:37 dalek nqp: review: https://github.com/perl6/nqp/commit/1178c84031
18:37 dalek nqp: b0e6c9c | (Pawel Murias)++ | src/vm/js/Operations.nqp:
18:37 dalek nqp: [js] Rename side-effects -> side_effects for consistency.
18:37 dalek nqp: review: https://github.com/perl6/nqp/commit/b0e6c9cba3
19:33 SourceBaby joined #perl6-dev
19:34 viki s: &say
19:34 SourceBaby viki, Sauce is at https://github.com/rakudo/rakudo/blob/58a4826/src/core/io_operators.pm#L20
19:34 Undercover joined #perl6-dev
19:39 MasterDuke_ Undercover: help
19:39 Undercover MasterDuke_, Use s: trigger with args to give to sourcery sub. e.g. s: Int, 'base'. See http://modules.perl6.org/dist/CoreHackers::Sourcery
19:39 RabidGravy joined #perl6-dev
19:40 MasterDuke_ Undercover: s: Int, 'base'
19:41 MasterDuke_ viki: ^^^ how do you use Undercover?
19:41 MasterDuke_ c: Int, 'base'
19:41 Undercover MasterDuke_, The code is hit during stresstest [WARNING: this line is a proto! Check individual multies] See http://perl6.WTF/src_core_Int.pm.coverage.html#L64 for details
19:41 viki c: Int, 'base', \()
19:41 Undercover viki, Something's wrong: ␤ERR: Could not find candidate that can do \()␤  in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 29␤  in block <unit> at -e line 6␤␤
19:42 viki c: Int, 'base', \(4)
19:42 Undercover viki, Something's wrong: ␤ERR: Could not find candidate that can do \(4)␤  in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 29␤  in block <unit> at -e line 6␤␤
19:42 viki c: 4, 'base', \(4)
19:42 Undercover viki, The code is hit during stresstest See http://perl6.WTF/src_core_Int.pm.coverage.html#L65 for details
19:42 MasterDuke_ how up-to-date is the coverage report?
19:42 viki It's generated on the top of the home page: "Generated on 2016-10-07T06:04:53.940737-04:00"
19:43 AlexDaniel joined #perl6-dev
19:47 viki You can also generate a fresher copy yourself: http://perl6.party/post/Perl-6-Core-Hacking-Can-Has-Moar-Cover#buildityourself
19:48 MasterDuke_ yeah, i had done it a while ago, but couldn't remember if you had automated it
19:49 viki Well, to some extent. It's a single command to run on my home box :)
19:49 viki But I don't have a good box to run this automatically on.
19:49 viki ... I guess I can set it to run in cron at home around 4AM
19:50 MasterDuke_ don't you have a beefy cloud vm?
19:51 viki Yeah, but I only run it when I need it.
19:51 viki Too expensive to run it 24/7
19:52 viki It would cost $486.05/month... my current usage bill is ~$17/month
19:54 MasterDuke_ yeah, that'd be a noticeable difference
20:01 dalek nqp: 8d18c6c | (Pawel Murias)++ | src/vm/js/nqp-runtime/null_s.js:
20:01 dalek nqp: [js] make js-lint happy
20:01 dalek nqp: review: https://github.com/perl6/nqp/commit/8d18c6cbf9
20:01 dalek nqp: b802319 | (Pawel Murias)++ | src/vm/js/nqp-runtime/code-ref.js:
20:01 dalek nqp: [js] Hack that allows code generated by rakudo.js to load the setting.
20:01 dalek nqp: review: https://github.com/perl6/nqp/commit/b802319dd8
20:01 dalek nqp: 17a5ff6 | (Pawel Murias)++ | src/vm/js/nqp-runtime/core.js:
20:01 dalek nqp: [js] Emit a warning on stderr instead of stdout so it doesn't get mixed with normal output when running tests.
20:01 dalek nqp: review: https://github.com/perl6/nqp/commit/17a5ff6ddf
20:36 ggoebel joined #perl6-dev
20:40 mst viki: note that you can get a significantly powerful (though not as much as your insane VM) box for rental for reasonable money at hetzner
20:40 mst viki: this may or may not be worthwile to you, of course, but I thought I'd mention
20:42 viki Thanks, but I'm good :) I don't think many people need coverage for perl6 for it to be critical that we generate it automatically and I will look into setting up it in cron on my home box when I don't use it
20:53 nine viki: would be happy to give you resources on the server camelia's running on. Maybe just using camelia's VM would be a reasonable way, too.
20:54 mst yeah, I was going to say, if we need somewhere to stick 2am cron jobs I can use a dedicated user account on a shadowcat server if that's helpful
20:54 viki Thanks. I'll keep that in mind if the sticking it as a 4am job on my home computer doesn't work out :)
20:55 seatek joined #perl6-dev
21:03 mst yeah, if that works that's obviously simpler
21:03 mst but shadowcat has all sorts of shit stashed in the corners of our production boxes that make one or other bit of the perl community's lives easier

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