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.dDynamic 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.dv2019.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
|