ANTS ideas

Status: integrating ANTS with 9front

Start from base 9front-hg Migrate to git, use new repo Redo git migration based off of upstream 9front git repo to keep in sync Finish integrating ANTS patches Add bootstrapping tool which only handles the base system Later, extend to utilize pkg to install arbitrary package sets Automatically generate 9front patchsets for manual review? Makes it easier to stay on top of bug fixes Write source-based package manager Alternatives - e.g. kencc vs c3c, netsurf vs mothra Defined as arbitrary git sources, with some named packages Specific mkfile targets required - all, clean, install, uninstall For purely-binary installs, dependency versions are tested, and deps are updated first (interactive prompt) Work on PDFFS Add heuristic-based text extractionDone! Add proper rendering Redo text extraction to use sorted glyphs Write new page which uses pdffs Add as alternative Define packages for a few big pieces of software in /sys/src (i.e. gs) Keep the majority of the system as a single repo branched off of 9front Possibly move some bigger pieces into a second repo to make creation of a minimal set easier Define 9front set - source+bin install generates identical install to 9front-tip Remove gs from base set when pdffs is far enough along Update scas Teach it new insn format Teach it plan9-syntax asm No. Bad. Integrate Add packages for scas and 9front assemblers as alternatives Port QBE and cproc Add as alternative to kencc Fix any issues compiling the base set Finish C compiler, c3c Add as alternative to kencc Don't generate plan9 syntax asm, generate a syntax for scas Hard-depends on scas, cannot be used with 9front assemblers Add interactive manpage viewer Launch on first boot with iman(1) open, link to intro manpages WM idea: Screen can be split into arbitrary rows and columns "Virtual panes" can be swapped to with Super+N for any N in [0,9] Swapping affects focused pane, which can be swapped with Super+Arrows or by mouse focus Same virtual pane can be shown in multiple "physical" panes for zeroxing "Virtual screens" contain groups of virtual panes, which can be pushed to a bidirectional navigatable stack /dev/draw multiplexing Graphical Application Segments (gasses) are defined as position, width, and height, with a bit to indicate tiled/floating Tiled gasses are tracked in a table to constrain movement / resizes

Editor idea

Editor communicates global conf changes over plumber to other editors
Avoid self-direction by checking source?
Editor seizes window to draw acme-like tag bar plus editor pane
unlike acme, keyboard shortcuts!
like acme, mouse interaction - searching, executing, plumbing, etc
No window management, unlike acme - leave that to the parent process!

Better solution: just improve acme. It's almost good enough for me already ☺
	Integrate with new WM?

Make new WM and editor default once confident they aren't buggy
Make scas and c3c default once confident they aren't buggy

Integrate zyg as system zig compiler
Integrate Myrrdin
	Add c3m myrrdin frontend, integrate as alternative?
		Don't need a frontend for everything ; save the grand plans for when more stuff works
Integrate c3 $redacted compiler

Add RK bootloader + kernel
	RK3328 initially, RK{whatever is in Quartz64} later, then maybe RK3399 for the pinebook pro

Integrate Lua/Lua9
	Rewrite some rc scripts - e.g. plan9rc
	Not an rc replacement, but a useful alternative for some tasks
	Maybe replace Lua if/when something better comes along, but NOT going to be the one to make it.

Add RK3328 hardware acceleration
	Video decode (integrated with treason)
	/dev/draw driver?

New venti implementation