01:33 Ven joined
samcv jnthn, I have Prepend marks working now! 01:38
\o/
almost FULL unicode 9.0 support 01:39
down to 7 failed tests out of 750 01:53
lowest ever!
02:48 ilbot3 joined 03:13 pyrimidine joined 03:27 pyrimidi_ joined 03:49 diakopter joined
diakopter samcv: good job with the ucd2c.pl work 03:50
samcv thanks
diakopter, how do i get MVM to print messages to console
for debugging
trying to get prepending characters working, when followed by characters that don't pass NFG_QC
diakopter trying to remember how I used to do it 03:54
samcv atm i'm just having it panic :P
but would be much more useful if it didn't halt every time
diakopter oh, with a formatted string? 03:55
samcv and we're going to have to change the value of ready = MVM_unicode_normalizer_process_codepoint_full
change it so 0 == normal, -1 == prepend and 1 == extend
diakopter, yeah with anything
idk what as long as i can print something
haha
would be nice if i could dump objects idk 03:56
should also allow us to support 3 character country symbols and such
err maybe i just have to printf to stderr 03:58
diakopter fprintf(stderr, "fmt string", args);
samcv kk
mst samcv: C and "dump objects" don't tend to go very well together 04:04
samcv yes
mst you can write gdb extensions in python apparently
and now I'm out of my depth
mst backs away slowly
diakopter waves hi to mst
04:12 pyrimidine joined
mst backs away faster 04:22
04:24 TimToady joined
diakopter mst: lolol 04:31
samcv going to write a function that will convert my new return values into what things were expecting before, so i can easily modify the return values to provide more information 04:37
since different cases call for it wanting more information or not, depending on what we're doing
and testing true/false will totally break 04:38
04:58 pyrimidine joined
samcv plus the functions modify the value of 'ready' anyway 04:58
would be really bad if was in the same variable
woeooo! 05:11
i did it
hopefully didn't break anything in the process
yep didn't break anything! now only failing 5 out of 744 unicode tests. well at least not in this part, i will have to test the other things 05:12
or people changed rakudo so roast didn't pass. updating 05:21
so we pass 100% of the unicode tests but otherwise moarvm is now randomly crashing on execution :P but if it doesn't crash everything works fine. and only crashes before actually running anything 07:02
mst, diakopter help me use perl6-m-gdb 07:05
dalek arVM/even-moar-jit: d9e1bf1 | brrt++ | src/jit/ (4 files):
Symbolic declaration of architecture constants

