1
0
Fork
You've already forked ksimple
0
simple k, after kparc
  • C 93%
  • KCL 4.7%
  • Makefile 2.3%
2026年05月26日 08:13:30 +02:00
doc doc/types: Init 2026年05月26日 08:13:30 +02:00
ref @9e78504684 Add kparc/ksimple as submodule 2026年04月13日 17:10:22 +02:00
.gitignore Add Makefile 2026年04月13日 17:10:22 +02:00
.gitmodules Add kparc/ksimple as submodule 2026年04月13日 17:10:22 +02:00
a.c No nested arrays for now 2026年05月25日 17:08:36 +02:00
a.h No nested arrays for now 2026年05月25日 17:08:36 +02:00
LICENSE initial commit 2026年04月13日 17:10:22 +02:00
Makefile Add tiny testsuite 2026年05月15日 10:45:47 +02:00
README.md doc/types: Init 2026年05月26日 08:13:30 +02:00
t.k Add tiny testsuite 2026年05月15日 10:45:47 +02:00

K

Note

A fork of the venerable ksimple.

After studying the original code obsessively, I figured it was about time to try and change some stuff myself; this repo is the result of that. Eternally WIP.

Layout

a.c the whole thing a.h common header
t.k tests

TODOs

What follows are the suggested exercises of ksimple, and how far along I am.

i'm too young to die:

  • inspect verb implementations provided by atw for edge cases, and add checks (which are intentionally omitted)
  • implement a few more simple verbs, e.g. dyadic divide f%x. [Added f%x and &X; more to probably come]

hurt me plenty:

  • [~] extend maximum vector length to MAX_UINT
  • [1/3] find and fix at least three segfaults

ultraviolence:

  • [~] change base type from 8bit integer to long
  • fix tokenizer to support integer numerals greater than 9 and less than 0
  • fix tokenizer to support efficient direct vector input (e.g. 42 57 120 instead of 1,2,3,4)

nightmare:

  • implement a simple parser (e.g. to support quoted strings and parens)
  • implement nested vectors, and monadic verb flip aka transpose
  • make vector arithmetic penetrating
  • implement copy-on-write
  • implement floating point type
  • implement functions and local scope
  • [~] implement a test suite for your k