Something like this perhaps (although this might be too much granularity):
(8 + (cap & 7)) << ((cap >> 3) + 1)
16 18 20 ... 30
32 36 40 ... 60
64 72 80 ... 120
128 ... etc.105 karma · joined April 22, 2015
Something like this perhaps (although this might be too much granularity):
(8 + (cap & 7)) << ((cap >> 3) + 1)
16 18 20 ... 30
32 36 40 ... 60
64 72 80 ... 120
128 ... etc.Amazing all those various silly spinning disk systems peppered throughout the magazine...and then buried on page 48 there's Philo T. Farnsworth[2] and his "scanning electric pencil"! Huzzah!
[1] https://worldradiohistory.com/Archive-Television-News/Televi...
https://archive.org/details/CompilerConstructionCourse_Dec83
Tiger Innovations is a small high technology company specializing in developing spacecraft and space-related systems for a broad range of US Government customers. We have an immediate need for real-time embedded Software Engineers and Computer Engineers. Created by and for engineers, Tiger Innovations values talent and curiosity over resume buzzword bingo.
If you are interested in working on challenging technical problems in a multi-disciplinary environment (i.e. cool stuff) then take a look at our ad and apply at:
Just recently, fragments of the earliest Unix OS source code and B interpreter were discovered [0]. Now, the earliest Unix for the PDP-7 and PDP-11 [1] can run under emulation thanks to the incredible efforts of Warren Toomey and others at the Unix Heritage Society [2].
[0] https://github.com/DoctorWkt/pdp7-unix
http://minnie.tuhs.org/pipermail/tuhs/2016-February/006622.h...
With the link:
http://www.tuhs.org/Archive/PDP-11/Distributions/research/Mc...
From the Readme:
The structure of the kernel source code is very similar to that of the 1st Edition Unix scan at
http://www.tuhs.org/Archive/PDP-11/Distributions/research/Dennis_v1/PreliminaryUnixImplementationDocument_Jun72.pdf
Here is what I can glean from the files:
01-s1.pdf contains the kernel source divided into sections S1 to S9
02-hw.pdf has hardware details of the PDP-7
03-scope.pdf has information about the PDP-7 scope
04-cas.pdf seems to be a user-mode program that uses the PDP-7 scope
05-1-4.pdf user-mode programs: adm, ald, apr, as
06-5-12.pdf user-mode programs: bl, bc, bi, cat, check, chown, chmod, cp, chrm
07-13-19.pdf user-mode programs: db, dmabs, ds, dsksav, dskres, dskio, dsw, init
08-rest.pdf user-mode programs: ed. Also at the beginning some B code (?)Tim Budd's "An APL Compiler" is a classic.
I love the goofy title of Mads Tofte's: "Compiler Generators What They Can Do, What They Might Do, and What They Will Probably Never Do"
Paid a handsome amount for these and many others at Reiter's Books back in the day!
So, in general I am saying that the road to better performance will not be in aggressive compiler optimization, but rather in higher level design tools to manage totally new software/hardware abstractions. Binaries will be specified at a higher level and look more like source code. At this point my crystal ball becomes admittedly a bit fuzzy.
Right now compiler writers are playing in a kind of local minimum (premature optimization as I said.) This may produce 3x-5x faster binary code today but also forces CPU manufacturers to retain backward compatibility causing them to also stay stuck in this local well. Eventually a new architecture is created (with 10x the registers etc.) and the cycle continues.
http://preccx.sourceforge.net/
This was long before I discovered the simple joys of squeezing out unnecessary CPU cycles from my own hand-rolled self-directed lexer/parsers.
I am currently designing a software-only CPU with sliding register window (128 entries) and dirt simple instruction set. The for/switch/loop emulator for it should be quite a bit faster than any emulated silicon CPU.