I apply a bit of macro trickery to declare architecture-specific constants like the set of available registers, and this limits that trickery to as few files and as few declarations as possible.
07:25
07:53 nine joined 07:55 camelia joined 08:20 nine joined, pyrimidine joined, camelia joined 08:27 pyrimidi_ joined 09:31 mst joined 09:37 domidumont joined 09:42 domidumont joined 09:53 pyrimidine joined
jnthn MVM_unicode_normalizer_process_codepoint_full re-using the ready flag as something non-boolean sounds...odd. :) 10:19
moarning, #moarvm 10:20
nwc10 good UGT, jnthn 10:21
10:27 pyrimidine joined
jnthn So, seems I start my year doing Perl 6 / MoarVM things :-) 10:30
samcv hi jnthn
heh
is that bad jnthn ? 10:31
jnthn hi, samcv
samcv designating negative values for special non-breaks
and positive for the ready one
jnthn It just feels like the wrong place to handle it 10:32
samcv hm
where else then?
jnthn A prepend should be part of a synthetic
samcv yeah
jnthn I think we should cope with that at synthetic assembly time
samcv don't I do that though too 10:33
jnthn Dunno, didn't read the patches yet :)
samcv oh ok
jnthn Just about to :)
samcv sweet
jnthn Figured I'd get updated builds of everything happening while I do so 10:34
samcv all the PR i've submitted are ready to merge. the bigger changes i have not yet PR
and both the open pulls (not the [needs rework one]) are separate from each other and pass all spectests 10:35
10:36 dogbert17 joined
samcv (well aside from that <:space> one) 10:36
well it fixes space :) but causes the test to fail. technically
jnthn Hmm 10:37
github.com/MoarVM/MoarVM/pull/477 seems to have 3 commits in besides the seemingly intended one? 10:38
Branched from wrong place maybe?
samcv oh it may
yeah hah oops
i think i was thinking you'd accept github.com/MoarVM/MoarVM/pull/476 first 10:39
the other one is on top of 475
jnthn Yeah, looking at 476 at the moment 10:40
samcv also that comment where i said i couldn't get that one thing working. i did get it working 10:41
er wait. idk i have so many branches
it passes all the spectests except <:space> i know that. so doesn't break anything not already broken 10:42
haha
jnthn About the normalize.c constants added at the top...where are the values from?
samcv ah yeah i did fix it. seeing the more recent commits
jnthn And would it be more robust to have ucd2c.pl spit them out?
samcv from the unicode_db.c
they always go in the same order. and yeah it would 10:43
but i was unable to get it done easily :\
but they are always in the same order
only will break on next unicode release (maybe) i think it's the order it sees them in the unicode .txt file
jnthn Hmm 10:45
Yeah, break on next update is what I'm worrying about
I'd really rather we somehow spit them out into unicode_gen.h
samcv it comes out in like. 7 months i think 10:46
hmm maybe will try more to try and get it to spit it out :\ 10:47
i couldn't do it last time
jnthn In theory they're already in unicode_property_value_keypairs, I'd think? 10:49
samcv yeah
jnthn heh, yes, even see them in there
{"Glue_After_Zwj",352321556}
:)
That number looks...uh...bigger than the ones you have though :) 10:50
samcv why does that matter?
what do i have
or are you looking in the enum number table not tho other one below it
10:51 brrt joined
brrt note to self: max number of refs in total is items_num * 4; one for each definition + 3 for each potential (maximal) use 10:52
this allows me to compute the necessary buffer size in one go 10:55
on the other hand, doesn't really work for ARGLIST things, since their buffer may be larger
can be counted separately, of course 10:56
jnthn samcv: Probably different numbers 11:00
samcv but yeah ucd2c.pl only outputs property name's not value's 11:01
i mean i think all the GCB properties have their own bool's but. that's dumb to look them all up separately :P
may even be able to eventually factor out some of the code that relys on some other ones and potentially calls many lookups to mostly use just that 11:02
jnthn 476 wasn't the one that changed MVM_unicode_normalizer_process_codepoint_full, correct? 11:03
samcv nope
uh
jnthn Uh, changed its return value I meant
samcv you mean the big changes i made
nope
jnthn Sorry, wasn't clear 11:04
OK
samcv don't have any PR yet that do that, just my own test branch
jnthn OK, 476 reviewed
And yeah, 477 seems to actually have 476 within it 11:05
But guess I can review the one commit 11:06
11:11 zakharyas joined
jnthn And the additional patch in 477 now also 11:11
samcv yeah 477 would be easy to rebase since they don't really touch the same things 11:13
jnthn Indeed
Figured there was no point waiting for that to review it though :)
samcv Just started at this for a while trying to spot what changed... The answer seems to be "nothing worth changing". 11:14
does this mean change it back? 11:15
or keep it in the changed state
jnthn I'd rather we didn't commit unneeded whitespace changes
I mean, if it's getting rid of trailing whitespace of accidental tabs its fine of course
*or
So yes, it's a small thing, but I'd appreciate it being changed back 11:16
jnthn tends to `git commit -p` so he can easily drop such changes from commits
(When they've resulted from tweaking code then realizing it didn't need tweaking but accidentally having changed it somehow) 11:17
samcv ah yeah
heh
i had to do a lot of tweaking :P
very much of that
jnthn <3 the -p flag on various git commands 11:18
samcv i have not used that before. nice! 11:19
jnthn Works on add, commit, checkout, stash and I think a couple of others too
samcv i always wanted to do that 11:20
heh
thanks for the tip
jnthn np :)
dalek arVM/utf8-c8-rewrite: 7a60fdf | jnthn++ | src/strings/utf8_c8.c:
Update comments describing UTF8-C8.

To match what it *should* be doing.
11:22
arVM/utf8-c8-rewrite: e4ede14 | jnthn++ | src/strings/utf8_c8.c:
Start re-doing UTF8-C8 non-streaming decode.

