Skip to content

Commit 6484f66

Browse files
committed
Release EndBASIC 0.11.0
1 parent 15c85d3 commit 6484f66

File tree

14 files changed

+76
-70
lines changed

14 files changed

+76
-70
lines changed

.github/workflows/deploy-release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ name: Deploy to repl.endbasic.dev
1818
on:
1919
push:
2020
tags:
21-
- endbasic-0.10.0
21+
- endbasic-0.11.0
2222

2323
jobs:
2424
publish:

NEWS.md

Lines changed: 38 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,31 @@ to talk to the cloud service. If you use the web interface, this should not be
1010
a problem, but if you use local builds, please try to stay on the latest release
1111
for the time being.**
1212

13-
## Changes in version 0.10.99
13+
## Changes in version 0.11.0
1414

15-
**STILL UNDER DEVELOPMENT; NOT RELEASED YET.**
15+
**Released on 2024-07-19.**
1616

17-
* Fixed JSON requests to the service to properly set the correct
18-
`Content-Type` header.
17+
Language changes:
18+
19+
* Issue #112: Added support for user-defined functions and subroutines via the
20+
`FUNCTION` and `SUB` code blocks. The new `DEMOS:FIBONACCI.BAS` demo program
21+
demonstrates how they work.
22+
23+
* Issue #112: Added support for global variables via `DIM SHARED`.
24+
25+
* Added the `DISASM` command to show the disassembled version of a compiled
26+
program.
27+
28+
* Made the `CLEAR` command be only available in the interactive interpreter
29+
given that it cannot clear compilation state.
30+
31+
* Fixed the `MID` function so that the `length%` parameter is actually optional
32+
as the documentation claimed.
33+
34+
* Changed the way integers with explicit bases are parsed so that they can
35+
express integers with their highest bit set. For bitmasks, this is needed.
36+
37+
Console improvements:
1938

2039
* Improved support for narrow consoles: trimmed the width of the welcome
2140
banner, fixed the editor's status line handling, made `DIR` print a
@@ -26,55 +45,42 @@ for the time being.**
2645
paginate their output so that they are usable in short consoles. Also
2746
applies to the new `DISASM` command.
2847

29-
* Issue #110: Homogenized the implementation of the SDL and web consoles to
30-
guarantee consistent behavior and to have indirect test coverage of the
31-
web console.
32-
33-
* Added the new console `st7735s` for the Raspberry Pi. This console uses the
48+
* Added the new console `st7735s` for the Raspberry Pi. This backend uses the
3449
ST7735S 1.44in LCD for the console output and the terminal console for input,
3550
but also recognizes the hat's buttons and injects them as keyboard events.
3651

37-
* Rewrote the expression evaluator to be bytecode based. This opens the way
38-
towards user-supplied functions and the ability to interrupt functions as
39-
they execute.
52+
* Issue #110: Homogenized the implementation of the SDL and web consoles to
53+
guarantee consistent behavior and to have indirect test coverage of the
54+
web console.
4055

41-
* Changed the way integers with explicit bases are parsed so that they can
42-
express integers with their highest bit set. For bitmasks, this is needed.
56+
Compiler and virtual machine changes:
4357

44-
* The `CLEAR` command is now only available in the interactive interpreter given
45-
that it cannot clear compilation state.
58+
* Rewrote the expression evaluator to be bytecode based. This is in service of
59+
supporting user-defined functions and adds the ability to interrupt functions
60+
as they execute.
4661

4762
* Many errors that were previously discovered only at runtime (such as undefined
4863
variables) are now caught during the compilation stage. This means that bad
4964
programs abort earlier instead of half-way during execution.
5065

66+
* Major performance improvements: type checking now happens at compilation time
67+
and the interpreter checks for interrupts more rarely now.
68+
5169
* Reverted integer-only operations to *not* perform automatic upgrades to
5270
doubles on underflows, overflows, and other error conditions. This behavior
53-
was previously added in 0.10.0 but it's now problematic that we do type
71+
was previously added in 0.10.0 but has become problematic with the new type
5472
propagation during compilation as it pushes too much responsibility to the
5573
runtime.
5674

