refterm
.NET Runtime
Our great sponsors
refterm | .NET Runtime | |
---|---|---|
37 | 605 | |
1,496 | 14,047 | |
- | 1.8% | |
0.0 | 10.0 | |
about 1 year ago | about 10 hours ago | |
C | C# | |
GNU General Public License v3.0 only | MIT License |
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.
refterm
- Linux Terminal Emulators Have the Potential of Being Much Faster
-
What Happens Before the Main Function is Called ?
refterm, a terminal emulator proof of concept.
- Beside SDL, is there an easier way to just show a custom rectangle with text, cross-platform?
- Windows Terminal is now the default Windows 11 22H2 console
-
Why Modern Software Is Slow
> licensing it so that they couldn’t even look at it
https://github.com/cmuratori/refterm/blob/main/LICENSE
It’s just GPL 2.0, what are you talking about!?
Are Microsoft employees vampires that will burn up instantly if they merely glance at GPL code or something?
This is sour grapes nonsense from Microsoft. “We don’t like your tone so we won’t even dignify your argument by considering it.”
At one point an MS employee said they would love to fix their code as suggested by Casey but he refused to even look at the YouTube video!
“I would love to hear your arguments but I refuse to listen to the sound of your voice.” is next-level dismissive.
-
How can I create a rogue engine from scratch without curses?
Casey Muratori made a renderer/terminal a short while back. Might be a good reference of you intend to go that route. https://github.com/cmuratori/refterm
-
Microsoft insults dev then takes credit for their idea
You keep complaining that it's not a fully working terminal. Casey, on the other hand, writes here: [1]
> These features are not designed to be comprehensive, since this is only meant to be a reference renderer, not a complete terminal.
>most of the code in the parser/renderer part of the terminal is unnecessary and just slows things down. What this code needs to do is extremely simple and it seems like it has been massively overcomplicated
He means exactly what he says. Notably, refterm had almost no optimization applied to it.[0] The massive performance increase was entirely due to non-pessimization.[1]
>refterm actually isn't very fast. Despite being several orders of magnitude faster than Windows Terminal, refterm is largely unoptimized and is much slower than it could be. It is nothing more than a straightforward implementation of a tile renderer, with a very simple cache to ensure that glyph generation only gets called when new glyphs are seen. It is all very, very simple. A more complex codebase that parsed Unicode and rendered glyphs itself would likely be much faster than refterm for many important metrics.[0]
[0] - https://github.com/cmuratori/refterm
[1] - Refterm Lecture Part 1 - Philosophies of Optimization - https://www.youtube.com/watch?v=pgoetgxecw8
Sure but in this case it was grossly over-estimated compared to the under-estimated side. Casey did the implementation [1] to prove the point and also made explanatory videos [2] of it.
-
Burn My Windows
After that post they did implement a full reference implementation:
https://github.com/cmuratori/refterm/commits/main
And there is movement in getting changes into the terminal itself:
.NET Runtime
-
Java 23: The New Features Are Officially Announced
If you care about portable SIMD and performance, you may want to save yourself trouble and skip to C# instead, it also has an extensive guide to using it: https://github.com/dotnet/runtime/blob/69110bfdcf5590db1d32c...
CoreLib and many new libraries are using it heavily to match performance of manually intensified C++ code.
-
Locally test and validate your Renovate configuration files
DEBUG: packageFiles with updates (repository=local) "config": { "nuget": [ { "deps": [ { "datasource": "nuget", "depType": "nuget", "depName": "Microsoft.Extensions.Hosting", "currentValue": "7.0.0", "updates": [ { "bucket": "non-major", "newVersion": "7.0.1", "newValue": "7.0.1", "releaseTimestamp": "2023-02-14T13:21:52.713Z", "newMajor": 7, "newMinor": 0, "updateType": "patch", "branchName": "renovate/dotnet-monorepo" }, { "bucket": "major", "newVersion": "8.0.0", "newValue": "8.0.0", "releaseTimestamp": "2023-11-14T13:23:17.653Z", "newMajor": 8, "newMinor": 0, "updateType": "major", "branchName": "renovate/major-dotnet-monorepo" } ], "packageName": "Microsoft.Extensions.Hosting", "versioning": "nuget", "warnings": [], "sourceUrl": "https://github.com/dotnet/runtime", "registryUrl": "https://api.nuget.org/v3/index.json", "homepage": "https://dot.net/", "currentVersion": "7.0.0", "isSingleVersion": true, "fixedVersion": "7.0.0" } ], "packageFile": "RenovateDemo.csproj" } ] }
-
Chrome Feature: ZSTD Content-Encoding
https://github.com/dotnet/runtime/issues/59591
Support zstd Content-Encoding:
- Writing x86 SIMD using x86inc.asm (2017)
-
Why choose async/await over threads?
We might not be that far away already. There is this issue[1] on Github, where Microsoft and the community discuss some significant changes.
There is still a lot of questions unanswered, but initial tests look promising.
-
Redis License Changed
https://github.com/dotnet/dotnet exists for source build that stitches together SDK, Roslyn, runtime and other dependencies. A lot of them can be built and used individually, which is what contributors usually do. For example, you can clone and build https://github.com/dotnet/runtime and use the produced artifacts to execute .NET assemblies or build .NET binaries.
-
Garnet – A new remote cache-store from Microsoft Research
Thank you, I missed the [stack allocation](https://github.com/dotnet/runtime/blob/main/docs/design/core...) design doc stating it’s on the roadmap.
Appreciate the detail about the stack allocated bits in .NET.
Yeah, it kind of is. There are quite a few of experiments that are conducted to see if they show promise in the prototype form and then are taken further for proper integration if they do.
Unfortunately, object stack allocation was not one of them even though DOTNET_JitObjectStackAllocation configuration knob exists today, enabling it makes zero impact as it almost never kicks in. By the end of the experiment[0], it was concluded that before investing effort in this kind of feature becomes profitable given how a lot of C# code is written, there are many other lower hanging fruits.
To contrast this, in continuation to green threads experiment, a runtime handled tasks experiment[1] which moves async state machine handling from IL emitted by Roslyn to special-cased methods and then handling purely in runtime code has been a massive success and is now being worked on to be integrated in one of the future version of .NET (hopefully 10?)
[0] https://github.com/dotnet/runtime/issues/11192
[1] https://github.com/dotnet/runtimelab/blob/feature/async2-exp...
-
The Mechanics of Silicon Valley Pump and Dump Schemes
The math of the above is really simple. Microsoft has 13,000 stars on their GitHub profile for their flagship product. SupaBase has 63,000 stars on their GitHub project for their flagship product. 27% of all software developers in the world are using .Net. SupaBase has 4.5 times as many likes as the .Net Core runtime, so they must be 4.5 times as large, right? 4.5 multiplied by 27% becomes 130%. Implying 130% of all software developers that exists on earth are using SupaBase (apparently!)
-
OpenD, a D language fork that is open to your contributions
> The amount of unsafe code used to implement C# vastly outweighs the amount in Rust's standard library.
According to bing.com chat, https://github.com/dotnet/runtime has 3.5M LOC, and https://github.com/rust-lang/rust has 6M LOC. The left panel of https://github.com/dotnet/runtime says 80% of the .NET runtime is written in C#.
This makes me wonder, do you happen to have a link for your “vastly outweighs” statement?
What are some alternatives?
xterm.js - A terminal for the web
Ryujinx - Experimental Nintendo Switch Emulator written in C#
ASP.NET Core - ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
Windows Terminal - The new Windows Terminal and the original Windows console host, all in the same place!
actix-web - Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.
WASI - WebAssembly System Interface
CoreCLR - CoreCLR is the runtime for .NET Core. It includes the garbage collector, JIT compiler, primitive data types and low-level classes.
kitty - Cross-platform, fast, feature-rich, GPU based terminal
vgpu_unlock - Unlock vGPU functionality for consumer grade GPUs.
runtimelab - This repo is for experimentation and exploring new ideas that may or may not make it into the main dotnet/runtime repo.
dotnet-wasi-sdk - Packages for building .NET projects as standalone WASI-compliant modules
sdk - Core functionality needed to create .NET Core projects, that is shared between Visual Studio and CLI