Skip to content

Commit 3388594

Browse files
committed
nelua
1 parent 7cd9ae0 commit 3388594

5 files changed

Lines changed: 66 additions & 5 deletions

File tree

.github/workflows/carts.yml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,30 @@ jobs:
5959
with:
6060
name: ${{ matrix.cart }}_as
6161
path: ${{ matrix.cart }}_as.null0
62+
nelua:
63+
name: Build & Publish Nelua Carts
64+
runs-on: ubuntu-latest
65+
strategy:
66+
matrix:
67+
cart:
68+
- basic
69+
- colorbars
70+
steps:
71+
- name: Checkout
72+
uses: actions/checkout@v4
73+
- name: Build Nelua ${{ matrix.cart }} cart
74+
run: docker run -v ./carts/nelua/${{ matrix.cart }}:/src -v .:/out konsumer/null0-cart-nelua ${{ matrix.cart }}_nelua
75+
- name: Upload Nelua ${{ matrix.cart }} cart artifact
76+
uses: actions/upload-artifact@v4
77+
with:
78+
name: ${{ matrix.cart }}_nelua
79+
path: ${{ matrix.cart }}_nelua.null0
6280

6381
release:
6482
name: Create Release
6583
runs-on: ubuntu-latest
6684
if: github.ref_type == 'tag'
67-
needs: [c, js, as]
85+
needs: [c, js, as, nelua]
6886
steps:
6987
- name: Download all artifacts
7088
uses: actions/download-artifact@v4

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ npm run gen
7575
docker build -t konsumer/null0-cart-c . -f docker/null0-cart-c.Dockerfile
7676
docker build -t konsumer/null0-cart-quickjs . -f docker/null0-cart-quickjs.Dockerfile
7777
docker build -t konsumer/null0-cart-assemblyscript . -f docker/null0-cart-assemblyscript.Dockerfile
78-
7978
docker build -t konsumer/null0-cart-nelua . -f docker/null0-cart-nelua.Dockerfile
79+
8080
docker build -t konsumer/null0-cart-nim . -f docker/null0-cart-nim.Dockerfile
8181
docker build -t konsumer/null0-cart-zig . -f docker/null0-cart-zig.Dockerfile
8282
docker build -t konsumer/null0-cart-rust . -f docker/null0-cart-rust.Dockerfile
@@ -86,8 +86,8 @@ docker build -t konsumer/null0-cart-py2wasm . -f docker/null0-cart-py2wasm.Docke
8686
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-c . -f docker/null0-cart-c.Dockerfile
8787
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-quickjs . -f docker/null0-cart-quickjs.Dockerfile
8888
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-assemblyscript . -f docker/null0-cart-assemblyscript.Dockerfile
89-
9089
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-nelua . -f docker/null0-cart-nelua.Dockerfile
90+
9191
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-nim . -f docker/null0-cart-nim.Dockerfile
9292
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-zig . -f docker/null0-cart-zig.Dockerfile
9393
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-rust . -f docker/null0-cart-rust.Dockerfile
@@ -106,4 +106,7 @@ docker run -it -v ./carts/js/demo:/src -v ./out:/out konsumer/null0-cart-quickjs
106106
docker run -it -v ./carts/js/input:/src -v ./out:/out konsumer/null0-cart-quickjs input_js
107107

108108
docker run -it -v ./carts/as/simple:/src -v ./out:/out konsumer/null0-cart-assemblyscript simple_as
109+
110+
docker run -it -v ./carts/nelua/basic:/src -v ./out:/out konsumer/null0-cart-nelua basic_nelua
111+
docker run -it -v ./carts/nelua/colorbars:/src -v ./out:/out konsumer/null0-cart-nelua colorbars_nelua
109112
```

docker/build_nelua.sh

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/bin/bash
2+
3+
# this will compile a nelua cart for null0
4+
5+
# Check if all required arguments are provided
6+
if [ -z "${1}" ]; then
7+
echo "Usage: $0 CART_NAME"
8+
echo ""
9+
echo "Arguments:"
10+
echo " CART_NAME Name of the output cart (without .null0 extension)"
11+
exit 1
12+
fi
13+
14+
CART_NAME="${1}"
15+
16+
echo "Compiling nelua cart from /src/ to /out/"
17+
18+
mkdir -p "/tmp/${CART_NAME}"
19+
20+
cp -R /src/* /src/.* "/tmp/${CART_NAME}/" 2>/dev/null
21+
cd "/tmp/${CART_NAME}/"
22+
nelua --cflags="-I /usr/local/include/" -L /usr/local/include/ main.nelua -r --cc /opt/wasi-sdk/bin/clang -o main.wasm
23+
24+
/usr/local/bin/zipcart.sh "${CART_NAME}" "/tmp/${CART_NAME}/" /out
25+
26+

docker/null0-cart-nelua.Dockerfile

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
FROM konsumer/null0-cart-c:latest
2+
3+
COPY docker/build_nelua.sh /usr/local/bin/
4+
RUN chmod +x /usr/local/bin/*
5+
6+
COPY generated/carts/nelua/null0.nelua /usr/local/include
7+
8+
RUN apt-get update && apt-get install -y build-essential git gcc && \
9+
git clone https://github.com/edubart/nelua-lang.git /tmp/nelua && \
10+
cd /tmp/nelua && \
11+
make && make install
12+
13+
RUN apt-get purge -y build-essential git gcc && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /tmp/nelua
14+
15+
ENTRYPOINT ["build_nelua.sh"]

docker/null0-cart-quickjs.Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
FROM konsumer/null0-cart-c:latest
22

3-
COPY docker/zipcart.sh /usr/local/bin/
43
COPY docker/build_quickjs.sh /usr/local/bin/
54
RUN chmod +x /usr/local/bin/*
65

@@ -12,4 +11,4 @@ RUN cd /usr/local/include/quickjs/ && \
1211
clang -O3 -Wl,--initial-memory=1310720 -Wl,--max-memory=13107200 -D_WASI_EMULATED_SIGNAL -DCONFIG_VERSION=wasi -DCONFIG_BIGNUM=y -o /usr/local/lib/main.wasm -I /usr/local/include null0_main.c libunicode.c cutils.c libbf.c libregexp.c quickjs.c quickjs-libc.c qjscalc.c && \
1312
rm -rf /usr/local/include/quickjs
1413

15-
ENTRYPOINT ["/usr/local/bin/build_quickjs.sh"]
14+
ENTRYPOINT ["build_quickjs.sh"]

0 commit comments

Comments
 (0)