User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
Admin
Wyvern-shaped software developer and hobby vector artist. Also sometimes a fluffy werewolf alien creature (Areon).

Creator of the neofoxes, neocats and other emojis.
wvrnBox
Website
https://volpeon.ink/
Speaking German, English
Age 30s
Pronouns he / him
Backup Account @volpeon@goto.wyvern.rip
Bonus Content @areon@icy.wyvern.rip
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
Bluesky has notifications for when someone reposted or liked one of your posts, and also for when someone reposted or liked a post you reposted. By inductive reasoning, they will add notifications for when someone reposted or liked a post a user reposted which you reposted next.
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
@49016 Holy shit, I got this exact remote with my ASUS gaming laptop way back when
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
Stop adding the MCP (Master Control Program) everywhere! Haven't you watched Tron??
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
@a1ba Sphinx cats are cats and therefore equally deserving of my love as any other kind of cat neofox_aww
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
@SebinNyshkim You have planted the intrusive thought in my head to check if this happens on my computer, too neofox_googly_shocked
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
@RixtonSnek @catraxx
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
Can confirm that this works drgn_woozy
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
@xerz My LG V10 had one, too. I liked having access to music and news even without internet connectivity brdFlat

edit: Also definitely belongs in the weird category. The mini display was pretty useless
woozy_baa
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
@ShadowJonathan neofox_googly
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
I revisited the JSON parser and wrote my own parsing library. It's not too different from the one in the stdlib, but it handles some cases more efficiently and that makes a huge difference.
The old parser caused a stack overflow with a 144kb JSON file. The new parser can handle a 1mb JSON test file, but still causes a stack overflow with a 5mb file.
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
IRI parser works brdUwu
Only the IRI resolution algorithm left, and then I can finally get to JSON-LD
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
And can I just say how much I like this little guy neofox_aww
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
I shouldn't watch this right before dinner time brdFlat
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
Looks like it's a known issue with ctl effects (which parsers use): github.com/koka-lang/koka/issues/279
There's one more idea I want to try, but otherwise I'll just accept it for now
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
I removed all backtracking and it can handle larger JSON files now, but I still need to remove a very large chunk of the tests file to avoid the crash. brdThink
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
@catsalad Everybody knows that cats are forever hungry
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
It's actually not too difficult to avoid backtracking if you make the subparsers smarter. I just didn't do it because it also makes them less readable, but oh well.
So right now I parse booleans like this, for instance:
string("true") || string("false"), which means it tries the first parser, and on failure the second one (and therefore the consumed input must get "un-consumed").
The smarter solution is to pick the right branch directly so there is no "un-consuming" necessary. Like this:
val c = one-of("tf")
if c == 't' then
  string("rue")
else
  string("alse")
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
Reminder that I have a backup account in case there are issues with Hetzner: @volpeon
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
Oh, it's back
User avatar
privTri Volpeon areonNSmol @volpeon@icy.wyvern.rip
8mo
The application crashes when the JSON is too large. I bet it's because Koka's parser combinator library makes every single step backtrackable.