ananas

@ananas@sopuli.xyz

Physics, coding and black metal.

Vyssiikkaa, koodausta ja bläck metallia.

Apparently also politics when it doesn’t devolve into screaming into aether.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

LLVM, MLIR (or any ready-made IR) are not a good fit for learners. Roll your own backend pls if you wanna learn (same shit with LP generators!)

These toolchain are created for experts to create industrial-level compilers. Even if you think you got a syntactic design concept that is such hot shit that you can’t wait to get it bootstrapped, even if hell, it proves Rice’s theorem wrong, please, write a simple interpreter for it to prove your syntax works. In fact, I...

ananas,

Good opener!

These toolchain are created for experts to create industrial-level compilers. Even if you think you got a syntactic design concept that is such hot shit that you can’t wait to get it bootstrapped, even if hell, it proves Rice’s theorem wrong, please, write a simple interpreter for it to prove your syntax works. In fact, I think one way you can test your language’s design is to have it mooch off an established VM like JVM, CPython’s VM or CLR.

I agree in principle, but mooching off established VMs will affect your overall language design since and significantly push you towards language “grammar” those VMs are built to deal with. Syntax is pretty irrelevant early on and should be made easy to change anyways.

But if you wanna ‘learn’ compiler design, I beg you to roll your own backend. You don’t need SSA or any of that shit. You don’t need to super-optimize the output at first try. Just make a tree-rewrite optimizer and that’s that.

I don’t think I really agree with this. Of course, if your goal is just to learn how everything works, rollng your own is the best option. But if you want to do more than that I think not taking advantage of tools available (such as LLVM) is suboptimal at best. It might be fine if you are unemployed or can slack off enough to spend copious amounts of time on your language, but you will spend your time on rewriting tiny details over and over that might be fun to make, but it won’t help with getting your language into usable state. There’s plenty of optimisations you can (and should) do even before you pass on anything to LLVM if the goal is to think about those.

Same is true with LP generators. From Yacc to ANTLR, they just make the experience harder and less rewarding. I know hand-rolling LP is hard in a language like C, in which case, don’t fucking use it lol. There’s honestly no inherent worth in using C in 2024 for compiler design.

I’m not sure I got your point correctly here, but if I did, I heavily disagree. Like it or not, unless you plan to write everything from hardware up from scratch in your language, you need to adhere to a lot of C stuff. Whatever your system C ABI is, that is the layer your language needs to be able to talk to. And that, for better or worse, requires to take C heavily into account.

But there’s still use for C in being the subject of your compiler. It’s a very simple, straightforward and more importantly, standardized language, you don’t need to write a runtime for it, because when it comes to both UNIX and Windows, runtime is OS itself! Just make sure you add a syscall interface and then C runtimes like glibc and CRT can be easily strapped.

Heavily disagree with C being either simple or straightforward, but totally agree with the important part that it is standardised.

I know my point about using LP generators is preaching to the choir and most people despise them — but I just don’t understand why people love to use IRs/ILs when doing so teaches you shit.

I recommend beginning to design your language with the IR – your IR.

Anyways tell me what you think about my ‘take’ on this. Of course I am not saying you are ‘less knowledgeable’ for using LLM or MLIR, I’m just saying, they don’t teach you stuff.

Still, some people just use LLVM and MLIR as a final ‘portable’ interface, having done the optimization on graphs and trees. i think there should be some sort of ‘retargatble assembly’ language. Like something with fixed number of registers which… oh wait that’s just a VM!

I mean, you answer your own questions here. People love to use IRs/ILs because things like LLVM IR are the closest thing we have to portable assembly we have, and it makes it simpler to get into running state. Most compilers have their own internal IR (maybe even more than one) anyways, regardless or not if they use something like LLVM. Understanding how LLVM/MLIR/whatever IR is designed is pretty important before you start rolling your own if you want it to be useful.

Also you don’t need to necessarily translate to a super super low-level language. Just target C. GNU C to be exact. Cyclone does that, in fact, I am planning to bootstrap my functional language, which I named ‘Xeph’, based on Zephyr ASDL, into GNU C as a test. Or I might use JVM. I dunno. JVM languages are big these days.

