Skip to content

Commit 0908964

Browse files
authored
Merge pull request #193 from cmsc430/fall-2025
Fall 2025
2 parents 9a2f54c + c9fa27e commit 0908964

File tree

5 files changed

+74
-64
lines changed

5 files changed

+74
-64
lines changed

.github/workflows/push.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ jobs:
77
build:
88
runs-on: ubuntu-latest
99
steps:
10+
- name: Set timezone
11+
uses: szenius/[email protected]
12+
with:
13+
timezoneLinux: "America/New_York"
1014
- name: Checkout
1115
uses: actions/checkout@main
1216
- name: Install dependencies

www/colophon.scrbl

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#lang scribble/base
2+
@(require racket/date
3+
racket/port
4+
racket/system
5+
racket/string)
6+
7+
@(define (shell s)
8+
(with-output-to-string (λ () (system s))))
9+
10+
@(define (i s)
11+
(item (verbatim (shell s))))
12+
13+
@title[#:style '(unnumbered)]{Colophon}
14+
15+
This document (@string-trim[(shell "git rev-parse --short HEAD")]) was produced on @(date->string (current-date) #t).
16+
17+
System information:
18+
@itemlist[
19+
(i "uname -srm")
20+
(i "racket --version")
21+
(i "raco pkg show -lu a86 langs")
22+
(i "nasm --version")
23+
(i "gcc --version")]

www/defns.rkt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
(list (list "Pierce Darragh" "[email protected]")
4040
(list "Benjamin Quiring" "[email protected]")
4141
(list "Kalyan Bhetwal" "[email protected]")
42+
(list "Abhi Senthilkumar" "[email protected]")
4243
(list "Zhongqi Wang" "[email protected]")
4344
(list "Kazi Tasnim Zinat" "[email protected]")))
4445

@@ -64,3 +65,27 @@
6465
"Thursday, November 20, 11:59PM"
6566
"Thursday, December 4, 11:59PM")
6667
(sub1 i)))
68+
69+
(define office-hours
70+
(itemlist
71+
#:style 'compact
72+
(item "Monday"
73+
(itemlist
74+
(item "9:00am–12:00pm — Zhonqi")
75+
(item "12:00pm–3:00pm — Ben")
76+
(item "3:00pm–6:00pm — Abhi")))
77+
(item "Tuesday"
78+
(itemlist
79+
(item "11:00am–2:00pm - Abhi")
80+
(item "5:00pm–8:00pm - Kalyan (IRB, 2nd Floor)")))
81+
(item "Wednesday"
82+
(itemlist
83+
(item "9:00am–12:00pm — Zhonqi")
84+
(item "12:00pm–3:00pm — Ben")))
85+
(item "Thursday"
86+
(itemlist
87+
(item "10:00am–1:00pm — Zinat")
88+
(item "5:00pm–8:00pm — Kalyan (IRB, 2nd Floor)")))
89+
(item "Friday"
90+
(itemlist
91+
(item "11:00am–2:00pm — Zinat")))))

www/main.scrbl

Lines changed: 14 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,12 @@
66
"defns.rkt"
77
"utils.rkt")
88

