summaryrefslogtreecommitdiff
path: root/spec/Appendices.md
diff options
context:
space:
mode:
authorKai Gunger <kgunger12@gmail.com>2025-11-23 01:40:52 -0500
committerKai Gunger <kgunger12@gmail.com>2025-11-23 01:40:52 -0500
commit72ff4422208b096e7374768ae49f050b8457f361 (patch)
treea02d83908d1cd829b31d180a46f5a8330fc1481f /spec/Appendices.md
parentd20df58b6b7cbceb9b7586e974aec652d830711f (diff)
Update spec (unfinished)origin
Diffstat (limited to 'spec/Appendices.md')
-rw-r--r--spec/Appendices.md39
1 files changed, 35 insertions, 4 deletions
diff --git a/spec/Appendices.md b/spec/Appendices.md
index 7904af5..924be70 100644
--- a/spec/Appendices.md
+++ b/spec/Appendices.md
@@ -23,8 +23,6 @@
; - beginning of statement, end of previous statement
- : - beginning of pre-processor statement, end of previous
-
# - line comment, ends at newline
@@ -297,8 +295,41 @@ NOTE: Static structs *can* allow generics so long as they do not store said gen
Variable width structs (dynamic structs) can accomodate generics and variable width members. Dynamic structs may extend static structs or other dynamic structs. By extending a dynamic struct, even if one makes no use of the dynamic members, their struct is automatically a dynamic struct. These structs offer the least control over memory, and slightly slower call times, but offer the most flexability to the programmer.
+## Appendix D - When can I use...?
+
+### Core Language
+
+The core language encompases what you would expect from any C-like language:
+- Modules
+- Variables
+- Enums
+- Types
+- Functions
+- Methods
+- Interfaces
+- Scalar Operators
+- Control Flow
+- Anonymous Functions
+- Inline Assembly
+- Interop with C ABI
+
+### Advanced Language Features
+These may depend on support from `libtnsl`, though they are still considered "standard" and any complete implementation of TNSL must include them.
+The table below shows what parts of the standard library must be present for the features to work as designed:
+
+| Feature | libtnsl - `reflect` | libtnsl - `thread` | libtnsl - `stream` |
+| --------------- | ------------------- | ------------------ | ------------------ |
+| Runtime type reflection | Yes | - | - |
+| Threads | - | Yes | - |
+| Mutex | - | Yes | - |
+| Coroutines | - | Yes | - |
+| Generators | - | Yes | - |
+| Loop over Generator | - | Yes | - |
+| Stream | - | - | Yes |
+| Stream Operators | - | - | Yes |
+| Loop over Streams | - | Yes | Yes |
-## Appendix D - UN7+1
+## Appendix Z - UN7+1
Unicode Non-standard 7+1 bit (UN7+1) encoding is a non-standard way to represent any unicode character using a series of 8-bit values. The first bit in the 8-bit sequence represents if the next 8-bit sequence is included in the character code, the other seven bits are part of the character code.
@@ -317,4 +348,4 @@ Examples:
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. \ No newline at end of file
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.