HsPerl5 0.0.6 → 0.0.6.20150815
raw patch · 4 files changed
+28/−17 lines, 4 filesdep ~base
Dependency ranges changed: base
Files
- Configure.PL +16/−6
- HsPerl5.cabal +3/−3
- perlxsi.c +8/−6
- src/Language/Perl5.hs +1/−2
Configure.PL view
@@ -6,12 +6,22 @@ use Config; use ExtUtils::Embed; +sub tidy {+ my $str = shift;+ # If compiling for multiple archs, compile for none.+ if ($str =~ /-arch \S+ +.*-arch \S+/) {+ $str =~ s/-arch \S+//g;+ }+ return $str;+}+ my $embed_flags = "-I" . cwd(); my $ccdlflags = "";-my $flags = "$Config{ccflags} $Config{ccdlflags} ";+my $flags = tidy("$Config{ccflags} $Config{ccdlflags} "); if ($flags =~ /\S/) { $flags =~ s{([\\"'])}{\\$1}g;+ my @flags = grep { length $_ } split /\s+/, $flags; if ($^O eq 'MSWin32') {@@ -39,7 +49,7 @@ $flags = "$Config{ccflags} $Config{ccdlflags}"; $flags =~ s{([\\"'])}{\\$1}g;- @flags = grep { length $_ } split /\s+/, $flags;+ @flags = grep { length $_ } split /\s+/, tidy($flags); } else { warn "Unrecognized libperl shared library: $Config{libperl}, proceeding anyway...\n";@@ -49,12 +59,12 @@ $embed_flags .= " -optc-Ddirent=DIRENT"; } else {- $embed_flags .= " -optc$_" for grep length, split(/\s+/, ccopts());- $embed_flags .= " -optl$_" for grep length, split(/\s+/, ldopts());+ $embed_flags .= " -optc$_" for grep length, split(/\s+/, tidy(ccopts()));+ $embed_flags .= " -optl$_" for grep length, split(/\s+/, tidy(ldopts())); } - $embed_flags .= " $_" for grep { /-[DIL]/ } split(/\s+/, ccopts());- $embed_flags .= " $_" for grep { /-[DIL]/ } split(/\s+/, ldopts());+ $embed_flags .= " $_" for grep { /-[DIL]/ } split(/\s+/, tidy(ccopts()));+ $embed_flags .= " $_" for grep { /-[DIL]/ } split(/\s+/, tidy(ldopts())); if ($Config{osname} eq 'cygwin') { my $cygpath = sub {
HsPerl5.cabal view
@@ -1,6 +1,6 @@ name: HsPerl5-version: 0.0.6-copyright: 2008 Audrey Tang+version: 0.0.6.20150815+copyright: 2008-2015 Audrey Tang license: BSD3 license-file: LICENSE author: Audrey Tang <audreyt@audreyt.org>@@ -27,7 +27,7 @@ ScopedTypeVariables, FlexibleInstances, UndecidableInstances, OverlappingInstances, IncoherentInstances exposed-modules: Language.Perl5-build-depends: base+build-depends: base >= 4 && < 5 extra-source-files: README test.hs Configure.PL p5embed.h perlxsi.c hs-source-dirs: src category: Language, Pugs
perlxsi.c view
@@ -1,5 +1,6 @@-#include <EXTERN.h>-#include <perl.h>+#include "EXTERN.h"+#include "perl.h"+#include "XSUB.h" EXTERN_C void xs_init (pTHX); @@ -8,9 +9,10 @@ EXTERN_C void xs_init(pTHX) {- char *file = __FILE__;- dXSUB_SYS;+ static const char file[] = __FILE__;+ dXSUB_SYS;+ PERL_UNUSED_CONTEXT; - /* DynaLoader is a special case */- newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file);+ /* DynaLoader is a special case */+ newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file); }
src/Language/Perl5.hs view
@@ -1,4 +1,3 @@-{-# INCLUDE "p5embed.h" #-} module Language.Perl5 ( Context(..) , ToSV(..)@@ -101,7 +100,7 @@ svs <- peekArray0 nullPtr rv case svs of [] -> fromArgs =<< peekArray0 nullPtr (rv `advancePtr` 1)- [err] -> throwIO (DynException $ toDyn err)+ [err] -> throwIO (toException $ toDyn err) (_:x:_) -> fail =<< fromSV x -- | Data types that can be casted into a Perl 5 value (SV).