Krolyxon
Commit 88ae7ba

Branches

Tags

Refs →

bench5188ae7ba

release 0.2.0: add CHANGELOG, document installing

Bumps the version to 0.2.0 for the GUI release.
Author
krolyxon
Date
2026-11-01 00:05 +0530
Parent
815d036
Commit
88ae7ba12471c99e5f7e5d1ab4994ac26182ea38

+112 −30

4 files changed

  1. A CHANGELOG.md +44 −0
  2. M Cargo.lock +3 −3
  3. M Cargo.toml +1 −1
  4. M README.md +64 −26
A CHANGELOG.md View
@@ -0,0 +1,44 @@
1+# Changelog
2+
3+All notable changes to bench51. The format follows
4+[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and versions follow
5+[Semantic Versioning](https://semver.org/).
6+
7+## [0.2.0] - 2026-11-01
8+
9+### Added
10+
11+- **bench51-gui**, a desktop IDE laid out like Keil µVision: menus, toolbar,
12+ Project window, editor with breakpoint and error gutter, Build Output, and
13+ in a debug session the Registers, Disassembly, Memory, Symbols, UART #1,
14+ Ports, Timers and Interrupts windows. Windows dock and tab anywhere; the
15+ edit and debug layouts are remembered separately.
16+- Monochrome, dot-matrix design in dark and light themes (follows the
17+ system by default), with Space Grotesk, Space Mono and Doto bundled.
18+- µVision's keys (F7, Ctrl-F5, F5, F10/F11, Ctrl-F10/F11, F9) with the
19+ TUI's as aliases; find (Ctrl-F); inline memory editing; clickable SFR
20+ bits and port pins; drag-and-drop to open files.
21+- Prebuilt releases for Linux (x86_64, aarch64), Windows (x86_64) and macOS
22+ (Apple silicon, Intel), with one-line installers: `install.sh` for Linux
23+ and macOS, `install.ps1` for Windows.
24+- CI on Linux, Windows and macOS.
25+
26+### Changed
27+
28+- The assembler, simulator and debugger session moved into a shared
29+ `bench51-core` crate used by both front ends. The terminal app behaves
30+ as before.
31+- Unsafe code is forbidden across the workspace.
32+
33+## [0.1.0] - 2026-10-23
34+
35+### Added
36+
37+- `bench51`, a terminal (TUI) 8051 IDE: editor, two-pass assembler for the
38+ full instruction set with Keil-style listing and Intel HEX output,
39+ simulator with timers, interrupts, UART and ports, and a debugger with
40+ breakpoints, stepping and memory poke.
41+- Headless assembly with `bench51 --assemble`.
42+- Opening Intel HEX files as disassembled, re-assemblable source.
43+
44+[0.2.0]: https://github.com/krolyxon/bench51/releases/tag/v0.2.0
M Cargo.lock View
@@ -485,7 +485,7 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
485485
486486 [[package]]
487487 name = "bench51"
488−version = "0.1.0"
488+version = "0.2.0"
489489 dependencies = [
490490 "bench51-core",
491491 "clap",
@@ -495,11 +495,11 @@ dependencies = [
495495
496496 [[package]]
497497 name = "bench51-core"
498−version = "0.1.0"
498+version = "0.2.0"
499499
500500 [[package]]
501501 name = "bench51-gui"
502−version = "0.1.0"
502+version = "0.2.0"
503503 dependencies = [
504504 "bench51-core",
505505 "clap",
M Cargo.toml View
@@ -2,7 +2,7 @@
22 members = ["crates/*"]
33
44 [workspace.package]
5−version = "0.1.0"
5+version = "0.2.0"
66 edition = "2024"
77
88 [workspace.lints.rust]
M README.md View
@@ -1,12 +1,13 @@
11 # bench51 — an 8051 assembler, simulator & debugger
22
33 [![CI](https://img.shields.io/github/actions/workflow/status/krolyxon/bench51/ci.yml?branch=master&style=flat-square&label=CI&labelColor=000000)](https://github.com/krolyxon/bench51/actions/workflows/ci.yml)
4−[![Version](https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fkrolyxon%2Fbench51%2Fmaster%2FCargo.toml&query=%24.workspace.package.version&label=version&style=flat-square&labelColor=000000&color=333333)](Cargo.toml)
4+[![Release](https://img.shields.io/github/v/release/krolyxon/bench51?style=flat-square&label=release&labelColor=000000&color=333333)](https://github.com/krolyxon/bench51/releases/latest)
5+[![Downloads](https://img.shields.io/github/downloads/krolyxon/bench51/total?style=flat-square&labelColor=000000&color=333333)](https://github.com/krolyxon/bench51/releases)
56 [![Top language](https://img.shields.io/github/languages/top/krolyxon/bench51?style=flat-square&logo=rust&logoColor=white&labelColor=000000&color=333333)](https://github.com/krolyxon/bench51)
67 [![Lines of code](https://img.shields.io/badge/lines%20of%20code-9.8k-333333?style=flat-square&labelColor=000000)](crates)
78 [![unsafe forbidden](https://img.shields.io/badge/unsafe-forbidden-333333?style=flat-square&labelColor=000000)](Cargo.toml)
89 [![License](https://img.shields.io/github/license/krolyxon/bench51?style=flat-square&labelColor=000000&color=333333)](LICENSE)
9−[![Platforms](https://img.shields.io/badge/platform-Linux%20%7C%20Windows%20%7C%20macOS-333333?style=flat-square&labelColor=000000)](#usage)
10+[![Platforms](https://img.shields.io/badge/platform-Linux%20%7C%20Windows%20%7C%20macOS-333333?style=flat-square&labelColor=000000)](#install)
1011 [![Target](https://img.shields.io/badge/target-Intel%208051%20%28MCS--51%29-D71921?style=flat-square&labelColor=000000)](https://en.wikipedia.org/wiki/Intel_8051)
1112 [![egui](https://img.shields.io/badge/GUI-egui-333333?style=flat-square&labelColor=000000)](https://github.com/emilk/egui)
1213 [![ratatui](https://img.shields.io/badge/TUI-ratatui-333333?style=flat-square&labelColor=000000)](https://ratatui.rs)
@@ -88,32 +89,57 @@ Linux, in a window or right in the terminal.
8889 - **Dark and light themes** in a monochrome, dot-matrix design (Space
8990 Grotesk, Space Mono and Doto, bundled).
9091
91−## Usage
92+## Install
93+
94+Linux and macOS:
9295
9396 ```bash
94−cargo install --path crates/bench51-gui # installs `bench51-gui`
97+curl -fsSL https://raw.githubusercontent.com/krolyxon/bench51/master/install.sh | sh
98+```
99+
100+Windows (PowerShell):
95101
96−cargo run --release -p bench51-gui # welcome screen
97−cargo run --release -p bench51-gui -- examples/*.asm # open several files
98−cargo run --release -p bench51-gui -- firmware.hex # disassemble & debug a HEX file
99−cargo run --release -p bench51-gui -- --theme light
102+```powershell
103+irm https://raw.githubusercontent.com/krolyxon/bench51/master/install.ps1 | iex
100104 ```
101105
102−`--theme system|dark|light` overrides the theme chosen in View → Theme, and
103−`--clock <MHz>` the Xtal set in Project → Options for Target (default
104−11.0592), which is used for the elapsed-time display.
106+Both install `bench51-gui` and `bench51` from the
107+[latest release](https://github.com/krolyxon/bench51/releases/latest) and
108+verify the download against its SHA-256 checksum:
105109
106−On Linux it runs on Wayland and X11 and uses the XDG desktop portal for file
107−dialogs. To add it to your application launcher:
110+- **Linux and macOS:** the binaries go into `~/.local/bin`, and on Linux the
111+ app is added to your application menu. Options go after `sh -s --`:
112+ `--version v0.2.0` pins a release, `--dir /usr/local/bin` picks another
113+ directory, `--archive <file>` installs a downloaded archive offline
114+ (handy on lab PCs), and `--uninstall` removes it.
115+- **Windows:** it installs to `%LOCALAPPDATA%\Programs\bench51`, adds that to
116+ your PATH and adds a Start menu entry. `-Uninstall` removes it.
117+
118+Prebuilt binaries cover Linux (x86_64, aarch64), Windows (x86_64) and macOS
119+(Apple silicon, Intel). To build from source instead, with a Rust toolchain:
108120
109121 ```bash
110−install -Dm644 crates/bench51-gui/assets/bench51-gui.desktop ~/.local/share/applications/bench51-gui.desktop
111−install -Dm644 crates/bench51-gui/assets/bench51-gui.svg ~/.local/share/icons/hicolor/scalable/apps/bench51-gui.svg
122+cargo install --locked --git https://github.com/krolyxon/bench51 bench51-gui # the desktop app
123+cargo install --locked --git https://github.com/krolyxon/bench51 bench51 # the terminal app
112124 ```
113125
114−It also builds for Windows and macOS. On Debian or Ubuntu, first install the
115−packages egui needs: `libxcb-render0-dev libxcb-shape0-dev
116−libxcb-xfixes0-dev libxkbcommon-dev libssl-dev`.
126+## Usage
127+
128+```bash
129+bench51-gui # welcome screen
130+bench51-gui examples/*.asm # open several files
131+bench51-gui firmware.hex # disassemble & debug a HEX file
132+bench51-gui --theme light
133+```
134+
135+`--theme system|dark|light` overrides the theme chosen in View → Theme, and
136+`--clock <MHz>` the Xtal set in Project → Options for Target (default
137+11.0592), which is used for the elapsed-time display.
138+
139+On Linux it runs on Wayland and X11 and uses the XDG desktop portal for file
140+dialogs. Building it from source on Debian or Ubuntu needs the packages egui
141+links against: `libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev
142+libxkbcommon-dev libssl-dev`.
117143
118144 ## Keys
119145
@@ -168,15 +194,13 @@ Makefiles.
168194 </table>
169195
170196 ```bash
171−cargo install --path . # installs the `bench51` binary
172−
173−cargo run --release -- examples/serial_hello.asm # open in the TUI
174−cargo run --release # start with a template
175−cargo run --release -- firmware.hex # disassemble & debug a HEX file
197+bench51 examples/serial_hello.asm # open in the TUI
198+bench51 # start with a template
199+bench51 firmware.hex # disassemble & debug a HEX file
176200
177201 # Headless assembly: writes prog.hex and prog.lst
178−cargo run --release -- --assemble prog.asm
179−cargo run --release -- --assemble prog.asm -o out.hex --lst out.lst
202+bench51 --assemble prog.asm
203+bench51 --assemble prog.asm -o out.hex --lst out.lst
180204 ```
181205
182206 `--clock <MHz>` sets the oscillator frequency used for the elapsed-time display
@@ -235,10 +259,24 @@ Letter shortcuts work too, for terminals that swallow function keys:
235259 ## Development
236260
237261 ```bash
238−cargo test --workspace # assembler, CPU, peripheral, session and example-program tests
262+cargo run --release -p bench51-gui # the desktop app
263+cargo run --release -p bench51 # the terminal app
264+cargo test --workspace # assembler, CPU, peripheral, session and example-program tests
239265 cargo clippy --workspace --all-targets
240266 ```
241267
268+Releasing: bump `version` in `Cargo.toml`, add a section to
269+[CHANGELOG.md](CHANGELOG.md), merge, then tag and push:
270+
271+```bash
272+git tag v0.3.0 && git push origin v0.3.0
273+```
274+
275+The release workflow checks that the tag matches `Cargo.toml` and builds
276+every target. It publishes the archives and `SHA256SUMS` with that
277+changelog section as the release notes, then installs the result with the
278+one-liners on Linux, macOS and Windows.
279+
242280 Code layout:
243281
244282 - `crates/bench51-gui/` is the `bench51-gui` desktop app (egui).