Fil-C on Nix

Filnix wiki

mbrock/filnix

demo/perl/default.nix

Perl + C Integration Demos with Fil-C Memory Safety
Shows various Perl XS modules using C libraries, all compiled with Fil-C

λlib, pkgs, perlPackages
let

Perl with required XS modules

12perlEnv=
perlPackages.perl.withPackages
λps
with ps

C integration

InlineC

Fast C-based data processing

JSONXS
YAMLLibYAML
YAML::LibYAML - fast C-based YAML parser

Database with C backend

DBI
DBDSQLite

XML parsing (libxml2)

XMLLibXML

Compression (zlib, bzip2)

CompressZlib
CompressBzip2

Other useful XS modules

ListMoreUtils
ScalarListUtils
used by makeDemo

Create wrapper scripts

39makeDemo=
λname script
pkgs.writeShellScriptBinname
${perlEnv}/bin/perl ${script}
uses perlEnv
45runAll=
pkgs.writeShellScriptBin"perl-demos"
cd ${./.}
exec bash ${./run-all.sh}
in
pkgs.buildEnv
52name=
"filc-perl-demos"
54paths=
61meta=
62mainProgram=
"perl-demos"
63description=

Perl + C integration demos with Fil-C memory safety

64longDescription=

Two concise demos showing Perl XS (C extension) modules with Fil-C:

1. demo.pl: Multiple C libraries (JSON::XS, XML::LibXML, DBD::SQLite, zlib) 2. inline-c.pl: Write memory-safe C code directly in Perl

All C code gets complete memory safety from Fil-C automatically.