#dev-general

1 messages · Page 403 of 1

old wyvern
#

This is all fake

onyx loom
#

how could we have got it wrong all this time 🙄

hot hull
#

boutta throw you of the edge Kali

onyx loom
#

off the edge because earth isnt round yes 🌚

prisma wave
#

OMG

#

i got it working

onyx loom
#

java <> haskell?

prisma wave
#

yes

onyx loom
#

pog

#

lets see

prisma wave
#

coolest thing ever

stuck harbor
#

'cool'

prisma wave
#

weve got a haskell function add x y = x + y that's exported to a C function

#
JNIEXPORT jint JNICALL Java_Library_addHs(JNIEnv *env, jclass clazz, jint a,
                                          jint b) {
  return add(a, b);
}
``` and then a jni function that implements addHs and calls add
#

incredible

#

way too much work considering

#

but still

#

now the next step is obvious

#

make a plugin in haskell

onyx loom
#

🌚

jovial warren
#

// This is approximately 25.32 ticks per second. It should be 20 ticks per second

#
---- Krypton Profiler Results ----
                // Now with less numbers
                
                Minecraft version: 1.16.5
                Krypton version: 0.17.3
                Time span: 16154 ms
                Tick span: 409 ticks
                // This is approximately 25.32 ticks per second. It should be 20 ticks per second
                
                --- BEGIN PROFILE DUMP ---

[00]root(409/1) - 100.00%/100.00%
[[ EXCEPTION java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0 ]][00]unspecified(409/1) - 16.53%/16.53%
[00]tick start event(409/1) - 1.03%/1.03%
[[ EXCEPTION java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0 ]][00]tick end event(409/1) - 0.47%/0.47%
[[ EXCEPTION java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0 ]][00]tallying(409/1) - 0.38%/0.38%
[[ EXCEPTION java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0 ]]--- END PROFILE DUMP --
```now that is what you call profile results
onyx loom
#

25TPS :pog:

jovial warren
#

ffs why are Krypton's results so unpredictable

#

always

hot hull
#

because

#

krypton cursed_fingerguns

jovial warren
#

sometimes watchdog kills it for no reason, sometimes the profiler doesn't work, nothing seems to happen consistently

hot hull
#

probs cause you using kotlin

jovial warren
hot hull
#

Please do

half harness
#

how do i fix intellij not recognizing imports ;-;

#

nvm i just went into the class that the import didn't work in and it fixed

#

:p

ocean quartz
hot hull
#

'twas a joke

#

Ori writes such supreme code in kotlin it makes me wanna neck

old wyvern
#

Kotlin bad

#

Haskell good

jovial warren
#

the problem with Krypton isn't that things are broken

#

the problem is that they're only broken some of the time

ocean quartz
#

Kotlin good!
Haskell good!

quiet depot
ocean quartz
#

Also @hot hull i made a project on GitHub for TriumphChat, if you wanna add anything to it just open an issue

jovial warren
#

or at least, Krypton plays dice with the JVM

quiet depot
#

einstein said no 😦

quiet depot
#

is trumpetchat java

hot hull
#

kotlin

quiet depot
#

shame

jovial warren
#
JNIEXPORT jlong JNICALL Java_dev_bombardy_testing_NativeUtils_sum(JNIEnv* env, jclass clazz, jint number) {
    return number * (number - 1);
}
#

that's about as far as I've got with JNI so far lol

quiet depot
#

what if number is 1

#

oh

#

nvm

#

im cannot reads

jovial warren
#

wait maybe you have a point

prisma wave
jovial warren
#

since 1 * 0 = 0

ocean quartz
prisma wave
#

true java<>haskell interop

quiet depot
#

trumbonechat

ocean quartz
#

Better

prisma wave
#

why not

jovial warren
#

Haskell = native, Java = JVM

prisma wave
#

it's gonna get even more cursed soon

#

im gonna try and write a plugin in haskell

#

or as much as possible

quiet depot
#

didn't johnny do that

jovial warren
#

jesus

quiet depot
#

no wait that was clojure

old wyvern
#

JVM = native

#

Beat it dipshit

prisma wave
quiet depot
#

why

old wyvern
#

🥲

jovial warren
#

JVM = VM that runs natively

old wyvern
#

Yea

prisma wave
#

cuz it compiles to jvm bytecode

jovial warren
#

I guess the code is still run natively

old wyvern
#

JVM runs natively 🙂

prisma wave
#

and has actually supported interop

old wyvern
#

xD

quiet depot
#

g

jovial warren
#

JIT turns bytecode into native code

prisma wave
#

g

onyx loom
#

a true genius

#

g

jovial warren
#

g

quiet depot
#

my g

old wyvern
#

Let me introduce you to the fuck that is the android runtime

#

aoh

quiet depot
#

ur like

jovial warren
quiet depot
#

wot dis

#

dis is

#

wot u need

#

boi

old wyvern
#

Thats dead piggy

prisma wave
#

yeah its abandoned i think

quiet depot
#

