sd:runtime_library_notes
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| sd:runtime_library_notes [2026/06/11 04:39] – appledog | sd:runtime_library_notes [2026/06/16 02:51] (current) – appledog | ||
|---|---|---|---|
| Line 21: | Line 21: | ||
| * Next I created the above directory. | * Next I created the above directory. | ||
| * I will have to modify vc4 to look in ~/.vc4 if the files it needs are not in the pwd. | * I will have to modify vc4 to look in ~/.vc4 if the files it needs are not in the pwd. | ||
| + | |||
| + | == Fleshing it out | ||
| + | Many standard implementations reveal deficiencies in instrinfo and iseltargetlowering. | ||
| + | |||
| + | == Test Suite | ||
| + | I collected all the tests into one file. | ||
| + | |||
| + | == Roadmap | ||
| + | * putchar.sda (the only assembly only file so far -- similar to tinyc v1) | ||
| + | * print_str | ||
| + | * print_dec | ||
| + | * lib1 (stuff for missing instructions) | ||
| + | * libctype | ||
| + | * libstr | ||
| + | * libstdlib | ||
| + | |||
| + | then | ||
| + | |||
| + | * stdint.h, limits.h, stddef.h, stdbool.h | ||
| + | * stdalign/ | ||
| + | * finish string.h (memchr, strncat, strpbrk, strspn, strcspn, strtok) | ||
| + | * safe-string extras (strlcpy/ | ||
| + | * div/ldiv, rand/srand, qsort/ | ||
| + | * official puts/ | ||
| + | |||
| + | Roadmap which requires additional development: | ||
| + | |||
| + | * malloc/ | ||
| + | * then strdup/ | ||
| + | |||
| + | Phase III | ||
| + | * stdarg.h for varargs and formatted output. very high value target (enables printf) | ||
| + | * printf/ | ||
| + | |||
| + | Later: | ||
| + | * compiler-facing primitives LEA, MOVSX, CMOV, get CASETAB to emit. | ||
| + | * 64-bit integers. __muldi3, __udivdi3/ | ||
| + | |||
| + | Floating Point Roadmap: | ||
| + | * Start writing math.h and see what happens. | ||
| + | * strtod/ | ||
| + | |||
| + | File IO Roadmap: | ||
| + | * fopen/ | ||
| + | |||
| + | Other: | ||
| + | * time.h, calendar math, binding time() to the hardware clock | ||
| + | |||
| + | * Graphics and Sound libraries | ||
| + | * access to PPU and ASU | ||
| + | |||
| + | == Arena Allocator | ||
| + | "A growable, chunked, monotonic region allocator." | ||
| + | |||
| + | This is very similar to the NVAR system I wrote for BASIC. Hanson uses " | ||
| + | |||
sd/runtime_library_notes.1781152775.txt.gz · Last modified: by appledog
