trivia VS gcc

Compare trivia vs gcc and see what are their differences.

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
trivia gcc
7 83
324 8,775
- 1.6%
0.8 9.9
7 months ago 5 days ago
Common Lisp C
GNU General Public License v3.0 or later GNU General Public License v3.0 only
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.

trivia

Posts with mentions or reviews of trivia. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-03.
  • Compiling Pattern Matching
    3 projects | news.ycombinator.com | 3 Feb 2024
    I've used it. :)

    https://github.com/guicho271828/trivia/issues/108

  • Pattern matching macros vs functions?
    1 project | /r/emacs | 29 Nov 2022
    You can see it, for instance, in the Trivia library ( https://github.com/guicho271828/trivia/blob/master/level0/impl.lisp ): the macro match0 is a thin wrapper around the function parse-patterns, and this, in turn, calls the function make-pattern-predicate which performs the recursive destructuring of patterns.
  • From Common Lisp to Julia
    6 projects | news.ycombinator.com | 8 Nov 2022
    I can agree it's not the same, but what's the point? A more interesting disagreement is that I wouldn't say it's a downside (though yes, there are tradeoffs). Especially in Current Year when open source is fashionable and pretty much every language has a package manager to make pulling in or swapping out dependencies pretty easy, I don't see the issue. It's also interesting to note that of all the things Clojure did to "fix" shortcomings of past languages with a more opinionated (and often more correct I'll admit) design philosophy that users are forced to use (even when it's not more correct), infix-math-out-of-the-box wasn't one of them. I don't think that specifically really hurt Clojure adoption. (But of course Clojure is reasonably extensible too so it also has a macro package to get the functionality, though it's more fragile especially around needing spaces because it's not done with reader macros.)

    I've brought the library up many times because CL, unlike so many other languages, really lets you extend it. Want a static type system? https://github.com/coalton-lang/coalton/ Want pattern matching? No need to wait for PEP 636, https://github.com/guicho271828/trivia/ If all that keeps someone from trying CL, or from enjoying it as much as they could because of some frustration or another, due to lacking out of the box, chances are it is available through a library.

  • LEM - What If Emacs Was Multithreaded
    6 projects | /r/emacs | 23 Apr 2022
    Great libraries like trivia, iterate/for/alternative loop libraries, alexandria, and a hundred others. Common Lisp is a general purpose programming language with good support for ffi, working with files, databases, images, audio, etc. Just skim awesome-cl if you haven't. You could argue this doesn't have to do with the language, but a lot of these libraries are so good (or even possible) in part because of language features elisp does not have.
  • Pattern Matching Accepted for Python
    11 projects | news.ycombinator.com | 9 Feb 2021
    > After much deliberation, the Python Steering Council is happy to announce that we have chosen to accept PEP 634, and its companion PEPs 635 and 636, collectively known as the Pattern Matching PEPs

    This is why I'm still enamored with Lisp. One doesn't wait around for the high priests to descent from their lofty towers of much deep pontification and debate with shiny, gold tablets inscribed with how the PEPs may be, on behalf of the plebes. One just adds new language feature themselves, eg. pattern matching[1] and software transactional memory[2].

    1. https://github.com/guicho271828/trivia

    2. https://github.com/cosmos72/stmx

  • Show HN: Powerful Python Pattern Matching Library
    2 projects | news.ycombinator.com | 2 Jan 2021
    The source is impressively simple! Good job!

    I have been implementing a pattern matcher for scheme based on the Balland pattern optimized, and every time I see pattern matchers for python I always get the feeling that the code you are replacing have to be truly awful for the rather contrived pattern matching syntax to be a net win. Compare any of the python pattern matchers to something like trivia in Common Lisp [0] and you see what I mean.

    How do people use the python pattern matchers? I am genuinely curious. One benefit that I see is that you can build patterns at run-time which could be useful.

    [0]: https://github.com/guicho271828/trivia/wiki/Type-Based-Destr...

gcc

Posts with mentions or reviews of gcc. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-05-07.
  • Qt and C++ Trivial Relocation (Part 1)
    3 projects | news.ycombinator.com | 7 May 2024
    As far as I know, libstdc++'s representation has two advantages:

    First, it simplifies the implementation of `s.data()`, because you hold a pointer that invariably points to the first character of the data. The pointer-less version needs to do a branch there. Compare libstdc++ [1] to libc++ [2].

    [1]: https://github.com/gcc-mirror/gcc/blob/065dddc/libstdc++-v3/...

    [2]: https://github.com/llvm/llvm-project/blob/1a96179/libcxx/inc...

    Basically libstdc++ is paying an extra 8 bytes of storage, and losing trivial relocatability, in exchange for one fewer branch every time you access the string's characters. I imagine that the performance impact of that extra branch is tiny, and massively confounded in practice by unrelated factors that are clearly on libc++'s side (e.g. libc++'s SSO buffer is 7 bytes bigger, despite libc++'s string object itself being smaller). But it's there.

    The second advantage is that libstdc++ already did it that way, and to change it would be an ABI break; so now they're stuck with it. I mean, obviously that's not an "advantage" in the intuitive sense; but it's functionally equivalent to an advantage, in that it's a very strong technical answer to the question "Why doesn't libstdc++ just switch to doing it libc++'s way?"

  • GCC 14.1 Release
    2 projects | news.ycombinator.com | 7 May 2024
    Upd: searching in the github mirror by the commit hash from the issue, found that https://github.com/gcc-mirror/gcc/commit/1e3312a25a7b34d6e3f... is in fact in the 'releases/gcc-14.1.0' tag.

    Even weirder that this one got swept under the changelog rug, it's a pretty major issue.

  • C++ Safety, in Context
    8 projects | news.ycombinator.com | 12 Mar 2024
    > It's true, this was a CVE in Rust and not a CVE in C++, but only because C++ doesn't regard the issue as a problem at all. The problem definitely exists in C++, but it's not acknowledged as a problem, let alone fixed.

    Can you find a link that substantiates your claim? You're throwing out some heavy accusations here that don't seem to match reality at all.

    Case in point, this was fixed in both major C++ libraries:

    https://github.com/gcc-mirror/gcc/commit/ebf6175464768983a2d...

    https://github.com/llvm/llvm-project/commit/4f67a909902d8ab9...

    So what C++ community refused to regard this as an issue and refused to fix it? Where is your supporting evidence for your claims?

  • Std: Clamp generates less efficient assembly than std:min(max,std:max(min,v))
    4 projects | news.ycombinator.com | 16 Jan 2024
  • Converting the Kernel to C++
    3 projects | news.ycombinator.com | 10 Jan 2024
    Somewhat related: In 2020 gcc bumped the requirement for bootstrapping to be a C++11 compiler [0]. Would have been fun to see the kernel finally adopt C++14 as the author suggested.

    I don't think that Linus will allow this since he just commented that he will allow rust in drivers and major subsystems [1].

    I do found it pretty funny that even Linus is also not writing any rust code, but is reading rust code.

    I would have hoped see more answers or see something in here from actual kernel developers.

    0: https://github.com/gcc-mirror/gcc/commit/5329b59a2e13dabbe20...

  • Understanding Objective-C by transpiling it to C++
    4 projects | news.ycombinator.com | 2 Dec 2023
    > They’re saying that a lot of the restrictions makes things much harder than other languages. Hence the general problem rust has where a lot of trivial tasks in other languages are extremely challenging.

    Like what? So far the discussion has revolved around rewriting a linked list, which people generally shouldn't ever need to do because it's included in the standard lib for most languages. And it's a decidedly nontrivial task to do as well as the standard lib when you don't sacrifice runtime overhead to be able to handwave object lifecycle management.

    - C++: https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-...

    - Rust: https://doc.rust-lang.org/beta/src/alloc/collections/linked_...

    > No need to get defensive, no one is arguing that rust doesn’t do a lot of things well.

    That's literally what bsaul is arguing in another comment. :)

    > You’re talking up getting a safe implementation in C, but what matters is “can I get the same level of safety with less complexity in any language”, and the answer is yes: Java and c# implementations of a thread safe linked list are trivial.

    Less perceived complexity. In Java and C# you're delegating the responsibility of lifecycle management to garbage collectors. For small to medium scale web apps, the added complexity will be under the hood and you won't have to worry about it. For extreme use cases, the behavior and overhead of the garbage collector does became relevant.

    If you factor in the code for the garbage collector that Java and C# depend on, the code complexity will tilt dramatically in favor of C++ or Rust.

    However, it's going to be non-idiomatic to rewrite a garbage collector in Java or C# like it is to rewrite a linked list in Rust. If we consider the languages as they're actually used, rather than an academic scenario which mostly crops up when people expect the language to behave like C or Java, the comparison is a lot more favorable than you're framing it as.

    > If I wanted I could do it in c++ though the complexity would be more than c# and Java it would be easier than rust.

    You can certainly write a thread-safe linked list in C++, but then the enforcement of any assumptions you made about using it will be a manual burden on the user. This isn't just a design problem you can solve with more code - C++ is incapable of expressing the same restrictions as Rust, because doing so would break compatibility with C++ code and the language constructs needed to do so don't exist.

    So it's somewhat apples and oranges here. Yes, you may have provided your team with a linked list, but it will either

  • Committing to Rust for Kernel Code
    5 projects | news.ycombinator.com | 23 Nov 2023
    GCC is also written in C++, and has had C++ deps since 2013:

    https://github.com/gcc-mirror/gcc/blob/master/gcc/c/c-parser...

  • Spitbol 360: an implementation of SNOBOL4 for IBM 360 compatible computers
    2 projects | news.ycombinator.com | 11 Nov 2023
  • are most computer programming languages public domain, or do their creators get a say in what you do with them?
    1 project | /r/NoStupidQuestions | 7 Oct 2023
    Compliers/Interpreters are also very commonly open source (here is the source code for a popular C compiler). That means you can even modify the compiler's code and change its behavior if you wanted to.
  • Learn to write production quality STL like classes
    4 projects | /r/cpp_questions | 28 Jun 2023

What are some alternatives?

When comparing trivia and gcc you can also consider the following projects:

python-imphook - Simple and clear import hooks for Python - import anything as if it were a Python module

CMake - Mirror of CMake upstream repository

MLStyle.jl - Julia functional programming infrastructures and metaprogramming facilities

rtl8192eu-linux-driver - Drivers for the rtl8192eu chipset for wireless adapters (D-Link DWA-131 rev E1 included!)

awesome-pattern-matching - Pattern Matching for Python 3.7+ in a simple, yet powerful, extensible manner.

llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.

peps - Python Enhancement Proposals

STL - MSVC's implementation of the C++ Standard Library.

awesome-cl - A curated list of awesome Common Lisp frameworks, libraries and other shiny stuff.

cobol-on-wheelchair - Micro web-framework for COBOL

flynt - A tool to automatically convert old string literal formatting to f-strings

busybox - The Swiss Army Knife of Embedded Linux - private tree