Took 2 paragraphs for me to guess the author ;)
HN user
skemper911
B->C->C++->D->Rust->Zig->ZZtop?
Seems like apple themselves had a good solution to this with one model of the iMac that supported use as an secondary monitor. Imagine if every laptop / iMac supported use as a secondary monitor.
Of course it would a big oops simile, but use after free isn't something that has happened to me in 40 years but I keep testing for it in other peoples code ;)
Macros, the ugly side of C, Rust. Shame Zig didn't come before rust, imagining kernel data structures written in Zig, brings a smile.
Right on point that kernel style C is its own unique world, with a steep learning curve, so lets add Rust with its own steep learning curve. Rust readability isn't any better than kernel C, guess I'm missing the 10,000 hours of reading Rust.
./KISS
Three of the greatest programmers I've experienced worked there, Peter, Tor, Raph. Hats off.
replacement seals are cheap $6
Convertible car, let in the fresh smog.
Digital Halftoning by Robert Ulichney
https://github.com/fonsp/Pluto.jl A julia notebook using observablehq underneath. Reactive with a git compatible file format, looks very promising.
Inconsolata ticks all the boxes for me
In rust this looks rather painful. Might I suggest trying this in Julia, might be a good comparison of performance, ease of use, and readability. Julia does a very nice job of compiling directly to SIMD instruction and lets you inspect the low level code generated.
inline function sin9_shaper(x) c0 = 6.28308759 c1 = -41.33318707 c2 = 81.39900205 c3 = -74.66884436 c4 = 33.15324345
a = abs(x - round(x)) - 0.25
a2 = a * a
((((a2 * c4 + c3) * a2 + c2) * a2 + c1) * a2 + c0) * a
endfunction gen_sinwave(freq, init=0.0, step=0.1) wave = [sin9_shaper(x) for x = init:step:freq] end
julia> @code_native gen_sinwave(1113.0); .section __TEXT,__text,regular,pure_instructions ; Function gen_sinwave { ; Location: REPL[60]:2 pushl %ebx decl %eax subl $48, %esp vmovaps %xmm0, %xmm2 ; Function gen_sinwave; { ; Location: REPL[60]:2 decl %eax movl $769501344, %eax ## imm = 0x2DDDA8A0 addl %eax, (%eax) addb %al, (%eax) decl %eax movl $773805120, %ecx ## imm = 0x2E1F5440 addl %eax, (%eax) addb %al, (%eax) vmovsd (%ecx), %xmm1 ## xmm1 = mem[0],zero decl %eax movl %esp, %ebx vxorps %xmm0, %xmm0, %xmm0 decl %eax movl %ebx, %edi calll %eax decl %eax movl $769544608, %eax ## imm = 0x2DDE51A0 addl %eax, (%eax) addb %al, (%eax) decl %eax movl %ebx, %edi calll %eax ;} decl %eax addl $48, %esp popl %ebx retl nopw %cs:(%eax,%eax) ;}
end # module