#Astral
1 messages · Page 31 of 1
hahahahahaha ha hah ah ah ah ha hafhhd shsd jsdjkf sdkgkofds jfd hnjfsdogij sfdjpig fsdjgsd jpidj asd ghijsdaj pijsg ihjsadjopg das´g as
"mov $1, %eax\n\t" /* SYSCALL_ARCHCTL*/
me when
I mmap instead of archctgl
kdfgjkfdlhksdjfsdfm,
lol
that also explains why the mmaps all had weird ass arguments
why did it just triple fault
😟
I think thats my first astral triple fault in over a year
well gsbase is fucked and did not swap somewhere
okay I am hitting an actual page fault in wine code
like 32 bit windows code
vmm: no range
Unhandled #PF pid 124 tid 125
cr2: 000000000000fd0c gs: 0000
rax: 0000000000a5add6 fs: 010f
rbx: 000000007ffd1000 es: 001b
rcx: 0000000000000000 ds: 001b
rdx: 0000000000000000 cs: 0107
r8: 0000000000000000 ss: 001b
r9: 0000000000000000 r10: fffffffffffffffe
r11: 0000000000000202 r12: 000000007ffc0000
r13: 00000001001ffd24 r14: 00000001001ff5f0
r15: 0000000000000000 rdi: 0000000000000000
rsi: 0000000000000000 rbp: 0000000000000000
rip: 000000007bcd2c20 rsp: 00000000001ffd10
err: 0000000000000006 rfl: 0000000000010202
cs: 107
it also page faults while probably trying to handle that page fault
No line number information available for address 0x4049e <setup_raise_exception+190>
now it just page faults in a loop in a rip I don't have any control over, fun
is this wine code
my wine patch yeah
why is astral taking so long to build :/
its been 6 hours
(its not stuck, its just really slow)
you've barely started building it
thats just downloading the debian root damn
is it pulling package from liek the debian package repo
if so then i guess i could probably set a mirror
i don't think that's happening, it downloads stuff from a snapshot mirror
This is some weird shit man, its dying on the 32 bit exception handling code in ntdll
Still havent pinpointed the exact line, it got some relocations applied and I was too lazy
at every opportunity...
dude can't stop showing off the wallpaper
And you know it’s just for showing off the wall paper because they have nothing else open
This was fucking staged lol
i said that already
btw how hard is it to compile xorg/twm with a custom libc?
wdym by a custom libc?
didn't astral use mlibc?
They're talking about a Chinese os
mlibc is CCP approved
CPP approved
wat
im talking about mlibc
or like any custom libc
well i just mean
manually cross compiling xorg for your os
and not using prebuilt binaries
no this time is actually wasnt intentional lol
i just have it open on a separe workspace so that i dont have to spend 5 hour of my life staring at build logs
(the build failed btw)
mlibc is an almost complete libc
so im gonna guess its pretty easy?
ofc you do need quite a bit of kernel infrastructure regardless of the libc that you're using
na im just asking if its easy to cross compile it
for your kernel with a different libc
mlibc on linux is only behind musl + glibc by ~1-2% of features
idk how complete relibc is
well not really
i have to add a few patches for busybox/bash
but i can still compile it
im gonna hope that its not missing some like super major feature for xorg lol
in current os-tests, mlibc passes 3921 tests, musl passes 3967 (this is the best score over all libcs/OSes) and redox passes 3342
ohhh coool
thats a lot
btw do you know any os other then redox os that uses relibc?
probably none
huh thats pretty surprising
Nooooooooo