Targeting C is completely valid. Though I see no reason to use GNU C – just use the actual standardised versions. And I think what you target should be part of your language design and suit what your language’s purpose is, not stuff to pick at random whenever.

PS: Do you guys know any cool VMs I can target beside CPython and JVM? Something with AoT perhaps?

Besides BEAM VM that was already mentioned, Lua VM is pretty interesting to target (not AoT though) if that’s your thing.

ananas,

It’s pretty much the only target that is open-ended, high performance, and portable.

I wouldn’t call wasm really portable. And webassembly doesn’t call itself portable either.

Limiting out everything non-little-endian, requiring IEEE754-floating points and forward-progress guarantees is not really portable anymore.

ananas,

That sounds interesting, I probably want to take a look at the book too.

ananas, (edited )

This is front and centre on the homepage…

I stand corrected.

It makes assumptions about the native architecture for the sake of performance, but it’s still portable because you can implement all that behaviour in a VM if necessary. The important thing is that the behaviour is well defined.

It doesn’t have to be native architecture, just the execution environment (i.e. you can emulate it).

But I don’t see why by that logic any turing-complete language wouldn’t be in the group “portable”, including any hardware-specific assembly. Because you can always implement a translator that has well defined-behaviour? e.g. is 6502 assembly now portable that C64 and NES emulators are commonplace? (And there even is transpiler from x86 asm to 6502 asm). I do not think many of us see this as a good definition for portability since it makes the concept meaningless, except in cases where the translation layer is not feasible due to available processing power or memory.

It’s not perfect but I don’t think the situation is any worse than in Java, C#, Lua, etc. If your hardware has non-standard floats you’re going to have a bad time with any VM.

I mostly agree here. But I think portable language is not the same thing as a portable VM, and that portability of a language target is different from VM portability.

ananas,

Tää vaatisi nykyään että maksaisi ite siitä että tekisi vapaaehtoistöitä valtiolle. Sen lisäksi vaikka SFS vahvistaisikin jonkun kansallisen standardin aiheesta, ei sen noudattamiseen ole mitään takeita.

ananas,

Osa näistä verouudistuksista osuu kyl kohtuuikävästi itteeni, mut oikeestaan ainoo mistä oon totaalisen eri mieltä on noi lääkkeiden ja henkilökuljetusten nosto tonne korkeempaan verokantaan. Tietty saattaa olla et siirtää isomman osan ostoksista taas Ruottin tai Saksan puolelle.

Nämä pienituloiset kannattavat leikkauksia – yhteiskunta on juopunut velkarahasta, sanoo Tommi Nuolioja (yle.fi) Finnish

Jotenkin hullunkurisia nämä hetkellisesti nolostuneet miljonäärit. Toinen haastateltu tosin on tyrkyllä politiikkaan, joten tällaisella “suoraselkäisellä” puheella paikka hillotolpalla saattaa vielä vaikka auetakin ja siinä vaiheessa tietysti on kivaa että on tämmöistä katu-uskottavuutta leikkauksien suhteen....

ananas,

Mää oon kyynistyny näitten sankareiden kans, mut ainakin nää saa mut vakaasti sille kannalle että taloushistorian pitäis olla oppiaine kouluissa.

ananas,

En usko et se ideologia tossa on se mille ihmiset tuossa naamapalmuaa.

ananas,

Ei se oo siitä kiinni ampuuko itseään jalkoihin, enkä mää epäile hetkeäkään sitä eivätkö nämä kaverit uskoisi itse tuohon mitä sanovat.

Enemmän se tulee siitä, että heidän antamat kommenttinsa eivät anna oikein kuvaa siitä, että ajattelu olisi ollut se millä olisi päädytty uskomaan nykyisiin mielipiteisiin. Aivan riippumatta siitä mitä mieltä itse kukin niistä mielipiteistä on.

ananas,

Ota Suomalainen pankki jolla on halvimmat juoksevat kulut (toivottavasti 0€/kk), ja kilpailuta toinen pankki EU-alueelta.

