Comments (1)
Hi - nice to chat again!
There have been some developments since we last spoke. Namely, since then, we've made progress on upstream Python bindings that are starting to edge towards some of the points you mention. We've been trying to make them a good starting point for constructing nice DSLs from (versus trying to be a good DSL for everything):
- Exposes the core IR constructs (context, modules, ops, types, attributes).
- Supports with blocks and context managers for implicit management of contexts, locations and insertion points.
- Integrated with the ODS infra so that we can generate Python wrappers for each dialect.
- Run passes.
Code: https://github.com/llvm/llvm-project/tree/master/mlir/lib/Bindings/Python
Docs: https://mlir.llvm.org/docs/Bindings/Python/ (slightly out of date)
Tests: https://github.com/llvm/llvm-project/tree/master/mlir/test/Bindings/Python (more up to date than docs. Example of exercising the std dialect via (very new) autogenerated Python wrapper)
There are still things that are in progress:
- Custom attributes and types have been discussed but integration with Python still requires native code
- Need to wire in the execution engine/JIT interface (npcomp has a special purpose thing for this - need to implement the proper thing upstream)
- Deployability/packaging and integration with other projects needs more work. Meeting notes where some of the necessary work was planned.
I am also aware of at least three other developments happening towards some of your other points but in various state of work/disclosure. I think @joker-eph (Mehdi) is a good join point with visibility of all of those. Boosting this to a thread on the LLVM/MLIR Discourse may be a good way to have the discussion in view of some of those things.
from metadsl.
Related Issues (20)
- Refactor internals to use own type representation
- Fix doctests
- Fix Python 3.9-3.10 errors
- Host viewer as jupyter widget
- Fix serializing parameterized typs
- Add backend that compiles to NumPy to show E2E system that is a no-op
- Tony Notes
- Compare with `typy` HOT 2
- Blog post comparing to NumPy Mixin HOT 1
- Generic Constructors HOT 8
- updating metadsl docs - roadmap/vision
- Seperate replacements into steps
- Generate metadsl from linked data
- Create interface to REDUCE
- images HOT 6
- Refactor internals to use own type representation HOT 1
- EPython notes
- Remove uarray tags HOT 1
- TypeError: Cannot match concrete type <class '__main__.Number'> with hint <class 'int'> HOT 7
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 metadsl.