Zoffix Is there some easy cause for why a code block (when precomped) runs fine, but as soon as you stick a subroutine call into it, it crashes with "Cannot invoke this object (REPR: Null; VMNull)" at this line: nqp::p6capturelexwhere($phaser.clone())(); 03:58
ugexe hmm, i can't do `perl6 -I. -MFoo ...` because CUR::FileSystem iterates -all- files/dirs under the -I directory ($*HOME in this case) and tries to open a directory somewhere it doesnt have permissions for 04:31
1132 unintentionally fixes this though 04:35
perl6 --ll-exception -I. -MFoo -e 'dd A.a'
Failed to open dir: 13
Zoffix Ah, that's the "too many open files" error when dir is too nested 04:47
Like in a recursive code that does IO.dir without iterating the Seq to the end 04:48
yoleaux AlexDaniel`: RT/GH weekly 07:17
lizmat Files=1229, Tests=75778, 316 wallclock secs (14.93 usr 5.31 sys + 2185.49 cusr 208.19 csys = 2413.92 CPU) 08:42
Geth rakudo: 7f154fe22e | (Elizabeth Mattijsen)++ | src/core/Telemetry.pm
Handle all permutations of infix:<->(Telemetry,Telemetry)
lizmat m: say $*VM.version # is camelia stuck ? 09:01
camelia v2017.10
lizmat $ 6 'say $*VM.version'
v2017.10.26.gad.2.d.6.fb
MasterDuke maybe the nom -> master switch confused it? 10:16
lizmat ah, that's probably it 10:19
I guess moritz would be the one to ping?
MasterDuke or timotimo? 10:21
moritz investigates 10:25
ok, I did a "git checkout" in the source trees 10:26
git checkout master, that is
so the next cron-based trigger should pick up master
lizmat moritz++ 10:32
m: say $*VM.version
camelia v2017.10.26.gad.2.d.6.fb.0.d
lizmat whee!
m: sub term:<snap>() { Telemetry.new }; say snap - INIT snap 10:33
camelia 180 / 177
lizmat shown are CPU time and wallclock in microseconds 10:34
moritz m: sub term:<snap>() { Telemetry.new }; say (snap - INIT snap).new 10:35
camelia Cannot unbox a type object (int) to an int.
in block <unit> at <tmp> line 1
moritz m: sub term:<snap>() { Telemetry.new }; say (snap - INIT snap).perl
camelia Telemetry::Period.new(:cpu-user(171), :cpu-sys(0), :wallclock(167))
Geth nqp: 99ad77f183 | pmurias++ | src/vm/js/Compiler.nqp
[js] Coerce the last value of a block when passed to the exit_handler
11:37
nqp: 2e47a2df8d | pmurias++ | 2 files
[js] Fix wrong number of positionals error messages
rakudo: e00f705d69 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
We're returning a native: "is raw" makes that a bit faster
11:56
rakudo: 3dfaa2aedd | (Elizabeth Mattijsen)++ | src/core/Telemetry.pm
Make sure we actually record since start of program

Instead of number of microseconds since epoch.
rakudo: 59a59be8a5 | (Elizabeth Mattijsen)++ | 5 files
Move Telemetry out of the setting

  - move it to lib, so you will have to do "use Telemetry"
  - add a snap() sub, to huffmanize Telemetry.new
12:22
jnthn grrr, figured "git archieve" would be a fine way to make a tar.gz to upload to PAUSE. But no, it whines that it wants everything in some top-level directory 12:31
Ah, good, git archive takes a --prefix= :) 12:35
buggable New CPAN upload: IO-Socket-Async-SSL-0.5.tar.gz by JNTHN cpan.metacpan.org/authors/id/J/JN/...0.5.tar.gz 12:36
jnthn hurrah, seems it accepted it this time 12:37
Hm, though it gave me some warning that I shouldn't upload the same filename twice, even though I deleted the previous one.
So guess we'll see if it really works out 12:38
heh, it looked confused, so did another upload :) 12:49
lizmat jnthn: PAUSE is very strict: you cannot upload a file with the same name twice 12:50
jnthn That bit of strict is fine. Being fussy about wanting things in a single top-level directory is slightly annoying :) 12:51
Hopefully it'll report here about the new, fixed, tarball I uploaded 12:52
And then index it on modules.perl6.org
Planning to do the next Cro release next week, and upload that to CPAN, so doing this module as a test/learning run :) 12:53
buggable New CPAN upload: IO-Socket-Async-SSL-0.5.0.tar.gz by JNTHN cpan.metacpan.org/authors/id/J/JN/...5.0.tar.gz 12:56
jnthn There we go 12:57
Geth rakudo: 5244048618 | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6
Remove Telemetry.Period, it was too magical to some

  - fix Telemetry.wallclock: it shouldn't return since epoch
  - improved snap() subroutine, now also allows pushing to a given array
  - added periods() subroutine, for generating a Seq of Telemetry::Period objects
13:11
lizmat draft of Telemetry docs: gist.github.com/lizmat/9dfe921efe7...4dfdbcd68c 13:12
draft of Telemetry::Period docs: gist.github.com/lizmat/e601e91c90e...6b965ec770
jnthn hurrah: modules.perl6.org/search/?q=author%...rom%3Acpan 13:28
Curiously, if you remove the quotes, the search doesn't find anything
Urgh, but it seems that module isn't happy on Rakudo HEAD 13:33
Was fine on 2017.09-479-g7cf5ce7 13:34
jnthn gets travis to try it on 2017.10 13:36
lizmat jnthn: how is it unhappy? 13:37
Geth rakudo: b30916f353 | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6
Add Telemetry::Period.cpus/utilization

  - cpus returns string indicating how many CPU's were used
  - utilization returns a string indicating % of CPU power used
13:53
lizmat hopes that TimToady likes what Telemetry now does, and where it lives 13:58
Geth rakudo: f7d21b5d6c | (Elizabeth Mattijsen)++ | lib/Telemetry.pm6
periods() adds an extra snap() if only one was done

  - also, if there are still snaps from snap(), the say periods before exiting
  - this allows for simple timing info on a single or more snaps
14:22
Zoffix asks again, seeing there are people around...
Is there some easy cause for why a code block (when precomped) runs fine, but as soon as you stick a subroutine call into it, it crashes with "Cannot invoke this object (REPR: Null; VMNull)" at this line: nqp::p6capturelexwhere($phaser.clone())();
precomped phaser codes are busted if they reference some HLL symbols; even as simple as `say` even tho `nqp::say` works 14:23
lizmat Zoffix: other precomped stuff is borked as well: GH #1219 14:25
jnthn Normally because something goes bad with restoring their outer chain
lizmat looks at GH #1220
Zoffix lizmat: yeah, that's the same cause 14:28
Alright. I'll try to figure out where it's restoring stuff :)
jnthn Removing a module from META.list should be sufficient to keep it from being dupe-listed on modules.perl6.org after also putting in on CPAN? 14:31
Zoffix Yes
jnthn s/in/it
OK, guess I just need to be more patient :)
Will check it in another couple of hours
Also, is there a way to have a module that's on CPAN still show travis status, issues, etc? 14:32
Zoffix umm.. there's something busted
"Couldn't require ModulesPerl6::DbBuilder::Dist::PostProcessor::p20TravisCI : Attempt to reload ModulesPerl6/DbBuilder/Dist/PostProcessor/p20TravisCI.pm aborted."
jnthn: not implemented at the moment
jnthn Ah, OK 14:33
Then it's not that I screwed something up :)
Zoffix I'm guessing this busted it: github.com/perl6/modules.perl6.org...ac105632fb
sigil's messed up 14:34
k, I think it's fixed now, so in 2hr stuff should be OK 14:39
dogbert17 Zoffix: do you have any comments about Destiny 2? 14:44
Zoffix "never heard of it" :) 14:45
dogbert17 haha 14:46
Zoffix And the "Curiously, if you remove the quotes, the search doesn't find anything" is due to quote option parser being crap. Filed as github.com/perl6/modules.perl6.org/issues/91 14:50
"Destiny 2 is an online-only multiplayer" I see now why; I'm very much a single-player type of person 14:51
dogbert17 so nothing for you then?
Zoffix Got BeamingNG.drive last night. Super-realistic driving simulator. Here's a sports car smashed into the guard rail at 150km/h: i.imgur.com/lartBs5.jpg 14:52
dogbert17 only scrap left of that one :) 14:53
Zoffix Nah, scrap is when you levitate the car very high and then drop it: i.imgur.com/CxxKevk.jpg :) 14:54
Interestingly, if you set "Sun" gravity, the windshield instantly cracks under the weight of the sagging roof 14:55
So sun isn't a good place to drive a sports car at :P
dogbert17 cool 14:56
lizmat afk for a bit& 14:58
[Tux] timing running 15:10
Rakudo version 2017.10-4-g4fca94743 - MoarVM version 2017.10-1-g213fc774
csv-ip5xs1.162 - 1.183
csv-ip5xs-2014.210 - 14.229
csv-parser11.939 - 13.361
csv-test-xs-200.452 - 0.453
test11.528 - 11.721
test-t3.105 - 3.454
test-t-2057.076 - 59.666
test-t-20 --race19.725 - 19.981
15:22
Zoffix [Tux]: are you still running timings on `nom` branch? 15:32
m: $*PERL.compiler.version.say
camelia v2017.10.36.gf.7.d.21.b.5.d.6
Zoffix You're 32 commits behind; we've switched to use `master` now 15:33
AlexDaniel: what's `nom:` trigger? Looks to be running `master`
[Tux]: also, is there a speed.log ( tux.nl/Talks/CSV6/speed.log ) for test-t-20 time? I figured I'd make buggable use that, to get finer resolution. 17:05
ZOFFLOP: t/spec/S11-modules/nested.t 17:23
Geth rakudo: 3c4041eab5 | (Zoffix Znet)++ | 2 files
Implement hypered nodality for all methodcall variations

Fixes RT#130721: rt.perl.org/Ticket/Display.html?id=130721
Depending on dispatch variant, the actual method call we're hypering might differ than what the original code assumes to be the name
  (and that name would be `dispatch:<blah>`). Fix by raking the QASTs
... (12 more lines)
17:29
synopsebot RT#130721 [open]: rt.perl.org/Ticket/Display.html?id=130721 [BUG] Hypered conditional method calls `Ā».?foo` don't respect nodal methods
roast: 868491aaf5 | (Zoffix Znet)++ | S03-metaops/hyper.t
Spec hyper nodality with all methodcall variants

Rakudo impl: github.com/rakudo/rakudo/commit/3c4041eab5
17:33
Zoffix \o/ that was a tough one
Gained a whole level from all the XP
Zoffix rakes through the loot
.oO( rakudo dev RPG.. with a bot )
17:36
[Tux] Zoffix: not yet. I might 18:18
buggable New CPAN upload: URI-Encode-0.000.003_20171029.tar.gz by PSIXDISTS cpan.metacpan.org/authors/id/P/PS/...029.tar.gz 19:06
MasterDuke anyone have an idea why changing a proto's body from `{*}` to `{ * }` would cause `===SORRY!=== This type cannot unbox to a native string: P6opaque, Whatever` during target 'perl6-m'`? 20:16
AlexDaniel Zoffix: RPG? strangelyconsistent.org/blog/perl-6-is-my-mmorpg 20:22
MasterDuke i just tried to normalize all proto sub/method in the setting to `{ * }` (there were about 150 `{*}` and 630 `{ * }`). so i don't know exactly which one changed. it's dying at github.com/rakudo/rakudo/blob/mast...on.pm#L42: my str $s = nqp::atpos($strings,$i); 20:23
AlexDaniel Zoffix: what ā€œnomā€ trigger are you talking about?
nom: say 42
camelia 42
AlexDaniel this?
it was changed: github.com/perl6/evalbot/commit/b7...cfe3cfb504 20:24
but nobody restarted the bot since then
master: say 42 20:25
yeah I guess so
Zoffix nom: say 42 20:26
AlexDaniel master: say 42 20:27
camelia 42
Zoffix giggles at MVM_REPR_DEFAULT_ASS_FUNCS 21:48
lizmat
.oO( FULL FART )
21:49
m: dd SetHash() # that smells wrong 21:52
camelia SetHash(Any)
jnthn Why? 21:56
SomeTypeName() is a coercion type literal
lizmat so where does the Any come from then ? 21:59
m: dd SetHash(<a b c>)
camelia SetHash("b","a","c")
jnthn Any is the default from type 22:00
lizmat ah, of course :-(
jnthn m: sub foo(SetHash() $s) { dd $s }; foo((1,2,1,3))
camelia SetHash $s = SetHash(1,3,2)
jnthn That's shorthand for SetHash(Any) $s
lizmat a change in SetHash.perl is needed then
jnthn Zoffix: Associative is so much to type... Like the Positional above it :P 22:04
Geth rakudo: af3624d45d | (Elizabeth Mattijsen)++ | src/core/Setty.pm
Correct (Set|SetHash).perl

An empty Set/SetHash was shown as "Set()"/"SetHash()", which would create a Set/SetHash with Any as the only element when EVALled.
22:27
jnthn That's not quite right, it'd actually create a coercion type and evaluate to the type object 22:30
lizmat well, it was not roundtripping :-)
jnthn True that :) 22:31
Geth rakudo: 1949a2bc13 | (Elizabeth Mattijsen)++ | 2 files
Make 'my %h is Set(|Hash) = ...;' DWIM

  - in response to RT #132352 and RT #132353
  - make also sure we can initialize Sets only once
