ruby
IParse
Our great sponsors
ruby | IParse | |
---|---|---|
181 | 5 | |
21,447 | 11 | |
0.9% | - | |
10.0 | 3.3 | |
about 17 hours ago | 4 months ago | |
Ruby | C++ | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 only |
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.
ruby
- Ruby 3.3
-
Tests Everywhere - Ruby
Ruby testing with RSpec
-
YJIT Is the Most Memory-Efficient Ruby JIT
https://github.com/ruby/ruby/blob/master/doc/yjit/yjit.md#co...
It just dumps all the JIT-compiled code? I'd expect to see some kind of heuristic or algorithm there... LFU or something.
The internals of a JIT are essentially black magic to me, and I know the people working on YJIT are super talented, so I am sure there is a good reason why they just dump everything instead of the least-frequently used stuff. Maybe the overhead of trying frecency outweighs the gains, maybe they just haven't implemented it yet, or maybe it's just a rarely-reached condition.
Also for a practical tip on YJIT memory usage, note that there is a "--yjit-exec-mem-size" option, see https://github.com/ruby/ruby/blob/master/doc/yjit/yjit.md#co... for more details. (This command-line argument is mentioned in the paper https://dl.acm.org/doi/10.1145/3617651.3622982 but not in this blog post about the paper.)
At Heii On-Call https://heiioncall.com/ we use:
ENV RUBY_YJIT_ENABLE=1
Not parent poster and do not have production YJIT experience. =)
My guess is that you would monitor `RubyVM::YJIT.runtime_stats[:code_region_size]` and/or `RubyVM::YJIT.runtime_stats[:code_gc_count]` so that you can get a feel for a reasonable value for your application, as well as know whether or not the "code GC" is running frequently.
https://github.com/ruby/ruby/blob/master/doc/yjit/yjit.md#pe...
-
GitHub and Developer Ecosystem Control
Part of the major userbase pull in GitHub revolves around hosting a considerable number of popular projects including Angular, React, Kubernetes, cpython, Ruby, tensorflow, and well even the software that powers this site Forem.
-
Ruby Outperforms C: Breaking the Catch-22
The title is misleading, just like other commenters mentioned. Just check how much indirection "rb_iv_get()" has to make (at the end, it will call [1], which isn't "a light" call). Now, check generated JIT code (in a blog post) for the same action where JIT knows how to shave off unnecessary indirection.
We are comparing apples and oranges here.
[1] https://github.com/ruby/ruby/blob/b635a66e957e4dd3fed83ef1d7...
-
A Tour of CPython Compilation
As with actual spoken languages, programming languages have their own grammar as well. I've you've read any RFCs for networking protocols you may have come across a variation of Backus–Naur form, commonly referred to as BNF. The HTTP protocol uses an augmented version of it for its standard. Other languages such as Ruby may even utilize a grammar file.
-
Everything about this Device is so good but I need to know if there is an easy way to delete duplicated games like almost 10K + is duplicated
It relies on ruby and would be installed with ruby gems: gem install finddups TBH, I've only tested it with macOS. It should work with linux too, but I don't think it will work with windows.
-
Creating a Gem using Ruby C API (part 1)
But do not trust in me, see the repository of language!
IParse
- Noulith: A new programming language currently used by the Advent of Code leader
-
The Tools I Use to Write Books (2018)
I wrote a tool that can process a number of MarkDown files with fragments of C code and put all those fragments in the right order to produce a file that can be compiled. It is grammar based and works with manipulating Abstract Syntax Trees, so I guess, it could be adapted for different programming languages. See: https://github.com/FransFaase/IParse#markdownc
-
C++ Compile Time Parser Generator
Interesting. I have not looked into the code, but I wonder whether it is a compiler, or just an interpreter, e.g. it converts the grammar into some internal representation that is executed by an interpreter or virtual machine. I started worked on an interpreting parser in C many years ago. And later also made Java, C++ and JavaScript version of it. For the JavaScript implementation, see: https://fransfaase.github.io/ParserWorkshop/Online_inter_par... For the C++ version, see: https://github.com/FransFaase/IParse
-
Parser generators vs. handwritten parsers: surveying major languages in 2021
I implemented an unparse function in IParse, which is not a parser generator, but a parser that interprets a grammar. See for example https://github.com/FransFaase/IParse/blob/master/software/c_... where symbols starting with a back slash are a kind of white space terminals during the unparse. For example, \inc stands for incrementing the indentation where \dec decrements it. The \s is used to indicate that at given location a space should be included.
What are some alternatives?
CocoaPods - The Cocoa Dependency Manager.
advent-of-code - My solutions for Advent of Code
SimpleCov - Code coverage for Ruby with a powerful configuration library and automatic merging of coverage across test suites
CPython - The Python programming language
yjit - Optimizing JIT compiler built inside CRuby
Ruby on Rails - Ruby on Rails
fastlane - 🚀 The easiest way to automate building and releasing your iOS and Android apps
Lark - Lark is a parsing toolkit for Python, built with a focus on ergonomics, performance and modularity.
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
programming-cryptopunks - Crypto Collectibles Book(let) Series. Programming (Crypto) Pixel Punk Profile Pictures & (Generative) Art - Step-by-Step Book / Guide. Inside Unique 24×24 Pixel Art on the Blockchain... [UnavailableForLegalReasons - Repository access blocked]
Crate - CrateDB is a distributed and scalable SQL database for storing and analyzing massive amounts of data in near real-time, even with complex queries. It is PostgreSQL-compatible, and based on Lucene.
adventofcode