From: ron minnich <rminnich@gmail.com>
To: 9fans <9fans@9fans.net>
Subject: Re: mmaping on plan9? (was Re: [9fans] venti /plan9port mmapped
Date: Thu, 8 Jan 2026 16:02:35 -0800 [thread overview]
Message-ID: <CAP6exYKLHuSwDmQcxYPHuOoYJj52TYBiwDoV1SAVzcgX1qbQsg@mail.gmail.com> (raw)
In-Reply-To: <17678683090.c2BDd3B7.45730@composer.9fans.topicbox.com>
[-- Attachment #1: Type: text/plain, Size: 7376 bytes --]
Harvey is not gone at all. it's all there on the repo.
git@github.com:Harvey-OS/harvey
git branch
* GPL-C11
The build tool is called build, written in go. It is deliberately very
dumb, Andy Tannenbaum advised me to go with "standard C, not GCC like Linus
did, even though I told him not to!" [in his growly voice -- I miss that
guy] and another friend told me "C compilers are fast, just brute force it"
So instead of calling compilers for each C file, I call the compiler for
every file in a directory:
Building Libc
/usr/bin/clang -std=c11 -c -I /home/rminnich/harvey/harvey/amd64/include -I
/home/rminnich/harvey/harvey/sys/include -I . -fasm -ffreestanding
-fno-builtin -fno-omit-frame-pointer -fno-stack-protector -g -gdwarf-2
-ggdb -mcmodel=small -O0 -static -Wall -Werror -fcommon -mstack-alignment=4
9sys/abort.c 9sys/access.c 9sys/announce.c 9sys/convD2M.c 9sys/convM2D.c
9sys/convM2S.c 9sys/convS2M.c 9sys/cputime.c 9sys/ctime.c 9sys/dial.c
9sys/dirfstat.c 9sys/dirfwstat.c 9sys/dirmodefmt.c 9sys/dirread.c
9sys/dirstat.c 9sys/dirwstat.c 9sys/fcallfmt.c 9sys/fork.c
9sys/getnetconninfo.c 9sys/getenv.c 9sys/getpid.c 9sys/getppid.c
9sys/getwd.c 9sys/iounit.c 9sys/nulldir.c 9sys/postnote.c 9sys/privalloc.c
9sys/pushssl.c 9sys/pushtls.c 9sys/putenv.c 9sys/qlock.c 9sys/read9pmsg.c
9sys/read.c 9sys/readv.c 9sys/rerrstr.c 9sys/sbrk.c 9sys/setnetmtpt.c
9sys/sysfatal.c 9sys/syslog.c 9sys/sysname.c 9sys/time.c 9sys/times.c
9sys/tm2sec.c 9sys/truerand.c 9sys/wait.c 9sys/waitpid.c 9sys/werrstr.c
9sys/write.c 9sys/writev.c 9syscall/alarm.s 9syscall/await.s
9syscall/bind.s 9syscall/brk_.s 9syscall/chdir.s 9syscall/close.s
9syscall/create.s 9syscall/dup.s 9syscall/errstr.s 9syscall/exec.s
9syscall/_exits.s 9syscall/fauth.s 9syscall/fd2path.s 9syscall/fstat.s
9syscall/fversion.s 9syscall/fwstat.s 9syscall/mount.s 9syscall/noted.s
9syscall/notify.s 9syscall/nsec.s 9syscall/open.s 9syscall/pipe.s
9syscall/pread.s 9syscall/pwrite.s 9syscall/r0.s 9syscall/remove.s
9syscall/rendezvous.s 9syscall/rfork.s 9syscall/seek.s 9syscall/segattach.s
9syscall/segbrk.s 9syscall/segdetach.s 9syscall/segflush.s
9syscall/segfree.s 9syscall/semacquire.s 9syscall/semrelease.s
9syscall/sleep.s 9syscall/stat.s 9syscall/tsemacquire.s 9syscall/unmount.s
9syscall/wstat.s fmt/dofmt.c fmt/dorfmt.c fmt/errfmt.c fmt/fltfmt.c
fmt/fmt.c fmt/fmtfd.c fmt/fmtlock.c fmt/fmtprint.c fmt/fmtquote.c
fmt/fmtrune.c fmt/fmtstr.c fmt/fmtvprint.c fmt/fprint.c fmt/print.c
fmt/runefmtstr.c fmt/runeseprint.c fmt/runesmprint.c fmt/runesnprint.c
fmt/runesprint.c fmt/runevseprint.c fmt/runevsmprint.c fmt/runevsnprint.c
fmt/seprint.c fmt/smprint.c fmt/snprint.c fmt/sprint.c fmt/vfprint.c
fmt/vseprint.c fmt/vsmprint.c fmt/vsnprint.c port/_assert.c port/abs.c
port/asin.c port/atan.c port/atan2.c port/atexit.c port/atnotify.c
port/atof.c port/atol.c port/atoll.c port/cistrcmp.c port/cistrncmp.c
port/cistrstr.c port/charstod.c port/cleanname.c port/configstring.c
port/ctype.c port/encodefmt.c port/errno2str.c port/execl.c port/exp.c
port/fabs.c port/floor.c port/fmod.c port/frand.c port/frexp.c
port/getfields.c port/getuser.c port/hangup.c port/hashmap.c port/hypot.c
port/lnrand.c port/lock.c port/log.c port/lrand.c port/malloc.c
port/memccpy.c port/memchr.c port/memcmp.c port/memmove.c port/memset.c
port/mktemp.c port/muldiv.c port/nan.c port/needsrcquote.c port/netcrypt.c
port/netmkaddr.c port/nrand.c port/ntruerand.c port/perror.c port/pool.c
port/pow.c port/pow10.c port/qsort.c port/quote.c port/rand.c port/readn.c
port/reallocarray.c port/rijndael.c port/rune.c port/runebase.c
port/runebsearch.c port/runestrcat.c port/runestrchr.c port/runestrcmp.c
port/runestrcpy.c port/runestrecpy.c port/runestrdup.c port/runestrncat.c
port/runestrncmp.c port/runestrncpy.c port/runestrrchr.c port/runestrlen.c
port/runestrstr.c port/runetype.c port/sha2.c port/sin.c port/sinh.c
port/slice.c port/strcat.c port/strchr.c port/strcmp.c port/strcpy.c
port/strecpy.c port/strcspn.c port/strdup.c port/strlcat.c port/strlcpy.c
port/strlen.c port/strncat.c port/strncmp.c port/strncpy.c port/strpbrk.c
port/strrchr.c port/strspn.c port/strstr.c port/strtod.c port/strtok.c
port/strtol.c port/strtoll.c port/strtoul.c port/strtoull.c port/tan.c
port/tanh.c port/tokenize.c port/toupper.c port/utfecpy.c port/utflen.c
port/utfnlen.c port/utfrune.c port/utfrrune.c port/utfutf.c port/u16.c
port/u32.c port/u64.c amd64/notejmp.c amd64/cycles.c amd64/argv0.c
port/getcallstack.c amd64/rdpmc.c amd64/setjmp.s amd64/sqrt.s amd64/tas.s
amd64/atom.S amd64/main9.S
because clang is smart enough to only parse a .h file once.
There are a few other go tools. We got rid of all the random awk, rc, etc.
scripts, because we always forgot how they worked.
I just tried this:
go install harvey-os.org/cmd/decompress@latest
go install harvey-os.org/cmd/mksys@latest
go install harvey-os.org/cmd/build@latest
git clone git@github.com:Harvey-OS/harvey
cd harvey
ARCH=amd64 CC=gcc build
And, ironically, the one thing that fails is one of the go build steps,
since in the 10 years since we set this up, the Go build commands have
changed in incompatible ways.
The changes are a HUGE improvement, but it just means old projects like
this have an issue with go.
The C stuff all builds fine.
note also:
rminnich@pop-os:~/harvey/harvey$ build
You need to set the CC environment variable (e.g. gcc, clang, clang-3.6,
...)
rminnich@pop-os:~/harvey/harvey$ CC=clang build
You need to set the ARCH environment variable from: [amd64 riscv aarch64]
rminnich@pop-os:~/harvey/harvey$
You have lots of choices as to toolchain.
On Thu, Jan 8, 2026 at 4:45 AM <wb.kloke@gmail.com> wrote:
> On Wednesday, 7 January 2026, at 10:31 PM, ron minnich wrote:
>
> what we had planned for harvey was a good deal simpler: designate a part
> of the address space as a "bounce fault to user" space area.
>
> When a page fault in that area occurred, info about the fault was sent to
> an fd (if it was opened) or a note handler.
>
> user could could handle the fault or punt, as it saw fit. The fixup was
> that user mode had to get the data to satisfy the fault, then tell the
> kernel what to do.
>
> This is much like the 35-years-ago work we did on AIX, called
> external pagers at the time; or the more recent umap work,
> https://computing.llnl.gov/projects/umap, used fairly widely in HPC.
>
> If you go this route, it's a bit less complex than what you are proposing.
>
>
> Thank you, this seems the nearest possible answer to my original question.
> The bad about umap is, of course, that it depends on a linuxism.
>
> BTW. Harvey is gone. Is the work done to crosscompile for plan9 on gcc
> accessible?
> *9fans <https://9fans.topicbox.com/latest>* / 9fans / see discussions
> <https://9fans.topicbox.com/groups/9fans> + participants
> <https://9fans.topicbox.com/groups/9fans/members> + delivery options
> <https://9fans.topicbox.com/groups/9fans/subscription> Permalink
> <https://9fans.topicbox.com/groups/9fans/Te8d7c6e48b5c075b-M11a11204a789ee5dac250c3a>
>
------------------------------------------
9fans: 9fans
Permalink: https://9fans.topicbox.com/groups/9fans/Te8d7c6e48b5c075b-M2966fd4ffcd98eb245b77956
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
[-- Attachment #2: Type: text/html, Size: 8682 bytes --]
next prev parent reply other threads:[~2026-01-09 2:07 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-02 19:54 [9fans] venti /plan9port mmapped wb.kloke
2026-01-02 20:39 ` ori
2026-01-02 20:58 ` Bakul Shah via 9fans
2026-01-06 22:59 ` Ron Minnich
2026-01-07 4:27 ` Noam Preil
2026-01-07 6:15 ` Shawn Rutledge
2026-01-07 15:46 ` Persistent memory (was Re: [9fans] venti /plan9port mmapped) arnold
2026-01-07 16:11 ` Noam Preil
2026-01-07 17:26 ` Wes Kussmaul
2026-01-07 8:52 ` [9fans] venti /plan9port mmapped wb.kloke
2026-01-07 16:30 ` mmaping on plan9? (was " Bakul Shah via 9fans
2026-01-07 16:40 ` Noam Preil
2026-01-07 16:41 ` ori
2026-01-07 20:35 ` Bakul Shah via 9fans
2026-01-07 21:31 ` ron minnich
2026-01-08 7:56 ` arnold
2026-01-08 10:31 ` wb.kloke
2026-01-09 0:02 ` ron minnich [this message]
2026-01-09 3:57 ` Paul Lalonde
2026-01-09 5:10 ` ron minnich
2026-01-09 5:18 ` arnold
2026-01-09 6:06 ` David Leimbach via 9fans
2026-01-09 17:13 ` ron minnich
2026-01-09 17:39 ` tlaronde
2026-01-09 19:48 ` David Leimbach via 9fans
2026-02-05 21:30 ` Alyssa M via 9fans
2026-02-08 14:18 ` Ethan Azariah
2026-02-08 15:10 ` Alyssa M via 9fans
2026-02-08 20:43 ` Ethan Azariah
2026-02-09 1:35 ` ron minnich
2026-02-09 15:23 ` ron minnich
2026-02-09 17:13 ` Bakul Shah via 9fans
2026-02-09 21:38 ` ron minnich
2026-02-10 10:13 ` Alyssa M via 9fans
2026-02-11 1:43 ` Ron Minnich
2026-02-11 2:19 ` Bakul Shah via 9fans
2026-02-11 3:21 ` Ori Bernstein
2026-02-11 10:01 ` hiro
2026-02-12 1:36 ` Dan Cross
2026-02-12 5:39 ` Alyssa M via 9fans
2026-02-12 9:08 ` hiro via 9fans
2026-02-12 13:34 ` Alyssa M via 9fans
2026-02-13 13:48 ` hiro
2026-02-13 17:21 ` ron minnich
2026-02-15 16:12 ` Danny Wilkins via 9fans
2026-02-17 3:13 ` Alyssa M via 9fans
2026-02-17 13:02 ` Dan Cross
2026-02-17 16:00 ` ron minnich
2026-02-17 16:39 ` hiro
2026-02-17 16:56 ` Bakul Shah via 9fans
2026-02-17 17:54 ` hiro
2026-02-17 22:21 ` Alyssa M via 9fans
2026-02-16 2:24 ` Alyssa M via 9fans
2026-02-16 3:17 ` Ori Bernstein
2026-02-16 10:55 ` Frank D. Engel, Jr.
2026-02-16 13:49 ` Ori Bernstein
2026-02-16 19:40 ` Bakul Shah via 9fans
2026-02-16 19:43 ` Bakul Shah via 9fans
2026-02-16 9:50 ` tlaronde
2026-02-16 12:24 ` hiro via 9fans
2026-02-16 12:33 ` hiro via 9fans
2026-02-11 14:22 ` Dan Cross
2026-02-11 18:44 ` Ori Bernstein
2026-02-12 1:22 ` Dan Cross
2026-02-12 4:26 ` Ori Bernstein
2026-02-12 4:34 ` Dan Cross
2026-02-12 3:12 ` Alyssa M via 9fans
2026-02-12 4:52 ` Dan Cross
2026-02-12 8:37 ` Alyssa M via 9fans
2026-02-12 12:37 ` hiro via 9fans
2026-02-13 1:36 ` Dan Cross
2026-02-14 3:35 ` Alyssa M via 9fans
2026-02-14 14:26 ` Dan Cross
2026-02-15 4:34 ` Bakul Shah via 9fans
2026-02-15 10:19 ` hiro
2026-02-10 16:49 ` wb.kloke
2026-02-08 14:08 ` Ethan Azariah
2026-01-07 21:40 ` ori
2026-01-07 16:52 ` ori
2026-01-07 17:37 ` wb.kloke
2026-01-07 17:46 ` Noam Preil
2026-01-07 17:56 ` wb.kloke
2026-01-07 18:07 ` Noam Preil
2026-01-07 18:58 ` wb.kloke
2026-01-07 14:57 ` Thaddeus Woskowiak
2026-01-07 16:07 ` Wes Kussmaul
2026-01-07 16:22 ` Noam Preil
2026-01-07 17:31 ` Wes Kussmaul
2026-01-07 16:13 ` Noam Preil
2026-01-02 21:01 ` ori
2026-01-08 15:59 ` wb.kloke
2026-02-11 23:19 ` red
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAP6exYKLHuSwDmQcxYPHuOoYJj52TYBiwDoV1SAVzcgX1qbQsg@mail.gmail.com \
--to=rminnich@gmail.com \
--cc=9fans@9fans.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).