pawb.fun is one of the many independent Mastodon servers you can use to participate in the fediverse.
This instance aimed at any and all within the furry fandom, though anyone is welcome! We're friendly towards members of the LGBTQ+ community and aiming to offer a safe space for our users.

Server stats:

304
active users

#pldev

0 posts0 participants0 posts today
Bad Diode<p>A little distraction, trying to create a generic hash table for the symbol tables et al.</p><p>Ran into an issue where my bootstrap implementation didn't fully support nested generic type delarations. Alas, we push on, making specialized implementations for now (StrMap::V instead Map::(K,V)) to continue with self-hosting. I prefer to fix this on the new implementation, and not on code I'm throwing away.</p><p><a href="https://merveilles.town/tags/badlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>badlang</span></a> <a href="https://merveilles.town/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a></p>
Bad Diode<p>The self-hosted parser is shaping up! I'm already including the possibility for de-struct values. Also, bringing back the graphviz AST visualizations. Pretty graphs are pretty (and... err useful!).</p><p><a href="https://merveilles.town/tags/badlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>badlang</span></a> <a href="https://merveilles.town/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a></p>
Bad Diode<p>Can't wait anymore, I'm too excited to use my own language. Self-hosting is starting now. Step 1: Reading a full file into memory.</p><p><a href="https://merveilles.town/tags/PLdev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLdev</span></a> <a href="https://merveilles.town/tags/badlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>badlang</span></a></p>
Eniko Fox<p>actually wait i can just make every token go forward 🤔</p><p><a href="https://peoplemaking.games/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a></p>
Eniko Fox<p>i think for now i'm going with { } always required but changing the syntax so that maybe i can add the single-statement colon syntax later if i want to</p><p>now my source code chunking is going to look like this: green are keywords, which chunk forward until the next chunk token. orange are standalone. blue chunk backwards, creating a code unit that starts after the last chunk token</p><p><a href="https://peoplemaking.games/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a></p>
Eniko Fox<p>alternate version suggested by <span class="h-card" translate="no"><a href="https://peoplemaking.games/@0x0961h" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>0x0961h</span></a></span> where colon is only required after if/while/else/etc</p><p><a href="https://peoplemaking.games/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a></p>
Eniko Fox<p>hmmmmmmmm. how terrible would this syntax be, with colons to delineate if/else/while expressions rather than parentheses? 🤔</p><p><a href="https://peoplemaking.games/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a></p>
sarah tonin<p><span class="h-card" translate="no"><a href="https://chaos.social/@neocturne" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>neocturne</span></a></span> people writing (and reading) that kind of posts are on <a href="https://tech.lgbt/tags/PLdev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLdev</span></a> btw if u wanna use that</p>
Eniko Fox<p>realized i was overthinking things so now i have transparent blitted yuzu</p><p><a href="https://peoplemaking.games/tags/Bismuth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Bismuth</span></a> <a href="https://peoplemaking.games/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a></p>
Eniko Fox<p>wrote a tiny script to output an indexed aseprite image to hex (thanks to <a href="https://github.com/boombuler/aseprite-gbexport" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/boombuler/aseprite-</span><span class="invisible">gbexport</span></a> for letting me cheat off their homework) and now i have a lil yuzu test sprite blitted to the framebuffer :3</p><p><a href="https://peoplemaking.games/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a> <a href="https://peoplemaking.games/tags/Bismuth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Bismuth</span></a></p>
Eniko Fox<p>got the 8-bit palette going in my VM. had to add specifying data from a string of hex characters to my IR to get it there but it works :D</p><p><a href="https://peoplemaking.games/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a> <a href="https://peoplemaking.games/tags/Bismuth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Bismuth</span></a></p>
Eniko Fox<p>works though! :D i can put strings in my IR now and print them</p><p><a href="https://peoplemaking.games/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a> <a href="https://peoplemaking.games/tags/Bismuth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Bismuth</span></a></p>
Lex Plt<p>ArkScript December 2024 update is here!</p><p><a href="https://lexp.lt/posts/arkscript_update_december_2024/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">lexp.lt/posts/arkscript_update</span><span class="invisible">_december_2024/</span></a></p><p>Quite a long read because there was a lot of changes. I’m now thinking I should maybe do a 2024 article wrap?<br>Or people can just read <a href="https://lexp.lt/categories/arkscript/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">lexp.lt/categories/arkscript/</span><span class="invisible"></span></a> if they want to see everything 🤔</p><p><a href="https://hachyderm.io/tags/compiler" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>compiler</span></a> <a href="https://hachyderm.io/tags/cpp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>cpp</span></a> <a href="https://hachyderm.io/tags/cpluscplus" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>cpluscplus</span></a> <a href="https://hachyderm.io/tags/opensource" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>opensource</span></a> <a href="https://hachyderm.io/tags/pldev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>pldev</span></a> <a href="https://hachyderm.io/tags/ArkScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ArkScript</span></a></p>
Eniko Fox<p>deciding to just push system call args in order (so last arg at top of stack) made things so much easier and now i have MemCopy, MemClear, and MemSet system calls :D</p><p><a href="https://peoplemaking.games/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a> <a href="https://peoplemaking.games/tags/Bismuth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Bismuth</span></a></p>
Eniko Fox<p>here's the code for the framebuffer shenanigans:</p><p>(mov fb (sys 0x30 0)) ; set graphics mode 0</p><p>(mov i 0)<br>(while (ltu i (mul 320 200)) {<br> (stob fb i (band i 0xFF))<br> (mov i (add i 1))<br>})</p><p>(sys 0x31) ; present back buffer</p><p><a href="https://peoplemaking.games/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a> <a href="https://peoplemaking.games/tags/Bismuth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Bismuth</span></a></p>
Eniko Fox<p>neat. got me a framebuffer</p><p><a href="https://peoplemaking.games/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a> <a href="https://peoplemaking.games/tags/Bismuth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Bismuth</span></a></p>
Eniko Fox<p>wow i think i actually managed to get utf8 working in my VM? i used `setlocale(LC_ALL, ".UTF8")` and then print the UTF32 char 0x0107 ć from my program. the interpreter uses c32rtomb to convert it to UTF8 and then i fwrite that to stdout</p><p>but the character doesn't show up in the windows console cause windows is bad. but i figured out a workaround! i put this in my run.bat file:</p><p>set run=./bismuth.exe prog.bst<br>powershell $OutputEncoding = [Console]::InputEncoding = [Console]::OutputEncoding = New-Object System.Text.UTF8Encoding; %run%</p><p>and it runs the VM through powershell with powershell forced to use UTF8 and then it works somehow, yay! more bizarrely, it doesn't show me the powershell prompt but the regular command prompt, but it works anyway? idk why but i'll take the win!</p><p>also i have no idea if any of this is the right way to do things so, yanno, don't take this as a tutorial or anything</p><p><a href="https://peoplemaking.games/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a> <a href="https://peoplemaking.games/tags/Bismuth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Bismuth</span></a> <a href="https://peoplemaking.games/tags/Unicode" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Unicode</span></a> <a href="https://peoplemaking.games/tags/UTF8" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>UTF8</span></a></p>
Mai :v_trans:<p>Was stuck the past week(s) in my <a href="https://soc.saiyajin.space/tags/lisp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>lisp</span></a> implementation in <a href="https://soc.saiyajin.space/tags/zig" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>zig</span></a> on <a href="https://soc.saiyajin.space/tags/closures" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>closures</span></a>, as they provide an real challange with their capturing properties. Espc bc I didn't wanted to resort to using things like arbitary "rules" to restrict the language only for closure to work, or already implementing a tracing <a href="https://soc.saiyajin.space/tags/garbagecollector" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>garbagecollector</span></a> for this.</p><p>I rather choose to use <a href="https://soc.saiyajin.space/tags/ARC" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ARC</span></a> (Atomically Reference counting) for this, which comes with a few problems. And as I found nobody that has solved this problem, I've come up with a solution to it myself: 'Switchable references with strongchain elemination'. A bit bulky name, and the technique is still in it's beginning, but when implemented in rust the compiler dosnt complain and valgrind dosn't detects any leaks.</p><p>I've written a fairly big <a href="https://blog.lapyst.dev/posts/11-rollinglisp-001---of-closures-mutability-and-switchable-references" rel="nofollow noopener noreferrer" target="_blank">blogpost about it</a> too, including not only the whole explanation how it works but also alternatives I've considered. Check it out if you're interested!</p><p>Now I only need to translate it over to zig, but hopefully that dosnt take so long x3</p><p><a href="https://soc.saiyajin.space/tags/coding" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>coding</span></a> <a href="https://soc.saiyajin.space/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://soc.saiyajin.space/tags/software" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>software</span></a> <a href="https://soc.saiyajin.space/tags/oss" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>oss</span></a> <a href="https://soc.saiyajin.space/tags/foss" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>foss</span></a> <a href="https://soc.saiyajin.space/tags/ossdev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ossdev</span></a> <a href="https://soc.saiyajin.space/tags/fossdev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>fossdev</span></a> <a href="https://soc.saiyajin.space/tags/lisp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>lisp</span></a> <a href="https://soc.saiyajin.space/tags/zig" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>zig</span></a> <a href="https://soc.saiyajin.space/tags/rust" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rust</span></a> <a href="https://soc.saiyajin.space/tags/softwaredevelopment" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>softwaredevelopment</span></a> <a href="https://soc.saiyajin.space/tags/pldev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>pldev</span></a> <a href="https://soc.saiyajin.space/tags/programminglanguages" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programminglanguages</span></a> <a href="https://soc.saiyajin.space/tags/referencecounting" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>referencecounting</span></a> <a href="https://soc.saiyajin.space/tags/rc" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rc</span></a> <a href="https://soc.saiyajin.space/tags/arc" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>arc</span></a></p>
Eniko Fox<p>cleaned up system calls in my VM today. removed the temporary print call that just output an integer. added two system calls for converting (un)signed integers to strings, one system call for printing a string, and one system call for printing a single character</p><p>unfortunately that means printing an integer gets way more complex in the IR &gt;_&gt; figured this was better than having "print (un)signed integer" system calls and then later having to add the string conversion ones as well</p><p><a href="https://peoplemaking.games/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a> <a href="https://peoplemaking.games/tags/Bismuth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Bismuth</span></a></p>
Eniko Fox<p>was agonizing about implementing variadic functions in my VM, but what if i just took the cowards way out and say that if you want variable numbers of arguments you just gotta allocate memory, put your args in there, then pass that to the function and free it after? &gt;_&gt;</p><p>it was good enough for .NET, right?</p><p><a href="https://peoplemaking.games/tags/PLDev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PLDev</span></a> <a href="https://peoplemaking.games/tags/Bismuth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Bismuth</span></a></p>