From 8b20edbecbe09e9bb7043d4bdf131c490df3ac4f Mon Sep 17 00:00:00 2001 From: David Van Horn Date: Fri, 5 Sep 2025 19:35:06 -0400 Subject: [PATCH 01/12] Update Kalyan's OHs. --- www/main.scrbl | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/www/main.scrbl b/www/main.scrbl index ea6a4710..15408d77 100644 --- a/www/main.scrbl +++ b/www/main.scrbl @@ -72,24 +72,25 @@ class via ELMS. @bold{Feedback:} We welcome anonymous feedback on the course and its staff using this @link[feedback]{form}. -@bold{TA office hours:} @office-hour-location +@bold{TA office hours:} @office-hour-location (unless otherwise noted) @itemlist[ #:style 'compact @item{Monday @itemlist[ @item{9:00–12:00 — Zhonqi} - @item{12:00–3:00 — Ben} - @item{3:30–6:30 — Kalyan}]} - @item{Tuesday} + @item{12:00–3:00 — Ben}]} + @item{Tuesday + @itemlist[ + @item{5:00–8:00 - Kalyan (IRB, 2nd Floor)}]} @item{Wednesday @itemlist[ @item{9:00–12:00 — Zhonqi} - @item{12:00–3:00 — Ben} - @item{3:30–6:30 — Kalyan}]} + @item{12:00–3:00 — Ben}]} @item{Thursday @itemlist[ - @item{10:00–1:00 — Zinat}]} + @item{10:00–1:00 — Zinat} + @item{5:00–8:00 - Kalyan (IRB, 2nd Floor)}]} @item{Friday @itemlist[ @item{11:00–2:00 — Zinat} From d35f7f52b75889134ec009228ddacf10b25939f2 Mon Sep 17 00:00:00 2001 From: David Van Horn Date: Fri, 5 Sep 2025 22:04:38 -0400 Subject: [PATCH 02/12] Add colophon to show some build info. --- www/colophon.scrbl | 23 +++++++++++++++++++++++ www/main.scrbl | 1 + 2 files changed, 24 insertions(+) create mode 100644 www/colophon.scrbl diff --git a/www/colophon.scrbl b/www/colophon.scrbl new file mode 100644 index 00000000..ba5c4cde --- /dev/null +++ b/www/colophon.scrbl @@ -0,0 +1,23 @@ +#lang scribble/base +@(require racket/date + racket/port + racket/system + racket/string) + +@(define (shell s) + (with-output-to-string (λ () (system s)))) + +@(define (i s) + (item (verbatim (shell s)))) + +@title{Colophon} + +This document (@string-trim[(shell "git rev-parse --short HEAD")]) was produced on @(date->string (current-date) #t). + +System information: +@itemlist[ + (i "uname -a") + (i "racket --version") + (i "raco pkg show -u a86 langs") + (i "nasm --version") + (i "gcc --version")] diff --git a/www/main.scrbl b/www/main.scrbl index 15408d77..55080f0f 100644 --- a/www/main.scrbl +++ b/www/main.scrbl @@ -105,3 +105,4 @@ staff using this @link[feedback]{form}. @include-section{midterms.scrbl} @include-section{project.scrbl} @include-section{software.scrbl} +@include-section{colophon.scrbl} From d2d3d01e787fd2af1a0be47e0f9af149f0771166 Mon Sep 17 00:00:00 2001 From: David Van Horn Date: Fri, 5 Sep 2025 22:15:59 -0400 Subject: [PATCH 03/12] Tweak colophon. --- www/colophon.scrbl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/www/colophon.scrbl b/www/colophon.scrbl index ba5c4cde..b555174a 100644 --- a/www/colophon.scrbl +++ b/www/colophon.scrbl @@ -10,13 +10,13 @@ @(define (i s) (item (verbatim (shell s)))) -@title{Colophon} +@title[#:style '(unnumbered)]{Colophon} This document (@string-trim[(shell "git rev-parse --short HEAD")]) was produced on @(date->string (current-date) #t). System information: @itemlist[ - (i "uname -a") + (i "uname -omr") (i "racket --version") (i "raco pkg show -u a86 langs") (i "nasm --version") From bb9792fe9cef1ad4244c82418f7a77b057ba6dc7 Mon Sep 17 00:00:00 2001 From: David Van Horn Date: Fri, 5 Sep 2025 22:17:28 -0400 Subject: [PATCH 04/12] Tweak colophon. --- www/colophon.scrbl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/colophon.scrbl b/www/colophon.scrbl index b555174a..c9707114 100644 --- a/www/colophon.scrbl +++ b/www/colophon.scrbl @@ -18,6 +18,6 @@ System information: @itemlist[ (i "uname -omr") (i "racket --version") - (i "raco pkg show -u a86 langs") + (i "raco pkg show -u a86 langsraco pkg show -lu a86 langs") (i "nasm --version") (i "gcc --version")] From b371812be7079d28ff0da056365beb26131bbe3f Mon Sep 17 00:00:00 2001 From: David Van Horn Date: Fri, 5 Sep 2025 22:18:48 -0400 Subject: [PATCH 05/12] Remove leftover Kalyan OHs. --- www/main.scrbl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/www/main.scrbl b/www/main.scrbl index 55080f0f..1d3371a8 100644 --- a/www/main.scrbl +++ b/www/main.scrbl @@ -93,8 +93,7 @@ staff using this @link[feedback]{form}. @item{5:00–8:00 - Kalyan (IRB, 2nd Floor)}]} @item{Friday @itemlist[ - @item{11:00–2:00 — Zinat} - @item{1:00–4:00 — Kalyan}]} + @item{11:00–2:00 — Zinat}]} ] @include-section{syllabus.scrbl} From 54e25ac208bda1fa4ff8823e0d92b8a7110e6f5b Mon Sep 17 00:00:00 2001 From: David Van Horn Date: Fri, 5 Sep 2025 22:26:32 -0400 Subject: [PATCH 06/12] Tweak uname in colophon. --- www/colophon.scrbl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/colophon.scrbl b/www/colophon.scrbl index c9707114..06e14794 100644 --- a/www/colophon.scrbl +++ b/www/colophon.scrbl @@ -16,7 +16,7 @@ This document (@string-trim[(shell "git rev-parse --short HEAD")]) was produced System information: @itemlist[ - (i "uname -omr") + (i "uname -srm") (i "racket --version") (i "raco pkg show -u a86 langsraco pkg show -lu a86 langs") (i "nasm --version") From 26e8dffdee2e4a66273ccb84a77fd4afadb1ae6d Mon Sep 17 00:00:00 2001 From: David Van Horn Date: Fri, 5 Sep 2025 22:28:19 -0400 Subject: [PATCH 07/12] Fix up raco pkg show in colophon. --- www/colophon.scrbl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/colophon.scrbl b/www/colophon.scrbl index 06e14794..d4d13bec 100644 --- a/www/colophon.scrbl +++ b/www/colophon.scrbl @@ -18,6 +18,6 @@ System information: @itemlist[ (i "uname -srm") (i "racket --version") - (i "raco pkg show -u a86 langsraco pkg show -lu a86 langs") + (i "raco pkg show -lu a86 langs") (i "nasm --version") (i "gcc --version")] From 77bc6b1b91de7721532b2d2392fa957d35f61835 Mon Sep 17 00:00:00 2001 From: David Van Horn Date: Fri, 5 Sep 2025 22:42:31 -0400 Subject: [PATCH 08/12] Try setting the timezone. --- .github/workflows/push.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index c284be08..0145c881 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -7,6 +7,10 @@ jobs: build: runs-on: ubuntu-latest steps: + - name: Set timezone + uses: szenius/set-timezone@v2.0 + with: + timezoneLinux: "America/New_York" - name: Checkout uses: actions/checkout@main - name: Install dependencies From c41c91af69eab183c2580ca22bf060841d304ee1 Mon Sep 17 00:00:00 2001 From: David Van Horn Date: Fri, 5 Sep 2025 22:57:13 -0400 Subject: [PATCH 09/12] syntax. --- .github/workflows/push.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 0145c881..559a8673 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -9,8 +9,8 @@ jobs: steps: - name: Set timezone uses: szenius/set-timezone@v2.0 - with: - timezoneLinux: "America/New_York" + with: + timezoneLinux: "America/New_York" - name: Checkout uses: actions/checkout@main - name: Install dependencies From 0e4226ed2bcb950c9e6dfb8d1981b74db3320039 Mon Sep 17 00:00:00 2001 From: David Van Horn Date: Sat, 6 Sep 2025 07:37:09 -0400 Subject: [PATCH 10/12] Move office hours to defns.rkt. --- www/defns.rkt | 22 ++++++++++++++++++ www/main.scrbl | 63 +++++++++----------------------------------------- 2 files changed, 33 insertions(+), 52 deletions(-) diff --git a/www/defns.rkt b/www/defns.rkt index 51614b27..3954d2ca 100644 --- a/www/defns.rkt +++ b/www/defns.rkt @@ -64,3 +64,25 @@ "Thursday, November 20, 11:59PM" "Thursday, December 4, 11:59PM") (sub1 i))) + +(define office-hours + (itemlist + #:style 'compact + (item "Monday" + (itemlist + (item "9:00am–12:00pm — Zhonqi") + (item "12:00pm–3:00pm — Ben"))) + (item "Tuesday" + (itemlist + (item "5:00pm–8:00pm - Kalyan (IRB, 2nd Floor)"))) + (item "Wednesday" + (itemlist + (item "9:00am–12:00pm — Zhonqi") + (item "12:00pm–3:00pm — Ben"))) + (item "Thursday" + (itemlist + (item "10:00am–1:00pm — Zinat") + (item "5:00pm–8:00pm — Kalyan (IRB, 2nd Floor)"))) + (item "Friday" + (itemlist + (item "11:00am–2:00pm — Zinat"))))) diff --git a/www/main.scrbl b/www/main.scrbl index 1d3371a8..722dc2b1 100644 --- a/www/main.scrbl +++ b/www/main.scrbl @@ -6,16 +6,12 @@ "defns.rkt" "utils.rkt") -@(define (blockquote . strs) - (make-nested-flow (make-style "blockquote" '(command)) - (decode-flow strs))) - - @(define accessible (style #f (list (js-addition "js/accessibility.js") (attributes '((lang . "en")))))) -@title[#:style accessible @courseno]{: Design and Implementation of Programming Languages} +@title[#:style accessible @courseno]{: Design and Implementation of +Programming Languages} @image[#:scale 1/2 #:style float-right]{img/wizard.png} @@ -40,61 +36,24 @@ implement several related languages. #;(list prof2 prof2-email) staff)] - -@;{ -@tabular[#:style 'boxed - #:row-properties '(bottom-border ()) - (list (list @bold{Time} @bold{Monday} @bold{Tuesday} @bold{Wednesday} @bold{Thursday} @bold{Friday}) - (list "8 AM" 'cont 'cont 'cont 'cont 'cont) - (list "9 AM" 'cont 'cont 'cont 'cont 'cont) - (list "10 AM" 'cont 'cont 'cont 'cont 'cont) - (list "11 AM" 'cont 'cont 'cont 'cont 'cont) - (list "12 PM" 'cont 'cont 'cont 'cont 'cont) - (list "1 PM" 'cont 'cont 'cont 'cont 'cont) - (list "2 PM" 'cont 'cont 'cont 'cont 'cont) - (list "3 PM" 'cont 'cont 'cont 'cont 'cont) - (list "4 PM" 'cont 'cont 'cont 'cont 'cont) - (list "5 PM" 'cont 'cont 'cont 'cont 'cont))] -} - @bold{Communications:} @link[@elms-url]{ELMS}, @link[@piazza]{Piazza} -@bold{Assumptions:} This course assumes you know the material in CMSC 330 and -CMSC 216. In particular, you need to know how to program in a functional -programming language like OCaml and some familiarity with programming in C and -Assembly. See the @seclink["Texts"]{Texts} page for references to brush up on -this material. +@bold{Assumptions:} This course assumes you know the material in CMSC +330 and CMSC 216. In particular, you need to know how to program in a +functional programming language like OCaml and some familiarity with +programming in C and Assembly. See the @seclink["Texts"]{Texts} page +for references to brush up on this material. -@bold{Disclaimer:} All information on this web page is tentative and subject to -change. Any substantive change will be accompanied with an announcement to the -class via ELMS. +@bold{Disclaimer:} All information on this web page is tentative and +subject to change. Any substantive change will be accompanied with an +announcement to the class via ELMS. @bold{Feedback:} We welcome anonymous feedback on the course and its staff using this @link[feedback]{form}. @bold{TA office hours:} @office-hour-location (unless otherwise noted) -@itemlist[ - #:style 'compact - @item{Monday - @itemlist[ - @item{9:00–12:00 — Zhonqi} - @item{12:00–3:00 — Ben}]} - @item{Tuesday - @itemlist[ - @item{5:00–8:00 - Kalyan (IRB, 2nd Floor)}]} - @item{Wednesday - @itemlist[ - @item{9:00–12:00 — Zhonqi} - @item{12:00–3:00 — Ben}]} - @item{Thursday - @itemlist[ - @item{10:00–1:00 — Zinat} - @item{5:00–8:00 - Kalyan (IRB, 2nd Floor)}]} - @item{Friday - @itemlist[ - @item{11:00–2:00 — Zinat}]} -] +@office-hours @include-section{syllabus.scrbl} @include-section{texts.scrbl} From 8666fd267b37de9f13eab70f7f5eca2f2f8c0d62 Mon Sep 17 00:00:00 2001 From: David Van Horn Date: Sat, 6 Sep 2025 09:59:15 -0400 Subject: [PATCH 11/12] Update a86 notes in light of _ change. --- www/notes/a86.scrbl | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/www/notes/a86.scrbl b/www/notes/a86.scrbl index b0607713..ff04edc6 100644 --- a/www/notes/a86.scrbl +++ b/www/notes/a86.scrbl @@ -144,9 +144,9 @@ underscore, while on Linux you do not. So on a Mac, you would use the names @tt{_entry}, @tt{_tri}, and @tt{_done}, while on Linux you would use @tt{entry}, @tt{tri}, and @tt{done}. -This example is shown using the @(if (eq? (system-type 'os) 'macosx) -"MacOS" "Linux") naming convention, because that's what operating -system was used when this web page was built.} +Alternatively, you can impose the underscore naming convention by +passing @tt{--gprefix _} to @tt{nasm}; this way you avoid having to +write the underscores within the file.} @filebox-include[fancy-nasm a86 "tri.s"] @@ -246,13 +246,15 @@ stack or use the @tt{call} instruction.} We can compile the @tt{tri.s} assembly program to an object file with @tt{nasm}: -@margin-note{The format argument should be @tt{macho64} on - Mac OS and @tt{elf64} on Linux.} +@margin-note{The format argument should be @tt{macho64} on macOS and + @tt{elf64} on Linux. The @tt{--gprefix _} argument should be given + on macOS in order to follow the system's naming convention + requirements.} @shellbox[ (format "nasm -f ~a -o tri.o tri.s" (if (eq? 'macosx (system-type 'os)) - "macho64" + "macho64 --gprefix _" "elf64"))] To run the object file, we will need to link with a small C program @@ -407,10 +409,6 @@ program using nasm notation, called @racket[asm-display]. Calling this function prints to the current output port, but it's also possible to write the output to a file or convert it to a string. -@margin-note{The @racket[asm-display] function knows what OS you are -using and adjusts the label naming convention to use underscores or -not, so that you don't have to worry about it.} - @ex[ (asm-display (tri 36)) ] From c9fa27ebfd0f4e72fb449e75d6d2b5759bae3eb0 Mon Sep 17 00:00:00 2001 From: David Van Horn Date: Tue, 9 Sep 2025 13:06:20 -0400 Subject: [PATCH 12/12] Add Abhi to TAs. --- www/defns.rkt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/www/defns.rkt b/www/defns.rkt index 3954d2ca..03eae34e 100644 --- a/www/defns.rkt +++ b/www/defns.rkt @@ -39,6 +39,7 @@ (list (list "Pierce Darragh" "pdarragh@umd.edu") (list "Benjamin Quiring" "bquiring@umd.edu") (list "Kalyan Bhetwal" "bhetwal@umd.edu") + (list "Abhi Senthilkumar" "asenthil@terpmail.umd.edu") (list "Zhongqi Wang" "zqwang@umd.edu") (list "Kazi Tasnim Zinat" "kzintas@umd.edu"))) @@ -71,9 +72,11 @@ (item "Monday" (itemlist (item "9:00am–12:00pm — Zhonqi") - (item "12:00pm–3:00pm — Ben"))) + (item "12:00pm–3:00pm — Ben") + (item "3:00pm–6:00pm — Abhi"))) (item "Tuesday" (itemlist + (item "11:00am–2:00pm - Abhi") (item "5:00pm–8:00pm - Kalyan (IRB, 2nd Floor)"))) (item "Wednesday" (itemlist