Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
36 changes: 13 additions & 23 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
@@ -1,38 +1,26 @@
name: Build and test macOS x86_64
on:
push:
workflow_dispatch:
name: macOS
on: [push, workflow_dispatch]

concurrency:
group: mac-ci-${{ github.ref }}
group: macos-ci-${{ github.ref }}
cancel-in-progress: true

jobs:
build-and-test:
strategy:
fail-fast: false
fail-fast: true
matrix:
os: [macos-13, macos-14]
os: [macos-14, macos-15, macos-15-intel, macos-26]
racket-variant: ['CS']
racket-version: ['8.18']
include:
- os: macos-13
arch: x64
- os: macos-14
arch: arm64
racket-version: ['stable']
runs-on: ${{ matrix.os }}
name: Test on ${{ matrix.os }} (${{ matrix.arch }}) Racket ${{ matrix.racket-variant }} ${{ matrix.racket-version }}
name: OS ${{ matrix.os }} / Racket ${{ matrix.racket-version }}

steps:

- name: Checkout
uses: actions/checkout@v4

- name: Install nasm
run: |
HOMEBREW_NO_AUTO_UPDATE=1 brew tap cmsc430/tap
HOMEBREW_NO_AUTO_UPDATE=1 brew install nasm430

- name: Install Racket
uses: Bogdanp/setup-racket@v1.14
with:
Expand All @@ -53,11 +41,13 @@ jobs:
run: |
uname -a
uname -m
nasm --version
clang --version
gcc --version

- name: Install langs package
run: raco pkg install --auto ../langs/
run: |
raco pkg install --auto ../langs/

- name: Run tests
run: raco test -p langs
run: |
raco test -p langs
37 changes: 29 additions & 8 deletions .github/workflows/push.yml → .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
@@ -1,34 +1,55 @@
on:
- push
name: Ubuntu
on: [push, workflow_dispatch]

concurrency:
group: ubuntu-ci-${{ github.ref }}
cancel-in-progress: true

jobs:
build-and-test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ubuntu-22.04, ubuntu-24.04]
racket-variant: ['CS']
racket-version: ['8.6', '8.8', '8.10', '8.14', '8.18']
name: Test on Racket ${{ matrix.racket-variant }} ${{ matrix.racket-version }} on ${{ matrix.os }}
racket-version: ['8.6', '8.10', '8.14', '8.18', 'stable', 'current']
runs-on: ${{ matrix.os }}
name: OS ${{ matrix.os }} / Racket ${{ matrix.racket-version }}

steps:

- name: Checkout
uses: actions/checkout@main
- name: Install nasm
run: sudo apt-get install nasm

- name: Install Racket
uses: Bogdanp/setup-racket@v1.14
with:
architecture: 'x64'
distribution: 'full'
variant: ${{ matrix.racket-variant }}
version: ${{ matrix.racket-version }}

- name: Cache Racket packages
uses: actions/cache@v4
with:
path: |
~/.racket
~/.cache/racket
key: racket-${{ matrix.racket-variant }}-${{ matrix.racket-version }}-${{ matrix.os }}

- name: Install clang
run: |
sudo apt install -y clang libssl-dev

- name: Version info
run: |
nasm --version
clang --version
gcc --version

- name: Install langs package
run: |
raco pkg install --auto ../langs/

- name: Run tests
run: |
xvfb-run raco test -p langs
8 changes: 4 additions & 4 deletions abscond/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
8 changes: 4 additions & 4 deletions blackmail/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
8 changes: 4 additions & 4 deletions con/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
8 changes: 4 additions & 4 deletions dodger/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
8 changes: 4 additions & 4 deletions dupe/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
8 changes: 4 additions & 4 deletions evildoer/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
9 changes: 4 additions & 5 deletions extort/Makefile
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
main.o \
print.o \
Expand Down
8 changes: 4 additions & 4 deletions fraud/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
8 changes: 4 additions & 4 deletions hoax/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
8 changes: 4 additions & 4 deletions hustle/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
9 changes: 7 additions & 2 deletions info.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,16 @@
(define build-deps
(list "https://github.com/cmsc430/a86.git?path=#main"))


;; Outlaw is omitted here because it depends on libraries that are a pain
;; to ensure are set up properly and we don't want students to see failing
;; tests at the beginning of the semester, nor do we want to get into
;; setting up libraries only needed in the last week and only if you
;; actually care to run Outlaw.

;; To test outlaw you should do an explicit: raco test -c outlaw
(define test-omit-paths (list "outlaw"))
;; To test these, you should do an explicit: raco test -c <lang>
(define test-omit-paths (list "iniquity-gc"
"mountebank"
;; "mug" ;; NOTE: seems to pass currently
"neerdowell"
"outlaw"))
8 changes: 4 additions & 4 deletions iniquity/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
8 changes: 4 additions & 4 deletions jig/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
8 changes: 4 additions & 4 deletions knock/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
8 changes: 4 additions & 4 deletions loot/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
8 changes: 4 additions & 4 deletions mountebank/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
8 changes: 4 additions & 4 deletions mug/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
8 changes: 4 additions & 4 deletions neerdowell/Makefile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
ifeq ($(shell uname), Darwin)
LANGS_CC ?= arch -x86_64 gcc
LANGS_AS ?= nasm -g -f macho64 --gprefix _
LANGS_CC ?= arch -x86_64 clang
LANGS_AS ?= arch -x86_64 clang -c
else
LANGS_CC ?= gcc
LANGS_AS ?= nasm -g -f elf64
LANGS_CC ?= clang
LANGS_AS ?= clang -c
endif

objs = \
Expand Down
Loading