[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip / qa] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology


Thread archived.
You cannot reply anymore.


[Advertise on 4chan]


File: armAsmCheatsheet.png (345 KB, 1920x1080)
345 KB
345 KB PNG
What are you working on, /g/?

previous thread:
>>103145587
>>
File: best_strlen.png (15 KB, 920x414)
15 KB
15 KB PNG
>What are you working on, /g/?
Trying to determine if it's worth the effort to benchmark a strlen implementation that could well be the best implementation there is.
>>
>>103161905
Common lisp code that reads 4chan and turns it to png.
>>
>write a draft of the core business logic in a concise but niche functional language like Haskell, F#, Clojure, Ocaml, Idris etc. to make sure your most important algorithms are sound
>rewrite it in C or Rust to make it fast (probably taking 5 times the amount of code)
>build the app around it in whatever language is most convenient and can interface with the C code via FFI
Is this a good plan?
>>
File: primer_malloc_3.png (701 KB, 1920x9950)
701 KB
701 KB PNG
>>103162045
>make it fast
Are you using malloc?
https://archive.is/3J2gv
>>
why is so much of the tooling shown at cppcon based around linux? is there that much linux dev going on? obviously it's not for linux desktop, is linux just that popular in enterprise/web crap or something?
>>
>>103162051
>"Your CPU is not a fast PDP-11" tier autism posting
>about fucking malloc()
who fucking cares, the abstraction costs basically nothing. If it bothers you that much, write your own super-autism allocator and map a couple big 2^N byte aligned blocks of memory for it to eat. Just write some fucking code and stop bikeshedding about this nothingburger you turbo autist
>>
>>103162256
>who fucking cares, the abstraction costs basically nothing
Stop living in fantasy land.
>>
If COM objects potentially live outside of your process somewhere, does that mean you can cause system issues by not releasing references before your program exits or is it smart enough to handle that?
>>
>>103161905
I've been looking at this image a lot over the past few days.
>>
>>103162202
>why is so much of the tooling shown at cppcon based around linux? is there that much linux dev going on?
Yes obviously. Nowadays even on windows I'd rather develop on WSL to avoid headaches.
Docker only works on Linux, and deploying conatainers is just so God damn convenient.
>is linux just that popular in enterprise/web crap or something?
Yes, and many other things. Machines control & robotics, scientific computing, AI/ML, hardware development, HFT.
>>
>>103162051
Realloc should not exists. I'm removing it from my allocator.
/*
* Allocator interface */

/* allocator function */
typedef void* (*MyReserveFn)(size_t size, void* user);

/* deallocator function */
typedef void (*MyReleaseFn)(void* memory, size_t size, void* user);


/* ... */
struct MyAllocator {
/* */
MyReserveFn reserve;
MyReleaseFn release;

/* user data */
void* user;
};

typedef struct MyAllocator MyAllocator;
>>
>>103162045
That's how scikit learn is developed.
>write in Python
>check soundness
>move the critical sections to Cython
Too bad Cython has no LSP.
It works well because Cython syntax is very close to Python. Translating from a FP lang to C is gonna suck though. Cutting edge C++ might do the job more easily, since it supports most of the popular FP patterns with range views.
>>
>>103162580
Where's your commit function?
>>
>>103162051
Nothing prevents you from making your own malloc stand in. Publish it and start raking in those Githoob stars.
>>
>>103162202
Do you think websites and web services are run as background tasks on Windows desktops? Retard
>>
>>103162629
Nah, I like to see people work for it.
>>
File: 1728729467891040.jpg (28 KB, 442x330)
28 KB
28 KB JPG
>>103162644
>he doesn't know
>>
>>103162615
I don't have one, reserve is like malloc and release is just like free.
>>
>>103162693
And if you need more memory?
>>
>>103162721
I can always allocate memory in chunks, I don't need a single (large) memory buffer in fact nobody needs a huge large memory buffer, also it will reduce fragmentation.
>>
>>103162758
>I can always allocate memory in chunks
>it will reduce fragmentation
Not only lol no, but it will also hurt your caches due to associativity.
>>
The database system I wrote has some clear issues. I need to clear those up before I can use it for other projects. While I'm at it I might as well change it fundamentally sine I suspect even if I fix the issues it'll still be too slow since it reads/writes from disk to often now.
>>
>>103162806
File mappings?
>>
>>103162818
Pretty much what I want to implement. The hard part is to know what parts of the database to read into memory. I want it to use as little memory as possible so most of the db is written to bin files until theyre needed.
>>
>>103162470
not a windows dev but iirc out of process com objects will time out eventually
>>
>>103162872
You should let the OS handle that for you. If your process requires a page that isn't in memory the kernel will page it in via fault.
>>
>>103162256
>"who fucking cares, the abstraction costs basically nothing" tier autism posting
>>
>>103162800
For large blocks the performance impact will be minimal.
>>
>>103162758
>I don't need a single (large) memory buffer
yes, as long as you don't care about performance, you probably don't.
>in fact nobody needs a huge large memory buffer
this nobody guy sounds smart as he surely knows the importance of memory locality.
>also it will reduce fragmentation
true that. Can't have fragmentation if you don't have space for anything else.
>>
File: code.png (107 KB, 911x771)
107 KB
107 KB PNG
Guys somebody told me that I should look into clean code but I'm not sure if I need it, can you take a look at this code and tell me if it's clean or not?
>>
File: part_of_the_problem.png (397 KB, 828x683)
397 KB
397 KB PNG
>>103162935
Man, haven't I heard that for the last thirty years. Can't you incompetent fucks come up with some new cope at least?
>>
>>103162973
get a hobby schizo
>>
I accept your concession.
>>
>>103162202
basically every OS market segment other than Desktop is dominated by Linux
>>
>>103163085
>500 computers
Post the web server graph instead, it's at least somewhat relevant.
Although there is a lot more windows servers out there than neets on /g/ think, because most windows servers are not web servers so they don't show up on public measurements and most of the web is actually big servers split up into $5 tiny VMs now that all are counted as a server. M$ is still charging $8000/year/core for SQL server and as ridiculous as it is, they are still selling well.
>>
>>103161905
Data-driven ISA design where you statistically analyze software and create the optimal ISA with genetic algorithms or something.
>>
File: daily-ol.jpg (2.73 MB, 3153x4981)
2.73 MB
2.73 MB JPG
>>
>>103162800
Maybe, but realloc can potentially change the memory address and it will invalidate the cache and it will create more fragmentation, using fixed sized chunks will guarantee that the memory will never change.
>>
>>103162893
I didnt even know that could happen. I'll look into it. Thanks.
>>
>>103163504
... oooooooor you can just reserve virtual address space at the beginning, commit memory as you need it, not molest your caches, not change your memory addresses, and not use more memory than you actually need.
It's not like you need that virtual address space for anything else.
>>
>>103161905
Rewriting my neovim config in Fennel so I can remove lua and vimscript. I had a single file with lua in the middle and it was starting to look pretty nasty... Want to make it easier on myself, thought I'd use a lisp instead of lua.
>>
someone should just make a gui vimrc editor
>>
>>103163085
What happened in 2003-2004?
>>
>>103162893
>>103163515
Are you guys retarded? swapping does NOT scale.
>>
>>103163855
It's unavoidable under memory pressure.
>>
>just started learning C++ on https://www.learncpp.com
>already know C (hobbyist level)
>says you should use direct-list-initialization
int i { 5 };
instead of copy initialization
int i = 5;

