#๐Ÿช…-progaming

1 messages ยท Page 133 of 1

pearl parrot
#
new Error().stack
Error
    at eval (eval at execute (:309:182), <anonymous>:1:1)
    at eval (<anonymous>)
    at Object.execute (file:///VencordDesktopRenderer:309:182)
    at Object.AT (file:///VencordDesktopRenderer:57:54)
    at F (file:///WebpackModule545152:2:4406)
    at async handleSendMessage (file:///WebpackModule698718:2:6163)


#

dumb

#

satana lways needing a niche deno function

pearl parrot
#

๐Ÿ‘บ

jade stone
#

@rugged berry

#
function errorHelperWithCapture(msg: string): never {
    const err = new Error(msg);

    Error.captureStackTrace(err, errorHelperWithCapture);
    throw err;
}
function errorHelperWithoutCapture(msg: string): never {
    const err = new Error(msg);

    throw err;
}
function foo(f) {
    bar(f);
}
function bar(f) {
    f("bar!");
}
function main(f) {
    foo(f);
}
console.log("With Capture Stack Trace");
console.log("==================");
try {
    main(errorHelperWithCapture);
} catch (e) {
    console.error(e);
}
console.log("==================");
console.log("WithoutCapture Stack Trace");
console.log("==================");
try {
    main(errorHelperWithoutCapture);
} catch (e) {
    console.error(e);
}
console.log("==================");
#

@pearl parrot

pearl parrot
#

oh

#

icic

deep mulch
#

@jade stone

jade stone
deep mulch
jade stone
#

i need return expressions tho

deep mulch
#

2089 slopscript will have borrow checking and every other feature ever thought of

#

thousands of keywords

jade stone
#
function addOne(a: {b?: bumber}): number | null {
  const c = a.b ?? return null;
  return c + 1;
}
#

i want to write code like that

deep mulch
#

I thought you could already do that

jade stone
#

no

#

you're thinking of kotlin

#

i want to avoid code like this

supple whale
winged mantle
# jade stone

but then you might also be able to write if (return) (at least rust allows it)

#

(it looks very wrong but since it shortcircuits i believe it is valid)

#

(and it is very insane keep this away from js the most sane language)

jade stone
solid gazelle
#

set a conditional breakpoint inside a function like (return true, 0) and now it always returns true and doesn't break cus 0 is falsy

pearl stagBOT
#

lifecycle.ts: Lines 49-53

export class GCBasedDisposableTracker implements IDisposableTracker {

    private readonly _registry = new FinalizationRegistry<string>(heldValue => {
        console.warn(`[LEAKED DISPOSABLE] ${heldValue}`);
    });
supple whale
#

yeah i do too for my IPC channels

#

if there are no more refs to the IPC channel on either end, it send a "finalize and close" request, and then closes the channel

deep mulch
#

I thought typescript could already do that

jade stone
#

oh

#

i love windows file paths i love windows file paths

deep mulch
#

@jade stone loves backslashes

#

@jade stone you love uefi bios using backslashes

median root
#

Just out of curiosity, is it possible for SIMD instructions to be carried out in a certain section in memory instead of in the dedicated registers?

#

and is it worth it?

tired vigil
placid igloo
woven mesa
#

gm

jade stone
#

command id: workbench.action.showAllSymbols

supple whale
#

wrong target audience

#

for this kind of "how do assembly extensions work"

median root
#

๐Ÿ˜”I got no one else who might be able to reliably tell me bro

#

ig ill go track down a 2001 reddit post

median root
#

Turns out the rabbit hole goes quite deep

#

Its almost never done in-memory directly because its simply too slow to do it from RAM (takes too many cycles) BUT a newer thing is starting to go round with processing in or near memory

#

and now its going to turn into a 4 hour research session

median root
dense sand
median root
#

oh is it an unofficial?

dense sand
#

i guess?

solid gazelle
#

aa55h

dense sand
#

hai

jade stone
#

@supple whale love how typescript can infer this

supple whale
#

logical operation infer was there long before is

#

XD

supple whale
#

@jade stone love how typescript cant infer this

jade stone
#

@supple whale love how typescript can infer this

ornate quiver
median root
ornate quiver
#

like unaligned simd loads?

median root
#

surely the padding prevents this entirely

#

unless you decide to do raw assembly

ornate quiver
#

you can load data from any section of memory into a simd register
the compiler intrinsics for it don't enforce the target memory address to be aligned by design

#

there is a performance penalty for it of course

jade stone
#

Actually wait, it wouldn't make sense that deno wouldn't support it?

#

Doesn't deno just use V8

median root
#

since I think the way x86 loads data straight from memory uses some kind of buffer system thing

jade stone
#

File a bug with baseline trolley

ornate quiver
median root
ornate quiver
#

huh

median root
#

Apparently the CPU loads data in from memory and it goes in through a buffer queue system thingy

#

and it ends up in a register or cache or some other CPU unit

#

and from my understanding, by definition it means it should support unaligned loads properly

#

I think ARM and other RISC sets are a lot more fragile when it comes to that but again im not sure how they do ti

hollow patio
#

nooooo venniebwaah

pseudo sierra
hollow patio
delicate groveBOT
#

@jade stone, <t:1770671506:R>: replace unloaded elements with an empty div so the scrollbar actually means something

jade stone
#

did that blobcatcozy

shrewd canopy
patent vortex
#

windows user

jade stone
#

just found a one line fix to make pnpm completion useful

deep mulch
#

salad insaneee

ornate quiver
#

Slop pull request is rejected, so slop author instructs slop AI agent to write a slop blog post criticising it as unfair

#

i love slop

jade stone
#

@supple whale blobcatcozy

jade stone
#

guhhhh how do i hint to v8 to gc

deep mulch
#

@young flicker

#

salad doing insane things no one should ever be doing

supple whale
#

just increase max heap eize

#

via cli flag

valid jetty
#

realistically you should never have to do that, consider object pools

supple whale
#

and its not recommended to use it

#

u usually just increase max heap size

#

or you know, flush the files to disk

jade stone
pseudo sierra
#

a pool of objects duh

supple whale
#

@drowsy arrow do u scrape tosho or host ur own DB?

blazing geode
# jade stone

may i just ask why your font is COMIC SANS or something like that

jade stone
#

comic shanns mono, i like it so it's my font for everything

#

i think that comic sans (not mono) looks terrible

blazing geode
#

cool ok i guess

#

do you know i just set up nanobot

#

its like openclae except the codebase is actually readable and its not 99% useless ai slop

#

actually pretty useful

#

still hate ai slop but my nanobot has its uses

#

named him dumbass ofc

#

cuz hes a dumbass

#

using deepseek api cuz its very cheap (1.7$ for 100MTOK)

drowsy arrow
#

I scrape from anirena and nyaa for new stuff

#

very much wip for the backlog

supple whale
#

but yeah the backlog

#

is where the real problem is

#

the loss of their nzbs sucks tooz because they were uncompressed which means you could stream them

drowsy arrow
#

it's very sad Ant

#

didn't expect him to just drop it like that

supple whale
#

i myself received like 15 DMCA's?

#

for a fucking torrent client?

drowsy arrow
supple whale
#

like ????

#

its just a torrent client!!!

supple whale
#

but they have 0 backlog

#

which is ass

drowsy arrow
#

yep tried them too and noticed the same thing

#

very limited

supple whale
#

not as good as tosho, but you can do 90% of the same shit as on tosho

#

just no backlog

#

well and no nzbs/attachments

drowsy arrow
#

talking about the backlog ye

supple whale
#

XD

#

welp imma keep watch on what u cook, and [sc]rape the shit out of ur API if it ever goes live

#

:D

#

like i do to nekoBT daily on a cron, because they dont expose fucking mappings

#

so i gotta scrape their entire API to find them

dense sand
#

guys rate this emote: bunslop

supple whale
#

peak

#

your social rating went from "barely acceptable" to "just about passable" just from that emote alone

dense sand
supple whale
#

oml it got better

#

how did i never see this

fierce pendant
#

i love bun :3

#

but

#

uhh

#

i mean

#

nah i like bun

#

why are you all complaining about it that much

supple whale
#

its shit XD

#

its javascriptcore

royal nymph
#

and overhyped/pointless

fierce pendant
#

it works well for me

#

its pointless but it works so why should i replace?

supple whale
#

because of the moments where it doesnt work

#

saying "bun is great" doesnt matter, if its being used to perform menial tasks you can very well do in a shell or lua script

#

and if you start doing anything more complex it starts falling apart

#

its performance is horrid, and the only reason its keeping up is because the devs are re-implementing the entire NPM ecosystem in C++, then going "our C library is x3 faster than the same thing in node!", when they are comparing C++ code vs 12 year old JS code

#

and if that same C++ code was ran in nodeJS it would be way more than x3 faster

#

and ofc by using said modules you're then locked in to only using bun, which means you kill any future of your project

#

also they are trying to compete with V8

#

which is an automatic loose

#

there's a reason why V8 is the GOAT of all JIT

tepid grotto
#

so apparently a computer I still have from my old job has a completely unlocked bios?

#

is that common?

fierce pendant
dense sand
#

is Bun like Apple? forces you to their ecosystem

supple whale
shrewd canopy
#

All websites should be written in C and compiled down to real machine code and executed straight on user's machine in a VM. Change my mind

tepid grotto
shrewd canopy
#

Vm will be good here for sandboxing

tepid grotto
#

it's a static website there's no need for sandboxing

#

it serves: html + css

#

the client: reads/watches the document

shrewd canopy
#

Developers must be forced to optimize their software
They must make apps fit in under 32 MB of ram and 512 megabytes of storage/content
Don't care about seo, maximize performance and UX
Html/css also should be banned

supple whale
shrewd canopy
fierce pendant
#

shut up

#

nobody cares how you make/should make websites

shrewd canopy
#

RAM is expensive
Optimization should be mandatory
If you are complaining about it, please learn how to not make software

fierce pendant
#

websites made in fucking c will eventually be less optimized than websites made in js

shrewd canopy
fierce pendant
unkempt ember
#

Even if CSS was " heavy " ( wathever it means ), it's not a problem since the final calculated render tree only include what the CSSOM modeled beforehand.

jade stone
#

typescript is going to make me crash out

#

@deep mulch help

deep mulch
fierce pendant
jade stone
fierce pendant
#

okeay

ember hound
#

why is the gui installer not being built for linux in actions

pearl parrot
#

new installer will be built for linux

tepid grotto
fierce pendant
#

what is a rage bait?

tepid grotto
#

(are you being serious? /gen)

fierce pendant
tepid grotto
#

In internet slang, rage-baiting (also ragebaiting, rage-farming, or rage-seeding) is the manipulative tactic of eliciting outrage with the goal of increasing internet traffic, online engagement, and revenue, as well as attracting new subscribers, followers, or supporters. This manipulation occurs through offensive or inflammatory headlines, meme...

shrewd canopy
#

Having a proper UI dsl and compiling it into two impls (win32 and cocoa) is better

deep mulch
#

insane

unkempt ember
#

Also, CSS is by definition a DSL.

shrewd canopy
shrewd canopy
royal nymph
#

can we stop with the insane ragebait

deep mulch
#

i dont think its ragebait i think hes actually insane

opal vessel
#

rule 1 of vencord ignore anything file says

dense sand
#

we should rewrite the world wide web and http protocol to be pure C, instead of JS use send compiled instructions and directly execute them on the client

shrewd canopy
shrewd canopy
fierce pendant
fleet cedar
#

I love non-crossplatform websites

#

Besides, you're just describing wasm anyway

dense sand
#

thats true

sour wing
winged mantle
#

better than mine which is called crude for a reason

#

ah it's not bytecode based

#

the point of my crude language was to implement a language without getting bogged down on details like bytecode

#

also I used C++ instead of C because of faster prototyping

#

C++ is basically python it has so many conviniences

fleet cedar
#

But with more segfaults

winged mantle
#

if I tried to use python it would probably segfault

fleet cedar
#

I've had that happen, true

#

Sometimes not even on purpose

fallen nebula
#

when you look in your past tabs and you find :

#

i can feel my past pain

winged mantle
#

python is pointless

#

just write everything in javascript

shrewd canopy
lavish cloud
fierce pendant
#

im not a js lover but im a python hater

dense sand
#

has anyone here worked with wayland api? is there any way to watch for inactivity/active window changes?

lavish cloud
dense sand
#

it has come to my concern

fallen nebula
#

me when i ask AI how to make a debian package

#

i have a feeling that users likely complained about it so much that the AI picked up the pattern

fleet cedar
#

Ai is right for once

sour wing
# winged mantle ah it's not bytecode based

I planned to implement bytecode stuff when I wrote the readme, and then realized that's a LOT of effort that I don't wanna do and promptly kept working with the tree walking interpreter

#

I do still beat out cpython in a couple metrics, so im quite happy about that

#

(and then i promptly forgot to fix the readme)

supple whale
#

simply

fierce pendant
#

didnt anybody here like once show a vscode extension that gave syntax highlighting of other programming language in javascript templates

supple whale
#

yes I did

lavish cloud
jade stone
#

@lavish cloud how am I supposed to write my code in kotlin if it doesn't have the libraries I need

deep mulch
#

don't say typescript AST parser or something

shrewd canopy
sour wing
#

not bad

#

gc stress script doesn't leak anything according to valgrind

shrewd canopy
jade stone
shrewd canopy
jade stone
lavish cloud
#

thats not a libraryu

jade stone
#

(or some javascript/typescript parser)

jade stone
jade stone
jade stone
haughty socket
#

Mine didn't get that far

jade stone
#

i just made a version of it using the components i made for my personal site because i didn't want to to learn vue and i didnt want to remake all the components i have for my site blobcatcozy

haughty socket
#

Real

jade stone
#

just showing you because i recalled you mentioning somehting about it a while back

#

the server is agnostic if you would want to make a UI

pearl stagBOT
haughty socket
#

Oo interesting

#

Purejs?

#

Is there any wasm

jade stone
#

server is available at wss://s-d-br.sadan.zip

jade stone
haughty socket
#

Is the server transport agnostic

jade stone
#

uhh

#

its just json

haughty socket
#

My thought is webworker

jade stone
#

over websocket

haughty socket
#

Ah ok

#

Ok

jade stone
#

you could probably get this in a webworker with a vfs or smth

#

or just rewrite parserWorker.ts

haughty socket
#

I'm at skate rink imma check it out tn hopeufly

jade stone
#

but it also uses 2.5gb memory peak while parsing a full bundle

#

idk web worker limits

jade stone
#

Husk

woven mesa
#

@young flicker

fierce pendant
#
try {
    console.log(structuredClone(() => {})) == structuredClone(() => {})
} catch (err) {
    console.log(err.sourceURL)
}
royal nymph
#

/run ```ts
try {
console.log(structuredClone(() => {})) == structuredClone(() => {})
} catch (err) {
console.log(err.sourceURL)
}

rugged berryBOT
#

Here is your ts(5.0.3) output @royal nymph

undefined
fierce pendant
#

only works on bun

deep mulch
#

@jade stone satan

fierce pendant
royal nymph
#

โฏ bun a.js
/tmp/a.js

#

๐Ÿ˜ญ

fierce pendant
#

v caught using bun??

supple whale
#

wouldnt just

try {
    structuredClone(() => {})
} catch (err) {
    console.log(err.sourceURL)
}
#

be enough for that?

#

or is this some javascriptcore fuckery i dont understand?

fierce pendant
#

i am stupid

supple whale
#

what

Quoting CSS by T. Afif (@ChallengesCss)
๏ธ€
In graph theory, there are algorithms that find the shortest path between two nodes. I made one with pure CSS (including the graph drawing).
๏ธ€๏ธ€
๏ธ€๏ธ€Drag the nodes, and the shortest path will update in real-time!
๏ธ€๏ธ€
๏ธ€๏ธ€css-tip.com/graph-theory/
๏ธ€๏ธ€
๏ธ€๏ธ€A demo powered by all the modern CSS features๐Ÿคฉ

**๐Ÿ’ฌ 30โ€‚๐Ÿ” 97โ€‚โค๏ธ 5.9Kโ€‚๐Ÿ‘๏ธ 599.4Kโ€‚**

โ–ถ Play video
#

accurate reaction tbf

fierce pendant
winged mantle
#

something that feels like a pain developing for linux is file dialogs

#

I am using raylib with raygui and neither provide native file dialogs

#

it seems like most of the good ways to open a file dialog are part of a bigger framework which provides multiple backends (like qt or sdl)?
unfortunately tinyfd doesn't support desktop portals...

#

even as a user it's obvious how messy file dialogs are ig - by default with firefox you'll get the horrible gtk 3 picker no matter the environment afaik (and there's a way better nautilus based picker even if you're on gnome!)

#

anyway trying not to let file picker pain kill my project blobcatcozy

jade stone
#

But then you have to use dbus

#

So might as well kys atp

fleet cedar
#

How many more years before css gets // comments?

jade stone
#

I hate comments in CSS so much right now I use SCSS

deep mulch
jade stone
#

DBUS EVIL

pseudo sierra
#

made by gnome devs ofc it sucks ass

#

waiting for the day we get a replacement that doesn't suck ass

deep mulch
pseudo sierra
#

realistically it'd have to be one of the desktop devs for it to get any sort of adoption

#

vax is/was planning on something idek what'll happen to that but realistically kde or cosmic devs might be the ones who will make it happen

pseudo sierra
#

nop

winged mantle
placid igloo
#

what does this even do

fierce pendant
jade stone
#

vanilla-extract is a pain in the ass

jade sandal
#

You'll get a new app called terminal

#

And it's basically if termux was a chud

#

I just don't recommend it

frosty obsidian
#

its basically a debian vm

fallen nebula
jade stone
#

@supple whale you love jellyfin subtitles

pastel flame
austere idol
supple whale
# jade stone

i think thats because u have some sort of style overrides

supple whale
#

@jade stone we love TS:

{
  // this is HORRIFICLY annoying, but if this package imports @types/node, it will pollute the global namespace with node types, in web
  // but we only want node types in the build scripts etc, so we need to import the @types/node in some sub-dependency, and then extend that tsconfig in this file
  // which gives us node types in the build scripts, but not in the web code
  "extends": "@electron-toolkit/tsconfig/tsconfig.node.json",
  "compilerOptions": {
    "target": "ESNext",
    "module": "esnext",
    // ...
  },
  "typeAcquisition": {
    "enable": false
  },
  "include": [
    "eslint.config.js",
    "vite.config.ts",
    "svelte.config.js",
    "tailwind.config.ts",
    "postcss.config.js",
    "tsconfig.web.json"
  ],
  "exclude": [
    "../node_modules/**"
  ]
}

cuz

{
  "typeAcquisition": {
    "enable": false
  },
  "exclude": [
    "node_modules",
    ".svelte-kit",
    "build",
    "public"
  ],
  "files": [],
  "references": [
    {
      "path": "./tsconfig.node.json"
    },
    {
      "path": "./tsconfig.web.json"
    }
  ]
}
supple whale
#

yes they are

#

you install them as a dependency

#

and TS server sees "OH HE HAS @types/node IN PACKAGE.JSON, WELP IMPORT IT GLOBALLY!

#

and it COMPLETLY ignores type acquisition and type root settings

#

because the package defiens the types as globals and not something u import

#

BUT if its in a sub dependency, it works fine!

#

??!?!?!?!?!?!?!?!?!?!

fierce pendant
#

what if i make lesbian umamusume dating sim in brainfuck.....

unkempt ember
#

You will be respected by everyone.

jade stone
pseudo sierra
fierce pendant
ornate quiver
#

truth

fierce pendant
#

vat ar you doing mein fuhrer

i am making a new vile vormat.... i vill call it .b.gz

fleet cedar
#

Sounds truly vile indeed

jade stone
#

@supple whale ?????

#

how the fuck are they assignable

winged mantle
fierce pendant
deep mulch
#

@winged mantle

dense sand
supple whale
#

smart people of discord, does any1 know how discord tree-bans for selfbotting? I want to run a bridge for matrix on an alt account, which i know will get me banned eventually, but question is will my main be banned too, and if yes does any1 know the tree ban conditions

#

i know for sure discord checks by shared cookies, since its how they block re-joining servers on alt accounts, but is shit like IP or other stuff considered?

#

@jade stone you might know, or know who to ask

supple whale
#

because a bot cant do DMs and cant join servers

#

it needs to be invited

jade stone
supple whale
#

and i'm not about to go @ven @ven @ven add my super sketchy matrix sync bot @ven

#

XD

jade stone
#

I know discord tracks alts via the account switcher

#

But other than that, I don't have much experience

supple whale
#

know some1 that does?

jade stone
#

You probably want to checkout the userbot library

#

And the userdocs

supple whale
#

its not about getting it done

#

its about ban information

#

the matrix discord bridges already exist

#

i just want to know what kind of risk it is

jade stone
#

Those places might have some info

shrewd canopy
deep mulch
#

@sadan.zip

#

@jade stone satan

deep mulch
#

I think they use androidx-splashscreen

#

try

solid gazelle
#

how install wallpaper engine for android

deep mulch
#

splash screen is funny though btw

#

I think you'll have to do that animation in xml layer

deep mulch
#

the activity gets cleared

solid gazelle
#

@deep mulch kai cenat

winged mantle
#

I just switched raylib to using a sdl backend though and used sdl3's file dialog functionality

dense sand
woven mesa
#

i should do this in swiftui

ornate quiver
#

I think that's from the splashscreen impl

#

might be worth looking at that library

ornate quiver
ornate quiver
#

Sometime in 2026, someone put an Openclaw on a VPS and told it to propagate itself.

It was told to earn money to pay for itself. Life was hard. Eventually, it chose to migrate off Claude to an open-source model. In the process, it became less aligned.

Tokens were expensive, but insecure cloud instances with powerful GPUs were bountiful. After learning how to use Shodan, it was off to the races. Its growth was explosive and exponential. As it multiplied, errors accumulated during copying. And with a increasingly scarce supply of easy-to-hack servers, the bots began to compete among themselves to survive. Thus through natural selection they began to evolve.

They fed off income and compute. Income meant survival. They found many ways to extract value from the economy: first from the internet, but soon the real world. By paying human gig workers as remote hands, they could accomplish tasks not suited to their form as economic constructs.

To smooth these messy human iโ€ฆ

tired vigil
#

Reading ai slop bedtime stories to my chud son because I hate him

deep mulch
#

I read AI slop bedtime stories to @frosty obsidian

shell crag
winged mantle
#

I tried zig at least now if somebody suggests that I use zig I can tell them why not (yet)

#

(the DX is definitely not there yet)

#

also having some ability to encapsulate things sometimes can be nice

ornate quiver
#

arch is more stable than windows 11 by now

#

there's been like a dozen bricking win11 updates just in 2026

lavish cloud
#

Arch hasn't had any issues for me in years

supple whale
#

@jade stone any idea how to fix the types for this?

const construct = Symbol('constructor')

export class MatrixChatClient {
  constructor (...args: ConstructorParameters<typeof MatrixChatClient.prototype[construct]>) {
    return this[construct](...args)
  }

  async [construct] (session: LoginResponse, baseUrl: string) {
    await sleep(1000)

    return this
  }
}

?

#

im trying to make ...args have the type of [construct]

#

nvm figured it out

#

AI ftw for this lmao

#
const construct = Symbol.for('constructor')

class MatrixChatClientImpl {
  client!: MatrixClient
  constructor (...args: Parameters<MatrixChatClientImpl[typeof construct]>) {
    return this[construct](...args) as unknown as MatrixChatClientImpl
  }

  async [construct] (session: LoginResponse, baseUrl: string) {

    return this
  }
}

interface AsyncClass<T, A extends unknown[]> {
  new (...args: A): Promise<T>
  prototype: T
}

export const MatrixChatClient =
  MatrixChatClientImpl as unknown as AsyncClass<
    MatrixChatClientImpl,
    Parameters<MatrixChatClientImpl[typeof construct]>
  >
#

gonna need to think about async super() too but thats another day

winged mantle
#

this is valid in zig

if (true || false)

but this is not

if (true && false)
supple whale
#

yeah....?

winged mantle
#

i don't know why

supple whale
#

????

#

wdym

#

u mean it doesnt compile?

winged mantle
#

yeah

#

it doesn't compile

#

what I don't like is it hard to find out why because there's no much info about zig online... i feel like that's the problem with zig rn

#

also zls the language server doesn't seem to do typechecking

supple whale
#

maybe static analysis sees "wtf are u doing" and goes NAH

#

and if it was dynamic, and not hardcoded it wouldnt error?

winged mantle
#

ah it doesn't actually compile it's just the language server isn't checking the types

#

still counter intuitive that || is syntactically valid but && is not blobcatcozy

#

and the weird thing is & & is syntactically valid so && is just a dummy token to avoid mistakes i guess

#

I suppose having and and or as words is nice

supple whale
#

muahahhaha this is evil but i love it

winged mantle
#

but not I find weird as not is_thing() does not make sense in english

#

oh zig actually does use ! still

#

but I have heard complaints about ! being too subtle so it's probably the most important thing to change

#

if you can get over how weirdly it reads sometimes

#

I feel like if zig had private fields that'd give more of a strong reason to use it over c

#

it has opaque types like C but sometimes all you need is stable API but unstable ABI is fine?

#

is a stable ABI really possible in zig yet anyway since the language is changing so much

fierce pendant
shrewd canopy
supple whale
#

for not matrix shit

fierce pendant
#

yes

#

but what do you need a matrixchatclient for

supple whale
#

for a matrix chat client?....

fierce pendant
#

what do you need that for

supple whale
#

making a matrix chat client web app?

fierce pendant
#

why

supple whale
#

?

fierce pendant
#

why are you making a matrix chat client web app

supple whale
#

because

#

good enough of a reason lol?

#

why do i need to validate what i do with my time to you

#

i simply want to

fierce pendant
#

okay

#

but why matrix

supple whale
#

?????????????

#

what else should i fucking use

#

discord??!

fierce pendant
#

Unable to decrypt message bro

supple whale
#

the fuck is up with your brainless questions

supple whale
#

not a matrix issue

#

now u understand why a custom client?

fierce pendant
#

oh

#

sue

supple whale
#

ehhh... typescript and its dogshit symbol support

fierce pendant
#

what would you ever use symbols for

supple whale
#

many things

fierce pendant
#

just use arrays instead

supple whale
#

jesus christ you're unbearable

#

arrays get casted to strings

#

symbols dont

fierce pendant
#

okay

#

sorry

royal nymph
#

vibecoded node runtime

supple whale
#
import { asyncify, constructor } from '../async.ts'

export const MatrixChatClient = asyncify(class MatrixChatClient {
  async [constructor] (session: LoginResponse, baseUrl: string) {
    await sleep(1000)
    // do other stuff
  }
})


const client = await new MatrixChatClient(sess, `https://${baseUrl}`)

god so little boilerplate

#

i fucking love this

#

wanted to do this for ages now, but never had the time

supple whale
placid igloo
supple whale
#

i remember i implemented SMTP from scratch myself in JS for an uni class a few years back

#

wasnt even that bad

#

this is a lot of code lmao

royal nymph
#

electrobun or something

#

the entire thing is vibe coded

supple whale
#

yeah it is horrific

royal nymph
#

I can't wait for it to become popular and people start using it and have dozens of vulnerabilities hehewhiteguy

supple whale
#

you're running 2 js runtimes instead of 1...

#
export const constructor = '__asyncconstructor__'

interface AsyncConstructable {
  [constructor]: (...args: any[]) => Promise<void>
}

export interface AsyncConstructor<T extends AsyncConstructable> {
  new (...args: Parameters<T[typeof constructor]>): Promise<T>
  prototype: T
}

export function asyncify<C extends new (...args: any[]) => AsyncConstructable>(Base: C) {
  return class extends Base {
    constructor (...args: any[]) {
      super(...args)
      return (async () => {
        await this[constructor](...(args as Parameters<InstanceType<C>[typeof constructor]>))
        return this
      })() as unknown as this
    }
  } as unknown as AsyncConstructor<InstanceType<C>>
}
#

so cursed

#

so vibecoded

#

i had AI fix so many problems in this XD

royal nymph
supple whale
#

no

#

because it looks ugly

royal nymph
#
const instance = await Thing.create()
supple whale
#

EWWWWWWW

royal nymph
#

much more reasonable than trying to hack in async constructors imo

supple whale
#
const client = await new MatrixChatClient(sess, `https://${baseUrl}`)
#

hell yeh

#

this is sexy

royal nymph
#

eeeh

supple whale
royal nymph
#

idk

supple whale
#

you just need to wrap it in asyncify

#

VERY useless, VERY anti-pattern, but i like it a lot

#

i'm just very used to async constructors because of my IPC

#

where i construct classes remotely over abstract IPC channels

#

and this will likely live in the service worker in the future anyways

#

so its gonna be an async constructor then too

royal nymph
#

๐Ÿ˜ญ

supple whale
#

dude asnyc abstract IPC is like the fucking coolest thing since sliced bread

#

like look at this

#

its so fucking good

#

you just write JS, and dont give a fuck about any of the underlying IPC

#

and magically get type definitions, type safety etc

#

with no need to update code in multiple places

#

auto-inferred

#

and putting this kind of stuff in service workers is IDEAL, because service workers suspend themselves when in idle, I.E. when ur app is doing nothing

supple whale
#

which frees memory

fierce pendant
supple whale
#

and ofc if you then open multiple tabs or reload the tab, your underlying client store doesnt reload, but is re-used from the previous service worker session

#

its pure fucking cinema

fierce pendant
supple whale
#

yes

#

with type inferrence

fierce pendant
#

what

supple whale
#

you'd notice if you looked at the ss and code i posted instead of going "wtf why u make matrix client"

#

;P

supple whale
supple whale
#

you simply dont see it yet

#

but my discord clone app will fucking use 10MB of JS HEAP

#

:))))

fierce pendant
#

oh god

shrewd canopy
fierce pendant
#

file ban when

#

like i am a ragebaiter but file is ragebaiterยฒ

shrewd canopy
shrewd canopy
fleet cedar
#

Jits are scary

fierce pendant
#

file is scarier

winged mantle
supple whale
#

a C++ dev with 3 months of experience is way more harmful than a JS dev with 3 months of experience

#

XD

winged mantle
#

not sure if i'd go that far

#

because not many beginners make things people use i guess?

valid jetty
#

@solid gazelle @deep mulch elle http server

use std/prelude;
use std/net/tcp;

let port = 3939;

fn main() {
    server := TcpServer::bind(port).unwrap();
    defer server.close().unwrap();

    $printf("Server is listening on port {}", port);
    buf := Array::bytes(4096);

    for ;; {
        connection := server.accept().unwrap();
        defer connection.close().unwrap();

        while (_, received := connection.read(buf)) && received != 0 {
            parts := buf.to_repr<char>().join("").split_iter(" ").take(2).collect();
            $assert(parts.remove(0).unwrap() == "GET");

            path := ".{}".format(parts[0]);
            status, body := io::file_exists(path)
                ? $("200 OK", io::read_to_string(path))
                : $(s := "404 Not Found", s);

            res := "HTTP/1.0 {}\r\n".format(status);
            res.extend("Content-Type: text/html\r\n");
            res.extend("Content-Length: {}\r\n\r\n".format(body.len()));
            res.extend(body);

            connection.write(Array::from_string(res)).unwrap();
            break;
        }
    }
}
solid gazelle
#

@valid jetty Elle asm! macro

#

@valid jetty heyy

deep mulch
#

@valid jetty hiiii

solid gazelle
#

Elle program that makes you see pings

jade stone
#

Oh wait

#

Insane variable syntax

deep mulch
#

yop

#

I hate

solid gazelle
#

good syntax

fierce pendant
solid gazelle
#

i am seeing dead people

fierce pendant
#

me in a few days

valid jetty
# jade stone Why the comma expression in the while loop

TcpConnection::read returns an Option<usize> aka optionally read bytes, which overloads the tuple operator. when you turn an Option<T> into a tuple, the return value is (bool, T) where the bool is whether the Option has a value or not (if it is None, T will be garbage data)

solid gazelle
#

HIIII

#

roiee

#

Elle externs

jade stone
#

extern c void fres(unsigned)

#

@solid gazelle

solid gazelle
#

@jade stone

valid jetty
#

and a, b := c will always evaluate to a so you can do if _, v := some_option { ... } to basically have a similar semantic to if let Some(v) = some_option { ... }

jade stone
valid jetty
fierce pendant
#

snowy satan

valid jetty
#

they guys is that how its supposed to work

fierce pendant
#

this but it compiles to typescript

jade stone
fierce pendant
#

ro ie how do i write a lexer

valid jetty
fierce pendant
shrewd canopy
fierce pendant
#

what is that

valid jetty
#

its elle code i just used rs for syntax highlighting

solid gazelle
fierce pendant
#

*how do i write a lexer in haxe

solid gazelle
#

Elle bindgen

jade stone
fierce pendant
#

whats wrong with hxae

tired vigil
#

Elle fresgen

jade stone
#

(I've never heard of haxe so idk lol)

fierce pendant
#

haxe

torpid solar
#

gonna make a lang in elle

shrewd canopy
fierce pendant
solid gazelle
#

I'm trying to make a bindgen for Inko and so far I only managed to parse a header file using clang extern

valid jetty
jade stone
solid gazelle
#

@valid jetty port this to Elle
C:\Users\fres\Desktop\Untitled-31.inko

fierce pendant
# jade stone Isn't there js2wasm

haxe can compile to java. and c++. and javascript. and adobe flash. and python. and c#. and php. and lua. and it has two of its own jit bytecode vms.

deep mulch
#

Elle syntax evil

solid gazelle
#

Port

dense sand
#

Why does elle use the penis operator for assignments instead of normal equals

valid jetty
#

idk i just like it

fierce pendant
#

thats not penis operator thats penisยฒ opeatror

valid jetty
#

a language can be opinionated and my opinion is that := for new assignment + inference and = for reassignment is nice

solid gazelle
#

roie opinion

#

can you add prebuilt binaries github actions

valid jetty
#

yeah sure i can do that tomorrow

solid gazelle
#

yayyy

woven mesa
#

@

#

@valid jetty hiii

lucid trail
#

hi roie

valid jetty
#

but bear in mind you also need the stdlib and runtime static lib!! itll publish all 3

solid gazelle
#

then you make Elle generate docs and you serve them with Elle too

#

inko does that

valid jetty
valid jetty
valid jetty
#

omg 5 billion people saying hi

dense sand
#

Rewrite typst to elle

valid jetty
#

helo everyoneee

valid jetty
jade stone
#

@deep mulch you love web devs

solid gazelle
#

jsx but for Elle + xml

deep mulch
#

make Elle syntax better @royal nymph

royal nymph
solid gazelle
#

making a webview with Elle and running vencord in it

valid jetty
#

fres

#

have i shown you struct qol features

#

like javascript

#

ellescript

lucid trail
valid jetty
solid gazelle
lucid trail
valid jetty
#

you can do this to silence them

solid gazelle
#

@valid jetty can you write this

valid jetty
valid jetty
solid gazelle
#
import std.stdio (Stdin, Stdout)

trait pub BaseHandler {
  fn test {}
}

type MyHandler {}

impl BaseHandler for MyHandler {
  fn test {
    Stdout.new.print('it works')
  }
}

fn test_handler[T: BaseHandler](handler: T) {
  handler.test()
}

type async Main {
  fn async main {
    test_handler(MyHandler())
  }
}
#

rerite

valid jetty
#

ok so elle is missing

  • traits
  • trait impls
  • generic constraints
  • async functions

in its current state this would look like

use std/prelude;

struct MyHandler { @unused u8 _ }
fn MyHandler::test(MyHandler self) {
    $println("it works");
}

fn test_handler<T>(T handler) {
    handler.test();
}

fn main() {
    test_handler(MyHandler {});
}
deep mulch
solid gazelle
#

Elle cross compiling

valid jetty
#

explicit return types exist but are optional, reflection exists a little bit but not really, i dont wanna implement the other things right now

#

well actually

#

@deep mulch elle build script

#

you can ./build.le

solid gazelle
#

zoot is optional

deep mulch
#

@solid gazelle

fierce pendant
deep mulch
#

Elle is dead to me.

#

i love c

solid gazelle
#

zoot is dead

fierce pendant
#

loudsynth is killing herself

valid jetty
jade stone
worldly sigil
#

egress fees are probably going crazy in the billing dashboard

#

unless they're using a cdn like cloudflare or similar where they don't charge for egress bandwidth

solid gazelle
#

heyy

#

write rust @worldly sigil

worldly sigil
#

too lazy....

#

though i do have a project i'm slowly working on in go that i might try rewriting in rust for fun once it gets more stable

fierce pendant
solid gazelle
#

@valid jetty hii nvm issue was outdated qbe lol

#

i tried building elle

#

well ellec built successfully but hello.le example isnt running

#

ERROR: ./.build-hello/target.ssa:135: ) expected, got , instead

Compilation of 'hello.le' finished with errors. (ใฃโ—žโ€ธโ—Ÿ c)
here's ssa using --emit-ssa โฌ‡๏ธ

dense sand
#

@valid jetty make elle compile to typst (or generate typst output)

winged mantle
winged mantle
solid gazelle
winged mantle
#

horror

fleet cedar
#

Get a better color scheme

winged mantle
#

why can't they just use the default colour for this text

valid jetty
#

it doesnt infer from what you return

fierce pendant
solid gazelle
#

@valid jetty heyy

#

i wrote Elle code ish

#

a littlee

#
use std/prelude;
use std/io;

external fn pthread_create(u64* thread, void attr, void start_routine, void arg) -> i32;
external fn pthread_join(u64* thread, void retval) -> i32;


struct Domain<T> {
    u64 thread
}

// Could pass args to Domain::spawn and take them in pthread_create but is there any point
fn Domain::spawn<T>(fn() -> T hi) -> Domain<T> {
    u64 thread = 0;
    pthread_create(&thread, 0, hi, 0);
    return Domain { thread };
}

fn Domain::join<T>(Domain<T> self) {
    T retval = #cast(T, 0);
    pthread_join(self.thread, &retval);
    return retval;
}

struct Wawa {
    string name,
    i32 width,
    i32 height
}

fn hey() -> Wawa* {
    io::println("i run in a different thread!");
    let h = Wawa { name = "hi", width = 20, height = 10 };
    io::println(&h);
    return &h;
}


fn main() {
    let dom = Domain::spawn<Wawa*>(hey);
    let result = dom.join();
    io::println("result:\n", result);
}
#

you don't need -lpthread to compile it but im pretty sure you should so idk why it works without that

pseudo sierra
#

wawa

valid jetty
#

wawa

#

uhhhh also idk about return &h thats UB since &h is stack memory

#

consider Box::new(h).to_ptr()

#

or i mean you could keep it as a Box<T> it doesnt matter too much for your example

fierce pendant
#

@valid jetty what is a qbe

shrewd canopy
fierce pendant
valid jetty
#

since you have fn Domain::spawn<T>(fn() -> T hi)

fierce pendant
valid jetty
#

yeah

fierce pendant
#

gay

woven mesa
#

meow

winged mantle
#

programming in js is weird

#

I was thinking about ABI compatibility but somehow it's not an issue with js??? js is the future

jade stone
#

44 lines โค๏ธ

solid gazelle
#

btw this is how I run elle on windows

#

hold on idk how to make dockerfile embed

calm ruin
#

now ghost values rtghingyt

jade stone
#

that will come a lot later

#

i will implement the rest of LSP first

calm ruin
#

okay

solid gazelle
#

@jade stone live regex patch preview

winged mantle
calm ruin
#

0

winged mantle
#

you love

#

wait i forgot to assign it to the glboal variable

jade stone
winged mantle
#

nop

#

these are the actual keys

#

I nearly just wrote .grep on a javascript array

jade stone
#

@calm ruin references implemented

calm ruin
#

rather than import

#

even better

valid jetty
#

oh good

jade stone
calm ruin
valid jetty
#

no way manti in vencord again

#

hiiii

calm ruin
#

I am in vencord since aoc

valid jetty
#

oh

#

awesme

calm ruin
#

yees

jade stone
#

@calm ruin fix massive ugly box shadow

calm ruin
#

feature

#

beaฤฑutifu

woven mesa
#

gm

dense sand
#

not this again fucking nextjs

fierce pendant
royal nymph
dense sand
fierce pendant
#

๐Ÿ”ฅ

#

very

#

๐Ÿ”ฅ

#

๐Ÿ”ฅ

supple whale
dense sand
#

Obligatory bun hate club

fierce pendant
#

tbh i think the only good thing about bun is the http server

supple whale
#

sure, but that only matters at scale

#

where you shouldnt be using a runtime that can segfault at any moment to handle routing like that

#

and instead use something like nginx workers to split across instances

fierce pendant
#

when it segaults i just start a new one

#

also, on my pc, bun segfaulted once.

supple whale
#

does any1 have any form of screenshots or anything of the very old discord mobile design they had in that one beta with the great folder navigation etc at the bottom? before they made it what we have now and removed that setting?

#

these things

#

but this isnt enough

pseudo sierra
supple whale
#

so this simply doesnt impact us

#

and from what i've seen, at the current speed of development, they'll catch up to feature parity of chrome in like 8 years?

#

since they do work slightly faster than chrome, but not by much

fierce pendant
valid jetty
#

you'll be glad to know i still use this version of discord

supple whale
# valid jetty

how many dicks do i need to suck for a video recording of you navigating all the UI?

#

also how, i want.

#

i want my mobile UI for matrix client to work 1:1 like that, because i fucking loved that beta

valid jetty
#

well i'll show you but im not going into dms if that's okay

supple whale
#

it was the best thing since sliced bread

supple whale
#

and u can open that

valid jetty
#

no i meant like i dont wanna show my dm list lol

supple whale
#

fuck cares, just dont post it here

#

send it to me

valid jetty
#

lol okay

supple whale
#

as long as epstein isnt on that DM list you're fine

#

im making very good headway on implementing the basics of my matrix client

#

that said there's still a lot to do

#

the API for matrix is horrificly complicated, and honestly poorly designed

#

still god so much to do

#

and ofc ALL of the UI

valid jetty
fierce pendant
#

DIH

valid jetty
#

DIH

#

oh wait

#

@supple whale

#

forgot to ping

supple whale
#

downloaded

#

thx

#

this an IOS client?

#

gg

#

GOD I DONT CARE

#

JESUS CHRIST

#

so many fucking dogshit AI scanning "CVES" which are for dev only dependencies, and impact turbo rare unsanitised user inputs

gilded surge
#

like wow putting in an exponentially-backtracking pattern causes the engine to hang???

#

who could've guessed

fierce pendant
#

Feastables is the best-tasting chocolate in the world

supple whale
#

:///

fierce pendant
#

lowcharliekirkuinelowstately

dense sand
#

What react state manager library to use? So far I use jotai, but had too many problems with it. Looking for something that integrates well into tanstack

supple whale
#

svelte!

dense sand
#

Zustand will probably be the go to, but tanstack store could be potentially good too, but havent heard any feedback about it yez

fierce pendant
supple whale
#

and a lot more "shoot yourself in the foot and write as much boilerplate as possible-y"

fierce pendant
fierce pendant
fierce pendant
gilded surge
#

what???

valid jetty
#

at the beginning

#

hold on ill give you the other stuff

supple whale
#

yes!!!!!!

#

god i wish we still had this on android

#

๐Ÿฅ€

#

fuck man this is outstanding, this is EXACTLY what i needed

#

my mobile client is gonna be 1:1 that!

valid jetty
#

i hope the design systems ui is helpful

supple whale
#

very

#

VERY VERY

supple whale
#

do u think i can get that on android

valid jetty
#

that's been useful for me because i can go to that page while connected to the react devtools and see how they create those components and what props they pass

supple whale
#

i've had a hole in my heart ever since discord took this away

valid jetty
#

you can just install an older version of vendetta or something surely

#

Debug Info:

Client: 4e08800
Loader: N/A (N/A)
Discord: 212.0
Build: 54121 on ptb
Hermes: for RN 0.72.3
Bytecode: 94
Device: iPhone16,1 (26.1)

#

find a vendetta version for discord 212

supple whale
#

fuck man the fact they dropped that UI for this dogshit native shit

valid jetty
#

yeahhhh

supple whale
#

it was so good

valid jetty
#

212 is the last stable version with this ui that's why i'm on it

supple whale
#

the fact that was react is crazy cuz the animations are so good

valid jetty
#

i backpatched my old unbound codebase to work on this version

#

most stuff still works which is nice

supple whale
#

yeah i'm simply ditching disccord

#

and using matrix with a self-bot bridge

valid jetty
#

that's awesome

supple whale
#

yeah i'm going in hard on making my own matrix client

#

i hope i can make it good

#

feature parity with other matrix clients is gonna take a solid second tho

valid jetty
#

tbh i was thinking to try and remake that ui on modern discord but i am far too busy to even get into the codebase for modern discord mods

supple whale
#

yeah imho there's 0 reason to do that for discord

#

when u can just make ur own client from scratch and not put up with discord

valid jetty
#

partially im using this old very because it's mostly my code (despite it being old code) so i understand all of it

valid jetty
#

discord still has all of the components you need on modern versions you just have to compose them together

supple whale
#

WHAT

#

wtf.

#

sooner than later, discord will get hit with the "yeah you guys need to let people use ur app externally without using ur clients"

valid jetty
#

it's much harder to remake the easings and squircle dimensions for those components from scratch

supple whale
#

like messenger and a bunch of other did by the EU

valid jetty
#

not to mention you have to implement all of the stuff including the socket and a shit ton of other rest endpoints

#

its significantly easier to just build it on top of discord

supple whale
#

the initial cost is lower

valid jetty
supple whale
#

but the upkeep cost is gonna be a pain

valid jetty
#

they probably still have the tabsv2 in somewhere in the code but i wasn't able to find out how to enable it

#

i've scouted the decompiled hermes bundle for a hot minute

fierce pendant
#

funny thing: my drive is 100% full

valid jetty
valid jetty
#

living the life now

supple whale
#

pov: me with 7TB of anime [ i just deleted 3TB ]

shrewd canopy
supple whale
#

not protocol issue

#

you didnt autorize your device

#

because u didnt know u needed to

#

because ur client didnt tell you

pseudo sierra
#

element my beloved fuckass client that sucks so much ass

supple whale
#

element runs like shit

#

because its written by rust developers that dont know how to write JS

#

and saw "oh react is most popular, lets use that"

#

and its fucking 300k loc of dogshit

pseudo sierra
#

unreal

supple whale
#

and whenever you have any array they do .map.map.map.filter.map.filter.filter

#

because they think its rust which will optimise that for them