Suomen pankkien tarjonta kuluttaja-asiakkaille on aika heikkoa, verrattuna esim. saksalaisiin vastineisiin. Mulla on suomalainen pankki vain sen takia että voin maksaa helposti suomalaisella viitenumerolla varustettuja laskuja ja tunnistautumista varten, kaikki käyttörahat ja muut pankkipalvelut on Saksasta. Siellä pelkästään rahojen istuttaminen tilillä maksaa 2.8% vuosikorkoa kuukausittain, minkä lisäksi on ilmainen masteri. Nordnetti on kans arvo-osuustiliä varten, koska en jaksa tehdä veroilmoituksia ite sen suhtee.

Erikoinen ennätys: Suomen tuulivoimalat kuluttavat sähköä eivätkä tuota mitään (yle.fi) Finnish

Tiistaina aamupäivällä Suomen yli 1600 tuulivoimalaa, joiden kapasiteetti on ennätysmäiset 7000 megawattia, eivät tuottaneet yhtään mitään vaan itseasiassa kuluttivat sähköä. Tuulivoiman tuotanto oli esimerkiksi klo 11.13 peräti 25 megawattia miinuksella....

ananas, (edited )

Tää ei oo vastustuspostaus tai mitää, kunhan laitan lisää numeroita aiheen parista tiskiin.

Tätä päivää on kulunut 13.5 tuntia, ja sähköä kulutettu 0.12TWh. Tämä on ollut hyvin lauha päivä. 8.4GWh ois kestänyt tämmöisenä päivänä reilun tunnin. Suurimmat toiminnassa olevat akkusysteemit verkkoon ovat 3GWh suuruusluokkaa. (Toki muunlaisia energiasäilöjä on isompiakin, varsinkin jos laskee vesivoimaloiden patoaltaat mukaan.)

ananas,

I don’t think many people have good understanding of what living standard even actually means, which in turn causes fear and anxiety when they are told it would drop. And I think it is much overexaggerated how much this drop would actually affect daily life for majorty of the people around the world.

What non-FOSS software have you been unable to quit?

For me, Google video search, Google books (Internet Archive is good, but doesn’t always have the same stuff), Adobe InDesign (but in the process of learning LaTeX), and Typewise. As for the Google stuff, I liked Whoogle a lot, but almost all their instances seem to have been blocked or shut down. Also, apologies if this is...

ananas,

Well I have separate computer for music production which I don’t think has any FOSS software on it, so everything that has to do with that.

ananas, (edited )

I guess that list could be helpful for some, but for me (and IMO, music production in general), it’s woefully inadequate to the point of hilarity.

Pro audio has been a complete mess in Linux for ages, and it’s not even close to where it should be in order to be generally usable. Every 7-8 years or so when my old music computer starts to die I try and check if it has made substantial improvement, but apart from Musescore actually being good, it is hard to find any tangible progress from 15 years ago. Pipewire gives me some hope, but it’s far from production-ready in Pro audio world. And I’m not really going to get rid of all the VST stuff I’ve bought in the last 20 years (all of which still works out of the box on a new computer!)

In addition, making music is the one hobby I have to get me away from tinkering with computers. I am not interested if I could make my Linux setup equally good if I spent weeks tinkering on it, when it’s literally easier for me to work for a week and buy a Macbook Air (or whatever crappy windows PC), where I get all of my old work ready for action in under a day, and I can trust that everything I do will just work, and work well at that. And it does it while allowing me to work remotely with other musicians since we can all use the same stuff.

I’m pretty sure I’ll be in my grave before FOSS Pro Audio ever gets there, unfortunately.

Edit: Ironically, the one FOSS thing I would love to use in my audio stuff is Guitarix, which is then the thing that doesn’t interop well with anything else. And I would love to have easy way to do all that I do on (Win/Mac Os) on Linux, but 20 years of disappointment is pretty hard to overcome at this point.

ananas,

I’ve tried all of them except Zrythm. In fact, REAPER is my DAW of choice. But while that works on Linux, a lot of the plugins I require do not (or well, I guess it depends on how people define “work”), and REAPER in itself is not FOSS.

ananas,

"But the Finnish position is clear: We are not right now sending any troops and not willing to discuss that.”

This is why you read the articles, folks.

