Skip to content

Complete Issue box #380

@nirmal-mina

Description

@nirmal-mina

How to read this note:

  • Likely marks: my best estimate of whether the issue fits the course's 0.3 bugfix bucket or 0.1 grammar/spelling/comment bucket.
  • For PDFs, I list pdf file name + page number.
  • For source files, I list file name + line number.

Important note about slide duplicates:

  • Many slide issues appear in both the normal PDF and the animated PDF export.
  • I list all occurrences with exact page numbers, but these are often the same conceptual fix repeated across exports.

A. Fresh High-Confidence Bugfixes

  • Fresh | Likely 0.3 | 01/README.md:39-40
    The macOS workaround repeats the same broken linker flag:
    gcc -o mem mem.c -Wall -Wl,-no_pie
    So the documented fix is itself not runnable as written.

  • Fresh | Likely 0.3 | 08/p3.c:31
    assert(wc >= 0); is used without including <assert.h>.
    make in 08/ fails with an implicit declaration warning and then a link failure for assert.

  • Fresh | Likely 0.3 | scripts/notify.py:11-42
    get_discord_payload_v0() builds a payload object but returns bare return instead of return payload.
    The helper is currently unused, but if it is called later it will silently return None.

  • Fresh | Likely 0.3 | 01/common.h:4-10
    common.h is not self-contained.
    It uses NULL in gettimeofday(&t, NULL) but does not include a header that defines NULL.
    Minimal include-only compilation fails.

  • Fresh | Likely 0.3 | 05/common.h:4-10
    Same self-containment bug as above.
    Minimal include-only compilation fails for this header too.

  • Fresh | Likely 0.3 | 09/common.h:4-10
    Same self-containment bug as above.
    Minimal include-only compilation fails here as well.

  • Fresh | Likely 0.3 | 05/Makefile:3-10
    make clean removes only io but leaves the built fsync binary behind.
    I validated this: after make clean, 05/fsync still exists.

  • Fresh | Likely 0.3 | 08/Makefile:3-4
    make clean uses plain rm without -f.
    It fails if some binaries are missing.
    I validated this locally: make clean in 08/ exits with an error when some targets are absent.

  • Fresh | Likely 0.3 | 09/Makefile:5-20
    make clean removes executables but leaves generated assembly files such as atomic.s, peterson-breaks.s, and peterson-fence.s.
    This is inconsistent with the actual build, because the Makefile explicitly generates those .s files.

B. Fresh Lower-Priority but Real Source Issues

  • Fresh | Likely 0.1 or 0.3 depending on reviewer | 09/threads-safe.c:22
    The usage string is wrong.
    The binary is threads-safe, but the program prints:
    usage: threads <loops>
    This is a user-facing error message bug.

  • Fresh | Likely 0.1 | 08/pipe.c:18
    The comment says:
    child: redirect standard output to a file
    but this code redirects standard output into a pipe, not a file.

  • Fresh | Lower confidence bugfix | 04/disk.py:427-435
    The code contains an explicit maintainer note:
    # XXX there is a weird bug in here
    This is not a ready-to-fix erratum by itself, but it is a maintainer-acknowledged unresolved bug location.

  • Fresh | Lower confidence bugfix | 04/disk-precise.py:425-433
    Same unresolved XXX there is a weird bug in here note in the precise variant.

  • Fresh | Lower confidence portability bug | 01/mem.c:14
    %p expects a void *, but p is passed as int *.
    With varargs this is technically undefined behavior, even if it usually works on common ABIs.

  • Fresh | Lower confidence portability bug | 06/va.c:6-9
    %p is used for both a function pointer (main) and an int * without explicit void * conversion.
    GCC warns about both under stricter checking.

