{"id":20550245,"url":"https://github.com/dnmfarrell/xs-tutorial","last_synced_at":"2025-10-07T10:30:05.293Z","repository":{"id":55154903,"uuid":"90098417","full_name":"dnmfarrell/XS-Tutorial","owner":"dnmfarrell","description":null,"archived":false,"fork":false,"pushed_at":"2021-01-06T13:25:59.000Z","size":98,"stargazers_count":2,"open_issues_count":1,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-14T11:16:18.316Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dnmfarrell.png","metadata":{"files":{"readme":"README.pod","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-03T02:15:30.000Z","updated_at":"2021-01-06T13:26:01.000Z","dependencies_parsed_at":"2022-08-14T13:40:46.747Z","dependency_job_id":null,"html_url":"https://github.com/dnmfarrell/XS-Tutorial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnmfarrell%2FXS-Tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnmfarrell%2FXS-Tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnmfarrell%2FXS-Tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnmfarrell%2FXS-Tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dnmfarrell","download_url":"https://codeload.github.com/dnmfarrell/XS-Tutorial/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248868767,"owners_count":21174758,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T02:24:05.811Z","updated_at":"2025-10-07T10:30:00.247Z","avatar_url":"https://github.com/dnmfarrell.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"=encoding utf8\n\n=head1 NAME\n\nXS::Tutorial - documentation with examples for learning Perl XS\n\n=over 4\n\n=item * L\u003cXS::Tutorial::One\u003e - how to pass to and return basic values from C functions\n\n=item * L\u003cXS::Tutorial::Two\u003e - working with more than one value at a time\n\n=item * L\u003cXS::Tutorial::Three\u003e - utility routines that are good to know\n\n=back\n\n=head1 SOURCES OF INFORMATION\n\n=head3 XS Mechanics by Steven W. McDougall\n\nA clear L\u003cintroduction|http://world.std.com/~swmcd/steven/perl/pm/xs/intro/\u003e to XS programming.\n\n=head3 Extending and Embedding Perl (Manning) by Simon Cozens and Tim Jenness\n\nA thorough L\u003cintroduction|https://www.manning.com/books/extending-and-embedding-perl\u003e, with many examples. Outdated in parts (mostly data structures) but still an excellent reference.\n\n=head3 perldoc\n\n=over 4\n\n=item * L\u003cperlxs|http://perldoc.perl.org/perlxs.html\u003e: syntax of xsubs\n\n=item * L\u003cperlapi|http://perldoc.perl.org/perlapi.html\u003e : C macros used to interact with Perl data structures (and the interpreter)\n\n=item * L\u003cperlguts|http://perldoc.perl.org/perlguts.html\u003e: Perl data structures\n\n=item * L\u003cperlxstypemap|http://perldoc.perl.org/perlxstypemap.html\u003e: typemap syntax (translating C types into Perl)\n\n=item * L\u003cperlcall|http://perldoc.perl.org/perlcall.html\u003e: how to call Perl subroutines and methods from XS\n\n=item * L\u003cperlxstut|http://perldoc.perl.org/perlxstut.html\u003e: another XS tutorial\n\n=back\n\n=head3 ExtUtils::MakeMaker\n\nThe L\u003cdocumentation|https://metacpan.org/pod/ExtUtils::MakeMaker\u003e explains all of the options in C\u003cMakefile.PL\u003e. Useful if you need to pass additional flags or options to the C compiler.\n\n=head3 ppport.h\n\nA header file, needed for compatibility across Perl versions. See L\u003cDevel::PPPort|https://metacpan.org/pod/Devel::PPPort\u003e.\n\n=head3 Perl source code\n\nif you can’t find an answer in documentation, grep the L\u003csource|https://www.perl.org/get.html\u003e.\n\n=cut\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnmfarrell%2Fxs-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdnmfarrell%2Fxs-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnmfarrell%2Fxs-tutorial/lists"}