ananas, (edited )

Tässä on niin paljon virheitä, etten tiiä mistä ees alkais purkamaan. Selkeesti yhteiskuntopin tunneilla ei ainakaan oo kuunneltu. (Edustuksellinen) demokratia ei lopu äänestämiseen, se alkaa siitä. Erilaiset eturyhmät ovat olleet jokaisen toimivan demokratian osa niin kauan kuin demokratia on ollut juttu.

Liitot taasen ovat vain yksi taho, joilla toki komppaajia, mutta eivät heidän vaatimukset edusta koko kansan tahtoa, eikä kukaan ole heitä valinnut ja antanut heille valtaa puuttua demokraattisesti valitun hallituksen toimiin.

No, Suomen laki on tästä kanssasi eri mieltä. Sen lisäksi liittojen johto kyllä valitaan ihan vaaleilla, et kyllä, ne on valittu sinne. Eturyhmät yllättäen saavat ajaa omien jäseniensä etuja.

Jos hallitus taipuisi, ei kansan, vaan ay-pomojen vaatimuksiin, aukeisi jatkon kannalta sellainen syöpäpurkki että huh.

Ensinnäkään, tän kuvaaminen “ay-pomojen vaatimuksina” on aika helvetin älyllisesti epärehellistä, teit sitä tahallas tai et. Toiseksi, tää ei oo mikään “syöpäpurkki jota ei voi aukaista”, se on ollut auki yli 200100 vuotta. (edit: en osaa laskea)

Kukaan tuskin ennen vaaleja myöskään oletti että tällaiseen toimintaan joudutaan puuttumaan, ja itse ymmärsin lakko-oikeus puheet perinteisten työnantaja-puolten painostukseen tarkoitettujen lakkojen kantilta.

Aika moni näki tän tulevan, koska tätä on kirjaimellisesti tapahtunut ainakin 1800-luvun lopulta asti samankaltaisissa tilanteissa. Luuletko että Suomessa ja muissa Pohjoismaissa omistajapuoli on hyvää hyvyyttään antanut paremmat lähtöoikeudet työntekijöille kuin muualla, sen sijaan että ne olisi voitettu työtaisteluilla, joita nyt yritetään rajoittaa?

ananas,

Onkohan tää ny oikeesti yritys saaha sopua vai infotilaisuus että onpa ikävää ku lakkoilette.

ananas,

Mää näkisin tän mainostamisen spämminä.

Yleishyödyllisiä, miten sen haluaakaan tulkita, asioita on 13 tusinassa, joten tää näyttää lähinnä tulvaporttien aukomiselta. Enkä nää miten jonkun youtubettajan agenda jonkun pelin pelastamiselle on sen yleishyödyllisempää kuin about minkä vaan muunki ei-kaupallisen agendan ajamine.

Edit: itse asiassa jos pelin ostaminen on se tapa mitä pelastamisella ajetaan, tää ei oo ees epäselvä keissi vaan ihan suora mainos.

ananas,

Unohin muuton yhteydessä käydä ottamassa tuon pois päältä ja kattelin ihmeissäni ku paketit päätti mennä väärään kaupunkiin. Tuntu taas järkevältä.

ananas, (edited )

You don’t even need to go to the 90’s. E.g. RSS feeds were pretty much killed by EEE in mid-2000s. XMPP is another more recent victim.

ananas,

Sometimes I wonder how some lawyers can sleep at night.

ananas,

Ei mulla oo menny ihon alle, mielestäni en oo todennu mitään erityisen aggressiivista. Jos on jäänyt eri vaikutelma niin oon pahoillani.

Mun pointti on siinä et se nimi on aika kaukana huippusyistä maahanmuuttajien kohilla. Meillä on ihan systemaattisia ongelmia jotka kohdistuu paljon maahanmuuttajiin ilman rasismiakin.

