v0.19-fixes #1470

Open
fare wants to merge 5 commits from v0.19-fixes into v0.19-staging
Owner
No description provided.
vyzo left a comment

claude has a tendency to make a mess for no reason, please reign on it.

claude has a tendency to make a mess for no reason, please reign on it.
src/build.sh Outdated
@ -1,6 +1,7 @@
#!/bin/sh
set -eu
cd $(dirname "$0") # Change to this directory
: ${__ORIG_PWD=$PWD}
Owner

wtf

wtf
src/build.sh Outdated
@ -2,2 +2,3 @@
set -eu
cd $(dirname "$0") # Change to this directory
: ${__ORIG_PWD=$PWD}
cd "$(dirname "$0")" # Change to this directory
Owner

wtf 2.

wtf 2.
src/build.sh Outdated
@ -74,3 +75,1 @@
if [ "x${GERBIL_BUILD_CORES:-}" != "x" ]; then
echo "--- using ${GERBIL_BUILD_CORES} cores for the build"
fi
notify_cores() {
Owner

why is this an improvement?

why is this an improvement?
Author
Owner

So we can have a ./build.sh run that doesn't change the PWD and doesn't print "using 8 cores", and so ./build.sh run gxi can be used in a script as a regular gxi.

So we can have a ./build.sh run that doesn't change the PWD and doesn't print "using 8 cores", and so ./build.sh run gxi can be used in a script as a regular gxi.
Owner

ugh, i dont think i like this idea.

ugh, i dont think i like this idea.
@ -116,6 +116,7 @@ namespace: #f
flags ; type-flags
__table::t ; type-super
fields ; type-fields
;; TODO: fix the MOP so we can include __table::t in the precedence-list
Owner

no, this won't happen.

please remove this todo.

no, this won't happen. please remove this todo.
Author
Owner

I'd like to make it happen as part of our MOP: full support for Gambit structures as supers for our classes. Shouldn't be too hard: if it's a Gambit struct, use a table to find a Gerbil-like descriptor to substitute to it to find the missing slots.

I'd like to make it happen as part of our MOP: full support for Gambit structures as supers for our classes. Shouldn't be too hard: if it's a Gambit struct, use a table to find a Gerbil-like descriptor to substitute to it to find the missing slots.
Owner

no, i dont think it should happen.

gambit structs are already integrated with shadow classes, i dont want to mix the two hierarchies at all.
it will make life miserable as we'll have to check the type type everywhere.

so no, please untodo.

no, i dont think it should happen. gambit structs are already integrated with shadow classes, i dont want to mix the two hierarchies at all. it will make life miserable as we'll have to check the type type everywhere. so no, please untodo.
@ -165,3 +170,1 @@
(&raw-table-test tab)
(&raw-table-seed tab)
(and (&raw-table-lock tab) (__make-inline-lock))))
(let* ((size (raw-table-size-hint->size size-hint))
Owner

wtf. why did it inline this?

wtf. why did it inline this?
fare marked this conversation as resolved
@ -637,2 +647,3 @@
(def (gc-table-new tab (size-hint #f))
(##structure (##structure-type tab) (table-new (&gc-table-gcht tab) size-hint) #f))
(##structure (##structure-type tab)
(__gc-table-new (if (fixnum? size-hint) size-hint 16)
Owner

here too.

here too.
fare marked this conversation as resolved
@ -705,3 +705,1 @@
(char : :char)
(start :~ nonnegative-fixnum? :- :fixnum := 0))
(let ((len (string-length str)))
criterion
Owner

please provide 2 specialized versions for the criterion case and dispatch to them, as we discussed.

please provide 2 specialized versions for the criterion case and dispatch to them, as we discussed.
Owner

in fact, i think it is better to drop this from this pr.

it is not a fix, it is an arbitrary behavioral change.

in fact, i think it is better to drop this from this pr. it is not a fix, it is an arbitrary behavioral change.
@ -718,3 +729,1 @@
(let* ((len (string-length str))
(start (if (fixnum? start) start (fx- len 1))))
(let lp ((k start))
criterion
Owner

same here.

same here.
fare marked this conversation as resolved
@ -43,0 +44,4 @@
;; In the large-write-unbuffered path (bio.whi==0, want>=buflen) bio.whi
;; is never advanced by __bio-write, so we must do it here or
;; get-memory-output-* will read zero bytes.
(set! mem.whi input-size)
Owner

this blurb comment is just unnecessary, it is obvious why.

please remove it.

this blurb comment is just unnecessary, it is obvious why. please remove it.
fare marked this conversation as resolved
fare force-pushed v0.19-fixes from 1c03237189 to 17ad18a595 2026-06-29 08:49:40 +00:00 Compare
fare force-pushed v0.19-fixes from 0bf66475cd to afe807d8a1 2026-06-29 09:07:18 +00:00 Compare
fare force-pushed v0.19-fixes from afe807d8a1 to 4d663480b0 2026-06-29 09:27:42 +00:00 Compare
vyzo left a comment

you have subtly changed the semantics of end in string-rindex, probably broken some code.

also, you have probably broken all the rules in build.sh with the change of staying out of dir. please don't.

you have subtly changed the semantics of end in string-rindex, probably broken some code. also, you have probably broken all the rules in build.sh with the change of staying out of dir. please don't.
build.sh Outdated
@ -1,6 +1,6 @@
#!/bin/sh
set -e
cd $(dirname "$0")
DIR="$(dirname "$0")"
Owner

I don't like this change at all, you are breaking all my workflows.

also bootstrap build is broken now.

I don't like this change at all, you are breaking all my workflows. also bootstrap build is broken now.
@ -724,2 +741,2 @@
k
(lp (fx- k 1))))))))
criterion
(end :? :fixnum := #f)
Owner

just this to string-length... -1

just this to string-length... -1
@ -726,0 +742,4 @@
(end :? :fixnum := #f)
(start :~ nonnegative-fixnum? :- :fixnum := 0))
(cond
((not end) (set! end (string-length str)))
Owner

that looks like an off by 1.

that looks like an off by 1.
@ -726,0 +744,4 @@
(cond
((not end) (set! end (string-length str)))
((not (and (nonnegative-fixnum? end) (fx<= end (string-length str))))
(error "invalid end for string-index" str end)))
Owner

you can raise-contract-violation-error here, please don't naked error

you can raise-contract-violation-error here, please don't naked error
@ -726,0 +755,4 @@
(char :- :char)
(start :- :fixnum)
(end :- :fixnum))
(let lp ((k (fx- end 1)))
Owner

that's semantics breaking.

that's semantics breaking.
fare force-pushed v0.19-fixes from 4d663480b0 to 9bdb00f83b 2026-06-30 13:58:04 +00:00 Compare
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin v0.19-fixes:v0.19-fixes
git switch v0.19-fixes

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch v0.19-staging
git merge --no-ff v0.19-fixes
git switch v0.19-fixes
git rebase v0.19-staging
git switch v0.19-staging
git merge --ff-only v0.19-fixes
git switch v0.19-fixes
git rebase v0.19-staging
git switch v0.19-staging
git merge --no-ff v0.19-fixes
git switch v0.19-staging
git merge --squash v0.19-fixes
git switch v0.19-staging
git merge --ff-only v0.19-fixes
git switch v0.19-staging
git merge v0.19-fixes
git push origin v0.19-staging
Sign in to join this conversation.
No description provided.