00:01
agentzh joined
00:16
pyrimidine joined
00:34
pyrimidine joined
00:37
Ven joined
|
|||
IOninja | It's cause I don't know C and when I looked online at math lib it only had abs() for int. | 00:43 | |
Or rather stdlib | 00:44 | ||
00:51
pyrimidine joined
01:09
zakharyas joined
01:10
pyrimidi_ joined
01:28
pyrimidi_ joined
01:35
pyrimidi_ joined
01:46
pyrimidi_ joined
|
|||
IOninja | What's the worst environment do we support? Like if I wanted to test if it's OK to use that fabs thing for abs_n? | 01:48 | |
MSVC or something? Is that the worst? Is it free? | 01:49 | ||
IOninja goes to bed but will read the backlog | |||
02:04
pyrimidi_ joined
02:23
pyrimidine joined
02:40
pyrimidine joined
02:48
ilbot3 joined
02:58
dogbert11 joined,
pyrimidi_ joined
03:01
moritz joined
03:17
pyrimidi_ joined
03:35
pyrimidi_ joined
03:53
pyrimidi_ joined
04:10
pyrimidi_ joined
04:29
pyrimidi_ joined
04:47
pyrimidine joined
04:51
pyrimidine joined
05:06
pyrimidine joined
05:23
pyrimidine joined
05:40
pyrimidine joined
|
|||
samcv | i get some warnings if i compile with same extra options with gcc | 05:44 | |
but the warnings are only for the 3rdparty libraries that use `-pedantic` | |||
warning: ‘-pedantic’ is not an option that controls warnings [-Wpragmas] | |||
we don't use pedantic but some of the 3rd party libs do | |||
looks like libuv and libatomic_ops have it applied | 05:45 | ||
05:58
pyrimidine joined
|
|||
Geth | MoarVM: samcv++ created pull request #530: Enforce consistent commenting style |
06:03 | |
06:16
pyrimidine joined
06:24
pyrimidine joined
06:29
zostay_ joined
06:33
moritz joined
07:12
brrt joined
|
|||
brrt | good * #moarvm | 07:12 | |
07:25
pyrimidine joined
|
|||
timotimo | samcv: i think it has to be -fpedantic rather than -pedantic | 07:33 | |
yo brr | |||
samcv | may be timotimo | ||
07:47
brrt joined
08:27
pyrimidine joined
08:49
pyrimidine joined
08:52
pyrimidi_ joined
09:55
pyrimidine joined
|
|||
jnthn | morning o/ | 09:58 | |
timotimo | oh | ||
i *just* wrote a message for you on #perl6 %) | |||
jnthn | IOninja: You can get a free version of MSVC, though the easiest way to check if it supports a function is to google "<function name> msdn" to see if it's in their docs :P | 10:00 | |
msdn.microsoft.com/en-us/library/a...s.60).aspx suggests fabs is available, anyway | |||
landinghub.visualstudio.com/visual-...uild-tools to download the compiler | 10:01 | ||
Geth | MoarVM: a109b79391 | (Samantha McVey)++ | 6 files Enforce consistent commenting style Use /* */ instead of // // commenting is not part of C standards before C99 |
10:06 | |
MoarVM: 65972ecbce | (Jonathan Worthington)++ | 6 files Merge pull request #530 from samcv/comments Enforce consistent commenting style |
|||
samcv | morning jnthn | ||
jnthn | o/ samcv | 10:07 | |
samcv | something new i learned today. that // comments is not defined in standards before C99 | 10:08 | |
suprised me | |||
jnthn | Yeah, that's one reason I've stuck with /* */ :) | ||
I tend to use // for my debug comments | |||
samcv | yeah. some of our 3rd party ones use // | 10:09 | |
jnthn | 'cus they look out of place, so I spot them before I push :) | ||
samcv | so enforcing it would be a bad idea | ||
jnthn | Ah, k | ||
samcv | unless we can only do it for MoarVM itself but that's more work | ||
jnthn | Yeah, not worth the time when there's so many more important things to do :) | ||
dogbert11 | o/ | 10:12 | |
jnthn, did you see the result of my kludge-experiment yesterday? "jnthn: did an experiment, changing the last line of is_full_collect to 'return percent_growth >= MVM_GC_GEN2_THRESHOLD_PERCENT || promoted > some fixed value;' solved my problems with HARNESS_TYPE=6 TEST_JOBS=2 and running htmlify.p6 on my machine." | 10:13 | ||
samcv | really? | 10:14 | |
dogbert11 | yup | 10:15 | |
samcv | what is this some fixed value | ||
dogbert11 | I had set it to 30 meg when I tested | 10:16 | |
I also tried 135 megs which also worked | |||
samcv | so 3e7 ? | ||
dogbert11 | yes | 10:17 | |
samcv | kk | ||
dogbert11 | note that when mentioning htmlify I didn't use the --parallel option | 10:18 | |
samcv | OO::Monitors is good? should i try it out sometime? | 10:19 | |
dogbert11 | what's the preferred way to write something to stdout/stderr from within moarvm, I would like to print some data for later analysis? | 10:20 | |
samcv | i read the description and wasn't totally sure how I would use it. it seemed pretty abstract from the description | ||
fprintf(stderr, "whatever") | |||
dogbert11 | cool thx | ||
samcv | stdout won't go anywhere, well at least doing printf | 10:21 | |
never tried fprintf(stdout | |||
dogbert11 | good to know | ||
samcv | i get Tried to get the result of a broken Promise running htmlify.p6 | ||
gist.github.com/7be2ec5920f525f6aa...2a07e187b0 this is what i changed in MVM | 10:22 | ||
dogbert11 | are you using --parallel? | 10:24 | |
samcv | yep | ||
dogbert11 | or does the exception say something about ab path method | ||
samcv | gist.github.com/a6068059d446c8eda4...e408dd637d | ||
jnthn | dogbert11: Yeah, saw that, been pondering exactly what to do with this information. :-) | 10:25 | |
samcv | weird why did gist auto do a .rb file | ||
i just did gist -P | |||
oh well | |||
dogbert11 | jnthn, me too :) | ||
samcv | can you checkout all your gists? | 10:26 | |
it seems like they use git in the backend for gists but | |||
dogbert11 | It seems to me that rss is increasing much to rapidly in some cases which throws the percentage calculation off | ||
samcv: have never tried | 10:27 | ||
jnthn | dogbert11: I wonder if we should calculate an upper threshold based on amount of RAM in the host machine. | ||
samcv | are you running htmlify.p6 with --parallel=2? | ||
jnthn | "Fixed" upper threshold that is | ||
dogbert11 | samcv: I run it without --parallel, before that didn't work either due to running out of memory (am on 32 bit ...) | 10:28 | |
jnthn | samcv: I guess I'm biased 'cus I wrote OO::Monitors. :P It's just a way to write a class that acquires a lock on entry to any of its methods and releases it at method exit. | ||
samcv | oh ok dogbert11 | 10:29 | |
ah ok | |||
jnthn | samcv: Without actually having to manage the lock yourself | ||
Plus it supports condition variables | |||
samcv | so you can write a class with anything you want inside it? | ||
and it will have magical lockingness | |||
jnthn | Essentially yes, with the usual caveats | ||
samcv | that makes it much easier to understand then | ||
jnthn | (Caveats being stuff like: if you return mutable state to the outside world, all bets are off. And if you start calling monitors from monitors then you can create deadlock situations.) | 10:30 | |
dogbert11 | jnthn: sounds like an interesting idea | 10:31 | |
jnthn | (These aren't anything Perl 6 specific, just laws of nature, or whatever. :)) | ||
dogbert11: I think libuv has a function to get that info | |||
github.com/libuv/libuv/blob/v1.x/i...uv.h#L1388 | 10:32 | ||
dogbert11 | something like 'if (promoted > (physmem / some-cleverly-selected-value)) return 1 ? | 10:33 | |
jnthn | Something like that | ||
I don't have a food feel for the cleverly selected value though :) | 10:34 | ||
You're probably in a better place than I am to tune it :P | |||
samcv | pick a random number :) | ||
dogbert11 | would it be costly performancewise you think | ||
samcv | so what does this function we're talking about do? | ||
nvm reading the comment :) | |||
jnthn | :) | 10:35 | |
samcv | oh wait that's the one above it | ||
jnthn | samcv: We're discussing how we decide when to do full GC collections | ||
samcv | ok great | ||
jnthn | Which is costly | ||
samcv | for sure | ||
jnthn | So we try and be clever about it | ||
dogbert11 | I noticed yesterday when I used the hardcoded 30 meg limit that I lost ~5% perf when parsing the setting | ||
jnthn | Like, a better criteria here once won me 10% of CORE.setting parse time | ||
*off | |||
samcv | wow | 10:36 | |
dogbert11 | if the value was 135 meg the loss was much smaller | ||
samcv | so if that function always returns 0 will it never GC? | ||
jnthn | dogbert11++ has discovered the current behavior is sub-optimal on memory-constrained machines though. | ||
samcv | well never do full gc | ||
jnthn | samcv: Yes, which is a good way to go pretty fast until you run out of memory :P | ||
samcv | dogbert11, how much memory do you have | ||
dogbert11 | 3 gigs in my vm | 10:37 | |
samcv | ok so uhm | ||
how much other memory use by other programs | |||
going to set my ulimit to some value | |||
and try and build the docs | |||
dogbert11 which reminds me about the filehandle problem when running make spectest HARNESS_TYPE=6 and only one test job | 10:38 | ||
jnthn: I guess I will do some experiments and then write a PR unless you figure out something more clever in the meantime :) | 10:40 | ||
jnthn | Please do. I'm currently fixing the double-close-of-async-socket=SEGV issue | ||
And then need to go worry about $other-job for a bit. | |||
Where it's looking a bit like my internal prototype written in Perl 6 is suddenly at risk of escaping to actual users. :O | 10:41 | ||
dogbert11 | oops | ||
jnthn | As prototypes go it's pretty well written, and it's not CPU-bound, except the part that is which uses a native library. :) | ||
dogbert11 | which probably means that it's actually doing its job well | 10:42 | |
jnthn | It's decently reliable. :) | 10:43 | |
Like, I've not seen it fall in a heap for a long time. | |||
It found a few bugs in Rakudo/Moar that got patched. | |||
It's using supply/whenever blocks and Proc::Async a ton | |||
dogbert11 | is the SEGV bug you're fixing something you've found in your own code? | 10:50 | |
10:51
pyrimidine joined
10:52
pyrimidi_ joined
|
|||
jnthn | dogbert11: No, tony-o reported it yesterday | 10:59 | |
samcv | so it's only using 900MB for me right now | 11:00 | |
been running the docbuild for a while | |||
where in it does it take up most of the memory dogbert11 | |||
jnthn | use Test; my $t = IO::Socket::Async.listen("localhost", 5007).tap: -> $conn { }; my $conn = await IO::Socket::Async.connect("localhost", 5007); lives-ok { for ^5 { $conn.close; sleep 0.05; } }; $t.close | 11:03 | |
m: use Test; my $t = IO::Socket::Async.listen("localhost", 5007).tap: -> $conn { }; my $conn = await IO::Socket::Async.connect("localhost", 5007); lives-ok { for ^5 { $conn.close; sleep 0.05; } }; $t.close | |||
camelia | rakudo-moar a21d2f: OUTPUT«Unhandled exception: cannot close a closed socket» | ||
jnthn | That's the good case...note how it actually brings down the VM :/ | ||
(Fixed locally) | |||
m: use Test; my $t = IO::Socket::Async.listen("localhost", 5007).tap: -> $conn { }; my $conn = await IO::Socket::Async.connect("localhost", 5007); dies-ok { $conn.close; await $conn.write("42") }; $t.close | 11:07 | ||
camelia | rakudo-moar a21d2f: OUTPUT«ok 1 - » | ||
jnthn | use Test; my $t = IO::Socket::Async.listen("localhost", 5007).tap: -> $conn { }; my $conn = await IO::Socket::Async.connect("localhost", 5007); dies-ok { $conn.close; await $conn.write("42".encode("ascii")) }; $t.close | ||
m: use Test; my $t = IO::Socket::Async.listen("localhost", 5007).tap: -> $conn { }; my $conn = await IO::Socket::Async.connect("localhost", 5007); dies-ok { $conn.close; await $conn.write("42".encode("ascii")) }; $t.close | |||
camelia | rakudo-moar a21d2f: OUTPUT«Unhandled exception: cannot write to a closed socket» | ||
jnthn | That one did too | 11:08 | |
Moar tests | |||
samcv | jnthn, so if i have a string that's encoded it utf8-c8, can i just 'filename.txt'.IO.spurt($string, :encoding('utf8-c8')) or do i need to .encode('utf8-c8') | 11:09 | |
jnthn | That should work | ||
samcv | oh looks like i need to do the .encode | ||
jnthn | though the name may be :enc not :encoding | ||
samcv | oh | ||
yes it's :enc | 11:10 | ||
and :enc for slurp too i guess? | |||
jnthn | I sure hope so :) | 11:11 | |
samcv | commented github.com/MoarVM/MoarVM/issues/52...-278354329 | 11:12 | |
but still not sure how they are to URI-encode a utf8-c8 string :\ | |||
which is why i asked about how to extract the codepoints from that | |||
jnthn | m: use Test; my $t = IO::Socket::Async.listen("localhost", 5007).tap: -> $conn { }; my $conn = await IO::Socket::Async.connect("localhost", 5007); $conn.close; is $conn.Supply.list, (); $t.close | 11:14 | |
camelia | rakudo-moar a21d2f: OUTPUT«invalid argument in sub is at /home/camelia/rakudo-m-inst-2/share/perl6/sources/C712FE6969F786C9380D643DF17E85D06868219E (Test) line 139 in block <unit> at <tmp> line 1» | ||
jnthn | wat? | 11:15 | |
m: use Test; my $t = IO::Socket::Async.listen("localhost", 5007).tap: -> $conn { }; my $conn = await IO::Socket::Async.connect("localhost", 5007); $conn.close; is $conn.Supply.list, (); $t.close | |||
camelia | rakudo-moar a21d2f: OUTPUT«invalid argument in sub is at /home/camelia/rakudo-m-inst-2/share/perl6/sources/C712FE6969F786C9380D643DF17E85D06868219E (Test) line 139 in block <unit> at <tmp> line 1» | ||
jnthn | heh | ||
I wonder where on earth invalid argument came from | |||
Anyway, also sorted out :) | |||
Geth | MoarVM: 2b0739d85b | (Jonathan Worthington)++ | src/io/asyncsocket.c Sort out semantics of closed async sockets. * Further requests to close will have no effect, so close of an async socket is idempotent. Useful when people are doing timeout things that race with normal close. Previously could bring down the VM or even cause SEGV. * A write on a closed socket will properly signal the error through ... (7 more lines) |
11:21 | |
samcv | idempotent is a nice word | 11:23 | |
jnthn | :) | 11:24 | |
.oO( Idempotence is not a medical condition ) |
11:25 | ||
samcv | heh | ||
you sure? | |||
i am unconvinced | |||
jnthn | Not my joke, it's a well-known distributed systems paper :P | 11:26 | |
samcv | ah lol | ||
is death idempotent? | |||
jnthn | Depends how you define death, I guess... :) | 11:27 | |
jnthn does version bumps | 11:28 | ||
Hopefully this fixes the crash in HTTP::Server::I::Forgot::It's::Full::Name | |||
samcv | wonder what the name with the most :: on cpan is | 11:30 | |
longer than that | |||
jnthn | samcv: oh btw, you asked about how to get the codepoints; .NFC.list or .ords on a Str will get you the codepoints it's made up of | 11:32 | |
samcv | i know... but | ||
if it's a utf8-c8 encoded one | |||
it gets private use ones | |||
jnthn | Sure, but you can .encode('utf8-c8').decode('utf8') | 11:33 | |
samcv | but that gives you NFC? | ||
jnthn | Yes | ||
Ah, you want to go from bytes straight to a Uni | |||
samcv | i want the original codeponits | ||
yep | |||
very much what i want | |||
jnthn | Yeah, we didn't end up implementing that yet | 11:34 | |
It's not particularly hard to do | |||
samcv | that would be nice | ||
jnthn | Just need to figure out the API somewhat | ||
samcv | yea | ||
jnthn | :norm(Uni) was one idea | ||
Where :norm(Str) would be NFG | 11:35 | ||
And :norm(NFC) and :norm(NFD) work | |||
samcv | yea | 11:36 | |
jnthn | OK, that's the closed async socket stuff tidied up | 11:37 | |
Lunch now, then should do $other-task this afty I guess :) | 11:39 | ||
samcv | ===SORRY!=== Error while compiling: Variable '$other-task' is not declared | 11:42 | |
jnthn | Nice try :D | ||
lunch & | 11:45 | ||
11:51
pyrimidine joined
12:47
pyrimidine joined
12:51
geekosaur joined
12:53
pyrimidine joined
13:10
zakharyas joined
13:54
pyrimidine joined
|
|||
IOninja | Thanks (re links to stuff). I'll submit a better version of abs_n soonish | 14:07 | |
14:56
pyrimidine joined
15:11
brrt joined
15:37
brrt joined
15:49
pyrimidine joined
18:30
pyrimidine joined
|
|||
moritz | brrt++ # brrt-to-the-future.blogspot.de/2017...pdate.html | 18:59 | |
jnthn | brrt++ # nice post | 19:45 | |
TimToady | brrt++ # persistence | 19:46 | |
jnthn | That also :) | ||
19:55
pyrimidine joined
20:21
brrt joined
|
|||
timotimo | brrt: you spelled it "quant" rather than "quaint" i think? | 20:53 | |
brrt | oh, i think i did | 21:01 | |
thanks | |||
i'll fix it | |||
fixed :-) | 21:02 | ||
oh, the jit-data-section bit has been merged | 21:03 | ||
awesome | |||
that means i'm going to merge that into even-moar-jit | |||
did you know there is such a thing as preview merge in magit? (mind=blown) | 21:05 | ||
:-o | |||
damnit, get_label_for_obj is not implemented in the new jit.... | 21:14 | ||
21:26
pyrimidine joined
21:33
geekosaur joined
21:42
pyrimidine joined
|
|||
timotimo | i.m not sure i know what that is :) | 21:44 | |
21:52
pyrimidi_ joined
23:13
agentzh joined
23:59
pyrimidine joined
|