#dev-general
1 messages ยท Page 402 of 1
yeah exactly lol
there's not really much you can share there
i'd just be doing 99% of the work in haskell and just calling 1 function from java (or vice versa) which seems boring
and i also dont want anything too complicated because just figuring out JNI is gonna be hard enough
object oriented haskell maybe?
You want to make something with both java and haskell?
blursed
yes
using C functions for the "glue"
maybe like a bank or something that calculates numbers using haskell but inside of a java class model?
Maybe a calculator that stores previous equations or something?
hmm
If you just want to make something
precisely
ok let's try this out
ok off to a good start, haskell is generating c headers correctly
this is cool
So I have the FFI header stored at ./.ghcup/ghc/9.0.1/lib/ghc-9.0.1/include/HsFFI.h right now, what's the best way of including that?
doing the absolute path sounds bad
can you do relative path?
i could but that sounds even worse
does it change?
it might
oh jeez
if a different ghc version was installed or you move the project folder
not sure how you're normally supposed to handle this sort of thing
does it not recognize it in the project directory like normal C?
it's not in the project directory
should i just copy HsFFI.h into the project directory?
i dont think the definitions will change
lol everyone needs Fefo
second time fefo was requested for help lol
I tagged him in #general-plugins too haha
๐ฅฒ
is this a good practice
let me summarise quickly
haskell <> C interop uses 2 headers:
blah.h which is generated from the code i've written, i can just include that with a relative path
HsFFI.h which is somewhere on the user's system depending on where they've got stuff installed
including HsFFI with an absolute or relative path sounds bad, so should i just copy it into the project folder?
yeah it's a good practice
since when do you know c
I don't
yet 
do you know where in the system that header file is located?
on my system it's ~/.ghcup/ghc/9.0.1/lib/ghc-9.0.1/include/HsFFI.h, but that won't be the same on every system
can u specify in a config file?
or ask for a symbolic link to a directory ya already know

