inweb-bootstrap: Add description about the project.

* README.md => README-inweb.md: Move old README here.
* README: Add it.
* TODO: Add it.
This commit is contained in:
AwesomeAdam54321 2024-03-10 08:50:02 +08:00
parent 8e12e9c701
commit 7757f5f9ac
3 changed files with 59 additions and 0 deletions

38
README Normal file
View file

@ -0,0 +1,38 @@
-*- mode: org -*-
Inweb-bootstrap is a fork of [[https://github.com/ganelson/inweb][Inweb]] that aims to be [[https://bootstrappable.org/][bootstrappable]].
Rather than relying on a pre-generated inweb.c to build itself,
it will instead be properly built from the source code and an
understandable build system.
* Requirements
- noweb (noweave, notangle and cpif)
- texlive-scheme-basic (pdflatex)
* Installation
autoreconf -vif
./configure && make && make check && make install
* How It Works
Inweb is written in its own literate programming(LP) markup syntax and C dialect.
The markup syntax is 1:1 with noweb's syntax excluding the fancy features.
The InC dialect is very similiar to C++, but has a lot of syntactic sugar
for declarations and importing headers.
Inweb-bootstrap will use noweb as the LP markup syntax and C++ as the source code
programming language since it requires the least amount of work.
* Contact
Patches that help with bootstrapping Inweb are greatly appreciated,
especially with making the source code valid C++.
The patches can be sent to Inweb-bootstrap's maintainer.
* Inweb & Inweb-bootstrap
Once Inweb-bootstrap is complete, hopefully the upstream Inweb project
will use it as the official way to build Inweb.

21
TODO Normal file
View file

@ -0,0 +1,21 @@
-*- mode: org; coding: utf-8; -*-
#+TITLE: What's left to do?
#+STARTUP: content hidestars
Copyright © 2024 Adam Faiz <adam.faiz@disroot.org>
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
* Understand the build process
* Figure out the dependency graph of Foundation and Inweb
* Split into header sections and implementation sections
* Desugar InC into C++
* Scope declarations
* Enums
* Implement the build rules
* Write the build rules in Makefile.am
* Use foundation-test as a test suite