Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
c121795
[wip] extracting orca app from zip
martinfouilleul Sep 18, 2025
e56db88
[wip] add cli arg parser to utilities
martinfouilleul Sep 19, 2025
8951f32
[wip] revert to copying data/loading module from uncompressed directo…
martinfouilleul Sep 19, 2025
34f2421
[wip] add unix subprocess impl to platform layer
martinfouilleul Sep 22, 2025
4e7abb0
[wip] launcher/tool dispatches run command to orca_runtime, which doe…
martinfouilleul Sep 22, 2025
0171763
subprocess stdio modes (inherit/pipe/null)
martinfouilleul Sep 22, 2025
fd878fa
[wip] build launcher macos app bundle from build.zig
martinfouilleul Sep 23, 2025
8238834
[wip] redoing tooling as part of launcher app
martinfouilleul Sep 23, 2025
2281075
[wip] update bundling for standalone macos apps
martinfouilleul Sep 23, 2025
6f6b614
[wip] load app image from resource folder in standalone macos bundles
martinfouilleul Sep 23, 2025
538933a
[wip] abstracting file operations in runtime/launcher
martinfouilleul Sep 24, 2025
e6a04ed
[wip] file and path functions for tool and runtime
martinfouilleul Sep 24, 2025
584c5a6
[tmp] working on resolve
martinfouilleul Sep 25, 2025
8d16c33
[wip] refactoring io
martinfouilleul Sep 28, 2025
cb68d0c
[wip] refactoring IO / adding maketemp/makedir/remove
martinfouilleul Sep 29, 2025
a77d8bc
[wip] rename platform_io.h/c to io.h/c
martinfouilleul Sep 30, 2025
26f9ce3
[wip] refactoring IO dispatch / access checking, and first draft for …
martinfouilleul Sep 30, 2025
64a45ff
[wip] reworking IO & filesystem APIs
martinfouilleul Sep 30, 2025
e8ef2ff
Merge branch 'filesystem' into martin/launcher-old
martinfouilleul Sep 30, 2025
c882d07
remove old tooling
martinfouilleul Sep 30, 2025
78cd7bf
[wip] refactor wrapped types
martinfouilleul Oct 1, 2025
ef01bb1
wrapped types tests
martinfouilleul Oct 1, 2025
048f5fe
use direct oc_catch instead of intermediate result in files functions
martinfouilleul Oct 1, 2025
5975af8
[wip] file system api tests
martinfouilleul Oct 1, 2025
19d76c6
[wip] recycle file slots on open/makedir/maketemp failure
martinfouilleul Oct 1, 2025
709cc00
fix wasm test build
martinfouilleul Oct 1, 2025
b2fa01e
[wip] draft a bit more of oc_file_copy
martinfouilleul Oct 2, 2025
814879b
fix OC_FILE_RESOLVE_SYMLINK_OPEN_LAST stopping at the first symlink
martinfouilleul Oct 2, 2025
0a5c648
using oc_file_copy/oc_file_remove functions in tool
martinfouilleul Oct 2, 2025
5e1ca15
remove old tooling's system api
martinfouilleul Oct 2, 2025
2bf1d99
exit early when an error is encountered in warm parser.
martinfouilleul Oct 2, 2025
8f4267f
removing old tooling deps
martinfouilleul Oct 2, 2025
66b42e2
[wip] launcher runloop outline
martinfouilleul Oct 3, 2025
0d5c346
Address bar & download/run app from URL
martinfouilleul Oct 7, 2025
2c70053
[wip] UI support for launcher
martinfouilleul Oct 9, 2025
9f44cdc
[wip] handle min/max size correctly when growing/shrinking boxes
martinfouilleul Oct 10, 2025
03f5c54
[wip] layout wrapping
martinfouilleul Oct 10, 2025
dfe9db0
[wip] wrap first draft
martinfouilleul Oct 14, 2025
259e301
[wip] layout in one pass over the flat list at the end
martinfouilleul Oct 14, 2025
fd62d41
[wip] reintroduce alignment & scrolling
martinfouilleul Oct 14, 2025
1812fe6
[wip] splitting 'floating' attribute to positionning and footprint at…
martinfouilleul Oct 14, 2025
2a9892f
[wip] coalesce layout/alignment codepaths and fixed scrolling
martinfouilleul Oct 15, 2025
7bd5e26
[wip] add controls to layout testbed
martinfouilleul Oct 15, 2025
1450775
prevent alignment to produce negative positions, + some renaming
martinfouilleul Oct 15, 2025
c54bdba
- Add margin to children position when doing the initial layout (inst…
martinfouilleul Oct 16, 2025
64383f0
[wip] start exploring a "Code Canvas" UI as a way to present code in …
martinfouilleul Oct 20, 2025
e887699
[wip] card spacer algo helper: moving card along direction to avoid o…
martinfouilleul Oct 22, 2025
28e4a19
[wip] card spacer algo draft
martinfouilleul Oct 22, 2025
43ddc6d
in spacer algo, determine marked/working/unmarked set by placement in…
martinfouilleul Oct 22, 2025
3ac3659
[wip] preview spacer moves on mouse drag, animate position, & run spa…
martinfouilleul Oct 22, 2025
0a854ff
coalesce draggedCard/resizedCard/resizedBorder into interactedCard/in…
martinfouilleul Oct 22, 2025
5fae6fe
[wip] lightweight grouping
martinfouilleul Oct 24, 2025
5c04893
[wip] apply spacer algo before forming groups, color code groups, fix…
martinfouilleul Oct 24, 2025
a6dd071
[wip] rework computing groups
martinfouilleul Nov 3, 2025
c854d19
fix group color stability
martinfouilleul Nov 6, 2025
4624a3a
fix box border drawing above unclipped content
martinfouilleul Jan 5, 2026
5718b0e
wip
martinfouilleul Jan 12, 2026
8715686
remove unused z from ui box and context
martinfouilleul Jan 23, 2026
2965e05
[wip] fixing failing test cases of assert_invalid. Tighten typechecki…
martinfouilleul Jan 29, 2026
1c84b0e
[wip] passing more wasm assert_invalid tests
martinfouilleul Jan 30, 2026
6073525
fix br_if typing after stack-polymorphic op, and complete assert_inva…
martinfouilleul Jan 30, 2026
8a79173
fix oc_list_count macro
martinfouilleul Feb 2, 2026
d06f050
[wip] combining wasmbind files into host_interface.json
martinfouilleul Feb 2, 2026
c82fa3a
[wip] generating hostcalls declarations from host_interface.json
martinfouilleul Feb 3, 2026
7f228d3
[wip] start generation of wasm imports bindings from host_interface.json
martinfouilleul Feb 3, 2026
042943c
continue working on new wasm bindings generator
martinfouilleul Feb 3, 2026
e9df06d
[wip] continue binding hostcalls to handlers
martinfouilleul Feb 4, 2026
fa06c15
[wip] io host handlers
martinfouilleul Feb 4, 2026
26b3f27
[wip] reimplementing orca platform functions in terms of hostcalls
martinfouilleul Feb 4, 2026
41e74d7
hostcalls bindings done for core api (still gles api to convert)
martinfouilleul Feb 4, 2026
8fbe864
remove old hostcall bridges files and fix missing imports
martinfouilleul Feb 4, 2026
01b6252
[wip] converting gles wasm bindings to new idl
martinfouilleul Feb 4, 2026
0789647
finish new binding of gles api and remove old api spec and script
martinfouilleul Feb 5, 2026
1713c3d
[wip] start implementing missing file apis on windows
martinfouilleul Feb 6, 2026
5c22e9c
[wip] continue implementing missing windows file APIs, add build targ…
martinfouilleul Feb 6, 2026
b4f372f
implement oc_fd_maketmp on windows
martinfouilleul Feb 6, 2026
8885d02
win32 pass all files tests (except symlinks are skipped, we probably …
martinfouilleul Feb 8, 2026
d844b5a
file io: reflect minor refactors done on windows to osx impl
martinfouilleul Feb 8, 2026
a4c6027
Merge branch 'martin/launcher-layout' into martin/launcher
martinfouilleul Feb 8, 2026
45a8630
Merge branch 'martin/combine-bind-defs' into martin/launcher
martinfouilleul Feb 8, 2026
4872209
Merge branch 'main' into martin/launcher
martinfouilleul Feb 8, 2026
05eaaf3
temporarily disable experimental launcher UI
martinfouilleul Feb 8, 2026
dbad01c
update api.json
martinfouilleul Feb 8, 2026
298d8f4
updating docs
martinfouilleul Feb 8, 2026
39fae0f
fix dlmalloc MORECORE handling of negative input
martinfouilleul Feb 9, 2026
32a6ff1
[wip] finishing porting launcher
martinfouilleul Feb 9, 2026
c7b9e03
[wip] remove mkdtemp from runtime and tooling, replace with oc_file_m…
martinfouilleul Feb 10, 2026
10998e8
Merge branch 'martin/launcher' of github.com:orca-app/orca into marti…
martinfouilleul Feb 10, 2026
5b126ea
update win32 oc_fd_maketmp
martinfouilleul Feb 10, 2026
0b37e4e
[wip] implementing oc_subprocess_spawn on windows
martinfouilleul Feb 10, 2026
dee15a8
add subprocess tests
martinfouilleul Feb 11, 2026
eda94a2
track missing files
martinfouilleul Feb 11, 2026
4977ec5
pass subprocess tests on windows
martinfouilleul Feb 11, 2026
8e4aff7
extract tests helpers and update wrapped types tests
martinfouilleul Feb 11, 2026
47e34a5
package launcher on win32
martinfouilleul Feb 12, 2026
83f3a4b
fix win32 only include in makeapp.c
martinfouilleul Feb 13, 2026
e6be16e
- Add native-only call to get full path of temp files directory
martinfouilleul Feb 13, 2026
34575e0
work around win32 path issues and fix app image extraction and loading
martinfouilleul Feb 13, 2026
e4f5501
[wip] adding tests for paths utilities
martinfouilleul Feb 13, 2026
4c0f715
update files api tests
martinfouilleul Feb 13, 2026
8cd64d1
added windows specific path tests
martinfouilleul Feb 16, 2026
79de4dc
added a couple error translations in win32 subprocess
martinfouilleul Feb 16, 2026
2f4b018
fix hang on oc_request_quit() from wasm
martinfouilleul Feb 16, 2026
7fa170a
signal errors in bundle tool
martinfouilleul Feb 16, 2026
20dee44
bundle --standalone on windows
martinfouilleul Feb 17, 2026
c6d02ad
[wip] reviewing UI box model and alignment
martinfouilleul Feb 19, 2026
5177054
[wip] ui size: split relax into shrink/grow
martinfouilleul Feb 19, 2026
53a22ec
fix ui menu
martinfouilleul Feb 19, 2026
2410215
[wip] layout loops until no new wrap happens.
martinfouilleul Feb 20, 2026
754852d
update CI scripts
martinfouilleul Feb 20, 2026
3187942
update api.json
martinfouilleul Feb 20, 2026
dfed599
fix build.zig wasm tests dependency on makeapp step
martinfouilleul Feb 20, 2026
68a13ca
fix stupid CI stuff?
martinfouilleul Feb 20, 2026
3201b0f
fix build-all.yaml tar working directory
martinfouilleul Feb 20, 2026
bd5c895
add macos version min to launcher and runtime binaries
martinfouilleul Feb 20, 2026
8e7983d
fix orca_local_tool_path on windows
martinfouilleul Feb 20, 2026
065763f
set macos version min to 14.4.1
martinfouilleul Feb 20, 2026
f12c6e6
trying to fix macos-version-min
martinfouilleul Feb 21, 2026
6601771
implement oc_sleep_nano and oc_file_seek on windows, + seek tests
martinfouilleul Feb 21, 2026
1911cd2
specify macos sdk paths in build.zig to allow compiling for older ver…
martinfouilleul Feb 22, 2026
0503ee3
Merge branch 'martin/launcher-fix-macos-version-min' into martin/laun…
martinfouilleul Feb 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
24 changes: 9 additions & 15 deletions .github/workflows/build-all.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,18 +60,16 @@ jobs:

- name: Build and run tests
run: |
mkdir orca
$env:PATH += Convert-Path orca
zig build test -Dsdk-path=orca
zig build test

- name: Build sketches
run: |
zig build sketches

- name: Build and Package
run: |
zig build -Doptimize=ReleaseFast -Dsdk-path=orca -Dversion=${{ needs.determine-version.outputs.version }} --summary all
tar --format=ustar -cvzf orca-windows-x64.tar.gz orca
zig build -Doptimize=ReleaseFast -Dversion=${{ needs.determine-version.outputs.version }} --summary all
tar --format=ustar -cvzf orca-windows-x64.tar.gz -C zig-out Orca

- uses: actions/upload-artifact@v4
with:
Expand All @@ -94,18 +92,16 @@ jobs:

- name: Build and run tests
run: |
mkdir orca
export PATH=$PATH:$(realpath orca)
zig build test -Dsdk-path=orca
zig build test

- name: Build sketches
run: |
zig build sketches

- name: Build and Package
run: |
zig build -Doptimize=ReleaseFast -Dsdk-path=orca -Dversion=${{ needs.determine-version.outputs.version }} --summary all
tar --format=ustar -czf orca-mac-x64.tar.gz orca
zig build -Doptimize=ReleaseFast -Dversion=${{ needs.determine-version.outputs.version }} --summary all
tar --format=ustar -czf orca-mac-x64.tar.gz -C zig-out Orca.app

- uses: actions/upload-artifact@v4
with:
Expand All @@ -128,18 +124,16 @@ jobs:

- name: Build and run tests
run: |
mkdir orca
export PATH=$PATH:$(realpath orca)
zig build test -Dsdk-path=orca
zig build test

- name: Build sketches
run: |
zig build sketches

- name: Build and Package
run: |
zig build -Doptimize=ReleaseFast -Dsdk-path=orca -Dversion=${{ needs.determine-version.outputs.version }} --summary all
tar --format=ustar -czf orca-mac-arm64.tar.gz orca
zig build -Doptimize=ReleaseFast -Dversion=${{ needs.determine-version.outputs.version }} --summary all
tar --format=ustar -czf orca-mac-arm64.tar.gz -C zig-out Orca.app

- uses: actions/upload-artifact@v4
with:
Expand Down
29 changes: 14 additions & 15 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,7 @@ To learn more about the project and its goals, read the [announcement post](http
- [Newsletter](https://orca-app.dev/newsletter.html)
- [Sponsor](https://github.com/sponsors/orca-app)

## Installing

The Orca command-line tools must be installed to your system in order to use them in your own projects.

### Requirements
## Requirements

- Windows 10 or later, or Mac 14 or later (Linux is not yet supported)

Expand All @@ -45,12 +41,12 @@ The Orca command-line tools must be installed to your system in order to use the
- **Mac users:** Apple's built-in `clang` does not support WebAssembly. We recommend installing `clang` via [Homebrew](https://brew.sh/) with `brew install llvm`.
- **Clang runtime builtins.** When targeting WebAssembly, `clang` relies on builtins found in `libclang_rt.builtins-wasm32`, but most distributions of `clang` don't yet ship with this file. To know where `clang` expects to find this file, you can run `clang --target=wasm32 -print-libgcc-file-name`. If this file doesn't exist you will need to download it from [https://github.com/WebAssembly/wasi-sdk/releases](https://github.com/WebAssembly/wasi-sdk/releases).

### Installation Instructions
## Installing

Download the orca tool and SDK from [https://github.com/orca-app/orca/releases/latest](https://github.com/orca-app/orca/releases/latest), and put the orca folder where you want orca to be installed.
The Orca command-line tools and SDK must be installed to your system in order to use them in your own projects. Download Orca from [https://github.com/orca-app/orca/releases/latest](https://github.com/orca-app/orca/releases/latest), and extract it where you want orca to be installed.

- **Windows:**
- Download `orca-windows.tar.gz`
- Download `orca-windows.tar.gz`
- Extract: `tar -xzf orca-windows.tar.gz`

- **ARM Mac:**
Expand All @@ -61,10 +57,11 @@ Download the orca tool and SDK from [https://github.com/orca-app/orca/releases/l
- Download `orca-mac-x64.tar.gz`
- Extract: `tar -xzf orca-mac-x64.tar.gz`

Add the orca tool directory to your PATH environment variable:
Add the orca executable directory to your PATH environment variable:

- **Windows Instructions:** [https://learn.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/ee537574(v=office.14)](https://learn.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/ee537574(v=office.14))
- **Mac Instructions:** [https://support.apple.com/guide/terminal/use-environment-variables-apd382cc5fa-4f58-4449-b20a-41c53c006f8f/mac](https://support.apple.com/guide/terminal/use-environment-variables-apd382cc5fa-4f58-4449-b20a-41c53c006f8f/mac)
- **Windows:** add the path of the extracted `orca` folder to you PATH environment variable. See these instructions on how to do that: [https://learn.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/ee537574(v=office.14)](https://learn.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/ee537574(v=office.14))

- **Mac:** the orca executable is located inside the `Orca.app` bundle. To use the executable from the command line, add `(...)/Orca.app/Contents/MacOS/orca` to your PATH environment variable (replace `(...)` with the path of the directory in which you put `Orca.app`!). See these instructions on how to modify your PATH: [https://support.apple.com/guide/terminal/use-environment-variables-apd382cc5fa-4f58-4449-b20a-41c53c006f8f/mac](https://support.apple.com/guide/terminal/use-environment-variables-apd382cc5fa-4f58-4449-b20a-41c53c006f8f/mac)

Finally, verify that Orca is successfully installed by running the `orca version` command.

Expand All @@ -82,20 +79,22 @@ The `samples` directory contains several sample apps that demonstrate various Or

```
cd samples/breakout

# Windows
build.bat

# Mac
./build.sh
```

On Windows this creates a `Breakout` directory in `samples/breakout`. You can launch the app by running `Breakout/bin/Breakout.exe`. On macOS this creates a `Breakout.app` bundle in `samples/breakout` that you can double-click to run.
On Windows this creates a `Breakout` directory in `samples/breakout`. You can launch the app by running `orca run breakout.orca`.

## Writing an Orca app

Orca apps are WebAssembly modules that use the Orca APIs. The process for creating an Orca application is:
Orca apps are bundles that contain WebAssembly modules and resources. Creating an Orca application is a two step process:

1. Compile a WebAssembly module using your language and toolchain of choice.
2. Bundle the WebAssembly module into a native executable using the Orca command-line tools.
1. Compile your application's code to a WebAssembly module. You can use your language of choice as long as it has bindings to the Orca APIs.
2. Bundle the WebAssembly module and additional resources (e.g. fonts, images, etc.) into an Orca image or a standalone executable using the Orca command-line tools.

For a more thorough overview, please read the [Quick Start Guide](./doc/mkdocs/docs/QuickStart.md), which will walk you through building a simple application.

Expand Down
Loading