Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Implement wrappers for function-like macros

Aperta
#139 9 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
r, rust
Ambito
tooling

Direzione di ricerca

Confronta i ruoli di libR-sys ed extendr, quindi esamina i bindings generati da bindgen e le macro R menzionate nell’issue, incluse MAYBE_SHARED, NO_REFERENCES e KNOWN_SORTED. Il lavoro sarà considerato completato quando sarà stato concordato dove collocare i wrapper manuali e saranno state implementate le macro mancanti di tipo funzione selezionate, senza affidarsi a bindgen.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

I'm interested in accessing some reference counting functionality in R, but I noticed that e.g. MAYBE_SHARED, NO_REFERENCES have no bindings generated. This is of course because of the fact that bindgen can't (yet) generate macros for function-like macros: https://github.com/rust-lang/rust-bindgen/issues/753.

Therefore I'm thinking it might be nice to slowly add some manual implementations of these macros. The simple ones like #define CHAR(x) R_CHAR(x) are of lower priority to me since they don't represent missing functionality, but stuff like # define MAYBE_SHARED(x) (NAMED(x) > 1) seems useful to me, as are more complex ones like KNOWN_SORTED.

The only question is whether we want these to live in libR-sys as opposed to extendr, since they're not generated and would be the first manual functions in the crate. Opinions are welcome.

Lingua principale
Rust
Stelle
56
Fork
26
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di extendr/libR-sys

Tutte le issue di extendr/libR-sys

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.