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. Learn more →
Top 23 Compiler Open-Source Projects
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
webpack
A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows for loading parts of the application on demand. Through "loaders", modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.
-
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.
-
v
Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
-
carbon-lang
Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)
-
zig
General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
-
llvm-project
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
-
Graal
GraalVM compiles Java applications into native executables that start instantly, scale fast, and use fewer compute resources 🚀
-
Roslyn
The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
-
Nim
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).
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Let's take Next.js for example. How it introduces routing to the users is far from how the actual routing works under the hood. Just to grasp what I am saying, the Next npm package is 86MB compared to the base React repo which is just over 300kB. For most projects, the only thing you do is have 10-15 pages, maybe have Stripe and a few charts, some side effects, basic state management, and that's it. Why do you need 86MB of code, all that learning curve, and the poor documentation of Next.js for your next project?
rustc source code
The original installation referred to here is actually the installation prompt that appears on the home page of the official website
If we don't want to use Vite or SvelteKit, or if we don't have the means to use them, then we need to integrate Svelte with our own environment. In our daily development, we usually use webpack or Rollup as our project's module management packaging tool. Therefore, I will introduce these two environments, how to build the Svelte environment.
The first time I started building static websites is when I discovered Gatsby. I built several projects using Gatsby and hosted it on Netlify free tier. It felt like a really robust architecture and I loved that it was free.
For the rest of this post I’ll list off some more tactical examples of things that you can do towards this goal. Savvy readers will note that these are not novel ideas of my own, and in fact a lot of the things on this list are popular core features in modern languages such as Kotlin, Rust, and Clojure. Kotlin, in particular, has done an amazing job of emphasizing these best practices while still being an extremely practical and approachable language.
Parcel is a fast and zero-configuration web application bundler designed to simplify the build process for modern web projects. It's not limited to web applications, and it can be used to build packages targeting the browser or Node.js.
Project mention: Exploring Angular 17 and Beyond: Major Enhancements, Latest Updates, Migration Strategies, and Future Outlook | dev.to | 2024-05-18Angular 17 introduces a significant performance boost by harnessing the capabilities of esbuild, a swift JavaScript bundler. This integration optimizes the build process, reducing build times and enhancing the overall performance of web applications developed with Angular. Developers can now expedite the application development cycle and deployment, leading to a more seamless development experience.
Their site is clearly showing the language is in beta. The V documentation also states that autofree is WIP, and to use the GC instead. This isn't a corporate created language, but looks to be a true volunteer open source effort from people around the world.
Their community, in comparison to others, even has their discussions open and open threads for criticism[1]. These
[1]https://github.com/vlang/v/discussions/7610
It's even a core point for Carbon, their hopeful C++ replacement
Under language goals on their readme,
> We also have explicit non-goals for Carbon, notably including:
> * A stable application binary interface (ABI) for the entire language and library
> * Perfect backwards or forwards compatibility
There's also this blurb
> Our goals are focused on migration from one version of Carbon to the next rather than compatibility between them. This is rooted in our experience with evolving software over time more generally and a live-at-head model. Any transition, whether based on backward compatibility or a migration plan, will require some manual intervention despite our best efforts, due to Hyrum's Law, and so we should acknowledge that upgrades require active migrations.
https://github.com/carbon-language/carbon-lang/blob/trunk/do...
Next, install gray-matter to extract metadata from the front matter of markdown files, and marked to convert the markdown files to HTML:
Project mention: Show HN: I made a better Perplexity for developers | news.ycombinator.com | 2024-05-08It's "Zig" not "Zag". https://ziglang.org/ Zig is under heavy development, but there's a single page https://ziglang.org/documentation/0.12.0/ that is a reasonably comprehensive source of truth about the current state of the language.
I began by creating a monorepo using turbo with applications and packages. It took me 5 minutes with everything installed and working like a charm! Then I was setting up the backend application, utilizing swc to transpile TypeScript into CommonJS format.
Project mention: German state ditches Microsoft for Linux and LibreOffice | news.ycombinator.com | 2024-04-04https://github.com/typst/typst looks promising, both the language and the tooling. I wonder where it will find its place in a world that is dominated by either Word or LaTex.
I think they should probably set LoopMicroOpBufferSize to a non-zero value even if its not microarchitecturally accurate. This value is used in LLVM to control whether partial and runtime loop unrolling are enabled (actually only for that). Although some targets override this default behaviour, AArch64 only overrides it to enable partial and runtime unrolling for in-order models. I've left a review comment https://github.com/llvm/llvm-project/pull/91022/files#r16026... and as I note there, the setting seems to have become very divorced from microarchitectural reality if you look at how and why different scheduling models set it in-tree (e.g. all the Neoverse cores, set it to 16 with a comment they just copied it from the A57).
https://chromium.googlesource.com/v8/v8.git/+/HEAD/include/c...
Due to the nature of web engine workloads migrating objects to being GC'd isn't performance negative (as most people would expect). With care it can often end up performance positive.
There are a few tricks that Oilpan can apply. Concurrent tracing helps a lot (e.g. instead of incrementing/decrementing refs, you can trace on a different thread), in addition when destructing objects, the destructors typically become trivial meaning the object can just be dropped from memory. Both these free up main thread time. (The tradeoff with concurrent tracing is that you need atomic barriers when assigning pointers which needs care).
This is on top of the safey improvements you gain from being GC'd vs. smart pointers, etc.
One major tradeoff that UAF bugs become more difficult to fix, as you are just accessing objects which "should" be dead.
They are indeed scary, but one thing that can make them less so is writing them in a high level language. A nice code base to study if you're new to GCs is the GenScavange module of SubstrateVM, a JVM written entirely in Java. Start here:
https://github.com/oracle/graal/blob/master/substratevm/src/...
It gets compiled to native code for use. It's actually a bit of a dialect of Java because of course, you need low level memory and stack access. So you can see at parts there is use of special APIs that get compiled to things like stack allocations, so it can avoid allocating on the heap whilst working with it. Even so the "business logic" of a GC can be easily seen here, especially if you don't know C++.
The C# compiler has an MIT license and is available on GitHub, which is about as FOSS as it gets.
https://github.com/dotnet/roslyn
Integrating Rust into Python, Edward Wright, 2021-04-12 Examples for making rustpython run actual python code Calling Rust from Python using PyO3 Writing Python inside your Rust code — Part 1, 2020-04-17 RustPython, RustPython Rust for Python developers: Using Rust to optimize your Python code PyO3 (Rust bindings for Python) Musing About Pythonic Design Patterns In Rust, Teddy Rendahl, 2023-07-14
Project mention: Borgo is a statically typed language that compiles to Go | news.ycombinator.com | 2024-04-30I like your take but JavaScript was literally the assembly language of the web until WASM came along. There was no other language that TypeScript could compile to.
This train of thought lead me to discover AssemblyScript! https://www.assemblyscript.org/
Compiler related posts
-
Svelte Series-2: How to install Svelte
-
How does Rust go “from” here “into” there
-
Bend: The first high-level language that runs natively on GPUs (via HVM2)
-
Generic constant expressions: a future bright side of nightly Rust
-
Odin programming language now supports NetBSD
-
Qualcomm's Oryon LLVM Patches
-
Using Pavex for Rust web development
-
A note from our sponsor - InfluxDB
www.influxdata.com | 20 May 2024
Index
What are some of the best open-source Compiler projects? This list will help you:
Project | Stars | |
---|---|---|
1 | Next.js | 121,256 |
2 | rust | 93,633 |
3 | Svelte | 76,805 |
4 | webpack | 64,216 |
5 | sway | 63,111 |
6 | Gatsby | 55,049 |
7 | kotlin | 47,649 |
8 | parcel | 43,156 |
9 | Babel (Formerly 6to5) | 42,954 |
10 | esbuild | 37,371 |
11 | v | 35,310 |
12 | carbon-lang | 32,259 |
13 | marked | 31,997 |
14 | zig | 31,086 |
15 | swc | 30,118 |
16 | typst | 28,677 |
17 | llvm-project | 25,962 |
18 | V8 | 22,729 |
19 | Graal | 19,832 |
20 | Roslyn | 18,564 |
21 | RustPython | 17,724 |
22 | assemblyscript | 16,480 |
23 | Nim | 16,133 |
Sponsored