Skip to content

Tags: evylang/evy

Tags

v0.1.212

Toggle v0.1.212's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
🐞 play: Fix dash reset issues (#466)

Fix dash reset issues with an explicit check for `dash`. Previously it resulted
in the incorrect:

	canvas.ctx.setLineDash([0])

Now it results in the correct:

	canvas.ctx.setLineDash([])

Pull-request: #466

v0.1.211

Toggle v0.1.211's commit message
🐛 svg: Prevent code with fused instructions (#464)

Add a floating point conversion when multiplying when scaling coordinates
so that the multiplication does not get fused with an adjacent addition or
subtraction. This causes two instructions to be generated, a MUL and a
ADD/SUB, instead of a single FMADD or FMSUB. A fused instruction has
different rounding so ends up giving slightly different results to two
instructions. This was causing different values in the SVGs generated
between AMD64 and ARM64.

Revert "labs: Rework random rectangle generation" as we no longer need
to work around this by rounding in Evy code.

Remove the parens in `randrect.evy` as they are not needed any more due
to a recent change.

I've tested this on AMD64 and ARM64 and the same SVGs are now generated.

This merges the following commits:
* svg: Prevent code with fused instructions
* Revert "labs: Rework random rectangle generation"
* labs: Remove unnecessary parens in randrect

     frontend/lab/samples/ifs/img/randrect.evy |  16 +-
     frontend/lab/samples/ifs/img/randrect.svg | 420 ++++++++++++++++++----
     pkg/cli/svg/runtime.go                    |   9 +-
     3 files changed, 372 insertions(+), 73 deletions(-)

Link: https://go.dev/ref/spec#Floating_point_operators
Pull-request: #464

v0.1.210

Toggle v0.1.210's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
🏎️ make: Fix prettier installation race (#463)

Targets `docs`, `learn` and `labs` all use prettier which gets installed with

    npx --prefix $(NODEPREFIX) -y prettier # ...

Occasionally this seems to fail on CI when run concurrently. Fix by adding an
explicit dependency and prettier installation and a `.WAIT`.

Pull-request: #463

v0.1.209

Toggle v0.1.209's commit message
🧪 labs: Rework random rectangle generation (#462)

Rework random rectangle generation to avoid rounding differences on Mac and
Linux. This is not going to the bottom of the problem, just making the build
pass again on mac for now.

Additionally a vulnerability has been found by govulncheck in the crypto stdlib.
An upgrade with `hermit upgrade go` from 1.23.5 to 1.23.6 fixes the build.

This merges the following commits:
* e2e: Add slight pixel tolerance to no-diagonal test
* tools: Upgrade go
* labs: Rework random rectangle generation

     bin/{.go-1.23.5.pkg => .go-1.23.6.pkg}    |   0
     bin/go                                    |   2 +-
     bin/gofmt                                 |   2 +-
     e2e/play/test.js                          |   2 +-
     frontend/lab/samples/ifs/img/randrect.evy |  16 +-
     frontend/lab/samples/ifs/img/randrect.svg | 420 ++++------------------
     6 files changed, 75 insertions(+), 367 deletions(-)

Pull-request: #462

v0.1.208

Toggle v0.1.208's commit message
☝️ tools: Upgrade (#461)

Upgrade hermitised and node tools according to docs. It all went smoothly apart
from Playwright which required a bunch of snapshot updates again and is still
not working properly with local Node run on Linux :(.

This merges the following commits:
* tools: Upgrade hermitised tools
* node: Upgrade tooling
* go: Upgrade dependencies
* tools: Upgrade Playwright

     .hermit/node/package-lock.json                | 217 ++++++++++++------
     .hermit/node/package.json                     |   4 +-
     Makefile                                      |   2 +-
     ...base-13.29.1.pkg => .firebase-13.29.2.pkg} |   0
     bin/{.gh-2.63.2.pkg => .gh-2.65.0.pkg}        |   0
     bin/{.go-1.23.4.pkg => .go-1.23.5.pkg}        |   0
     ...t-1.62.2.pkg => .golangci-lint-1.63.4.pkg} |   0
     ...leaser-2.5.0.pkg => .goreleaser-2.6.1.pkg} |   0
     bin/{.node-22.12.0.pkg => .node-22.13.1.pkg}  |   0
     ...{.tinygo-0.34.0.pkg => .tinygo-0.35.0.pkg} |   0
     bin/corepack                                  |   2 +-
     bin/firebase                                  |   2 +-
     bin/gh                                        |   2 +-
     bin/go                                        |   2 +-
     bin/gofmt                                     |   2 +-
     bin/golangci-lint                             |   2 +-
     bin/goreleaser                                |   2 +-
     bin/node                                      |   2 +-
     bin/npm                                       |   2 +-
     bin/npx                                       |   2 +-
     bin/tinygo                                    |   2 +-
     .../comment-hover-chromium-docker.png         | Bin 93311 -> 95295 bytes
     .../comment-page-chromium-docker.png          | Bin 72187 -> 73169 bytes
     .../dialog-chromium-docker.png                | Bin 57654 -> 60131 bytes
     .../dialog-theme-chromium-docker.png          | Bin 62238 -> 62914 bytes
     .../expand-0-chromium-docker.png              | Bin 93739 -> 95705 bytes
     .../expand-1-chromium-docker.png              | Bin 93320 -> 95238 bytes
     .../no-dialog-chromium-docker.png             | Bin 74311 -> 76511 bytes
     .../printf-chromium-docker.png                | Bin 90835 -> 93313 bytes
     .../printf-theme-chromium-docker.png          | Bin 86813 -> 84794 bytes
     .../start-chromium-docker.png                 | Bin 74311 -> 76511 bytes
     .../start-theme-chromium-docker.png           | Bin 71730 -> 69995 bytes
     e2e/package-lock.json                         |  26 +--
     e2e/package.json                              |   4 +-
     .../console-output-chromium-docker.png        | Bin 35250 -> 36450 bytes
     .../modal-chromium-docker.png                 | Bin 68541 -> 73457 bytes
     .../no-dialog-chromium-docker.png             | Bin 29669 -> 30938 bytes
     .../no-sidebar-chromium-docker.png            | Bin 29493 -> 30938 bytes
     .../read-input-chromium-docker.png            | Bin 25003 -> 25944 bytes
     .../sidebar-chromium-docker.png               | Bin 23082 -> 23673 bytes
     .../landing-top-chromium-docker.png           | Bin 24830 -> 25155 bytes
     .../playground-chromium-docker.png            | Bin 29669 -> 30927 bytes
     go.mod                                        |   8 +-
     go.sum                                        |  16 +-
     learn/go.mod                                  |  10 +-
     learn/go.sum                                  |  16 +-
     46 files changed, 204 insertions(+), 121 deletions(-)

docs: https://github.com/evylang/evy/blob/5b196cbe154c60d68b2c2deffa41e118985ffba9/docs/development/upgrade.md
Pull-request: #461

v0.1.207

Toggle v0.1.207's commit message
✨ parser: Implement for niladic function calls without parens (#460)

Implement niladic function calls without parens, so that the following Evy
code is now valid:

   if rand1 > 0.5
    print "Heads"
end

   print read

    print rand1 rand1+10

which reads better than `if (rand1) > 0.5` etc.

Along the way fix typo in name of builtin `"rand1"` (name is used in error
messages only). Improve error message where a function is called and expected
to have a return value.

This merges the following commits:
* evaluator: Fix builtin name typo
* parser: Implement for niladic function calls without parens
* parser: Improve error message for none return value

     pkg/evaluator/builtin.go      |  2 +-
     pkg/parser/ast.go             |  4 ++
     pkg/parser/expression.go      | 22 +++++++---
     pkg/parser/expression_test.go | 76 +++++++++++++++++++++++++++++++++++
     pkg/parser/parser.go          |  8 +++-
     pkg/parser/parser_test.go     |  5 +++
     6 files changed, 109 insertions(+), 8 deletions(-)

Pull-request: #460

v0.1.206

Toggle v0.1.206's commit message
🚚 all: Rename "runtime" to "platform" (#458)

Rename uses of "runtime" where it refers to the CLI runtime and the browser
runtime to "platform". Runtime usually refers to the thing doing the
running, such as the evaluator or bytecode VM and has started to cause a
little confusion or cumbersome language now that the bytecode VM is being
developed. Initial talk of perhaps targeting micro-controllers as
"platforms" also suggests this should be called platform.

There are still a few uses of the word "runtime" left - these refer to
things like "runtime errors" where the term still makes sense, as it does
not refer to the Evy abstraction for runtime/platform.

Fix a lint error in `learn/pkg/learn/markdown.go` since golangci-lint wants
to complain about this now.

This merges the following commits:
* all: Rename "runtime" to "platform"
* docsite: Rename "runtime" to "platform"

     README.md                            |  2 +-
     docs/builtins.md                     |  2 +-
     docs/spec.md                         | 13 +++---
     frontend/docs/builtins.html          |  4 +-
     frontend/docs/builtins.htmlf         |  2 +-
     frontend/docs/index.html             |  2 +-
     frontend/docs/spec.html              | 14 +++---
     frontend/docs/spec.htmlf             | 12 ++---
     frontend/docs/syntax-by-example.html |  2 +-
     frontend/docs/talks-and-papers.html  |  2 +-
     frontend/docs/usage.html             |  2 +-
     learn/pkg/learn/markdown.go          |  2 +-
     learn/pkg/learn/renderer.go          |  2 +-
     main.go                              |  6 +--
     pkg/cli/runtime.go                   | 56 +++++++++++------------
     pkg/cli/runtime_test.go              | 10 ++---
     pkg/cli/svg/runtime.go               | 56 +++++++++++------------
     pkg/cli/svg/runtime_test.go          | 38 ++++++++--------
     pkg/cli/svg/svg.go                   |  2 +-
     pkg/evaluator/builtin.go             |  8 ++--
     pkg/evaluator/doc.go                 |  6 +--
     pkg/evaluator/evaluator.go           | 28 ++++++------
     pkg/evaluator/evaluator_test.go      | 18 ++++----
     pkg/evaluator/runtime.go             | 66 ++++++++++++++--------------
     pkg/wasm/imports.go                  | 54 +++++++++++------------
     pkg/wasm/main.go                     |  4 +-
     26 files changed, 207 insertions(+), 206 deletions(-)

Pull-request: #458

v0.1.205

Toggle v0.1.205's commit message
☝️ tools: Upgrade (#459)

Upgrade hermitised and node tools according to docs. It all went smoothly apart
from Playwright which required a bunch of snapshot updates again and is still
not working properly.

This merges the following commits:
* tools: Upgrade hermitised tools
* node: Upgrade tooling
* tools: Upgrade Playwright

     .hermit/node/package-lock.json                | 195 ++++++++----------
     .hermit/node/package.json                     |   4 +-
     Makefile                                      |   2 +-
     ...base-13.25.0.pkg => .firebase-13.29.1.pkg} |   0
     bin/{.gh-2.61.0.pkg => .gh-2.63.2.pkg}        |   0
     bin/{.go-1.23.3.pkg => .go-1.23.4.pkg}        |   0
     ...t-1.62.0.pkg => .golangci-lint-1.62.2.pkg} |   0
     ...leaser-2.4.4.pkg => .goreleaser-2.5.0.pkg} |   0
     bin/{.node-22.11.0.pkg => .node-22.12.0.pkg}  |   0
     bin/corepack                                  |   2 +-
     bin/firebase                                  |   2 +-
     bin/gh                                        |   2 +-
     bin/go                                        |   2 +-
     bin/gofmt                                     |   2 +-
     bin/golangci-lint                             |   2 +-
     bin/goreleaser                                |   2 +-
     bin/node                                      |   2 +-
     bin/npm                                       |   2 +-
     bin/npx                                       |   2 +-
     .../comment-hover-ios-docker.png              | Bin 32347 -> 52152 bytes
     .../comment-page-ios-docker.png               | Bin 22732 -> 33290 bytes
     .../test.js-snapshots/expand-0-ios-docker.png | Bin 30321 -> 52209 bytes
     .../test.js-snapshots/expand-1-ios-docker.png | Bin 31574 -> 52173 bytes
     .../test.js-snapshots/printf-ios-docker.png   | Bin 40450 -> 73996 bytes
     .../test.js-snapshots/sidebar-ios-docker.png  | Bin 20539 -> 28964 bytes
     .../test.js-snapshots/start-ios-docker.png    | Bin 49463 -> 78726 bytes
     e2e/package-lock.json                         |  26 +--
     e2e/package.json                              |   4 +-
     .../about-dialog-ios-docker.png               | Bin 33572 -> 49331 bytes
     .../console-output-ios-docker.png             | Bin 14475 -> 15293 bytes
     .../test.js-snapshots/modal-ios-docker.png    | Bin 43982 -> 52656 bytes
     .../no-dialog-chromium-docker.png             | Bin 29491 -> 29669 bytes
     .../no-dialog-ios-docker.png                  | Bin 21357 -> 27926 bytes
     .../no-sidebar-ios-docker.png                 | Bin 21357 -> 27926 bytes
     .../read-input-chromium-docker.png            | Bin 25043 -> 25003 bytes
     .../read-input-ios-docker.png                 | Bin 16756 -> 20988 bytes
     .../test.js-snapshots/sidebar-ios-docker.png  | Bin 17099 -> 19429 bytes
     .../landing-top-ios-docker.png                | Bin 14986 -> 15768 bytes
     .../playground-chromium-docker.png            | Bin 29490 -> 29669 bytes
     .../playground-ios-docker.png                 | Bin 21357 -> 27926 bytes
     40 files changed, 118 insertions(+), 133 deletions(-)

docs: https://github.com/evylang/evy/blob/5b196cbe154c60d68b2c2deffa41e118985ffba9/docs/development/upgrade.md
Pull-request: #459

v0.1.204

Toggle v0.1.204's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
🐞 docs: Fix typo in reference to ckas (#457)

Fix typo in reference to ckas, he emailed me asking to please fix it.

Pull-request: #457

v0.1.203

Toggle v0.1.203's commit message
🛝 playsite: Add two more samples (#453)

Add two more samples, one for graphing mathematical functions one for a
frogger style game as described in https://lab.evy.dev#game Keep them in a
single commit to avoid updating snapshots twice.

In preparatory commit fix link to game solution in labsite.

This merges the following commits:
* labsite: Fix link to game solution
* playsite: Add two more samples

     .../modal-chromium-docker.png                 | Bin 64241 -> 68541 bytes
     .../test.js-snapshots/modal-ios-docker.png    | Bin 43835 -> 43982 bytes
     frontend/lab/samples/games/game.htmlf         |  10 +-
     frontend/lab/samples/games/game.md            |   8 +-
     frontend/play/samples/games/dodger.evy        |  83 +++++
     frontend/play/samples/interact/graph.evy      | 320 ++++++++++++++++++
     frontend/play/samples/samples.json            |   4 +-
     7 files changed, 415 insertions(+), 10 deletions(-)

Pull-request: #453