#đ˝Programming Chat v2
1 messages ¡ Page 15 of 1
i kinda wanna send a good serverhello beforei sleep
bayachao would want you to sleeb
mf they're making suggestive a
oh my god thats the worst character you could've possibly used
do you think I know anything about bayachao lore
LOL]
HAHAHAHAHAH
GET AUTOMODDED

GO SLEEP @spare quartz
LMAOO

WHAT I SAID STILL STANDS TRUE
you wanna say it again ;3
okay but like
take a look at their profile for 5 seconds
and you'll know what they'd REALLY want
posting nsfw links get rule 2 warn'd
ITS NOT NSFW
i think
idk thats just the artists page đ
okay there is bad stuff if you scroll down enough but it's censored due to bluesky policies (thank god)
but still you can read japanese well enough to get the message
no I can't :3
wha
you can't ????????
bros posting makemon now đ
fake fan
yknow
sometimes this dependency-less stuff gets out of hand
got wireshark working on wsl
thisll make testing a lot easier
it's almost like people share code for a reason...
think about the feds and the glowies though!!
The protocol version the client attempted to negotiate is recognized, but not supported. For example, old protocol versions might be avoided for security reasons. This message is always fatal.
guess i really do need to implement extensions
you really need to go to bed..
zst
bleh
off myby one
THERE
ignore the weird !? symbols, terminal got corrupted somehow and replaced [] with those two
oh yeah one thing
ć¨ćĽăăăŞăźăŽăŞăşăăŤăŤBGMăăĺăăăŚć˛(ďź)ăä˝ăăžăăďź
ĺ˘ăăŚăăăçžčćăăăŚćłŁăăĄăăŁăăŽă§čŞĺˇąç´šäťăăŚăăăăžăă
ä˝ďźďźďźďźďźďźďźďźďźďźďźďźďźďźďźďźďźďźďźďźďźďźďźďź
ä˝čŠ:ă°ăăĄăă
ä˝ć˛:SSăăŞăźăăĽăźă¸ăăŻć§(ăĺăăăžăăďź)
ćĺą:ă°ăăĄăă
ĺçť:ă°ăăĄăă
MIX:ă°ăăĄăă
âźéăă˘ăłďźWeb
https://bayachao.wixsite.com/makemon
âźă°ăăĄăăTwitteră
https://twitter.com/BAYACHAO
makefile makefile reference
oh I see...yeah I see what the second one is now
you mean the third
i would say what the second one in the thumbnail represents but like
ummm
nope :3
Sleep time
3: sharing your source code but implement features on a different private repository
average corporation