it's a c header lol
there should be some way for you to specify that include dir as a path for the compiler to look in
yes it does
we all love g++
that's when you use the angle bracket include style
the only issue is that it probably won't get rid of this ๐ฅฒ
because it's 1 file and im working with 3 different languages at once
afaik IJ can handle like every lang
ok so the gcc route is the best option right?
with a shit tonne of plugins yeah
yeah one per lang?
friendship ended with emacs, now sublime text is my friend
not too bad, you already got java
well that is an upgrade at least
wtf ๐
too long in fact
read-edit program loop yeet
bro just upgrade your pc 4head
6head
16head
32head
2^69head
you already messed up iwan
ill take that as a yes
frankensteining C, Java, and Haskell together
jascell
lmao
add kotlin/java interop to the batch lol
can we throw some common lisp into the concoction of satan
that's probably not that hard actually lol
same thing, no?
LLVM / clang gang
can it generate C headers?
G++ is for C++
idk prolly
gcc is for C
they're usually aliases lol
oh lol
same 'ting
they're really quite not lol
https://www.scheme.com/tspl4/intro.html#./intro:h1 read this u plebians
guess it depends on your environment then? I've always known them as aliases
g++ only compiles whatever you give it as C++ code
gcc can do either C or C++
@prisma wave i think https://www.call-cc.org/ may interest this project
but also you just should use LLVM instead it's better lol
does that convert lisp into C wtf
๐ฑ
a competitor to clojurescript pls
unsatisfied
what does that mean
that's what she said ๐ฅฒ
๐ฉ
well I presume it uses GCC
it is not specified bm
and you need LLVM for emscriptem
it means you didn't link properly
it means you haven't loaded the library
thank you
right
java -Djava.library.path=../JNI Library well this is the command i am running
project looks like this
oh yikes, does it support makefile?
what's "it"
manually making that command is gonna suck
whatever you're doing
can you use not the command line
you still need to call System.loadLibrary()
long shot, but does anyone know any opengl bindings for scheme?
BM how tf have you done this Haskell/Java interop thingy and why
what in the fuck
is it literally called "native"
no reason why i'm asking star
why would you ever want to do graphics programming in a lisp derivative
i have no idea
no reason at all
bruh
i havent yet
i mean
the tutorial said it's "native"
but im not sure if that string is special at all
it is not
it needs to be the name of your shared lib
so libnative.so from the looks of it
cursed
I can remember there being some hacky code to figure out the right file ending
but it might work without the extension
cant remember
prolly does
The {@code libname} argument must not contain any platform
* specific prefix, file extension or path.
sounds about right
lib is a linux prefix right
that uses normal lisp not scheme, and it interoperates with Rust lmao
you still need a Rust backend for it
comme ci comme ca
"normal lisp"
yeah i think it is
changing to "libnative" caused a different error
ok well if it loads then the function isn't exported correctly
or theres something wrong in the definition
hmm
what is normal lisp if you dont mind me asking
#include <HsFFI.h>
#include <jni.h>
#include "../Haskell/Calc_stub.h"
JNIEXPORT jint JNICALL Java_Library_addHs(JNIEnv* env, jclass clazz, jint a, jint b) {
return add(a, b);
}
does anything look wrong with this
i would call common lisp "normal" lisp
the lambda calculus is normal lisp
what's the java declaration
public static native int addHs(int a, int b);
which class
00:00 ๐
cute
for reference the definition was pretty much copy pasted from the generated header file
so i dont think that's the issue
#include <jni.h>
/* Header for class Library */
#ifndef _Included_Library
#define _Included_Library
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: Library
* Method: addHs
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_Library_addHs
(JNIEnv *, jclass, jint, jint);
#ifdef __cplusplus
}
#endif
#endif
imagine contributing
lol if i knew C then sure
i made a ds game in ancient c++ once
impressive
not really
libnds is super simple
installing devkitpro was harder haha
and figuring out buildscripts
C should look at lein
super simple
I would probably inspect the binary then
libnative?
yes
oh lord
how did you compile that btw
c++
if you don't have to use C, don't
C is kinda fun ngl
thats the rule bm
g++ -c -fPIC -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux -I/home/alex/.ghcup/ghc/9.0.1/lib/ghc-9.0.1/include/ Library.cpp
g++ -shared -fPIC -o libnative.so Library.o -lc
I wish I could code in c
no that's not the rule
pretty much copy pasted
that is the rule
the rule is don't ever use c++
I heard c is fast, right?
im taking an entire semester-long C class next semester haha
well yeah
I have to
rust is equally fast
What is rust like?
even torvalds agrees that rust may be super cool
that is a debatable statement
i have an actual issue here
and torvalds is a C stan
I wanna learn a new language but idk ahsf language
we're still seeing what Rust can do
haskell
yes, but it can do much
Fucking hell bm the speed
though I would be interested in seeing an OS in Rust
Give others a chance ๐
mmmhm
until then, I don't think it can contest C
odin u should use chez scheme
I might learn haskell
just learn Haskell
Idk
i think you would like the syntax of scheme
there's plenty
Scheme?
and if you're gonna learn a lisp, just use normal Scheme not whatever iwanio's peddling
oi
clojure
sadge
really? link me bro
chez scheme is normal scheme
The thing is, I'm scared to learn haskell because bm will move onto a new language next week
u google scheme, u get chez scheme star
no bm's been pretty strong on haskell
Said that about kotlin
I get MIT scheme i dunno what you're on about
yeah i dont plan on abandoning haskell for a while
shhhh
Kinda sus tho
and kotlin is still going strong!
just look it up
2 weeks??
imagine using scheme and then abandoning emacs smh
oh damn okay! well I still don't know enough about it to have much of an opinion, but if non-trivial stuff starts being made with it I'm all down for it
im not abandoning emacs for sublime text
why lmao
that's a hell of an upgrade
I had my bank statement come in today, it had ยฃ600 in payments for pokemon cards. I'm not addicted promise 
||yet||
relax man
thats like... a day's rent in london!
...
what I definitely like most about (doom) emacs so far are the comments in the init.el file
I'm legit so addicted to pokemon cards
everything about this sentence is american
The only reason I wanna get a 4th job is to get more cards
what they don't have your mom jokes in other countries?
no
$ cat .doom.d/init.el | grep haskell
;;(haskell +dante) ; a language that's lazier than I am```
Your role is 69 wtf
60-69
referencing pounds
mama
its not uncommon to see americans be 600 pounds 
correct
hey the first one could be bri ish
americans be fat tho innit
but yeah the second and third are kinda tru...
emacs lisp
They use "stones" kekw
don't @ me
Good morning bm
yes, we do
; drown in parentheses
i promise we dont
Bm come back to java and kotlin
not java
hello
just kotlin
I weight 2 boulders and a half
omfg
Java is good
what the hell is this new reaction display
damn mate just like ur mum
im pretty sure LITERALLY everyone would disagree with you there
the old one was SO much BETTER
anyway its not "stones" its "stone"
no
you could weigh 9 stone, not 9 stones
Y
boring
kotlin kinda cute
Depends on the weight of the stones
omfg
It's not boring bm
ok i guess jni can wait until the morning
okay ill use kilograms then, u happy?
good
ew wtf
You forced us to use kotlin bm
Lmao bullied into change
i'll kill your gram mate
no one forced u odin 
You went around forcing us to use it now you leave us behind
its just a way of life 
I might uninstall kotlin to show how disappointed I am
k
meters per second wtf
install clojure
No it's hot
that is the official international unit for speed
It's better than what you're doing now
and is used in science all the time
not for cars mate
Does anyone remember whether you can integrate a custom editor with clash of code
nah mate cars 1 was great
cars 4 is a conspiracy
copy + paste
Pretty sure you can
no we aren't old
Yeah install ghc instead
glasgow haskell compiler lol
hehe
Glasgow ew
just because someone is using another language that ur not using, doesnt mean u should follow them tho lol
glazz gew
ok i did not know that was a thing
that is how it is pronounced
vim mode lmao
oh what the fuck
minimap?
emacs mode are you kidding me
minimap, clash of code be playing COD out here wtf
It's like what vsc has I think
yeah the code preview on the right
ah
There's also a "pro mode" where you can test the code with your own inputs
I'm not sure how useful that is
But
ยฏ\_(ใ)_/ยฏ
very real chord, don't check but yes
ez cheats
very real
that sounds really useful
would've saved me a few times of it not telling me what input it was giving me
i thought it did?
naw one of them was adding up numbers or something and I kept thinking I did it wrong because it showed a bunch of random numbers twice
pretty sure u can click on the tests and see what its giving u or smth, iirc
just copy paste into IJ
oh it has an emacs mode right?
and surely IJ has an emacs plugin?
IJ has a vim plugin and it's pretty good
Shame
no like I mean I wanted to try and write a plugin that allows you to edit coc code in your local emacs
Once me and yugi remake CoC an Emacs plugin will be our #1 priority
yes remake coc without all the shitty challenges
wow i feel so much safer now
Too bad it's probably closed source
hold on
the file
/ (the root directory)
and the history of sync files?
that's a lot
it is
๐ฎ
damn you really are a linux user huh
(btw)
real x10ers create their own lightweight web browser based on electron
hehe
lightweight
electron
elara/browser???????????
It only uses 500MB of ram for a single page bro it's fine
๐ฎ yes
oh god now I have to think of that one pcj post with the premium clock widget
is that the one where you pay $10 for a clock?
yeah
and it's electron based and consumes a fuck ton of memory
I don't know where to find it anymore but that dev's comments were hilarious
i also like the chrome streaming SaaS for low-end PCs where the client is written in electron
can't make it up
Then he turned himself into a pickle
saas?
People complain that our widget takes more space in memory than the entirety of Encyclopaedia Britannica would take, but frankly, if you look at it rationally, Encyclopaedia Britannica is not capable of showing you Today's weather, and neither is it able to show you personalized offers from our partners.
lmfao
Aah this is the one
Another masterpiece
oh i thought you were joking
I wish I was
what are Databases in InteliJ ultimate? are they like MySQL databases hosted by InteliJ for testing?
no, it can just connect into any database and visualise it
It's like phpmyadmin but better and in the IDE
Also gives you syntax highlight and table/columns name completion when typing queries on strings based on the database you're connected to
lmao we already did it like a week ago
someone make this guy a PWA and charge the price of making a new UI ๐
oooh a NodeJS proxy...
Ok
what happens when u click
It opens the link
Bloody genius
Ikr
Nice one Dynmap
I love code with me but i cant imagine using it in a actual project setting
like for fun its great
Yeah
Also, love the paper update ๐ฅบ
wow thats cool, whats the update?
Live interviews though
the paper update?
Was the one that added adventure, one of the latest builds of 1.16.5, also added a patch to fix console colors
oh good point, though for alot of places they have you do it either over phone or in a google doc
dont ask me, ive never done it like that
Doc editing is live afaik
Now if you're asking "how in the world are you supposed to write code there"
Yeah I don't know either
lol now think about over the phone
Im pretty sure i would practically forget how to right a basic class
tbh google docs are one step away from being the most popular browser code editor
all google needs to do is add code extensions
so that you get syntax highlighting and suggestions
ya, once they add the whole IDE part of it
It's great for C# kekw
Combine docs with IDE and thats your new name for the google product
Lmao
Holy shit
ur a fucking genius
Why didnt i even think of that
lmao
it is quite annoying that it gives you a neutered IJ with different plugins. I wish it just let you also use normal IJ and just downloaded the files and synced them as time changes
damn that's lookin kinda cute
Wdym? Are you joking cause i didnt notice a huge differenece in the actual IDE when using it
Just like him
๐ณ
it literally opens a different version of IJ (if you're the one joining a session) that doesn't have any of your plugins
Literally last night
ah
No as the one joining
Ive always used it as a presenter
yeah it's the same for you
well yes but it doesn't let you like build a gradle project or anything useful
and deletion sometimes took years
and the host undoing undoes your changes lol
it's quite weird
Huh thats actually kinda weird... If i had friends i would try it again :p
I was looking for a r/everyonehasadifferentopinion to quote but unfortunately no one has made that yet
i mean, you can kinda edit the code
it's just terrible slow and unresponsive for the viewers
@prisma wave Found a classic https://www.spigotmc.org/threads/get-nms-version-and-convert-it-to-a-minecraft-one.205021/#post-2124741
Hype? ๐:eyes:๐:eyes:๐
Can I get coding help for my plugin here?
hi
You need more spaces to the left of the cases
It must be spaced atleast after the case keyboard
Haskell also sadly forces a form of "indentation"
Alternatively you can use braces and colons
When's 1.17
2030
the year 3000, same as PAPI 3 and DeluxeChat Hex support
Same as autosell being updated
random
Is clip even active here anymore?
clippy was sent to federal prison
Yooo Gradle 7 came out?
Oh shit, it did!
Ive been using gradle a couple months now and i still have no idea how it works
I should probably learn that soon
lol
๐ป spooooooky
@ocean quartz wakey wakey :3
So I'm using
CompletableFuture.supplyAsync(() -> {
// some code
}).thenRun(() -> {
// some code
});
But the thenRun doesn't seem to get executed
@onyx loom :p
hello ID Soul blocks deluxemenus is not valed
Wrong channel
Need concrete code
supplier is probably not returning
Ah that might be the issue yea, made it differently now and it works so oh well
Is using the scheduler an okay way of handling async shit, or is there any better ways to handling it
The bukkit scheduler?
yes
Do you actually just want to run something async or schedule it to run after some time?
async
Depends on the task
db stuff
I would make an own thread(pool) for that
Mind elaborating on that
It's a secluded task that has barely anthing to do with Spigot so it makes sense to have an own executor
Talking about java.util.concurrent.Executor correct?
public class Executors
extends Object```
Executors has 1 extensions, and 13 methods.
Factory and utility methods for Executor, ExecutorService, ScheduledExecutorService, ThreadFactory, and Callable classes defined in this package. This class supports the following kinds of methods:
- Methods that create and return an
ExecutorServiceset up with commonly useful configuration settings. - Methods that create and return a
ScheduledExecutorServiceset up with commonly useful configuration settings. - Methods that create and return a "wrapped" ExecutorService, that disables reconfiguration by...
This description has been shortened as it was too long.
You can use executors with completable futures as well
Will play around with it, thanks
does hash not remain the same?
Used the exact same item
If it doesn't my whole life is a lie
Changes if you changed any of its properties that determines its hash
I didn't, I just restarted the server, shouldn't it stay the same tho?
The server itself probably changes something
Might need to make my own hash thingy probably
People usually use some form of uuid tag with nbt on the item I think
Using it for all items, so can't really do that in this case
Ig you could look at the hashCode() implementation to find out what's going on
What exactly are you trying to do?
using the hash as the identifier for the item, since there's custom items this would be the most logical way for it not to be dependant on the implementation, gonna see if I can use the base value tho
Why do you need an identifier for all items?
So I can identify it later?
Shouldnt that normally be dependent on the material?
Custom items, so no
So material and model?
All item properties has too many variables
Its prone to change the hash
Pick out the specific values that dont change for an item and use those
Do you keep track on "non-custom" items?
I keep track on all items
Gonna see if base64 hash value works for this
Since that won't change ever
Why not?
Wouldnt even something as durability be part of that?
seems to work
Try damaging the item a bit
custom items don't have durability so don't have to worry about that
oh yeah seems like it
Check ItemMeta's hash fnction as well
what an interesting hashing algorithm
Object's hash code
at this point just hash based on the item's name and lore lmao
true implemented by converting the internal address of the object into an integer
oh yea that'd make sense yea
Frost
ye?
Just use nbt
Easy way out
Does stacking destroy nbt tags?
ItemMeta is removed when stacking
It shouldn't
Aight
String's hash should always be the same for that string correct?
yes
type hash also changes after a restart
you mean the Material hash code?
yes
that is weird
yes
Seems hashCode of enums delegate to Object.hashCode as well
hella weird

Im still not convinced of using this
I guess time to wait and watch if collisions occur
huh?
This is the use case btw
?
I'm currently testing and I get the same hash code every time
Oh? lemme check
Anyone got suggestions as to how I should improve the matching thingy btw?
public static Set<ItemStack> getMatchingItems(String matcher) {
final String comparator = matcher.toLowerCase();
if (matcher.length() == 0)
return ITEM_REGISTRY;
return ITEM_REGISTRY.stream()
.filter(it -> {
if (it == null) return false;
final ItemMeta meta = it.getItemMeta();
if (meta == null) return false;
final Component component = meta.displayName();
String display = component == null
? WordUtils.capitalize(it.getType().name().replace("_", " "))
: PlainComponentSerializer.plain().serialize(component);
display = display.toLowerCase();
boolean valid = false;
for (final String word : display.split(" ")) {
if (valid) continue;
final int difference = StringUtils.getLevenshteinDistance(word, comparator);
valid = difference <= 3;
}
return valid;
}).collect(Collectors.toSet());
}
Don't cringe too hard
smh k
That filter does the job of like 5 or 6 ones xD
:p
It's basically a loop at that point
sort of yea
tad better https://paste.helpch.at/sonahucita.java
don't think I can change any more, or can I?
I'm still not sure how a log is similar to a bush
probably close in item id
@old wyvern Seems to work so neat
@lunar cypress
I seem to be getting the same enum values as well, but
https://github.com/frohoff/jdk8u-dev-jdk/blob/master/src/share/classes/java/lang/Enum.java#L151
Not sure whats actually going on, ill try after restarting in a bit as well
However this matching is broken now, I enter dirt as the arg, and it doesn't find the dirt, like bruh
I'll rewrite
Alrighty
Jesus
? @jovial warren
Just looks a bit complicated to me lol
oh ok
Better
public static Set<ItemStack> getMatchingItems(String matcher) {
final String comparator = matcher.toLowerCase();
if (matcher.length() == 0)
return ITEM_REGISTRY;
return ITEM_REGISTRY.stream()
.filter(Objects::nonNull)
.filter(ItemStack::hasItemMeta)
.filter(it -> matches(getDisplayName(it), comparator))
.collect(Collectors.toSet());
}
yup
How much of a difference should I be using for the matcher btw?
currently it's 2, but it seems to fail on exact matches
Man this just reminds me how much better Kotlin's collection extensions are than Java's streams
shut up
huh
Exact matches shouldnt fail at all
That would be an edit distance of 0
Also the threshold depends on just how close you want the matching to be
I know, that's why it confuses me lol
Just because I speak the truth eh?
Try printing out the value
This just reminds me how much better Haskell is than Kotlin
got em
For filtering, probably is
For everything, probably is
Gonna have to disagree with that one
Just because I speak the truth eh?

-_-
Java 5? You mean Java 1
Our lord
Ok ty
That switch is ew
no u
@pale shell โน๏ธ
sudge
what's wrong with calling haskell code from java
yeah but the way I did it is really hacky lmao
What did you do?
It just writes to a file and calls ghc lmao
Yeah I was looking into that last night
Im not sure it's possible for plugins or not but I'm gonna try make a PoC of Haskell<>Java with FFI and JNI
Why not?
Because you'd need to extend JavaPlugin and things, is that possible with jni?
Good question
try putting haxe into the chain
haxe has interop with fuckin' everything
You could probably hack it by generating a class, but I was suggesting just providing hooks for events and commands
Wouldnt exactly be a bukkit plugin but could be fun to see it interact xD
hmm yeah that doesn't sound impossible
So export a haskell function for an event handler, make a jni function that calls the exported function, then implement CommandExecutor and call the native method
God
This is gonna be painful
xD
that didn't take long
Who is skilled with reverse engineering, which I can contact per DM?
^ this is no ask to ask
not me i'm bad but pm me and i'll have a quick crack at it with public tools
found what I was looking for
Why
aye
even nvidia has github
@old wyvern How's the visualizer going :p
MIT/GNU Scheme is a programming language, a dialect and implementation of the language Scheme, which is a type of Lisp. It can produce native binary files for the x86 (IA-32, x86-64) processor architecture. It supports the standard R7RS mostly. It is free and open-source software released under a GNU General Public License (GPL). It was first re...
Nice logo
Kord
JDA with a few extension functions is better imo
JDA always wins
Waiting for the perlin fix xD
JDA is bloated and confusing
It should pretty much be working as of what I have rn
๐ค
ups
i meant
Ohh, will fix it today if I remember
maybe. discord4j is kinda cool actually
JDA certainly is the most mature one but idk why you wouldn't use something with native coroutines support in a Kotlin project
Just fixed an issue with message queueing in that chat app I was working on and it started sending like 100-200 messages from forever ago while testing xD
lol
ok back to JNI, should i be using make to simplify the gcc commands?
getting pretty long already
scheme revisions are confusing
like I use The Revised Revised Revised Revised Revised Revised Report on the Algorithmic Language Scheme
aka The Revised6 Report on the Algorithmic Language Scheme
aka R6RS
like jesus
stop revising it
yes
i suggested that forever ago
interesting, a jni example i found uses something like this instead of loadLibrary
File sharedLibrary
= new File("net_sukharevd_jni_example_MatrixMultiplier.so");
System.load(sharedLibrary.getAbsolutePath());
what the actual fuck is that
listen for messages
just store made commands somewhere then check for them on ur message listener
The listener?
u don't register commands in jda
Looking for useful libraries/frameworks?
Here are some which have been deemed useful by the community and are used daily.
-> Menus: https://mf.mattstudios.me/mf-gui/gui
-> Commands: https://mf.mattstudios.me/mf/mf-1/getting-started
-> Messages: https://mf.mattstudios.me/message/mf-msg
This is fairly common for libraries. You ship the shared libs in the resources and then copy them to a temp file to add them
@obtuse gale https://github.com/ipsk/MattFrameworkJDA
Oh okay, wouldn't that break cross-platform though, as windows would expect a dll instead of a so?
Yeah, that's where the hack to determine file ending comes in, I just remembered
ok that makes sense
There is a repo with a single class that does that
i'll try get loadLibrary working for now - i think the error is in the cpp file somewhere
Starred it a while ago
tf is this
Discord stages
Discord released a new feature called stages which is an audio room where you can selectively pick who can talk...
https://dogehouse.tv/
https://github.com/benawad/dogehouse
#benawad #dogehouse #dogememo
Checkout my side projects:
If you're into cooking: https://www.mysaffronapp.com/
Join the Discord: https://discord.gg/Vehs99V
...
hmm this is new
Lonely invitee
๐ฅฒ
ok it's definitely a JNI issue, tried with System.load and i get the same UnsatisfiedLinkError
try changeing the directory name ig
istg if that's the issue
Can you send a zip/tar of the files?
how do i open 7z lol
please some common format
i just used file manager to do it ๐ฅฒ
i can never remember the zip or tar syntax
ok try this
you'll need $GHC_HOME set to wherever you have GHC installed for HsFFI.h
all right
yeah he's my boss
Tell him I said hi
@Nullable
public static SingleTickProfiler createTickProfiler(String name) {
return null;
}
```I think I've found the most useless method in Minecraft
oh well dunno how I missed that
https://paste.helpch.at/ufipiqipab.java what the actual fuck Minecraft
java: symbol lookup error: /home/alex/Desktop/Workspace/temp/Haskell/InteropJNI/JNI/Library.so: undefined symbol: add so this is the new error
Calc_stub.h defines extern HsInt add(HsInt a1, HsInt a2);
but return add(a, b); doesn't work
I'm a professional I know
smh
ok i think i might be onto something here
i ended up compiling the c file alongside the hs file with ghc (which seems to support similar commands to gcc), and im now getting this as an error ```
Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/alex/Desktop/Workspace/temp/Haskell/InteropJNI/Haskell/libcalc.so: /home/alex/.ghcup/ghc/9.0.1/lib/ghc-9.0.1/ghc-prim-0.7.0/libHSghc-prim-0.7.0-ghc9.0.1.so: undefined symbol: stg_gc_unpt_r1
tf
I'm such an artist
This will be 30$ @jovial warren. YW
hduaisdjksad intellij is so annoyinggg
every day i always have to invalidate cache & restart because it gives a billion false errors
sounds like a you problem
Earth isn't even real dumbass
Nah man, earth is obviously flat
ah shit my bad
same timezones everywhere