C. Fresh Grammar / Spelling / Comment Fixes In Source Files

  • Fresh | Likely 0.1 | 01/README.md:60
    Volatile used to indicate ...
    Better:
    Volatile is used to indicate ...

  • Fresh | Likely 0.1 | 01/README.md:61
    i.e, should be i.e.,

  • Fresh | Likely 0.1 | 01/README.md:62-63
    Volatile is needed to make sure that compiler doesn't ...
    Better:
    Volatile is needed to make sure that the compiler doesn't ...

  • Fresh | Likely 0.1 | 04/README.md:10
    the python Decimal package
    Better:
    the Python Decimal package

  • Fresh | Likely 0.1 | 04/README.md:13
    use at your own caution
    Better:
    use at your own risk
    or
    use with caution

  • Fresh | Likely 0.1 | scripts/notify.py:73
    Discord Webhook URL presented as an environment variable
    Better:
    Discord webhook URL passed as an environment variable

  • Fresh | Likely 0.1 | scripts/notify.py:78
    Only act notify if the pull request is merged
    Better:
    Only notify if the pull request is merged

D. PDF Slide Issues With Exact File and Page Numbers

D1. i.e, should be i.e.,

  • slides/03-boot.pdf, page 43
    Temporary OS can download OS from network, boot from USB, etc. i.e, it is

  • slides/03-boot-anim.pdf, page 102
    Same issue.

  • slides/07-paging.pdf, page 73
    _start is V2P_WO(entry) i.e, (0x8010000c - 0x80000000)

  • slides/07-paging-anim.pdf, page 304
    Same issue.

  • slides/08-shell.pdf, page 20
    Data will be transferred between processes via this “data” (i.e, without going through disk)

  • slides/08-shell-anim.pdf, page 25
    Same issue.

D2. e.g, should be e.g.,

  • slides/02-x86.pdf, page 14
    register. e.g, while(x != 0) { .. }

  • slides/02-x86-anim.pdf, pages 48, 49, 50
    Same issue repeated in the animated export.

  • slides/06-procs.pdf, page 79
    e.g, B changes its tickets to 250

  • slides/06-procs.pdf, page 84
    e.g, process 2

  • slides/06-procs-anim.pdf, pages 420, 421, 422
    Same e.g, B changes its tickets to 250 issue repeated.

  • slides/06-procs-anim.pdf, pages 435, 436, 437
    Same e.g, process 2 issue repeated.

  • slides/09-parallel.pdf, page 10
    e.g, pthreads

  • slides/09-parallel-anim.pdf, pages 14, 15
    Same issue repeated in the animated export.

D3. that what should be than what

  • slides/01-intro.pdf, page 12
    What if a process needs more memory that what OS gave?

  • slides/01-intro-anim.pdf, page 21
    Same issue.

D4. programs exits should be rewritten

  • slides/01-intro.pdf, page 15
    Disk blocks live after programs exits, computer restarts

  • slides/01-intro-anim.pdf, page 26
    Same idea appears once.

  • slides/01-intro-anim.pdf, page 27
    Same idea appears again in the animated export.

  • slides/05-fs.pdf, page 3
    Same wording appears in the file-system lecture.

  • slides/05-fs-anim.pdf, page 5
    Same issue.

  • slides/05-fs-anim.pdf, page 6
    Same issue repeated again.

Suggested wording:
Disk blocks persist after programs exit and computers restart.

D6. they own the memory should be singular

  • slides/01-intro.pdf, page 20
    Each process thinks they own the memory

  • slides/01-intro-anim.pdf, page 37
    Same issue.

  • slides/06-procs.pdf, page 10
    Same issue.

  • slides/06-procs-anim.pdf, page 16
    Same issue.

  • slides/06-procs-anim.pdf, page 17
    Same issue.

Suggested wording:
Each process thinks it owns the memory.

D7. Broken sentence in process-isolation explanation

  • slides/06-procs.pdf, page 10
    isolated process to its own address space
    This is grammatically broken.
    Better:
    the OS and hardware isolate each process into its own address space

  • slides/06-procs-anim.pdf, pages 16, 17
    Same issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions