Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
5f3ade7
reimplement Wren CLI as pure Wren
joshgoebel May 14, 2021
123d4b8
add -e for eval
joshgoebel May 15, 2021
7e52f1a
move resolveModule into Wren
joshgoebel May 16, 2021
1dca75e
move loadModule into Wren
joshgoebel May 16, 2021
7d8409d
run stdin via -
joshgoebel May 19, 2021
4e22ffb
dynamic library loading
joshgoebel May 19, 2021
628e02b
(chore) move CLI source into cli folder
joshgoebel May 19, 2021
fe7e76e
remove old C module resolve/load code
joshgoebel May 19, 2021
c59b4e3
Path class for Resolver
joshgoebel May 19, 2021
945dc8b
single CLI inc file
joshgoebel May 19, 2021
9521016
cli/path.wren
joshgoebel May 19, 2021
e9593b6
path: better support for windows
joshgoebel May 19, 2021
2e5b51b
mix in our path tests
joshgoebel May 19, 2021
0417a2c
rename: wrenc makefiles
joshgoebel May 20, 2021
9a85854
rename CLI, readme, docs, etc.
joshgoebel May 20, 2021
0702803
list what we added
joshgoebel May 20, 2021
a43d101
bundle essentials
joshgoebel May 20, 2021
95cb853
pre-requisites
joshgoebel May 20, 2021
527d4b0
(chore) push releases to GitHub
joshgoebel May 20, 2021
f722152
(fix) Stdin.readByte now propery removes single bytes from buffer
joshgoebel May 20, 2021
f622bda
(docs) add reflect module in readme
joshgoebel May 21, 2021
60d0b70
(enh) Runtime module
joshgoebel May 21, 2021
67133c0
(enh) disallow compiling into an existing named module
joshgoebel May 21, 2021
f12e1e5
add runtime to makefiles
joshgoebel May 22, 2021
8dcf213
declare extern
joshgoebel May 22, 2021
69c83eb
(enh) support absolutely paths for scripts
joshgoebel May 23, 2021
0d4a30e
(enh) controlled crashes should not include CLI in stack trace
joshgoebel May 23, 2021
54a7715
(enh) add Process.exit() and Process.exit(_)
joshgoebel May 23, 2021
d974ac5
(enh) Add `Stderr.write(_)` and `Stderr.print(_)`
joshgoebel May 23, 2021
98e05c1
(fix) correct number of slots
joshgoebel May 27, 2021
4c2f162
(fix) fix compiler warning
joshgoebel May 27, 2021
1de80e5
(fix) Process.exit works now
joshgoebel May 27, 2021
76fe0bd
adds Process.exec(cmd, [args])
joshgoebel Apr 28, 2021
61c4f42
(enh) Process.exec inherits stdout, stderr
joshgoebel May 27, 2021
fb720c7
add Process.exec to README
joshgoebel May 27, 2021
f87b2d9
passing tests
joshgoebel May 27, 2021
edd04be
bump version
joshgoebel May 27, 2021
58a2412
allow multiple wren_modules paths to be searched
joshgoebel May 28, 2021
03f9f5e
declare S_IRWXU on Windows platforms
joshgoebel May 29, 2021
2728e8f
CI & artifacts
joshgoebel May 18, 2021
9cfaeb8
(ci) build mac
joshgoebel May 18, 2021
1e77b9a
(ci) build windows
joshgoebel May 18, 2021
32965ce
(fix) test: cwd on windows
joshgoebel May 18, 2021
cf17196
(fix) test: pid test
joshgoebel May 18, 2021
dcf9bdf
(fix) mode test
joshgoebel May 18, 2021
06a46de
CI: dependencies/wren-essentials
joshgoebel May 31, 2021
533c9c2
(chore) split process.exec tests between unix/windows
joshgoebel May 31, 2021
a86a0b1
artifacts then test
joshgoebel May 31, 2021
ae25aaa
ensure slots, even for slot 0
joshgoebel May 31, 2021
6929bc1
(chore) windows CI: use debug build
joshgoebel May 31, 2021
1d01f12
(fix) proper number of slots, release fiber handle in case of err
joshgoebel May 31, 2021
ed75fe2
(fix) free resolver VM
joshgoebel May 31, 2021
835e99e
(fix) do not free stdinStream, let uvShutdown do it
joshgoebel May 31, 2021
b194c62
abstract path unit tests
joshgoebel May 31, 2021
c99e68e
(fix) Use Path for dirname resolution
joshgoebel May 31, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 93 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Build & CI