g

#

G

prisma wave
#

h

quiet depot
#

it got github

#

git on the hub

#

and fix it

#

fuck me sideways that's a fat repo

#

have fun with that

jovial warren
#

piggy are you okay

quiet depot
#

no'nt

half harness
#

bm

quiet depot
#

writing a guide on hotswapping

#

because my previous guide is old

#

and outdated

half harness
#

but it works sorta

quiet depot
#

and people keep asking for help

#

don't like people asking for help

prisma wave
half harness
prisma wave
half harness
quiet depot
#

what

#

where the fuck

half harness
#

wat

quiet depot
#

does it really use maven?

prisma wave
#

i think so

half harness
#

lol

ocean quartz
#

Actually Piggy was just looking at it yesterday and unfortunately it has some funky issues with Kotlin

quiet depot
#

nah g

half harness
prisma wave
old wyvern
#

Oh btw matt, we hit 4 stars

quiet depot
#

it shows it for gradle & maven

#

matt i'll look into it

old wyvern
#

2 of which are absolute strangers

quiet depot
#

i haven't done kotlin hotswap at all

prisma wave
#

oh nvm

quiet depot
#

new guide won't have maven at all

#

fuck maven

half harness
prisma wave
#

yes

half harness
#

since ghc isn't a valid cmd

ocean quartz
#

Oh shit really?
That reminds me i need to work on that task :weary:

half harness
#

ok

quiet depot
#

man I hate maven more than nearly anything honestly

old wyvern
quiet depot
#

hate maven more than skript

old wyvern
#

oh fuck

#

I broke the message queue again

#

🥲

quiet depot
#

@cinder flare I think my camera might just be fucked

#

it seems that it just can't record 1920x1080 @ 30fps

half harness
#

haskell = scripting language?

quiet depot
#

is that hard to do or something?

old wyvern
quiet depot
#

I tried plugging it into my pc & running thru vlc

#

still bad frames

prisma wave
half harness
old wyvern
#

Forever queued messages

half harness
#

haskell = freeze sublime

ocean quartz
quiet depot
#

are you relocating kotlin

ocean quartz
#

Yeah

quiet depot
#

don't

#

you can't relocate & hotswap at the same time

old wyvern
#

Unless ofc

quiet depot
#

only add the relocations when you're releasing the plugin or something

ocean quartz
#

Oh interesting let me try again

old wyvern
#

slimJar

half harness
#

what is module Main where??

quiet depot
#

don't see slimjar fixing that issue

old wyvern
#

🥲

prisma wave
#

modules

#

kinda like packages

#

you can probably remove that line

half harness
#

ok

#

do i have to put something in where

prisma wave
#

no

#

the where is everything else

half harness
#

and is my code correct?

old wyvern
prisma wave
#

yes

half harness
#

🥳

prisma wave
#

it's quite hard to mess a hello world up lol

quiet depot
#

didn't know slimjar was at runtime

#

I thought it was ran at compile

half harness
#

hey it said hi back to me

onyx loom
old wyvern
#

It just generates some config files at compile

prisma wave
#

it should generate a file called HelloWorld or HelloWorld.exe

quiet depot
#

and no, running relocations at runtime still wouldn't fix the issue, unless you also have a hotswapagent hook

prisma wave
#

.hi is kinda like the equivalent of .class

half harness
prisma wave
#

yes

old wyvern
prisma wave
#

but they'll regen every time you build so

half harness
#

oh

quiet depot
#

also running relocations at runtime in general is a bad idea because that allows for definition conflicts to happen in the time between the plugin being loaded, and your slimjar shit running

#

and if a conflict can happen

#

it WILL happen in that time

half harness
#

um

quiet depot
#

that's a 100% guarantee (iirc, so maybe like 50% in reality)

half harness
#

how do i test my hello world

prisma wave
#

run it?

half harness
#

i hvae the exe

#

i did

#

oh wait

prisma wave
#

yes

#

lol

prisma wave
#

open command prompt

half harness
#

ok

prisma wave
#

.\HelloWorld.exe

quiet depot
#

how does slimJar work?

half harness
#

yay it worked

prisma wave
#

yay

half harness
silk kite
old wyvern
half harness
#

ok i made a 30 line program

prisma wave
#

what is it

half harness
#

nevermind

#

compileation errors

prisma wave
#

🥲

quiet depot
#

ah

old wyvern
#

Also I was actually asking what you meant as being the issue piggy? I did not understand what confict you meant

quiet depot
#

ok

#

two ploogins having the same class

#

in the same package

old wyvern
#

It would already be relocated by the time its loaded tho?

quiet depot
#

but I'm not sure how that slimjar method would effect it

#

no

#

maybe

old wyvern
#

wha xD

quiet depot
#

it depends

old wyvern
#

It shouldnt

ocean quartz
#

Oh I don't think that'd be an issue because the plugin classes would relocate at compile time and the libs at runtime (right Yugi?)

old wyvern
#

yea

quiet depot
#

