Comments (4)
Thanks for the quick reply! That's very interesting, I like it
from passerine.
The website's a bit outdated: So vaporization was a memory management technique I was working on for a while. It's essentially SSA + COW — at compile time, the compiler tracks how data moves through the program, and automatically determines the lifetime of certain objects. Using this information, it optimizes away what it can, and leaves simple instructions for the interpreter to automatically free memory when applicable. This circumvents the heap, and essentially makes just about everything really fast alloca-style allocation.
The main issue with this is closures. When you close over some data, you're basically making a reference to some data. This isn't an issue for COW semantics, the issue is mutation. Why have mutation in a functional language? a quote from withoutboats:
As I said once, pure functional programming is an ingenious trick to show you can code without mutation, but Rust is an even cleverer trick to show you can just have mutation.
Passerine isn't Rust, but it takes inspiration from it. Some problems can be solved elegantly with mutation, there's no other way to put it. I'm considering removing mutation in closures, but I'm still thinking about if. If I do that, I can move back vaporization, which will be pretty cool. For now passerine is just reference-counted with mechanisms in place to prevent cycles.
I've got to go for now, but I'll follow up with what Veritable is about later. Hope that helped clear some things up! (This was a super quick post, so please forgive any silly eratta.)
from passerine.
One more thing, I'm intrigued by the Veritable Computation Initiative but little information is given about it. Is a website coming soon?
I'm working on a website, but it might be a while before I pull everything together.
What is Veritable? From kitbag's¹ README:
Many issues seem daunting today because we do not yet have the tools to solve them. Veritable is an open initiative to develop new tools to solve today's [and tomorrow's] technological problems. There are currently two publicized Veritable projects:
- Passerine, a small extensible programming language.
- Solidarity, a distributed platform built for communication and collaboration.
So to answer your question: Veritable is an Initiative to develop tools to tackle hard technological problems (we might not know exist yet). I'm starting small – with a programming language – but I'm in this for the long run:
My next goal [after Passerine has matured] is Solidarity, another project of the Veritable Computation Initiative. It will act as an alternative to the world-wide-web; built around privacy, collaboration, versioning, and local-first applications. I plan to use Passerine, Rust, and Wasm to build this future.
— Me, quote from here
My overarching goal is to create an organization of project leaders each overseeing and actively working on a bazaar-style open-source passion projects/tools (cornerstones) that further these goals.
It's fairly very ambitious, and will undoubtedly take a lot of hard work to pull off. This is something that will happen on the order of years, not days or weeks. I want to do it the right way: I'm still working out how leaderless merit-based governance, contribution recognition, project sponsorship, and a number of other factors can work together to create a strong, directed, – well – Initiative toward a common goal.
I know Veritable all sounds a bit crazy, but I'm putting in the work, taking things one day at a time, and hoping for the best.
–
- Kitbag being the (WIP) protocol that underpins Solidarity.
from passerine.
I appreciate the detailed reply! I'm super interested in stuff like this, and I'll be watching your progress from afar.
As a side note, you might be able to get some general inspiration from Urbit because they're doing something completely different (OS dev), but starting at ground 0 with a base programming language. The solutions to their various implementation challenges may be helpful to you.
I wish you the best on achieving your dreams with this/these projects!
from passerine.
Related Issues (20)
- More Rust idioms HOT 7
- Efficient parsing of UTF-8 HOT 3
- Intern strings in the Lexer HOT 3
- Commit Convention? HOT 1
- cargo run doesn't pretty-print errors
- VM should be Send HOT 1
- Small error in the README? HOT 9
- modulo vs remainder HOT 3
- Some questions regarding suitability for embedded systems. HOT 8
- Decimal floating point HOT 11
- Tracking Issue: Vaporization Checklist HOT 2
- Github Sponsorship HOT 4
- A few Exciting Announcements HOT 4
- Add `match` expressions HOT 2
- The installation shell command on Passerine's website doesn't work. HOT 10
- Document hoisting semantics HOT 1
- Document effect system
- Alternative Backends (Minivm, Wasm, LLVM) HOT 3
- Change README code example
- Remaining tasks from `big-refactor`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from passerine.