Tästä esimerkkinä voi ottaa esim. työnhakukulttuurin. Pohjoismaissa ei tavata ylenpalten liioitella omassa CV:ssä. Etelä-Aasia (ja Irlanti, mut niistä uskallan väittää ettei ihmiset tee assosiaatiota englanninkielisen nimen takia) on sitten toista laitaa. Kaunistelematta sanon nyt et niissä valehellaan silmät päästä. Jos oot rekryhommissa ja sulla on hyvin rajallinen aika haastatteluille, se on vaan ihan suoraan käytännöllisempää heivata Etelä-Aasian CV:t roskiin, koska et pysty erotteleen niistä taitavia tyyppejä käytännössä mitenkään. Onko tää oikein? Ei tietenkään, mut tekee hemmetin vaikeeksi järkevän hakuprosessin. IT-alalla ja omalla firmalla tähän on tullu ratkaisuksi et ennen ku ees katon CV:tä tai mitään niin lyön ennakkotehtävän jonka tarkastan nimettömänä, mut toi ratkaisu ei oo toimiva esim. raskasteollisuudessa. Ja tää on vaan yks toistuvasti vastaan tuleva esimerkki, ja mää en oo keksiny miten kaikista niistä eroon pääsis.

Toki oon yrittäny näitä asiakkaillekki mainostaa, mut siellä mulla harvemmin on mitään sanomista rekryämisen kanssa. Mitä mää voin tehä on kertoo näistä ongelmista maahanmuuttajille ja yrittää tiedustella miten joistain ongelmista on päästy yli. Mut tää vaatii sitä et lähtee oikeesti purkaan niitä ongelmia jotenkin.

ananas,

Ah, sitten vaan ihan tulkkasin väärin, pahoittelen.

Joo, ei mittää, mun kirjoitustyyli o vissii vähä huono ku menee aina parin viestin verran et pääsee samalle aallopituuelle about kaikkien kans vaikka yleensä (kuten nytkin) oon periaatteessa samaa mieltä perusasioista.

Itse hoidin rekryn usein niin, että jos hakijan kohdalla heräsi joku epäilys siitä että onkohan tuo osaaminen oikeasti kohdillaan jos ei mitään julkista koodia ole nähtäväksi, niin teetätin pienen kotona tehtävän “ohjelmointiprojektin” (max. ~2h suht pätevältä tekijältä) joka sivusi jollain tapaa tärkeimpiä aiheita joita työssä tarvitsisi ja kävin sen hakijan kanssa läpi, että sain vähän kuvaa siitä että mikä ajatteluprosessi siinä taustalla oli ollut.

Joo, mää tulin siihen tulokseen et vaadin kaikilta jonkun näytön, kun se oli IMO tasapuolisempaa loppupeleissä, ja karsi samalla myös “20 vuotta oon ollu Nokialla”-tyyppejä pois ihan hyvin. Ja samaan tapaan kattelin tehtävii ettei taitavalla kaverilla siihe pitäis hirveesti aikaa mennä. Menin sillee et oma esimerkkitoteutus oli about ~20-30min, sillä oletuksella et siihen menee se ~2h just valmistautumatta. Meillä on sekä sulari- että webbipuoli, ja webbipuolella tota ei oo käytetty enää kaikille, mut sularipuolella toi on vaan pudottanu niin paljon turhaa työtä et se ei oo lähössä ihan heti pois. Meikän puolella ei myöskään chatgpt pelasta hirveästi, kun sen vastaukset on keskimäärin niin päin helvettiä että nekin tulee karsittuu. GPT4 osaa paremmin mut siinäkin yleensä tulee haastiksessa kysymysmerkit vastaan kun kyselen et miksi jotkut asiat on toteuttu tietyllä tavalla (enkä ees oota hyviä vastauksia yleensä, kuhan on vastaus).

Toki moni hakija vähän motkottaa noista tehtävien teettämisistä, mutta perskohtaisesti en suostunut palkkaamaan ketään jos minulla ei ollut mitään muuta tapaa arvioida tyypin työn jälkeä, ja moni työnantaja pitää moniportaista hakuprosessia liian työläänä (ja vaatiihan se työtä). Itse pidin parempana tuota kuin sitä, että suoraan nakkaisin kaikki esim. tietystä paikasta tulevat hakijat suoraan Ö-mappiin