why would plugin classes need to be relocated?

prisma wave
#

can someone send the spigot gradle stuff rq

old wyvern
#

he means the references

ocean quartz
#

The imports

prisma wave
#

i cba to google

half harness
#

why isn't my image uploading

#

uiahsdsahd

prisma wave
#

😦

half harness
#

oh

#

my internet

#

finally

half harness
prisma wave
#

wow?

#

wait

#

are all of the 30 lines just the same thing over and over 🥲

prisma wave
#

lmao

old wyvern
#

as an alternative, slimjar also provides an isolated classloader option so you wont need relocations there

quiet depot
#

actually I'm not going to bother logically going through this when it can easily be experimentally tested

#

and I can't be bothered to test it either so ima just believe you

old wyvern
#

lol

#

Ill test it once its complete and let you know

quiet depot
#

thanks lol

half harness
#

is there a way to run hs files without compiling?

quiet depot
#

wait

#

are you making this?

prisma wave
old wyvern
#

Yes

quiet depot
#

I thought slimJar was a gradle plugin or something

old wyvern
#

me and Matt

quiet depot
#

lol

old wyvern
#

it includes a gradle plugin

quiet depot
#

yikes ok

half harness
quiet depot
#

I was making a load of assumptions thinking it's some public plugin

#

didn't realise you guys were making it

#

that changes everything

old wyvern
#

lol

prisma wave
#

not really dkim, you could just do something like ```
ghc file.hs && ./file

half harness
#

pog it worked

prisma wave
#

idk what the batch equivalent would be

prisma wave
quiet depot
#

file.exe

#

instead of ./file

half harness
quiet depot
#

ig

half harness
prisma wave
#

lol

prisma wave
quiet depot
#

more than me dkim

#

I know nothing about haskell

#

I think && works on windows

prisma wave
#

ah maybe it does

half harness
#

i know about something more than piggy

prisma wave
#

wrong emoji

quiet depot
#

you know lots more than me

prisma wave
#

😎

quiet depot
#

you're always on about minecraft shit

#

like "ping spoofing"

#

and "mlgrush"

half harness
#

lol

#

how do u know about ping spoof

quiet depot
#

i've got no fucking clue what that shit is

old wyvern
#

god speed time crunchring super cps bridging

half harness
#

pig spoof bad

prisma wave
#

so i found this in that eta repo 🤔

old wyvern
#

What

half harness
old wyvern
#

xD

prisma wave
#

not sure what they're doing with strs

quiet depot
#

string analysis

#

i'm sure

prisma wave
#

sure

#

but

#

🥲

quiet depot
#

definitely not nsfw

old wyvern
#

Wasnt there a post about this

prisma wave
#

abandoned

half harness
#

bm u should give me a task to do

#

in haskel

quiet depot
#

nah he was asking for an eta on how long it'll take his potato to compile his 5 line haskell

half harness
#

and see if i can do it

prisma wave
#

uh

#

how hard

half harness
#

im back to not knowing what to make

half harness
#

lol

quiet depot
#

make a turing machine

old wyvern
#

There

prisma wave
#

u want a specific project idea or just some challenges?

old wyvern
half harness
#

challenges 👀

old wyvern
#

make a lambda calculus interpretter

half harness
#

im too busy with making bedwars

old wyvern
#

state bad

half harness
#

to make a haskell project

prisma wave
#

lol

#

ok

old wyvern
prisma wave
#

first thing that comes to mind is "print something 5 times with recursion, no repeating yourself allowed"

half harness
old wyvern
#

Yes you can!

prisma wave
#

yes

half harness
#

wait

#

lemme try without google first

prisma wave
#

as long as you can explain the code you're allowed to copy paste too

half harness
#

although ill fail

old wyvern
#

bm

prisma wave
#

yea?

old wyvern
#

first channege should probably just be taking input 🙂

prisma wave
#

oh good point

old wyvern
#

IO OI IO IO IO IO String

prisma wave
#

🥲

old wyvern
#

I wonder if we can wrap an IO inside an IO

half harness
#

learnyouahaskell to the rescue

prisma wave
#

IO IO?

old wyvern
#

So an actual IO (IO String)

half harness
prisma wave
#

🙂

old wyvern
#

whats return getLine

#

is that even possible

half harness
#

bm gimme a few years :)

prisma wave
old wyvern
#

dkim

half harness
#

yea?

half harness
#

uh

prisma wave
#

ok first challenge is to take user input and print it actually

half harness
#

not loading

old wyvern
prisma wave
#

second challenge is to get user input as an int and double it

half harness
#

i tihnk i can do that without google

old wyvern
#

Sure

#

xD

half harness
old wyvern
#

Go for it

half harness
#

lol

old wyvern
#

dkim

#

Do the first one

half harness
#

ik

old wyvern
#

Then we'll talk

half harness
#

wait what

#

which is the first

#

ok first challenge is to take user input and print it actually
or recursion

old wyvern
#

take user input and print it

half harness
#

ok

old wyvern
#

Dont google

half harness
#

ok

#

🤢 im so used to intellij arrows

#

i forgot the name

prisma wave
#

font ligatures

half harness
#

ye

prisma wave
#

sublime definitely has an option for them

quiet depot
#

it does

prisma wave
#

@old wyvern

#

odd

half harness
#

f i got error

prisma wave
#

🥲

quiet depot
#

what font do u want

old wyvern
half harness
#

how do i do thissss haiusjndkasd

quiet depot
#

big vouch for fira code

#

i highly recommend fira code

prisma wave
half harness
#

jetbrains mono ftw

old wyvern
#

lmao

quiet depot
#

ugh

#

install jetbrains mono then

prisma wave
#

it should be installed already

old wyvern
#

try return $ putStrLn "Test"

prisma wave
#

i see why it doesnt do anything, but not why it compiles

quiet depot
#

its embedded in intellij obviously but idk if ij actually installs it

prisma wave
#

yeah again, compiles but does nothing

#

this might just be ghci actually

old wyvern
#

I guess IO a matches a with IO String

ocean quartz
old wyvern
#

Wait

prisma wave
#

i dont think in a normal file it would compile

old wyvern
#

But mains return type requires IO ()

#

Oh nvm

#

I think any type passes for unit

prisma wave
#

oh maybe

#

yeah tested with an actual file and it definitely compiles

#

for some reason

old wyvern
#

Does the print one actually print

prisma wave
#

no

old wyvern
#

lmao

#

Truely pure code

prisma wave
#

lmao

old wyvern
#

Useless, as all things should be

prisma wave
#

simon wasn't lying

old wyvern
#

🥲

ocean quartz
#

Also how is "Fira" supposed to be pronounced? Fi like in Fire or would it be like Fee-ra thonking

prisma wave
#

yeah i have no idea why that works

#

or doesn't work

quiet depot
#

im a fee ra guy

ocean quartz
#

That's how i say it too

prisma wave
#

fear-ruh

hot hull
#

Fi - Ra

prisma wave
#

@old wyvern it doesnt compile if you explicitly specify the type signature of main

old wyvern
#

ahh

#

so any IO type works for the main function

#

interesting

prisma wave
#

i dont think the main function is special actually

old wyvern
#

The course I had mentioned specifically IO () for some reason

prisma wave
#

it has to be IO () afaik

#

oh or not

old wyvern
#

But then main = putStrLn "Test" shouldnt work

prisma wave
#

putStrLn returns IO () lol

#

interestingly hs main :: IO () main = readLn works but ```hs
main :: IO ()
main = return ""

