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.
- resnik-1.0.1/.gitignore +90 -0
- resnik-1.0.1/CHANGELOG.md +75 -0
- resnik-1.0.1/LICENSE.md +674 -0
- resnik-1.0.1/PKG-INFO +363 -0
- resnik-1.0.1/README.md +318 -0
- resnik-1.0.1/SECURITY.md +71 -0
- resnik-1.0.1/docs/BACKGROUND.md +100 -0
- resnik-1.0.1/docs/CYCLIC_EXECUTIVE_DESIGN.md +142 -0
- resnik-1.0.1/docs/DESIGN.md +86 -0
- resnik-1.0.1/docs/EMBEDDED_TARGETS.md +245 -0
- resnik-1.0.1/docs/HAL-S-Language-Users-Guide/resnik-language-users-guide.md +30 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/abort_monitor/abort_monitor.hal +31 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/aldrin_sys_exec/aldrin_sys_exec.hal +30 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/array_math/array_math.hal +21 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/attitude_control/attitude_control.hal +88 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/attitude_err/attitude_err.hal +15 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/attitude_math/attitude_math.hal +20 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/basic_math_test/basic_math_test.hal +45 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/bit_assembler/bit_assembler.hal +17 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/bit_layout/bit_layout.hal +54 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/bit_manipulation/bit_manipulation.hal +32 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/branch_inference/branch_inference.hal +26 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/buffer_search/buffer_search.hal +36 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/cat_dec/cat_dec.hal +46 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/char_pad_length/char_pad_length.hal +36 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/cmd_decoder/cmd_decoder.hal +28 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/cmd_parser/cmd_parser.hal +18 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/compile_time_math/compile_time_math.hal +25 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/compool_fault/compool_fault.hal +36 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/cve_monitor/cve_monitor.hal +15 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/dangling_else_trap/dangling_else_trap.hal +20 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/data_pipeline/data_pipeline.hal +38 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/dma_telemetry/dma_telemetry.hal +43 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/dynamic_slicing/dynamic_slicing.hal +22 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/escape_vel/escape_vel.hal +41 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/euler/euler.hal +43 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/event_gateway/event_gateway.hal +29 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/exec_cancel_cycle/exec_cancel_cycle.hal +26 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/exec_event_latch/exec_event_latch.hal +29 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/exec_oneshot_delay/exec_oneshot_delay.hal +22 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/exec_priority_chain/exec_priority_chain.hal +36 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/exec_terminate_forms/exec_terminate_forms.hal +25 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/exec_two_rates/exec_two_rates.hal +23 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/first_contact/first_contact.hal +78 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/for_semantics/for_semantics.hal +55 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/gn_and_c/gn_and_c.hal +107 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/gnc_correction/gnc_correction.hal +25 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/goto_token/goto_token.hal +31 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/group_multiply/group_multiply.hal +29 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/hello_word/hello_world.hal +3 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/hw_interface/hw_interface.hal +32 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/hw_interface/i2c.c +46 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/integer_arith/integer_arith.hal +45 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/jstar_telemetry/jstar_telemetry.hal +24 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/kalman_filter/kalman_filter.hal +30 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/lexer_edges/lexer_edges.hal +52 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/linear_algebra_test/linear_algebra_test.hal +43 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/macro_check_bit/macro_check_bit.hal +25 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/macro_hygiene/macro_hygiene.hal +21 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/matrix_builder/matrix_builder.hal +18 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/matrix_gen/matrix_gen.hal +20 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/name_null/name_null.hal +52 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/nav_filter/nav_filter.hal +27 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/nav_update_template/nav_update_template.hal +6 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/orbital_kinematics/orbital_kinematics.hal +46 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/percision_math/percision_math.hal +18 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/pitch_dap/pitch_dap.hal +234 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/ptr_resolution/ptr_resolution.hal +22 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/replace_parametric/replace_parametric.hal +34 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/ring_buffer/ring_buffer.hal +35 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/same_scope_fault/same_scope_fault.hal +22 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/sat_mon/sat_mon.hal +31 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/scope_test/scope_test.hal +36 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/sensor_init/sensor_init.hal +24 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/shuttle_hud_driver/shuttle_hud_driver.hal +125 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/shuttle_state/shuttle_state.hal +18 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/spacewire_mon/spacewire_mon.hal +31 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/spw_security/spw_security.hal +25 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/stack_bubbling/stack_bubbling.hal +33 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/star_tracker/star_tracker.hal +22 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/string_trunc/string_trunc.hal +19 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/telemetry_app/telemetry_app.hal +27 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/telemetry_formatter/telemetry_formatter.hal +18 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/telemetry_shift/telemetry_shift.hal +19 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/template_regression_test/guidance_bad.hal +11 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/template_regression_test/guidance_main.hal +17 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/template_regression_test/nav_update.hal +19 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/template_regression_test/sensor_pool.hal +6 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/tensor_init/tensor_init.hal +16 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/tensor_math/tensor_math.hal +26 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/tsiolkovsky_deltav_calc/tsiolkovsky_deltav_calc.hal +47 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/until_loops/until_loops.hal +71 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/voyager_signal/voyager_signal.hal +35 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/warp_drive_init/warp_drive_init.hal +74 -0
- resnik-1.0.1/docs/HAL-S-Source-Code-Examples/yaw_rotate/yaw_rotate.hal +38 -0
- resnik-1.0.1/docs/LANGUAGE_SUPPORT.md +64 -0
- resnik-1.0.1/docs/NO_STD_ROADMAP.md +173 -0
- resnik-1.0.1/docs/Resnik Requirements/resnik-compiler-requirements.md +131 -0
- resnik-1.0.1/docs/Resnik Users Guide/RESNIK_USER_GUIDE.md +1346 -0
- resnik-1.0.1/docs/SEPARATE_COMPILATION_AND_FFI.md +130 -0
- resnik-1.0.1/docs/Space_Shuttle_Flight_Software_History/Enterprise-1977-Approach_And_Glide_Test.md +27 -0
- resnik-1.0.1/docs/Space_Shuttle_Flight_Software_History/PASS-Crew-Input-Processing.md +48 -0
- resnik-1.0.1/docs/Space_Shuttle_Flight_Software_History/PASS-Operational_Sequences.md +65 -0
- resnik-1.0.1/docs/Space_Shuttle_Flight_Software_History/STS-1-The-Bug-Heard-Round-The-World.md +91 -0
- resnik-1.0.1/docs/Space_Shuttle_Flight_Software_History/STS-9-Incident-Common_Mode_Hardware_Failure.md +94 -0
- resnik-1.0.1/docs/THIRD_PARTY.md +28 -0
- resnik-1.0.1/ide/README.md +91 -0
- resnik-1.0.1/ide/images/ide-dark.png +0 -0
- resnik-1.0.1/ide/images/ide-main.png +0 -0
- resnik-1.0.1/ide/images/ide-options.png +0 -0
- resnik-1.0.1/ide/images/ide-target-panel.png +0 -0
- resnik-1.0.1/ide/images/resnik_icon_32.png +0 -0
- resnik-1.0.1/ide/images/resnik_icon_64.png +0 -0
- resnik-1.0.1/ide/images/resnik_logo.png +0 -0
- resnik-1.0.1/ide/resnik_ide/__init__.py +5 -0
- resnik-1.0.1/ide/resnik_ide/__main__.py +8 -0
- resnik-1.0.1/ide/resnik_ide/app.py +1594 -0
- resnik-1.0.1/ide/resnik_ide/desktop.py +104 -0
- resnik-1.0.1/ide/resnik_ide/devices.py +82 -0
- resnik-1.0.1/ide/resnik_ide/dispatch.py +109 -0
- resnik-1.0.1/ide/resnik_ide/editor.py +372 -0
- resnik-1.0.1/ide/resnik_ide/font_dialog.py +143 -0
- resnik-1.0.1/ide/resnik_ide/fonts.py +106 -0
- resnik-1.0.1/ide/resnik_ide/highlight.py +142 -0
- resnik-1.0.1/ide/resnik_ide/logview.py +224 -0
- resnik-1.0.1/ide/resnik_ide/options.py +156 -0
- resnik-1.0.1/ide/resnik_ide/options_dialog.py +384 -0
- resnik-1.0.1/ide/resnik_ide/pass_commands.py +89 -0
- resnik-1.0.1/ide/resnik_ide/reporter.py +54 -0
- resnik-1.0.1/ide/resnik_ide/runner.py +199 -0
- resnik-1.0.1/ide/resnik_ide/rust_highlight.py +88 -0
- resnik-1.0.1/ide/resnik_ide/settings.py +139 -0
- resnik-1.0.1/ide/resnik_ide/shuttle.py +52 -0
- resnik-1.0.1/ide/resnik_ide/target_panel.py +158 -0
- resnik-1.0.1/ide/resnik_ide/targetcheck.py +36 -0
- resnik-1.0.1/ide/resnik_ide/theme.py +302 -0
- resnik-1.0.1/ide/resnik_ide/toolchain.py +233 -0
- resnik-1.0.1/ide/tests/conftest.py +116 -0
- resnik-1.0.1/ide/tests/test_app.py +1280 -0
- resnik-1.0.1/ide/tests/test_desktop.py +41 -0
- resnik-1.0.1/ide/tests/test_devices.py +63 -0
- resnik-1.0.1/ide/tests/test_dispatch.py +63 -0
- resnik-1.0.1/ide/tests/test_editor.py +172 -0
- resnik-1.0.1/ide/tests/test_font_dialog.py +55 -0
- resnik-1.0.1/ide/tests/test_fonts.py +35 -0
- resnik-1.0.1/ide/tests/test_highlight.py +68 -0
- resnik-1.0.1/ide/tests/test_logview.py +108 -0
- resnik-1.0.1/ide/tests/test_options.py +123 -0
- resnik-1.0.1/ide/tests/test_options_dialog.py +116 -0
- resnik-1.0.1/ide/tests/test_pass_commands.py +28 -0
- resnik-1.0.1/ide/tests/test_runner.py +177 -0
- resnik-1.0.1/ide/tests/test_rust_highlight.py +47 -0
- resnik-1.0.1/ide/tests/test_settings.py +109 -0
- resnik-1.0.1/ide/tests/test_shuttle.py +36 -0
- resnik-1.0.1/ide/tests/test_targetcheck.py +42 -0
- resnik-1.0.1/ide/tests/test_theme.py +116 -0
- resnik-1.0.1/ide/tests/test_toolchain.py +189 -0
- resnik-1.0.1/ide/tools/make_logo_pngs.py +46 -0
- resnik-1.0.1/pyproject.toml +205 -0
- resnik-1.0.1/src/resnik/__init__.py +39 -0
- resnik-1.0.1/src/resnik/__main__.py +10 -0
- resnik-1.0.1/src/resnik/backend/__init__.py +33 -0
- resnik-1.0.1/src/resnik/backend/codegen.py +4509 -0
- resnik-1.0.1/src/resnik/backend/rust_emitter.py +182 -0
- resnik-1.0.1/src/resnik/backend/target_spec.py +73 -0
- resnik-1.0.1/src/resnik/backend/type_mapper.py +160 -0
- resnik-1.0.1/src/resnik/cli.py +447 -0
- resnik-1.0.1/src/resnik/driver.py +478 -0
- resnik-1.0.1/src/resnik/exceptions.py +57 -0
- resnik-1.0.1/src/resnik/lexer/__init__.py +14 -0
- resnik-1.0.1/src/resnik/lexer/lexer.py +569 -0
- resnik-1.0.1/src/resnik/lexer/tokens.py +158 -0
- resnik-1.0.1/src/resnik/parser/__init__.py +38 -0
- resnik-1.0.1/src/resnik/parser/ast_nodes.py +922 -0
- resnik-1.0.1/src/resnik/parser/parser.py +3354 -0
- resnik-1.0.1/src/resnik/parser/symbol_table.py +106 -0
- resnik-1.0.1/src/resnik/templib.py +121 -0
- resnik-1.0.1/src/resnik/types.py +149 -0
- resnik-1.0.1/src/resnik/utils/__init__.py +10 -0
- resnik-1.0.1/tests/__init__.py +0 -0
- resnik-1.0.1/tests/conftest.py +57 -0
- resnik-1.0.1/tests/fixtures/valid/comprehensive_test.hal +344 -0
- resnik-1.0.1/tests/fixtures/valid/error_test.hal +45 -0
- resnik-1.0.1/tests/fixtures/valid/sample_hals_code.hal +55 -0
- resnik-1.0.1/tests/fixtures/valid/simple_parser_test.hal +5 -0
- resnik-1.0.1/tests/integration/__init__.py +0 -0
- resnik-1.0.1/tests/regression/run_embedded_build.sh +133 -0
- resnik-1.0.1/tests/regression/run_exec_semantics.sh +187 -0
- resnik-1.0.1/tests/regression/run_regression.sh +675 -0
- resnik-1.0.1/tests/test_backend/fixtures/hello_target.hal +17 -0
- resnik-1.0.1/tests/test_backend/test_codegen.py +4234 -0
- resnik-1.0.1/tests/test_backend/test_rust_emitter.py +322 -0
- resnik-1.0.1/tests/test_backend/test_targets.py +605 -0
- resnik-1.0.1/tests/test_backend/test_type_mapper.py +180 -0
- resnik-1.0.1/tests/test_driver/test_driver.py +429 -0
- resnik-1.0.1/tests/test_lexer/__init__.py +0 -0
- resnik-1.0.1/tests/test_lexer/test_edge_cases.py +364 -0
- resnik-1.0.1/tests/test_lexer/test_tokenization.py +223 -0
- resnik-1.0.1/tests/test_parser/__init__.py +0 -0
- resnik-1.0.1/tests/test_parser/test_ast_nodes.py +454 -0
- resnik-1.0.1/tests/test_parser/test_parser_comprehensive.py +381 -0
- resnik-1.0.1/tests/test_parser/test_parsing.py +1134 -0
- resnik-1.0.1/tests/test_parser/test_symbol_table.py +343 -0
resnik-1.0.1/.gitignore
ADDED
|
@@ -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
|