Details
-
AboutAAAAAAAAAAAAAAAAAAA
-
SkillsRust and other things
-
Locationhere
-
Website
Joined devRant on 12/8/2018
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API

From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
@antigermgerm You *were* in germany for a while though
I'm just wondering -
Why did you move to belgium?
-
I would say 2 > 3 > 1 and the rest are just bad
-
@retoor Oh no, snek crashed!
-
@retoor There's definitely some way... Just a question of how complex :D
-
@retoor That's actually a great idea! Doing a http request from your own OS sounds badass
... I'll have to write a simple network card driver though, that sounds like work. Give me some time, I don't even have memory allocation yet :P -
Sorry @Lensflare for deletion, I screwed up the image <.<
-
@Demolishun Really the issue is how do you make it compose? One level is fine I guess: `*target = Foo {..};` or `*target = init();` (where init straight returns a Foo) are fine. But if it get's more complicated than that how do you square the semantics of placement-new with your already existing semantics of object lifetime and new
(I'm actually not sure, and I don't know the precise rules of cpp, but knowing cpp I would guess that they are pretty arbitrary in the first place lol) -
@Demolishun placement-new is still debated in Rust. Right now it *can* happen due to optimizations but there's no formal rule like in cpp. There are some ideas around placement-by-return (if i remember correctly) but that's still in the idea stage
-
@iiii Bruh I know what an arena is. I'm just too lazy to implement one :D
-
@iiii Yeah I just read the mimalloc source and I don't think even with purging disabled I could use it for this purpose. Every 1000 and 10000 allocations it does bigger bookkeeping of collecting the heaps for unused blocks
You're right, ultimately I should build a stack/linear allocator for temporary objects which I can just clear between frames -
@iiii I know but the problem often is internal locking and it doing syscalls. I don't want it to start MADV_DONTNEED'ing 100 pages when I allocate during a frame
-
@Demolishun Kinda... Normal types are easy but dynamically sized containers are of course always hard. There's an unstable allocator API for containers I guess I could use
But my thinking is: mimalloc already is a kind of arena allocator (allocations are grouped into size classes) and it's thread-local and super fast, no locking at all
So... as long as it doesn't interact with the OS a bunch it's essentially a really fast, generic arena allocator not much different from one I'd write myself
And most importantly: I can be lazy and just use std containers :P -
@retoor Sorry, should've written I'm Box::new()'ing all my memory ;P
-
@lorentz That's the plan!
Use mimalloc and disable purging so it'll never tell the OS when pages aren't needed anymore. This way all the memory I need stays in the (hopefully very fast) mimalloc caches -
@retoor Yeah but thats too much work, Im lazy
I'm just gonna use mimalloc as my arena, surely nothing will go wrong -
@donkulator Just use it as an excuse to upgrade your workstation and use the old parts as your server :D
-
Microsoft
-
@retoor Sure maybe for a bit
-
@retoor Notch is giga based though
-
Then spend your days drunk coding a game that you can maybe sell some day like a normal person on devrant
-
@retoor Cute and squishy is where it's at
-
@retoor Surely I have enough karma.......
-
@retoor Maybe in my next lifetime? :P
-
@Wisecrack Slowly but surely :D
This is more of a fun project so I don't think I will produce anything amazing, but my goal is a little unix-ish inspired 64-bit os with processes and virtual memory -
@retoor I have a little real mode bootloader in the 512 byte boot sector which sets up unreal mode, calls the bios to read sectors of my kernel and jumps to it in high mem. The kernel then enables long mode, but that isn't working quite right yet :P
I think I need to fully configure my interrupts first -
@Wisecrack I was trying to load a bootloader into a specific memory region. It should set the PC to the same location after loading so it executes but something was super weird
Now that I think about it, it probably automatically relocated the range because 0x7c00 is reserved for the actual bios bootloader
But anyhow, I've figured it out by just using a raw disk image instead of the device loader :D -
When we finally invent cat girls we should make them 1 hole humans
Actually no scratch that they're way too hot -
@Lensflare He's at least honest about him being hateful lol
-
The top is kinda nonsense but matlab at the bottom is based, I ill rate this a solid 5/10