#

and by "works" i mean takes input and then throws an exception

quiet depot
#

@half harness once you install fira code

#

"font_face": "Fira Code",

#

in sublime settings

old wyvern
#

😮

stuck harbor
#

sublime

#

mmmm

quiet depot
#

ligatures don't need explicit enabling iirc

stuck harbor
#

help there are so many lisp languages

quiet depot
#

yes

prisma wave
#

there's like 4 commonly used ones

stuck harbor
#

I thought lisp was a small subcategory of programming language

prisma wave
#

maybe 5

stuck harbor
#

well bm

#

is scheme one of those?

quiet depot
#

lisp itself is a language right?

#

then you've got lisp dialects

prisma wave
#

yeah

quiet depot
#

like clojure

prisma wave
#

just very old

quiet depot
#

and haskell

old wyvern
#

Closure

prisma wave
#

haskell thonk

quiet depot
#

is haskell not a lisp?

prisma wave
#

no

quiet depot
#

oh

old wyvern
#

Well no

#

But

stuck harbor
#

scheme has a billion dialects

old wyvern
#

but

prisma wave
#

oh

#

weird

old wyvern
#

It could get close

prisma wave
#

yeah lol

quiet depot
#

my bad

stuck harbor
#

chez scheme is my fav

quiet depot
#

fixed

stuck harbor
#

there also MIT scheme

prisma wave
#

there's nothing stopping you putting parentheses everywhere lol

stuck harbor
#

chicken scheme

#

ur mum scheme

prisma wave
#

i was thinking:

  1. common lisp
  2. scheme
  3. racket
  4. clojure
  5. emacs lisp ?
stuck harbor
#

emacs lisp yeah

prisma wave
#

no idea if people still use that

old wyvern
#

this is valid haskell
masin = (putStrLn (show (map (\x -> "HelloWorld") [1..10])))

stuck harbor
#

well I use it for emacs config

quiet depot
#

iwanio you're like the only person I know of who uses emacs

#

why

#

just why

stuck harbor
#

its good

prisma wave
#
(print "Hello World")
``` clojure and haskell
prisma wave
old wyvern
#

except in haskell that will print ""Hello World""

half harness
prisma wave
#

lmao

half harness
#

:c

prisma wave
lunar cypress
#

Haskell isn't anywhere close to a lisp

half harness
#

haskell is cursed

prisma wave
#

🥲

old wyvern
prisma wave
#

sounds like a you problem

lunar cypress
#

Ivory towers on display

prisma wave
#

lmao

half harness
#

i can't figure it out

prisma wave
#

what have u got so far

half harness
#
main = do
    putStrLn "user input:"
    putStrLn <- getLine
```this is what i have
#

