linear-base
juvix
Our great sponsors
linear-base | juvix | |
---|---|---|
10 | 7 | |
333 | 300 | |
1.2% | - | |
5.9 | 9.5 | |
17 days ago | about 2 years ago | |
Haskell | Haskell | |
MIT License | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
linear-base
-
What I don't do is look at flour, water and salt, then map them all through an anonymous function, which gives me unstirred dough while leaving the original ingredients unchanged.
lol no Data.Dough.Destination
- Linear Types in Haskell
-
What is the longterm status of -XLinearTypes ?
Thanks for your interest in linear types. The sort of overarching answer is that the Covid crisis has put a serious wrench in our plans. There has been very little progress on the implementation in the past 2 years, I'm afraid. I hope to slowly pick up the pace again this year. But I make no promise as to specific plans just yet. When we have more visibility, we will publish a roadmap. This is not to say that nothing has happened at all: linear-base is getting a pretty significant release any day now, David Feuer (no affiliated with Tweag) has created linear-generics, an implementation of Generic which is compatible with linear types (there is a surprisingly subtle issue with Generic1, in particular, that I don't understand very well, so won't try to explain), we co-wrote two academic articles as well.
-
Does Haskell allow pure functions to use *encapsulated* impurity
See here for a linear quicksort implementation.
-
Monthly Hask Anything (March 2021)
Handle is defined in terms of UnsafeResource (in linear-base). This is where the linearity checking "stops". If you pattern match an UnsafeResource then you have to make sure that you correctly close/free it. Luckily, this only has to be implemented once in an internal module and is not exported in the public interface.
-
Tweag - linear-base makes writing Linear Haskell easy and fun
The optics sublibrary is not very developed yet. Because our arrays, which are one of the principal use-case, require a special kind of lens which we haven't managed to produce without too much code duplication yet. The design space is discussed in this issue.
-
Monthly Hask Anything (January 2021)
So to write a function f :: a %1 -> () you have to traverse the whole datatype a, see the Data.Unrestricted.Internal.Consumable and Data.Unrestricted.Internal.Instances, which introduces a type class consumable which implements exactly this functionality.
-
Ephemeral Purely Functional Data Structure And
Trying to run empty Ur shouldn't typecheck, because the Ur constructor is not linear. This seems to be an idiom used in other places of linear-base.
juvix
-
Ask HN: Who is hiring? (October 2022)
Heliax | Multiple roles | REMOTE (+-2 hours from CEST ideal) | Full Time | https://heliax.dev/jobs#all-jobs
Heliax is a public goods lab which was built on years of pioneering experience across distributed systems, programming language theory, and zero-knowledge cryptography. All our work is open-source. Examples of some of our projects are Namada (https://github.com/anoma/namada), a sovereign proof-of-stake blockchain; Juvix (https://github.com/anoma/juvix), an experimental programming language; and Taiga (https://github.com/anoma/taiga), a framework for generalized shielded state transitions.
We are currently actively hiring for a number of positions, most notably Senior Rust Engineers, Senior Full Stack Engineers, and a Protocol Security Lead.
For the Senior Rust Engineer position, we are looking for experienced Rust developers that are interested in applying novel research to create high-quality open-source technology and solve outstanding problems in the blockchain space. You'll be working on distributed ledger technology implemented in Rust, all the way up and down the stack from the P2P layer to consensus algorithms, smart contract systems, proof-of-stake incentive mechanisms, privacy-enhancing cryptographic components, and on-chain governance procedures.
For the Senior Full Stack Engineer position, we are looking for either web developers with experience using TypeScript and other modern web frameworks or software developers who have experience with Rust. Some representative examples of features you’ll be working on in this role are: adding support for Ledger hardware wallet connectivity, support for generation and use of file-based keys, generation of shielded transactions using cryptographic libraries, display of any digital asset (including NFTs) and associated transaction history, and on-chain management of staking and governance. It's a plus if you've previously worked with WebAssembly.
For the Protocol Security Lead, you'll be responsible for breaking protocols both in theory and practice in and outside the company, and assembling a team to help them do so. You'll receive a high degree of latitude and autonomy to prioritize tasks and search for the weakest links in complex systems in order to break them. The rough structure could be compared to Google Project Zero, but with a focus on cryptographic protocols & implementations instead of web technology writ large.
-
Ask HN: How to get a job as a compiler engineer?
> What are the companies that do exciting stuff in compilers?
Some companies solve problems that have a larger component of parsing and evaluating things.
One example is Hasura's SQL-to-GraphQL layer: https://hasura.io/
Another example is GitHub's CodeQL: https://github.com/github/codeql
A third example -- I forget the name of the company -- parses Counter-Strike games real-time and restructures this data for better analytical introspection, e.g. for betting, time-scrollable replay, 2D rendering, etc. There appears to be a lot of hard-earned going from a stream of events monkey-patched over two decades, to a complete model of a game (who's on what team, who is dead, what round is this, etc.)
Microsoft does a lot of interesting compiler-related stuff, too, of course.
Then there's blockchain: A lot of programming-language enthusiasts have been employed to write VMs and DSLs to express safe application-level environments. An example is Anoma's Juvix: https://github.com/anoma/juvix
A job I was looking at involved building a more programmatic interface to some legacy SCADA systems, i.e. make old factory monitoring systems interoperate via a DSL. The idea, I think, is to transform and manage the configuration files from a dynamic GUI system.
tl;dr: If your main tool is a compiler, there are compiler problems everywhere.
-
Missing line in a smart contract leads to $10M hack
I dont know how hard it would be to port it to other platforms. Different Virtual machine.
Tezos uses a human readable stack based language as a low level represenation that is suited for formal proofs: https://tezos.gitlab.io/008/michelson.html
If archetype depends on that then its going to be hard to port but i dont think it does.
Another interesting project in development is https://juvix.org/ which targets more backends beside michelson like llvm and wasm. Might run on eth2/Ewasm.
There are also blockchain specific features like: https://medium.com/tqtezos/tickets-on-tezos-part-1-a7cad8cc7...
-
Why would someone build on Tezos rather than Solana?
Rust is very nice and might be a good fit for smart contracts tough i am not sure what you really gain over Haskell. In Tezos you have a more developed ecosystem and can code in Python, Ligo, Archetype, Haskell and in the future Juvix. You also have a human readable low level (assembly like) representation in Michelson that you can do optimizations and/or run formal proofs with Coq. Smart contracts are a very very special beast and i am somewhat sceptical about developing them in a general purpose language vs a domain/smart contract specific one in the long run (but i could be wrong here).
-
ELI5 This “superior tech” Tezos has
and in the future: https://juvix.org/ (This stuff is just ridiculously advanced)
-
Dactylobiotus
Github: https://github.com/metastatedev/juvix
Best regards,
What are some alternatives?
koka - Koka language compiler and interpreter
plutus - The Plutus language implementation and tools