My professor for Compilers 101 in grad school tasked us with working on an Ada subset compiler. I work best alone, but he insisted on making me work on a team. My experience with "teams" in college was a couple of us doing the work, and others claiming, "We worked on the organizational aspects and wrote some tests, so we didn't have much time for meetings or coding." Anyway, punster that I am, I told the prof that our team was the "NOOPs" (we spelled it differently back then).<p>So my group's project was writing the VM in C, and only two of us contributed as predicted. Our VM passed the prof's test suite (actually written by our adversary, "Team Lambda", IIRC). So I have a "It all started with a NOOP" story too.<p>This prof really was a genius himself and an expert in his field. He introduced many of us to the wisdom of Knuth. Our professor once recounted a story about having written an earnest letter to Knuth asking, "I know you are busy, but do you have time to do a lecture on compilers for my class?" He received back in the mail the original letter and envelope, enclosed in another with the "I know you are busy" underlined. My puns are kind of dumb, so I'm not sure he ever understood what I meant. He did ask us what our individual contributions were, and proof there of. My teammate followed me to State U.'s security headquarters begging for some of my test cases.<p>Have a nice day everyone!
The Vivante family of 3D GPUs are available as IP cores, developed by the same named company[1].<p>Vivante GPUs are used in some ARM SoCs like the NXP i.MX6 and i.MX8.<p>Etnaviv is the name of the reverse engineered FLOSS Mesa driver. It's support for OpenGL/ES features is sadly lagging quite a bit behind[2].<p>This article discusses shader compilation and <i>ISA documentation</i> in the Mesa driver using auto-generated code from a high-level, formal specification of the instruction set (in XML), rather than a tons of hand-written C code. A merge request for auto-generated ISA documentation is currently pending [3].<p>[1] <a href="https://en.wikipedia.org/wiki/Vivante_Corporation" rel="nofollow">https://en.wikipedia.org/wiki/Vivante_Corporation</a><p>[2] <a href="https://mesamatrix.net/" rel="nofollow">https://mesamatrix.net/</a><p>[3] <a href="https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23763" rel="nofollow">https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23...</a>
At a previous employer we generated assemblers and disassemblers for various DSP cores based on an Excel spreadsheet that the software tools team shared with the processor architects. The spreadsheet cells described the layout of the various instruction fields; this was converted with a script to an architecture description DSL, from which the assembler, disassembler, and other tools could be generated. Another DSL described the pipeline stalls and hazards, and code generated from the combined descriptions drove instruction schedulers and code checkers.
Alastair Reid has also done quite a bit with formal verification and specification of the ARM instruction set:<p>See <a href="https://alastairreid.github.io/using-asli/" rel="nofollow">https://alastairreid.github.io/using-asli/</a> and cross-references there in
How does isaspec affect the effort to get better OpenGL/ES support?<p>I'd like to use FF webrender on a device that uses the GC7000Lite. Without webrender a lot of the web just takes too long on layout.