on: [push]

jobs:
build_and_test_windows:
runs-on: windows-2019
steps:
- name: Checkout wren-console
uses: actions/checkout@v2
- name: Checkout wren-essentials
uses: actions/checkout@v2
with:
repository: joshgoebel/wren-essentials
path: deps/wren-essentials
- name: Checkout wren-package
uses: actions/checkout@v2
with:
repository: joshgoebel/wren-package
path: wren_modules/wren-package
- name: build
run: |
cd "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\"
dir $Env:GITHUB_WORKSPACE
.\MSBuild.exe $Env:GITHUB_WORKSPACE\projects\vs2019\wrenc.vcxproj /p:Configuration="Debug 64bit" /p:Platform="x64"
cd $Env:GITHUB_WORKSPACE
dir $Env:GITHUB_WORKSPACE
.\bin\wrenc_d.exe package.wren install
- name: Archive production artifacts
uses: actions/upload-artifact@v2
with:
name: wrenc-windows
path: |
bin/wrenc.exe
- name: test
run: |
cd $Env:GITHUB_WORKSPACE
python3 .\util\test.py --suffix=_d


build_and_test_mac:
runs-on: macos-10.15
steps:
- name: Checkout wren-console
uses: actions/checkout@v2
- name: Checkout wren-essentials
uses: actions/checkout@v2
with:
repository: joshgoebel/wren-essentials
path: deps/wren-essentials
- name: Checkout wren-package
uses: actions/checkout@v2
with:
repository: joshgoebel/wren-package
path: wren_modules/wren-package
- name: build & test
run: |
make -j8 -C projects/make.mac/
./bin/wrenc package.wren install
python3 ./util/test.py
- name: Archive production artifacts
uses: actions/upload-artifact@v2
with:
name: wrenc-mac
path: |
bin/wrenc

build_and_test:
runs-on: ubuntu-latest
steps:
- name: Checkout wren-console
uses: actions/checkout@v2
- name: Checkout wren-essentials
uses: actions/checkout@v2
with:
repository: joshgoebel/wren-essentials
path: deps/wren-essentials
- name: Checkout wren-package
uses: actions/checkout@v2
with:
repository: joshgoebel/wren-package
path: wren_modules/wren-package
- name: build & test
run: |
make -j8 -C projects/make/
./bin/wrenc package.wren install
python3 ./util/test.py
- name: Archive production artifacts
uses: actions/upload-artifact@v2
with:
name: wrenc-linux
path: |
bin/wrenc
165 changes: 165 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
---
name: "Release"

on:
push:
tags:
- "v*"

jobs:
tagged-release:
name: "New Release (Linux)"
runs-on: "ubuntu-latest"
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
release_version: ${{ env.RELEASE_VERSION }}
prerelease: ${{ env.PRERELEASE }}

steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set env & pre-setup
run: |
echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
mkdir wren_modules
echo "PRERELEASE=false" >> $GITHUB_ENV
# determine if we are a pre-release or not
- if: contains(github.ref, 'beta') || contains(github.ref, 'test')
run: |
echo "PRERELEASE=true" >> $GITHUB_ENV
- name: Checkout repository
uses: actions/checkout@v2
with:
repository: joshgoebel/wren-essentials
path: deps/wren-essentials
- name: "Build & test"
run: |
make -j8 -C projects/make/
cd wren_modules
git clone --depth 1 https://github.com/RobLoach/wren-assert.git
git clone --depth 1 https://github.com/joshgoebel/wren-testie.git
cd ..
python3 ./util/test.py
- name: "Build distributable"
run: |
mkdir -p dist/bin
cp LICENSE dist
cp README.md dist
cp bin/wrenc dist/bin
- name: Compress action step
uses: master-atul/[email protected]
id: compress
with:
command: c
cwd: ./dist
files: |
./bin/wrenc
./README.md
./LICENSE
outPath: wren-console-${{ env.RELEASE_VERSION }}-linux.tar.gz
- uses: "marvinpinto/action-automatic-releases@latest"
id: create_release
with:
automatic_release_tag: "${{ env.RELEASE_VERSION }}"
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: "${{ env.PRERELEASE }}"
files: |
wren-console-${{ env.RELEASE_VERSION }}-linux.tar.gz