NOOOOO
nothing really supports relibc
true
there's also little point because relibc
- isn't anywhere as complete
- is quite buggy
- non trivial to port to non-redox
- doesn't care about compliance (yet)
well that was idiotic
I needed to set a very specific bit in the GDT
and instead SS was being treated as 16 bit instead of 32 bit because I dnd't have it set
for the funies whenever an LDT is initialized u should make it print "LDT INIT... OK"
the GDT strikes again 
adding that to the wine port 
seems to just be silently exiting with a STATUS_DLL_NOT_FOUND
003c:Call ntdll.RtlInitUnicodeString(10000120fd90,6ffffebc76ca L"mscoree") ret=6fffff53be7c
003c:Ret ntdll.RtlInitUnicodeString() retval=00000010 ret=6fffff53be7c
003c:Call ntdll.LdrGetDllHandleEx(00000001,00000000,00000000,10000120fd90,10000120fd88) ret=6fffff53be99
003c:Ret ntdll.LdrGetDllHandleEx() retval=c0000135 ret=6fffff53be99
003c:Call ntdll.RtlNtStatusToDosError(c0000135) ret=6fffff53bed8
003c:Ret ntdll.RtlNtStatusToDosError() retval=0000007e ret=6fffff53bed8
003c:Ret KERNEL32.GetModuleHandleW() retval=00000000 ret=6ffffeb81602
003c:Call KERNEL32.ExitProcess(00000000) ret=6ffffeb81628
apparently thats normal
maybe its steam drm
astral running steam when
steam running astral when
Electron app
ah
is it really electron or its own framework?
That’s not electron but it’s using CEF
WHY
WHYYYYYYYYYYY
I DON'T WANT VULKAN
DOES COGMIND HARDCODE VULKAN
ok this confirms that its 32 bit code being run
vmm: no such space or space accessed is kerneç
Unhandled #PF pid 344 tid 345
cr2: 0000000000000000 gs: 0000
rax: 0000000000000000 fs: 010f
rbx: 0000000000000000 es: 001b
rcx: 000010000039fd90 ds: 001b
rdx: 0000000000000000 cs: 0023
r8: 0000000000000000 ss: 001b
r9: 0000000000000000 r10: 0000000000000000
r11: 0000000000000246 r12: 000010000017f2f0
r13: 0000000000000000 r14: 00000001000ff710
r15: 00000000000000a0 rdi: 0000000000000000
rsi: 0000000000000000 rbp: 0000000000000000
rip: 0000000000000000 rsp: 00000001000fefa0
err: 0000000000000014 rfl: 0000000000010246
vmm: no such space or space accessed is kerneç
Unhandled #PF pid 344 tid 345
cr2: fffffffffffffff8 gs: 0000
rax: 00000000c0000005 fs: 010f
rbx: 0000000000000000 es: 001b
rcx: 0000000000000000 ds: 001b
rdx: 0000000000000000 cs: 0023
r8: 0000000000000000 ss: 001b
r9: 0000000000000000 r10: 0000000000000000
r11: 0000000000000000 r12: 0000000000000000
r13: 0000000000000000 r14: 0000000000000000
r15: 0000000000000000 rdi: 0000000000000000
rsi: 0000000000000000 rbp: 0000000000000000
rip: 00001000009f045b rsp: 0000000000000000
err: 0000000000000006 rfl: 0000000000010246
vmm: no such space or space accessed is kerneç
Unhandled #PF pid 344 tid 345
cr2: fffffffffffffdf0 gs: 0000
rax: fffffffffffff900 fs: 010f
rbx: fffffffffffff900 es: 001b
rcx: 000000000000009a ds: 001b
rdx: 000000007ffc0000 cs: 0023
r8: 0000000000000000 ss: 001b
r9: 0000000000000000 r10: 0000000000000000
r11: 0000000000000202 r12: 000000007ffcf340
r13: 000000007ffcf3e0 r14: 000000007ffcf910
r15: 000000007ffc0000 rdi: 000000007ffc3800
rsi: 000000007ffcf3e0 rbp: 000000007ffcf300
rip: 00001000009f44fe rsp: 000000007ffcf2e0
err: 0000000000000006 rfl: 0000000000010287
00d0:err:virtual:virtual_setup_exception nested exception on signal stack addr 0x1000009f44fe stack 0x7ffcf2e0
00d0:err:win:get_desktop_window failed to start explorer c00000e5
00d0:err:vulkan:vulkan_init_once Wine was built without Vulkan support.
spooky
rsp: 0000000000000000
rip: 0000000000000000
kerneç
(also, how are you hitting ç, there is ñ and ´ before it?)
do kde and dolphin 
PFFT
soon minecraft bedrock edition on astral 
well wow64 is kind of working
its just opengl on wow64 that is not
cc @prime juniper, since you might be interested on getting this working on managarm some day
did you made any changes to mlibc
or only wine patching and ldt pain
other than astral sysdeps not really
mlibc even in the months old version I am running is perfectly capable of running wine so far
Did you figure out the bug
which
Kernec
thats not a bug thats a feature smh
u had some fs corruption or whatever?
that was me calling the wrong syscall in some assembly stub in wine 
soon™
@opal lotus
lol
smth is corrupting the state after fork and before context switch????
fork (parent):
cr2: 000000000000000b gs: 0000
rax: 000000000000000b fs: 010f
rbx: 00000001000fefac es: 001b
rcx: 000010000039fd90 ds: 001b
rdx: 0000000000000000 cs: 0023
r8: 0000000000000000 ss: 001b
r9: 0000000000000000 r10: 0000000000000000
r11: 0000000000000246 r12: 000010000017f2f0
r13: 0000000000000000 r14: 00000001000ff710
r15: 00000000000000a0 rdi: 0000000000000000
rsi: 0000000000000000 rbp: 00000001000fef90
rip: 000010000039fd90 rsp: 00000001000fef88
err: 0000000000000000 rfl: 0000000000000246
fork (child):
cr2: 000000000000000b gs: 0000
rax: 0000000000000000 fs: 010f
rbx: 00000001000fefac es: 001b
rcx: 000010000039fd90 ds: 001b
rdx: 0000000000000000 cs: 0023
r8: 0000000000000000 ss: 001b
r9: 0000000000000000 r10: 0000000000000000
r11: 0000000000000246 r12: 000010000017f2f0
r13: 0000000000000000 r14: 00000001000ff710
r15: 00000000000000a0 rdi: 0000000000000000
rsi: 0000000000000000 rbp: 00000001000fef90
rip: 000010000039fd90 rsp: 00000001000fef88
err: 0000000000000000 rfl: 0000000000000246
oh fun
I think its a double allocation
allocator bug real?
frg_slab corruption
port to risc-v
okay I think its a proc UAF
memsetting released proc memory to some random bullshit makes some very funny behaviour
lmfao
hell naw
fcfcfcfcffcfcfc
probably short for "oh god it's all fucked" 
don't tell me thats the issue lmfao
kernel-src/sys/proc.c: lastchild->parent = init_proc;
no I do this
unless init is free? but it shouldn't be
hm ok so the proc that forked this proc just literally fork() exit()s
so its probably daemon()'d itself
now as to why this causes issues....
maybe I can look if acpid also has this same problem, as it daemon()s itself
init_proc->child has this problem
init_proc->child->sibling has this problem
init_proc->child->sibling->sibling has this problem
init_proc->child->sibling->sibling->sibling has this problem
all of them similarly point to the same parent
while (lastchild && lastchild->sibling) {
if (lastchild->state == PROC_STATE_ZOMBIE)
++belowzombiecount;
lastchild->parent = init_proc; // <---- doesnt run if lastchild->sibling == NULL AKA proccess spawned only one child
lastchild = lastchild->sibling;
}
if (lastchild) {
lastchild->sibling = init_proc->child;
init_proc->child = proc->child;
}
uuuuuuuuuuuuuhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
this is even spookier than before
looking at the registers in the thread struct
they look absolutely fine
so the issue is during the context switch
even worse is that this is without smp
so like its not even another core corrupting it
and an assert right in switch_thread() right before ARCH_CONTET_SWITCHTREAD() does not give anything weird
yeah I can reproduce it very well
oh f me why is it calling into arch_context_switch with interrupts enabled
^[[94msyscall return: pid 200 tid 201: 206 OK (16176 cached pages, 462222 free pages)
^[[0m^[[92msyscall: pid 200 tid 201: waitpid: pid 206 statusp 00000001000FF0AC options 0 (16176 cached pages, 462222 free pages)
^[[0msaving 201 next 207(case 1)
tid 207 page fault (rip 000010000039FD90 cr2 00000001000FF0AC)
tid 207 page fault (rip 000010000039FD90 cr2 00000001000FF0AC)
tid 207 page fault (rip 0000000000000000 cr2 0000000000000000)
vmm: no such space or space accessed is kerneç
Unhandled #PF pid 206 tid 207
cr2: 0000000000000000 gs: 0000
rax: 0000000000000000 fs: 010f
rbx: 0000000000000000 es: 001b
rcx: 000010000039fd90 ds: 001b
rdx: 0000000000000000 cs: 0023
r8: 0000000000000000 ss: 001b
r9: 0000000000000000 r10: 0000000000000000
r11: 0000000000000246 r12: 000010000017f2f0
r13: 0000000000000000 r14: 00000001000ff810
r15: 0000000000000098 rdi: 0000000000000000
rsi: 0000000000000000 rbp: 0000000000000000
rip: 0000000000000000 rsp: 00000001000ff0a0
err: 0000000000000014 rfl: 0000000000000246
fs_base: 000010000017f2f0 gs_base: fffffff
well thats
uh
its faulting at the return address of the syscall?
like rip
and cr2 is
the stack
????
that still doesn't explain why
the fucking
rip gets nuked
is my fork broken or something?
what the fuck
hm on second thought
those page faults seem sane
or not
it should page fault only once for CoW
hmm maybe
that page is not being set in the fork
so it just
doesn't cow
instead of just cow it maps zero page and then cows
which then explains why rip = 0 and rbp = 0
because these are taken from the stack
okokok
now I just gotta understand WHY
this is happening
We've reached an agreement to acquire Astral.
After we close, OpenAI plans for @astral_sh to join our Codex team, with a continued focus on building great tools and advancing the shared mission of making developers more productive.
SELL OUT
you're too late ^^ 
I need the cash
ok yeah confirmation
^[[0m^[[92msyscall: pid 98 tid 99: poll: fds 0000100000C6E800 nfds 123 timeout 16 (16192 cached pages, 462001 free pages) ^[[0mtid 219 page fault (rip 000010000039FD90 cr2 00000001000FF0AC) not present tid 219 page fault (rip 000010000039FD90 cr2 00000001000FF0AC) present but not writeable tid 219 page fault (rip 0000000000000000 cr2 0000000000000000) vmm: no such space or space accessed is kerneç Unhandled #PF pid 218 tid 219
oh god
what is that formatting
anyways
00000001000ff088
in a fork print: doing range 0000000100000000 - 00000001000FFFFF
wonder if its an off by one and its not cowing the last page?
doing range 0000000100000000 - 00000001000FFFFF
doing newrange 0000000100000000 - 00000000FFFFFFFF
why are they different
cogmind better work when I find the fix to this.
its so close
the screen flashed black
progress
setting it to windowed mode a window opens
the last time the game logs is "Initialinzg steam api" or smth like that
and wine complais about not being able to dispatch an exception
What was the bug
fork not remmaping a very specific range properly
and the bug after that was multithreades ldt fs stuff
did you tried to run half life or some other game
its 32 bit so why not
astral fnaf real
@grand shadow can you run qemu? And do you have KVM?
can run qemu but no kvm
I've heard KVM ain't difficult to implement
.
Neat
can u try running more advanced windows games now
like factorio
or smth
Does 16bit work currently?
crisis on astral when
Clair Obscur when?????
nvmm is even simpler since most of it is userspace
we got fnaf russian clone in astral 😭
hows the fps
2
playasbleish
does qwinci's glibc-mlibc thingie still work?
imagine the fps with glibc 
no idea tbh
glibc is slow?
not according to what we've seen here
lmao
fishix being unoptimized and getting 3x fps compared to astral
also mathew fixed a whole bunch of kernel slowness and it hasnt affected fps at all
so yeah glibc appears to be fast
or at least faster than mlibc
I think more than anything this shows that most of the time is not spent in the kernel but in userspace
yea
is mlibc compiled with O3 and lto ?
@grand shadow are you compiling mlibc with o3 and lto
o2
how about lto
or whatever the default option is
kind of, it extracts the files but it complains about missing space since I don't have statvfs()
trvth
I mean it shouldn't be too bad
except for fat32
but who cares about fat32?
int statvfs() {
return EINVAL; // XXX never implement this
}
I care, implement it pls kthxbye 
i dont care so it balances out
Quick tip: implement statvfs
steam next?
update: steam got past the funny out of space error and timed out trying to connect to the itnernet
I do
it tries to getsocketop() SO_OOBINLINE in a loop so
maybe its related to my completely missing implementation of getsocketopt 
scary
wine memes are now upstream cc @prime juniper
have you tried any more cool stuff?
I tried ftl but it dies because of some device memes I think
maybe it wants /dev/input
it tries to open some windows raw input stuff
in a fork yes
I just /dev/keyboard and /dev/mouse
next thing I'm gonna work is probably adding some more socket option support
this is what steam tries to get:
pid 962 tid 963: getsockopt: 28 1 8 -> SO_RCVBUF
pid 962 tid 963: getsockopt: 28 1 7 -> SO_SNDBUF
pid 1102 tid 1103: getsockopt: 120 1 3 -> SO_TYPE
pid 962 tid 963: getsockopt: 28 1 10 -> SO_OOBINLINE
it seems to be some socket meme that is preventing it from working normally
Nice stuff
I’m gonna let you take the windows shit for now. Time isn’t my friend and Linux_mlibc takes too much time (or rather time is none lmaooo)
Damn, is it unfinished?
I think steam download memes are because of missing libresolv
that needs the res_* family of functions in mlibc
which are all stubs
:D
make it
port this lol
and this
its written in rust
true
i would have done that if astral didnt take 10 hours to build
(which failed and i have to start it all over again)
tho it probably is my own peoblem cuz i live in china and have bad internet
Isn't discord blocked in china?
is discord is blocked with dpi stuff
start tcp connection
do SYN handshake
nobody sends anybody any data
refuse to elaborate
FIN
FIN
🖥️ 🤝
💻
literally
What systems did this lmao
cogmind trying to do its scoresheet upload
I think I am missing a socket option implementation or something because the first FIN is from the local ip
think I will implement/stub TCP_NODELAY, SO_SNDBUF, SO_RCVBUF, IP_TOS, SO_KEEPALIVE
it just needs sound
year of astral desktop
uHDA
isn't that dead
I'm trying to get the scoresheet upload working and its so funny
I am just in a death loop of slaming myself against the wall until I die while some poor derelict who just wanted to give me a rocket launcher watches it all
I got steam to always page fault on a specific spot after doing some socketopt changes
maybe once I fix that maximum ragebait will continue
I need to fix at some point my interrup rbp stuff so I can stack trace using gdb
whats a dpi
the instructions:
the register context
what the fuck
no what the fuck
I have no idea what fucked up this badly
no smp
Wtf happened???
for some unknown reason the registers just magically change from 0 and 0x3 to 0x1f4 and 0x1f4
Interruption?
no that was just
me being dumb
anyways I think I found an allocator off by one bug
nvm
oh thats an out of bounds write
why the fuck is my poison implementation not doing anything
at some point I think I rewrote some of this code and just did not add back it
💀
And frankly, my alloc.c code just straight up fucking sucks lmfao
steal 
My slab code is fine its just the anonymous sized alloc() free() code quality that is uh
Super queditonable
do you have slabs for common sizes?
yeah
F
why is gcc compiling my syscall_poll as recurisve
It’s GCC 
that is the most impressive sole developer OS ive ever seen
very nice 🙂
I can only dream of making that 🙁
Russia has invented stuff which does weird stuff to packets and bypasses that 
So you can just connect to the server directly
And since russian dpi is stronger, I'd assume it would work with the chinese one as well
yes im using this btw
when rain world port
I just use dlmalloc in kernel 
I use frigg slab
Its one of my fav games but also unity ☠️
you can probably reach this as well if you start doing it
i also only dreamed of running bash and busybox coreutils on my os when i started this
but now i can actually run bash and busybox coreutils and its only been 2 months
ngl its not as hard as i thought
(i thought i can run bash within 1 week but then when i acutally started it i felt like its gonna take 1 year, but now in reality it only took me 2 moths)
I refactored a bit my allocation code and added some more debugging and apparently the culprit seems to be tcp code, spooky
tcb->retransmitbuffer = alloc(mtu);
why is this allocating one byte
hell naw
I think I am receiving bytes on listening sockets
💀
gotta port AddressSanitizer 
you can see my entire journey from nothing to bash on #1470727916248891466 btw (quick advertisement D:)
steam still can't connect to the internet🥀
can steam go to the main page?
still in installer land
or well
it installs
but it thinks it does not have a connection while checking for updates
dang
wow
the thing is, wireshark shows that the dns resolved and a tls connection was made
so something else must be off
does wine works with steam on linux ?
probably
I couldn't get it to work 😭 but I'd presume it does yeah
most secure rfc793 implementation:
It seems the last thing steam does on the tcp socket is a recvmsg, which is backed by the wireshark dump
Maybe I am just looking at this from thr wrong way and I need to implement some system call or some argument or whatever
how is a receive backed by wireshark?
the lack of a send?
As in, the fact that the last thing it does with the socket is a receive lines up with the wireshark dump
ok
I have decided to drop bash in favor of a more modern shell guys
~~upgrade bash to 5.3 when
~~
fastfetç
Trvthnvke
did you run baldi on astral
I actually havent tried yet
and try to run hello neighbor and bendy
when astral kernel shell
I know russian fnaf clone runs
Running wine in ring 0 for trolling
so clickteam works right
I have no idea what the fuck this is written in and I probably got the first virus in the history of hobby operating systems
real
lsgdt
LDT init... OK
Have you ran anything that uses vulkan under wine?
I dont even compile wine with vulkan

ldt init is like the elite osdev version of gdt init
TRUE
I wanted to see how my vulkan game engine could run under wine. That build had some other weird oddities even under linux compared to the native build too that would be interesting to see
Somehow the windows version through wine ran with like 3x the performance 😭
I already put in way too much wffort yesterday... I was forced by told by mint to update limine and flanterm
I have used up all my energy until next year
is this your canvas or limine can give flanterm context now ?
ig 2027 will be the year of the astral desktop
Its a new limine 11 feature
then ill switch to it
Limine will give you irs flanterm parameters
cuz my bmp parser is crap
I refuse to put a bmp parser in kernel and would rather userpace ioctl() an image in
So limine doing this is nice
Reminds me of the old limine terminal daysm...
✝️ limine terminal
limine 11?
damn how many versions did I miss
limine uses stb image so it should be even better
Did limine 11 release?
write your own terminal...
trust me bro...
It will be fun…
yes
next ragebait would be powershell as default on astral
Does it run on wine
I had git cloned astral into that one day for testing
Then noticed I wrote a bunch of code there
ah
And decided go just keep using that folder
PowerShell v7 is cross-platform (every version since v3?)
but I guess you could troll even more by getting the old PowerShell v2 from a Windows 10 or a 2025 version of Windows 11 and get it to run in wine
what do you mean by dropped base revision 1?
And base revision 6 on other arches
I'm not updating 
I jumped from limine 8 base revision 0 to limine 11 base revision 6
Wdym base revision is up to 5, not 6
Was mint really that fast to make a new rev?
Damn they really did already make a new rev holy shit that was fast
and they dropped all of the other ones
it runs on linux
☠️
they make linux versions for software that no one would use on linux
but no office
it doesn't suck tbh
the previous revisions aren't very sane on !x86
how
src\common\gid.cpp (183) : GID StartTime out of range
[NIL] Startup - updater built May 20 2024 14:26:54
[NIL] Startup - Steam Client launched with: "Z:\root.wine\drive_c\Program Files (x86)\Steam\Steam.exe"
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[1971-06-21 13:24:22] Loading cached metrics from disk (Z:\root.wine\drive_c\Program Files (x86)\Steam\package\steam_client_metrics.bin)
[1971-06-21 13:24:22] Failed to load cached hosts file (File 'update_hosts_cached.vdf' not found), using defaults
[NIL] Using the following download hosts for Public, Realm steamglobal
[2009-04-22 19:31:59] 1. https://cdn.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[NIL] Checking for update on startup
[NIL] Checking for available updates...
[NIL] Downloading manifest: https://cdn.steamstatic.com/client/steam_client_win32
[NIL] Manifest download: send request
src\common\net.cpp (2191) : Assertion Failed: Unable to set default socket options, error 10022
how did I not get this before
this changes everything
enabling WINEDEBUG=+relay completely explodes wine for some reason while running out of steam
to the point I get a fucking #DEBUG exception
💀
it's okay, i reverted this on 11.1.0 because tbf it wasn't that much code to keep supporting that
(except on aarch64 where anything other than base revision 6 isn't supported)
so yeah i got to have Mathew update to base revision 6 in this sick gamer move even though in the end it wouldn't have mattered
the riscv64/loongarch64 ones are okay
it's mostly an aaarch64 issue
More peogress on steam: I have gotten those asserts to shut up and now steam actually logs about sending a request to the server and waiting for a return
But nothing is sent in wireshark
Which is not really cool
You did enable debugging options
hm well
it seems that it does receive the tcp data after all and I am jsut going in circles
is it maybe some poll/FIONREAD meme?
if I just leave it running it does not actually die with that funny no network error anymore
^M
[NIL] Startup - updater built May 20 2024 14:26:54^M
[NIL] Startup - Steam Client launched with: "Z:\root.wine\drive_c\Program Files (x86)\Steam\Steam.exe" ^M
[1971-06-21 13:24:22] Failed to load cached hosts file (File 'update_hosts_cached.vdf' not found), using defaults^M
[NIL] Using the following download hosts for Public, Realm steamglobal^M
[2009-04-22 19:31:59] 1. https://cdn.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'^M
[NIL] Checking for update on startup^M
[NIL] Checking for available updates...^M
[NIL] Downloading manifest: https://cdn.steamstatic.com/client/steam_client_win32^M
[NIL] Manifest download: send request^M
[NIL] Manifest download: waiting for download to finish^M
[NIL] Manifest download: finished^M
[NIL] Download failed: http error 0 (cdn.steamstatic.com/client/steam_client_win32)^M
[NIL] DownloadManifest - exhausted list of download hosts^M
[NIL] failed to load manifest from buffer.^M
[NIL] Failed to load manifest^M
[NIL] Error: Download failed: http error 0^M
[NIL] Saving metrics to disk (Z:\root.wine\drive_c\Program Files (x86)\Steam\package\steam_client_metrics.bin)^M
[NIL] Error: Failed to determine download location for universe 1^M
[NIL] Verifying installation...^M
[NIL] Performing checksum verification of executable files^M
[NIL] Unable to read and verify install manifest Z:\root.wine\drive_c\Program Files (x86)\Steam\package\steam_client_win32.installed^M
[NIL] Verification complete^M
[NIL] Downloading update...^M
[2009-04-22 19:32:00] Checking for available updates...^M
[NIL] Downloading manifest: https://cdn.steamstatic.com/client/steam_client_win32^M
[NIL] Manifest download: send request^M
[NIL] Manifest download: waiting for download to finish^M
might be that uh
interesting tcp sequence
that might indicate
my close is kind of
broken
hm nvm that wouldn't be an issue even if I should probably fix that
now its back to dying with that error?
Oh nice
Mint based as always
Even logging all failing syscalls I still cant get to the source of that
The only thing I have is a shmget() not implemented print, but I have many doubts about that
it seems ike the http request is failing with error 12157
for cogmind
maybe its the same issue as steam
maybe I should jsut get iexplore.exe working first
internet explorer on astral real
huh apparently wine needs gnutls
for ssl
lmfao
https doesn't work but http does
nice
I told wine to just download the whole gecko engine when I ran iexplore and it just did
no questions asked
wait isn't gecko the fucking firefox engine
????
lmfao
well why would they write an entire browser engine just to have iexplorer.exe :P
guess I gotta port gnutls now
porting gnutls but not bash 5.3 🥀
I can send cheap (untested) patches 
unless I can build Astral from AArch64 macOS or Linux
make a linux TCG VM

too lazy 
my internet is too unreliable to download them 
like 35MB/s but every TCP connection hangs indefinitely about every 30s
i think you can download off copy part just fine?
💀
copy part does support resume
and other shit tho
even upload resuming
could work?

omg epic github skill issue
it PR'd it to my own fork 
in what situation would that ever make sense
cheap patches sent https://github.com/Mathewnd/Astral/pull/28 👍
I have absolutely no idea if these even build 
😭😭
Why don’t you try them and see
✨
I know this won’t work
Because my 5.3 patches fail for 5.1
Btw
if I had the time, energy, network reliability, and disk space to do so, I would
unfortunately I have a crippling lack of all of the above
especially time
How much disk space does an astral build take

Il fucking do it
After I port my bash
a minimal one shouldnt be that bad
though make sure it does build the minimal one since it does not do it by default iirc
I think my goals until an astral 1.0 should be:
- fully self hosting (capable of building a self building distro of itself)
- audio
- stability/speed
- easier to install
when astral cmake port?
and ninja
so when it becomes self hosting
I can daily drive astral
cmake isn't hard to port
Worst case you run cmake in wine

Still crazy that now you can just
Run stuff on wine
wine is the most stable linux api
Linux compat clones watching the sigma windows compat os walk in
run cmake on wine
run wine on cmake
Trvthke
But the patches go to mlibc, right?
Mlibc probably wouldnt need any new changes for it
Like if I switch to mlibc, how difficult is it to become self hosting
Probably not that difficult at least libc side
It can run all of the tools needed to compile stuff
At least the ones I tried
And ran a lot of configure scripts successfully
not very
managarm is basically capable of self hosting
on the mlibc side
I've got it further with gnutls now
I thiiink it wants tcp_shutdown(SD_WR) now
What was it using previously?
CMake's on Windows
btw you can improve your hashtable using https://lemire.me/blog/2016/06/27/a-fast-alternative-to-the-modulo-reduction/
so that you dont modulo over a dynamic value on the hot code path lmao
quebec mentioned
(the author is a quebecois professor, I learned about him from his recent cppcon talk on simdjson)
printf("!! %x\n", tcb->shutdown);
if ((tcb->shutdown & SOCKET_SHUTDOWN_READ) == 0) {
%x prints to 0
it does not go into the if block
thje fuck
inb4 broken printf
printf("!! %x\n", (tcb->shutdown & SOCKET_SHUTDOWN_READ));
if ((tcb->shutdown & SOCKET_SHUTDOWN_READ) == 0) {
prints 0
......
what the fuck
did you try running something like chromium or firefox lol
what type is tcp->shutdown and what's the value of SOCKET_SHUTDOWN_READ?
maybe %x is truncating the high bits
It was an int and thats 1
I think it was just some ub for some reason
shits fucked, no idea what the fuck steam wants from me
might try to get a simple curl working first and work my way up from there
what does it do atm?
which is also even more stupid because iexplore.exe works
it sends the https request, reads back some data (less than a curl to the same address responds) and then complains about not having an internet connection
maybe the tcp impl is having an issue of the skill
though apparently there I actually HAVE a pointer kind of
since it returns an error thats like your tls is bad sorry
1513 or something
12157
I've asked the cogmind dev what he uses for https, hopefully he responds
why does cogmind even send some sort of tcp requests?
news download + scoresheet upload
after every run your score gets uploaded to the server for leaderboarding and record keeping
nah
it just says scoresheet upload failed
I see
but it'd be cool to have that work
yea
RISC-V is good
what's that got to do with tcp brur
bro just wanted to say it for no reason
respect the hustle, bro has a goal
But yeah, they could both be symptoms of the same issue so I gotta keep trying to see wtf is going on
maybe try to write some test cases which use network on wine
Anyways I think I know how I am gonna handle the cogmind bs
Add a print to every single SECURITY_ERROR return
There are a few in untraced functions so its pribably there
And if the steam one is not the same issue I am gonna handle it by applying to work at valve and debugging it there
Does steam statically link to it or what
Cant u just tell what it uses by looking at what dynamic libraries are loaded
Issue is I think it seems like it uses its own tls library and it does not print anything more useful than http error 0
Ah
doesnt steam use chromium
which is just boringssl
Idk what it uses for its update checker
yeah i was gonna say that but i forgot, first it kinda needs to download chromium to run it :^)
is the patch for astral getifaddrs somewhere?
its in my machine atm, later today I can push it to my patches
its just a very simple loop through every network device in /dev -> ioctl to get info -> return that info
what the FUCK
this test program:
#include <windows.h>
#include <wininet.h>
#include <stdio.h>
int main() {
printf("Hello world!\n");
InternetOpenA("test", 0, NULL, NULL, 0);
printf("2!\n");
return 0;
}
should obviously print a trace:
HINTERNET WINAPI InternetOpenA(LPCSTR lpszAgent, DWORD dwAccessType,
LPCSTR lpszProxy, LPCSTR lpszProxyBypass, DWORD dwFlags)
{
WCHAR *szAgent, *szProxy, *szBypass;
HINTERNET rc;
ERR("TRACE4\n");
TRACE("(%s, 0x%08lx, %s, %s, 0x%08lx)\n", debugstr_a(lpszAgent),
dwAccessType, debugstr_a(lpszProxy), debugstr_a(lpszProxyBypass), dwFlags);
szAgent = strdupAtoW(lpszAgent);
szProxy = strdupAtoW(lpszProxy);
szBypass = strdupAtoW(lpszProxyBypass);
rc = InternetOpenW(szAgent, dwAccessType, szProxy, szBypass, dwFlags);
free(szAgent);
free(szProxy);
free(szBypass);
return rc;
}
BUT IT DOES NOT
Lol InternetOpen
windows has some gems
like how theres a whole tls client shit in windows built in
you can just #include <winhttp.h>, link with winhttp.dll and it will just work
it logs for 64bit but not 32bit wahqt the fuuuuucik
hm I wonder what function I could use to open the internet
the humble InternetOpenW
I think the issue is that 64-bit ntdll sets up debugging shit but that doesn't get passed into the 32 bit libraries for some reason
hm yeah, it takes it from some offset in the teb but I don't think the wow64 teb has that copied
don't tell me all my shit is corrupted I lost a week's worth of work
😭
after rebooting windows it seems to work
no idea what the fuck happened ehre but I don't like it
it seems like __wine_dbg_write itself is broken in wow64???
it just does not print on that InternetOpenA()
noooooo
nooo
nooooo
wait
#elif defined __astral__
"movq 0x320(%r13),%rsi\n\t" /* amd64_thread_data()->pthread_teb */
"testq %rsi,%rsi\n\t"
"jz 2f\n\t"
"mov $1, %edi\n\t" /* ARCH_CTL_SET_FSBASE */
"mov $6, %eax\n\t" /* SYSCALL_ARCHCTL*/
"syscall\n\t"
"2:\n\t"
#elif defined __APPLE__
"movq 0x320(%r13),%rdi\n\t" /* amd64_thread_data()->pthread_teb */
"xorl %esi,%esi\n\t"
"movl $0x3000003,%eax\n\t" /* _thread_set_tsd_base */
"syscall\n\t"
#endif
"ldmxcsr 0x33c(%r13)\n\t" /* amd64_thread_data()->mxcsr */
"movq %r8,%rdi\n\t" /* args */
"callq *(%r10,%rdx,8)\n\t"
"syscall\n\t"
this
clobbers
both edx
"callq *(%r10,%rdx,8)\n\t"
this is a r10 and rdx relative call
elruerogeuogujhyieuihrhkgsdrjjsdkfiwsifkldsmjrihrewkrewgiisdkfkwsdf
xdxdxdxd
me when I don't even know how my own operating system works
BAM, I get logs now
this was so fucking stupid
hell naw lmfaooo
finally fix stupid bug
guess who shows up?
mlibc classic
guess that means the newscheck bugged out because of this?
YEAHHHHH
first cogmind run successfully uploaded from astral
newscheck is sitll borked (probably because missing gethostbyname_r
but this is quite good progress
Last Messages
---------------
00082_ Slammed into Wall.
00082_ Destabilizing: System corrupted (+2).
<x2>
00083_ System corrupted: Energy discharge (-33).
00083_ Slammed into Wall.
00083_ Destabilizing: Core damaged (-4).
00083_ Destabilizing: System corrupted (+2).
00084_ Slammed into Wall. <x2>
00085_ Destabilizing: System corrupted (+1).
00086_ Slammed into Wall.
00086_ Destabilizing: System corrupted (+2).
00087_ Slammed into Wall.
00087_ Destabilizing: Core damaged (-8).
00087_ Destabilizing: Core damaged (-4).
00088_ Slammed into Wall. <x2>
00089_ Destabilizing: System corrupted (+2).
00090_ Slammed into Wall.
00090_ Destabilizing: Core damaged (-20).
00091_ Slammed into Wall.
00091_ Destabilizing: Core damaged (-8).
how I felt debugging this for a week
steam also seems to actually be doing shit now
ts slow with all these loggings
though this seems to have split the packets at the ip layer during tx, I should probably throttle it down a bit
damn
🥀
just ran it again and
world's first non-windows/macos/linux os to run steam 
(I joke but actually maybe it is??)
doesnt *bsd run steam
add swap 
Sync is taking so long that I think it might just have had too much dirty memory
congrats on finding the bug
500 gigabytes of ram
Congrats btw
This is fucking amazing
no page out daemon?
😂
👍 Nice
btw how did you build xorg for your os?
did you just managed all of these dependencies and other bs or did you take some shortcuts?
does jink manage like pkg config automatically?
i should probably use jink instead of my crappy package manager written in rust
so i still have to make my own build sciprts :/
It also can make your cross compiler and mlibc etc
Yes but it makes it really simple to manage and write them :p
And it uses containers etc
yea but that doesnt fix the problem of pkgconfig (although im not so sure what even is a pkg config)
true
- go to gloire
- ctrl c
- go to your os
- ctrl v
- ?????
- profit
astral is often outdated
YOUR A FUCKING GENIUS
WHATTHEFUCJK
YEA i CAN JUST STEAL BUILDSCRIPS
holyshit like your a fucking genius
Math when jinx update
imagine being called math
That’s thier nickname
like actually your just a genius
how did i not think of it my self
holyshit
im so stupid
Peter Thier
😭
There is one but it cant really keep up
Blfs and an evening
Or actually maybe not
I forgot its veen years
I have my own patches to work on
although thanks to @hearty fulcrum i learned that i can just steal jinx recipies from other os
like actually thank you so much
idk why i didnt figure this out
I mean Im still in the updater but its probably super close to being done
git commit ?
I wasnt commiting anything that past week because of kalmarctf
mfw I sent patches and they never got merged

Talk is cheap send tested patches
this assumes I have time 
I'm currently too busy helping Pavel Ondračka (Mesa r300 maintainer) debug Mesa on PowerPC 
it is over now btw
More like your internet/pc is too slow.
You have to download an entire Debian container
That’s all it is
Wait @elfin turtle your here?
Why aren’t you shilling chariot
thats @gleaming bay job
yea its stuck downloading the debian container
try a mirror
idk but its a bash script so just replace the url no?
sadly i already deleted the entire jinx thing so rip :/
literally dockerhub
they mirror pinned debian rootfs's?
arent the docker images already debootstrapped and shit
oh well yeah they are fulled rootfs'es
oh wow
naw
don't tell me I'll need vulkan
seems like there is a commandline option to run it uysing oopengl
steam.exe -opengl
doesnt mesa implement vulkan?
I mean probably
but I'd have to recompile it
which is annoying
ts just keeps querying battery state
💀
why tf would it want that
the backend probably checks it constantly for the deck ui
even if it's not actually starting the deck ui
I think I need to implement ipv4_foward_enumerate_all
actually instead of guessing I should just you know
WINEDEBUG=-all+nis
maybe I need if_nameindex
static unsigned int update_if_table( void )
{
struct if_nameindex *indices = if_nameindex(), *entry;
unsigned int append_count = 0;
for (entry = indices; entry->if_index; entry++)
{
if (!find_entry_from_index( entry->if_index ) && add_entry( entry->if_index, entry->if_name ))
++append_count;
}
if_freenameindex( indices );
return append_count;
}```
time to backport the mlibc one to get_ifaddrs
oh nvm its still a enosys in upstream mlibc
💀
There is a PR for if_nameindex
i cant build

fym unkown archtecture
i was gonna go port bash 5.3 properly
and send tested patched
This is just my regular desktop trying to build astral

oh I thought this was your thread :P
Lmao
and you mentioned porting bash
I didn’t even have fork lol
Let alone any build tools
And I’m doing a rewrite now
And astral is still on bash 5.1
So was gonna help update it
ancient
does this happen with any Jinx?
can you try tracing where it comes from by adding set -x to Jinx?
my kernel uses jinx and it builds fine
its jinx 0.6 iirc
works on my machine
L
I might update just for the jinx download shit but I really dont like how it just redownloads the whole source every time until you do a successful build now
Me when I have to fix a typo but the source is 393839 gb big
Am I gonna have to spawn a Debian VM just for this 🥀
Do you have fakeroot/fakechroot installed
Idk
@sage locust pls fix
Also for some ungodly reaosn if_nameindex() works if I just call it from a test program but fails if I call it from GetInterfaceAddresses() 💀
I do wonder if it’s just a stupid cachyOS thing
Because I know it does special things with v3/v4 x86 CPUs
So it could be confusing some shit
Iirc jinx compiles some shit internally so maybe
Modern jinx versions work FWIW
the error doesn't come from jinx fwiw
And I think this is a chromium thing so maybe we are running chromium already
Could you make a single image that can be dd'ed onto a hard drive?
I'm looking for images for "Jenny's daily drivers", which is a series she posts about on hackaday
Main criteria are:
- Has an image you can just plonk on a hard drive
- Web browser
- Image editor
I dont have an image editor nor can you can links a proper web browser 
Maybe you can run paint.net on wine now
Is links good enough you can run a wordpress blog from it though?
no i mean wp-admin.php is usable
Oh
Uhhhh maybe, I think it has forms and shit
At least searches like duckduckgo work
And I think I configured my znc from it once
When do you need this image?
I don't really have a deadline per sé, it's more just free advertising if you get it written up on HaD and it actually does those things



