#Nyaux

1 messages · Page 55 of 1

surreal path
#

something

orchid dawn
#

now implement /proc/cpuinfo and /proc/meminfo so it can give more info trl

surreal path
#

maybe soon

#

now hard links arent documented in ustar (at least in the wiki page) so im gonna have to fuck around and find out to figure out how ustar gives the information about hard links to me

brisk zenith
#

I believe they're represented the same as symlinks, just with a different type code

#

But I wouldn't be surprised if most archiving tools don't bother detecting them and instead just archive them as if they're regular files

ebon needle
#

isn't hard link is just full path

edgy pilot
#

I treat hard links as normal vnodes that share resources with other vnodes

#

for symlinks, I just store a path in each vnode and resolve on lookup

median goblet
#

Other than checking the inode entry in the dirent (unreliable potentially)

#

Or checking the content of the file

brisk zenith
#

stat the file, if you've encountered (st_dev,st_ino) before it's a hard link to that file

brisk zenith
#

that's not unreliable

median goblet
#

Except not via the dirent

brisk zenith
#

posix guarantees this works

median goblet
#

Oh

#

Neat

brisk zenith
#

(st_dev,st_ino) must be unique for every inode in the system

#

seems like gnu tar actually does do this, neat

#

and yeah hard links have a type code of '1' and a linkname pointing to the target

kind root
#

u can think of hardlink as a shared pointer, and a softlink like a weak pointer

ebon needle
gray hill
#

at least, that's how mine reads it

brisk zenith
#

that's completely separate from fs-level links, whether symlinks or hard links

gray hill
#

i think it's a compat layer then

brisk zenith
#

unless you're not talking about windows explorer shortcuts? because those are just regular files recognized by explorer as shortcuts

gray hill
#

no, i created a symlink on wsl

brisk zenith
#

ah yeah

gray hill
#

and windows reads it as a text file with the link inside it

brisk zenith
#

strange that windows shows that as a regular file, it has full symlink support

#

but that is basically how symlinks are represented internally on disk

kind root
unkempt relic
#

they're using 9p2000.l which is basically 9p with plan9 stripped out and replaced with externalised representation of linux vfs ops instead, so it should accurately convey symlinks

median goblet
median goblet
surreal path
#

is tar giving me this correct?

#

also how can i reclaim limine bootloader memory exactly?

#

since i no longer need the module in memory

#

it would be a huge memory footprint save

surreal path
flat nymph
#

afaik

surreal path
#

:c

flat nymph
#

otherwise, my kernel just takes ownership of them

#

and treats it as memory that has been allocated normally throught pmm

flat nymph
surreal path
#

nothing

surreal path
#

or are they wrong

#

idk how to check to make sure

surreal path
#

im silly inside

#

fastfetch still wont display the logo

#

dies

#

maybe if i get hard links working itll work

#

at least it got the kernel

#

i put 1.0 cause i dunno what release i am

ionic musk
surreal path
#

should nyaux have a seperate kernel name

ionic musk
surreal path
#

nah that sounds stupid

ionic musk
#

NyauxK

#

kNyaux

crystal scarab
#

nya

frigid cliff
#

Nya~✨

#

Also aren’t images hardcoded in the fast fetch code?

surreal path
#

no

frigid cliff
#

Oh

#

Where does it get them then?

surreal path
#

from a bunch of files in logos/ascii

frigid cliff
#

That’s sort of what I meant

#

I guess it’s not exactly what I meant but I meant it’s included with the code

#

Did you put your own one in there?

surreal path
#

yep

#

still doesnt wanna use it

#

which is cringe

frigid cliff
surreal path
#

yes and ive patched it

#

still doenst work

frigid cliff
#

Can you list logos?

surreal path
#

how can i do that

frigid cliff
#

fastfetch --list-logos

surreal path
#

nyaux is there

frigid cliff
#

hm

surreal path
#

this doesnt work

#

i can do this

frigid cliff
#

Can you set the logo to nyaux all lowercase

surreal path
#

still does the question mark

frigid cliff
#

Hm

crystal scarab
#

maybe open an issue ig?

surreal path
#

its dif not an issue with fastfetch

#

100% an issue with my patch somewhere..

#

js dunno what

crystal scarab
#

ah

frigid cliff
#

Wait just to clarify, you have the following:

  • nyaux in the builtin.c file (under the N array)
  • there is a file named nyaux.txt in src/logos/ascii
  • you’re sure it’s returning “nyaux” or “Nyaux” (in whatever way fast fetch checks I can’t tell I’m on my phone ;-;)
surreal path
#

yes

tight valve
#

because we don't like iron oxide

kind root
#

did u execute your user name

surreal path
tight valve
#

just make it jump to 0xFFFF:0x0000

frigid cliff
#

Can you do fastfetch --print-logos

