Change log
This page lists non-trivial changes made to this material or to automated tests during the course. These changes are also announced on Discord.
We will generally avoid making tests more strict after Test Gadget has opened. If we add tests, we will add them to an ”extra tests” section that doesn’t affect the grade in this instance of the course.
Please point out issues as you see them!
2025-02-16
- (MacOS) Fixed an issue with Test Gadget client on Apple Silicon. Please run the command to update Test Gadget client again if you’re on MacOS.
2025-02-09
- Language spec: removed recursive type definition, since supporting user-visible function types is not required. (They might be required next year.)
2025-02-04
- Parser: added missing
nonlocal pos
to code example. - Type checker, task 4: simplified AST recommendation, mentioned that it’s not mandatory to parse function types.
2025-01-28
- Test Gadget is open! 🎉
- You should have received your username and password by e-mail. It’s probably in your spam folder, because e-mail is difficult 🙄.
- Intro & Setup: Basic instructions for installing Docker added.
- ‼️ Major bugs were found in Test Gadget client program that’s in the original project template.
To update it, please:
- Go to your project directory.
- Run this command to download a new Test Gadget client:
curl --proto '=https' --tlsv1.2 -sSf https://hy-compilers.github.io/spring-2025/assets/ext/downloads/test-gadget-client-latest.tar.gz | tar xvpz
- Ensure
./test-gadget.py --version
says ”test-gadget-client 0.1.1” or newer.
Now ./test-gadget.py submit
should work much more reliably.
Additionally, with some versions of Docker, you may need to edit Dockerfile
and change the line COPY pyproject.toml poetry.lock .
to COPY pyproject.toml poetry.lock ./
I’m sorry for the hassle!
2025-01-26
- Parser task 3: simplified hint to talk about identifier rather than any highest-precedence expression. The more general form is not necessary, at least in this iteration of the course.
2025-01-25
- Tokenizer task 2: rephrased a bit to address some frequently asked questions.
2025-01-24
- Language spec: mentioned that negative numbers should be tokenized as
'-'
followed by a positive number. This matches what tokenizer task 1 says. (Both ways can be made to work though.) - Tokenizer task 1: added advice about not running
python
on source files directly.
2025-01-17
- Intro & setup page: generalized MacOS instructions to apply to both MacOS and Windows.
- Project template: mentioned Linux dependencies to install.
apt install build-essential python3 curl git zlib1g-dev libssl-dev libbz2-dev libffi-dev libreadline-dev liblzma-dev libsqlite3-dev
2025-01-16
- ‼️ Workshop rooms changed: Tuesdays in B121 and Fridays in B222.
2025-01-15
- Intro & setup: fixed issue in
Dockerfile.macdev
- Uploaded video of yesterday’s intro lecture here (for registered participants).
2025-01-14
- Lecture videos now available here (for registered participants).
2025-01-13
- Course site published. Welcome!
- Discord join command fixed: it’s
/join compilers
now.