i thought its <- getLine

prisma wave
#

<- is a little bit weird

#

you can't use it with everything, you have to give it a name

half harness
#

wdym

prisma wave
#

so ```hs
line <- getLine
putStrLn line

half harness
#

;-;

#

oh

prisma wave
#

alternatively if you want a 1 liner, getLine >>= putStrLn

half harness
#

uhh

#

ok

#

how do i enable font liguratures?

stuck harbor
#

dewit

quiet depot
#

they should be enabled by default

#

are you using fira?

half harness
half harness
#

idk how to

prisma wave
#

are you using jb mono

quiet depot
#

so did you even install a font?

half harness
stuck harbor
#

ffs

quiet depot
#

have you done anything I told you to

half harness
#

link?

prisma wave
#

lmao

quiet depot
#

google it

half harness
#

ok

stuck harbor
#

install jetbrains mono u fuckin' nerd

quiet depot
#

no

#

fira code

stuck harbor
#

no

prisma wave
#

either

stuck harbor
#

jetbrrrrraaaiiiiinnnnssss

quiet depot
#

yeah pretty sure they look identical lol

prisma wave
#

theyre very similar yeah

ocean quartz
#

Fira code is a little thicker

stuck harbor
#

I think u mean thiccer

quiet depot
#

ok guys

#

without googling

#

tell me which is which

#

I use fira on the daily and I can't even tell

stuck harbor
#

bottom is jetbrains

prisma wave
#

nah the top is jb i think

stuck harbor
#

100% committing to this

quiet depot
#

what if I told you

#

they're both fira

stuck harbor
#

oh my ffs

prisma wave
#

🥲

stuck harbor
#

I'm going to kill u

quiet depot
#

nah jk lol bottom is jb top is fira

stuck harbor
#

yeet

#

I have a good eye

#

aye

#

I

quiet depot
#

u believed it though

#

what happened to being 100% sure

stuck harbor
#

I was

#

I was... playing along||?||

quiet depot
#

k

#

annnywayy

#

dkim have you installed one yet?

prisma wave
#

x <- action runs the IO action, gets its result, and binds it to x
@half harness this is why you cant do putStrLn <- getLine. <- is sort of like making a variable with the result

half harness
#

ok

#

hm

prisma wave
#

bruh

stuck harbor
#

u mind bro

prisma wave
#

d;methods CompletableFuture

ruby craterBOT
#
Methods:
java.util.concurrent.CompletableFuture#isDone
java.util.concurrent.CompletableFuture#newIncompleteFuture
java.util.concurrent.CompletableFuture#join
java.util.concurrent.CompletableFuture#completedStage
java.util.concurrent.CompletableFuture#completeOnTimeout
java.util.concurrent.CompletableFuture#getNumberOfDependents
java.util.concurrent.CompletableFuture#toString
java.util.concurrent.CompletableFuture#obtrudeException
java.util.concurrent.CompletableFuture#completedFuture
java.util.concurrent.CompletableFuture#obtrudeValue
java.util.concurrent.CompletableFuture#toCompletableFuture
java.util.concurrent.CompletableFuture#CompletableFuture
java.util.concurrent.CompletableFuture#failedStage
java.util.concurrent.CompletableFuture#get
java.util.concurrent.CompletableFuture#orTimeout```
stuck harbor
#

u mind bri

prisma wave
#

?

#

no

quiet depot
#

what are you lookin gfor

prisma wave
#

whichever is the right method

#

<R> something(Function<T, CompletableFuture<R> other)

stuck harbor
#

for what

quiet depot
#

map?

stuck harbor
#

apparently not

prisma wave
#

huh

quiet depot
#

d;completablefuture#apply

ruby craterBOT
#
<U> CompletionStage<U> thenApply(Function fn)```
Description:

Returns a new CompletionStage that, when this stage completes normally, is executed with this stage's result as the argument to the supplied function.

This method is analogous to Optional.map and Stream.map.

See the CompletionStage documentation for rules covering exceptional completion.

Returns:

the new CompletionStage

Parameters:

fn - the function to use to compute the value of the returned CompletionStage

prisma wave
#

thenCompose I think

#

yeah thenCompose

hot hull
#

I'm really confused rn, this hikari dependency is coming from somewhere, but I can not find where from,

quiet depot
#

show gradle

#

also run gradle clean before showing

#

also stop compiling intellij/jetbrains annotations

hot hull
#

why not jetbrains lol?

quiet depot
#

they're only used at compile time

#

they're not needed at runtime

half harness
quiet depot
#

therefore they should be compileOnly

prisma wave
#

cursed

half harness
#

whats the font u use? fira something something

quiet depot
#

fira code

half harness
#

i forgot

prisma wave
#

ok so remember i said the IO monad is sort of like CompletableFuture? >>= and <- are quite similar to thenCompose

half harness
#

much better

prisma wave
#

so hs do a <- getLine putStrLn a is just syntax sugar for ```hs
getLine >>= (\a -> putStrLn a)