57-
* Major performance improvements: type checking now happens at compilation time
58-
and the interpreter checks for interrupts more rarely now.
59-
60-
* Fixed the `MID` function so that the `length%` parameter is actually optional
61-
as the documentation claimed.
62-
6375
* Homogenized the handling of command and function arguments into a single
6476
parser. The user-visible effects of this change are that all syntax
6577
definitions that `HELP` prints now follow a consistent pattern and that such
6678
help strings truly match what the commands and functions expect.
6779

68-
* Issue #112: Added user-defined functions and the `FIBONACCI.BAS` demo
69-
program to demonstrate how they work.
70-
71-
* Issue #112: Added support for global variables via `DIM SHARED`.
72-
73-
* Issue #112: Added user-defined subroutines (also known as procedures or
74-
commands).
80+
Cloud service changes:
7581

76-
* Added the `DISASM` command to show the disassembled version of a compiled
77-
program.
82+
* Fixed JSON requests to the service to properly set the correct
83+
`Content-Type` header.
7884

7985
## Changes in version 0.10.0
8086

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ operating systems and platforms, including macOS, Windows, and Linux.
2424

2525
EndBASIC is free software under the [Apache 2.0 License](LICENSE).
2626

27-
**The latest version of EndBASIC is 0.10.0 and was released on 2022-12-27.**
27+
**The latest version of EndBASIC is 0.11.0 and was released on 2024-07-19.**
2828

2929
## Quick start on the web
3030

@@ -46,7 +46,7 @@ for the cloud service and upload your programs to share them with the world.
4646
## Quick start on your machine
4747

