ruby
Lark
Our great sponsors
ruby | Lark | |
---|---|---|
181 | 35 | |
21,447 | 4,424 | |
0.9% | 2.7% | |
10.0 | 7.7 | |
1 day ago | 14 days ago | |
Ruby | Python | |
GNU General Public License v3.0 or later | 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.
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!
Lark
-
Show HN: I wrote a RDBMS (SQLite clone) from scratch in pure Python
Lark supports, and recommends, writing and storing the grammar in a .lark file. We have syntax highlighting support in all major IDEs, and even in github itself. For example, here is Lark's built-in grammar for Python: https://github.com/lark-parser/lark/blob/master/lark/grammar...
You can also test grammars "live" in our online IDE: https://www.lark-parser.org/ide/
The rationale is that it's more terse and has less visual clutter than a DSL over Python, which makes it easier to read and write.
-
Oops, I wrote yet another SQLAlchemy alternative (looking for contributors!)
First, let me introduce myself. My name is Erez. You may know some of the Python libraries I wrote in the past: Lark, Preql and Data-diff.
-
Hey guys, have any of you tried creating your own language using Python? I'm interested in giving it a shot and was wondering if anyone has any tips or resources to recommend. Thanks in advance!
It's not super maintained but you might enjoy building something with ppci, Pure Python Compiler Infrastructure. It has some front-ends and some back-ends. There's also PeachPy for an assembler. People like using Lark for parsing, I hear.
-
Is it possible to propagate higher level constructs (+, *) to the generated parse tree in an LR-style parser?
lark, a parsing library where I am somewhat involved has a really nice solution to this: Rules starting with _ are inlined in a post processing step.
- Creating a language with Python.
-
Not Your Grandfather’s Perl
A grammar provides the high level constructs you need to define the "shape" of your data, and it largely takes care of the rest. Grammar libraries exist in other language (eg. lark or Parsimonius in Python) and they weren't created just to make XML parsing easier.
-
Earley Parsing Explained
I made a solid attempt at an Earley parser framework of my own, but apparently to get the most reliable performance from Earley parsing you need to implement Joop Leo's improvement for right-recursive grammars, which nobody has been able to adequately explain to me. I've read Kegler's open letter to Vaillant, I've tried to read other implementations, I've even tried to beat my head against the original academic paper, but I don't have the background knowledge to make sense of it all.
-
Parser and Lexer bike-shedding
Have you looked at Lark recently?
-
Python toolkits
STDOUT: Lark or pyparsing
- How can I construct an abstract syntax tree without AST module?
What are some alternatives?
pyparsing - Python library for creating PEG parsers [Moved to: https://github.com/pyparsing/pyparsing]
PLY - Python Lex-Yacc
pydantic - Data validation using Python type hints
CocoaPods - The Cocoa Dependency Manager.
sqlparse - A non-validating SQL parser module for Python
Atoma - Atom, RSS and JSON feed parser for Python 3
Construct - Construct: Declarative data structures for python that allow symmetric parsing and building
汉字拼音转换工具(Python 版) - 汉字转拼音(pypinyin)
Pygments
textX - Domain-Specific Languages and parsers in Python made easy http://textx.github.io/textX/
Python Left-Right Parser - Python Parser
llvm-project - The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.