Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
00:53 pierce_ joined 00:56 pierce_ left
Kaiepi oh i was thinking of supporting both jnthn 01:05
just maybe deprecating :localhost and :localport in 6.e and removing it in 6.f (or whatever the next release is called) 01:06
actually since i'm refactoring IO::Socket::INET anyway i might be able to give it the same api as IO::Socket::Async for creating sockets 01:08
since i'm doing similar changes to IO::Socket::Async and splitting creating sockets and binding/connecting thme
01:10 MasterDuke left 01:12 MasterDuke joined 01:13 MasterDuke left, MasterDuke joined 01:47 MasterDuke left
Geth rakudo: vrurg++ created pull request #2953:
Make v6.* work again.
02:08
06:14 Kaypie joined 06:15 Kaiepi left 07:32 patrickb joined
Geth ¦ rakudo: patzim self-assigned Rakudo no longer builds properly on OpenBSD github.com/rakudo/rakudo/issues/2904 08:24
¦ rakudo: patzim unassigned from vrurg Issue Rakudo no longer builds properly on OpenBSD github.com/rakudo/rakudo/issues/2904
09:16 AlexDani` is now known as AlexDaniel, AlexDaniel left, AlexDaniel joined 09:56 AlexDaniel left, AlexDaniel joined
jnthn grmbl, trying to tweak attribute initialization so we only need the attrinited stuff in some (a minority) of cases, and Mu.BUILDALL is a horror to refactor 10:59
11:02 |Tux| left 11:05 |Tux| joined
timotimo it's the big blob of nqp ops, right? 11:21
may want to parse it into a tree and work on the tree rather than with a text editor
11:38 Kaypie left, Kaypie joined 12:04 squashable6 left 12:07 squashable6 joined
jnthn timotimo: It is. Thing I've got it updated, anyway...now onto the code-gen path in World, then will see if any of this can work at all :) 12:12
*Think 12:15
dogbert17 are major opts in the works here? 12:51
12:53 pamplemousse joined
jnthn Well, work towards I guess :) 12:54
dogbert17 very cool 12:56
jnthn This should make the code we spit out in the JIT for attribute access a lot smaller in many cases, and probably will be a small object construction speedup.
But it'll also mean the escape analyzer can understand/deal with objects better too
dogbert17 sounds like a win win :)
jnthn Well, provided I can preserve all the semantics that matter to spectest along the way, yes :) 12:57
dogbert17 I guess there'll be a surprise or two when running the spectests 12:58
jnthn Hopefully none that scupper the whole effort... 12:59
dogbert17 we can't have that :)
sigh, today it's 27 degrees outside and the same temp inside
jnthn 26 out and 25 in the office, with thunderstorm forecast 13:00
I've got things unbusted enough to pass `make test` at least :) 13:01
dogbert17 that's very promising 13:02
jnthn I can't quite see the full fallout of things until I do the REPR protocol and MoarVM side of the changes, however 13:08
dogbert17 are those changes larger than the ones you've just made 13:10
jnthn In code, or in consequence? :) 13:16
In code, probably a bit less
The spectest has only a handful of failures, and there's some stuff I know is still to do to in theory pass it, so fingers crossed... 13:17
dogbert17 crosses fingers :) 13:19
13:26 Kaypie left, Kaypie joined
[Coke] waves 13:44
jnthn o/ [Coke] 13:49
Kaypie o/ 13:59
14:00 Kaypie is now known as Kaiepi
jnthn Hmm, if I change World.nqp I sometimes have to `make clean` to not get spurious failures in `make test`; it seems that changes there maybe ain't invalidating precomps. 14:11
Wow, 1 failing spectest as a result of my heap of changes...that's less than I expected 14:20
timotimo very cool
jnthn Didn't do the second stage (actually eliminating use of auto-viv) yet, but this is nearly all the prep in initialization for that 14:21
14:28 skids joined 14:53 pamplemousse left
Geth rakudo/p6o-setup: aecf4e86d2 | (Jonathan Worthington)++ | 5 files
Re-work object initialization

This greatly reduces the need for attrinited, paving the way for using it - and the implied attribute auto-viv - in only some very specific situations. An attribute only will need the auto-viv approach if both of the following are true:
... (16 more lines)
15:11
dogbert17 very cool 15:23
timotimo aye 15:29
15:36 ggoebel left 16:06 patrickb left
Kaiepi i'm adding support for getting free and total memory 16:50
seems weird to have kernel methods for cpu information but nothing for memory 16:51
timotimo is memory ever truly free … 16:56
ugexe well, what does memory even mean?
memory it can access? 16:57
memory of the system?
timotimo childhood memories? 16:58
ugexe im guessing the answer will be "whatever uv_get_total_memory does" :P
Kaiepi it means memory the system has access to yes 17:04
not physical memory
timotimo so you'll typically get a couple of terabytes for a 64bit machine? 17:06
or do 64bit machines already have access to petabytes? 17:07
ugexe i could have swore the libuv functions would return e.g. the host memory and not the memory available to the slave running the code
timotimo i think x86_64 doesn't actually have physical addresses 64 bits wide?
ugexe maybe thats changed though
timotimo aha, the initial x86_64 specified only 2^48 bits of physical addresses 17:09
ugexe hmm seems earlier this month it may have been made possible to pick which one 17:10
uv_get_constrained_memory()
github.com/libuv/libuv/issues/2286
although the implementation is currently about useless 17:11
uint64_t uv_get_constrained_memory(void) {
return 0; /* Memory constraints are unknown. */
}
for OSX^ 17:12
im not sure how wise it is to expose stuff like that
for internal moarvm use or something where its known, sure. but externally users are going to not be aware of these limitations, and even when they are its going to result in nasty platform specific code in libraries 17:13
so in that sense i would argue we should only expose uv_get_total_memory 17:14
oh its even more useless than i thought -- uv_get_constrained_memory only works on linux 17:16
timotimo ouch 17:17
Kaiepi m: use NativeCall; my CArray $mib .= new: 1, 5; my Pointer[int32] $mem .= new; sub sysctl(Str, uint32, Pointer, size_t, Pointer, size_t) is native {*}; sysctl($mib, 2, $mem, nativesizeof(int32), Pointer, 0); say $mem 17:19
camelia Cannot resolve caller protect(Lock:U: Block:D); none of these signatures match:
(Lock:D: &code, *%_)

5===SORRY!5=== Error while compiling <tmp>
Calling sysctl(NativeCall::Types::CArray, Int, NativeCall::Types::Pointer[int32], Mu, Nati…
17:20
Kaiepi what
m: use NativeCall; my CArray $mib .= new: 1, 5; my Pointer[int32] $mem .= new; sub sysctl(Str, uint32, Pointer[int32], size_t, Pointer[void], size_t) is native {*}; sysctl($mib, 2, $mem, nativesizeof(int32), Pointer[void].new, 0); say $mem
camelia Cannot resolve caller protect(Lock:U: Block:D); none of these signatures match:
(Lock:D: &code, *%_)

CArray cannot be used without a type
in method AT-POS at /home/camelia/rakudo-m-inst-1/share/perl6/sources/8660F65A7B3492675BB3B2058DB3…
ugexe sysctl is not going to get you accessable memory. it will get you total memory 17:21
Kaiepi ik
timotimo c: HEAD use NativeCall; my CArray $mib .= new: 1, 5; my Pointer[int32] $mem .= new; sub sysctl(Str, uint32, Pointer[int32], size_t, Pointer[void], size_t) is native {*}; sysctl($mib, 2, $mem, nativesizeof(int32), Pointer[void].new, 0); say $mem
committable6 timotimo, gist.github.com/3844b7e4bd58fc4250...a9045cbbd3
timotimo CArray cannot be used without a type
super strange error message though 17:22
Kaiepi m: use NativeCall; my CArray[int32] $mib .= new: 1, 5; my Pointer[int32] $mem .= new; sub sysctl(CArray[int32], uint32, Pointer[int32], size_t, Pointer[void], size_t) is native {*}; sysctl($mib, 2, $mem, nativesizeof(int32), Pointer[void].new, 0); say $mem
camelia Cannot resolve caller protect(Lock:U: Block:D); none of these signatures match:
(Lock:D: &code, *%_)

Cannot resolve caller protect(Lock:U: Block:D); none of these signatures match:
(Lock:D: &code, *%_)
in method create-optimized-c…
timotimo do note that camelia is a little behind on commits i believe 17:23
m: say $*PERL.version; say $*VM.version
camelia v6.d
v2019.03.110.g.081823.ffc
timotimo c: HEAD say $*PERL.version; say $*COMPILER.version; say $*VM.version
committable6 timotimo, ¦HEAD(bd2ceef): «v6.d␤Dynamic variable $*COMPILER not found␤ in block <unit> at /tmp/Wwx7kk6lbg line 1␤␤ «exit code = 1»»
timotimo c: HEAD say $*PERL.version; say $*VM.version
committable6 timotimo, ¦HEAD(bd2ceef): «v6.d␤v2019.05.36.ge.865.f.43.df␤»
ugexe on osx it simply deadlocks 17:25
timotimo nativecall? with a current version?
ugexe 2019.03.1 17:26
Kaiepi m: use NativeCall; my Pointer[void] $ptr .= new; my CArray[int32] $mib .= new: 1, 5; my Pointer[int32] $mem .= new; sub sysctl(Str, uint32, Pointer[int32], size_t, Pointer[void], size_t --> int32) is native {*}; sysctl($mib, 2, $mem, nativesizeof(int32), $ptr, 0); say $mem 17:27
camelia Cannot resolve caller protect(Lock:U: Block:D); none of these signatures match:
(Lock:D: &code, *%_)

5===SORRY!5=== Error while compiling <tmp>
Calling sysctl(NativeCall::Types::CArray[int32], Int, NativeCall::Types::Pointer[int32], M…
ugexe Stage parse : New type Sub+{Callable[Nil]} for Sub is not a mixin type 17:31
i just got that trying to rakudobrew build moar-blead
timotimo does rakudobrew need to "git submodule update"?
ugexe oh shit 17:43
vrurg timotimo: no, the first run of Configure.pl fetches submodule if finds no LICENSE file 17:44
ugexe er, not as bad as i thought
but its building into
/Users/nicklogan/.rakudobrew/versions/moar-blead-2019.03.1/
that isn't right
it should be just /moar-blead... why is it including a 2019.03.1 at the end? 17:47
Geth rakudo/p6o-setup: a3107d500c | (Jonathan Worthington)++ | src/Perl6/Metamodel/REPRComposeProtocol.nqp
Start initializing most attributes at creation

Rather than waiting for their first touch. As well as the expected cases that we need to exclude (BUILD + default or required), we also need to for now exclude non-P6opaque cases. This is actually a broad brush for the storage of arrays and hashes; we rely on the auto-viv there too
  (though will address that in future changes).
A handful of spectests are unhappy about this change, and will need a closer look.
17:50
rakudo/p6o-setup: 02afae9d5a | (Jonathan Worthington)++ | 4 files
Eliminate most non-construction use of attrinited

These were to blame for the spectest fallout after the object setup changes.
18:08
jnthn Whew, back to a clean spectest :)
Geth rakudo: e51d2adbef | (Vadim Belman)++ | 4 files
Make v6.* work again.

  - Also modifications like v6.*.*, or v6.a+, or v6.e.* or anything else
what Version accepts would work as expected. Contrary to incorrect behavior of older releases now the highest version available will be used. If compiler supports modifiers for a revision they are ignored unless a three-part version is used. I.e. ... (13 more lines)
18:19
rakudo: 1655e73ce0 | (Vadim Belman)++ | src/Perl6/World.nqp
Loose requirements, make v6.* match anything.

Followup to ugexe notes on rakudo/rakudo#2953
synopsebot RAKUDO#2953 [closed]: github.com/rakudo/rakudo/pull/2953 Make v6.* work again.
rakudo: 89f8f6046e | (Vadim Belman)++ (committed using GitHub Web editor) | 4 files
Merge pull request #2953 from vrurg/rakudo_2952

Make v6.* work again.
  - Also modifications like `v6.*.*`, or `v6.a+`, or `v6.e.*` or anything else
what `Version` accepts would work as expected. Contrary to incorrect behavior of older releases now the highest version available will be ... (12 more lines)
20:26 sivoais left 20:27 sivoais joined
japhb vrurg: Thank you for that; it gets my rebuild-all script much farther than it has in a while (by getting it past JSON::Unmarshal, which is a dependency of one of my usual installs). Of course, now the script sticks on NativeHelpers-Blob instead ... (github.com/salortiz/NativeHelpers-.../issues/9) 20:37
20:38 ggoebel joined
timotimo japhb: fortunately the problem in JSON::Unmarshal is only in a single one of the test files 20:40
japhb japhb: Right, but with vrurg's commit, it doesn't even break on that one file anymore. :-) 20:52
timotimo %) 20:53
21:14 skids left 21:16 Kaiepi left 21:53 Kaiepi joined 21:55 Kaiepi left, Kaiepi joined 21:58 Kaiepi left
Geth rakudo: patzim++ created pull request #2956:
Remove harmful stale files during build
22:21
22:45 Kaiepi joined 23:00 Kaiepi left 23:07 skids joined 23:15 Kaiepi joined 23:16 AlexDaniel left
vrurg japhb: welcome! :) 23:25
23:29 Kaiepi left 23:31 Kaiepi joined