surreal path
#

doing so rn

#

printing them

#

might take a while lol

#

even with kvm is kinda slow

#

to be expected

frigid cliff
#

Fair lol there’s like a few hundreds logos

surreal path
edgy pilot
#

it's instantaneous on linux

surreal path
#

well

#

cpu isnt drawing it

#

i think

edgy pilot
#

huh?

#

it's text

surreal path
#

yea i mean about whos drawing the text

#

on linux

kind root
#

yeah its probably accelerated

#

depending on your terminal

edgy pilot
#

tty took 2s

edgy pilot
#

kitty

frigid cliff
surreal path
frigid cliff
#

Do you have your fork somewhere? Or just a diff?

surreal path
frigid cliff
#

Yes

surreal path
frigid cliff
#

nooo I have to look at this once I’m home but I’ll do it first thing

tight valve
#

took 0.041 seconds

frigid cliff
#

@surreal path why is the nyaux builtin in S[] ?

surreal path
#

s[]?

frigid cliff
#

line 4477 in src/logo/builtin.c

#

it's in the static const FFlogo S[]

#

rather than the static const FFlogo N[] (line 3121) that it should be

#

idk that it terribly matters but that doesnt seem right

surreal path
#

yes i may be an idiot

frigid cliff
#

that fixes it for me

surreal path
#

yes it fixes it

frigid cliff
#

yipee

surreal path
#

using menix's logo as a placeholder meme @supple robin

supple robin
#

menix propaganda

surreal path
#

this is now offically the nyaux logo

kind root
#

Damn

supple robin
#

damn

median goblet
#

@surreal path question. does your OS use dynamic or static linking

ebon needle
median goblet
#

mlibc can. but does nyaux make use of the feature?

brisk zenith
#

nyaux uses dylibs yeah

median goblet
#

nice

surreal path
#

me eepy

edgy pilot
surreal path
#

@native wharf ascii art vs ur generated one

#

@edgy pilot

edgy pilot
#

nice

surreal path
#

which one looks better

edgy pilot
#

I may be biased by I like the second one

surreal path
#

i need to implement hard links but i dont feel like doing anything today :c

#

me when depression

frigid cliff
#

Are you on meds? (Sorry if invasive question)

surreal path
#

yes but they dont work

frigid cliff
#

You should tell to your doctor or psychiatrist

surreal path
#

they dont care

#

they dont believe meds will help me

frigid cliff
#

There’s like a billion of them and all of them work differently on different people

surreal path
#

shitty ah doctor

frigid cliff
#

Oh

surreal path
#

yea

ebon needle
#

I can't wait for bill gates to worship nyaux

native wharf
#

i just had doubts cuz i didn't know if it was going to fit in the terminal

surreal path
#

how dare they hurt ralsei

#

😡

surreal path
#

no work today cause fuck you im tired

#

today im eating way less (to lose weight) so im quite tired physically to do practically anything

tender gorge
surreal path
tender gorge
#

🫂

surreal path
#

hug 🫂

tender gorge
kind root
#

Take your time

kind root
#

But I punished myself with exercising for that

surreal path
#

should i have a parent vnode field in my vnode structure and have the file system impmenting the ops mantain that field?

#

similar to vinix in a way

edgy pilot
frigid cliff
median goblet
#

what makes you think you need to lose weight

surreal path
#

i had a dream where i was in factrio

surreal path
tender gorge
tender gorge
surreal path
tender gorge
#

being anorexic isnt good for you either though 🥺

edgy pilot
#

I'm like almost 80

#

I'm a bit taller though

supple robin
#

i'm 90 something

#

60 is a really good weight

daring juniper
#

wait, lord, Aomi and Aina are heavier than that and they're pretty smol XD

cinder plinth
#

no male teenager should be 40kg that is simply not healthy

broken depot
median goblet
supple robin
#

183

median goblet
#

ah

ebon needle
#

i am 82 kg 😃

rigid fable
#

I'm a whopping 104kg... 😅

cinder plinth
#

I'm like 65kg 6ft

orchid dawn
#

45kg, 5ft 2in death

orchid dawn
#

yet I'm doing just fine, no doctor has told me to put on more weight

daring juniper
#

I'm about 69kg, around 6ft

edgy pilot
#

mixing those units is crazy 💀

#

wtf is 5ft 2in

silver yarrow
#

real

edgy pilot
#

191 cm and around 80 kg

orchid dawn
coral dove
cinder plinth
cinder plinth
#

or more like

#

you should

#

but if you live properly its fine

orchid dawn
#

can't be bothered

surreal path
#

yawn

#

ok we ball

#

nyaux hard link support lesgo

#

if i cant get it working ill just cheese it by making it a sym link instead

#

but i think i can get it working

#

