learn-x-by-doing-y
inkwell
learn-x-by-doing-y | inkwell | |
---|---|---|
7 | 16 | |
1,092 | 2,154 | |
- | - | |
0.0 | 8.2 | |
3 months ago | 6 days ago | |
Python | Rust | |
MIT License | Apache License 2.0 |
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.
learn-x-by-doing-y
- Learn X by Doing Y
- Rising junior and no projects :/
- Ask HN: Where can one learn about boring web development?
-
What're some learning resources and projects for python?
This list is enough, but after you get the basics from one of the above, do a project from https://aquadzn.github.io/learn-x-by-doing-y/
-
Cognicull: Knowledge base for mathematics, natural science and engineering
Some other knowledge-graph type projects for comparison:
> Metacademy - "Package Manager for Knowledge" - https://metacademy.org/
> MathLingua - language for easily creating a collection of mathematical knowledge, including definitions, theorems, axioms, and conjectures, in a format designed to be easy and fun to read and write. - https://www.mathlingua.org/
> Learn X in Y minutes - https://learnxinyminutes.com/
> Learn X by doing Y - https://aquadzn.github.io/learn-x-by-doing-y/
Many people are also starting to use the bidirectional-link style of note-taking to create their own knowledge graphs. I'm curious to see what sort of tools will emerge in the future to help people share the graphs they've created.
-
I was bored, so I built my own programming language
You see, I really needed something to do. I had been doing a few web related projects on the side and that was something I didn't want to do any more, at least for a while. So I looked into doing something "closer to the metal", something much lower level than sending requests back and forth to a web server. So I quickly fired up Learn X by doing Y and searched for something interesting, eventually ending up on Building your own Lisp (We all have a Lisp phase, it was just my turn).
-
Learn X by Doing Y – A project-based learning search engine
Search is good, but if you're like me and would like to just see the list of available projects, it's here
https://github.com/aquadzn/learn-x-by-doing-y/blob/main/proj...
inkwell
-
Compiler Optimization Learning Suggestions
Secondly, I have learned about LLVM, and I have learned about the Inkwell library on Rust (It's a New Kind of Wrapper for Exposing LLVM (Safely)). Has anyone used this library before? Is this a good practice? Is it suitable for my compiler? Can I write some optimization passes of my own using this library?
-
Finding LLVM location for use with the inkwell Rust crate
I am trying to use the inkwell Rust crate for working with LLVM. In Cargo.toml, I have specified the LLVM version using features = ["llvm15-0"]
-
How Rust transforms into Machine Code.
inkwell is a great llvm binding for rust and it has an implementation of kaleidoscope
- Inkwell – New Kind of Wrapper for Exposing LLVM in Rust
-
Need help improving API for crate relying on Inkwell (Self-referential struct alternative)
I'm working on a compiler that uses the LLVM wrapper Inkwell for compilation. In order to compile something in inkwell, unless I'm missing something (which I very well might be), you need two structs:
-
Tools for creating a programming language in rust
Compiler backends (If building JIT/machine compiled langauges) 1. cranelift 2. inkwell - safe rust wrapper around llvm
-
How do I instrument LLVM IR for a Rust program?
Haha small world. I think we go to the same university and I took the same or similar course a few years ago. If somebody hasn't done the work for you, you may have to do some instrumentation yourself depending on what you want to track IMO https://github.com/TheDan64/inkwell is the best LLVM wrapper for Rustland (Python's llvmlite is a bit easier to use though)
-
How good is LLVM in other languages other than C++? (In my case I'm interested in using Rust)
I'm currently using the Inkwell bindings for Rust, which I've found actually pretty nice. In terms of generating LLVM IR, the C bindings (which is what Inkwell uses internally) can do anything you want them to (definitely not limited to trivial languages as someone else here said.) I'm even using the LLVM garbage collection infrastructure, with no problems (well, no problems in generating it; the LLVM GC infrastructure works pretty well but is sparsely documented, so actually writing a GC is fairly difficult, but it's doable). The C bindings are actually more stable than the C++ bindings (!), although not quite as stable as the textual IR format; but without the bindings you would have to write code to generate the IR yourself, the compiler would be slower as it must be emitted as text and then reparsed in a different process, and you would have less control over optimization.
-
Are there any repos of tutorials on writing a compiler in Rust?
safe llvm bindings https://github.com/TheDan64/inkwell
-
LLVM Infrastructure and Rust
As we reviewed in this article LLVM IR has many use-cases and allows us to analyze and optimize source code through its passes. Knowing IR language itself will help us to write our passes and build projects around it for debugging, testing, optimizing. Currently, LLVM IR doesn't have Rust API. It's mainly used through the C++ library. However, some user-created repos are available on crates.io. There is a Rust binding to LLVM's C API - llvm-sys and two other, more Rusty APIs that are using LLVM: inkwell and llvm-ir. And finally, if you want to learn how to write a LLVM pass you should start here.
What are some alternatives?
learnxinyminutes-docs - Code documentation written as code! How novel and totally my idea!
llvm-sys.rs
clojure - The Clojure programming language
rust-langdev - Language development libraries for Rust
noteworthy - Markdown editor with bidirectional links and excellent math support, powered by ProseMirror. (In Development!)
llvm-ir - LLVM IR in natural Rust data structures
GNU Emacs - Mirror of GNU Emacs
langs-in-rust - A list of programming languages implemented in Rust, for inspiration.
neuron - Future-proof note-taking and publishing based on Zettelkasten (superseded by Emanote: https://github.com/srid/emanote)
starlark-rust - A Rust implementation of the Starlark language
project-based-learning - Curated list of project-based tutorials
not-yet-awesome-rust - A curated list of Rust code and resources that do NOT exist yet, but would be beneficial to the Rust community.