quiet depot
#

what theme is that dkim

#

imagine not using material theme smh

half harness
half harness
quiet depot
#

theme

#

not font

half harness
#

oh

#

uhh

#

1 sec

#

intellij being annoying again

quiet depot
#

is that intellij?

#

I thought it was sublime

half harness
#

noo

#

yea

#

sublime

#

i think

quiet depot
#

o

half harness
#

idk how to get custom themes

#

and this seems nice

quiet depot
#

through package control

prisma wave
#

in java terms that's ```java
getLine().thenCompose(a -> putStrLn(a));

half harness
#

oh

prisma wave
#

so a is the name of the "lambda parameter", which is why you can't pass it to a function

quiet depot
#

material theme dkim

prisma wave
#

and because we've got \a -> putStrLn a we can just simplify it to putStrLn, hence getLine >>= putStrLn

half harness
#

wha

#

how do u have the file thing

#

on the left

quiet depot
#

easiest way is to just drag a folder into sublime

half harness
#

and why r u coding java in sublime

quiet depot
#

I'm not

#

I just opened it up to demo the theme

half harness
#

oh

#

how do i fix this

quiet depot
#

configure kotlin

half harness
#

i did

prisma wave
#

configure kotlin

hot hull
#

Piggy, it's not in my gradle, and none of the other dependencies shade it

quiet depot
#

did you clean gradle?

hot hull
#

Yes

quiet depot
#

is it open source?

hot hull
#

No

half harness
#

intellij is so annoying 😫

quiet depot
#

wanna send it to me anyway?

half harness
#

even eclipse doesn't do this

onyx loom
hot hull
#

Don't think I'm allowed

half harness
#

doing first rn

prisma wave
#

bro why is it that whenever i use kotlin dsl i find guides that only use groovy dsl

half harness
prisma wave
#

yeah but most guides have it nowadays

quiet depot
#

who keeps doing docdex thing

#

and why

prisma wave
#

me

old wyvern
#

which?

prisma wave
#

looking up bukkit packages

old wyvern
#

oh

static zealot
#

BBG when am I getting paid?

#

I didn't make this piece of art for free ... smh

jovial warren
#

also, I just found out that I can tell IJ to format with at minimum a single blank line between the class declaration and the first thing

#

e.g. ```kotlin
class MyClass {

private val x = 0

}

#

I have a very strange coding style

static zealot
#

yes you do

onyx loom
#

i do same

jovial warren
#

every function must be separated by a blank line unless it's an override function that does nothing (e.g. ```kotlin
override fun foo() = Unit
override fun bar() = Unit

onyx loom
#

i do same

jovial warren
#

all stuff must use 4 space indentation

onyx loom
#

even with overrides

jovial warren
#

yeah it depends on the day with that one lol

#

there must be at least one blank line between property declarations and function declarations

#

e.g. ```kotlin
class MyClass {

private val foo = 0

fun bar() = foo

}

humble silo
#

You dont do everything on the same line?

#

smh

jovial warren
#

expression functions should be preferred anywhere you have a single statement you can fit within your set character limit

winter iron
#

all my classess are 1 liners

jovial warren
#

that's the weird one

winter iron
#

to save space

onyx loom
humble silo
#
package net.yakclient.mixin.internal.methodadapter;import org.jetbrains.annotations.NotNull;public class PriorityMatcher<T extends MixinPatternMatcher> implements Comparable<PriorityMatcher<?>> {private final int priority;private final T pm;public PriorityMatcher(int priority, T pm) {this.priority = priority;this.pm = pm;}@Overridepublic int compareTo(@NotNull PriorityMatcher<?> o) { return this.priority - o.priority;}public T get() {return pm;}}
winter iron
#

increases speed

jovial warren
#

lemme show you an example of a terribly terrible extension function I wrote

#
private fun buildRawArgumentsLiteral(
    alias: String,
    brigadierCommand: com.mojang.brigadier.Command<Sender>,
    suggestionProvider: SuggestionProvider<Sender>
) = literal<Sender>(alias.toLowerCase(Locale.ENGLISH))
    .then(argument<Sender, String>("arguments", greedyString())
        .suggests(suggestionProvider)
        .executes(brigadierCommand))
    .executes(brigadierCommand)
    .build()
#

that's an example of my coding style lol

#
private fun LiteralCommandNode<Sender>.buildRedirect(alias: String) =
    literal<Sender>(alias.toLowerCase(Locale.ENGLISH))
        .requires(requirement)
        .forward(redirect, redirectModifier, isFork)
        .executes(command)
        .apply { children.forEach { then(it) } }
        .build()
```and again
jovial warren
#

also, my "grouping" of properties makes 0 sense

#

