jannik2099 / pms-utils Goto Github PK
View Code? Open in Web Editor NEWA helper library to implement the Gentoo Package Manager Specification
License: GNU General Public License v2.0
A helper library to implement the Gentoo Package Manager Specification
License: GNU General Public License v2.0
a couple parsers use C locale parsers. This is both slow and likely inaccurate.
The upcoming Boost.Parse would also alleviate this.
Hello!
I found this project through @thesamesam's activity hehe. And it looks like we have some shared interests. I wanted to have a go at dependency resolution, and I had to write my own routines for PMS and this exactly what this project aims to offer.
The routines are part of my dep solver project https://github.com/adelKS/quantumresolver: it also uses C++20
and the meson
build system. If you have a look at its readme, so far there's the quantum
cli program which offers a mix between equery y [atom]
and emerge -qpvO [atom]
. That should give an idea on which routines were implemented for it to work.
So maybe we can collaborate so I can rework and transfer the other routines I wrote to this library and make my project depend on it. So my own project focuses only on the dependency resolution.
One example of discussion: I took a quick look at what you wrote for version comparison, I wanted to use std::strong_ordering
but in the end preferred specific optimizations for each case, using lexicographical_compare_three_way with an internal representation that works with it, so it could leverage SIMD instructions (my intent is to write the fastest dependency resolver I could come up with). See ebuild_version.h and ebuild_version.cpp
The example from the README (when replacing __repr__
with __str__
) currently prints
blocker: Blocker.weak
category: foo
name: bar
slotExpr: :0
usedeps: <pms_utils.atom.Usedeps object at 0x7feb1e209eb0>
version: 1
verspec: VersionSpecifier.ge
__str__
for enums and vectors is missing
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.