Top 23 Metaprogramming Open-Source Projects
Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).Project mention: How lisp interpreter/compiler looks like ? | reddit.com/r/lisp | 2021-05-06
To answer your question: there is no main Lisp compiler/interpreter, like there is with languages like Nim for example. There are many Lisp compilers: a lot of them for Common Lisp, many others for Scheme, some for their own Lisp-like languages etc.
Meta-programming for Swift, stop writing boilerplate code.
Scout APM - Leading-edge performance monitoring starting at $39/month. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
Apache Groovy: A powerful multi-faceted programming language for the JVM platformProject mention: The Kotlin Foundation – By Jetbrains and Google | news.ycombinator.com | 2021-02-13
You and the PC probably would be happy with Groovy, specially with them adding a SQL DSL now: https://github.com/apache/groovy/blob/master/subprojects/gro...
Groovy DSLs are much better than Kotlin's.
A dialect of Lisp that's embedded in PythonProject mention: Hy: A dialect of Lisp that's embedded in Python | reddit.com/r/patient_hackernews | 2021-05-05
Static reflection for enums (to string, from string, iteration) for modern C++, work with any enum type without any macro or boilerplate codeProject mention: Magic Enum : la révolution des énumérations en C++ | dev.to | 2021-04-29
Every programmer needs a rubberduck. COM add-in for the VBA & VB6 IDE (VBE).
Your standard library for metaprogrammingProject mention: Simple `struct` static reflection system I use that tracks names, attributes (in my own code I also keep `constexpr` hashes of names) -- example gets fully inlined into `main()` | reddit.com/r/cpp | 2021-04-24
And then there's also the longstanding issue with default member initializers -- https://github.com/boostorg/hana/issues/409 -- which was a deal-breaker.The PROP system avoids this issue precisely by having the macro be as local as possible: the default member initializer is outside the macro. It does this while still letting you attach additional PropAttribs metadata (I'm not sure what additional metadata attachment looks like in Hana? haven't really tried). Default values and additional attributes are by and large quite more important to me in my use cases for reflection (component types in game ECS) than range syntax (everything I've needed and can think of needing is covered by for-each loop).
Spoon is a metaprogramming library to analyze and transform Java source code (up to Java 15). :spoon: is made with :heart:, :beers: and :sparkles:. It parses source files to build a well-designed AST with powerful analysis and transformation API.
Nameof operator for modern C++, simply obtain the name of a variable, type, function, macro, and enumProject mention: Getting an Unmangled Type Name at Compile Time | reddit.com/r/cpp | 2021-03-10
Manifold is a Java compiler plugin, its features include Metaprogramming, Properties, Extension Methods, Operator Overloading, Templates, a Preprocessor, and more.Project mention: We got the [Java] generics we have | news.ycombinator.com | 2021-04-01
Library to read, analyze, transform and generate Scala programs
DI: C++14 Dependency Injection LibraryProject mention: Top five C/C++ things/tips/tricks you wish you had known earlier and are now used very often | reddit.com/r/cpp | 2021-02-19
Funny you mention dependency injection, proposed Boost.DI shall be up for Boost peer review probably in March. https://boost-ext.github.io/di/
Refactoring and linting tool for ScalaProject mention: Teaching exercises with custom error messages | reddit.com/r/scala | 2021-03-02
Probably linting rules defined in Scalafix. See https://github.com/scalacenter/scalafix/blob/master/scalafix-rules/src/main/scala/scalafix/internal/rule/DisableSyntax.scala#L11 for an example.
SML: C++14 State Machine LibraryProject mention: Which design patterns do you think are very useful for embedded programming? | reddit.com/r/embedded | 2021-04-10
Switch Case is the most basic way and for simple system it works. But at some complexity level it gets tough to maintain. depending on your language you have different ways to implement them . E.g. a function table based matrix array. Or active object pattern . If you use cpp you can base it on classes or use some nice header only implementation https://github.com/boost-ext/sml .
Dependency Injection framework for Swift (iOS/macOS/Linux)
Minimal, efficient, statically-typed and meta-programmable systems programming language heavily inspired by Lua, which compiles to C and native code.Project mention: Nelua: A Systems Programming Language with Lua Syntax | news.ycombinator.com | 2020-12-30
Next generation API for .NET
Functional companion to Kotlin's CompilerProject mention: If I wanted to modify the Kotlin grammar, how would I go about doing that? | reddit.com/r/Kotlin | 2021-05-01
As of right now, Arrow Meta is the only library I am aware of with which you can productively write compiler plugins.
Full-blown preprocessor metaprogrammingProject mention: Interesting ways to use C? | reddit.com/r/C_Programming | 2021-04-14
Most recently, there's this https://github.com/Hirrolot/metalang99, pretty much macros on steroid.
TE: C++17 Run-time polymorphism (type erasure) library (by boost-ext)Project mention: Type Erasure in C++ Explained | news.ycombinator.com | 2021-04-15
And if it were in the standard there wouldn't be at least five well known libraries implementing it (including from Adobe and from Facebook): https://github.com/boost-ext/te#similar-libraries
As far as I know (I don't really follow the committee work) the latest attempt to introduce run-time duck-typing in the standard was https://github.com/andyprowl/virtual-concepts, which seems dead.
Squid – type-safe metaprogramming and compilation framework for Scala (by epfldata)Project mention: Haskell doesn't have macros | reddit.com/r/haskell | 2020-12-29
In the video, the presenter says he doesn't know any other system with "type-aware hygienic macros". You may want to have a quick look at Scala 3, which also has such a system. See, for instance, this paper and also the precursor work by myself for Scala 2: https://github.com/epfldata/squid#publications
A light weight single header alternative to DBMSProject mention: Constexpr SQL – C++ compile time SQL queries | news.ycombinator.com | 2021-03-19
It's Python with a Lissp.Project mention: Hy: A dialect of Lisp that's embedded in Python | news.ycombinator.com | 2021-05-04
What are some of the best open-source Metaprogramming projects? This list will help you:
|5||Magic Enum C++||1,805|