gcc-ia16 VS libcxx

Compare gcc-ia16 vs libcxx and see what are their differences.

gcc-ia16

Fork of Lambertsen & Jenner (& al.)'s IA-16 (Intel 16-bit x86) port of GNU compilers ― added far pointers & more • use https://github.com/tkchia/build-ia16 to build • Ubuntu binaries at https://launchpad.net/%7Etkchia/+archive/ubuntu/build-ia16/ • DJGPP/MS-DOS binaries at https://gitlab.com/tkchia/build-ia16/-/releases • mirror of https://gitlab.com/tkchia/gcc-ia16 (by tkchia)

libcxx

Project moved to: https://github.com/llvm/llvm-project (by llvm-mirror)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
gcc-ia16 libcxx
11 14
154 677
- -
0.0 0.0
2 months ago over 4 years ago
C C++
GNU General Public License v3.0 only Apache License 2.0
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.

gcc-ia16

Posts with mentions or reviews of gcc-ia16. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-17.
  • Building GCC 1.27 (first GCC with x86 support) (2019)
    1 project | news.ycombinator.com | 1 Apr 2024
    Mainstream GCC has never supported 16-bit code on x86, only 32-bit

    However, there is (at least one) fork which adds 16-bit code support, see https://github.com/tkchia/gcc-ia16

    I don't think the GCC maintainers have ever or will ever want to support 16-bit x86, because it is so limited, and adds a lot of messy corner cases, and nowadays is really only of hobbyist/retrocomputing interest.

    Maybe there is some 16-bit x86 embedded system still being maintained–there were military spec versions of the 8086, and possibly some weapons system, aircraft, satellite, etc, still in use contains one. But I doubt they'd have any interest in adopting a 16-bit GCC – they'd already have some proprietary compiler they'd been using for decades, switching now would add a lot of risk, very late in the life of a legacy system, for no tangible benefit

  • Djgpp
    4 projects | news.ycombinator.com | 17 Jan 2024
    These days there is also a 16-bit GCC port to DOS (https://github.com/tkchia/gcc-ia16). I never encountered one of those back in the day? I think the compiler itself does not run in 16-bit DOS though.

    Anyone interested in compiling for DOS (32-bit or 16-bit) should also check out Free Pascal.

  • Rust is Boring
    6 projects | /r/rust | 13 Mar 2023
    My advice is, when you feel you need that challenge, install DOSBox or DOSBox-X and Open Watcom C/C++, DJGPP, or gcc-ia16 and do some retro-programming. You'll also get the fun of being able to do low-level hardware twiddling and rely on DOS being so simple that it's effectively an RTOS.
  • Writing FreeDOS Programs in C
    1 project | /r/C_Programming | 13 Feb 2023
    Looking at part 1 and some of the videos, it looks like this doesn't actually use OpenWatcom, but i16gcc from the FreeDOS distribution, which looks to be a port of gcc that targets 16-bit x86.
  • "My Reaction to Dr. Stroustrup’s Recent Memory Safety Comments"
    11 projects | /r/rust | 2 Feb 2023
    And, if that surprises you, gcc-ia16 is a thing that has come into existence not only over a decade after DJGPP but also after Open Watcom already existed.
  • How can I compile rust for 16bit x86 (Intel 8086)?
    4 projects | /r/rust | 31 Dec 2022
    or GCC IA 16 (https://github.com/tkchia/gcc-ia16) gets someday mainlined (also a multi month/years project) and then gccrs can maybe use it as backend
  • Tools and/or tutorials for making a roguelike in DOS?
    1 project | /r/roguelikedev | 7 Jun 2022
    There is a 16-bit port of GCC these days as well included together with DJGPP if you install FreeDOS, but available separately as well (I think it can cross-compile from other systems like DJGPP can too?) https://github.com/tkchia/gcc-ia16
  • How FreeDOS Grew Up and Became a Modern DOS
    9 projects | news.ycombinator.com | 29 Jan 2022
    TK Chia and others have been working on adding DOS C/C++ compiler-isms to GCC as well as improving the the codegen to make it more hospitable for DOS apps. So far, the FreeDOS kernel compilable by gcc-ia16.

    https://github.com/tkchia/gcc-ia16

  • Linux (ELKS) running on an IBM PC XT replica
    4 projects | /r/linux | 6 Aug 2021
  • how to get started programming a game/program for dos?
    3 projects | /r/dosgaming | 7 Jul 2021
    There is a more recent fork of gcc/DJGPP to make 16-bit DOS applications that I also never tried, but that might be worth using (and I think it is bundled in the latest FreeDOS, so it might be very easy to set up by just installing that in a virtual machine?): https://github.com/tkchia/gcc-ia16

libcxx

Posts with mentions or reviews of libcxx. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-08.
  • Quants use Rust; Devs use C++ - Hey, it's a compromise!
    2 projects | /r/cpp | 8 Dec 2023
    If you are comparing hoops that library authors need to jump through in both languages, you can easily make the real-world comparison in the other direction, by comparing Rust's Option with C++'s std::optional (an exercise left for the reader): Rust std: https://github.com/rust-lang/rust/blob/master/library/core/src/option.rs libcxx: https://github.com/llvm-mirror/libcxx/blob/master/include/optional
  • My favorite prime number generator
    6 projects | news.ycombinator.com | 23 Aug 2023
    My favorite prime number generator is the undocumented __next_prime():

    https://github.com/llvm-mirror/libcxx/blob/78d6a7767ed57b501...

    There is no good reason to use this one except in a code golf environment that includes all headers by default, which is where I learned about it.

  • Please can someone tell me where I can find the content of the STL
    3 projects | /r/cpp_questions | 23 Apr 2023
  • "My Reaction to Dr. Stroustrup’s Recent Memory Safety Comments"
    11 projects | /r/rust | 2 Feb 2023
    I once read a Strousroup quote amounting to "If you understand std::vector, then you understand C++". I thought surely he couldn't have meant the interface but the implentation, googled that llvm's implementation is considered nice and clean, had a look, and noped straight out of there.
  • pmr implementation in c++14
    6 projects | /r/cpp | 26 Dec 2022
  • In Defense of Linked Lists
    16 projects | news.ycombinator.com | 4 Nov 2022
    C++'s STL linked list for comparison (libcxx).

    https://github.com/llvm-mirror/libcxx/blob/master/include/li...

  • RFC: C++ Buffer Hardening
    2 projects | news.ycombinator.com | 5 Oct 2022
    > For example, accessing a std::span or a std::vector outside of its bounds would abort the program, and so would accessing an empty std::optional.

    I don't really understand the difference with libc++, libstdc++ and msvc stl's respective debug modes, they already do exactly these checks :

    - https://github.com/llvm-mirror/libcxx/blob/78d6a7767ed57b501...

    - https://github.com/gcc-mirror/gcc/blob/966010b2eb4a4c52f139b...

  • Why is std::array implemented as a struct instead of a class?
    1 project | /r/cpp | 25 Sep 2022
  • C++ Concurrency Model on x86 for Dummies
    5 projects | news.ycombinator.com | 21 Aug 2022
    I mean it's not hard to read the source for your platform. On Linux/x86_64/libc++ it's roughly:

    - https://github.com/llvm-mirror/libcxx/blob/master/include/__...

    - https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=nptl/...

    I don't particularly care to comb through it to see if anything has changed, but historically it was a a little spin-CAS to make the non-contended path fast and then dropping into a https://en.wikipedia.org/wiki/Futex, which is about as good as it gets for staying mostly in userspace but still letting it be scheduler aware so you're not burning up a core busy-polling, which is what often happens when people try to roll their own shit.

    Google wants a bit more latitude on the heuristics and degrees of freedom around read/write ownership, so they did it like this: https://github.com/abseil/abseil-cpp/blob/master/absl/synchr... which is quite a bit better commented/legible.

    If anyone reading this can do better than the `abseil-cpp` folks, not only would Google take their PR, they'd probably offer them a job.

  • Intrusive List Advantages?
    2 projects | /r/cpp_questions | 18 May 2022

What are some alternatives?

When comparing gcc-ia16 and libcxx you can also consider the following projects:

open-watcom-v2 - Open Watcom V2.0 - Source code repository, Wiki, Latest Binary build, Archived builds including all installers for download.

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

elks - Embeddable Linux Kernel Subset - Linux for 8086

kc85.zig - A KC85 emulator written in Zig

build-djgpp - Build DJGPP cross compiler and binutils on Windows (MinGW/Cygwin), Mac OSX and Linux

pacman.zig - Simple Pacman clone written in Zig.

MS-DOS - The original sources of MS-DOS 1.25 and 2.0, for reference purposes

nft_ptr - C++ `std::unique_ptr` that represents each object as an NFT on the Ethereum blockchain

rusty-dos - A Rust skeleton for an MS-DOS program for IBM compatibles and the PC-98, including some PC-98-specific functionality

InterprocessMemPool - c++ library for interprocess memory pools, communication, and automatic network device discovery. lightweight DDS alternative.

emularity - easily embed emulators

lion - Where Lions Roam: RISC-V on the VELDT