Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/evylang/evy
Learn programming โก๏ธ
https://github.com/evylang/evy
Optimise evy.wasm performance and size with `wasm-opt O3`. Empirically it
seems to reduce runtim...
Add an awk script that formats and runs evy code in markdown files. The
output of the evy code r...
Add an awk script that formats and runs evy code in markdown files. The
output of the evy code r...
Move the `firebase/deploy` script to `scripts/firebase-deploy` since we
have a scripts directory...
Add --skip-sleep flag to the evy cli so that we can run tests and
formatting faster. This flag h...
Fix rand seeding for tinygo 0.28.1. Go 1.20 automatically seeds its
random functions but tinygo ...
Add `exit N` builtin function calling os.Exit(N) on the evy CLI and
terminating the wasm interpr...
Add `exit N` builtin function calling os.Exit(N) on the evy CLI and
terminating the wasm interpr...
Remove top level return statements as they are about to be replaced with
a `exit` builtin function.
Ensure runtime errors have correct locations (line and column number) by
re-parsing formatted in...
Refactor builtin empty declarations to use utility function. The
intention was to reuse it for e...
Upgrade tools with hermit and go dependencies.
This merges the following commits:
* hermit: Upg...
Upgrade to lastest go version - 1.20 - in go.mod file.
23c287d02748e061c3c89a901591efddc316bd01 authored over 1 year ago by Julia Ogris <[email protected]>Upgrade all hermitised tooling with
hermit upgrade
Fix .golangcilint config for new breaking ...
e32c28b89a65cdf5e7b2a80e146a29afa0f5d3d9 authored over 1 year ago by Julia Ogris <[email protected]>Upgrade dependencies, really only alecthomas/kong for the evy cli with
go get -u
go mod...
Rework syntax by example to match the current state of evy. Remove
references to builtin functio...
Rework syntax by example to match the current state of evy. Remove
references to builtin functio...
Add `cls` function to clear the screen. It might be useful in text based
games.
Sneak in a slig...
ce1ccbaed59858b631b7405c2a3c302d433a9f67 authored over 1 year ago by Julia Ogris <[email protected]>
Move draw.evy sample to interact section as this new "interaction"
section seems like a better m...
Add `cls` function to clear the screen. It might be useful in text based
games.
Update the `NEXTTAG_CMD` command to identify when a release note has
been added in the latest ma...
Implement type assertions as defined in the spec in the parser as a new
AST node type and in the...
Ensure that nodes for literal values in the AST are properly constructed
when creating a zero va...
Add parsing and formatting of type assertions in expressions. As per the
spec, type assertions a...
Add the `typeof` builtin to return the type of a value, either the
type itself of a concrete typ...
Add evaluation of type assertions, evaluating the parser AST type
`*parser.TypeAssertion`.
Ensure that the inferred type for a composite literal goes as deep as it
can - i.e. `[]any` or `...
Add `grid` and `gridn unit:num color:string` graphics functions as they
seem useful in the intro...
Rework `font` function to take a map, rather than a string that matches
less closely to the CSS ...
Rework `font` function to take a map, rather than a string that matches
less closely to the CSS ...
Move Runtime interface out of builtin.go into its own runtime.go,
including GraphicsRuntime inte...
Tweak tictactoe after watching Anika (7) play it: the wait between game
over and the next game i...
Remove the `ValueType` type in favour of `*parser.Type` to enable deeper
type knowledge of compo...
Add a `None` `Value` implementation to be returned by evaluations that
do not return a `Value`, ...
Remove the `BUILTIN` and `FUNCTION` `ValueType` values as they are not
used - `FUNCTION` is not ...
Remove the `ValueType` type in favour of `*parser.Type` to enable deeper
type knowledge of compo...
Refactor parser private function order a little and break up newParser (bit long).
Move scope s...
8b7e6a7a6c346afa4c88a35f35f639d5ca89e14f authored over 1 year ago by Julia Ogris <[email protected]>
Refactor parser construction by keeping all public functions at the top
of the file and breaking...
Make parser.parser.Parse method private as it is not used anywhere.
Use parser.Parse function in...
Add scope stack to parser state, rather than passing it around in all
parse functions that often...
Use fmt.Sprintf where sensible - it was used before with the assumption
that tinygo doesn't supp...
Add a text based and a convas/mouse version of TicTacToe.
Allow for `"unlisted"` samples.
Links...
67b0598e7139e7481eaca9216faf3541e8dcf6e6 authored over 1 year ago by Julia Ogris <[email protected]>Add Tic Tac Toe game, building on text-based Tic Tac Toe.
1afec0ec421d541a9bcdf33e0e369ac74ce81b80 authored over 1 year ago by Julia Ogris <[email protected]>Add text-based tic tac toe game that can also be run in the terminal with
evy run tictactoetex...
44cfed1ba7863e6e297b74dfe5144bc017bd0c22 authored over 1 year ago by Julia Ogris <[email protected]>
This is another housekeeping PR fixing various little issues throughout
the code base that were ...
Fix `read` with empty string. As we already use the encoded pointer and
length address of `0` to...
Fix error message for bad `rand` argument to avoid a panic which is not
reported to the UI.
Add maths builtin maths functions to known functions for editor
highlighting. This fixing up a p...
Implement CLI noop yielder to avoid meaningless error message
"Yielder" not implemented.
8899eb7e14a7ddafb505727accab441e91f678c7 authored over 1 year ago by Julia Ogris <[email protected]>
Sort builtins alphabetically in editor highlights. In a follow up commit
we'll add a bunch of fo...
Reactivate "running" style which was accidentally de-activated when
following some CSS linter su...
Fix the evaluation of the `break` statement so as to not break out of
more than one loop (`for` ...
Fix the grammar docs to specify that the variable declaration is
optional. This removes the assi...
The CLI runtime `Read()` function was returning the line read with the
trailing newline. This is...
Add token location to evaluator errors and surface them in JS and UI.
In two preparatory commits...
Rename evaluator errors for consistency - we use the terms `bad` and
`invalid` as synonyms. Let'...
Expose evaluator or runtime errors to JS so that they can be displayed
in UI. Use token location.
Remove evalIfNotNil helper as it was only used in 2 places. This is a
net decrease in lines and ...
Add token with line and column location to evaluator errors so that we
can surface in UI _where_...
Remove unused Error type which is a left-over from previous value types
that got replace by prop...
Fix error message wording for expression parsing. This was noted when
playing with evaluator err...
Capture pointerleave event on canvas by using exact values `0` or `100`
for `x` or `y` to use as...
This is mostly a housekeeping PR around samples, removing course material
and rearranging sample...
Rework some samples for improved clarity, with clearer print statements
and less code.
Fix breadcrumbs bug, where click on breadcrumbs didn't work when evy
page was loaded with #conte...
Revert menu to contain samples only, no more courses. It was always a
bit dodgy to put courses a...
Update games emoji for higher contrast and better readability. Also, it
seems that kids are more...
Re-classify samples:
- add a basic ellipse sample to drawing
- add a basic bounce sample to an...
Improve modal dialogue styling ensuring that minimal vertical space is
taken up but the whole sc...
Clean up the spacing of the grammar and add missing period production
terminators. This changes ...
Implement short-circuiting of the AND and OR operators so that the
right-hand side is not evalua...
Add a Games section to the course list with a Towers of Hanoi game.
6c13955c76f56cb0ef528bafee5a1c4081d0ee54 authored over 1 year ago by Cam Hutchison <[email protected]>
Implement short-circuiting of the AND and OR operators so that the
right-hand side is not evalua...
Add canvas ellipse drawing builtin to draw ellipse with
ellipse x y radiusX [radiusY [rotatio...
17ada08b59dfbe8eb31f0f4101e98755e012f9eb authored over 1 year ago by Julia Ogris <[email protected]>
Do not nest a function scope inside another function scope, since we do
not look up variables ac...
Fix pointermove event for mobile touch according to
https://stackoverflow.com/a/48254578
It see...
c2d25bbd32126e8690b9d1f2e44568b376be4fab authored over 1 year ago by Julia Ogris <[email protected]>Add canvas poly builtin to draw polylines and polygons.
New sample:
https://evy-lang--125-ofi7t...
Add canvas poly builtin to draw polylines and polygons.
87cd7a09e46f4851c43b16882e5feea23b29a926 authored over 1 year ago by Julia Ogris <[email protected]>
Remove duplicated builtin keyword `read` from editor used in syntax
colouring.
Add canvas text builtins `text`, `textsize`, `fontfamily`, and `font`.
Add new example #text. Th...
Add drawing style functions stroke, fill, dash, and linecap defined in
the same terms as HTML ca...
Add `clear` to drawing functions as a builtin because it is very
commonly used. Use an optional ...
This PR contains various minor clean-ups:
- lexing: Make empty string lexing consistent and cle...
d8cb1baebae23d064105e51fbba1ede39aa80a6c authored over 1 year ago by Julia Ogris <[email protected]>
Clean up empty string literal lexing in go - lexer - and in JS - editor
syntax colouring lexer. ...
Clean up index.js by
- grouping exported funcs (canvas )
- removing left over console.logs
- ad...
Improve "Guess my Number" sample by reducing the lines of code and
fixing a typo in the comments.
Reset error highlight on start (run), so that the error highlight so
that we accurately display ...
Fix panic on nil token in error when overriding builtin function names.
This was noted when impl...
Fix empty string lit in middle of line. As we advance at the beginning
of reading string and the...
* Highlight first, not last error token in line
* Fix empty/delete-all editor bug
This merges t...
4a70c1d8fa6173e4d26d1aa216c927ccadb30548 authored almost 2 years ago by Julia Ogris <[email protected]>
We highlight the offending token with an error message, but due to the
limited data structure (d...
Fix empty editor bug, which is caused by the editor module not
responding when its value/content...
Add code sharing via gzip-base64 encoded content in URL hash e.g.
https://evy.dev#content=H4...
151ff683fb1674ed144ed94e2d4aae9c59088062 authored almost 2 years ago by Julia Ogris <[email protected]>Add code sharing via gzip-base64 encoded content in URL hash e.g.
https://evy.dev#content=H4sI...
bde8ae7b8ce83a571a4ac0e5c1eb447fbee21ae2 authored almost 2 years ago by Julia Ogris <[email protected]>
Fix broken Run button for mobile showing unstyled and unclickable, which
is a result of the CSS ...
Highlight lines with evy errors in editor. This is done by finding the
correct token by its line...
Add Token() to ast Node interface so that we can more accurately
pinpoint the error position, e....
Highlight lines with evy errors in editor. This is done by finding the
correct token by its line...
Lint CSS with stylelint, use --fix flag and manually fix 5 remaining
errors. We are not making s...
Add evy syntax colouring by implementing a custom highlight function for
lightweight JS code edi...