boring-makefile VS HigherLogics.Algebra

Compare boring-makefile vs HigherLogics.Algebra and see what are their differences.

boring-makefile

An uninteresting makefile. (by JonChesterfield)

HigherLogics.Algebra

Numerical and algebraic abstractions for .NET (by naasking)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
boring-makefile HigherLogics.Algebra
2 1
0 3
- -
10.0 10.0
about 8 years ago almost 2 years ago
Makefile C#
MIT License -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

boring-makefile

Posts with mentions or reviews of boring-makefile. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-08.
  • How to Structure C Projects: These Best Practices Worked for Me
    3 projects | news.ycombinator.com | 8 Mar 2024
    The tests look much like https://github.com/JonChesterfield/EvilUnit/blob/master/evil.... That's from the self tests for the test framework. It's closely modelled on catch2. Name is because I built the thing out of preprocessor macros to run on freestanding c89.

    The projects using code generation in that fashion are proprietary. There's a makefile at https://github.com/JonChesterfield/boring-makefile/blob/mast... set up to do the src/gen/obj codegen by default structure.

  • John Carmack on Functional Programming in C++ (2018)
    7 projects | news.ycombinator.com | 18 Feb 2023
    I've been coding like that since at least 2016[1]. The trick is to make adding code generators as easy as adding source code. Not a game engine in my case, though there's a CppCon talk from 2014 which makes a passing reference to using code generators with C++ instead of templates for one.

    Assume source is src/.c and compiled to obj/.o, then introduce a third directory called gen. Change the makefile rule to copy .c from src to gen, and compile from gen to obj. Then add a makefile rule that says gen/foo.c can be built from src/foo.c.py by calling python on the source and redirecting stout.

    That means a C source file can be turned into a python program that generates the same source by wrapping it in a string literal, calling print and renaming the source file. No build system change. Then change the python as you see fit to work around the limitations of C.

    Works really well for a solo developer. Repo using this scheme is ~100 generated files (mostly lua, some python) vs ~600 C files. Plus ~20 C++ and one D, just getting started with that language.

    [1] https://github.com/JonChesterfield/boring-makefile/blob/mast...

HigherLogics.Algebra

Posts with mentions or reviews of HigherLogics.Algebra. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-18.
  • John Carmack on Functional Programming in C++ (2018)
    7 projects | news.ycombinator.com | 18 Feb 2023
    Do it! Do it! Do it! If only for a couple of tests to see how much it changes the results. ;-)

    Unboxing sums is a nice optimization but then you can't naively use switch-patern matching to deconstruct them.

    I have a bunch of other things in Sasa and other libraries you might find useful. I'm not actively working on most of them anymore except for bug fixes. I learned a lot but didn't end up using a lot of these features as much as I'd hoped.

    For instance, being able to create open instance delegates in a way that automatically works around the CLR limits against such delegates to virtual methods. Some of the concurrency primitives are also interesting, as they implement an efficient atomic read/write protocols for arbitrary sized types using only volatile reads/writes (ie. avoid torn reads), and a sort of LLSC using only volatile read/write and a single interlocked inc/dec. Also, I added a kind system to CLR reflection to make working with it much easier [2].

    It seems we're thinking along the same lines for numeric types. I reproduced the Haskell numeric hierarchy [1], but I put that on hold because I was thinking a [Deriving] attribute would eliminate a lot of redundancy.

    Just FYI, clicking Num on the main GitHub markdown page doesn't jump to the link on the markup.

    Lots more to see if you're interested! I've played with parser combinators but never liked how they turned out, and settled on a simpler approach that was pretty interesting.

    [1] https://github.com/naasking/HigherLogics.Algebra

    [2] https://github.com/naasking/Dynamics.NET#kind-system

What are some alternatives?

When comparing boring-makefile and HigherLogics.Algebra you can also consider the following projects:

fp-ts - Functional programming in TypeScript

Dynamics.NET - Extensions for runtime reflection and structural induction

john-carmack-plan-archive - Collection of John Carmack’s .plan files

Lombok - Very spicy additions to the Java programming language.

language-ext - C# functional language extensions - a base class library for functional programming