>"Copy-initialization had fallen out of favor in modern C++ due to being less efficient than other forms of initialization for some complex types. However, C++17 remedied the bulk of these issues"
>look through C++ source code of a bunch of programs on github
>all using copy initialization

Is this an autism thing? I want to just use copy initialization because it's way more natural. What issues would actually come up from using it? I don't see narrowing conversions as an issue.
>>
>>103163855
> Are you guys retarded?
yes anon. im just starting out.
>>
>>103163791
Normies discovered Linux
>>
why the fuck, in every single neural network package, do the first introduce you to how the manage tensors? does anyone ever fucking use the built-in tensor classes?
>>
>>103163730
Fennel is lua and is shit. It's unambiguously not a Lisp.
>>
>>103163990
What built-in tensor classes?
>>
>>103163522
Yeah, it makes sense.
>>
>>103163889
I’ve worked on some professional cpp projects and they all used = initialization. I know that some people prefer the curly braces but I wouldn’t say it’s the norm
>>
>>103163889
anon, even without any compiler optimizations those both compile down to the exact same assembly code, the only difference for value types is at the level of compiler semantics
>>
C++ is terrible but there really is no alternative.
>>
>>103163872
from the kernel's point of view.

>>103163940
If you are on linux see man proc_meminfo, reserve and fault by read() ing some 60% of what is left (troonix MAP_POPULATE is evil), if you get errors (100% there is something weird going on with the machine) you log it, kill every one of your processes and delete every new file/socket
>>
>with the machine
i meant *software* obviously, like a worm or something like that
>>
i'd fall in love with factor, but the memory usage is silly
>>
>>103162950
lotta code to do almost nothing
>>
File: leetcode3023.jpg (138 KB, 895x379)
138 KB
138 KB JPG
>>103158221
>>
>>103164173
have you heard of c
>>
>>103164019
I've been ham-fisted into utilizing their tensor classes... I can't implement tensorflow like I normally do because it would be stupid to utilize tf and torch in the same project. it had to happen eventually.
>>
>>103162758
>I cannot understand memory or different use cases.
Yeah we fuckin know there, bub.
>>103163053
>REEEE stop disagreeing with me!
Get a hobby?
>>
>>103164804
>claims to understand different uses cases
>fails to understand that not every single programmer needs to be hyper-optimizing their memory layouts like it's 1980
ETA on your heart attack you dumb boomer?
>>
>>103164858
I fucking love how retards always assume that arenas are about optimizing memory accesses. They do that too, of course, but they actually simplify your code, too.
>>
>>103164858
I forgot "NTA", my bad.

>>fails to understand that not every single programmer needs to be hyper-optimizing their memory layouts like it's 1980