9-
@(define (blockquote . strs)
10-
(make-nested-flow (make-style "blockquote" '(command))
11-
(decode-flow strs)))
12-
13-
149
@(define accessible
1510
(style #f (list (js-addition "js/accessibility.js")
1611
(attributes '((lang . "en"))))))
1712

18-
@title[#:style accessible @courseno]{: Design and Implementation of Programming Languages}
13+
@title[#:style accessible @courseno]{: Design and Implementation of
14+
Programming Languages}
1915

2016
@image[#:scale 1/2 #:style float-right]{img/wizard.png}
2117

@@ -40,61 +36,24 @@ implement several related languages.
4036
#;(list prof2 prof2-email)
4137
staff)]
4238

43-
44-
@;{
45-
@tabular[#:style 'boxed
46-
#:row-properties '(bottom-border ())
47-
(list (list @bold{Time} @bold{Monday} @bold{Tuesday} @bold{Wednesday} @bold{Thursday} @bold{Friday})
48-
(list "8 AM" 'cont 'cont 'cont 'cont 'cont)
49-
(list "9 AM" 'cont 'cont 'cont 'cont 'cont)
50-
(list "10 AM" 'cont 'cont 'cont 'cont 'cont)
51-
(list "11 AM" 'cont 'cont 'cont 'cont 'cont)
52-
(list "12 PM" 'cont 'cont 'cont 'cont 'cont)
53-
(list "1 PM" 'cont 'cont 'cont 'cont 'cont)
54-
(list "2 PM" 'cont 'cont 'cont 'cont 'cont)
55-
(list "3 PM" 'cont 'cont 'cont 'cont 'cont)
56-
(list "4 PM" 'cont 'cont 'cont 'cont 'cont)
57-
(list "5 PM" 'cont 'cont 'cont 'cont 'cont))]
58-
}
59-
6039
@bold{Communications:} @link[@elms-url]{ELMS}, @link[@piazza]{Piazza}
6140

62-
@bold{Assumptions:} This course assumes you know the material in CMSC 330 and
63-
CMSC 216. In particular, you need to know how to program in a functional
64-
programming language like OCaml and some familiarity with programming in C and
65-
Assembly. See the @seclink["Texts"]{Texts} page for references to brush up on
66-
this material.
41+
@bold{Assumptions:} This course assumes you know the material in CMSC
42+
330 and CMSC 216. In particular, you need to know how to program in a
43+
functional programming language like OCaml and some familiarity with
44+
programming in C and Assembly. See the @seclink["Texts"]{Texts} page
45+
for references to brush up on this material.
6746

68-
@bold{Disclaimer:} All information on this web page is tentative and subject to
69-
change. Any substantive change will be accompanied with an announcement to the
70-
class via ELMS.
47+
@bold{Disclaimer:} All information on this web page is tentative and
48+
subject to change. Any substantive change will be accompanied with an
49+
announcement to the class via ELMS.
7150

7251
@bold{Feedback:} We welcome anonymous feedback on the course and its
7352
staff using this @link[feedback]{form}.
7453

75-
@bold{TA office hours:} @office-hour-location
76-
77-
@itemlist[
78-
#:style 'compact
79-
@item{Monday
80-
@itemlist[
81-
@item{9:00–12:00 — Zhonqi}
82-
@item{12:00–3:00 — Ben}
83-
@item{3:30–6:30 — Kalyan}]}
84-
@item{Tuesday}
85-
@item{Wednesday
86-
@itemlist[
87-
@item{9:00–12:00 — Zhonqi}
88-
@item{12:00–3:00 — Ben}
89-
@item{3:30–6:30 — Kalyan}]}
90-
@item{Thursday
91-
@itemlist[
92-
@item{10:00–1:00 — Zinat}]}
93-
@item{Friday
94-
@itemlist[
95-
@item{11:00–2:00 — Zinat}
96-
@item{1:00–4:00 — Kalyan}]}
97-
]
54+
@bold{TA office hours:} @office-hour-location (unless otherwise noted)
55+
56+
@office-hours
9857

9958
@include-section{syllabus.scrbl}
10059
@include-section{texts.scrbl}
@@ -104,3 +63,4 @@ staff using this @link[feedback]{form}.
10463
@include-section{midterms.scrbl}
10564
@include-section{project.scrbl}
10665
@include-section{software.scrbl}
66+
@include-section{colophon.scrbl}

www/notes/a86.scrbl

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,9 @@ underscore, while on Linux you do not. So on a Mac, you would use the
144144
names @tt{_entry}, @tt{_tri}, and @tt{_done}, while on Linux you would
145145
use @tt{entry}, @tt{tri}, and @tt{done}.
146146

147-
This example is shown using the @(if (eq? (system-type 'os) 'macosx)
148-
"MacOS" "Linux") naming convention, because that's what operating
149-
system was used when this web page was built.}
147+
Alternatively, you can impose the underscore naming convention by
148+
passing @tt{--gprefix _} to @tt{nasm}; this way you avoid having to
149+
write the underscores within the file.}
150150

151151
@filebox-include[fancy-nasm a86 "tri.s"]
152152

@@ -246,13 +246,15 @@ stack or use the @tt{call} instruction.}
246246
We can compile the @tt{tri.s} assembly program to an object
247247
file with @tt{nasm}:
248248

249-
@margin-note{The format argument should be @tt{macho64} on
250-
Mac OS and @tt{elf64} on Linux.}
249+
@margin-note{The format argument should be @tt{macho64} on macOS and
250+
@tt{elf64} on Linux. The @tt{--gprefix _} argument should be given
251+
on macOS in order to follow the system's naming convention
252+
requirements.}
251253

252254
@shellbox[
253255
(format "nasm -f ~a -o tri.o tri.s"
254256
(if (eq? 'macosx (system-type 'os))
255-
"macho64"
257+
"macho64 --gprefix _"
256258
"elf64"))]
257259

258260
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
407409
this function prints to the current output port, but it's also
408410
possible to write the output to a file or convert it to a string.
409411

410-
@margin-note{The @racket[asm-display] function knows what OS you are
411-
using and adjusts the label naming convention to use underscores or
412-
not, so that you don't have to worry about it.}
413-
414412
@ex[
415413
(asm-display (tri 36))
416414
]

0 commit comments

Comments
 (0)