From 794be1aa1cf482277a7a2447d1a8a6adc017c3dc Mon Sep 17 00:00:00 2001 From: Pierce Darragh Date: Wed, 15 Oct 2025 16:53:19 -0400 Subject: [PATCH 1/3] Fix nasm version check Recently updated to nasm 3.01 and the previous check started to fail. --- a86/check-nasm.rkt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/a86/check-nasm.rkt b/a86/check-nasm.rkt index a4a659c..208f271 100644 --- a/a86/check-nasm.rkt +++ b/a86/check-nasm.rkt @@ -39,7 +39,9 @@ HERE (define (nasm-version-2.15+?) (match (nasm-version) - [(list maj min) (and (>= maj 2) (>= min 15))] + [(list maj min) + (or (and (= maj 2) (>= min 15)) + (> maj 2))] [_ #f])) ;; -> [Maybe (list Natural Natural)] From 84ed4c22976bba6cc6933159410e8f103d3ea742 Mon Sep 17 00:00:00 2001 From: Pierce Darragh Date: Wed, 15 Oct 2025 16:55:08 -0400 Subject: [PATCH 2/3] Fix typo --- a86/check-nasm.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/a86/check-nasm.rkt b/a86/check-nasm.rkt index 208f271..3a860be 100644 --- a/a86/check-nasm.rkt +++ b/a86/check-nasm.rkt @@ -61,4 +61,4 @@ HERE (getenv "PATH") (if (and (drracket?) (macos?) (launched-with-finder?)) macosx-msg "")))) (unless (nasm-version-2.15+?) - (eprintf "nasm 2.15 or later is recommended; some faatures may not work as expected.\n"))) + (eprintf "nasm 2.15 or later is recommended; some features may not work as expected.\n"))) From 2bd193dbcf2ce45b7c0401e7c77423e36e261d85 Mon Sep 17 00:00:00 2001 From: Pierce Darragh Date: Fri, 17 Oct 2025 10:51:13 -0400 Subject: [PATCH 3/3] Make nasm version check more specific to warn against 3.x on macOS --- a86/check-nasm.rkt | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/a86/check-nasm.rkt b/a86/check-nasm.rkt index 3a860be..e4fdb64 100644 --- a/a86/check-nasm.rkt +++ b/a86/check-nasm.rkt @@ -37,13 +37,26 @@ HERE (and (system "nasm -v") (get-output-string (current-output-port))))) -(define (nasm-version-2.15+?) - (match (nasm-version) +;; 'low => [0.00, 2.15) +;; 'ok => [2.15, 3.00) +;; 'high => [3.00, ----) +;; #f => no nasm found +(define (nasm-version-acceptability ver) + (match ver [(list maj min) - (or (and (= maj 2) (>= min 15)) - (> maj 2))] + (cond + [(and (= maj 2) + (>= min 15)) 'ok] + [(> maj 2) 'high] + [(or (< maj 2) + (< min 15)) 'low])] [_ #f])) +(define (nasm-version-2.15+?) + (case (nasm-version-acceptability (nasm-version)) + [(ok high) #t] + [else #f])) + ;; -> [Maybe (list Natural Natural)] (define (nasm-version) (match (nasm-version-string) @@ -59,6 +72,7 @@ HERE (unless v (error (format nasm-msg (getenv "PATH") - (if (and (drracket?) (macos?) (launched-with-finder?)) macosx-msg "")))) - (unless (nasm-version-2.15+?) - (eprintf "nasm 2.15 or later is recommended; some features may not work as expected.\n"))) + (if (and (drracket?) (macos?) (launched-with-finder?)) macosx-msg "")))) + (case (nasm-version-acceptability v) + [(high) (when (macos?) (eprintf "nasm 3.x is not recommended on macOS; please install nasm 2.15+\n"))] + [(low) (eprintf "nasm 2.15 or later is recommended; some features may not work as expected.\n")]))