00:08 AlexDaniel left 00:11 AlexDaniel joined 08:02 AlexDaniel left 09:05 apogee_ntv left 09:06 apogee_ntv joined
Geth nqp/main: e35f8ba03d | (Elizabeth Mattijsen)++ | tools/templates/MOAR_REVISION
Bump MoarVM to get object repossession fix
10:23
rakudo/main: f890e01c53 | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION
Bump MoarVM to get object repossession fix

Fixes #6507
10:52
rakudo/RakuAST-default: f0a2404146 | (Elizabeth Mattijsen)++ | 6 files
Make RakUAST default for core and programs

Specifying RAKUDO_RAKUAST=1 as before will work. Specifying RAKUDO_RAKUAST=0 or RAKUDO_RAKUAST= will switch back to using the legacy grammar for compilation of programs and modules.
This incorporates github.com/rakudo/rakudo/pull/6707
  (ugexe++) into a single commit with this change to allow for
a smooth transition in CI as well.
11:33
rakudo: lizmat++ created pull request #6710:
Make RakUAST default for core and programs
11:35
rakudo/RakuAST-default: 75efc97ca1 | (Elizabeth Mattijsen)++ | t/02-rakudo/m-flag-module-spec.t
Fix failing test in Windows CI, at least for now
12:19
rakudo/RakuAST-default: ef77b533f8 | (Elizabeth Mattijsen)++ | 7 files
Remove remaining macro tests
rakudo/RakuAST-default: 0563e019d9 | (Elizabeth Mattijsen)++ | lib/experimental.rakumod
Remove support for 'use experimental :macros'
rakudo/main: 5 commits pushed by (Elizabeth Mattijsen)++ 13:02
lizmat alea iacta est! 13:03
13:34 bisectable6 left, quotable6 left, bloatable6 left, committable6 left, coverable6 left, notable6 left, shareable6 left, tellable6 left, unicodable6 left, evalable6 left, sourceable6 left, huggable6 left, greppable6 left, releasable6 left, linkable6 left, benchable6 left, nativecallable6 left 13:39 bloatable6 joined, releasable6 joined, bisectable6 joined, benchable6 joined, linkable6 joined 13:40 committable6 joined, notable6 joined, sourceable6 joined 13:41 evalable6 joined, quotable6 joined, greppable6 joined, shareable6 joined, unicodable6 joined, nativecallable6 joined 13:42 huggable6 joined, tellable6 joined, coverable6 joined
[Coke] (Still trying to setup a windows build env on the new dual boot so I can at least do ad hoc testing as needed. 14:00
s/trying/going/
evalable6 Use of uninitialized value $_ of type Any in string context.
Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful.
in block <unit> at /tmp/RpHyIDdzo5 line 1
[Coke] Maybe not have evalable6 try to run that common idiom as code. :|
I'm getting a failure on the windows build on my new desktop that I've not seen before: 14:50
gist.github.com/coke/47420c7da9c57...cd77831bee 14:51
Maybe we're not passing the right build flags to zmij? 14:54
ugexe - did you testing include the updated zmij tweak? 14:55
ugexe github.com/MoarVM/MoarVM/commit/b5...de74cfe320 14:57
i would guess you are building rakudo with cmd.exe or something, and that it'd work if you used x86 command line tools prompt or whatever the hell that thing is called 14:59
releasable6 Next release in ā‰ˆ4 days and ā‰ˆ3 hours. There are no known blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 15:00
ugexe "Why it fails for them and not CI: the guard checks the OS, not the architecture, and interp.c never includes <intrin.h>/<immintrin.h>. _tzcnt_u64 is a 64-bit BMI1 intrinsic that doesn't exist in 32-bit MSVC, so the compiler falls back to an implicit extern declaration and the x86 cdecl leading underscore turns it into __tzcnt_u64 at link time. That extra underscore in the error is the tell — 15:01
they're doing a 32-bit x86 MSVC build. Note _tzcnt_u32 in bigintops.c linked fine in their build, which confirms the compiler recognizes the 32-bit form and only the 64-bit one is missing."
[Coke] I'm using developer powershell for VS 18 15:05
and in there, it's setup enough to use MSVC (in a non dev powershell, I get the ming tools that came along with... git, I think) 15:06
ugexe does it work if you use x64 Native Tools Command Prompt for blah bah blah 15:08
there is a x86 Native Tools Command Prompt for blah blah blah as well, and im wondering if one of those works 15:10
[Coke] there is an x64 command prompt (but not a powershell one, weird.) 15:11
one sec.
ugexe to be clear though it does seem like a moarvm bug. claude suggests we should have logic similar to this (github.com/MoarVM/MoarVM/blob/a6b3...c#L32-L47) for the function you are referencing 15:12
[Coke] yup, the command prompt environment got past that. 15:16
ugexe++
works. (now I have to setup my poewrshells to default to utf8) 15:21
ugexe: is your work to fix the MoarVM issue we noted in the AST blin runs in moarvm yet? 16:47
(the recent commit to MoarVM reminded me - not sure if that one *IS* that work) 16:48
ugexe the most recent commit to moarvm is the one that fixes like ~40 modules. you had included it in some prior ast blin runs but not the most recent one it looks like 16:52
[Coke] no, because it required a brnch in moarvm, nqp, and rkaudo to not impact main, and I was too lazy to keep doing that. 16:54
As soon as that's pulled into rakudo & built, will do another blin run.
will also kill the ast-specific repo 16:59
(of blin results) 17:00
lizmat m: use NativeCall; my size_t $a .= new # this wasn't a problem in legacy 17:54
camelia ( no output )
lizmat m: say Raku.legacy
camelia True
lizmat feels like camelia is stuck :-(
meh, already a 9 days ago 17:55
[Coke] c: 2c066074e1 e.say 17:56
committable6 [Coke], ¦2c06607: «2.718281828459045␤»
lizmat evalable6: use NativeCall; my size_t $a .= new # this wasn't a problem in legacy 17:57
evalable6 (exit code 1) ===SORRY!===
Can only compile an …
lizmat, Full output: gist.github.com/68efa16c442cb802fc...44b154d273
[Coke] c: HEAD use NativeCall; my size_t $a .= new 17:59
committable6 [Coke], gist.github.com/e54d6d76acbe0d781e...a99e0be6e5
ugexe why should that work? 18:00
m: use NativeCall; my $a = size_t.new;
camelia Cannot instantiate a native type
in block <unit> at <tmp> line 1
ugexe would you expect that to work?
lizmat ugexe: LibGit2 uses that syntax, and it works in legacy, breaks now 18:01
ugexe did it work? i think i just demonstrated it didnt 18:02
lizmat true, that didn't, but the case with .= did
m: use NativeCall; my size_t $a .= new; dd $a
camelia 0
ugexe either we accepts its wrong or we make native types instantiable which the error explicitly says is not something that can be done 18:05
lizmat it currently already says it is not something that can be done on HEAD 18:06
LibGit2 needs a PR and a release, will work on that
(and fork if necessary)
ugexe yes, im saying the fact .= new works on legacy is in conflict with the error message i showed when writing that .= thing in the more straightforward way 18:07
lizmat github.com/CurtTilmes/raku-libgit2/pull/11 18:37
Geth rakudo/main: 64c2f51fc8 | (Elizabeth Mattijsen)++ | src/Raku/ast/variable-declaration.rakumod
RakuAST: improve error trying to instantiate a native a bit
18:47
lizmat looks like MoarVM::Profile needs some TLC, will look at that later today or tomorrow 19:04
afk&
ugexe hmm, may have to thikn about this more 19:07
m: use v6.c; my Int:D $x .= new: 42
camelia You cannot create an instance of this type (Int:D)
in block <unit> at <tmp> line 1
ugexe m: use v6.d; my Int:D $x .= new: 42
camelia ( no output )
ugexe that sort of changes my mind and think that the legacy behavior actually isn't inconsistent 19:08
i'll take a look at it later 19:09
19:43 finanalyst joined 21:18 finanalyst left
lizmat m: my int $a .= new 22:15
camelia ( no output )
lizmat m: int.new
camelia Cannot instantiate a native type
in block <unit> at <tmp> line 1
lizmat "int.new" is an error in legacy as well, so why would "my int $a .= new" work 22:16
as that is just short for "my int $a = int.new"
ugexe it changed in 6.d to be on the default 22:29
github.com/rakudo/rakudo/commit/38b198c992 22:32
lizmat so you'd argue that "int" as a constraint is effectively Int:D ? 22:34
m: my int $a; dd $a
camelia 0
lizmat m: my Int:D $a; dd $a
camelia ===SORRY!=== Error while compiling <tmp>
Variable definition of type Int:D needs to be given an initializer
at <tmp>:1
------> my Int:D $a<HERE>; dd $a
expecting any of:
constraint
lizmat anyways, bed time for me :-) 22:35
ugexe it might be that change didn't consider natives at all 22:37
my int $a = (my int $).new 22:38
that is basically what legacy does^
for a `my int $a .= ne`
m: class A { has int $.x .= new }; say A.new 22:40
camelia Cannot instantiate a native type
in method at <tmp> line 1
in block <unit> at <tmp> line 1
ugexe hmm, it seems like only `my` declarations in legacy worked that way 22:41
i officially change my mind again, the rakuast behavior seems more consistent