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