00:00:39  <microcolonel>cjd: for some definition of "works", as a newcomer I am shocked anyone gets anything done. I have barely implemented anything in my new target, and it has already needed to respond to codebase-wide changes.
00:01:06  <cjd>what's your target ?
00:01:18  <microcolonel>I rebase every time I get up to grab water
00:01:23  <microcolonel>cjd: working on a RISC-V target :- )
00:01:28  <cjd>coool
00:01:38  <cjd>sciv ?
00:01:48  <microcolonel>I don't really know what I'm doing, so it's been a wild ride
00:01:54  <microcolonel>I might end up working for them, SiFive
00:02:02  <cjd>right, sifive
00:02:03  <microcolonel>for now It's hobby work
00:02:07  <cjd>very cool
00:02:48  <microcolonel>I can totally understand why nobody has wanted to do this yet
00:02:51  <cjd>can you get away with doing only huge rebases every once in a while or does the code really just completely change ?
00:03:04  <microcolonel>it's not so much that it completely changes
00:03:24  <microcolonel>it's just that the signatures of calls into the targets change, and so do the semantics
00:03:39  <microcolonel>I also have to read most of the commit messages and some of the diffs
00:03:44  <cjd>oh cool, so it's open-source-or-die model
00:04:03  <microcolonel>definitely leaning on the die side, if you wanted to try maintaining it internally
00:04:10  <cjd>like if you don't land your changes, forget about it
00:04:15  <microcolonel>yeah
00:04:36  <microcolonel>which is why I'm trying to get it to a state where it'll pass all the tests, and run the RegExps in the interpreter
00:04:47  <microcolonel>then clean that up, upstream it, and fill in the rest as I go
00:04:51  <cjd>you have web assembly yet ?
00:04:57  <microcolonel>nowhere near
00:05:12  <microcolonel>I got something vaguely working another way, but it was such a mess I had no hope of understanding it
00:05:30  <microcolonel>I had to start over, ultimately
00:05:41  <microcolonel>now filling in and stubbing things as the compiler complains, until it compiles
00:05:43  <cjd>(I don't know how wasm is compiled so I didn't know if maybe it was just using the same backend as js)
00:05:44  <microcolonel>then filling in the simulator
00:05:56  <cjd>mhm
00:05:57  <microcolonel>yeah, well the JS these days goes to bytecode
00:06:05  <microcolonel>and that bytecode is processed by an interpreter
00:06:31  <microcolonel>however, that interpreter is written in the assembler system used by the compilers in v8
00:06:33  <cjd>hydrogen / lithium still a thing ?
00:06:40  <microcolonel>so in order to run the interpreter, you have to implement the assembler
00:06:44  <microcolonel>and some stubs
00:07:41  <microcolonel>cjd: I think the architecture is mostly completely different since that era
00:07:51  <microcolonel>well, except the assemblers are mostly intact
00:07:54  <microcolonel>still very different
00:08:01  <cjd>and it sort of symbolically executes the interpreter which outputs binary ?
00:08:11  <microcolonel>nah
00:08:17  <microcolonel>the assembler assembles the interpreter
00:08:19  <microcolonel>which runs as native code
00:08:40  <microcolonel>so basically you have to implement part of the JIT, so that it can assemble the interpreter
00:08:49  <cjd>ok
00:09:13  <microcolonel>which is, to my knowledge, an architecture unique to V8
00:09:18  <microcolonel>I find it very impressive personally
00:09:32  <cjd>I always assumed it was just jitting pages and pages of native code and jumping to them
00:09:45  <microcolonel>well, jitting from what
00:09:58  <cjd>bytecode + profiling data ?
00:10:02  <microcolonel>it starts as assembler macros written in C++
00:10:10  <microcolonel>AFAIK
00:10:20  <microcolonel>still can't tell honestly, there's a lot to take in, and not a lot of documentation that I can tell
00:10:38  <microcolonel>though there are locals who do it professionally and I might be able to get some coffee or lunch with them
00:10:52  <cjd>yeah
00:11:02  <cjd>that must be top of the top
00:11:12  <cjd>as far as software engineering
00:11:24  <cjd>even the linux kernel is something that a normal person can reason about
00:15:04  <microcolonel>well
00:15:07  <microcolonel>idunno
00:15:13  <microcolonel>I don't know if there are tops or bottoms
00:15:20  <microcolonel>just people who know and don't know specific things
00:15:53  <microcolonel>anyway, back to work for me
00:15:56  <microcolonel>too much procrastination
00:17:11  <cjd>good luck
00:18:02  * AtumTquit (Remote host closed the connection)
00:47:32  * bradleymeckquit (Quit: bradleymeck)
00:58:16  * xaxxonjoined
03:21:17  * plutoniixjoined
03:21:37  * plutoniixquit (Max SendQ exceeded)
03:22:05  * plutoniixjoined
04:18:01  * cloudshuquit (Quit: Connection closed for inactivity)
05:08:53  <trungl-bot>Tree closed by [email protected]: closed (https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20msvc/builds/1434 from 6574c66d72da720b7ddae5c058e27e3573a8de5a)
05:12:16  * xaxxonquit (Quit: xaxxon)
06:14:20  <trungl-bot>Tree opened by [email protected]: Tree is open (Automatic: ( ఠൠఠ ) )
06:44:42  * xaxxonjoined
08:05:11  * AtumTjoined
08:54:25  * xaxxonquit (Ping timeout: 260 seconds)
10:16:24  * plutoniixquit (Quit: Leaving)
11:25:11  * mylesborinsquit (Quit: farewell for now)
11:25:42  * mylesborinsjoined
19:08:38  * Cubejoined
19:20:28  * plutoniixjoined
19:21:09  * plutoniixquit (Max SendQ exceeded)
19:21:59  * plutoniixjoined
20:27:07  * Cubequit (Quit: Leaving)
23:22:15  * AtumTquit (Remote host closed the connection)