resnik 1.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. resnik-1.0.1/.gitignore +90 -0
  2. resnik-1.0.1/CHANGELOG.md +75 -0
  3. resnik-1.0.1/LICENSE.md +674 -0
  4. resnik-1.0.1/PKG-INFO +363 -0
  5. resnik-1.0.1/README.md +318 -0
  6. resnik-1.0.1/SECURITY.md +71 -0
  7. resnik-1.0.1/docs/BACKGROUND.md +100 -0
  8. resnik-1.0.1/docs/CYCLIC_EXECUTIVE_DESIGN.md +142 -0
  9. resnik-1.0.1/docs/DESIGN.md +86 -0
  10. resnik-1.0.1/docs/EMBEDDED_TARGETS.md +245 -0
  11. resnik-1.0.1/docs/HAL-S-Language-Users-Guide/resnik-language-users-guide.md +30 -0
  12. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/abort_monitor/abort_monitor.hal +31 -0
  13. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/aldrin_sys_exec/aldrin_sys_exec.hal +30 -0
  14. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/array_math/array_math.hal +21 -0
  15. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/attitude_control/attitude_control.hal +88 -0
  16. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/attitude_err/attitude_err.hal +15 -0
  17. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/attitude_math/attitude_math.hal +20 -0
  18. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/basic_math_test/basic_math_test.hal +45 -0
  19. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/bit_assembler/bit_assembler.hal +17 -0
  20. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/bit_layout/bit_layout.hal +54 -0
  21. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/bit_manipulation/bit_manipulation.hal +32 -0
  22. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/branch_inference/branch_inference.hal +26 -0
  23. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/buffer_search/buffer_search.hal +36 -0
  24. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/cat_dec/cat_dec.hal +46 -0
  25. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/char_pad_length/char_pad_length.hal +36 -0
  26. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/cmd_decoder/cmd_decoder.hal +28 -0
  27. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/cmd_parser/cmd_parser.hal +18 -0
  28. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/compile_time_math/compile_time_math.hal +25 -0
  29. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/compool_fault/compool_fault.hal +36 -0
  30. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/cve_monitor/cve_monitor.hal +15 -0
  31. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/dangling_else_trap/dangling_else_trap.hal +20 -0
  32. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/data_pipeline/data_pipeline.hal +38 -0
  33. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/dma_telemetry/dma_telemetry.hal +43 -0
  34. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/dynamic_slicing/dynamic_slicing.hal +22 -0
  35. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/escape_vel/escape_vel.hal +41 -0
  36. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/euler/euler.hal +43 -0
  37. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/event_gateway/event_gateway.hal +29 -0
  38. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/exec_cancel_cycle/exec_cancel_cycle.hal +26 -0
  39. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/exec_event_latch/exec_event_latch.hal +29 -0
  40. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/exec_oneshot_delay/exec_oneshot_delay.hal +22 -0
  41. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/exec_priority_chain/exec_priority_chain.hal +36 -0
  42. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/exec_terminate_forms/exec_terminate_forms.hal +25 -0
  43. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/exec_two_rates/exec_two_rates.hal +23 -0
  44. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/first_contact/first_contact.hal +78 -0
  45. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/for_semantics/for_semantics.hal +55 -0
  46. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/gn_and_c/gn_and_c.hal +107 -0
  47. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/gnc_correction/gnc_correction.hal +25 -0
  48. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/goto_token/goto_token.hal +31 -0
  49. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/group_multiply/group_multiply.hal +29 -0
  50. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/hello_word/hello_world.hal +3 -0
  51. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/hw_interface/hw_interface.hal +32 -0
  52. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/hw_interface/i2c.c +46 -0
  53. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/integer_arith/integer_arith.hal +45 -0
  54. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/jstar_telemetry/jstar_telemetry.hal +24 -0
  55. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/kalman_filter/kalman_filter.hal +30 -0
  56. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/lexer_edges/lexer_edges.hal +52 -0
  57. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/linear_algebra_test/linear_algebra_test.hal +43 -0
  58. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/macro_check_bit/macro_check_bit.hal +25 -0
  59. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/macro_hygiene/macro_hygiene.hal +21 -0
  60. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/matrix_builder/matrix_builder.hal +18 -0
  61. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/matrix_gen/matrix_gen.hal +20 -0
  62. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/name_null/name_null.hal +52 -0
  63. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/nav_filter/nav_filter.hal +27 -0
  64. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/nav_update_template/nav_update_template.hal +6 -0
  65. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/orbital_kinematics/orbital_kinematics.hal +46 -0
  66. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/percision_math/percision_math.hal +18 -0
  67. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/pitch_dap/pitch_dap.hal +234 -0
  68. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/ptr_resolution/ptr_resolution.hal +22 -0
  69. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/replace_parametric/replace_parametric.hal +34 -0
  70. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/ring_buffer/ring_buffer.hal +35 -0
  71. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/same_scope_fault/same_scope_fault.hal +22 -0
  72. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/sat_mon/sat_mon.hal +31 -0
  73. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/scope_test/scope_test.hal +36 -0
  74. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/sensor_init/sensor_init.hal +24 -0
  75. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/shuttle_hud_driver/shuttle_hud_driver.hal +125 -0
  76. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/shuttle_state/shuttle_state.hal +18 -0
  77. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/spacewire_mon/spacewire_mon.hal +31 -0
  78. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/spw_security/spw_security.hal +25 -0
  79. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/stack_bubbling/stack_bubbling.hal +33 -0
  80. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/star_tracker/star_tracker.hal +22 -0
  81. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/string_trunc/string_trunc.hal +19 -0
  82. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/telemetry_app/telemetry_app.hal +27 -0
  83. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/telemetry_formatter/telemetry_formatter.hal +18 -0
  84. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/telemetry_shift/telemetry_shift.hal +19 -0
  85. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/template_regression_test/guidance_bad.hal +11 -0
  86. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/template_regression_test/guidance_main.hal +17 -0
  87. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/template_regression_test/nav_update.hal +19 -0
  88. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/template_regression_test/sensor_pool.hal +6 -0
  89. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/tensor_init/tensor_init.hal +16 -0
  90. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/tensor_math/tensor_math.hal +26 -0
  91. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/tsiolkovsky_deltav_calc/tsiolkovsky_deltav_calc.hal +47 -0
  92. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/until_loops/until_loops.hal +71 -0
  93. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/voyager_signal/voyager_signal.hal +35 -0
  94. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/warp_drive_init/warp_drive_init.hal +74 -0
  95. resnik-1.0.1/docs/HAL-S-Source-Code-Examples/yaw_rotate/yaw_rotate.hal +38 -0
  96. resnik-1.0.1/docs/LANGUAGE_SUPPORT.md +64 -0
  97. resnik-1.0.1/docs/NO_STD_ROADMAP.md +173 -0
  98. resnik-1.0.1/docs/Resnik Requirements/resnik-compiler-requirements.md +131 -0
  99. resnik-1.0.1/docs/Resnik Users Guide/RESNIK_USER_GUIDE.md +1346 -0
  100. resnik-1.0.1/docs/SEPARATE_COMPILATION_AND_FFI.md +130 -0
  101. resnik-1.0.1/docs/Space_Shuttle_Flight_Software_History/Enterprise-1977-Approach_And_Glide_Test.md +27 -0
  102. resnik-1.0.1/docs/Space_Shuttle_Flight_Software_History/PASS-Crew-Input-Processing.md +48 -0
  103. resnik-1.0.1/docs/Space_Shuttle_Flight_Software_History/PASS-Operational_Sequences.md +65 -0
  104. resnik-1.0.1/docs/Space_Shuttle_Flight_Software_History/STS-1-The-Bug-Heard-Round-The-World.md +91 -0
  105. resnik-1.0.1/docs/Space_Shuttle_Flight_Software_History/STS-9-Incident-Common_Mode_Hardware_Failure.md +94 -0
  106. resnik-1.0.1/docs/THIRD_PARTY.md +28 -0
  107. resnik-1.0.1/ide/README.md +91 -0
  108. resnik-1.0.1/ide/images/ide-dark.png +0 -0
  109. resnik-1.0.1/ide/images/ide-main.png +0 -0
  110. resnik-1.0.1/ide/images/ide-options.png +0 -0
  111. resnik-1.0.1/ide/images/ide-target-panel.png +0 -0
  112. resnik-1.0.1/ide/images/resnik_icon_32.png +0 -0
  113. resnik-1.0.1/ide/images/resnik_icon_64.png +0 -0
  114. resnik-1.0.1/ide/images/resnik_logo.png +0 -0
  115. resnik-1.0.1/ide/resnik_ide/__init__.py +5 -0
  116. resnik-1.0.1/ide/resnik_ide/__main__.py +8 -0
  117. resnik-1.0.1/ide/resnik_ide/app.py +1594 -0
  118. resnik-1.0.1/ide/resnik_ide/desktop.py +104 -0
  119. resnik-1.0.1/ide/resnik_ide/devices.py +82 -0
  120. resnik-1.0.1/ide/resnik_ide/dispatch.py +109 -0
  121. resnik-1.0.1/ide/resnik_ide/editor.py +372 -0
  122. resnik-1.0.1/ide/resnik_ide/font_dialog.py +143 -0
  123. resnik-1.0.1/ide/resnik_ide/fonts.py +106 -0
  124. resnik-1.0.1/ide/resnik_ide/highlight.py +142 -0
  125. resnik-1.0.1/ide/resnik_ide/logview.py +224 -0
  126. resnik-1.0.1/ide/resnik_ide/options.py +156 -0
  127. resnik-1.0.1/ide/resnik_ide/options_dialog.py +384 -0
  128. resnik-1.0.1/ide/resnik_ide/pass_commands.py +89 -0
  129. resnik-1.0.1/ide/resnik_ide/reporter.py +54 -0
  130. resnik-1.0.1/ide/resnik_ide/runner.py +199 -0
  131. resnik-1.0.1/ide/resnik_ide/rust_highlight.py +88 -0
  132. resnik-1.0.1/ide/resnik_ide/settings.py +139 -0
  133. resnik-1.0.1/ide/resnik_ide/shuttle.py +52 -0
  134. resnik-1.0.1/ide/resnik_ide/target_panel.py +158 -0
  135. resnik-1.0.1/ide/resnik_ide/targetcheck.py +36 -0
  136. resnik-1.0.1/ide/resnik_ide/theme.py +302 -0
  137. resnik-1.0.1/ide/resnik_ide/toolchain.py +233 -0
  138. resnik-1.0.1/ide/tests/conftest.py +116 -0
  139. resnik-1.0.1/ide/tests/test_app.py +1280 -0
  140. resnik-1.0.1/ide/tests/test_desktop.py +41 -0
  141. resnik-1.0.1/ide/tests/test_devices.py +63 -0
  142. resnik-1.0.1/ide/tests/test_dispatch.py +63 -0
  143. resnik-1.0.1/ide/tests/test_editor.py +172 -0
  144. resnik-1.0.1/ide/tests/test_font_dialog.py +55 -0
  145. resnik-1.0.1/ide/tests/test_fonts.py +35 -0
  146. resnik-1.0.1/ide/tests/test_highlight.py +68 -0
  147. resnik-1.0.1/ide/tests/test_logview.py +108 -0
  148. resnik-1.0.1/ide/tests/test_options.py +123 -0
  149. resnik-1.0.1/ide/tests/test_options_dialog.py +116 -0
  150. resnik-1.0.1/ide/tests/test_pass_commands.py +28 -0
  151. resnik-1.0.1/ide/tests/test_runner.py +177 -0
  152. resnik-1.0.1/ide/tests/test_rust_highlight.py +47 -0
  153. resnik-1.0.1/ide/tests/test_settings.py +109 -0
  154. resnik-1.0.1/ide/tests/test_shuttle.py +36 -0
  155. resnik-1.0.1/ide/tests/test_targetcheck.py +42 -0
  156. resnik-1.0.1/ide/tests/test_theme.py +116 -0
  157. resnik-1.0.1/ide/tests/test_toolchain.py +189 -0
  158. resnik-1.0.1/ide/tools/make_logo_pngs.py +46 -0
  159. resnik-1.0.1/pyproject.toml +205 -0
  160. resnik-1.0.1/src/resnik/__init__.py +39 -0
  161. resnik-1.0.1/src/resnik/__main__.py +10 -0
  162. resnik-1.0.1/src/resnik/backend/__init__.py +33 -0
  163. resnik-1.0.1/src/resnik/backend/codegen.py +4509 -0
  164. resnik-1.0.1/src/resnik/backend/rust_emitter.py +182 -0
  165. resnik-1.0.1/src/resnik/backend/target_spec.py +73 -0
  166. resnik-1.0.1/src/resnik/backend/type_mapper.py +160 -0
  167. resnik-1.0.1/src/resnik/cli.py +447 -0
  168. resnik-1.0.1/src/resnik/driver.py +478 -0
  169. resnik-1.0.1/src/resnik/exceptions.py +57 -0
  170. resnik-1.0.1/src/resnik/lexer/__init__.py +14 -0
  171. resnik-1.0.1/src/resnik/lexer/lexer.py +569 -0
  172. resnik-1.0.1/src/resnik/lexer/tokens.py +158 -0
  173. resnik-1.0.1/src/resnik/parser/__init__.py +38 -0
  174. resnik-1.0.1/src/resnik/parser/ast_nodes.py +922 -0
  175. resnik-1.0.1/src/resnik/parser/parser.py +3354 -0
  176. resnik-1.0.1/src/resnik/parser/symbol_table.py +106 -0
  177. resnik-1.0.1/src/resnik/templib.py +121 -0
  178. resnik-1.0.1/src/resnik/types.py +149 -0
  179. resnik-1.0.1/src/resnik/utils/__init__.py +10 -0
  180. resnik-1.0.1/tests/__init__.py +0 -0
  181. resnik-1.0.1/tests/conftest.py +57 -0
  182. resnik-1.0.1/tests/fixtures/valid/comprehensive_test.hal +344 -0
  183. resnik-1.0.1/tests/fixtures/valid/error_test.hal +45 -0
  184. resnik-1.0.1/tests/fixtures/valid/sample_hals_code.hal +55 -0
  185. resnik-1.0.1/tests/fixtures/valid/simple_parser_test.hal +5 -0
  186. resnik-1.0.1/tests/integration/__init__.py +0 -0
  187. resnik-1.0.1/tests/regression/run_embedded_build.sh +133 -0
  188. resnik-1.0.1/tests/regression/run_exec_semantics.sh +187 -0
  189. resnik-1.0.1/tests/regression/run_regression.sh +675 -0
  190. resnik-1.0.1/tests/test_backend/fixtures/hello_target.hal +17 -0
  191. resnik-1.0.1/tests/test_backend/test_codegen.py +4234 -0
  192. resnik-1.0.1/tests/test_backend/test_rust_emitter.py +322 -0
  193. resnik-1.0.1/tests/test_backend/test_targets.py +605 -0
  194. resnik-1.0.1/tests/test_backend/test_type_mapper.py +180 -0
  195. resnik-1.0.1/tests/test_driver/test_driver.py +429 -0
  196. resnik-1.0.1/tests/test_lexer/__init__.py +0 -0
  197. resnik-1.0.1/tests/test_lexer/test_edge_cases.py +364 -0
  198. resnik-1.0.1/tests/test_lexer/test_tokenization.py +223 -0
  199. resnik-1.0.1/tests/test_parser/__init__.py +0 -0
  200. resnik-1.0.1/tests/test_parser/test_ast_nodes.py +454 -0
  201. resnik-1.0.1/tests/test_parser/test_parser_comprehensive.py +381 -0
  202. resnik-1.0.1/tests/test_parser/test_parsing.py +1134 -0
  203. resnik-1.0.1/tests/test_parser/test_symbol_table.py +343 -0