i can manipulate the path the get the second last component, make a link op that performs a free of tmpfsnode and replacement with new vnode

surreal path
#

cool

#

now all i need to do is make the link op and implement that for tmpfs and devfs

#

then do the ustar shit and done

surreal path
#

u need to convert it from /home/test/../qwoeqo/./.. to /home/test/../qwoeqo/./

surreal path
#

no?

edgy pilot
#

/home/test/../qwoeqo is /home/qwoeqo

surreal path
#

yes ik

#

thats not the point here

surreal path
#

okay

#

i finally figured out the fucking string function

#

that took so long

#

holy shit

tender gorge
surreal path
#

nvm i did not

#

ok i figured it out now

#

ok i think ive implemented it fine

#

only way to test is to well

#

run it

#

okay lets see

#

🤞

surreal path
#

im trying to implement hard links and hardlinking something not involved to the US dir causes its v_type to suddenly be regular?????????????????????????

#

im stuck

#

no idea whats going on and its hard to track with gdb

median goblet
median goblet
#

what the hell

#

bad order of operations?

#

isnt it supposed to be like, create the tmpfsnode, insert a new dirent into currnode that points to the new tmpfsnode?

surreal path
surreal path
#

???

#

still :c

orchid dawn
#

Not entirely sure what's breaking there, but some general tips that might help:
Are you corrupting memory (parsing bogus info)? (You can watch values in GDB to check this)
Do you have faulty assumptions about the layout?
Are you trashing internal state that causes faulty assumptions about the layout?

median goblet
#

what is curvnode and with

#

is with the destination directory or the actual node to be hardlinked

surreal path
#

still cannot figure it out

surreal path
#

with vnode is the destination vnode

#

to be linked

surreal path
median goblet
median goblet
#

which one's which

surreal path
#

curvnode is the directory where the new link will be placed

#

with vnode is the one to link to

median goblet
#

so describe to me how this works

#

specifically the insert_into_list

#

what list do you add what entry into

surreal path
#

okay so

#

direntry is bascailly struct tmpfsnode **nodes and size_t cnt

#

insert_into_list is a helper function

median goblet
#

ah so it's multiple dirents

surreal path
#

this is how the structures look

median goblet
#

can you show me what insert_into_list looks like

surreal path
#

yea sure

#

its just this

#
static void insert_into_list(struct tmpfsnode *node, struct direntry *entry) {
  if (entry->cnt == 0) {
    entry->nodes = kmalloc(sizeof(struct tmpfsnode *));
    entry->nodes[0] = node;
  } else {
    struct tmpfsnode **oldnodes = entry->nodes;
    entry->nodes = kmalloc(sizeof(struct tmpfsnode *) * (entry->cnt + 1));
    memcpy(entry->nodes, oldnodes, entry->cnt * sizeof(struct tmpfsnode *));
    kfree(oldnodes, entry->cnt * sizeof(struct tmpfsnode *));
    entry->nodes[entry->cnt] = node;
  }
  entry->cnt += 1;
}
median goblet
#

mm

#

so typically the vnode doesnt have the name of the file

#

because it can have multiple

#

but i see that your tmpfsnode has a pointer to a vnode

surreal path
#

mhm

#

and whats wrong with that

median goblet
#

direntry seems to not actually be a direntry

#

youre naming things wrong and confusing

surreal path
#

wdym

median goblet
#

direntry could be named dircontents and tmpfsnode could be named a direntry because it associates a vnode with a name

surreal path
#

tmpfsnode can also be a file tho

median goblet
#

it doesnt matter what vnode could be, a file or a directory

#

or a symlink

#

but tmpfsnode has a thing that points to a vnode right?

#

it doesnt contain the vnode

surreal path
#

yea

median goblet
#

ok so how things typically work

  • a vnode represents an instance of a file, so its size, permissions, contents, etc.
  • a direntry is basically a name of a file, of which there can be multiple
  • the direntries themselves are in a directory vnode
surreal path
#

ok i get that

#

but that doesnt rlly have anything to do with my issue here lol

median goblet
#

your naming convention is confusing

surreal path
#

i guess

surreal path
#

still nooo

surreal path
#

holy shit none of this makes sense, how does adding an entry cause the fuckin US vnode to become type 0?????????????

#

i still dont understand

edgy pilot
#

cringe US vnode lover vs chad EU vnode enjoyer

surreal path
#

@brisk zenith maybe u might have an idea as to why this happens? im quite stuck here and gdb isnt telling me much :c

brisk zenith
#

What's the issue exactly? I haven't been keeping up

surreal path
#

which makes zero sense

#

as its unrelated to the hardlink completely

#

the only thing i can think of is corruption but all im doing is inserting a node into the directory?

#

code for hardlink is in tmpfs.c and ustar.c on github

#

run git pull if u got a local repo already