use meowniumdb
Why
this is a networking protocol
all network protocols are supposed to be in big endian (that's the wire order everyone agreed upon)
fr?!!?
yes
But that doesn't make sense cuz every individual protocol won't be working together
And it's inconvenient 
In computing, endianness is the order in which bytes within a word of digital data are transmitted over a data communication medium or addressed (by rising addresses) in computer memory, counting only byte significance compared to earliness. Endianness is primarily expressed as big-endian (BE) or little-endian (LE), terms introduced by Danny Coh...
Bro I'm reading that rn
see
So it's not agreed?
it was originally defined in RFC 1700 which sorta served as a baseline for everyone to follow (like bios in a way)
to change that would just make protocols less consistent
It only says that ip will use big endian
It won't let me cooy
And the Rfc is describing iana's job
The convention in the documentation of Internet Protocols is to express numbers in decimal and to picture data in "big-endian" order
H
still even if all protocols were little endian we'd still need to do the conversion for certain systems
thats what i do here for example
On bed
wouldn't happen if you used rust >:^3
actually it would
mmm nope
I was lazy and basically made an SSL ddos tool using an external DLL
if I used the same DLL with the same threading itâd crash in rust too
since thatâs a C++ error, not ads
Ada
Bellhhh
I would
So does Ada
yeah wolfssl which you refuse to use
Not wolfssl
AWS has its own SSL library which is better than what I did
But it takes a while to compile so I didnât go that route
The error makes sense though
waah waah I need my 10k+ loc project to compile in under 500ms
I basically tried to use the same object⌠over 400 threads all at once
loc?
line(s) of code
This is a burner project
waah waah I can't handle longer compile times even if it means more memory safety features and more niceties like macros and syntactic sugar that de-sugars into a zero-cost abstraction
yeah because rust does like 50x more for you when it compiles
like what
more memory safety features and more niceties like macros and syntactic sugar that de-sugars into a zero-cost abstraction
mf we have all of that
says the lang that doesnt even know when to insert free() calls
pragma Intrinsics + memory safety + literal security features such as ROP protection
Me when I dynamically deallocate* on a microcontroller and screw everything up
Also just a note the language recognizes when to destroy an object
Everything thatâs going to be âcleaned upâ and is controlled is finalized
Itâs just not freed unless requested explicitly by the programmer
me when I don't have to worry about that because it's handled at compile time
okay now code an airplane with it
rss?? like rss feed??
additionally like ada
libraries are normally included as source
not as prebuilt binaries
so it does all of the compilation steps recursively
for all the crates
yeah
and idk if you've ever seen how nice a rust compile error looks but it takes some non-trivial semantic parsing and analysis to get those errors
it's honestly a wonder that rustc isn't slower
GNAT compile errors might not look as nice but theyâre still very helpful
The way theyâre written is a lot different from other languages though which makes them confusing at first
ok well example
when I'm like idk making a custom 'Read
gnat says "incorrect expression type for whatever'Read"
which like makes sense
rust will usually show you exactly what part is incorrect and suggest a fix
so like with GNAT, it was that the Stream type was wrong (it wasn't not null access Ada.Streams.Root_Stream_Type'Class)
Rust would say "oh this type right here needs to be this"
maybe you could suggest that as an RFC to the GCC devs
it would make your compiling slower
not by much
the GNAT compiler itself is a complete semantic analyzer, better than libadalang
it just needs a better way to display whatâs wrong
I was just making a point about why Rust compilation takes so long
because it does a ton of stuff designed to make it useful for every crate pulled in by your project
and even then it has incremental builds so it does the same thing that gprbuild does
Stupid dumb cat
Wonder what a failure to implement an abstract function for a type would look like in Ada
oh Ada does that actually
suggests âwith x;â or âuse x;â if youâre using something and doesnât have it/not qualifying
I've not had it suggest that
Weird
it just says "declaration in <file>"
Oh thatâs probably cause multiple things are specifying the same object and youâre âuseâing both
it gives you a hint as to what to import but doesn't really tell you
thereâs special keywords to assist with that in tandem with âuseâ, but I havenât gotten much use out of them
well it could yknow say that
well it issss⌠just in a verbose way
mf likes ada because it's more verbose and leaves less assumptions but then deals with a compiler that is less verbose and relies on you assuming you know what some errors mean
well again the errors make perfect sense for a problem
and arenât gonna throw you in a loop like (shudders) C++
but theyâre just harder to understand as a result since theyâre usually a single sentence
yeah at least they're not c++ errors
e.g.
or even worse, the dreaded "segmentation fault (core dumped)"
but rust compiler errors just easily blow basically everything else out of the water
not to say that all the errors are good because you can certainly get some cryptic ones, especially if you start fucking around with async a lot
thereâs also âprivate withâ and âlimited withâ but I have no idea how those work yet
oh?
async and lifetimes are where rust gets weird if you aren't careful
(oh, I see, âprivate withâ is withs only visible for private parts like private spec/body, and âlimited withâ is basically allowing a certain type in a package to be used in another package without causing a cyclical dependency)
how do you mean
well you know what the function coloring problem is right
nnnnoooo
well it has to do with async functions
the problem basically is that once you mark one function as async, the async "color" spreads all around your program
OH kotlin suffers with that
not Ada babbbbyyy (the accept in question)
I mean
anyways
rust ALSO has another "virus" called lifetimes
which are normally invisible but their job is to tell the borrow checker how long something lives
however they can appear whenever you have a reference that isn't yours
and once they pop up in one place they spread around
like this
now anything that uses MyStruct is gonna end up with that lifetime in it
Blehhh
sometimes it can get elided but
not all the time
(and in this example you'd probably just use a String anyways which is an owned type, not a reference type)
(and completely bypass this issue)
but if you end up with async/and or lifetimes all around your code, sometimes the errors can get weird
reading this
error[E0597]: `fb_config` does not live long enough
--> src/main.rs:37:45
|
26 | pub extern "sysv64" fn kernel_main (mut fb_config: FrameBufferConfig) -> ! {
| ------------- has type `FrameBufferConfig<'1>`
...
37 | let mut pixel_writer = PixelWriter::new(&mut fb_config);
| -----------------^^^^^^^^^^^^^^-
| | |
| | borrowed value does not live long enough
| argument requires that `fb_config` is borrowed for `'1`
...
66 | }
| - `fb_config` dropped here while still borrowed
example of something with lifetimes
like to me it seems not that bad
but it can be confusing
oh wow that gets destroyed on phone
I'm sure there's worse errors out there
https://www.reddit.com/r/rust/comments/7sj1jv/what_is_the_nastiest_error_message_the_rust/?rdt=33128
yeah i saw that
there was one error Iâve gotten out of the blue from GCC thatâs totally just
garbage
it happens during the binding process, something after the first build gets screwed up so I have to delete everything in obj, but all it does is fail the compilation with
<none>:9:13: invalid character
or something like that
gg
No idea what made it happen but Iâve just mitigated it by including an rm rf in 2 build scripts
rustc terminated: SEGMENTATION FAULT
you mean in your 2 glorified makefiles
lmao
shut
gprbuild terminated: general protection fault
aw hell naw
kernel level gprbuild
I havenât come across any serious GCC bugs apart from it temporarily bricking a pi
you said you wanted to make an exe reader too right
okay, add disassembly to yours and I just might :3
(/j)
bruh đ
yeah but its inconvenient đ
that number of systems is shrinking
linux once again proves its utter incompetency
by failing to run an rpg maker game which is basically glorified chromium
wat
which game
and yes
I tried every proton version under the sun
including ge
flatpak and non-flatpak steam
and I only made it to the title screen once
idk how to debug proton
how does something made for windows not working on linux mean linux sucks
it wont work on macos either
uh cause...the game will never support linux natively
so linux is sucking at its job of making it work anyways which everyone says it can do
wa
it's true
and no I really don't want to use fucking xorg
"ooh linux is better" no it really aint....like even for some native linux apps, whether it'll work right is a tossup, and then it's even less predictable that shit that isn't native will even run at all
and sometimes you gotta switch to xorg or do this or that or whatever
like sure windows spies on you and sells all your data but like shit at least I don't have to log out and log back in to play one fucking game
and no "just use xorg dont use wayland" is not viable xorg is hot garbage like the rest of linux
xorg is kinda shitty
I dont like how i haved to choose between it and wayland
but ive never had a problem with native linux app
just install, sometimes its not one command to install then I haved to install its file then its one command to install.. but thats literally just downloading it and then installing it
the real answer is just to use windows
windows is slower for me though
its more convenient to use linux because I can just easily find and delete programs
heard of wsl
lmao
thats not as fast as real linux tho
ok and
What are you even doing that you canât do on windows
If youâre trying to game on a Ryzen with an AMD GPU then I will cede that Linux is faster
But if you have an Nvidia GPU then like what are you doing on Linux
getting somewhere
its reading extensions properly
just malformed the write on key share
gaming on nvidia is fine
everything else is
ugh
but I can just change it to use my integrated graphics lol
its not just fine its actuall great lol
for some reason opencl runs at like double the speed
but thats because nvidia literally isnt allowing that shit
why use tls if you can make your own
?
grab some public domain rsa functions
and then do it yourself part of your protocol
this is a tls library its not "my protocol"
and i would but finding the algorithm and knowing how to execute it in code are two different things
oof
uhm no
its really simple đ
no its not
well to copy paste it is
X25516 key generation in ada isn't simple
nonono adacore already made a tutorial on that
TLS 1.3 doesn't allow you to use RSA algos
I mean rsa is the one that a bunch of people got together and decided was the best so
here
aes not rsa a
theres one algo im missing but this is everything tls 1.3 initially defines for use
rsa is the enterprise physical security key company thing
yeah but don't you need like
w
giant as in 256 bits
isnt your gnu key thing I forgot the name of 512 bits
PGP?
yeah
I was using gnukey and it said yours was 512
I think
and aero's was 256
or mine was
they're uh
but I know like unless its permanent even 256 bits is pretty secure
keys based on elliptic curves basically
like you generate 256 bits of random information (private key) run it through a mathematical function (the elliptic curve) and thats your public key
oh thats cool asf
TLS does it for every session
heres a good site on it
thats going in favorites
i might've explained stuff wrong cause cryptography is honestly the thing in programming im the worst at
but that's what i know so far
yeah its all magic
I would haved to learn more about it for the tcp replacement thing I keep talking about
Me when I make an inverse curve and run your public keys through it
fr lets just flip the curve and then doneeeeee
NO
you canât just do that!!!
the big numbers!!! the big math!!! bigggg!!!!
did you know
theres a __uint128__t type for gcc
and c2x is apparently going to have infinitely sizable bit counts
alot of it is complete dogshit though
like why tf does #embed act exactly like #include but makes thing into strings
why the actual fuck
apparently theres functions to do decimal math now
_bitint
_bitint for the infinitel sizable bit counts
but there isnt a full implementation cuz its a fucking bitchy idea
and they didnt fix https://en.cppreference.com/w/c/preprocessor/embed to work better
AND anything I stream on discord has no audio
ada has 128 bit numerical support already
i need 256 bits though
oh neat
@spare quartz hey have you done anything with your wsl that involved like exposing ports and nginx and shit
constantly
because i'm trying to do something, and like i'm expoising something on port 2000, and when i connect to it via localhost:2000 it shows me what needs to be shown
but when i do ip:2000 or use the domain i assigned, it just loads forever and fails to connect
any pointers?
run wsl hostname -I
then run netsh interface portproxy add v4tov4 listenport=<port> listenaddress=0.0.0.0 connectport=<port> connectaddress=<WSL2 IP> in admin
?
use the leftmost
and your firewall allows those two right?
as well as them being port fwded by the router?
well the ufw is disabled and my windows defender firewall has a rule added
okay then try the portproxy command on the other ips
does it need to be forwarded by the router?
... if you're trying to access it from outside the network yeah
oml time to dive into croatian routers again
wait is it this
because theres nothing called
port forwarding lmao
i have NAT settings
oh wait nvm that's just
nat mode
wait
remote host and wan port??
e.g.
remote host..? uhh
could it mean the routers ip?
if it don't let you then just search up your ip on google and enter it on that
wait what the fuck
?
its probably offsetting the port number so you don't get something like
external ports: 10-20
internal ports: 1-5
probably reserves those for data
ill just do 80 - 80 and 2000 - 2000
Port 68 tcp/udp information, assignments, application use and known security risks.
68 seems to be DHCP
1701 is for VPNs... 7547 is for something called CPE WAN management protocol
why do you know all this lmao
i don't
but uh yeah its still refusing to
im looking it up
show your settings?
hmm
alright lets see if its even portforwarding right
do you have wireshark on your pc
no but i can instlal it
yeah just scan for packets with the search filter tcp.port == 2000 and then try connecting to the domain on that port
why is it so big
the one your computer uses for the internet
just use ethernet since that seems to be your internet
ok lets see
oh that's odd
i went to 192.168.8.128:2000 (which is my computer's local address) and it loads what it needed
if i go to my public ip:2000
i get some
results..
@spare quartz it's using different ports from what i can tell..
https://cdn.astrohweston.xyz/u/adefcdce-1df1-499a-93aa-1fe28046b6d9.png
uhhh
yeah it seems like the routers sending it right
the linux side just isnt responding. try a different ip from the wsl command
OH WAIT
are the 3 ip addresses like
if i have multiple distros
installed
should i del the old one
if yo uwant
oki
added all 3 to port 80 and 2000, still nada
weird
rebooted my pc still nothing
i mean could it be the fw rule on windows
i did selct to allow all types of connections on all ports though..
ok i give up đ
@spare quartz does this need to like... be on...
https://cdn.astrohweston.xyz/u/ced8425a-4c27-438b-8d2a-6abae688dd3d.png
i wouldn't recommend it
array (1 .. 2) of Unsigned_128, new mod 2 ** 256
bigintegers 
honestly i'm not smart enough to understand this math
like ideally its simple but i just dont know how to write it out
goog
a story in two parts
this is what made me write my first ever computercraft code!!!
oh aeraaaa
lmao
the schools in japan use minecraft to teach java mixin and shit, so theres alot of stuff on minecrafti n japan
or atleast I think
lol
ew java
kotlin
ew kotlin
minecraft will crash if i load these native librarys the normal way so i have to use hacks to load them at runtime
oh damn
google translate I can't read allat
waaaaah
i have great news
after 5 hours of labor
breadmod now has full control of the JVM
alright
custom exception handler done
oops almost forgot one thing
there we go
now with extremely long exception message support
finally chaining exceptions
Physx is crazy
yeah i wanted to make a tool that spawns in rigidbodies
oldish image but it also supports suppressed exceptions now
@spare quartz boo
WHAT!!
respond on matrix stupid
w programmer gameplay
shit was HARD TO INSTALL
bruh just like
or even like winget install GoLang.Go in your terminal
but yeah go is a W language honestly
unlike SOME other ones @spare quartz
Aera Help Me
the guy who made the iron chests mod sucks at coding and made all file operations go through this stupid fucking "union" scheme
annoying as hell
I understood everything up to "sucks at coding"
and before you tell me off from having to load our mods code into our mods code im forced to due to mod class loader being awful
also sounds like you should use kot lin
Kotlin stinky
wellâŚwhy are you modding in the first place
because we find cool ideas
yknow
breadmod used to have a riscv32 emulator i made at school
but i deleted it due to not replicating the arch well enough
@snow oak donât listen to ATP, if you want to learn go then learn go
kotlin is pretty good though!!!
the jvm is a beatiful peace of work
Errors as values
and modern java has green threading which is effectively coroutines
jvm also has errors as values(*).
(at least more than ada does)
Nope it has exceptions
no its not
Literally Richard Stallman
panic literally destroys the entire process
If a Java program sees an Error itâs supposed to literally die
which would be like System.exit
okay yes but
- errors are really only thrown by the JVM
- you can still catch them
You can also set your own panic handler that does nothing in rust
okay but thats totally different
thats like setting an interrupt handler in x86 everytime you expect an io error
Fine since you want to be stupid
IM PROVIDING VALID ARGUMENTS
everything i've been saying is completely valid for exception/throwables in contrast to errors as returns
not stretching the definition
JVM does not represent âexceptionalâ program state as pure data, it totally interrupts control flow, sometimes without warning
You are being unnecessarily pedantic
how so
You knew exactly what I was criticizing when I said âthe JVM doesnât have errors as valuesâ
it does though
it just doesn't encourage you to return errors as another class (or record or struct or...) like in other languages
The fact that the JVM primarily uses try-catch style exceptions rather than doing something like Go or Rust where you just return a different kind of value
You knew enough of what I meant to start being stupidly pedantic over it and correct me by saying âI believe the correct word youâre looking for is Throwables đ¤âď¸â
and the JVM doesn't use try-catch either
Here you are being pedantic again
the reason exceptions are so common is because it's just agreed upon for implementors to use exceptions as they are more specific to the thing they deal with (possibility of error in a program)
it's not an intrinsic thing
âErm the JVM doesnât use exceptions itâs acshually the languagesâ
me being pedantic doesn't mean all my points are futile
When we all know that basically every common language that uses the JVM uses exceptions
Iâm telling you itâs totally unnecessary to be this fucking pedantic
And rather annoying actually
i don't know how else you expect me to respond then
exceptions are the most-specific facility provided by JVM-compilable languages in comparison to just returning a class wrapper
this doesn't mean java is inherently bad for using them, as all exceptions you're supposed to handle are shown to you very clearly
This entirely spawned from me mentioning that Go has errors as values where as Kotlin still uses exceptions
I wasnât even referencing the JVM specifically
we're still on that exact topic so i don't see why that matters
especially since the reason kotlin uses exceptions is due to its origins on the jvm
We were originally on Kotlin and you generalized it to the JVM when I was not referencing that
Nobody (sane) programs in raw JVM byte code, so the fact that âoooh actually the JVM doesnât have exceptionsâ practically doesnât matter since Kotlin and Java do
i never said the jvm doesnt have exceptions
Ok then âooh the JVM actually has errors as valuesâ
what im not understanding though is like, what are you trying to say about exceptions that makes them worse then returning an error "wrapper"
since they're the same effectively in a JVM oriented language such as kotlin or java, with more flexibility
just with different handling semantics
Then you could have asked that rather than start this whole thing with you being pedantic about exceptions and errors and throwables and the JVM
i've been saying that this entire time
No? Youâre the one who originally interjected about the JVM having errors as values
correct
that is what i said
is effectively the big word here?
But the JVM itself, the actual VM, having errors as values doesnât matter when the languages that you use implement the handling mechanism as exceptions
my big question here is how are exceptions worse than as-return-values?
The handling semantics for exceptions feel clunkier to me, exceptions feel âunnaturalâ in the code, literally âexceptionalâ state, which you could argue that they are, but having worked with Rust I vastly prefer having exceptions or errors or whatever the fuck name you want to be pedantic about being represented as normal data and normal program state feels a lot nicer
Additionally, while you can randomly panic or exit() in any program, exceptions are the primary mechanism for handling bad program state in Java et al., and unintentionally leaving them uncaught can cause your entire program to crash. Sure Java has to declare all the non-runtime exceptions which is good, but a runtime exception that you could feasibly could still be thrown with no warning, and yes this is a documentation issue but the fact is people donât always write good docs, so itâs just another thing you might have to catch in production
Therefore the primary error handling mechanism in Java et al. leaves a lot to be desired imo
With Rust and other langs that do errors as values, youâre explicitly notified via the primary error handling mechanism that something could go wrong and youâre forced to handle it because otherwise you canât access the underlying type that you want
In Go, not so much, but youâre still given an error as a ânormalâ part of the program
lemme go tackle this on a language level (Java) since there's no comparable analogue for rust (llvm doesn't count)
If youâre about to argue what I think you are, how the JVM and its bytecode handle this is nearly irrelevant to a programmer that doesnât directly interact with it, and the original comment was made in the context of Kotlin and not the JVM
Just like how rust programmers usually donât care about whatever the fuck llvm does
lemme write at lesat
Oh my god stop being pedantic
it is literally just a note
You and Richard Stallman should kiss
Youâd make amazing partners for each other
Because youâre both insufferably pedantic
holy essay yapman
oh my god
i hate autmood.
you're still able to see that right
okay wow
i literally just cant show any of the psuedocode cause this automod is annoying
notepad then
its the #?
Well because
ik ik its cause of the giant text
i thought it'd handle it being inside blocks though
but yeah theres my rebuttal and uh
hopefully i didn't lose coherentness
( i do that a lot )
I see what youâre saying
Personally Iâd also argue against a giant try-catch block because what exactly failed can easily become unclear
Like if you call 5 fallible IO operations that all throw similar exceptions
thats fair, but thats what exception stack tracing is for
i didn't know what an analogue of that would be in rust so i didn't include it in the second example
ah
But ideally you donât even need to use a stack trace because your issues are caught and dealt with at compile time
and then your program has how to deal with that error defined in the normal control flow
try/catch, at least the way i use it personally, is only supposed to handle completely unpredictable exceptions like an IO failure
if it's used to catch an NPE for example, that's bad design and just essentially letting you shoot yourself in the foot without a care for program integrity
(but java should have more in the way of safety to that regard)
Which is why I prefer Go and Rust because you canât really resort to anything like that
âDo you want this function to possibly error? Express it via the type of the return value(s)â
the reason i suggested kotlin is that it's more similar to rust in it's scrutinization of error detection at compile time rather than runtime
Thereâs no distinction between âcheckedâ and âuncheckedâ, just âfallibleâ and âinfallibleâ
Iâd argue Go is more similar because of the res, err := func_call(); pattern
well yeah that's not something i'll argue against
i just have more of a heart towards kotlin personally
Yeah cause you used it more
And youâre just a JVM-kisser anyways
CLR ftw
I love Microsoft
okay well when you write two of them it's kinda hard not to love
Go is also just drastically simpler
LikeâŚthatâs one of the precepts under which Google designed it
To be simple and easy to pick up yet powerful
Anyways go find Richard Stallman and take him out to a nice dinner before he dies of cancer
didn't he play a big part in gnu
the chief gnuisance
just to be clear i wasn't aiming towards being pedantic at all during the conv
just trying to lead you into using the right terms so i don't get confused
im very stupid as you know
Nah fight back
Make the mod loader better
yeah you see i would do that
but the modding community on minecraft has a big problem of splintering every few or so years
and causing even more pain to the developers who actually make mods
so i would rather not contribute to that
unless you mean writing a PR in which i do not wanna touch that code with a 10 ft pole
i have no idea how they even made the urls automatically pick up a "union" scheme and would rather not find out why
im glad codev is getting great use out of this new interface though!

hi chady
ooo you know you want to make your own mod loader so you can understand even more how it works
dewit
How aboutâŚmore modding time
mrow
the automod loves this thread
How aboutâŚyou mod scpsl and get to know the CLR as well as you know the JVM
requires using elixir iirc
which is
oh
đť C#!!!!!!
katsumi check your DMs for more Omori
Better JavaâŚ
WORSE java
Better
Does Java have uh
JVM on top
Implicit get and set
what happens when you put script in front of java
it becomes a legal issue
scriptjava
true
Maybe you should study the CLR a bit
does it have a specification and is it an ACM
must not be that common if we haven't heard of it
hehehhehehhehehe
programmer makes pun
asked to go amish
okay but like
is this a thing i can write or not
i am a poison
idfk Iâm not the one who is interested in this kind of stuff
then why're you prompting it to me đ
Use that website find the spec find out what you can do
Because CLR â¤ď¸
if it's really .NET i can't do much of it in the way of learning
aside from just "using it like a normal language" which is booooooorrrinnng
.NET is open source dummy
okay yes but what does that mean exactly
like if you were to write a .NET runtime in, i dunno, lua
could you reasonably run IR C# code on it?
And if youâd even read the website
yes but you're missing the point
ATP youâre literally blind
i AM BLIND
It says itâs all defined in public standards
okay yes i get that aera
but it also needs to be an ACM that i can reasonably write
so like read them ik you love reading standards
otherwise you're asking me to write gcc
you're... asking me to read it..??
You could study it by writing it or writing IR for it or just reading the standards
Iâm curious what a smarter person than me thinks about it
hold on
After like studying it
there u go
i can't just "read a specification" without writing something for it
wait
how do you think i even made my jvm in first place
do you think i just wrote the jvm bytecode by hand
ÂŻ_(ă)_/ÂŻ
You probably stole precompiled Java
Or made your own
By using javac
i compiled .java files into .class and read that into the jvm
now what im hoping i can do here is
use whatever this document describes in a compiler to turn C# into IR
and then feed that into an ACM with... this "CLR" thing
but thats later since acms are crazy complex
you guys gotta stop polluting acronyms
heheh
abstract computing machine
fancy word for virtual machine
but not a virtual machine explicitly since it could also mean an embedded chip or whatever
Common Intermediate Language (CIL), formerly called Microsoft Intermediate Language (MSIL) or Intermediate Language (IL), is the intermediate language binary instruction set defined within the Common Language Infrastructure (CLI) specification. CIL instructions are executed by a CIL-compatible runtime environment such as the Common Language Runt...
boo
Go to the example part

but not now .
now!
i might be able to write a jvm in a week but this??
make scpsl run in it
i dont even know what 99% of this is-
scpsl doesnt have open source code and it runs on unity
booâŚ
still C# so still CIL at some level id imagine
guess Iâll HAVE to make the exe reader also be an exe loader
well
noooooottt a loader
you'd need to make a decompiler from .EXE into CIL which
really i couldn't even tell you how you'd do that
No no not to translate it into CIL
to make it run
idk yet Iâd have to figure out how to interface with Windowsâs loader and tell it to do things
or figure out how to load it myself
well lmk how it goes if you do it
ngl I have no clue where to start
depending on how much control you're able to allot you could intercept some of the library loading and make a faux-wine
oh I was thinking of being cheap and just screaming at the windows loader to do it all
isn't that basically equal to just like
System.Os_Lib.ShellOrWhatever("./...exe")
... weeeeeellllllll
that could actually be a fun project, loading a EXE/DLL file, and being able to run a function in it or using the start position if available
something like RunDll32
meh probably
I wanna see if I can talk more directly to the loader though
looks like you'll wanna link to IMAGEHLP.DLL
@spare quartz thereâs a pixel phone vending machine in the airport đ
I could get an 8a for $399
Which is discounted
get it ....
I kinda want to T.T
Based
PHYSX WORKS!!!!
we had to pull a few hacks (this class is completely reflective) but it works
Hacks arenât âbad practiceâ and donât âmake your code unreadable,â they provide fun challenges for anyone who works with your code in the future to solve
A mod about all things bread. Contribute to Bread-Experts-Group/breadmod development by creating an account on GitHub.
see lines 25-124 for classloader details
i don't think the codes harder to read as apart of the CL stuff we have to do, it's just... "weird"
Why does it need the self reference again
What platform is this even for, fabric?
its literally in the branch name
neoforge
when loading a class in a file (e.g. physx.PhysX) the JVM uses the classloader that loaded that specific class to load that class
because we cannot put our physx libraries in the mod classloader we have to make our own, then load the self reference in, and load the aforementioned class so it can use our classloader to see the physx stuff
Gross just use normal forge or fabric
... no??
normal forge was obsoleted in favor of neoforge by everyone
because the guy who made it acted like a dick and every developer left
and fabric is infuriating to develop for
At least you donât have to doâŚwhatever it is that you are doing
I thought fabric was supposed to be better to develop for anyways
no i'd definitely still need to do this procedure
its better initially but they don't give you much of anything to work on and the documentation beyond the simple stuff is crap (or nonexistent)
Just read the source code, the source code is the docs :3
thats not the problem
"they don't give you much of anything to work on" means you have no source code
oâŚâŚ.h
you have to use the decompiled minecraft code
Ok there u go ^_^
which is annoying as hell cause microsoft just loves to do this thing where they scrub out all of the comments
and if you have no mappings/incomplete ones
the argument names also dont exist
ah yes please give me m_49324
m_14952 is surely good to use with m_53295
@spare quartz mfw
#1264496483957346346 message
those aren't microsoft written javadocs
those are community made ones which
- aren't complete 99% of the time
- are conjecture
just understand this isn't as simple as what it looks like on the surface
adding a block/item... simple, doing anything more? figure it out
ex.
but something like
totally untyped
(dynamic call sites dont even have the proper names)
b-b-but fabricâŚbetterâŚ
i will beat you to a bloody pulp
A mod about all things bread. Contribute to Bread-Experts-Group/breadmod development by creating an account on GitHub.
example of poor fabric documentation: the models have no simplifications like they do in neoforge, just stuff that only a microsoft dev would know
hmm
saving this here for a future project
(audio interception so my computer can use "bluetooth" without having a bluetooth card)
you tbh
that is aera
@spare quartz should I host my own bluesky server
like
changing your handle or an ATProtocol server
hehe ATProtocol
:3
sure if you can manage it