also, I've recently taken up the style of ```kotlin
private var foo = 0; private set

#

BM I swear if you say one thing about mutability

old wyvern
#

STATE BAD

prisma wave
#

"im not like other programmers🥺 💫 "

prisma wave
jovial warren
# old wyvern STATE BAD

at the low level, you know your "fancy Haskell functional programming" turns into the same state and behaviour system and imperative logic as any other language right?

old wyvern
#

You dont care about the low level

#

Thats the point of abstraction

prisma wave
#

at the low level, you know your "fancy kotlin null safety" turns into the same pointers as any other language right?

jovial warren
#

also, void brister(mitten); that's not even correct syntax, let alone it being some sort of C or C-like syntax (cough Java cough)

obtuse gale
#

It is correct

old wyvern
#

at the low level, you're executing electronic signals, you know that right?

prisma wave
#

it is valid C

jovial warren
#

there is no way that's valid C

old wyvern
#

It is

obtuse gale
#

mitten is a struct somewhere else

jovial warren
#

what's the name of the argument then?

prisma wave
#

there isnt one

old wyvern
#

mitten becomes void type I think

prisma wave
#

it's a definition

obtuse gale
#

Doesn't matter, the function declaration doesn't need param names

old wyvern
#

There was a medium article about this

jovial warren
#

what does that mean?

prisma wave
#

it would be valid in a header file

obtuse gale
#

Means mitten is not a type

#

Make mitten a struct

jovial warren
#

yeah I did

#

ik the issue