@@ -0,0 +1,90 @@
1
+ # Python bytecode
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # Virtual environments (repo-local and common defaults)
7
+ resnik-venv/
8
+ .venv/
9
+ venv/
10
+ env/
11
+
12
+ # Distribution / packaging
13
+ build/
14
+ dist/
15
+ *.egg-info/
16
+ .eggs/
17
+ *.egg
18
+ pip-wheel-metadata/
19
+
20
+ # Test + coverage output
21
+ .pytest_cache/
22
+ .tox/
23
+ .nox/
24
+ .coverage
25
+ .coverage.*
26
+ coverage.xml
27
+ htmlcov/
28
+ .hypothesis/
29
+
30
+ # Type checkers + linters
31
+ .mypy_cache/
32
+ .ruff_cache/
33
+ .pyre/
34
+ .pytype/
35
+ .dmypy.json
36
+
37
+ # Build backends
38
+ .hatch/
39
+
40
+ # Rust build artifacts (target/ appears under generated Cargo projects, e.g.
41
+ # the cortex-m no_std scaffold emitted by the backend)
42
+ target/
43
+ Cargo.lock
44
+
45
+ # Compiled objects / shared libs (i2c.o and friends land here)
46
+ *.o
47
+ *.so
48
+ *.dylib
49
+ *.dll
50
+ *.a
51
+
52
+ # Editor / IDE
53
+ .vscode/
54
+ .idea/
55
+ *.swp
56
+ *.swo
57
+ *~
58
+ .project
59
+ .pydevproject
60
+
61
+ # OS
62
+ .DS_Store
63
+ Thumbs.db
64
+
65
+ # Jupyter (if used for exploratory work)
66
+ .ipynb_checkpoints/
67
+
68
+ # Local secrets / environment overrides
69
+ .env
70
+ .env.local
71
+
72
+ # Local agent / assistant settings (machine-specific paths and permissions)
73
+ .claude/
74
+
75
+ # IDE / driver package markers (kept local; pytest collects without them).
76
+ # resnik_ide/__init__.py and __main__.py are tracked: the IDE needs
77
+ # __version__ and python -m resnik_ide.
78
+ ide/__init__.py
79
+ ide/tests/__init__.py
80
+ tests/test_driver/__init__.py
81
+
82
+ # Known stray artifacts at repo root
83
+ # Once these are cleaned up (delete or move to examples/), the entries below
84
+ # can be removed — they exist so a fresh clone doesn't reintroduce them.
85
+ /firmware_main.rs
86
+ /work_to_go.md
87
+
88
+ # Cargo projects generated next to the HAL/S examples by the IDE's
89
+ # Flash & Run (resnik --emit-cargo output; regenerable, holds target/).
90
+ docs/HAL-S-Source-Code-Examples/*/firmware/
@@ -0,0 +1,75 @@
1
+ # Changelog
2
+
3
+ All notable changes to Resnik are recorded here. The format follows
4
+ [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project
5
+ uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [Unreleased]
8
+
9
+ ## [1.0.1]
10
+
11
+ First release on PyPI. No compiler or IDE behaviour changes from 1.0.0.
12
+
13
+ ### Packaging
14
+
15
+ - Publish to PyPI from a GitHub Actions workflow using trusted publishing.
16
+ - The source distribution no longer bundles the two third-party HAL/S
17
+ reference PDFs (see [docs/THIRD_PARTY.md](docs/THIRD_PARTY.md)); it
18
+ shrinks from 23 MB to under 1 MB. The PDFs remain in the repository.
19
+ - The source distribution now includes `CHANGELOG.md` and `SECURITY.md`.
20
+
21
+ ### Fixed
22
+
23
+ - `resnik.backend` was missing its package `__init__` in a fresh clone, so
24
+ `from resnik.backend import RustCodeGenerator` failed.
25
+ - Two IDE tests no longer depend on a display or on the developer's
26
+ `~/.cargo/bin`.
27
+
28
+ ### Removed
29
+
30
+ - The pre-release maintainer checklist `OPEN-SOURCE-RELEASE.md`.
31
+
32
+ ## [1.0.0]
33
+
34
+ First public release.
35
+
36
+ ### Compiler
37
+
38
+ - Lexer and parser, with HAL/S semantic checks, for a working subset of the
39
+ USA003088 Appendix B keyword set. The keyword-by-keyword status is in
40
+ [docs/LANGUAGE_SUPPORT.md](docs/LANGUAGE_SUPPORT.md).
41
+ - Resnik extensions to the language: one-token `GOTO`, `DOWNTO`, optional
42
+ `OF` in array declarations, infix `XOR` / `MOD`, parameterized
43
+ `MACRO` / `MEND`, `TEMPLATE`, and `RESUME` in `ON ERROR` handlers.
44
+ - Rust back end for hosted (`std`) programs; `ON ERROR` lowers onto
45
+ `Result`. `--emit-exe` builds the binary with `rustc`.
46
+ - Separate compilation with TEMPLIB-style templates (`--gen-tpl`,
47
+ `--templib`) and cross-unit type checking.
48
+ - `EXTERNAL` foreign-function interface to C and assembly.
49
+
50
+ ### Embedded targets
51
+
52
+ - `--target esp32-c3`: `no_std` firmware as a Cargo project
53
+ (`--emit-cargo`), verified on hardware. `VECTOR` / `MATRIX` and the math
54
+ built-ins (via `libm`), `COMPOOL` (via `critical-section`) and
55
+ `SCHEDULE` / `TASK` (via a generated cyclic executive) are supported.
56
+ - `--target cortex-m`: crate scaffold with semihosting `WRITE`. This target
57
+ is a stub and has not been verified on hardware.
58
+ - `WAIT`, `READ` and `CHARACTER` variables are not available on `no_std`
59
+ targets and produce a `compile_error!`.
60
+
61
+ ### IDE
62
+
63
+ - Desktop IDE (`resnik-ide`, `./start_ide.sh`) with HAL/S and Rust
64
+ highlighting, toolchain and device probing, and Compile / Run /
65
+ Flash & Run.
66
+
67
+ ### Not yet implemented
68
+
69
+ - `UPDATE` blocks, `SCHEDULE … AFTER/AT/ON/UNTIL/WHILE`, `LOCK` /
70
+ `LATCHED`, `READALL` / `FILE`, `WRITE` format controls, `SUBBIT` and
71
+ others listed in [docs/LANGUAGE_SUPPORT.md](docs/LANGUAGE_SUPPORT.md).
72
+
73
+ [Unreleased]: https://github.com/bitWarrior/resnik/compare/v1.0.1...HEAD
74
+ [1.0.1]: https://github.com/bitWarrior/resnik/compare/v1.0.0...v1.0.1
75
+ [1.0.0]: https://github.com/bitWarrior/resnik/releases/tag/v1.0.0