brisk zenith
#

Can't think of anything from that alone, I'll do some debugging on my own

brisk zenith
#

well that's an issue

#

wonder how that came about

surreal path
#

the hell????

brisk zenith
#

ah i see

#

in hardlink() you're not copying the name

#

you're just using the pointer the user passed in

#

which in this case happens to be a buffer allocated on the stack in populate_tmpfs_from_tar

#

so on the next iter that buffer gets filled with the name of the new entry - Antarctica

#

or well

#

the next iter is the one that creates the Antarctica dir, and on this path the stack buffer isn't used, so it contains gibberish and lookup() doesn't resolve to the hard link

#

so the Antarctica dir gets created correctly

#

the next entry does use the stack buffer, and in such a way that it ends up holding Antarctica starting at the address that got stored in the tmpfs by hardlink

#

so this time the lookup resolves to the hard link

surreal path
#

that solved it???

#

wtf

#

me when fucking strings

#

holy shit i hate strings

surreal path
#

me when buffer overflow funny string garbage

brisk zenith
#
diff --git a/kernel/src/fs/ustar/ustar.c b/kernel/src/fs/ustar/ustar.c
index 5d8e210..05f974b 100644
--- a/kernel/src/fs/ustar/ustar.c
+++ b/kernel/src/fs/ustar/ustar.c
@@ -108,7 +108,7 @@ void populate_tmpfs_from_tar() {
         // THE HUMAN uhhhhh.... maybe we're here because the guy writing this is
         // braindead WHAT...??? just kidding! uh i dunno bro WHERE IS THE HUMAN
         // ?????
-        src->ops->hardlink(src, destination, last);
+        src->ops->hardlink(src, destination, strdup(last));
 
         kfree(lookup, lookup_len);
         kfree(last, last_len + 1);
diff --git a/kernel/src/fs/vfs/vfs.c b/kernel/src/fs/vfs/vfs.c
index 3e31a5d..06ec41e 100644
--- a/kernel/src/fs/vfs/vfs.c
+++ b/kernel/src/fs/vfs/vfs.c
@@ -137,7 +137,7 @@ void vfs_create_from_tar(char *path, enum vtype type, size_t filesize,
     }
 
     if (res != 0)
-      assert(current_node->ops->create(current_node, token, VDIR, &tmpfs_ops,
+      assert(current_node->ops->create(current_node, strdup(token), VDIR, &tmpfs_ops,
                                        &next_node, NULL, NULL) == 0);
 
     assert(next_node->v_type == VDIR);
``` this is the patch i used for reference
#

the 2nd hunk isn't related to the issue but i noticed that it would have suffered from the same issue

surreal path
#

yea

#

what do u think of my funny comments tho :^)

#

in ustar.c

brisk zenith
#

papyrus

surreal path
#

real

brisk zenith
#

but as for the question above it

#

is the issue that you're not sure the directory src needs to be created in exists?

#

if so i'd just do something similar to vfs_create_from_tar

surreal path
#

yea i was confused before

#

but now its fine

brisk zenith
#

ah ok

surreal path
#

someone made a pr removing typos and stuff

#

i merged it :)

mossy belfry
#

WHY DOES YOUR MAKEFILE INSTALL APT

gray hill
#

lol what

mossy belfry
#

i am having to remerge my system to fix everything this broke

gray hill
#

where is it installing apt?

mossy belfry
gray hill
#

oh wait, you are not on a debian distro?

#

or one that uses apt

mossy belfry
#

no i am on gentoo

gray hill
#

ohhh

#

lol

mossy belfry
#

ts so cooked 🥀

#

build scripts should not install package managers

#

🥀

gray hill
#

at least use docker if you really wanna do it

mossy belfry
gray hill
#

idk

#

prob a package that is only available prebuild via apt

tawdry mirage
mossy belfry
#

oh ok phew i was worried

gray hill
#

oh, that explains why then

mossy belfry
#

that was scary for a second

#

alrighty we are so back

thorn bramble
#

how about you read the output of the command you are running before jumping to conclusions and accusing someone of breaking your system

#

lol

#

unless: you explicitly gave it root permissions, you are using a broken kernel or your / and friends are & 0--6, there is no way a makefile could break your system

molten grotto
thorn bramble
#

well, yeah, you fall under the first condition then :^)

#

explicitly giving root permissions

molten grotto
#

the reason for it is that I got tired of needing to enter my password every time I run xbstrap run make-image

thorn bramble
#

(lemme add a sudo rm -rf /* to nyaux makefile real quick)

thorn bramble
#

usually enough between rebuilds

molten grotto
#

or maybe I could make xbstrap be owned by root and give it suid trl

gray hill
#

or remove the passwd for just a specific command

thorn bramble
#

both are stupid solutions

#

well, one is dumb

#

second is not a thing iirc

gray hill
#

specific command no

brisk zenith
gray hill
thorn bramble
#

that's what managarm does by default

#

but it is kinda slow iirc

gray hill
#

it is possible

brisk zenith
#

i was more thinking along the lines of mke2fs -b <block size> -d <dir/tarball> -E offset=<offset> <image> <number of blocks>

#

but sure libguestfs works

thorn bramble
#

we're talking about sudo then, i guess

brisk zenith
#

that doesn't need sudo

thorn bramble
#

true

#

i think managarm can already do that with remake-image

#

make-image mounts the image and uses rsync to update it

#

which needs root permissions if you use loopback mount method

brisk zenith
#

for that i'd use fuse2fs

thorn bramble
#

idk if xbstrap supports it

#

but it probably wouldn't be hard to add support for it

brisk zenith
#

it's not a matter of xbstrap support? you just have to make whatever script xbstrap invokes support it

#

xbstrap doesn't support loopback or guestfs or anything like that either

thorn bramble
#

oh well sorry, not xbstrap

#

i meant bootstrap

brisk zenith
#

ah ok

thorn bramble
#

it contains the scripts

#

idk if it's one specific script that does it

#

but i think so

surreal path
#

huh whats going on

#

ive been sleeping

#

@mossy belfry fix ur pr

#

thats not how it works

#

u need to do kprintf("%s"(), func)

#

and panic doesnt take format

#

well uh

#

good morning chat i suppose

#

ive been sleeping all day

#

holy shit

mossy belfry
surreal path
#

not*

mossy belfry
#

oh ok

surreal path
#

well fix ur PR if u want me to merge this

mossy belfry
#

nah that would take a long time ur codebase is big lol it's not a huge problem

surreal path
#

perferably get it to compile

mossy belfry
#

I might try again later time

surreal path
#

okay then close ur PR or smt

mossy belfry
#

ok ok

#

my apolocheese

surreal path
#

all good

supple robin
#

kprintf("%s()", __func__)

surreal path
#

i did

#

it just didnt show up

supple robin
#

yours would just be UB

surreal path
#

cause discord

supple robin
#

no

#

look at what you sent

surreal path
supple robin
#

yours would just print garbage

#

try it meme

surreal path
#

bru its not showing up

#

cause

mossy belfry
surreal path
#

fucking discord

supple robin
#

no

#

you're blind

#

that's the problem

mossy belfry
#

myopia 😔 ✊

brisk zenith
#

the __func__ is within the string literal

supple robin
#

you did kprintf("%s(), __func__")

#

that would likely just crash

mossy belfry
#

what if their kprintf function just does that but it lexes each token in the string trl

surreal path
#

oh

#

mb

#

yea i cant see shit

#

ur right im blind

surreal path
mossy belfry
#

what does nyaux even mean

surreal path
#

bro

#

nya-aux

#

aux meaning unix

#

or whatever

mossy belfry
#

aux?

supple robin
#

:3

mossy belfry
#

auxillary cord

#

isn't that the 9mm headphone jack

mossy belfry
#

unix for men

surreal path
#

crazy

supple robin
#

minimal expandable unix

surreal path
#

holy shit im sleepy

rare pebble
surreal path
#

ok

#

we back

#

after i sleep some more

#

nyaux time

ebon needle
ebon needle
surreal path
#

dont feel like doing anything today

#

feel like shit

#

maybe later but we'll see

surreal path
#

hey

#

currently working on getting c++ working

#

then we ball with fbdev

#

sorry for the lack of progress in the past week

tender gorge
tender gorge
edgy pilot
#

c++ in nyaux?

surreal path
#

ye

edgy pilot
#

you mean g++ or in the kernel

surreal path
#

in the kernel

edgy pilot
#

what

#

why?

#

isn't your kernel in C?

surreal path
#

yes

#

but

#

im kinda starting to like c++???

#

weirdly

edgy pilot
#

then rewrite it better instead of mixing languages

surreal path
#

no

#

no point in doing that

edgy pilot
#

that's the sane solution

surreal path
#

im not gonna rewrite it

edgy pilot
surreal path
edgy pilot
#

there are always bugs

surreal path
#

havent encountered any atm

edgy pilot
#

perfect software doesn't exist

surreal path
#

ik

#

im just saying, how am i supposed to fix a bug i dont know of and havent encountered

edgy pilot
#

you might accidentally fix it by rewriting

surreal path
#

bro

edgy pilot
#

yes

surreal path
#

no

#

im not entertaining this

kind root
#

Smh not even zig

surreal path
#

crazy

tender gorge
#

i was crazy once

edgy pilot
#

they locked me in a room

surreal path
#

c++ working

#

cool

#

im sleeping im too tired

thorn bramble
#

zig in nyaux when

tender gorge
thorn bramble
#

zig is infy approved

#

also he decided to add c++ support, your point being? meme

supple robin
supple robin
#

smh

surreal path
#

i keep conking out amd falling asleep

#

honestly that is kind of expectee

#

expected*

#

considering i didnt get a lot of sleep

#

due to stress

surreal path
#

and ill support even tho i know 0 zig

#

i just opened my closet

#

i found

#

this little shit

#

the wii fit thing

#

oh and a broken wii

#

lol

#

anyways

#

nap time

native wharf
#

the best way to navigate your operating system

tender gorge
native wharf
#

yeee it is

#

i was just bein silly

kind root
#

when did u send it

surreal path
#

like

#

a long time ago lol

kind root
#

lol

surreal path
#

anyways i need to add some c++ glue garbage so i can use keywords like new

#

shouldn't be too hard c++ just calls into operator new(usigned long

#

i can simply get it to call kmalloc

surreal path
# native wharf yeee it is

bluetooth would be pain to implement but maybe one day if we can get weston on nyaux we can probs do that too

#

then we could be able to write a driver for the wii fit board

#

first hobby kernel to do so

native wharf
#

:DDD

surreal path
#

glue made 👍

#

now we can do fbdev

#

oh and im finally giving proper commit messages to nyaux

#

no more "nano added cm cm"

surreal path
#

oop looks like ci is broken again

#

time to fix ig

surreal path
supple robin
#

what's glue

surreal path
#

its glue

#

yum

#

(this is a joke dont eat glue it will kill you)

supple robin
#

what does it do tho

surreal path
supple robin
#

bruh

surreal path
#

lol

#

i might add wrappers around more C functions in the kernel

#

or smt

#

idk

#

i just wanted to have a file named glue

#

cause haha glue

#

and i mean it kinda sounds right even tho its lit 3 loc

surreal path
# surreal path

if there are other C++ "operators" i dont know about i can impl them here ig

surreal path
#

crazy

#

😱

edgy pilot
#

don't forget these flags

-fno-rtti
-fno-exceptions
-fcheck-new
surreal path
#

yea i have em

edgy pilot
#

also maybe -fsized-deallocation because your free takes size too

edgy pilot
surreal path
#

oh yeah def want that

surreal path
#

hi guys im wing gaster the royal scienist!

edgy pilot
frigid cliff
edgy pilot
frigid cliff
#

Anything will kill you if you eat too much of it

tawdry mirage
edgy pilot
# ebon needle air

air isn't food or a drink but if you took too much of it, you would pop

ebon needle
#

2025 stop

daring juniper
#

Oxygen toxicity

surreal path
#

good morning

#

or should i say

#

good night

#

chat i just woke up

tender gorge
surreal path
#

i feel asleep watching a japanese person play sans undertale

gray hill
#

lol

#

cool

daring juniper
cinder plinth
edgy pilot
cinder plinth
#

does the compiler keep track of it or what

thorn bramble
#

new/delete knows what kind of an object it's destroying

#

so it knows the size of it

#

but i do wonder how it works with lets say

struct a { int x; };
struct b : a { int y; };
void foo(a *bar) {
  delete a;
}
int main() {
  foo(new b);
}
tawdry mirage
#

-fsized-deallocation doesn't make the compiler call sized delete, it just enables the operator on clang iirc

thorn bramble
#

ah

surreal path
#

gosh i miss my old desktop

thorn bramble
#

also, is that even valid?

surreal path
thorn bramble
#

to delete an object by a pointer to it's subclass

#

or superclass

#

or whatever

tawdry mirage
thorn bramble
#

i see

#

that makes perfect sense

tawdry mirage
#

also typo in your code, delete bar;

thorn bramble
#

true :^)

#

but yeah virtual dtor makes perfect sense

tawdry mirage
#

(= default not necessary ofc)

thorn bramble
#

is it not?

tawdry mirage
#

i mean you can give the dtor a custom body

surreal path
#

speaking of which

tawdry mirage
#

if need be

surreal path
#

donations welcome

thorn bramble
#

ah yeah

#

i thought you meant

#

~a(); vs ~a() = default; lol

#

that made no sense in my head

surreal path
#

it will be a nyaux expence trl

tawdry mirage
#

ah no yeah i worded that poorly

thorn bramble
#

but = default vs one with body make sense

molten grotto
#

and gcc looks to use the sized functions by default starting at 6.1 KEKW

cinder plinth
#

How does it know tho for stuff like vectors

#

where it's resized

thorn bramble
#

it doesn’t

#

it uses delete[]

#

i think that one is different

edgy pilot
#

vectors would either use malloc/realloc/free or new[]/delete[]+new[]/delete[]

tawdry mirage
#

new[] stores the amount of elements somehow (in an implementation-defined way), since delete[] has to know how many destructors to invoke

edgy pilot
#

I guess new[] would allocate more memory and store the size as well

broken depot
edgy pilot
#

yeah, it would work just like the allocator in libc storing metadata

molten grotto
#

also it looks like it only uses the sized array delete for types that have a non-trivial destructor, that's actually kinda annoying

#

though ig its not that bad as you can just store the size yourself in the nonsized one in that case (if its not already stored by the allocator)

surreal path
#

nyaux lore

median goblet
#

I'm pretty sure this is what happens

#

Like ((size_t*)myPointer)[-1]

#

But this isn't standard

tawdry mirage
#

it is a part of the itanium abi afaik though meme

surreal path
#

apologies for the slow nyaux development

#

its too hot and its hard to code when its super hot outside

#

im not used to this temperature and its making it nearly impossible to type even one line of code

#

im sweating like crazy

#

idk how we are gonna get past this

#

we have no ac here in ireland so

gray hill
surreal path
#

yep

#

i hate summer here all the time

gray hill
#

go to code in a car

#

lol

surreal path
#

i dont own a car

gray hill
#

at least you have AC in there

gray hill
surreal path
gray hill
#

f

surreal path
#

idk how people deal with summer

#

or how they even like it

gray hill
#

here in italy we have AC

#

and at least for now it is an OK temp in the shadows

#

but you get cooked in the sun

ebon needle
surreal path
#

air conditioning

ebon needle
#

why

surreal path
#

huh

#

to cool u down??

ebon needle
#

why in ireland no ac

surreal path
#

because its "always cold"

#

that is not true btw

#

ever since global warming its getting worse and worse in summer

surreal path
#

nope

#

none in my house at least

#

i feel like a intel current gen cpu with this heat

#

im thermal throttling from the temperature

ebon needle
surreal path
#

laptop

ebon needle
#

then you need to ready to cook fried eggs

surreal path
#

temp is going down cause its 7:11pm here

#

when its colder ill work on fbdev for nyaux so we can have doom

#

still too hot

tender gorge
#

normally the days where it would be useful were not too many (although climate change kinda fucked that), and houses in europe are generally built with the lack of AC being considered (so things like blinds down during day to keep house cooler / open windows during night to let cold air go in + insulation and stuff)

ebon needle
tender gorge
#

like, bruh, its such a waste of power, just have well insulated houses and heating?

surreal path
#

just give me hug

tender gorge
#

have hug, friend

ebon needle
ebon needle
#

now

surreal path
#

the royal scienist

ebon needle
#

OR

#

i can be good boy

surreal path
#

nah thats wild

ebon needle
cinder plinth
#

or in arizona

#

Which is a fucking desert

tender gorge
daring juniper
cinder plinth
#

I like florida

#

Idk if I would live there but I really like going there

silver yarrow
#

swamp

cinder plinth
#

Yeah it's really humid

#

Idk I haven't gone to enough states

#

Maybe I'd like California more since it's a similar weather kinda (without storms every day) and dryer

silver yarrow
#

cali weather goes hard sometime

#

not that I have spent tons of time there

#

but the few weeks

cinder plinth
#

I'd love to go there but I'm on the east coast so it's quite far

ebon needle
gray hill
#

lol

#

the AC city

molten grotto
#

I'd like to have an ac in the summer, I don't like when its 30c inside

#

can't get anything done and can't sleep either

#

something like 20c would be ideal (and in the winter it mostly is like that)

plush hearth
#

australia also has AC in most houses. to be fair though, it gets to 40c+ in half the country during summer.

gray hill
#

that's still an ok temp

#

here we can reach 40°C sometimes

#

and your car becomes an oven too

rare pebble
#

it gets up to like 48 degrees here in the summer

cinder plinth
#

I think the highest I ever saw here was probs like 42

#

I love Canada weather

orchid dawn
#

can sometimes get as high as 49

#

30C is like, average room temps

#

that's the temp that it is RIGHT NOW in my room

#

that's cool

#

lmfao

#

if it was 20C inside I would be shivering, that's cold as balls

gray hill
#

XD

orchid dawn
#

no sane person sets it that cold over here

gray hill
#

i can literally go with a t shirt until 13°C

#

that's when i start to feel cold

orchid dawn
#

wild

#

people from different regions experience temperatures very differently I suppose
if it was 13C I'd need a heavy shirt and possibly a jacket

gray hill
#

i wear a jacket only when it's 5°C or less outside

orchid dawn
#

meanwhile I can walk outside in 40C+ weather and be fine

#

that's just average

#

once it hits ~44C it starts to get annoyingly hot

#

=47C is possible, but very much "don't go outside" tier

surreal path
#

okay so

#

ive been exceedingly tired

#

weirdy

#

im not gonna do anything today for nyaux ngl but tmrw ill do something promise

#

just been struggling with myself

#

a lot

tender gorge
#

its okie, take care of yourself first frien

broken depot
#

You don't owe nyaux to us, we're just excited to see you make something cool.
Take care of yourself and remember we're here if you want to talk.

coral dove
#

We’re here for you

supple robin
#

nyaux is still ahead of menix

#

so you don't have to sweat it

kind root
#

Nyaux is ahead of most osses

rare pebble
#

I should try nyaux out

ebon needle
#

when nyaux java port

rare pebble
#

when nyaux brainfuck port

rich trellis
#

when nyaux firefox port

nova fox
#

when nyaux malbolge port

tender gorge
#

when nyaux factorio port

median goblet
ebon needle
#

when nyaux hearts of iron 4 port

surreal path
#

when nyaux gnome

molten grotto
#

when nyaux wine

surreal path
#

true

molten grotto
#

it shouldn't likely be that bad after you have xorg or wayland working, it mostly just uses signals + mmap stuff + some other stuff

ebon needle
#

nyaux is gone from active threads

#

im fixed this

surreal path
#

im taking a break for a little while

#

is all

#

we will be back on the grind soon

ebon needle
#

k

surreal path
#

working on fbdev like now

#

im gonna have to restructure how i provide framebuffers instead of hard coding it in

rare pebble
#

ah yes totally what I asked for

#

smh my head

supple robin
#

get owned

thorn bramble
#

it says "results for linux os"

surreal path
#

inspect element???

rare pebble
#

nope 😦

#

maybe try adding the OS part?

#

actually how do you do the inspect thing on firefox, ik how on discord

supple robin
#

NyauxKc

rare pebble
#

like this

#

that ik, not for firefox

#

ignore the sentence it's just what i had in mind for some reason

surreal path
#

no offense but id rather keep the name as is

broken depot
#

BadgerOS is somehow listed above the fake OS of the same name from GTA KEKW

edgy pilot
#

osdev forum one apparently mentions my paging code

maiden ridge
kind root
kind root
#

lol

surreal path
#

ok we cook

#

lets get back on the grind of fbdev

#

be adviced, might not do much considering starship flight 9 launch window opens in a 2 hours ish

#

and i wanna watch that

surreal path
#

yo gurt

#

gurt: yo

edgy pilot
surreal path
#

ill have to make the read and write functions virtual

flat nymph
#

wait a second

surreal path
#

yea wssp

flat nymph
#

why am I seeing classes? thonk

edgy pilot
#

this guy c++es

surreal path
#

c++ in nyaux is real

edgy pilot
#

and he's mixing up c and c++

surreal path
#

yes

edgy pilot
#

💀

surreal path
#

i call it crust

#

no that would be rust and c

#

nono

#

uhhh

#

idk

edgy pilot
#

mishakov is speachless

surreal path
#

crazy

flat nymph
#

kinda

edgy pilot
#

not in one binary

flat nymph
#

yeah no

flat nymph
surreal path
#

yes 😔

edgy pilot
#

do proper fmt while you're at it

#

"{}", arg

surreal path
#

idk how

#

im new to c++ lol

edgy pilot
#

just use fmtlib

flat nymph
#

variadic templates spun

edgy pilot
#

who doesn't love them

flat nymph
#

with concepts

edgy pilot
#

it brings me joy when I get them nice and pretty

flat nymph
surreal path
edgy pilot
#

ezpz

#

compile and define unresolved symbols

#

you just need a few stubs iirc

#

you might not even need that tbh

surreal path
#

fair

edgy pilot
#

here you go

#

no floating point in this

surreal path
#

i see it can output std::string? but i dont have access to the std library

#

how does that work

edgy pilot
#

freestnd-cxx-hdrs

surreal path
#

how do i access it

#

i have it compiled againist my kernel so

edgy pilot
#

access what

flat nymph
#

i've just reimplemented parts of stl that I wanted in my kernel

surreal path
#

std::string

edgy pilot
#

it's pretty feature complete

#

with sso and stuff

flat nymph
#

#include <string>

surreal path
#

didnt u say freestnd-cxx-hdrs have it

flat nymph
#

(or something)

edgy pilot
flat nymph
#

but string isn't freestanding I think?

surreal path
#

i already have that

flat nymph
#

Per c++ standard

edgy pilot
flat nymph
#

(I'm waiting for C++26 for freestanding std::expected ugh)

surreal path
#

crazy

edgy pilot
#

freestnd-cxx-hdrs

#

I use C++23 and std::expected is wonderful

flat nymph
#

It's fine

flat nymph
edgy pilot
#

oh yeah

flat nymph
#

since I'm a microkernel trl

#

and I have full rust std as well

flat nymph
#

(Though I have an exam tomorrow, which I need to study for...)

edgy pilot