kaleidoscope
dhall
Our great sponsors
kaleidoscope | dhall | |
---|---|---|
9 | 10 | |
1,017 | 900 | |
- | 0.6% | |
0.0 | 7.3 | |
about 4 years ago | 9 days ago | |
Haskell | Dhall | |
MIT License | BSD 3-clause "New" or "Revised" License |
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.
kaleidoscope
- Implementing a JIT Compiled Language with Haskell and LLVM (2017)
-
Should I abandon using haskell for my compiler?
Comparing the haskell and cpp implementations of the LLVM tutorial lead me to believe it might be faster to learn haskell and implement the compiler in haskell than to implement it in cpp.
-
What would be your programming language of choice to implement a JIT compiler ?
I think for writing compilers Haskell deserves to make the list. It is really excellent at creating DSLs. https://www.stephendiehl.com/llvm/
-
Proposal to Merge Pyston with Cpython
I'm no expert, but you might be interested in: https://llvm.org/docs/tutorial/
There's also a Haskell version if you'd prefer: https://www.stephendiehl.com/llvm/
Idk how to do this in python as I'm not really good with it, but in C, to make your compiler a JIT, you would `mmap` a region as writeable, write the machine code to it that you already know how to generate, `mprotect` it as PROT_EXEC instead of PROC_WRITE, cast the pointer to the region to a function pointer, and then call it. These functions may be available in the python sys package but I don't really know.
I've implemented a "JIT" that takes machine code as hex and does this. Warning: it's complete garbage with no error checking but is a good proof of concept. https://gist.github.com/martinjacobd/3ee56f3c7b7ce621034ec3e...
- Why does Rust have parameters on impl?
-
Implementing a LLVM Micro C compiler in Haskell
This is amazing. I tried following Stephen Diehl's JIT compiler in LLVM tutorial[0] a few years ago but it was already outdated (the llvm-hs library changed quite a bit), and subsequent web searches didn't turn up much.
For those interested in tutorials like this, I'd also recommend a very literate Haskell compiler for the PCF language to C[1], which is essentially lambda calculus with some primitives.
[0] https://www.stephendiehl.com/llvm/
[1] https://github.com/jozefg/pcf/
- Resources for Amateur Compiler Writers
-
Need some help with monad transformers
I'm currently working with llvm-hs-pure and am struggling to properly emit code for a module. I basically followed https://www.stephendiehl.com/llvm/#chapter-3-code-generation and have types like:
-
Advanced books / tutorials about Haskell?
http://www.stephendiehl.com/llvm/ Implementing a JIT Compiled Language with Haskell and LLVM Nice tutorial. Requires knowledge of monads, applicatives, transformers. Deep enough and more or less 'real world'.
dhall
-
Why Functional Programming Should Be the Future of Software
```
If you mean installing Dhall's dependencies (https://github.com/dhall-lang/dhall-haskell/blob/master/dhal...), those aren't too crazy, but they're definitely not all "beginner level". Template Haskell in particular is quite heavyweight.
-
Dhall: A Gateway Drug to Haskell
Ok, lets be specific. Lets write a comment to explain this function:
https://github.com/dhall-lang/dhall-haskell/blob/master/dhal...
-
Nix: An idea whose time has come
I haven't tried it but apparently you can compile to Nix from Dhall:
> You can use this compiler to program Nix using the Dhall language. This package targets people who wish Nix had a type system.
https://github.com/dhall-lang/dhall-haskell/tree/master/dhal...
- Usage Of Cryptonite Library In GHCJS
-
How to Learn Nix
If the problem is the syntax and people wants some other format that compiles to nix, there's dhall
https://dhall-lang.org/
https://github.com/dhall-lang/dhall-haskell/tree/master/dhal...
https://www.haskellforall.com/2017/01/typed-nix-programming-...
Dhall is a generic config language with some programming capabilities (but not turing complete) that can compile to json, yaml, and other formats, like in this instance nix.
-
Google Summer of Code Summary: Dhall bindings to CSV
For my GSoC project, I built from scratch the dhall-csv package on the Dhall Haskell implementation Github Repository. Said package provides two executables, dhall-to-csv (which converts Dhall files into CSV files) and csv-to-dhall (which converts CSV files into Dhall files). It also provides Haskell libraries with the functions that translate bidirectionally between Dhall and CSV.
-
Wuffs the Language
> If you add constraints (like not being able to feed the program to itself as is done in the halting problem and not allowing unbounded loops) then it is possible to determine if a program will terminate or not.
Dhall is a good example - https://github.com/dhall-lang/dhall-haskell .
-
INTERCAL, YAML, And Other Horrible Programming Languages
See also https://dhall-lang.org/
-
Common Nginx misconfigurations that leave your web server open to attack
That just seems like an even greater nightmare to me. Soon you would have to learn to read and understand a custom program in a Turing-complete language for each and every installation.
The proper solution is a DSL, just a better DSl. Or perhaps a DSL embedded in something like dhall <https://dhall-lang.org/>, but definitely not a general-purpose programming language.
-
i want that
Dhall
What are some alternatives?
hyper-haskell-server - The strongly hyped Haskell interpreter.
accelerate - Embedded language for high-performance array computations
unbound - Replib: generic programming & Unbound: generic treatment of binders
accelerate-cuda - DEPRECATED: Accelerate backend for NVIDIA GPUs
ajhc - A fork of jhc. And also a Haskell compiler.
dhall-nix
pcf - A small compiler for PCF
egison - The Egison Programming Language
uu-cco - Tools for the CCO (Compiler Construction) course at the UU (Utrecht University)
haste-compiler - A GHC-based Haskell to JavaScript compiler
glambda - The home of the Glamorous Glambda interpreter
hLLVM