22:42
synopsebot RT#132352 [rejected]: rt.perl.org/Ticket/Display.html?id=132352 Set operators unfriendly to mutable types
RT#132353 [new]: rt.perl.org/Ticket/Display.html?id=132353 [LTA] error with using meta assign ops with bound SetHash
lizmat argh, the check for storing a Set is wrong :-( 22:44
jnthn Not sure if you should be able to my %h is Set = ...
lizmat why not?
jnthn Or if we do, we need to find some way to make follow-up assignments not work
lizmat as long as you only do it once, that should be ok ?
jnthn And it's not clear how to generally do that once 22:45
timotimo ooooh shiny! a few terminal emulators have support for an ansi escape code that lets you put hyperlinks into the terminal that have their text differ from the underlying link
gist.github.com/egmontkob/eb114294...9f3cb5feda
lizmat jnthn: not sure what problem you're referring to
jnthn lizmat: my %h is Set = ...; %h = ...; # second one must fail
And since the only API we have for this is STORE at the moment 22:46
lizmat yeah, ok, that's what I was going for
jnthn How can we achieve that
lizmat yes, I know
well, atm an empty Set is basically a nqp::create(Set)
that's actually *the* empty set
jnthn: actually, my %h is Set = <a b c>; %h = <d e f> is not a problem 22:48
that's covered (basically)
jnthn It is if it doens't explode on the second assignment :P
lizmat it does
so that's not the problem
jnthn looks how that's been achieved to see if he likes it
lizmat it basically checks if the $!elems attribute is definite: it doesn't allow STORE if it is 22:49
jnthn Ah, hm
I guess that's not too bad
lizmat now, since an empty Set doesn't have the $!elems set 22:50
handling the case: my %h is Set; %h = <a b c>
is a problem
jnthn Yeah
I was wondering if we wanted two methods
Or a named arg to STORE 22:51
:initial or some such
lizmat now, if I bind an empty IterationSet in the Set, other places go wrong that assume the existence of the $!elems attribute means it has elements
jnthn That'd be more robust
Yeah. I think we need something explicit
To tell the target of the assignment if this is an initialization or a later assignment 22:52
This could be quite useful in a number of cases
lizmat ok, fair enough
that would simplify matters :-)
jnthn Since extra named args are ignored, we could do it that way without upsetting any existing implementers of STORE 22:53
lizmat yeah, I got that :-) 22:54
Line 6997 in Actions ? 22:55
hmm... 8760 perhaps ? 22:56
jnthn The initializer one, whichever that is 23:00
lizmat yeah, I think 8760 and 9790 23:01
8790
testing now
jnthn That's the signature case
At 8790 23:02
For "is copy"
github.com/rakudo/rakudo/blob/mast....nqp#L3159 23:03
Here, you'd need to pass some argument to assign_op
And then check that around 6997
lizmat ok
compiling... 23:06
jnthn: apparently, "my %h is Set = a => 42" is not passing by 3159 :-( 23:14
jnthn Hm, odd 23:22
I can't see why it wouldn't 23:23
lizmat hmmm... ok, something else weird going on then 23:24
$past := QAST::Op.new( 23:25
:op('callmethod'), :name('STORE'),
$lhs_ast, $rhs_ast);
+ if $initialize {
+ $past.push(QAST::IVal.new( :value(1), :named('initialize') ));
+ }
does that look right ?
jnthn Yeah 23:26
I mean, it'd probably be better if it was a QAST::WVal passing True 23:27
But that wouldn't stop it working
lizmat hmmm... 23:28
$past.push(QAST::WVal.new( 23:29
:named('initialize'),
:value($*W.find_symbol(['Bool', 'True']))
);
like that ?
apart from a missing ) 23:32
jnthn Yes
lizmat $past := assign_op($/, $past, $initast, :initialize); 23:38
that's also ok, no ?
jnthn Looks alright to me 23:46
lizmat hmmm... it's not coming into the @/% sigil case 23:50
jnthn: looks like if nqp::istype($lhs_ast, QAST::Var) { fails 23:53
Zoffix try $lhs_ast.isa(QAST::Var) 23:54
(that was the thing that was used in the actions stuff I was coding today) 23:55
lizmat not sure how that would make a difference, but I'll try
Zoffix nqp: use QAST; say(nqp::istype(QAST::Var.new(), QAST::Var))
camelia 1
Zoffix Ok nemeverind :)
ZofBot: look, I'm helping!
ZofBot Zoffix, Well, see you Monday, Bill
Zoffix calls it a night 23:56
\o
lizmat night Zoffix