4848
Visit the
49-
[release page](https://github.com/endbasic/endbasic/releases/tag/endbasic-0.10.0)
49+
[release page](https://github.com/endbasic/endbasic/releases/tag/endbasic-0.11.0)
5050
to download prebuilt binaries. Once downloaded, unpack the archive and run the
5151
`endbasic` binary to get started.
5252

cli/Cargo.toml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "endbasic"
3-
version = "0.10.99" # ENDBASIC-VERSION
3+
version = "0.11.0" # ENDBASIC-VERSION
44
license = "Apache-2.0"
55
authors = ["Julio Merino <jmmv@endbasic.dev>"]
66
categories = ["development-tools", "parser-implementations"]
@@ -25,33 +25,33 @@ getopts = "0.2"
2525
thiserror = "1.0"
2626

2727
[dependencies.endbasic-client]
28-
version = "0.10.99" # ENDBASIC-VERSION
28+
version = "0.11.0" # ENDBASIC-VERSION
2929
path = "../client"
3030

3131
[dependencies.endbasic-core]
32-
version = "0.10.99" # ENDBASIC-VERSION
32+
version = "0.11.0" # ENDBASIC-VERSION
3333
path = "../core"
3434

3535
[dependencies.endbasic-repl]
36-
version = "0.10.99" # ENDBASIC-VERSION
36+
version = "0.11.0" # ENDBASIC-VERSION
3737
path = "../repl"
3838

3939
[dependencies.endbasic-rpi]
40-
version = "0.10.99" # ENDBASIC-VERSION
40+
version = "0.11.0" # ENDBASIC-VERSION
4141
path = "../rpi"
4242
optional = true
4343

4444
[dependencies.endbasic-sdl]
45-
version = "0.10.99" # ENDBASIC-VERSION
45+
version = "0.11.0" # ENDBASIC-VERSION
4646
path = "../sdl"
4747
optional = true
4848

4949
[dependencies.endbasic-std]
50-
version = "0.10.99" # ENDBASIC-VERSION
50+
version = "0.11.0" # ENDBASIC-VERSION
5151
path = "../std"
5252

5353
[dependencies.endbasic-terminal]
54-
version = "0.10.99" # ENDBASIC-VERSION
54+
version = "0.11.0" # ENDBASIC-VERSION
5555
path = "../terminal"
5656
optional = true
5757

client/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "endbasic-client"
3-
version = "0.10.99" # ENDBASIC-VERSION
3+
version = "0.11.0" # ENDBASIC-VERSION
44
license = "Apache-2.0"
55
authors = ["Julio Merino <jmmv@endbasic.dev>"]
66
categories = ["development-tools", "parser-implementations"]
@@ -21,11 +21,11 @@ time = { version = "0.3", features = ["std"] }
2121
url = "2.2"
2222

2323
[dependencies.endbasic-core]
24-
version = "0.10.99" # ENDBASIC-VERSION
24+
version = "0.11.0" # ENDBASIC-VERSION
2525
path = "../core"
2626

2727
[dependencies.endbasic-std]
28-
version = "0.10.99" # ENDBASIC-VERSION
28+
version = "0.11.0" # ENDBASIC-VERSION
2929
path = "../std"
3030

3131
[dependencies.reqwest]

core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "endbasic-core"
3-
version = "0.10.99" # ENDBASIC-VERSION
3+
version = "0.11.0" # ENDBASIC-VERSION
44
license = "Apache-2.0"
55
authors = ["Julio Merino <jmmv@endbasic.dev>"]
66
categories = ["development-tools", "parser-implementations"]

repl/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "endbasic-repl"
3-
version = "0.10.99" # ENDBASIC-VERSION
3+
version = "0.11.0" # ENDBASIC-VERSION
44
license = "Apache-2.0"
55
authors = ["Julio Merino <jmmv@endbasic.dev>"]
66
categories = ["development-tools", "parser-implementations"]
@@ -16,11 +16,11 @@ async-trait = "0.1"
1616
time = { version = "0.3", features = ["std"] }
1717

1818
[dependencies.endbasic-core]
19-
version = "0.10.99" # ENDBASIC-VERSION
19+
version = "0.11.0" # ENDBASIC-VERSION
2020
path = "../core"
2121

2222
[dependencies.endbasic-std]
23-
version = "0.10.99" # ENDBASIC-VERSION
23+
version = "0.11.0" # ENDBASIC-VERSION
2424
path = "../std"
2525

2626
[dev-dependencies]

rpi/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "endbasic-rpi"
3-
version = "0.10.99" # ENDBASIC-VERSION
3+
version = "0.11.0" # ENDBASIC-VERSION
44
license = "Apache-2.0"
55
authors = ["Julio Merino <jmmv@endbasic.dev>"]
66
categories = ["development-tools", "parser-implementations"]
@@ -18,15 +18,15 @@ rppal = "0.17"
1818
tokio = { version = "1", features = ["full"] }
1919

2020
[dependencies.endbasic-core]
21-
version = "0.10.99" # ENDBASIC-VERSION
21+
version = "0.11.0" # ENDBASIC-VERSION
2222
path = "../core"
2323

2424
[dependencies.endbasic-std]
25-
version = "0.10.99" # ENDBASIC-VERSION
25+
version = "0.11.0" # ENDBASIC-VERSION
2626
path = "../std"
2727

2828
[dependencies.endbasic-terminal]
29-
version = "0.10.99" # ENDBASIC-VERSION
29+
version = "0.11.0" # ENDBASIC-VERSION
3030
path = "../terminal"
3131

3232
[dev-dependencies]

sdl/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "endbasic-sdl"
3-
version = "0.10.99" # ENDBASIC-VERSION
3+
version = "0.11.0" # ENDBASIC-VERSION
44
license = "Apache-2.0"
55
authors = ["Julio Merino <jmmv@endbasic.dev>"]
66
categories = ["development-tools", "parser-implementations"]
@@ -18,11 +18,11 @@ once_cell = "1.8"
1818
tempfile = "3"
1919

2020
[dependencies.endbasic-core]
21-
version = "0.10.99" # ENDBASIC-VERSION
21+
version = "0.11.0" # ENDBASIC-VERSION
2222
path = "../core"
2323

2424
[dependencies.endbasic-std]
25-
version = "0.10.99" # ENDBASIC-VERSION
25+
version = "0.11.0" # ENDBASIC-VERSION
2626
path = "../std"
2727

2828
[dependencies.sdl2]

std/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "endbasic-std"
3-
version = "0.10.99" # ENDBASIC-VERSION
3+
version = "0.11.0" # ENDBASIC-VERSION
44
license = "Apache-2.0"
55
authors = ["Julio Merino <jmmv@endbasic.dev>"]
66
categories = ["development-tools", "parser-implementations"]
@@ -19,7 +19,7 @@ radix_trie = "0.2"
1919
time = { version = "0.3", features = ["formatting", "local-offset", "std"] }
2020

2121
[dependencies.endbasic-core]
22-
version = "0.10.99" # ENDBASIC-VERSION
22+
version = "0.11.0" # ENDBASIC-VERSION
2323
path = "../core"
2424

2525
# We don't directly use getrandom but rand does, and we have to customize how

0 commit comments

Comments
 (0)