We don't try and trick a UTF-8 decoder with its own state model into playing along with your scheme; that proved fragile. Instead, just have our own decode loop where that need was thought out from the very start. Interestingly, this partial re-work that totally ignores
Spotted by JimmyZ++.
jnthn (Just a rebase on master)
samcv what you rebased master
err rebased it based on master 11:23
jnthn No, rebased that branch on top of latest master :) 11:24
(I was working on it last year before Chrsitmas :))
Now to see if I can finish it up :)
samcv nice
jnthn At last!! It's snowing \o/ 11:27
brrt \o/ 11:28
nwc10 but will it last until Christmas? :-) 11:33
jnthn Um...I think that'll take some large volcanoes going off to give us a super cold summer :) 11:35
samcv hah
jnthn So "probably not"
Oh, though
Potentially "yes"
nwc10 :-)
jnthn Since Christmas where my wife is from is actually in 4 days time :)
And there's more show forecast for the coming days ;)
*snow 11:36
nwc10 jnthn++ # spotted the trick question
jnthn This also raises all kinds of questions like "how long should we keep our Christmas tree up"? 11:41
brrt just prior to christmas, I learned that for Russians, it's actually called a new-years tree
nwc10 "until Easter" | "yes, but which?" 11:42
jnthn brrt: Yes, and gifts are given/opened at New Years 11:43
OK, lunch time :)
samcv is 'theirs' the HEAD when doing a rebase and 'ours' is what we're currently at? 12:05
i guess that sorta would sorta make some sense. but that's terrible words to use
jnthn Yes 12:17
And yes, it's a bit confusing
samcv jnthn, i've done all but having ucd2c.pl generate the #defs 12:18
brrt is just done with lunch 12:19
jnthn also :) 12:30
Plus written some new failing tests for the next thing I need to fix :) 12:31
samcv ok jnthn i think i will just make my own generation of the #def's instead of trying to use the build in one. and so it isn't in the same section as the other one 12:43
(as the property names) 12:44
jnthn samcv: That works for me...should still be more robust than hard-coding :) 12:45
Oh man, the streaming version of utf8-c8 is tricky 12:59
dogbert17 perhaps you should have gone for something simpler :-) 13:03
nwc10 Perl 3!
dogbert17 :-)
jnthn Just figured out how to make it less tricky :) 13:04
dogbert17 cool 13:06
if you manage to fix the utf-c8 problem there's is a 100% reproducible SEGV hiding in MoarVM issue #412, it even seems to involve GC .. 13:15
samcv jnthn, might as well be good that i am adding this to ucd2c.pl though 13:18
will be nice not having to do str_cmp and look up property values by their strings. int lookup should be faster
dogbert17 is afk for a bit 13:22
jnthn :) 13:25
samcv++
samcv tho they are pretty long 13:26
idk can we abbreviate them more
jnthn Long is OK I figure; they won't be that common 13:27
samcv MVM_UNICODE_PVALUE_GCB_E_MODIFIER
MVM_UNICODE_PVALUE_GCB_REGIONAL_INDICATOR 13:28
kk
i mean in the unicode stuff we check ccc and other things often
but i guess we can just do whatever
fine with me. will work for me
jnthn :) 13:32
heh, so utf8-c8 streaming mode just worked and passed tests first time. Which means I need more tests 'cus I know it's still partly busticated :)
samcv hah 13:34
lizmat jnthn: check with [Tux] on perl6-dev :-)
samcv but it's less broken?
jnthn Well, it's less broken on small inputs, but I hacked a buffer size just to see if that amount works. :D 13:35
And cheated in other ways
I know what tests need to come next, so it's fine :)
nwc10 jnthn: A week or two back I no-pasted an ASAN failure from running
(i-search)`make': nice make -j24
er,
samcv jnthn, so just the things you commented on, and then that PR is good?
:)
nwc10 no, this: m-spectest6 13:36
anyway, I got another
jnthn samcv: Those were the only things I spotted on review, yes
nwc10 which I suspect is the same root cause
[just in case your hard problem TODO list was getting too small :-(]
jnthn Got a paste of it? 13:37
13:38 Ven joined
nwc10 paste.scsys.co.uk/540454 13:39
and paste.scsys.co.uk/540455 13:40
Dec 23 and Dec 29 respectively
jnthn Aha 13:44
Yes, I know what those are :)
dogbert17 filed a MoarVM ticket with the same :)
Didn't decide yet how to fix it
nwc10 OK. Known cause is at least good. 13:45
jnthn wonders if that could cause corruption leading to the non-SEGV failure mdoe of m-spectest6
brrt memory corruption :-( 13:51
memory corruption makes you wonder if you should start writing Rust like the smug hipsters are telling you 13:52
so, question;
are algorithms useful interview questions; should interviewees be allowed to google during interviews 13:53
i have fairly strong opinions on the subject, but i'm wondering what you think
moritz brrt: algorithm interview questions are useful if the programmer will spend a signficant amount of time implementing such algorithms 13:54
brrt hmmm 13:55
moritz it might make sense to talk about consensus protocols when you're hiring somebody to implement consesus protocols in a distributed system
brrt alright. can I ask the interviewee for topological sort if he's to implement consensus protocols?
moritz there's much less value in talking about red-black trees for somebody how mostly implements CRUD web apps or boring CSV -> XML transformations 13:56
brrt: yes, I think that's a reasonable request
brrt hmmm.... i'm detecting something i'm going to call implicit leveling 13:57
"Sure, CRUD developers don't need to know all that complex stuff, those dear money-making fellows"
moritz something you can totally talk about is how to structure software, for any kind of software developer
brrt not saying you mean it that way; just that it's an implicit assumption
heh, there's something i think i disagree with, too 13:58
moritz there are tasks and positions for different levels, sure
brrt the tl;dr is that 'how to structure software' is highly dependent on the use / delivery / context of the software
and it's virtually impossible to have a decent discussiopn that actually recognizes that 13:59
moritz from a lead developer, I'd expect more understanding of algorithms and of architectures, for example
brrt hmmm
the counterpoint is
it's the CRUD developers that write code that is quadratic, oops, and bring down the money-making system 14:00
jnthn I find it interesting to get people to talk about topics they claim to know well.
(In interview)
samcv ok got that done :) now running spectests
brrt hmmm
that's actually a really good suggestion, i think
moritz brrt: that's what you have QA for, ideally
jnthn Then you can get a sense for how well/deeply they grasp and can discuss topics they've had a chance to research.
moritz that is, also load testing
(no, we don't have nearly enough of that ourselves)
brrt (neither do we)
moritz jnthn: that sounds like a good idea 14:01
jnthn had one person show up for an interview saying they had worked with some framework "since its BETA releases"
brrt wonders how this story will end
14:01 pyrimidine joined
samcv ^ 14:02
jnthn Well, I'd worked with it some too though not so long, so figured I'd start with some easy questions. We were a bit surprised when they struggled with those. o.O 14:03
(My co-interviewer knew the thing too) 14:04
On the other hand, other people who came for interview ended up teaching me interesting stuff about their favorite problem domains during the interview. :-) 14:05
And demonstrated they had dug deeply into it, and so - presumably - would be able to for other problem spaces too. 14:06
brrt i like that strategy a lot 14:07
i'm going to try it out some time :-)
the other counterpoint is that you could claim that knowledge of algorithms in general is not a very high barrier - especially in this day and age - and that having associative memory of algorithms, techniques and patterns is more valuable than the hypothetical ability to type in a pre-formed porblem 14:13
14:16 synopsebot6 joined
moritz brrt: algorithm knowledge tests bias towards people with formal education. Depending on your position and needs, that might or might not be desirable 14:17
samcv dammit now it's failing 2 tests :(
<:Greek> and one other script. this has happened before thoughā€¦
brrt on the other hand, 'formal education' is as light as 'a few hours of MOOC' these days 14:18
so while i understand that concern, i'm not sure it is as valid now as it was even a few years ago 14:19
moritz I think there are as many approaches to hiring as there are open dev positions :-) 14:20
we tend to ask about prior work, open source if available, and do a quick coding test (20min to 1h, depends) where the candidates an use google 14:21
and bring their own laptop and dev env if they want
samcv ok i regenerated and everything passed :) :P 14:23
jnthn /o\ :)
brrt that sounds indeed rather scary
samcv at least the two tests i tested before. so much ucd2c.pl :( will run a full spectest to be doubly sure 14:24
brrt moritz: I kind of agree.... there's more than one way to do it
samcv can't trust whenever i run the script it won't cock up something random i never had thought about
14:32 dogbert2 joined
samcv ok all good jnthn :) 14:39
jnthn Ready for re-review? :) 14:55
samcv yep! 14:56
jnthn OK. Think I'm seeing the light at the end of the tunnel with utf8-c8 15:01
brrt \o/d 15:02
samcv also what is utf8-c8 mean 15:04
different than UTF-8? assume stands for something but nothing online about it
jnthn samcv: It's the encoding we use for dealing with things like paths 15:07
The c8 means "clean 8-bit" 15:08
Essentially, "decode the thing into an NFG string using UTF-8, unless that would affect our ability to round-trip it"
So, if the thing isn't valid UTF-8, or if normalization would mangle it, then it uses a range of synthetics to carry the original bytes. 15:09
Except the version in master didn't properly guard against normalization, and had other issues due to being build atop of an encoder that assumed it was getting valid UTF-8, and got into a bit of a tangle 15:10
So after a couple of attempts to patch it up, I figured it was time for a clean start. 15:11
15:16 pyrimidine joined
samcv oh jnthn was wondering how to get the length of the strings so i can grapheme iterate 15:18
i didn't change it because i wanted to make sure wouldn't do something horrible and it get the grapheme length instead and mess things up 15:19
15:33 Dunearhp joined
jnthn Is this for the collation stuff? 15:36
Didn't you want by codepoint there?
samcv yeah the collation
not talking about the other one which is fine
i was asking about how to properly iterate by codepoint and not overrun the string on accident
jnthn OK, but you said grapheme iterate :) 15:37
Anyway, we don't store the length of the string in codepoints, but use MVM_string_ci_has_more to check if you're at the end
samcv ok sounds good 15:38
jnthn There's who sets of functions, those with _ci_ are codepoint iteration (you'll never see a synthetic, you get them as if you were iterating NFC), those with _gi_ are grapheme iteration (you'll get negatives for synthetics) 15:39
*two sets 15:40
15:40 brrt left
timotimo i'm super sick ATM :( 15:59
dogbert2 :( Grippe? 16:00
jnthn timotimo: Aww. :( Sorry to hear that.
Hope you'll be feeling better soon.
timotimo it's gastritis 16:02
includes the most torturous instance of hiccups i've ever had in my life
jnthn Well, that's no fun :(
timotimo no fun, and also no sleep
jnthn And no sleep is a no-fun multiplier :/
timotimo definitely 16:03
but it does seem like i got upwards of 5 hours of sleep today
jnthn spectests with his streaming utf8-c8 rewrite 16:06
Valgrind is happy with the tests, including the new ones I've added.
dogbert2 timotimo: get well soon 16:07
samcv nice jnthn 16:08
timotimo will try
jnthn I think "get well soon" has an implied "I hope you'll" on the front rather than a "Sheesh, you'd better"... :-) 16:09
timotimo ;) 16:10
i don't know how to properly respond ... maybe just "thanks"?
jnthn :)
dogbert2 have the hiccups stopped? 16:11
timotimo they just resumed
dogbert2 :(
timotimo they usually last 5 or 6 hours 16:12
and pauses usually last half an hour, it seems like
dalek arVM/utf8-c8-rewrite: 9720d32 | jnthn++ | src/strings/ (4 files):
Re-implement UTF8-C8 streaming decode.
16:14
arVM/utf8-c8-rewrite: 4974f97 | jnthn++ | src/strings/utf8_c8.c:
Remove now-dead code.
16:15
arVM: 7a60fdf | jnthn++ | src/strings/utf8_c8.c:
Update comments describing UTF8-C8.

To match what it *should* be doing.
16:16
jnthn There's a merge
16:17 dalek joined
jnthn samcv: So, I should look now at 476? 16:19
samcv if you haven't look since i updated it yeah
jnthn no, was busy on the utf8-c8 thing
Oh, but if I merge this and bump the revision we start failing something due to the <:space> test? 16:21
Or you wrote that comment before you re-ran it to get a pass?
Anyway, I'm happy with the changes :) 16:23
timotimo quite. samcv++
samcv just the <:space> test 16:24
jnthn Hmm
samcv which can't work except when it's actually broken. and space == LF == LF
jnthn I guess people will notice that...
samcv err LF == space
<ws>?
that works. so does White_Space 16:25
jnthn Well, will notice the fact the spectest fails I meant.
samcv well i'll todo it
jnthn OK
samcv when bumping the version
jnthn Alright, I'll merge
samcv yay
jnthn I want a version bump to get my stuff in too :)
samcv :)
dalek arVM: 5285ba6 | samcv++ | tools/ucd2c.pl:
Make sure we generate all values of the Line_Break property
MoarVM: 1b779d6 | samcv++ | / (3 files):
MoarVM: Implement Bidi_Mirroring_Glyph as an integer property
jnthn samcv++ 16:26
nwc10 you've really got it in for dalek today
16:26 dalek joined
jnthn samcv: You going to do version bump, or shall I? 16:26
samcv i can do it. :) 16:27
jnthn Nice 16:30
Then I can push my new tests and close an RT :)
16:35 travis-ci joined
travis-ci MoarVM build failed. Jonathan Worthington 'Remove now-dead code.' 16:35
travis-ci.org/MoarVM/MoarVM/builds/188278351 github.com/MoarVM/MoarVM/compare/2...74f97f5182
16:35 travis-ci left
jnthn orly? 16:35
no :) 16:36
bbiab 16:39
17:18 colomon joined 17:24 Ven joined
dalek arVM/even-moar-jit: c188330 | brrt++ | / (4 files):
Make register.c and linear_scan.c compileable

No need to be sloppy even if it's broken now
17:28
arVM/even-moar-jit: 703083e | brrt++ | src/jit/ (4 files):
Make the separator of register names configurable

Another way to do it would have been to remove the comma from the list and embed it in the macro, but that is actually quite fragile, and this is quite explicit I think.
17:32 leego joined 17:35 leego joined
nwc10 jnthn: ASAN no longer considers the spectests as worthy of honouring with barfage 17:40
(that would be a win)
jnthn Does that mean we're now fully clean? 17:41
17:53 tbrowder joined
nwc10 not everything passes 17:55
but nothing aborts with ASAN
18:05 lizmat joined
jnthn nwc10: Hm, curious, I get only some passing todos 18:12
nwc10 possible parallel testing race conditions 18:13
t/spec/S19-command-line/repl.rakudo.moar failed this one, but not when I run it again: 18:14
ok 8 - REPL with -M with non-existent module does not start
t/spec/S24-testing/3-output.t still fails:
not ok 4 - expected output with passing todo test
I've been abducted to read...
18:44 lizmat joined
notviki nwc10: 3-output.t should nwo pass 19:03
*now 19:04
nwc10: and repl one uses doesn't hang test that waits X amount of time before assuming test hung and failing it. If it often fails on your box you can set ROAST_TIMING_SCALE=2 or higher to make it wait longer 19:05
(3-output.t was broken for 46 minutes today, so you likely tested the broken copy) 19:06
19:31 pyrimidine joined 19:45 Ven joined
japhb .tell brrt Google's philosophy is that baseline SWE (SoftWare Engineer) requirements are the same across all subdisciplines, and then some jobs require additional skills. But baseline SWE is expected to have algorithms experience, solid coding in at least one language, architectural design skills, and so forth. Which is why it takes most of a day to interview for it -- and then why we do phone pre-interviews first. :-) 20:11
yoleaux2 japhb: I'll pass your message to brrt.
1 Jan 2017 21:33Z <jnthn> japhb: Thanks! Will likely get time to look at it in the next few days.
japhb jnthn: Ah, excellent, thank you. 20:12
notviki japhb: you work for Google? 20:13
geekosaur (aaaand that's why I chickened out of Google) 20:20
20:23 pyrimidine joined
japhb notviki: Yes. I'm an SRM (Site Reliability Engineering Manager) 20:23
notviki sounds fancy 20:25
japhb geekosaur: Don't chicken out! At the very least, you will have a fun day of discussing interesting engineering with a bunch of other good engineers. :-)
japhb shrugs
Not so much fancy, as "defined specialty"
20:28 kjs_ joined 20:47 kjs_ joined
jnthn japhb: Already started digging earlier today, fwiw. Left my notes on the ticket. 20:49
20:49 zakharyas joined
jnthn japhb: The trail points into Rakudo or MoarVM though, rather than OO::Monitors specifically. 20:49
21:00 Ven joined 21:21 Ven joined 21:35 Ven joined 21:43 kjs_ joined 21:45 dalek joined