Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

`R_CallMethodDef callMethods[]` mostly don't specify the number of arguments.

Ouverte Adaptée aux débutants
#7,948 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
68/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
c, r
Domaine
backend

Piste de recherche

Commencez dans src/init.c par les routines .Call enregistrées auxquelles renvoie l’issue. Comparez le nombre réel d’arguments de chaque routine à son entrée dans R_CallMethodDef et remplacez -1 par le nombre vérifié. Vérifiez les appels .Call du package et exécutez les tests pertinents pour confirmer que les nombres d’enregistrement correspondent ; l’issue ne précise aucun test particulier.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

beginner-task

WRE 5.4 specifies that R can check the number of arguments given to .Call when invoking package-registered routines. (The actual code doing this is a bit scary, because FFI is hard.) This is important because calling a function through an incompatible function pointer is undefined behaviour in C. The exact consequences can range from almost harmless (the missing argument contains garbage, which you can ignore / the extra argument is just invisible to the function) to complete stack corruption and a quick crash.

Most functions registered for use with .Call in data.table specify -1 instead of the number of arguments. While I'm sure that all calls from R to C code in data.table currently use the correct number of arguments, explicitly specifying this will surface accidental future mistakes immediately instead of causing hard-to-debug crashes.

Tagging this for @igorsteinmacher.

Langage dominant
R
Étoiles
3.9k
Forks
1.1k
Merge moyen
1 j 23 h
PR mergées (30 j)
14

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Rdatatable/data.table

Toutes les issues de Rdatatable/data.table

Issues similaires

Plus d'issues R

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.