From 07a43ec54e1a51f1a363af95b534c91cfcad69c0 Mon Sep 17 00:00:00 2001 From: Ludovic 'Archivist' Lagouardette Date: Wed, 8 Oct 2025 02:53:58 +0200 Subject: [PATCH] Updated the documentation a little --- README.md | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 412aaf3..cd70a91 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,12 @@ # `ink` +> *Any information here is subject to change and may already not be inaccurate anymore* + +> *Here be dragons, you may have dug too deep* + `ink` is a minimalistic interpreted programming language, tentatively implemented exclusively in C89. It features -coroutines and can currently only manipulate integers. Part of the code may not be compliant with C89 and I will try to -fix that in time. +coroutines and can currently manipulate integers and arrays of integers, which can be interpreted as strings of Unicode +codepoints. Part of the code may not be compliant with C89 and I will try to fix that in time. It is fully self-contained and doesn't rely on a working standard library beyond the following: @@ -31,6 +35,26 @@ It is possible to segregate unsafe allocations (allocations that should be hidde - Functions have a count limit 128 labels (see `ink_parse`) - Only non-main functions can use labels +## Roadmap + +- Greater homoiconicity + - Can get a list of the words + - Can get words as arrays + - Can execute arrays as words + - Can manually create or modify + - Can read a routine program stack + - Can read a routine instruction counter stack + - Can read a routine stack + - Can set a routine status +- Word redefinition (with a flag) +- 9front port + - 9front shell +- Shell able to run external program and parse IO from other programs +- Shell can import files (requires waiting for a routine in a routine) +- Waiting for another routine +- Executing other routines +- Move shell words to base implementation *iff* they do not have any external dependency (e.g.: `version`) + ## Examples ### Hello World