windows-assets:
needs: tagged-release
runs-on: windows-2019
if: ${{ false }} # disable for now

steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set env
shell: bash
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: "Build & test"
run: |
cd deps
git clone --depth 1 https://github.com/joshgoebel/wren-essentials.git
cd ..
cd "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\"
dir $Env:GITHUB_WORKSPACE
.\MSBuild.exe $Env:GITHUB_WORKSPACE\projects\vs2019\wrenc.vcxproj /p:Configuration="Release 64bit" /p:Platform="x64"
cd $Env:GITHUB_WORKSPACE
dir $Env:GITHUB_WORKSPACE
mkdir wren_modules
cd wren_modules
git clone --depth 1 https://github.com/RobLoach/wren-assert.git
git clone --depth 1 https://github.com/joshgoebel/wren-testie.git
cd ..
# ./bin/wrenc test/unit/path_test.wren
# python3 ./util/test.py
mkdir -p dist/bin
cp LICENSE dist/LICENSE.txt
cp README.md dist
cp bin/wrenc.exe dist/bin
7z a -mm=deflate -mx=9 wren-console.zip dist
7z rn wren-console.zip dist wren-console-${{ env.RELEASE_VERSION }}-windows
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.tagged-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./wren-console.zip
asset_name: wren-console-${{ env.RELEASE_VERSION }}-windows.zip
asset_content_type: application/zip

mac-assets:
name: "Mac build assets"
needs: tagged-release
runs-on: macos-10.15
if: ${{ true }}

steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Copy environment from our release runner
run: |
echo "RELEASE_VERSION=${{ needs.tagged-release.outputs.release_version }}" >> $GITHUB_ENV
echo "PRERELEASE=${{ needs.tagged-release.outputs.prerelease }}" >> $GITHUB_ENV
- name: Checkout repository
uses: actions/checkout@v2
with:
repository: joshgoebel/wren-essentials
path: deps/wren-essentials
- name: "Build & test"
run: |
make -j8 -C projects/make.mac/
mkdir wren_modules
cd wren_modules
git clone --depth 1 https://github.com/RobLoach/wren-assert.git
git clone --depth 1 https://github.com/joshgoebel/wren-testie.git
cd ..
python3 ./util/test.py
- name: "Build distributable"
run: |
mkdir -p dist/bin
cp LICENSE dist/LICENSE.txt
cp README.md dist
cp bin/wrenc dist/bin
- name: Create tarball package
uses: master-atul/[email protected]
id: compress
with:
command: c
cwd: ./dist
files: |
./bin/wrenc
./README.md
./LICENSE.txt
outPath: wren-console-${{ env.RELEASE_VERSION }}-mac.tar.gz
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.tagged-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./wren-console-${{ env.RELEASE_VERSION }}-mac.tar.gz
asset_name: wren-console-${{ env.RELEASE_VERSION }}-mac.tar.gz
asset_content_type: application/gzip
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,15 @@ obj/
/.sass-cache
*.pyc

# scratch junk
/work

# sample test script
/samples

# installed Wren modules
/wren_modules

# I leave a temporary Wren script at the top level so that I can quickly test
# stuff.
/scratch.wren
Expand Down
25 changes: 0 additions & 25 deletions .travis.sh

This file was deleted.

26 changes: 0 additions & 26 deletions .travis.yml

This file was deleted.

Loading