7 ms·
Pkl was built using the GraalVM Truffle framework. So it supports runtime compilation using Futamura Projections. We have been working with Apple on this for a
by grashalm 3y ago
Pkl was built using the GraalVM Truffle framework. So it supports runtime compilation using Futamura Projections. We have been working with Apple on this for a while, and I am quite happy that we can finally read the sources!
https://github.com/oracle/graal/tree/master/truffle https://github.com/oracle/graal/tree/master/truffle
Disclaimer: graalvm dev here.
Edit: typo
- deleted 3y ago[deleted]
- simonfxr 3y agoI guess you mean Futamura projections?
- lionkor 3y agoI wish people named more tech products after popular media instead of common words. Would make it equally hard to web search, but at least it would be funny for non-techies to listen to
- notso411 3y ago[dead]
- deleted 3y ago[deleted]
- nindalf 3y agoYou'll really like the Quantum Resistant key exchange algorithm - Kyber. A related project is Cryptographic Suite for Algebraic Lattices or CRYSTALS. Sadly they renamed Kyber to MLKEM.
- MarkSweep 3y agoThere is also Dilithium: https://pq-crystals.org/ https://pq-crystals.org/
- grashalm 3y agoDamn you autocomplete! This happens all the time :D
- jgrahamc 3y ago> Pkl was built using the GraalVM Truffle framework. So it supports runtime compilation using Futamura Projections. What now?
- txdv 3y agoA LOT of projects in the Java world do add new features to java. My favorite is CraC
- deleted 3y ago[deleted]
- verticalscaler 3y agoOn tonights episode of Futurama bender and the gang explore the temple of Pkl on planet VM where truffles are considered the holy graals and barely run away in time from - The Compilations - an ancient secretive order of silver voiced kong-fu monks tasked with protecting the shrine from alien invaders as has been foretold in prophecies - and strangely reminiscent of 20th century Earth doo-wop group The Drifters. Cue chase montage shenanigans with Under The Boardwalk playing in the background Do you smell toast.
- giancarlostoro 3y agoI definitely did a double take to make sure they didn’t write Futurama.
- maxfurman 3y agoI absolutely thought they wrote Futurama until I saw this comment
- verticalscaler 3y agoThe mind. It is a curios thing.
- macintux 3y ago
- krajzeg 3y ago> ...GraalVM Truffle framework... Futurama Projections... I know it's partly on me for not knowing the domain, but I honestly suspected somebody is trying to make fun of me with some concentrated technobabble. Especially since I wouldn't expect the topic (configuration languages) to require complex mathematical machinery to work with. Now I have something interesting to dig into.
- leonheld 3y ago> but I honestly suspected somebody is trying to make fun of me with some concentrated technobabble Let me tell about a revolutionary device called a Turbo encabulator.
- ughitsaaron 3y agosounds like a perfectly cromulent topic to embiggen our knowledge.
- egberts1 3y agoPerfectumentous!
- ChrisMarshallNY 3y agoAn author named David Duncan wrote a series of books, called A Man of His Word (and A Handful of Men)[0]. Great books. One of the races in the books was the Anthropophagi (basically modeled on New Guinea headhunters). They talked like that. [0] https://en.wikipedia.org/wiki/Dave_Duncan_(writer) https://en.wikipedia.org/wiki/Dave_Duncan_(writer)
- fuzztester 3y agosupercali ...
- fuzztester 3y ago[flagged]
- deleted 3y ago[deleted]
- SirGiggles 3y agoNot completely related to the OP, but is Truffle going to be upstreamed as part of Project Galahad or will it remain as a library maintained by Oracle Labs? I ask cause the Project Galahad page on openjdk.org is a bit sparse on details.
- grashalm 3y agoThe truffle compiler extensions in Graal will be part of Galahad. For example the partial evaluator. The truffle framework and all the languages are consumed from a maven repo as a regular java library these days. Some background on the recent changes there: https://medium.com/graalvm/truffle-unchained-13887b77b62c https://medium.com/graalvm/truffle-unchained-13887b77b62c
- ithkuil 3y agoFutamura
- beanjuiceII 3y agoThat's iron chef futamura to you
- lpage 3y agoYour mention of Futamura Projections was a nice reminder of how very mathy/theoretical foundations underpin Nice Things in high-level languages, like Hindley–Milner inspired type systems and modern optimizing compilers targeting SSA form. Value Lattices in Cue [1], another config programmable configuration language, also fall into this bucket. [1]: https://cuelang.org/docs/concepts/logic/ https://cuelang.org/docs/concepts/logic/
- corysama 3y agoCurrently using Cue in a major project. It can be a puzzle. But, we like it a lot. Wish it had a bigger community.
- aardvark179 3y agoOh wow, this wasn’t the sort of language I expected to see being built on Truffle, but I’ll be really interested to take a closer look when I’m on a decent net connection.
- Hixon10 3y agoDo you know, why they use both ANTLR and Truffle?
- grashalm 3y agoTruffle has no opinion on how you parse the sources. It cares about how you execute them from an intermediate Truffle guided representation produced by the parser. In other words antlr and truffle are a great fit. We even use this pairing for our example language simplelanguage. https://github.com/graalvm/simplelanguage https://github.com/graalvm/simplelanguage
- Hixon10 3y agoThanks! I haven't seen before usage of Truffle and ANTLR together, but it makes sense.
- summerlight 3y agoIt'd be interesting to understand what kind of performance problem Apple had and tried to solve with GraalVM/Truffle. I've seen some instances of heavy configs that generate literally several gigabytes of data, but those were usually not significant bottlenecks since configs are not updated very frequently. Of course, I know those two frameworks are one of the engineering marble of the age and would understand even if they decided to go without any concrete needs for it.