#
void brister(mitten) {
    return;
}
```must be in the definition
old wyvern
#

Remove the body

jovial warren
#

not allowed Yugi

obtuse gale
#

???

old wyvern
#

huh?

prisma wave
#

?

obtuse gale
#

Function declarations and definitions are two different things

jovial warren
#

void brister(mitten); this throws an error

#

and yes, mitten is a struct

obtuse gale
#

Show the whole code

jovial warren
#
#include <stdio.h>
#include <math.h>

struct mitten {
    char* brister;
    char* mitten;
};

void brister(mitten);

int main() {
    return 0;
}
prisma wave
jovial warren
#

what

old wyvern
#

write an implementation as well maybe?

jovial warren
#

those includes are remnants of the code that was once here

old wyvern
#
#include <stdio.h>
#include <math.h>

struct mitten {
    char* brister;
    char* mitten;
};

void brister(mitten);

int main() {
    return 0;
}

void brister(mitten m) {}
#

try that

obtuse gale
#

I think you need to specify struct mitten or use typedef somewhere in the struct definition idk

jovial warren
#

also, BM's right

#

it works in a header file

half harness
#

is it bad having a class 600 lines long?

onyx loom
#

probably

#

depends

half harness
#

and a third of it being an enum

humble silo
half harness
#

lol

#

ok, gotta listen to notch :)

humble silo
#

def

prisma wave
#

this works fine

#

the main method was only to stop gcc from complaining

half harness
#

chestly

old wyvern
#

Wouldnt you need the typedef like fefo mentioned?

prisma wave
#

apparently not

humble silo
#

dkim19375

half harness
prisma wave
#

i dont think you need to write struct in a signature

old wyvern
#

Try removing the struct definition bm

humble silo
old wyvern
#

Does it compile after that?

half harness
#

🥺

humble silo
#

:pleading: you mean

#

what

half harness
#

uh

humble silo
#

🥺

half harness
#

mc

#

antiac

humble silo
#

ah

#

Have you learned to reduce yet?

#

lol

half harness
#

not really

prisma wave
#

somehow

half harness
#

whats ur cps?

#

i get about 14

stuck harbor
#

haha cps

half harness
#

also ur ign

jovial warren
prisma wave
#

throws a warning though

#

gcc?

jovial warren
#

I'm using CLion

#

CLion complains about it

prisma wave
#

definitely compiles

old wyvern
#

that isnt a type

#

Thats the name

prisma wave
#

aah

half harness
#

um

old wyvern
#

Which is what I initially said

half harness
#

@humble silo

#

whats ur ign

prisma wave
#

makes sense

old wyvern
#

xD

jovial warren
#

wait what

humble silo
#

one second

#

MC takes a min

half harness
#

alr

stuck harbor
#

i totally dont have a CPS of 6

#

nope

humble silo
#

lol

stuck harbor
#

not at all

half harness
#

lol

humble silo
#

imagine not getting above 50

stuck harbor
#

sh

half harness
#

what-

jovial warren
#

dkim gonna get clapped

#

lol

half harness
#

50 = 0 kb

#

15 = a lot of kb

jovial warren
#

okay what

#

50 CPS is impossible

humble silo
#

@half harness im in

half harness
jovial warren
#

literally impossible for human fingers to click that fast

half harness
#

some kind of error

#

idk

jovial warren
#

what language dis

half harness
#

german ofc

humble silo
#

German

hot hull
#

German?

humble silo
#

lol

old wyvern
hot hull
#

lol

humble silo
#

whats your ign

jovial warren
humble silo
#

ill try

jovial warren
#

do they differ?

half harness
#

dkim19375

old wyvern
#

Or a different version rather

#

The name only declaration is not allowed in newer compilers

#

Like vlas

half harness
#

i assume it worked?

jovial warren
#

nah CMake is using GCC

half harness
#

is there party chat @humble silo

prisma wave
#

progress

old wyvern
#

Try testing yourself with gcc

jovial warren
#

man I really need to understand how this works

old wyvern
#

without clion

humble silo
#

@half harness no idea, was just trying to find it

half harness
#

/pc

prisma wave
#

now i forgot how to link it lol

jovial warren
half harness
#

also r u in na region?

prisma wave
old wyvern
#

^^^

jovial warren
prisma wave
#

it's actually blessed

jovial warren
#

where's the code that powers this?

onyx loom
#

whats with the 2

obtuse gale
jovial warren
#

-_-

prisma wave
prisma wave
onyx loom
jovial warren
#

no way

prisma wave
#

it's a combination of all 3

jovial warren
#

that literally has 0 code in it

prisma wave
#

wot

#

?

stuck harbor
#

ur mum

jovial warren
#

surely there's more than that

prisma wave
#

there is definitely code in there

stuck harbor
#

u have no code in there

prisma wave
#

there is some

#

not much

#

the hardest bit was figuring out how to link all of the binaries together

half harness
#

@humble silo accept f and p request ;-;

humble silo
#

ya its not letting me click it

#

one second

half harness
#

/f accept dkim19375i think

#

same with p

prisma wave
#

oh god

half harness
#

eyy we're both vip

stuck harbor
#

no u

half harness
#

huh?

stuck harbor
#

i said ewwww

#

ew

prisma wave
#

ive got to copy the entire JNIEnv struct into a haskell data structure and make sure the bytes align properly

half harness
#

whats ew?

stuck harbor
#

cause factions are ew

prisma wave
#

actually nvm no i dont

half harness
#

we're doing duels

stuck harbor
#

but u did /f

#

thats factions, no?

onyx loom
#

friend

#

hypixel

#

🌚

stuck harbor
#

ffs don't steal faction's command

#

hypickle can go fuck itself

onyx loom
#

i agree

stuck harbor
#

guess who is installing racket (the lisp)?

old wyvern
#

Haskell should probably just return the changes to be made

#

purity

#

Also

#

Smack is showing its wonders again

prisma wave
#

hmm maybe

#

i want to try and actually do something

old wyvern
#

OfflineMessageManager#getMessages() Guess what this does?

prisma wave
#

gets the messages

hot hull
#

Get's the messages

old wyvern
#

False

prisma wave
#

classic

#

i guess it's easier to do most of the work in C and just import the functions

old wyvern
#

It returns an empty list, and you receive the messages in the normal message stream

#

Such an amazing library

prisma wave
#

🥶

old wyvern
#

As much as Id sit down for a week fixing this shit coz that would make my job of using this much easier, The guy who maintains this is too much work

forest pecan
#

Yugi ur purple gross

old wyvern
#

I had to reiterate my PR like 5-8 times last time

#

And that was a minor change

forest pecan
#

go bac to blue :(

onyx loom
forest pecan
old wyvern
forest pecan
#

@obtuse gale ahm

#

if u think im gross.. lmao

obtuse gale
#

@forest pecan i luv u uwu

forest pecan
#

😓

obtuse gale
#

sweat

gusty glen
#

I know paper is a fork of spigot, and it's much better overall, but how about sponge, where do sponge belongs in this bukkit -> spigot -> paper fork battle, and how good is its performance?

obtuse gale
#

It doesn't

#

Sponge is an entirely different mod loader

#

Sponge mods are pretty much "plugin-like" more than "mods", SpongeVanilla is a mod loader over the vanilla jar and SpongeForge is a mod loader that runs as a Forge mod

old wyvern
#

Bukkit Holds Water, Sponge absorbs it

forest pecan
#

Spigot pours water into Bukkit. Sponge then absorbs it. Then you squeeze the Sponge onto Fabric using a Waterfall and wipe the Forge. Finally, you use the Forge to make a TacoSpigot.

obtuse gale
#

I'm hungry

distant sun
old wyvern
#

Seems contrary

distant sun
#

Imagine providing cool utils like sponge does

obtuse gale
#

It's a joke Gaby

distant sun
#

Im surprised bukkit even has that thing for maps

obtuse gale
#

BEcause sponges suck...

distant sun
#

I know, just saying xd

humble silo
old wyvern
#

sad bardy noises

forest pecan
#

realms is romodel

distant sun
#

🤢

oak raft
#

This guy’s good

#

Not as good as bm though fingerguns

forest pecan
#

you just realized that?

#

you know he is the 1st place winner of the IOI

#

right

#

IOI is a national computer science competition where you represent your country

#

lmao

oak raft
#

He’s been showing up on my feed recently

#

What country does he represent