Well they fucking should, look at how goddamn bad software has gotten in the past 25-30 years.
>>
I can't stop watching racist/schizo programmer videos they're great
>>
>>103165050
You should link some.
>>
>>103163361
what kind of panties does she wear?
>>
>>103165065
panties?
>>
>>103162202
I have haven't written a single line of C++ for anything other than Linux since I was in high school, and my degree and job almost exclusively use(d) C++.
>>
I wrote my first Java program today :)
>>
>>103165126
post your program NOW
>>
>>103162644
i wish they werent nigga
>>
>>103165126
Well done, sir.
>>
>>103165138
I'm sorry but I'm afraid of being bullied.
It's just a stupid program that plays War.
>>
>>103165065
none
>>
>>103165126
keep it up saar
>>
>>103163361
Her videogames suck
>>
>>103165126
yuck
>>
File: WEAPON of java.jpg (37 KB, 626x417)
37 KB
37 KB JPG
>>103165126
I have write 10 masterful parihara java bhenchod
>>
>>103165256
Destroy the enemy from within
>>
File: 1728351144418337.png (77 KB, 372x300)
77 KB
77 KB PNG
>uggh, I keep getting these null reference errors
>*adds a ?*
>nice, all my bugs went away
>>
>>103163361
>the quality on the upper body
>the quality on the legs
lmao at niggers letting AI draw the hard parts, we must go back.
>>
:q!
>>
>>103164762
They should be buffer-compatible and straightforward to convert if you are not doing anything crazy
>>
>>103165486
In ed this is just Q
>>
>>103165510
I think you can just do like ZZ or something in vim
>>
>>103163990
Copy vs direct initialization does not matter for primitive types, and most people still prefer the copy-initialization syntax for them. For class types, it does matter because there are still cases where copy-ellision can't be assumed, or where copy-initialization isn't allowed at all, so in my experience most people default to direct initialization for class types. This is more important if the project is still using C++11, which a lot of them are.
>>
>>103165510
ed is really an amazing tool. I wish we could go back.
>>
>>103165525
ZZ saves the buffer before exiting thoughever
>>
>>103165305
>not zero initializing and not making your effective codepaths always being able to read
NGMI
>>
i dont know what to study / code to become a better programmer
>>
>learn c++
>want to make android apps
>sorry you need to know kotlin
>Learn Java then learn Kotlin
>Want to make some arduino projects
>sorry lad you need c++
Can you people just decide on one language already
>>
Anons, what the fuck is going on, I was following LR-Droop apportionment method (https://en.wikipedia.org/wiki/Quota_method#Method with Droop quota) to distribute 7 objects among 2 entities proportionally to votes I get beforehand and it was working just fine until I hit this case: I have 10000 votes in total, 6250 for entity A and 3750 for entity B. If you follow this method with Droop quota you end up with this method telling you that you need to give 5 objects to entity A and 3 objects to entity B. But that's 8, I only had 7 in the first place. I understand why this happens, but I don't understand how to fix it properly.
>>
>>103165525
>>103165571
it's ZQ
>>
File: foocked_the_second.png (32 KB, 1006x881)
32 KB
32 KB PNG
I've already posted about this yesterday, but that was with a C compiler. What does one have to do with g++ to make sure that foo is properly inlined? I need that information for an upcoming primer about compiler optimizations:

typedef struct{const unsigned a;const unsigned b;}immut_t;
typedef struct{int done;}mut_t;

typedef struct
{
const immut_t immu;
mut_t mu;
}my_struct;

static my_struct array[] =
{
{{1,2},{0}},{{3,4},{0}},
{{5,6},{0}},{{7,8},{0}}
};

unsigned long long foo(void)
{
unsigned long long ret = 0;
for(unsigned i = 0;i < ARRAY_SIZE(array);i++)
ret += array[i].immu.a * 2 + array[i].immu.b;
return ret;
}

void bar(void)
{
for(unsigned i = 0;i < ARRAY_SIZE(array);i++)
array[i].mu.done = 1;
}
>>
>>103165717
did you pass in optimisation flags?
>>
>>103165697
Did you try any of the multiple JVMs for arduino?
>>
>>103165788
I will now
>>
>>103165765
$ g++ foo.cpp -march=native -mtune=native -O3 -Wall -c -o foo.o
>>
File: 1723969311449073.gif (2.95 MB, 500x500)
2.95 MB
2.95 MB GIF
imagine how efficient vim would be if instead of having to use keys like shift and ctrl we just had brain implants that could allow you to simply think these modifier keys while you type
>>
>>103165803
it might not consider there to be any performance benefit to inlining it
you could try Os instead for smaller code size?
>>
>>103165818
>it might not consider there to be any performance benefit to inlining it
That would be wild, because the moment bar is removed it's inlined:

<_Z3foov>:
mov eax,0x34
ret
>>
>>103165842
What happens if you split your struct across two arrays with the different contents?
>>
>>103165870
the different parts foo/bar access
>>
>>103162580
what a weird interface, the name "user" sounds so weird, user of what? it's the backing memory/context, why is it last argument every time? are you relying on omitting it to keep backward compatibility for functions that don't have a context, still weird.
what about alignment? where's the release all function? what about a nice function for moving things between two allocators? a lot of these are simply static functions.
>>
>>103165870
That's the point, I don't want to do this.
This is straight up from an issue I talked about from a year or so ago, in an actual application that was using a register-allocated pointer. The states *need* to be in the same structure, otherwise it would've required a second register.
>>
>>103165930
I've no clue I can only guess whatever heuristics they have care about both accessing the same thing. If I had to guess it's because without bar array itself can be inlined into foo?
You could see what it does without const if you have a function that returns a pointer to array so it might be modified?
>>
>>103165974
>I've no clue I can only guess whatever heuristics they have care about both accessing the same thing
So there's no constexpr stuff that C++ provides that can help with this? Because I was going to write that C++ has a couple advantages over C code generation, and it seems like that would've been a lie now.
>>
File: Untitled.jpg (167 KB, 1628x887)
167 KB
167 KB JPG
blue rodent is kill
>>
>>103165997
How would constexpr help with this? You would have to include its definition too. If it took array as a parameter you could probably do that, I can't recall how constexpr works with pointers though
>>
>>103166011
>jpg
>>
>>103166013
I guess because it runs at compile time it knows if it can dereference a pointer or not
>>
>>103166013
>How would constexpr help with this?
I don't fucking know, that's why I'm asking. I thought about making the specific fields constexpr so that the compiler *knows* that these fields are never going to be touched again after initialization, but that just gives me
non-static data member 'a' declared 'constexpr'

. I don't do C++, and guessing would've done the primer a disservice, so now I'm asking people who know C++ much better than I do.
>>
File: 1716330335105971.jpg (29 KB, 749x680)
29 KB
29 KB JPG
When I tell wagies that I use C/C++ they think I'm still new and hadn't "graduated" to "useful" languages like C#, php, or Kotlin. I hate wagies, I hate them so much, TWD(total wagie death).
>>
>>103166049
it doesnt work that way, static basically means theres 1 of it, its not really a field
>>
>>103166170
Alright then. Looks like the paragraph has to go then.
>>
>>103164804
>I cannot understand memory or different use cases.
Did you means constrains like lifetime and size? I've never heard anyone call these "use cases".
>>
>>103165917
>what a weird interface, the name "user" sounds so weird, user of what?
It's an user pointer.

>what about alignment? where's the release all function?
I don't care, don't need these. It's not an arena allocator, just a malloc replacement used as user provided (custom) allocator in a library.
>>
>>103166098
You should ask them when they have "graduated" from using C/C++. If it's never or they don't wanna answer ask them how many cycles their code spends in memcpy. If they can't or won't answer just say "... I see".
>>
>>103166301
All of them
>>
>>103166322
I know, but they don't know they don't know. Them admitting they don't know means they now know they don't know, which will hopefully get them off your back.
>>
>>103166098
>TWD(total wagie death).
Who's gonna subsidize your chicken tendies and white bread?
>>
>>103166373
undead wagies
>>
>>103166373
You.
>>
>>103166383
How do you plan on enforcing that?
>>
>>103166373
AI robots
>>
>>103166433
Make them do the work.
>>
>>103166423
>this man has CP in his possession
Do you wanna risk that?
>>
>>103166443
Projecting anon?
>>
>>103166465
Of course not. I'm an upstanding citizen who wants to see pedophiles punished to the fullest extend of the law.
>>
your not a bad programmer

its a bad programming language
>>
>>103166676
Good morning saar
>>
>>103166676
You keep telling yourself that.
Raise your own self esteem by 1% while thinking lowly of anything but yourself.
>>
>>103161905
How old were you guys when you realized that everything apart from Javascript isn't needed?
>>
File: 1626506039117.png (89 KB, 500x501)
89 KB
89 KB PNG
Fuck off, nigger.
>>
>>103167001
kek
can they keep getting better after this?
>>
>>103164008
yeah, but currently emacs runs too slow and I can't get lem to do what I want so I'm rewriting in Fennel until I take the time to configure lem to my liking.
>>
>>103166951
What's V8 implemented in, dingus?
>>
>>103167776
Yes and that's what made everything irrelevant. Nothing else is needed. Javascript is now fast enough for all tasks.
>>
>>103165697
>Can you people just decide on one language already
Burger hands typed this post; dull, unimaginative, cosseted, and stupid.
>>
>>103162950
Used to have a coworker who wrote long names like that. We ripped all that shit out about a day after he left.
>>
>>103167789
>Javascript is now fast enough for all tasks.
Javascript is not fast enough to implement V8.
>>
>>103167825
Yes. If you disagree then fight me irl.
>>
>>103167813
Hope it was painful.
>>
File: 1710926656962941.png (658 KB, 2036x1439)
658 KB
658 KB PNG
So I'm looking through the PE layout for a Windows executable and I don't get it, what's the point of those Windows .lib files that you always link against (kernel32.lib, user32.lib, etc...)? At runtime those function calls are all going through dlls, and it looks like all it really needs is a dll name and a function name for the loader to hook those up...?
>>
>>103168080
how do you think the linker figures out which dll a function is in? not like you explicitly tell it at any point
>>
>>103168115
NTA, but can't you just give it the .dll files and it can see what functions those export? Why do you need these intermediate .libs too?
>>
File: delayedloading.png (46 KB, 954x330)
46 KB
46 KB PNG
>>103168145
no clue but found this on wikipedia
>>
>>103164547
C++ gives you too many tools to build abstractions whereas C gives you no tools to build abstractions.
>>
>>103168410
actually I think it's simpler, to bind to a dll directly the linker would have to actually load the dll and call getprocaddress, but with an import lib it can just access the symbol table

loading random dlls isn't really the linker's job so import libs it is
>>
>>103168080
>all it really needs is a dll name and a function name for the loader to hook those up
yes afaik these implib files contain just references to names. this information can be already be extracted out of the dll or def so all this info is kinda redundant.
using lib you don't need the dll to be present on system when compiling.
lib is what the linker uses and it can be either of the static or dllimport kind
>>
>>103162051
>pic of archive.is of temporary lainsafe of an expansion of https://logicverse.neocities.org/posts/malloc
do you need a webhost, anon? get shared hosting and put https://fossil-scm.org/ on it. Put your rants on github. Something other than this.
>>103162629
the interface, not the implementation, is the problem with malloc. https://www.rfleury.com/p/untangling-lifetimes-the-arena-allocator sells this idea a lot better.
>>
Why does OpenMP not get used that much
>>
>>103161905
Any anons ever make a bot to do marketing spam? I need to push my website to people on fb/instagram/twitter but I don’t know where to start.
>>
>>103168529
Meaningless differentiating between "tools" and "abstractions"
>>
>>103168529
C has functions and structs. What more do you need?
>>
>>103163889
Only faggots and gays type "int i { 5 }", just use the equals sign like a normal human being.
>>
>>103168080
It's this >>103168550, afaik you could presumably generate the same information from the dll on the fly in memory and do away with the need for having those intermediate .lib/.a "import library" files on disk, but for whatever reason the people who designed the system decided to have those files which contain only the information the linker needs at link time. Perhaps, as that Anon says, to allow one to build the program on a system where the dll isn't actually present.
>>
File: japanesecpp.png (138 KB, 846x602)
138 KB
138 KB PNG
japanese C++ code presentations be like:
>>
>>103169805
>throw pointer to exception
>catch reference to exception
Does that work?
>>
File: aboutosayit.png (507 KB, 481x417)
507 KB
507 KB PNG
>how it feels when it's time to decide on a variable name for "list of elements that are not candidates"
>>
>>103166098
Because those are the languages of unproductive neet nocoders, a class which you belong to and probably make obvious with how you communicate
>>
>>103169988
No, the guy fucked up. The exception will skip that catch block and crash the program (assuming there's no other catch block for FamilyException*).
>>
>>103170069
(and if there was such a catch block, the pointer would be pointing at invalid stack memory)
>>
Just shitlang things
https://biowpn.github.io/bioweapon/2024/11/12/what-does-f-x-mean.html
>>
>>103161986
I decided to benchmark it. It's about 2.5-3.25x faster than a scasb method on my hardware and with reasonably random strings. The variance (obviously) occurres based on the size of each string. I could not think of a way to improve it.
>>
>>103169805
in Zig this is just
const FamilyExceptions = error{
exFamily, // double entendre
};

fn CheckWifeHeart(myLove: bool) bool {
return myLove; // love is reciprocated
}
fn BuyPresent() void {
@panic("no money");
}

test {
(blk: {
const isLovedMe = CheckWifeHeart(true);
if (!isLovedMe) break :blk FamilyExceptions.exFamily;
}) catch {
BuyPresent();
};
}

>>103170291
does it get confused by pointers into "a\0b\0c\0" ?
>>
>>103170353
>does it get confused by pointers into "a\0b\0c\0" ?
I'm not exactly sure what you're trying to ask me but no, I don't see why it would have any kind of bugs like that, the basic structure of the code is really very simple, he just optimized it well.
>>
>>103170291
does it go faster than scasb at the gibibyte scale?
>>
>>103170391
I don't care to find out. Right now I'm trying to remember this really nice random number regeneration technique which used muls (I think).
>>
>>103170473
remembered it yet? Sounds interesting.
>>
>>103166098
I'm a salaryman and I write C++. I love it.
>>
>>103170064
I agree that I can't communicate for shit, but they're not giving me anything to work with when they think the compiler is the IDE, and don't even use github because "uploading code is a security risk", because I shit you not, they hardcode API keys into the code.
>>
>>103170517
Not quite. I remember that you would basically use rdx as both the high accumulator and as the input for the next iterator. I'm going to have to play around in a debugger to actually figure it out, I think.
>>
>>103162973
Autism. Software in modern times actually develops and changes so the maintainability and scalability of the codebase is priority #1 or #2, unless performance is literally very significantly impacted like with Python or Javascript.

Particularly if your program requires interaction with outside software e.g. internet which itself is subject to change and thus a codebase must be fast to change to quickly adapt with evolving standards.

Abstractions are less direct and malleable so have more genericism and more checks take place to then direct the flow of the program. Each of these adds computational load but means that the software is less prone to errors and trivially adapts to fit any changing standard of external software.

Old software did one thing and was released like a movie. Such that the software came on disk and that was the software forever. Especially video games. People are instead expected to adapt their machine to the game via things like compatability modes and Wine. The game itself being cemented. Thus those codebases had zero care as to whether X driver could change and break the game.
>>
Bros. I did some Basic back in the day, and now as an analyst only use SQL. Should I dabble in something like Python? What should I do to get promoted to an executive position?
>>
>>103170656
suck dick
>>
>>103170656
See this >>103170679
It's unironically your best bet.
Try to blow the guy above your boss, or else you're just going to stay a bitch forever.h
>>
>>103161905
chatbot for an enterprise IT to handle tedious crap like managing tickets and automation where we don't already have better solutions

>>103166951
I'll let you know when I hit that age. Every time I go to learn Javascript I end up needing to know something called ECMAScript and land on tutorials for TypeScript. My bot is in Rust.
>>
>>103166951
I like Typescript. I like languages to look like languages. Javascript looks strange and not much like normal code.
>>
>>103170291
I was more interested what the half-unrollment of the loop was going to do. With TZCNT being done before each jump (JAE, JB) I save a CMP instruction, as TZCNT already sets the appropriate flags, and since JAE is not part of the look there's nothing the branch predictor can mispredict either. The original code did
LOOP:
VMOVDQU
VPCMPEQB
ADD RCX
VPMOVMSKB
TZCNT
JAE OUTSIDE
ADD
JMP LOOP
OUTSIDE:

, but unconditional jumps still rely on branch prediction because the CPU needs to know which byte to fetch next.

>>103168766
>https://www.rfleury.com/p/untangling-lifetimes-the-arena-allocator sells this idea a lot better.
Yeah, but no one read his shit because it's a lot more theoretical and abstract. I wanted to cover the direct impact on hardware people actually use.
>>
how do i handle signals in multithreaded?
i just want to print out all the log messages if i get sigint or sigabrt
>>
>>103170950
channels
>>
>>103170473
This one?
https://www.pcg-random.org/index.html
>>
>>103170950
When another process sends your process a signal it is always done through pid, the main thread. You just catch it, print and just syscall(SYS_EXIT_GROUP,whatever)
>>
>>103171072
>regeneration
i thought he meant like reversing the seed of an array of randomly generated numbers?
>>
So I know Windows syscalls aren't meant to be called directly, but...
>>
>>103172211
Define "directly".
Calling exports from ntdll.dll? Sure, knock yourself out.
Moving syscall numbers into eax and issuing the syscall instruction yourself? Bad, because Microsoft makes no promises that these numbers will refer to the same functionality across different versions of ntdll.dll.
>>
>>103172211
>Windows syscalls
on top of being hideous, they're undocumented and can and do change with every windows update
>>
>>103172282
Now that's complete bullshit by an utter retard who wouldn't recognize a syscall if it slept with his waifu.
https://learn.microsoft.com/en-us/windows/win32/api/winternl/nf-winternl-ntcreatefile
https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-ntquerydirectoryfile
https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-ntallocatevirtualmemory
And so forth ...
>>
File: 1717050167066828.png (33 KB, 128x128)
33 KB
33 KB PNG
>could probably get a programming job and stop being a NEET finally
>don't want to because writing proprietary software would go against my moral code
>>
File: 1718606565085703.png (37 KB, 586x578)
37 KB
37 KB PNG
>>103172299
>syscalls
>literally posts win32 api documentation
>>
>>103172364
Get a job.
>>
>>103172400
>>what do you mean, those links still document syscalls? LIAR!!
>doesn't bother checking
Your stupidity is why literally everyone hates you.
>>
>>103171816
>process a signal it is always done through pid, the main thread
false at least on linux
>>
how to create array with embedded size layout in c++, like
*ptr == |int size|T 0 element|T 1 element| etc
>>
>>103172865
array with size determined at runtime
>>
>>103172865
Same way Microsoft does it.
typedef struct
{
ULONG FileNameLength;
WCHAR FileName[1];
}FILE_NAME_INFORMATION,
>>
>>103172447
We had this exact same conversation last thread, it's due to the ambiguity of the term "syscall" on Windows. Some people interpret it as referring to calling e.g. NtCreateFile, while other people interpret it as doing "mov eax, 0x55; syscall;" raw without going through ntdll. Everyone ought to agree that the former is fine, it's maybe a little less stable than the normal WinAPI but it's lower level and maybe what you want. And everyone ought to agree that doing the latter is dumb since you don't really gain anything vs. calling the ntdll function and it's liable to break when the number changes in an updoot someday. But people will still argue about it because it's /dpt/.
>>
>>103172865
>>103172924
MSVC does't have support for flexible array members.
>>
>>103172987
That's what I said: >>103172269
>>
>>103172993
Define "no support".
It compiles just fine.
>>
Is it over for me? I have been programming for years but I felt like trying some AI yesterday. I didn't even have to do any more than a little debugging and prompt massaging to get a nice userscript made, far quicker than I could on my own (since I don't know js).
>>
File: heckin-soybean.gif (18 KB, 200x167)
18 KB
18 KB GIF
>>103173028
i-... is that a heckin OUT OF BOUNDS ARRAY ACCESS?????

NOOO Anon you can't do that! it's UnDeFiNeD bEhAvIoR!!!

don't you know that if your program has UNDEFINED BEHAVIOR it can do ANYTHING the heckin compiler WANTS!? It might even KILL YOUR CAT!!

Think of the kittens!
>>
File: 1728661865652147.png (228 KB, 1848x2018)
228 KB
228 KB PNG
>>103173047
>programming for years
>I don't know JS
Absolute UX moment.
>>
>>103173087
>programming for years
>I don't know JS
That's called being based Anon.
>>
>>103173078
>i-... is that a heckin OUT OF BOUNDS ARRAY ACCESS?????
Yeah, and get this: the kernel works like that, too.
https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-ntqueryinformationfile

It's all well defined.
>>
File: intellijak.jpg (47 KB, 620x675)
47 KB
47 KB JPG
>>103173094
this is why we need Rust in the kernel
>>
>>103173118
This has nothing to do with the programming language, but with the interface. Microsoft has never dared to break well-established interfaces because they're fully aware that if they did that people might actually move to Linux.
>>
I wonder if I should port beta 1.7 minecraft to C/C++ just for shits and giggles.
Reasoning for this:
>opportunity for comparisons between the java code and c code and how it performs
>more portability (can port to platforms that don't have java)
>it sounds funny
>>
File: daily-ol.jpg (1.53 MB, 1503x2236)
1.53 MB
1.53 MB JPG
>>
>>103172987
>But people will still argue about it because it's /dpt/.
I'm not arguing but that's the reason why I suspended developing cross-compilation for Windows, as my compiler has no linker yet. It shouldn't be so hideous just to open/close/read/write files
>>
>>103172804
holy shit i didnt know that, well just compare tid with pid and if it not the same fuck off otherwise print
>>
Dynamically sized local arrays are literally evil.
>>
>>103173530
Async I/O semantics are ugly.
>>
when using fread on a file that is just raw data, no records, should I prefer to set the record size to 1 and the nmemb to my file size, or set the record size to my file size and read 1 nmemb?
>>
>>103173551
i love dynamically sized local arrays wtf is your problem dude
>>
>>103173551
Did you means VLAs? VLAs are optional since C11, sir.
>>
>>103173087
Yeah math is fucking dumb and FizzBuzz is leetcode tier. I would be embarassed if I got asked to write FizzBuzz it'd be like being asked to write Hello World.

However... HOWEVER... An inability to turn a string into seconds. This is genuinely unacceptable.
>>
>>103174022
It doesn't really matter according to glibc's source code: https://chromium.googlesource.com/chromiumos/third_party/glibc/+/cvs/libc-960824/stdio/fread.c
, unless the CPUs you're running fread have a fast path for divisions by 1.
>>
How much do you really care about things which escape to the heap? What I mean is, at what point do you let go of clarity and cleanliness to write 1000 jeeted "CachePoolFactoryFactory" structs and functions to avoid it.
>>
>>103174219
Never.
>>
>>103174231
Yes I'm leaning towards that. I suspect the improvements from the many trashy, untidy models and special functions, would be DRAMATICALLY overshadowed by the decrease in software correctness and sturdiness for the long-term.
>>
>>103174219
>CachePool
Nothing should scale to the heap. Memory allocations patterns should be predictable even more in a library. If a library is using a internal pool it's a sign of bad design (libjpg-turbo).
>>
File: 1711778634884795.jpg (112 KB, 996x1680)
112 KB
112 KB JPG
>>103174179
>programmer
>embarrassed when asked to write program
many such cases
>>
>>103174219
all memory allocation and freeing barring local variables in my programs goes through a syscall, no i dont care.
>>
>>103161905
I HATE TEXT ENCODINGSI HATE TEXT ENCODINGSI HATE TEXT ENCODINGSI HATE TEXT ENCODINGSI HATE TEXT ENCODINGSI HATE TEXT ENCODINGSI HATE TEXT ENCODINGSI HATE TEXT ENCODINGSI HATE TEXT ENCODINGSI HATE TEXT ENCODINGSI HATE TEXT ENCODINGSI HATE TEXT ENCODINGS
>>
>>103174723
just use utf32 and call it a day
>>
K is nice
>>
I love AMD
>>
File: red lettuce.jpg (400 KB, 1400x1400)
400 KB
400 KB JPG
>>103174723
>takes up space in your program without doing anything
>>
>>103162334
what is this program that counts the cpu cycles?
>>
>>103172924
how to allocate this
malloc(sizeof(FILE_NAME_INFORMATION) + sizeof(WCHAR) * (count - 1)) ?
>>
>>103174930
what samsung giveth, mumbai taketh away
>>
File: 1698495681119.jpg (32 KB, 300x375)
32 KB
32 KB JPG
>>103174930
>>
>>103174977
>sizeof(T)
sizeof *p
>>
>>103174977
sizeof MY_ANUS
>>
>>103174977
>using malloc
>>
>>103162051
Who is this written for? Anybody who can parse half of this jargon is already going to know all of this. Anybody who needs this lesson is going to fall asleep by the third paragraph. It serves no purpose but to fluff the author's own ego for understanding one of the most basic pitfalls of systems programming.
>>
>>103175301
>Anybody who can parse half of this jargon is already going to know all of this
And yet I've already had multiple people tell me that they learned from it. It seems to me like your post is nothing more than an ego defense - possibly because you didn't make it to the third paragraph?
>>
>>103175346
They're lying, actually the font is a serious problem, it's like dyslexia tier. The info is probably rad.
>>
>>103175514
What a shame I didn't place an archive link right next to it.


Oh, wait, I motherfucking did.
>>
>>103175346
You know, when faced skepticism that a piece of writing is nothing but ballyhoo, and you immediately jump for a deflection in a vacuum (making it a shot in the dark), that's more or less an unwitting admission that the skepticism is well-founded. If it weren't written to soothe your own ego, why reach for such immediate defensiveness that's very obviously going to miss? The only sensible conclusion is that calling you out for it nicked a nerve.

You ought to learn to handle yourself with more grace if you're to put yourself out there. They'll eat you alive.
>>
>>103175573
>no argument
>no correction
>just more ego defense
I gave you a chance, and you didn't take it.
>>
>>103175301
>one of the most basic pitfalls of systems programming.
the common wisdom is not "malloc is badly designed and very slow". The common wisdom is "manual memory management is hard, and GC is easy but slow", with smarter opinion adding "the stack is faster if your program can suffer only using the stack as a nightmarish design constraint".
Escaping these options with custom allocators is still relatively novel and I haven't read anything better than that link on just how much malloc() hurts for performance.
Just how novel this is, is easy to see by looking at recent programming languages. Custom allocators are already an awkward afterthought in Rust.
>>
>>103176305
>still relatively novel
It's not? I already talked about this in /dpt/s from seven years ago. The difference is that people finally accept it, rather than outright denying it.
>>
>>103175573
Ad hominem fallacy.
>>103175600
No true scotsman fallacy.
>>
anybody got the gif/webm of bjarne dancing in his underwears?
>>
>>103176444
Fallacy fallacy.
>>
>>103176455
Fallacy fallacy fallacy.
>>
>>103176463
Fallacy fallacy fallacy fallacy.
>>
>>103176481
Fallacy fallacy fallacy fallacy fallacy.
>>
>>103176485
Fallacy fallacy fallacy fallacy fallacy fallacy.
>>
>>103176488
Fallacy fallacy fallacy fallacy fallacy fallacy fallacy.
>>
>>103176494
Fallacy fallacy fallacy fallacy fallacy fallacy fallacy fallacy.
>>
>>103176502
Fallacy fallacy fallacy fallacy fallacy fallacy fallacy fallacy.
>>
>>103176506
Weak.
>>
File: top-guess-lll-die.jpg (38 KB, 600x565)
38 KB
38 KB JPG
>>103176511
Forgot an extra "fallacy"
it's joever
>>
>>103176525
$ reddit() { echo $(for x in $(seq 1 $1); do echo "fallacy "; done); }
$ reddit 5
fallacy fallacy fallacy fallacy fallacy

the "fallacy fallacy" is taking an assertion as wrong because it was fallaciously argued for. It's not about pointing out fallacies.
>>
>>103176553
Texas sharpshooter fallacy.
>>
>>103176525
The fallacy fallacy includes the fallacy fallacy fallacy
>>
>>103174137
They made variably modified types mandatory in C23 again (e.g. pointer to VLA), but actual VLAs that exist on the stack are still optional.
>>
>add new feature to existing software, took like 2 hours
>in testing I discover bug after bug after bug
>the person who originally wrote it never tested any fail states / non-ideal conditions (despite documenting that they had)
>2 hours has turned into 2 weeks
AHHHHHHHHHHHHHHHHHHHHHHh
>>
>>103177184
That's what you get for outlawing duels. No one is afraid anymore.
>>
>>103161905
Wait so every time an interrupt is triggered, the computer has to save the flag register somewhere, right?
>>
>>103177254
the cpu jew handles that
>>
>>103177293
But the flags have to go somewhere right? Since the interrupt procedure would most likely overwrite the flag register?
>>
>>103173542
i had the same assumtption as you (signal is always handled on main thread) and i was canceling the thread i was executing on and had some weird fucking shit bugs
>>
>>103177314
yes processors have status registers and some of them are for interrupts.
Usually when you read the status register the cpu jew automatically clears the interrupt flag.
Usually status registers are read only so you can't really overwrite anything.
>>
>>103177345
Ok thanks.
By overwrite, I just mean that the interrupt handler would probably have to do a CMP instruction at some point
>>
>>103177424
CMP isn't the only instruction that sets status flags.
https://c9x.me/x86/html/file_module_x86_id_5.html
https://c9x.me/x86/html/file_module_x86_id_308.html
>>
My god. Programming is so much more enjoyable with nvim + tmux. Why haven't i made the switch before. It's actually insane how much more fun this is than just using vscode or eclipse or whatever.

I just want to fucking live in the terminal right now. I dont ever want to leave
>>
wish eventfd has "or" semantic instead of "add" when writting to it
>>
>>103177580
you cant make a good debugger in terminal
>>
>>103177783
I don't make mistakes
>>
>>103177886
you do and you dont even know about them
>>
>>103177580
It's the curse of NewShiny. It'll wear off.
>>103177783
whut? lol
>>103177886
Oh, you're serious. Let me laugh harder.
>>
>>103177920
show me a good terminal debugger
inb4
>gdb
dont make me a laugh
>>
instead of working on my day job things im thinking how to nicely abstract away poll and inotify in my codebase
>>
Today I used Java (8) to write an Excel file with 100 MB? of content.
90% of the time it crashes because I keep the Apache POI workbook entirely on memory before saving it to disk, the garbage collector slows down to a crawl as I add cells and it vomits (java.lang.OutOfMemoryError: GC overhead limit exceeded).
Good evening, sirs.
>>
>>103161905
How does a CPU read from an internet cable without accidentally losing data if it isn't quite ready yet?
>>
>>103178460
Interrupts.
>>
>>103178484
They're not guaranteed to be handled within nanoseconds
>>
>>103178517
So does Vsync. That's what swap chains are for.
>>
>>103178460
The CPU doesn't read from the internet cable directly. There's another piece of hardware, an ethernet MAC, and this receives data from the cable (through another chip, a PHY) and writes the data directly to memory at a place the CPU told it to.
If there isn't room, then the packet gets dropped. This is why TCP exists.
>>
>>103176305
>the common wisdom is not "malloc is badly designed and very slow"
Yes it is, in jobs where performance actually matters. It has been for a very, very, very long time. Runtime memory management procedures have been explicitly and intentionally left out of C implementations for longer than you've been alive.
>>
>>103178628
>Runtime memory management procedures
Like?
>>
>>103178645
malloc, free, aligned_alloc, calloc, realloc, alloca, etc.
you also have no cognates for brk, mmap, sbrk, virtualalloc, etc.

Static allocation only. Implementations for extremely locked-down platforms don't even let you have a stack, you have to work within your data segment (they won't even give you a brk or equivalent to resize it)
>>
>>103178815
>[malloc, free, aligned_alloc, calloc, realloc, alloca] have been explicitly and intentionally left out of C implementations for longer than you've been alive
What?
>>
>>103178854
Oh, you mean functions which take pointers to objects in which to store state. Got it.
>>
>>103178628
>reads "X isn't common wisdom"
>angrily types "X is niche wisdom"
yeah that's what I said.
>>
>>103178262
are you running your program on a machine with 100-200MB of RAM or something? I've had Java process gigabytes of data at a time without a problem
>>
File: file.png (1.31 MB, 1162x1192)
1.31 MB
1.31 MB PNG
managed to get a working solution to this captcha using DINO to detect where the pairs are on the background, then crop them, splice them into a composite image and send it to gpt4o vision. if i hadnt fucked around with opencv for a few hours before trying DINO it would have taken me or rather claude 45 minutes to do, god i love LLMs.

i tried first to draw rulers and/or a grid onto the image using pillow and just send that to gpt vision but it couldnt get the coordinates right but w/e took no time at all
>>
The "you can make this run faster" demons attacked again on a highly combinatorial problem I solved a long time ago but slowly
Except this time, I finally made it run fast by eliminating pretty much every hash table lookup and replacing it with either array or object field lookups
I think at this point the only thing I can optimize is the Cartesian product function. It generates a ton of small arrays that I think I can convert to an iterator to generate less GC pressure.
>>
>>103179120
I didn't check but I will see tomorrow if somebody tampered with the JVM flags.
Apparently the GC overhead error is not the "out of memory" error but the "you're fucking with too many objects you don't deallocate yet iterating over all this shit takes forever, retard".
>>
how bad is it to share a single bool value between threads and not synchronize it?
>>
>>103179324
one thread only writes other one only reads
>>
>>103179166
I was right about the GC and switching to an iterator instead of enumerating all elements of the Cartesian product right away sped up everything by a good amount
>>
>>103170679
>>103170705
:(
>>
>>103179214
>"you're fucking with too many objects you don't deallocate yet iterating over all this shit takes forever, retard"
I can't even begin to imagine how shit the code must be if that's the actual reason behind the errors, and I did see my fair share of pajeet-level abominations (even those still worked, even if with inefficiencies)
especially if it's something as potentially streamlineable as processing an excel file memory should not be an issue
>>
>>103179396
This sounds like a sentence they'd have Scotty say when Kirk makes him provide more power.
>>
File: faedwsi80o9.png (11 KB, 156x104)
11 KB
11 KB PNG
I understand the basics of OpenGL, I'm curious on how does one actually optimize code like >>103162051 talks about. I'm a webshitter, I have no idea how to align my caches so anything helps
>>
>>103180278
I'm a webshitter too and have no idea what people are even talking about most of the time itt. It's not even the same profession tbqh
>>
>>103178899
>for systems programmers
>>
>>103177314
ask gpt to define interrupt_stack_t for the x64 architecture, though flags is actually saved in the r11 register for the syscall instruction (ask it to tell you about syscall and interrupts as separate things).
When developing a shitty kernel i would torture gpt to remind me of small things (waste of time), it probably became a decent resource as a result of that lol, i think i asked it the structure of the pci PCcard configuration space and it gave it correct sometime ago
>>
>>103180278
Learn how your tracing JIT works, for starters. Examine the bytecode it dumps out and the assembly it generates.
>>
>>103177345
what are you talking about?
STD, set direction flag
CLD, clear direction flag

also the interrupt flag has nothing to do with what you are saying.
>>
just learned that php doesnt actually handle character encodings internally when $string[2]
Going insane.
>>
>>103177783
dap inside neovim
>>
>>103180278
>I have no idea how to align my caches so anything helps
Higher languages don't give you direct access to memory management.
>As far as I can tell most languages don't even support a proper mmap binding (they always focus on the file-mapping part, not the memory-allocation part)

Although now that I think about it Perl has a XS interface with which people can write C code and use it in Perl. Maybe something exists in your webshitting language as well? You just have to be careful about the garbage collector not fucking things up for you (imagine a call to free on a mmaped chunk of memory).
>>
>>103179138
wtf there are no pears
>>
>>103180278
if he's still doing what he was doing what he's doing is microoptimizing shit that runs at boot at the micro op level with very little room for optimization since he's not doing it in kernel mode
even without the GPU at the level of using libraries like opengl you've already thrown like 90% of your control away over those kind of things
once you add in the GPU in order to get that kind of control you'd have to write the GPU part in GPU assembly (or nvidia's fake assembly) and even in vendor specific APIs you'd have to at least be running fully custom user mode drivers, maybe even a custom kernel driver patchset, and sometimes even that's not enough, george hotz had to pester AMD into publishing their GPU scheduler firmware's API for RDNA3
just looking into basic cache aware programming is enough
>I have no idea how to align my caches so anything helps
https://en.cppreference.com/w/cpp/thread/hardware_destructive_interference_size
i've only done this for synchronization purposes on my GPU in assembly which is kind of different
i don't know if C has the predefined sizes and C++ doesn't even have them under all conditions but the idea is you overalign data to the destructive size which would otherwise be next to each other which is being mutated in multiple threads to cache line sizes so it doesn't get shared? when it should which slows thing down and keep data only being mutated in one thread within a since cache line
the overload journal has a more coherent article on it
https://accu.org/journals/overload/26/146/maness_2535/
>>
>>103182390
>if he's still doing what he was doing what he's doing is microoptimizing shit that runs at boot at the micro op level with very little room for optimization since he's not doing it in kernel mode
I love how you can't even specify what you think I'm doing, or how it's just "microoptimizing shit". Did you know that over 50% of the cost of opening a file on Windows is not spent in the kernel (using CreateFileW)? And that's just the shit I *am* able to measure, because guess what, copies and conversions and locks have long-lasting side effects.
>>
>>103182514
beyond the boot time registry dumper for undocumented and hidden shit and i think a weird tangent involving trying to speed up nvidia's user mode drivers i no longer have any idea what exactly you're doing
i don't stalk your day to day despite what you're working on being interesting
i haven't been paying that close attention

you should be careful of that by the by, i've seen bizarre parasocial freaks latch on to less identifiable posters for less
>>
>>103183141
>beyond the boot time registry dumper for undocumented and hidden shit
The only part there I'd consider microoptimizing that one was the AVXing of certain algorithms (hex/decimal writers, hex dumping, static strings etc), because it only accounted for 10% of the runtime. The other 90% were quite caused by nothing else but Microsoft's incompetency.
(And as it turned out that I would be able to use these writers in other projects I'm not even mad about having learned AVX; the only thing I'm actually mad about is that it took me that long to realize how shitty compilers are).

>nvidia
I have barely scratched the surface on that one, I'm sure of it, but the biggest optimization here was elimination of syscalls and writes to disk. Again, not what I'd call "micro", when we're talking about hundreds of thousands of cycles.

>i've seen bizarre parasocial freaks latch on to less identifiable posters
Good luck, I'll say.
>>
So I don't want syntax highlighting, but I would like is for the editor to highlight unknown keywords/labels/identifiers/etc... so I can easily see if I made a typo. Are there any vim/neovim plugins or just grammar files or something for that? I'm sure I could write one, but would rather not.
>>
>>103183353
Use a language server and disable all highlight groups except the LSP diagnostic ones. And then if you want, disable all LSP diagnostics except unused variable warnings and proper errors like unknown/invalid tokens.
>>
File: 1714433334502461.jpg (117 KB, 847x652)
117 KB
117 KB JPG
>>103183353
>>103183426
hmm I might try to set something like that up but I'll at least keep comment highlighting enabled

pseudo monochrome dev sounds retro enough to be cool again
>>
>>103177949
acid



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.