From 7757f5f9ac0595f2dfdd4a1a4a5b7f5c234bef54 Mon Sep 17 00:00:00 2001 From: AwesomeAdam54321 Date: Sun, 10 Mar 2024 08:50:02 +0800 Subject: [PATCH] inweb-bootstrap: Add description about the project. * README.md => README-inweb.md: Move old README here. * README: Add it. * TODO: Add it. --- README | 38 ++++++++++++++++++++++++++++++++++++ README.md => README-inweb.md | 0 TODO | 21 ++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 README rename README.md => README-inweb.md (100%) create mode 100644 TODO diff --git a/README b/README new file mode 100644 index 0000000..60146e6 --- /dev/null +++ b/README @@ -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. diff --git a/README.md b/README-inweb.md similarity index 100% rename from README.md rename to README-inweb.md diff --git a/TODO b/TODO new file mode 100644 index 0000000..a44d131 --- /dev/null +++ b/TODO @@ -0,0 +1,21 @@ +-*- mode: org; coding: utf-8; -*- + +#+TITLE: What's left to do? +#+STARTUP: content hidestars + +Copyright © 2024 Adam Faiz + + 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 +