klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
<pie_> theres this thing (probably remembering userspace linux as one variant of this?) where instead of running an os on hardware you can implement the hardwre support layer as running on top of say another OS process
<pie_> what am I looking for?
<Mutabah> Not sure if it has a name, but I've done similar to make testing easier
<pie_> yeah i just remembered this and the tooling improvement sounds substantial
<pie_> ok it looks like colinux is probably where I originally came across this
<pie_> ok Im not actually sure
* pie_ actually bothers reading the article
* pie_ squints at "User-mode Linux (UML) is a virtualization system for the Linux operating system based on an architectural port of the Linux kernel to its own system call interface, which enables multiple virtual Linux kernel-based operating systems (known as guests) to run as an application within a normal Linux system (known as the host)"
<pie_> well, Im not sure
<clever> pie_: ive messed with UML a bit before, its basically just running the linux kernel in userland, under another linux
<clever> i think it messes around with clone() flags, so each child process is also a host process, but i'm fuzzy on how it maintains kernel/userland seperation from an entirely userland context
<clever> i suspect its largely been killed off by KVM, and hw accelerated VM's
<clever> colinux is an even bigger ugly hack, to give native performance to the "guest" without hw VM support
* pie_ ponders whether such userspace osdev is worth it or if implementing the translation layer is more of a pain in the ass than just doing bare metal stuff in qemu
<heat> secodn option
<clever> pie_: ive seen something equally crazy years ago, there was a capture the flag contest, with a windows driver binary
<clever> the intent, was to make you setup windows kernel debug
<clever> the crazy guy converted the driver to an ELF binary, then stubbed out all of the imports, and turned it into a linux userland binary
<clever> then attacked it with gdb
<pie_> :D
<pie_> nice
<nikolar> Kek
<clever> ive attempted similar with halvm (haskell as a xen guest)
<nikolar> A what lol
<clever> it was surprisingly simple to just load the .text+.data into ram, setup the hypercall page, and jump to the entry-point
<bslsk05> ​taviso/loadlibrary - Porting Windows Dynamic Link Libraries to Linux (386 forks/4437 stargazers/GPL-2.0)
<clever> but halvm had assumptions about the memory layout, where the heap/stack/.text all lived
<clever> and getting pthread to co-operate was a pain
<clever> nikolar: https://github.com/GaloisInc/HaLVM it takes haskell code, compiles it to x86, then runs it in bloody (virtualized) ring0 as a XEN paravirtual guest, lol
<bslsk05> ​GaloisInc/HaLVM - The Haskell Lightweight Virtual Machine (HaLVM): GHC running on Xen (79 forks/1064 stargazers/BSD-3-Clause)
<pie_> > As a demonstration, I've ported Windows Defender to Linux.
<nikolar> clever: that's cursed lol
<bslsk05> ​github.com: HaLVM/src/bootloader/start.x86_64.S at master · GaloisInc/HaLVM · GitHub
<clever> this is the entry-point for the whole binary
<clever> the `__xen_guest` section sets up some flags to explain things to xen
<pie_> every time i see clever do something it kind of makes me want to hang up my computering license
<clever> then it just sets up the stack, and calls runtime_entry(), plus some wrappers for hypervisor calls
<nikolar> We're all unlicensed computerers here
<pie_> turns out every architecture is just a free monad
<clever> xen itself, generates a hypercall page, an array of 64? byte functions, that contain the most optimal asm to jump into hypervisor mode on the current cpu
<clever> so you call to `64 * hypercall_nr` within the hypercall page, to run hypervisor actions
<bslsk05> ​github.com: halvm-ghc/rts/xen/entryexit.c at 85c7800461ddd4054ccc086cb3ade5e20edf857b · GaloisInc/halvm-ghc · GitHub
<clever> and here is the runtime_entry() function, it just initializes a bunch of things, pulls the kernel cmdline out of xen, then calls `main()` as-if it was just a regular userland
<clever> the rest of ghc then just goes, "oh userland, sure"
<clever> other files under `rts/xen/` provide OS support functions, like thread creation and memory allocation
<clever> so ghc just thinks its running under another kernel
<clever> this code acts as a double-example, both for making a xen pv guest, and also porting haskell to crazy targets, as long as llvm can target it
<clever> pie_: can you guess what ive been stuck on all day?
<clever> oh yes, and halvm is the original reason why i even joined #osdev! lol
<pie_> Oh, I thought it was raspi related somehow.
<pie_> Yeah I have no idea what you've been stuck on all day :p
<clever> pie_: trying to build https://github.com/grumpycoders/pcsx-redux
<bslsk05> ​grumpycoders/pcsx-redux - The PCSX-Redux project is a collection of tools, research, hardware design, and libraries aiming at development and reverse engineering on the PlayStation 1. The core product itself, PCSX-Redux, is yet another fork of the Playstation emulator, PCSX. (126 forks/809 stargazers/GPL-2.0)
<clever> card/backupunit.c:30:10: fatal error: string.h: No such file or directory
<clever> 30 | #include <string.h>
<clever> if i build the source as-is, it fails with a dozen errors like this
<pie_> wrong gcc version
<pie_> "wrong"
<clever> if i modify anything, even a comment, it builds properly
<pie_> uh lol?
<clever> exactly why i'm stuck
<pie_> I *think* I ran into a similar issue (at least regarding the stdlib errors) once when I somehow ended up using a newer gcc with something.
<clever> except the gcc version is identical
<pie_> oh i see it has nix files and everything
<clever> yep
<clever> and ive had to resort to strace'ing nix-daemon
<kof673> > ponders whether such userspace osdev is worth it option 1 increases your soviet-style "rank of reflection" lol option 2 is "western" rely on the hw lol
<clever> because the flake.nix is included in the src=, and changing flake.nix fixes it
<pie_> through a mirror i see darkly
<kof673> :D
<clever> ["make", "-j4", "SHELL=/nix/store/58br4vk3q5akf4g"..., "openbios", "pcsx-redux", "PREFIX=mipsel-unknown-none-elf"]
<clever> ["make", "-C", "src/mips/openbios"] (pid 3733629)
<pie_> when clever has issues with a nix build you know stuff is fucked up
<clever> when failing, it runs these 2 commands
<pie_> its not a classic forgot to change the FOD hash thing right
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<pie_> not that i know how that would get involved but maybe the source is an input and that somehow gets involved? *shrugs*
<pie_> this sounds like the _opposite_ issue though
<pie_> if it was a FOD hash youd expect it to keep building/failing if you changed something..
<clever> ["make", "-j4", "SHELL=/nix/store/58br4vk3q5akf4g"..., "openbios", "pcsx-redux", "PREFIX=mipsel-unknown-none-elf"]
<clever> ["make", "-C", "third_party/luajit/src", "amalg", "CC=gcc", "BUILDMODE=static", "CFLAGS=", "LDFLAGS=", "XCFLAGS=-DLUAJIT_ENABLE_GC64 -DL"..., "MACOSX_DEPLOYMENT_TARGET=10.15"]
<clever> when working, it decides to build luajit first
<clever> pie_: my first theory, was env vars, if `env` contains some string, it configures itself differently
<clever> and the hash in a store path can contain magic strings
<clever> ive seen comments in nixpkgs about that before
<pie_> uh huh
edr has quit [Quit: Leaving]
<clever> /nix/store/4q2sv4sqb7y8y4pp3n9bf2aabmgqmwmy-gzip-1.13
<clever> imagine if this hash, happened to include lz4
<clever> so the build system goes, "ok, its already in the cflags, dont add it again"
the_oz has joined #osdev
<pie_> oh because of the magic way deps are looked for
<clever> yep
<pie_> i dont offhand understand how that results in whatever youre saying
<clever> but i also suspect non-deterministic building due to -j
<clever> and the buggers put `NIX_BUILD_CORES = 4;` into `pcsx-redux.nix`
<clever> so you cant turn parallel building off
<pie_> so you had a bad build that somehow succeeded and stuff got stuck in a weird state?
<clever> you also cant make parallel building faster
<clever> if you try to build master, it fails
<clever> give `nix build github:grumpycoders/pcsx-redux` a try, thats enough to reproduce it
<nikolar> can't you just remove the parallel stuff from the nix file
<clever> dont even have to clone it
<clever> nikolar: making any change to any file, even a comment, fixes it
<nikolar> ah cursed
<pie_> I assume adding more -v to nix doesnt help
<pie_> more -v more NIX_DEBUG
<clever> NIX_DEBUG involves changing the .nix files, which fixes it
<pie_> oh it does? :/
<clever> they didnt use filterSource
* pie_ still doesnt use flakes
<clever> so the entire source tree is used
<clever> this is why i always put my source in a subdir of the project, rather then the root
<pie_> I mean I can just do NIX_SHELL=7 nix-shell ...whatever...?
<clever> i suspect it wont reproduce under nix-shell
<pie_> I guess nix-build doesnt take that?
<nikolar> hmm, unrelated, but i remember reading an article about writing a virtual machine monitor on top of kvm
<nikolar> and i can't find it
<nikolar> does anyone remember something similar
<nikolar> oh i think i found it heh
<pie_> oh, lots of submodules fun.
<clever> clone3({flags=CLONE_VM|CLONE_VFORK|CLONE_CLEAR_SIGHAND, exit_signal=SIGCHLD, stack=0x7ffff7dab000, stack_size=0x9000}, 88) = 246
<clever> oh right, pid namespacing
<clever> so that wont be in the file names 246!
<clever> logfiles.3733781:getpid() = 246
<pie_> i think strace has a flag that will enable showing the names for fds or something like that
<clever> i can also just grep for getpid, and see the guest pid's
<pie_> yeah
<clever> src/mips/common.mk:HAS_LINUX_MIPS_GCC = $(shell which mipsel-linux-gnu-gcc > /dev/null 2> /dev/null && echo true || echo false)
<clever> so, in the bad case, i can see its running things like this
<pie_> so like, the nix code doesnt seem fancy
<clever> which also occurs in the working case
<nikolar> trying to detect a mips compiler
<nikolar> for some reason
<clever> nikolar: its building an open bios for a PS1 console, so you dont have to deal with copyright and obtaining a bios via legal means
<pie_> how does changing anything (presumably the hash) result in a different build path
<nikolar> oh right, makes sense
<nikolar> i forgot it was a ps1 thing
<clever> pie_: the src=/nix/store/hash-source changes
<pie_> sorry, god damn i hate being bad at language
<pie_> by path i meant "the direction things go in"
<clever> that part, i dont understand yet
<clever> but the first big red-flag i see, is that its building openbios first when it fails
<clever> but building luajit first when working
<clever> why??
<pie_> is it possible its not a nix issue?
<pie_> sort by modification time somewhere or something?
<clever> nix sets the mod-time to 1 on everything
<clever> 1 second past jan 1st 1970
<pie_> right
<clever> my first guess, is zfs
<clever> and disorderfs
<pie_> and it wouldnt really make sense if stuff is in subdirs, though idk offhand if modtime propagates up
<pie_> like, id expect this to be much more unreliable
<nikolar> what's disorderfs lel
<bslsk05> ​packages.debian.org: Debian -- Details of package disorderfs in sid
<nikolar> why would it only change when you edit the build process though
<clever> the order of files in the readdir() result can vary from fs to fs, and other factors
<nikolar> it should random on each run
<clever> and some tooling doesnt sort things, and handles files in the order the fs gave
<clever> disorderfs randomizes that order, so such bugs become far more obvious
<pie_> dumb question
<clever> ok, so in the working case, pid 56 gets launched as ["make", "-j4", "SHELL=/nix/store/58br4vk3q5akf4g"..., "openbios", "pcsx-redux", "PREFIX=mipsel-unknown-none-elf"]
<pie_> does making a new empty file do the same thing
<clever> pie_: flakes automatically filter the source, so only files managed by git are counted
<pie_> add it to git i guess?
<clever> its meant to keep stray .o files out of the source
* pie_ is trying to figure out how to figure out if its nix related or not
<clever> [clever@amd-nixos:~/apps/vali/pcsx-redux]$ touch foo ; git add foo
criswell has joined #osdev
<clever> pie_: yep, that fixes it
<pie_> and yuore...sure the hash of the clean version isnt bad somehow
<pie_> or am i just asking about square 1 again
<clever> i checked with diff -r, the source is identical between the working and broken versions
<pie_> in the build sandbox too?
<clever> harder to test that
<clever> let me check the root make process deeper....
<pie_> yeah :/
<nikolar> It does sound like it's some weird hash issue
<clever> 157 openat(AT_FDCWD, "Makefile", O_RDONLY) = 3
<clever> 161 read(3, "TARGET := pcsx-redux\nBUILD ?= Re"..., 8192) = 8192
<clever> i can see make starting up, and reading the specified makefile
<pie_> i havent nixed much in a long time but i keep wanting to make a buildhook or something that drops me into a shell in the sandbox
<pie_> cntr never worked right for me
<pie_> though idk what people do these days
<pie_> hm...is it possible to make an empty commit?
<pie_> not change any files, just a new commit? does that even help debug anything?
<clever> thats another funny thing
<clever> the tip of master, is on a merge commit
<clever> both children of the merge commit, build without issue
<pie_> soooo...can you do the empty commit thing?
<clever> [clever@amd-nixos:~/apps/vali/pcsx-redux]$ git commit --allow-empty -m nothing
<pie_> do you think diffing the -vvvvvv (or however many) output on nix-build or whatever will yield anything?
<clever> pie_: that build works, nix even found it in the cache
<clever> ive already found differences in the strace
<pie_> oh so im just now realizing, any time you change something you also have to commit it because flakes right?
<clever> nope
<clever> 234 newfstatat(AT_FDCWD, "third_party/imgui/imgui.h", {st_mode=S_IFREG|0644, st_size=404512, ...}, AT_SYMLINK_NOFOLLOW) = 0
<clever> when working, the 234th syscall by make, is a stat of some imgui headers
<pie_> oh only files *managed* by git , but not necessarily only the changes in the commits
<clever> correct
<clever> 234 newfstatat(AT_FDCWD, "third_party/imgui/imgui.h", 0x7fffffff5280, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (No such file or directory)
<clever> when failing, that symlink doesnt exist!?
<pie_> heehee
<pie_> well, i imagine thats downstream of something...
<bslsk05> ​github.com: pcsx-redux/pcsx-redux.nix at main · grumpycoders/pcsx-redux · GitHub
<clever> this is taking a bit list of submodules, fetching them, and then copying them to the right places
pabs3 has quit [Ping timeout: 248 seconds]
the_oz has quit [Quit: Leaving]
vdamewood has joined #osdev
<clever> [clever@amd-nixos:/tmp/nix-build-pcsx-redux-0.99test.drv-1/build/source/third_party/imgui]$ ls
<clever> wpk39xy9ybc888cihcf6kiwswnvj1yp5-source
<clever> wtf?
<clever> i think i know the problem now
<pie_> and i have an inkling but dont know why actually it does that
<pie_> oh hm
<clever> cp -ru --no-preserve=all /nix/store/wpk39xy9ybc888cihcf6kiwswnvj1yp5-source source/third_party/imgui
<clever> pie_: what happens if source/third_party exists, but source/third_party/imgui does not?
<pie_> this still doesnt explain why changing ANYTHING fixes it?
<pie_> i imagine the directory exists so instead of renaming during the copy its putting it inside (uwu)
<clever> [clever@amd-nixos:~/apps/vali/pcsx-redux]$ ls {/nix/store/9390g9s13a3g5g9bdjigiwzqwnqzhg9z-source/,/nix/store/abdx8dg2vj1s0h58lsixjnrmqb42mv32-source/}/third_party/imgui -lh
<clever> ls: cannot access '/nix/store/abdx8dg2vj1s0h58lsixjnrmqb42mv32-source//third_party/imgui': No such file or directory
<clever> /nix/store/9390g9s13a3g5g9bdjigiwzqwnqzhg9z-source//third_party/imgui:
<clever> pie_: for some reason, making the tree dirty, impacts if the empty directory exists or not
<clever> total 0
<pie_> like, it cant be that suddenly git stops keeping the empty directory around
<clever> so, this is 2 things
<clever> 1: a bug with nix copying a flake to /nix/store, and sometimes adding/removing empty dirs for submodules
<pie_> ugh is flakes interacting with git
<clever> 2: a bug in the postUnpack, that is sensitive to if the directory exists
<clever> pie_: and yes, flakes interact heavily with git
<pie_> i dont follow about 2) - isnt this standard cp behavior
<clever> what happens if source/third_party exists, but source/third_party/imgui does not?
<clever> now what happens if source/third_party/imgui does exist
<clever> if source/third_party/imgui does exist, then that becomes the name, so it copies source -> imgui
<clever> doesnt*
criswell has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<clever> if source/third_party/imgui does exist, it becomes the parent, so it copies source -> imgui/source
<clever> try it yourself!
<pie_> yeah
<pie_> this is standard cp behavior and its annoying :P ?
<clever> so the bug, is that this shell code isnt hardened against a directory that may or may not be present
<clever> and behaves differently if a surprise empty directory gets in the way
<pie_> oh sorry i thought you meant in general (or something??)
<clever> but then, why is nix even doing that to begin with?
<pie_> yeah
<pie_> well, submodules arent always initialized
<clever> except they arent initialized, in both cases
<pie_> gotta see what actually is going on
<pie_> like, does it think it should be cleaning stuff up for some misguided (?) reason
pabs3 has joined #osdev
<pie_> and why only with changes
<pie_> if you have changes maybe its doing something other than copying the repo
<pie_> *than just
<pie_> iirc git doesnt track empty directories, so how do they even show up to begin with?
<clever> evaluating ''...
<clever> git+file:///home/clever/apps/vali/pcsx-redux?ref=refs/heads/main&rev=1b0cbe5e4a535def2e3e3279551e6665cdc102ae
ZetItUp has quit []
<clever> thats what it does when the tree is clean and the build fails
<clever> evaluating ''...
<clever> git+file:///home/clever/apps/vali/pcsx-redux
<clever> and this is when the tree is dirty
<pie_> are they somehow doing something with submodules, initing the directory, and _then_ trying to cp over it
<pie_> for a handwaving meaning of "initing"
<pie_> "told you to diff the -v" :PP (not that im in any position to try to told-you-so clever)
<clever> src/nix/flake.cc: Activity act(*logger, lvlInfo, actUnknown, fmt("evaluating '%s'", concatStringsSep(".", attrPathS)));
<pie_> (but this just shows that it diverges on changes which was already known)
<clever> but now that its pretty clearly flakes, maybe we could switch to the nix flakes channel on matrix? and not spam #osdev up much more?
<pie_> my matrix setup is not great rn
<clever> ah
<pie_> so I guess seeing what having a rev set does in the store impl
<pie_> or the opposite
<bslsk05> ​github.com: nix/src/libexpr/primops/fetchTree.cc at master · NixOS/nix · GitHub
<clever> i suspect this file is involved
<pie_> or...maybe not the store, whatever handles git+file :/
ZetItUp has joined #osdev
<clever> i think thats fetch tree
<pie_> if its a matter of having rev, shouldnt committing also fail?
<pie_> or does a new commit suddenly lose the directories somehow
<pie_> why do the directories exist in the first place?
<clever> i have no clue
<bslsk05> ​github.com: nix/src/libfetchers/git.cc at master · NixOS/nix · GitHub
<pie_> looks like master has the directories in it
<clever> pie_: ah, the source was moved over here
<pie_> doesnt git not track empty dirs? <pie_> looks like master has the directories in it
<clever> pie_: submodules arent empty directories, its something more fancy
<pie_> or are submodule sspecial
<clever> very special
<pie_> no but it looks to me like if i clone then it creates the empty dirs
<clever> getting an example
<pie_> sorry, i guess i mean to ask "does git not track empty dirs but does create empty dirs for the submodules when checking out something with submodules specifically?"
<bslsk05> ​gist.github.com: gist:d2b27a1b75bb5be10796d161d71ae271 · GitHub
<clever> line 4 is showing the contents of the commit object behind HEAD
<pie_> i.e. these arent actually empty dirs, theyre empty dirs created as a sideeffect of submodules
<clever> within that commit, is a tree hash, for the root directory
<clever> that hash, is the sha1 of the serialized form of the root dir (type+hash+name triplets)
<clever> line 8 then fetches that root, and you can see it contains another tree called third_party
<clever> line 11 then fetches the tree for that, revealing that imgui is a raw commit, posing as a directory!
<pie_> makes sense roughléy
<clever> that is the sha1 you need to checkout, from whatever .gitsubmodules refers to
<pie_> well except for this, but sure <clever> line 11 then fetches the tree for that, revealing that imgui is a raw commit, posing as a directory!
xenos1984 has quit [Read error: Connection reset by peer]
<clever> but your FS doesnt allow you to create things of type commit
<pie_> do trees normally not have commits in whatever this is?
<clever> submodules are the only thing that do that
<pie_> ok cool
<clever> normally, every directory is another tree
<pie_> so trees are normally made of trees
<pie_> k
<clever> you can run the same commands on any repo you have, to see the untruncated output, and browse around
<geist> yah a commit is basically just a git object with among other things a reference to a root tree, and each tree object just contains one directory worth of filenames, stats, and references to other trees or file objects
<geist> and since it holds the hash reference if anything underneath it changes it in a commit then it'll ripple all the way up
<clever> yep, a markle tree i think, much like what bitcoin uses for transactions
<geist> yah though I don't think tree objects in git hold a parent reference
<clever> and ipfs as well
<geist> since they can be reused between commits
<clever> correct, no .. entry
<geist> if a subdir doesn't change then a new parent tree node can just refer to the same subtree
<clever> which gives free dedup
<geist> so not a Merkel in that the trees don't reference up, but the chain of commits absolutely has a ref to the parent(s)
<geist> and hashed on he contents so it's provable that any given commit connects, etc
<clever> yeah, the bitcoin merkle tree, is more about reducing how much you have to hash when verifying a large dataset
<clever> but a filesystem tree is already in a tree form, so you dont have to invent a tree
<geist> there was some stuff I was reading recently on how the repack algorithm works and it's pretty neat, and one of the subtle details is it sorts trees first in the pack files, since they tend to delta compress very well
<geist> and it puts the newer trees/commits first, so they tend to be a) stored in their complete form, and not part of a delta chain, and b) locally cached near the start of the pack
<geist> so recent commits/trees are easier to read
<clever> ah neat
<clever> so checking out HEAD after a clone, its all intact
<clever> and any past data, involves more expensive deltas
<geist> yah, which also is something the old CVS/RCS style did, since it stores reverse deltas
<geist> the current version is always in pristine form, and then store a delta to how to get it to the next older and then on and on
<pie_> cool
<clever> i can also see how the remote can build that easily
<clever> start at HEAD, serialize the whole tree
<clever> then go one commit back in time (HEAD points there), serialize out the delta, repeat
<pie_> clever: maybe im fucking up the logic but if the issue has to do with the nix git copy/submodule behavior, if we get it to use the same ?ref=?rev=? style url that should presumably break again right?
<clever> its just following the linked-list of commits, in the natural order!
<geist> yah so even if you have some gigantic foo.c,v file in your CVS repo, the top of the file is the current version, then IIRC it's followed up by a series of diffs to get to older versions
<geist> so 99% of the time you just read the first part of it
<clever> pie_: i'm digging thru strace currently, to see how nix serialized things
<geist> but I guess that means adding a new version to a repo involves rewriting the file entirely
<pie_> but if this is true, the empty commit shouldnt have built successfully right? <pie_> clever: maybe im fucking up the logic but if the issue has to do with the nix git copy/submodule behavior, if we get it to use the same ?ref=?rev=? style url that should presumably break again right?
<clever> 30 write(2, "\rgetting Git revision count of '"..., 73) = 73
<clever> i can see that nix forked off a thread at one point, which printed this
<pie_> except the empty commit didnt have a ref (?)
<bslsk05> ​github.com: nix/src/libfetchers/git.cc at master · NixOS/nix · GitHub
<pie_> what happens for the evaluated message for the empty commit?
<clever> the build passes instantly, with nix using a cached build
<pie_> or was the tree still dirty
<pie_> ah right you said that
<clever> because whatever it did for copying the source to the store, omitted the directories that time
<pie_> and youre sure its not dirty?
<clever> `git diff` reports no changes
criswell has joined #osdev
<geist> that can ignore stuff in .gitignore
<geist> there's a switch to ignore gitignore
<clever> i believe nix is also ignoring those files, and not copying them
<geist> also git clean -nxd would show you what it would delete to get to a pristine stuff
<geist> kinda another way to see what is delta
<clever> i also notice another change since i last read this nix code
<pie_> does it being cached mean you dont get one of these messages? <clever> git+file:///home/clever/apps/vali/pcsx-redux?ref=refs/heads/main&rev=1b0cbe5e4a535def2e3e3279551e6665cdc102ae
<clever> nix is directly linking to git now, and just calling git internal functions
<pie_> or is it in the fetcher cache?
<clever> it no longer forks out and runs the git binary
<geist> oh that's super annoying
<pie_> heh
<geist> does it still honor GIT_TRACE=1?
<pie_> oh i totally forgot about that
<clever> good question!
<geist> that's extremely useful for debugging stuff that does a pile of git
<pie_> being able to remember shit is such a cheatcode
<clever> [clever@amd-nixos:~/apps/vali/pcsx-redux]$ GIT_TRACE=1 nix flake show
<clever> no extra output!
<geist> boo
<pie_> clever: daemon?
<geist> we have at least one tool at work that does the same thing, and it's super annoying
<pie_> i guess eval happens in the frontend
<clever> pie_: the client uses git to read the files and serialize it into a nar, the nar is then shipped off to the daemon, which adds to /nix/store/
<pie_> right
<geist> NARF
xenos1984 has joined #osdev
sprock has quit [Ping timeout: 260 seconds]
da5id has quit [Quit: WeeChat 4.7.0]
<clever> pie_: hmmm, given that this is a bug with nix, lets try nix master....
<clever> uh oh
<clever> the build now works...
<pie_> doh :/ every time
<bslsk05> ​github.com: git/trace.c at 64cbe5e2e8a7b0f92c780b210e602496bd5cad0f · git/git · GitHub
<pie_> i dont offhand see anything that should stop getenv working or disable this
<pie_> geist: ^
<clever> i can confirm, /nix/store/3vbn1ah1nfkgqapfvj0akj34qdg77phb-source is lacking third_party/imgui
<pie_> well now you gotta bisect if nothing else, since you put all this effort in, to find out what did it :P
<pie_> or maybe the git log isnt long
<clever> except, its now working, with the exact same state that once failed
<pie_> with the old nix?
<clever> yep
<clever> i built the new nix, and then tested the old first
<pie_> whee :/
<pie_> same as? <clever> git+file:///home/clever/apps/vali/pcsx-redux?ref=refs/heads/main&rev=1b0cbe5e4a535def2e3e3279551e6665cdc102ae
<clever> wasnt using -vvvv this time
<pie_> so now you cant get it?
<clever> i deleted the storepath, and now i'm repeating the build...
<clever> still works!?
<pie_> hrm
<pie_> ok but what about the message
<pie_> if its the same...well at least its info...
<pie_> that this by itself doesnt disambiguate
<clever> copied '/home/clever/apps/vali/pcsx-redux/' to '/nix/store/3vbn1ah1nfkgqapfvj0akj34qdg77phb-source'
<clever> performing daemon worker op: 26
<clever> copying '/home/clever/apps/vali/pcsx-redux/' to the store...
zid has quit [Read error: Connection reset by peer]
<clever> evaluating file '/nix/store/3vbn1ah1nfkgqapfvj0akj34qdg77phb-source/flake.nix'
zid has joined #osdev
<pie_> thats not git+file?
<clever> ok, its being very non-deterministic
<clever> it works on the desktop, but fails on the laptop
<clever> using `nix build github:grumpycoders/pcsx-redux` in both cases, so no local state should be involved
<pie_> (re: its not git+file?)
<clever> i'm confused as well
FreeFull has quit [Quit: Lost terminal]
<pie_> ok just checking x)
<pie_> flake lock change?
<pie_> (idk?)
<pie_> (i guess that shouldnt happen)
<clever> the above command fetches HEAD directly from github
<pie_> ah
<clever> and no commits have occured
<pie_> i have to ask the obvious stuff because im not at your screen; and the same issue with the way youve been doing it till now?
<pie_> or is that exactly how youve been doing it
<clever> can you try running that build command above?
<pie_> uh, is it a heavy build
<pie_> one sec
<clever> it only has to build a single cross-gcc, and a small emulator
<clever> about 12mins on my machine
<pie_> yeah no thats gonna be a while probably
<pie_> i mean, ill start it i guess..
<pie_> well, better luck on my vps
<clever> oh right, 12mins for the emulator to build successfully
<clever> i'm not counting the gcc, oops
<clever> if the error is present, the emulator build fails within seconds
<pie_> re: what if you continue with your locally sourced home grown fresh build
<pie_> and not the github url
<pie_> or have you been using the github url the whole time
<clever> that one also builds without error now
<pie_> still not using git+file right?
<clever> evaluating ''...
<clever> git+file:///home/clever/apps/vali/pcsx-redux?ref=refs/heads/main&rev=1b0cbe5e4a535def2e3e3279551e6665cdc102ae
<pie_> ok well so much for me nagging you about that
* pie_ is just along for the ride
<pie_> so...old nix (for sure?), deleted store path?
<clever> yeah
<pie_> dumb q; is it maybe one of the dependencies?
<clever> nix-diff already confirmed, its to do with the src=
<bslsk05> ​github.com: pcsx-redux/flake.nix at main · grumpycoders/pcsx-redux · GitHub
<clever> this takes "self" from the flake subsystem, which is basically just ./.
<bslsk05> ​github.com: pcsx-redux/pcsx-redux.nix at main · grumpycoders/pcsx-redux · GitHub
<clever> and then uses it directly in the derivation
<kof673> { cd ~ ; ls -ad *psx* *pocket* ; } pocketstation_dev_with_bsd_egcs_1_1_1 psxdev_ecoff_gcc_2_95_3 psx_dev_with_bsd_egcs_1_1_1 psxsdk_elf_gcc_5_2_0 psx_andrewk psxdev_elf_gcc_2_95_3 psx_runix_egcs_1_1_2
<kof673> just stick with the old version /s
<clever> the only complication, is that nix wants to avoid race conditions (nix hashes the source, you edit it, nix evals)
<clever> so nix will first copy all of ./. to /nix/store, before it even reads flake.nix
<clever> then its immutable and all races are impossible
<pie_> is it possible for the source to end up in the store before the dirs are created?
<pie_> i guess thats just saying "is it possible to have a bad source copy"
<clever> i think what happens, is that the nix client will serialize the entire source as a nar file
<clever> and ship that off to the daemon
<clever> the exact store path, then is based on the hash of that nar
<pie_> right
<pie_> sounds reasonable
<clever> so the problem has already occured, when it was creating the nar stream
<pie_> im guessing at insane shit for the lack of better ideas :D
<pie_> right
criswell has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<pie_> so the thing is the git hash isnt the nar hash
<clever> yeah
<pie_> i dont suppose you have the hashes lying around
<pie_> i imagine it wont help even if you do...?
<pie_> i think i got a/the failure on my vps
<clever> [clever@amd-nixos:~/apps/vali/pcsx-redux]$ nix flake info github:grumpycoders/pcsx-redux
<clever> Locked URL: github:grumpycoders/pcsx-redux/1b0cbe5e4a535def2e3e3279551e6665cdc102ae?narHash=sha256-TJTaSRKwAYYwSA3voWLtKcpB%2BT6Wt9dI9QKgOorsPYY%3D
<clever> Path: /nix/store/9390g9s13a3g5g9bdjigiwzqwnqzhg9z-source
<clever> Path: /nix/store/3vbn1ah1nfkgqapfvj0akj34qdg77phb-source
<pie_> ?: > mipsel-unknown-none-elf-gcc -DNOFLOATINGPOINT -DXPRINTFNOALLOC -DXPRINTFNOSTDIO -I../../../third_party/uC-sdk/libc/include -I../../../third_party/uC>
<pie_> > uC-sdk-glue/BoardConsole.c:30:10: fatal error: stdio.h: No such file or directory
<clever> yep, thats it
<clever> if you run flake info like above, what Path: do you get? what locked url?
criswell has joined #osdev
<pie_> Locked URL: github:grumpycoders/pcsx-redux/1b0cbe5e4a535def2e3e3279551e6665cdc102ae
<pie_> Path: /nix/store/9390g9s13a3g5g9bdjigiwzqwnqzhg9z-source
<pie_> what are your two paths?
<pie_> i guess this is the broken one and the other is the working?
<pie_> at least it seems to be reproable?
<bslsk05> ​gist.github.com: gist:3f8ce27afc15836b01475d63985d6105 · GitHub
<clever> pie_: 3vbn1ah1nfkgqapfvj0akj34qdg77phb works, 9390g9s13a3g5g9bdjigiwzqwnqzhg9z breaks
<pie_> so now we have to figure out why you get 3nv instead of 939?
<pie_> * 3bv
<clever> just clearing the eval/fetch cache, forced nix to re-download it, and now my desktop is broken once more
<pie_> soo export HOME=$(mktemp -d) and go back and forth? :/
<clever> -rw-r--r-- 1 clever users 12K Aug 6 00:04 /home/clever/.cache/nix/fetcher-cache-v3.sqlite
<clever> within here, nix keeps track of the mapping from git hash to nar hash
<clever> so it can quickly reuse a storepath it previously fetched
<pie_> with you so far
<clever> and thats why the desktop was stuck in a "fixed" state
<clever> but i have no clue what i did differently, to get it into that state
<pie_> used a newer nix?
<clever> i built it, but never ran it
<clever> i was confirming it was still broken before i did
<pie_> huh
<pie_> i thoguht you ran it
<pie_> i imagine the entry didnt expire?
<clever> nope, all i did was `nix build .#` within a clone of master
<clever> then i went back to the problem, and tried to confirm it with the old nix
<pie_> and now its using git+file agian?
<clever> i think it always was
<pie_> or is that not relevant in the end?
<clever> its confusing as heck :P
<clever> nix isnt meant to be this unpredictable
<pie_> im sure this is deterministic :P
<pie_> so what was up with the file copy looking message <clever> i think it always was
<clever> i was sometimes using `nix flake info -v` and sometimes `nix build .# -v`
<clever> and those produce different logs
<clever> but `nix flake info github:grumpycoders/pcsx-redux/1b0cbe5e4a535def2e3e3279551e6665cdc102ae` seems to be the most direct option
<clever> the Path: in it directly shows the problem
<clever> so you can skip all eval and build logic
<pie_> ok so with that i guess there is something to diff again?
<pie_> well we are back to why do/dont the dirs get created
<pie_> i guess you can try a new nix again?
<pie_> ~again
<clever> its getting late here, so i was thinking of just heading to bed
<pie_> sure o/
<pie_> well, back to osdev
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<pie_> so... what if "xv6 in userspace"
<kof673> i see you went with "reflective control" good choice :D
criswell has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<kof673> > Reflective control for an elastic cloud ... - Scholars@Duke publication scholars.duke.edu › publication
<kof673> This paper addresses “reflective” control for applications that use server resources from a shared cloud infrastructure opportunistically.
<kof673> any joke you make, someone is already using it for real
<kof673> they just mean "dynamic" perhaps "opportunistically" :D
<pie_> well i started off wanting to do it, now im just trying to find out if there is anything that will make me give up immediately
<pie_> whats soviet style rank of reflection?
<pie_> i imagine there is some history to this? :P
<pie_> and why are you calling it reflective control?
<pie_> or, why are you calling it reflective rather
<klys> given an antique switching psu and mobo (with pretty nice schematics) the options are 1) power on the mobo and check voltages 2) construct something that can ensure the (perhaps switching) psu stays on from the schematic and just build from there...
<klys> psu pins are 1. ac ok; 2-3. not connected; 4. -12v; 5-6. +12v; 7-9. +5v; 10-13. gnd;
<kof673> i'm just making reflective jokes, don't mind me :D
<clever> pie_: got a reply on matrix before i could get to bed, the problem seems to be fetching from github
<clever> if you fetch a given commit from github, it produces a botched fetch
<clever> and if you try to build a local clone, from the same commit, it reuses the github fetch
<kof673> they just use the same terms lol
<pie_> :v
<pie_> kof673: this sounds like it makes some sense im just not following completely
<pie_> clever: not botched enough apparently :v
<kof673> generic reflectivity i just relate to being dynamic in general
<kof673> that is what it is, the ability of a program to inspect or rewrite itself
<kof673> so userland / emulators / bytecode etc. is arguably more amenable to that than hardware (exception: firmware)
<kof673> don't overthink my comments :D
<kof673> i just always generally strive towards dynamicness in absence of anything else :D i will take the speed hit for more flexibility :D
<kof673> think of a jit versus compile once
<pie_> well i definitely need as much bang for buck as i can get, but in terms of implementation effort right now
<kof673> or dynamic kernel modules even. old unix you had to recompile the kernel i believe :D
<kof673> or shared libraries even. plenty of this is mainstream nowadays
<kof673> just if you were to "xv6 but in userland" is another step :D
<pie_> \o/
<kof673> i really perhaps want a bytecode/vm and a program can override instructions at run-time if it wants :D not saying it is even useful, or worth all the effort, just if you want to go all-out dynamic...
<pie_> at that point are you just running on a crazy emulator xd
<pie_> god knows anything you can come up with IBM already did it
<pie_> wait a minute now that you mention it
<kof673> lol ^^^ probably
* pie_ scratches head
<kof673> they did have microcode or whatever, but can't imagine programs would routinely mess with that at run-time
<pie_> i recently heard about something something in-memory updateable microcode
<kof673> but OS/kernel at startup maybe...maybe they had different "versions" for different OS
<pie_> it was mentioned in onur mutlus lectures
<pie_> called millicode maybe
<pie_> but also yeah microcode in general /kind of/ covers this i guess
<pie_> its not fully dynamic since its "just" messing with the hardware state machine (?)
<kof673> there is a joke web page where the person made an x86 emulator IIRC...calling out to microservices/cloud .......... that is too far for me maybe :D
<kof673> but i think modern fast HW and lots of RAM...there is still some leeway where it would not be that bad
<kof673> it doesn't mean you have to make it all web or whatever lol can still do similar in asm and C on a single machine/etc.
<kof673> by "leeway" i mean hardware is arguably faster/cheaper than ever, relatively
<clever> kof673: i have seen one website, that emulated an old computer, at the logic gate level.....
<pie_> i forgot why i wanted to post this guy: (ಠ_ಠ)
<kof673> i dunno, people said lisp machines (or the OS) was flexible...even if they were only using it for "prototyping" and then write the real program somewhere else
<pie_> obligatory lisp machine mention, obligatory ibm mention, im getting pretty close to bingo
<kof673> just add forth :D
<pie_> well you need a third one first
<pie_> I didnt realize WSL uses user-mode linux https://www.infoq.com/news/2016/04/linux-windows/
<pie_> but actually this is probably WSL and not WSL2
<pie_> well user mode linux for windows is not very up to date :P https://umlwin32.sourceforge.net/details.html
<bslsk05> ​umlwin32.sourceforge.net: Technical details
<pie_> im going to be trying on linux anyway just thought it would be neat if someone did the hard work for windows too
goliath has joined #osdev
<kof673> old qemu versions had a kqemu kernel module, for linux ,windows, and freebsd at least i believe...i don't recall if the guest os had to or was supposed to run a special kernel
<kof673> before all the hw virtualization features took off, that was a way to get more speed
Lucretia has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
netbsduser has joined #osdev
fkrauthan has quit [Quit: ZNC - https://znc.in]
fkrauthan has joined #osdev
xenos1984 has joined #osdev
fkrauthan has quit [Client Quit]
fkrauthan has joined #osdev
<nikolar> geist: I thought git worked with whole files in the background, not diffs
teejay has joined #osdev
netbsduser has quit [Ping timeout: 244 seconds]
EmanueleDavalli has joined #osdev
<geist> nikolar: it does at the upper layer, but the lower layer stores file objects compressed and diffs against each other
<geist> the trick though is it decouples the diff storing from how the commits work
<geist> it just throws all of the file/tree/etc objects in a pile and heuristically figures out the best way to store deltas
<nikolar> huh i forgot how it works in the background
<zid> There's a weird article about the heurustics for which objects end up in which pack
<zid> that I've forgotten the name of
<bslsk05> ​www.kernel.org: Concerning Git’s Packing Heuristics
<zid> ah there it is
<nikolar> oh yeah i remember reading this
<nikolar> i don't remember the contents though lol
<zid> nod, it was from here
GeDaMo has joined #osdev
criswell has joined #osdev
jcea has joined #osdev
sortiecat has joined #osdev
jcea has quit [Ping timeout: 276 seconds]
FreeFull has joined #osdev
<geist> yah i was reading it a while back and posted it here
criswell has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<ZetItUp> note to self, dont use header magic number as entry point address, you get so weird addresses, like 18GB into ram :P
<sortiecat> 18 GB is usually my favorite offset
sortiecat has quit [Quit: Leaving]
<heat> geist: > now i think in general your fs can be slow and no one cares because SSD
<heat> nah
<heat> even on stupid fast SSDs you can very much measure differences between different filesystems
<zid> lots of itty bitty files is still worse perf at least
xenos1984 has quit [Read error: Connection reset by peer]
<zid> and if you're hitting it hard enough you can notice
xenos1984 has joined #osdev
sortiecat has joined #osdev
bauen1 has quit [Ping timeout: 260 seconds]
<nikolar> heat: the point is that the most people don't care about the differene
<nikolar> *difference
<nikolar> not that there isn't any
<heat> who's "most people"
<heat> consumers on their desktops/laptops? yeah most likely
<heat> but "most people" probably didn't notice the difference between FAT and NTFS
<pog> i care
<pog> i care a lot
<pog> btrfs btfo
<pog> ext3 forever
TkTech4 has joined #osdev
<pog> ext2 if you really like losing data
<pog> ext3 is for if you sometimes like losing data
<heat> ext4 if you like
TkTech has quit [Ping timeout: 244 seconds]
TkTech4 is now known as TkTech
<pog> i don't like
<pog> i actually would prefer not to
<guideX> I wonder why in the past, fat volumes seemed so small
<guideX> like in the 90's
<guideX> the os made you break it up into little drives iirc
<GeDaMo> FAT16 was limited to 2GB if I remember
<kof673> ^^^ also what are the MBR limits, and also before LBA or whatever?
<pog> there also was a limit on partition sizes up until XP SP3
<guideX> ah yes, that's what it was, there used to be a fat16
<guideX> forgot about that
<guideX> I remember upgrading someones hard drive, and it made me break up the one drive into a bunch of littler drives
<kof673> extended partition ? :D
<kof673> or whatever dos called it :D
<GeDaMo> I had to do that because some program didn't like the bigger partitions
<zid> oh you didn't get blown away then GeDaMo
<pog> yeah up to XP SP 1 didn't show anything larger than 132GiB
<GeDaMo> zid: apparently not :P
<guideX> iirc, this must've been like, win98, or maybe even 95
<kof673> the extended i believe was also to get around 4 partition limit of MBR IIRC although i never used those really
<zid> I'm ballooning like a spider, using 5g internet is way better from a mile in the air
<pog> hi zid
<pog> you're supposed to turn off your phone while flying idiot
<zid> does it interfere with the skyhooks
<pog> yes
<zid> if I switch to bluetooth will that be better? more godlike?
<guideX> I've watched all 22 seasons of airline disasters, and not ONE of them featured a story of a plane that crashed because of someones cell phone use
<guideX> or even issues of any kind
<zid> It was just untested
<zid> and flight regs are very very slow to update
<guideX> I think it must be some kind of old wives tale or something
<zid> it was unlikely to cause issues, everybody knew that
<zid> but it hadn't be *tested*
<zid> Of course, it got lots of field testing, because people did it anyway :P
<pog> that's what happened on that alaska airlines flight where the door plug blew out--somebody was using their phone without airplane mode smh
<pog> has nothing to do boeing failing to police quality control in its supply chain
<pog> zid are you in a boeing or airbus
<GeDaMo> Nah, it's a balloon :P
<guideX> zid, are we talking, alaska flight 1282?
<guideX> "Specifically, four bolts intended to secure the door plug were not reinstalled after being removed for maintenance during the manufacturing process"
<guideX> it was a maintenance failure supposedly
<guideX> many deaths of people on airplanes are via, the idiots on the ground doing maintenance
<zid> Most failures are maint failures, except for the occasional indian pilot turning the fuel pumps off
<zid> guideX: also pog said that not me
<guideX> some of them are like, boeing hiding shitty designs where people are going to die for sure also
<guideX> zid, ah whoops
<guideX> pog I meant
* guideX needs to wear his new glasses in the morning
<GeDaMo> Use a larger font size :P
edr has joined #osdev
<zid> like GeDaMo
<zid> he uses 48pt
<zid> "I cannae see the wee letters!" --gedamo
<GeDaMo> It's not that bad ... yet :|
<guideX> if I put the font at large size, that means I have to alt-tab faster when the boss comes in the room D:
vdamewood has joined #osdev
sortiecat has quit [Ping timeout: 276 seconds]
Left_Turn has joined #osdev
criswell has joined #osdev
bauen1 has joined #osdev
Turn_Left has joined #osdev
Turn_Left has quit [Read error: Connection reset by peer]
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 265 seconds]
skipwich has joined #osdev
skipwich has quit [Remote host closed the connection]
kfv has joined #osdev
kfv has quit [Remote host closed the connection]
tronexte has quit [Ping timeout: 245 seconds]
tronexte has joined #osdev
goliath has quit [Quit: SIGSEGV]
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Jari-- has joined #osdev
<Jari--> hi all from Jyväskylä
<nikolar> yes hello
<FireFly> hi from a fair bit further south
<nikolar> heh same i guess
stolen has joined #osdev
sortiecat has joined #osdev
sortiecat has quit [Quit: Leaving]
<pog> i'm a bit west
<heat> packaging a google project is an experience
<heat> 1) get alternative build system (gn)
<heat> 2) rpm does not have nice helpers for this alternative build system
<heat> 3) run random python script to download more crap, including prebuilts
<heat> 4) build (it takes some 5 minutes because it's a C++ googlepilled project)
<heat> 5) there's no install target so you need to install everything manually
<pog> there are several well-documented crashes where the cause ranged from absentminded error to toxic cockpit
<nikolar> that's what you get for using googleware
<nikolar> also what googleware
<heat> 6) gn doesn't use your host CFLAGS/LDFLAGS so the package is still slightly fucekd
<heat> nikolar: perfetto
<nikolar> lol get rekt i guess
<heat> i need it for work raisins so i'm packaging it and hopefully adding it to OBS
<pog> and at least one where the dudes were giddy on a late night repositioning flight and took the plane to 50,000 feet for the fun of it and then stalled and crashed
<pog> (Pinnacle 3701)
<heat> oh beautiful, it's not even using my toolchain
<heat> but the prebuilt clang
<heat> god fucking damn it
<pog> oops
<heat> geist: hey i heard you work at google
<heat> can you fix it? thanks
<heat> good news though: this project includes support for 3 other build system
<heat> meson and 2 other googlepilled ones
<heat> so i can cycle through every build system looking for the less broken one
Left_Turn has joined #osdev
<nikolar> Meson I hope
<nikolar> At least it plays with the rest of the system
<heat> i would hope too
<heat> but i bet 500 trillion USD that every other build system is more used
<nikolar> Well the mesonfile whatever was written by a googler so you never know
<heat> android bp for AOSP, bazel for google3, gn for chrome and fuchsia
<heat> meson for weirdos doing linux packaging
Turn_Left has quit [Ping timeout: 252 seconds]
<nikolar> Lol
Jari-- has quit [Ping timeout: 248 seconds]
<kof673> narrator raven: USD federal reserve notes have no date when they will be payed, and have not been redeemable on demand for decades due to "emergency", so they aren't even a negotiable instrument
netbsduser has joined #osdev
<kof673> a promise to pay nothing, in never never land, at never never time
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 244 seconds]
bauen1 has quit [Ping timeout: 276 seconds]
bauen1 has joined #osdev
<pog> a promise to pay you dollars that are slightly less valuable
<GeDaMo> IOUs that people are willing to exchange for goods and services
Jari-- has joined #osdev
<zid> pog: fractional reserve banking is my fave
<pog> yes
<GeDaMo> "This planet has - or rather had - a problem, which was this: most of the people living on it were unhappy for pretty much all of the time. Many solutions were suggested for this problem, but most of these were largely concerned with the movement of small green pieces of paper, which was odd because on the whole it wasn't the small green pieces of paper that were unhappy."
bauen1 has quit [Ping timeout: 240 seconds]
<zid> pog: Are you male, female, ditto, or legendary?
<pog> legendary
<nikolar> ditto
<kof673> well, it is for the u.s. stuck under permanent war......."willing to exchange" they are internal basically
<kof673> it is u.s. army script in reality
<kof673> as they "occupy"
da5id has joined #osdev
goliath has joined #osdev
<kof673> actual states are still on specie/constitution, the remannts of them anyways
xenos1984 has quit [Ping timeout: 276 seconds]
xenos1984 has joined #osdev
<kof673> i wasn't trying to start anything, i was saying follow the symlink lol
<kof673> -> /dev/null
netbsduser has quit [Ping timeout: 276 seconds]
xvmt has quit [Remote host closed the connection]
<kof673> federal citizens/14th amendment are not operating as "people" they are "persons", and considered occupying an unpaid volunteer "office" of the democracy "[federal] citizen is an office in the democracy] -- obama http://press-pubs.uchicago.edu/founders/documents/v1ch4s25.html This city [...] for the residence of government, its officers and attendants.
<bslsk05> ​press-pubs.uchicago.edu: Republican Government: Federal Farmer, no. 18
<kof673> its the internal company money for dc and its employees lol
xenos1984 has quit [Ping timeout: 248 seconds]
<kof673> similarly, a mayor may be a free man or woman, but not while in public office :D
<klys> another long day ahead. late shift today. I have a half hour; here in this large schematic I think there's something I could interface with my breadboard.
xenos1984 has joined #osdev
<klys> my breadboard has an astable 1-second 1-shot button, dip switches, led.s, latches and static ram.
<klys> according to those notes, most of the circuit is operating at +5vdc, which I am doing.
<klys> I have cables to get a signal from a jumper header on p.29
<klys> looks like I'm dealing with "TI CCLK" if I want bits sent to the graphics controller...
xvmt has joined #osdev
<klys> the cpu is the 6120 on p.14. another cpu can be connected via the apu connector on p.29.
PapaFrog has quit [Ping timeout: 252 seconds]
EmanueleDavalli has quit [Ping timeout: 248 seconds]
<klys> most of the internal graphics logic is on p.20-22, it appears the character generator (chargen) on p.22 has inputs, though I can't tell yet if the inputs are wired to the outputs via E174, or if that chip is just for graphics mode.
<klys> as "CP DX04" appears in several places on this page and so I have to assume those are all the same signal.
<klys> I may come back later today. good luck all~
PapaFrog has joined #osdev
gildasio has quit [Ping timeout: 240 seconds]
gildasio has joined #osdev
<pie_> clever: did you find out what was up?
EmanueleDavalli has joined #osdev
karenw has joined #osdev
EmanueleDavalli has quit [Quit: Leaving]
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
bauen1 has joined #osdev
goliath has quit [Quit: SIGSEGV]
<pie_> is there an explanation of the internals of user mode linux anywhere because im pretty sure im not understanding a lot of things
skipwich has joined #osdev
<clever> pie_: yep
<bslsk05> ​github.com: submodules may or may not exist as an empty directory, depending on how its first fetched · Issue #13698 · NixOS/nix · GitHub
<clever> pie_: basically, when nix copies a git based flake from a local directory -> /nix/store, it excludes the empty submodule dirs
<clever> but if it loads it from almost anywhere else, it includes empty dirs
<clever> once it has done that, it inserts the git commit + storepath into a cache in ~/.cache/nix/
<clever> if you try to load the same commit from anywhere else, it uses the storepath it inserted first
<clever> thats why a dirty tree mysteriously fixed it, the cache isnt going to match, so it re-imports the dirty tree
<clever> thats why a dummy commit worked, that commit wasnt fetched over github:
<nikolar> cursed
<clever> very
skipwich has quit [Remote host closed the connection]
skipwich has joined #osdev
vdamewood has joined #osdev
<pie_> clever: what causes the difference in creation behavior?
<pie_> is it nix or git?
<pie_> i mean specifically
<pie_> oh i should read the link probably
<pie_> so these *separately* both happen to work, but not for the same reason?
<pie_> <clever> thats why a dirty tree mysteriously fixed it, the cache isnt going to match, so it re-imports the dirty tree
<pie_> <clever> thats why a dummy commit worked, that commit wasnt fetched over github:
<clever> pie_: there are ~2 problems in nix (which is using git as a library)
<clever> first, when you fetch via github: or git+file://, it does something different with submodules
<clever> second, it assumes that if the git commit is the same, the result is the same, and it uses whatever it imported first
<pie_> i get the latter part, just wondering what specifically is changing in the former
<clever> github: provides empty directories where the submodules go
<clever> git+file:// (for local clones) omits those directories
<pie_> why?
<clever> i havent found the right part of the code, because its been restructed so much
<pie_> ok
<clever> i also discovered a secondary problem
<clever> if you set inputs.self.submodules = true; on a flake, then anything fetching it will fetch submodules
<clever> however, if you git clone it, without submodules, you get nasty/confusing errors, you must do the usual submodule dance, then it works
<clever> however, error: input attribute 'submodules' not supported by scheme 'github'
<clever> however, git+http:// silently ignores that :P
<pie_> fun
<clever> so i basically had to revert that fix, and go for plan b, cp -T
<pie_> probably why they did that too?
<clever> nope, the nix on their CI doesnt even support inputs.self.submodules
<pie_> (i mean, probably not)
<clever> the code pre-dates nix supporting it
<clever> pie_: https://github.com/grumpycoders/pcsx-redux/pull/1953 read the commits, including the ones i undid with a force push
<bslsk05> ​github.com: nix: Fix submodules by cleverca22 · Pull Request #1953 · grumpycoders/pcsx-redux · GitHub
<pie_> i am either too tired for this right now, or too stupid. ill have another look later
<clever> pie_: it is a real head-twister
<pie_> i just cant fit a lot if state in my head at once '-_-
Jari-- has quit [Ping timeout: 272 seconds]
stolen has quit [Quit: Connection closed for inactivity]
criswell has quit [Ping timeout: 276 seconds]
* pie_ waits for the qemu build/install to not fail :/
fedaykin has quit [Quit: leaving]
Lucretia has quit [Remote host closed the connection]
Turn_Left has quit [Read error: Connection reset by peer]
fedaykin has joined #osdev
Turn_Left has joined #osdev
criswell has joined #osdev
Turn_Left has quit [Read error: Connection reset by peer]
nyah has joined #osdev
skipwich_ has joined #osdev
skipwich has quit [Ping timeout: 252 seconds]
skipwich_ is now known as skipwich
skipwich_ has joined #osdev
skipwich__ has joined #osdev
skipwich has quit [Ping timeout: 276 seconds]
skipwich__ is now known as skipwich
skipwich_ has quit [Ping timeout: 265 seconds]
skipwich_ has joined #osdev
skipwich__ has joined #osdev
skipwich has quit [Ping timeout: 265 seconds]
skipwich__ is now known as skipwich
skipwich_ has quit [Ping timeout: 272 seconds]
skipwich has quit [Remote host closed the connection]
skipwich has joined #osdev
karenw has quit [Read error: Connection reset by peer]
karenw has joined #osdev