Joo, ehottomasti samaa mieltä kaikesta tässä. Mää yritän ajaa kans sitä et ne jotka händlää sen ennakkotehtävän hyvin tulis sisään riippumatta niitten CV:stä, koska sen lisäks et se on paljon puoluettomampaa arviointia, sillä saa hyvin mitattua harrastelijoittenki skillejä ja toivottavasti sisäänheitettyy uusia semmosia kans sisään alalle.

Sitä ehkä tässä siis tahtoo sanoa, että vaikka ymmärrän täysin sen tuskan, mitä IT-rekryt voivat olla, niin mä en ainakaan itse henkilökohtaisesti ole halunnut lähteä sille linjalle, että kansallisuuden pohjalta tiputtaisin hakijoita pois, mutta toisaalta isoin firma jossa olen ollut töissä oli ehkä viitisentuhatta ihmistä kansainvälisesti, eli se hakijavolyymikään ei ollut aivan täysin järjetön

Joo, mää en oo ollu rekryämässä koskaan hirveen isossa firmassa (ja teen vain teknistä puolta muitten hommien ohessa muutenkin), että meidän jutuissa yleensä tulee vastaan se et ku rekryäjien määrä on suurimman osan aikaa yksinumeroinen niin ei vaan riitä resurssit haastatella kaikkia hakijoita kun niitä hakijoita on säännöllisesti enemmä ku meidän firmassa on työtekijöitä. Ja joo, itsekään en halua tiputtaa ketään kansalaisuuden perusteella, ja sama IMO koskee koko meiän firman rekrytiimii, ja sen takia me ollaan yritetty tehä just kaikkee tommosta ennakkotehtävää ja portfolioitte kattomista ja ajettu anonyymisyyttä siihen asti et ekan kerran oltais naamatusten.

IT-alalla tää kaikki on vaan niin paljon helpompaa kuin esim. jossain kemianteollisuudes, missä ei voi vaan laittaa jotakuta tekemään näyttötestiä (onneks IT-alalla kaikki omistaa tuotantovälineensä). Ja tämmösten takia mää ymmärrän miks tämmöset muutokset tapahtuu raivostuttavan hitaasti. Mää nään tämmöset oikeena syynä monella tämmösellä alalla olla varuillaan ihan ilman rasismiakin, mikä taas vaihteeks ei oo reiluu, mutta en nää yleistä ratkaisua, mikä toimis joka paikassa. IT-hommis uudemmilla firmoilla taas nykyään sitten tosiaan alkaa kuulostaa tekosyiltä helposti asiat, kun vaikka siinä ois ongelmia niin ainakin meillä o keinoja ratkoo jo tota jollain tasolla vaikka niitten käyttöönotossa onkin inertiaa.

Mut sit minkä takia vähän tartuin alunperin oli se, et pitäis muistaa et ees meiän IT-hommis nää ei oo selkeitä rajoja eikä pitäis unohtaa et nää ongelmat on aika hiton laajoja ja niitten ratkasut vaatii sekä työtunteja ja aikaa. Ja tää on se miks mää toivon ettei se rasismi ois asia mitä huuetaan syypääksi, kun se tuppaa tappaan motivaatiota niiltä jotka näitä miettii ja tekee hirveen vaikeeksi ratkasujen miettimisen. Mää en tiiä miten ratkasisin rasismia ihmisten mielistä, mut voin hyvin keksii jonkin pikkuratkasun joka parantaa ainakin omassa firmassa tilannetta. Niinkuin ilmeisesti itsekin teet.

Joo, ja anteeksi rantti, rakennan tekstimuureja näköjään.

ananas,

A lot of cleanup and refactoring and redesign to enable easier lsp support. Finally finishing the core components of the language (getting branches to work) for the VM. Then I guess it’s time to start plugging LLVM back in and start writing a transpiler from my IR to LLVM IR.

…also should update the language blog, it’s been a while.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • mdbf
  • ngwrru68w68
  • InstantRegret
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • tacticalgear
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • DreamBathrooms
  • anitta
  • ethstaker
  • GTA5RPClips
  • modclub
  • tester
  • provamag3
  • osvaldo12
  • cisconetworking
  • everett
  • cubers
  • normalnudes
  • megavids
  • Leos
  • lostlight
  • All magazines