From what I heard it is essentially C but with tagged unions, no headers and much better error handling.Has anyone tried Hare? It sounds promising to me.
Use case for these threads?
>>106792101Buy an ad, Drew.
>>106792101Rope, Drew
kys drew
It's okay, I guess. But what is the point when so many C alternatives already exist? I couldn't find an exact answer
>>106792101no one is using your malware you pedo drew
>>106792700>But what is the point when so many C alternatives already exist? I couldn't find an exact answeryoure not going to get one, there is zero effort made by their community to lower the barrier of entry to Hare
>>106792123ebussy... sex...
>>106792339this is where he lost me
>>106792101Hi Drew
Stop the spam Drew OpenMediaVault
drew might be even more well-known than mikee as a resident /g/ histrionic schizo, lmao.
>>106792101all that, and java tier performance. hey wait a moment, why not just use java at that point???
>>106792101Nobody cares if it's a good language or not (probably it's not) but, why in the fuck he is not using LLVM as backend? Is he retarded?
>>106794579have you ever made anything that used "LLVM" as a "backend"?
>>106794611Maybe.
>>106792101usecase for drew creating these threads?
hare and a bunch of Drew's other projects were something I was really interested in before he outed himself. Really a shame how much of a homo that guy is and how untrustworthy he's proven to be. I got banned for 3 days last time I said something bad about Drew on here so I'll just leave it at that for today.
>>106793777why do either of them care so much about spamming g anyways?
hit me up when any of these meme langs reach 1.0I don't want to rewrite everything each month
Wake me up when I can use it on wangblows without a VM or WSL
>>106792700>But what is the point when so many C alternatives already existMaybe it's better than the other alternatives?To be honest, hare is the only recent newlang that actually got "C with fixed warts " right from a C programmer view Zig, Odin and such ended up being much more than thatAlso there are some refreshing choices made by ddv (either by necessity or deliberately, doesn't matter in the end)> Language freeze at 1.0. that means the language doesn't aim to be in an eternal catching up of features and when the technology gap will becomes too "obvious", another language will be developed This has the pros of avoiding the shitfest that is programming right now (which C standard? What java version? What python version?). If you know hare, you can sit down and programming now, as you will be able to do maintaining sw written with hate in 2300 (if there will be any, of course)> QBE instead of llvm Dependability (readability, maintainability, extensibility) over performance Newlang all use llvm because it's the "golden standard" of backbends. But that comes at a cost, that is it requires a lot of effort to maintain it and extending to new archs. Hare tries to grow by being easy to port. Nowadays languages like Odin are trying to move away from llvm because they realize that more than 50% of the effort in maintaining the language is keeping up to broken compatibilty between llvm releasesLong story short, aside from technical merits, ddv had the balls to make what seems "controversial" choices wrt modern standard language choices, because he want a simple, hackable, easy to extend language as a primary metrics and to be honest, they are quite refreshing
>>106799388>>106792700He basically looked at C and see what are the problems that makes it anachronistic > Text macros instead of modules system, hence even lacks of namespace > Too primitive string implementation> dangerous and error prone pointer arithmetics -> 90% of them can be avoided by implementing slices > UB -> hare reduced UB casistics by a large margin> Basically absent error handling capabilities, one of the most important programming language feature -> solved by anonymous tagged unions and pattern matching and error propagation operators (?, !)And a couple of safety features like defer, non-nullable pointers and array access control + complete modern stdlib and a standard build system These are unarguably not a matter of choices/preferences but objectively deficiency of a modern language
>>106799388True but imho, Odin ended up pretty close.
>>106799388>which C standard?-std=c89wowmuch difficult many hard
>>106799388>Odin are trying to move away from llvm because they realize that more than 50% of the effort in maintaining the language is keeping up to broken compatibility between llvm releaseswriting a language backend is by far the most difficult part of making a language implementation which is why almost every programming language made in the last 10 years all use llvm. I think Zig managed to make their own backend last month and its benchmarking faster than llvm. I dont think Ginger Bill is able to make his own backend will have to hire someone to do it
>>106799388>Dependability (readability, maintainability, extensibility) over performanceNobody cares about that. Modern software is build on layers and layers of technical debt.
>>106799930odin is nice but hare is even better on paperstill, I won't mind odin replacing C in the future>>106800588Are you dumb? I meant as a maintainer >>106801054>Nobody cares about that. I care> Modern software is build on layers and layers of technical debt.That's something hare would have prevented
>>106801776>I careYou don't your software have the quality of all "suckless" projects, it's a featureless incomplete meme.
>>106801927> I only know /g/ memeThat tells more about you than me, loser
>>106802294I'm still having hair, chud.
>>106802689It's almost certain I have more hair than you
>>106792101dead nigger baby of a programming language made by obsessed commiepedotroon.
>>106792101I don't understand some design decisions of Hare. Why you can't for example do?:type <block> Or something that can be more useful like:defer <block>
type <block>
defer <block>
>>106800758the new zig debug backend is also 50x slower than llvm
>>106799450Buy an ad, Drew.
>>106805482> type <block> What's the point of that?
Fuck off, drew.
You all missed the whole point of hare>Hare is a language that most of its experienced users should be able to understand in its entirety: itβs feasible that one person can read and understand the entire compiler, for example. This also becomes easier given that Hare is self-contained β it does not depend on libc.
>>106803897>loliB A S E DA S E D BS E D B AE D B A SD B A S E
>>106792101>much better error handlingit doesn't have exceptionssome errors are best handled with tagged unions but others are better handled with exceptions
>>106792101fuck off drewalso buy an ad
this thread needs more controversyhttps://www.youtube.com/watch?v=c7WOrFcwF_k
>>106813713Exceptions can be implemented using tagged onions.
>>106815126yeah, using if (err) { return err } at each function callthe point of exceptions is that you don't have to do that
>>106815432What I mean is that exceptions can just be syntactic sugar for tagged unions.
>>106816052exceptions are a control flow primitive, they are as far as you can get from being syntactic sugar for anything
>>106792101use case for hare
bump
>>106817090Generally exceptions are syntactic sugar for setjump and longjump but can also be implemented using tagged unions.
>>106818567computed gotos (+ resetting RSP and RBP essentially) are not syntactic sugar you imbecile>Generally exceptions are syntactic sugar for setjump and longjumpI'd say that it's the opposite, setjump and longjump are bloated implementations of exceptions in that:you don't function calls and you don't need to save all the registers. I mean, at the core exceptions are as lightweigth as function calls and function returns. The whole saving/restoring the registers is done for the exact same reason than for function calls. The compilers could very well (if they don't do this already), have lightweight try/throw and the register allocator save as much/as little register it needs to, just like for function calls.Also, setjump/longjump allows you do unwind the stack and go back to specific places in the function call stack, but there is another style of exceptions where they respect a strict stack discipline (pop the last setjump buffer from an exception stack and longjump to it). A language could also have both.There are languages like Python that throws "specific exceptions" that must be catched by a catch with the right exception type but I'd argue that it's basically the setjmp/longjump variety implemented badly. You could very have a hashtable/ struct that would associate an exception type to a setjump buffer and the thrower could directly get it and longjump in O(1).
>>106818947>are bloated implementations of exceptions in that:you don't function calls*dont need
>>106818947 me>The compilers could very well (if they don't do this already), have lightweight try/throw and the register allocator save as much/as little register it needs to, just like for function calls.For example, concerning the code generation of a try block in a particular function, the compiler could do a function call graph analysis and determine that the called functions (and the function it calls) do not do floating point operations not vector operations, so it only needs to save the general purpose registers.Even better. If the function does something like try { some_function(arg1, arg2) } catch { }, the call to "some_function" already save the caller-saved registers to the try block/setjump does need to save them itself. So if an exception is thrown, the code at the catch block can restore registers using the caller-saved registers, that would have been also restored after the function call (when the some_function returns normally).Same thing concerning the scratch registers (callee-saved registers). Those would also have been saved at the function call site so again the try block/setjump doesn't need to save them again.
>>106819102>Same thing concerning the scratch registers (callee-saved registers).that should be the caller-saved registers, so this is the same case as the previous paragraph I guess.In general the try block/setjump should need to save the callee-saved registers.
>>106796658they're banned from everywhere elsehn, lobsters, reddit, all have banned drew and hare because of how much they spam
>>106820064Drew was banned 5 years before Hare was even a thing. And he was only banned because pushcx is a malding middle age boomer who likes dressing up as a little girl and throw little girl tantrums
>>106820101lol ur banned drew
>>106792101I think the rat or whatever in the logo is pretty cute.
>>106820064is there anything that infuriates either of them? something that can be posted to drive them to further autism for deh lulz?
>>106820101>red reddit banned drew
BUY .AND . ADD .
>>106792101Hare stands proudly for trans rights.
>>106792101This post is advertising or begging.
>>106820336It's a rabbit (not a baby hare, as mistakenly advertised)
>>106820905Drew loves trannies & faggots so making fun of them would probably piss him off
>>106821653>>106824714looks like ballsack lolwonder how drew would feel is someone DREW him having balls like that
>>106825064alright heres the first version
>>106825417>shaw
>>106825520first time i ever do somethiing like thissorry not sorryalso heres refernece
>>106825613uhh why is it black background lol
It's C but slow, great.
Drew, fuck off already.
>>106831112let inorganic threads die such is the nature of this site
>>106792101no thanks
>>106792127>>106792339>>106792599>>106792853Isn't Drew a mastotranny? I don't believe he would be advertising on 4chan
why bumping a thread where nothing happens?
>>106792101QBE is dumpster fire
>>106792101what is that little bunny logo from?/?i have this already saved to my pc but have never heard of what OP is talking about