[Rt-commit] [svn] r1010 - in mzscheme: . Language-MzScheme Language-MzScheme/lib Language-MzScheme/lib/Language Language-MzScheme/t Language-MzScheme/t/scripts

autrijus at pallas.eruditorum.org autrijus at pallas.eruditorum.org
Sun Jun 6 22:58:29 EDT 2004


Author: autrijus
Date: Sun Jun  6 22:58:29 2004
New Revision: 1010

Added:
   mzscheme/Language-MzScheme/
   mzscheme/Language-MzScheme/Changes
   mzscheme/Language-MzScheme/MANIFEST
   mzscheme/Language-MzScheme/MANIFEST.SKIP
   mzscheme/Language-MzScheme/Makefile.PL
   mzscheme/Language-MzScheme/README
   mzscheme/Language-MzScheme/SIGNATURE
   mzscheme/Language-MzScheme/lib/
   mzscheme/Language-MzScheme/lib/Language/
   mzscheme/Language-MzScheme/lib/Language/MzScheme.pm
   mzscheme/Language-MzScheme/mzscheme.i
   mzscheme/Language-MzScheme/t/
   mzscheme/Language-MzScheme/t/0-signature.t
   mzscheme/Language-MzScheme/t/1-basic.t
   mzscheme/Language-MzScheme/t/scripts/
   mzscheme/Language-MzScheme/t/scripts/three.pl
Modified:
   mzscheme/   (props changed)
Log:
 ----------------------------------------------------------------------
 r5423 at not:  autrijus | 2004-06-07T02:56:53.588851Z
 
 * This be Language::MzScheme, version 0.01.
 ----------------------------------------------------------------------


Added: mzscheme/Language-MzScheme/Changes
==============================================================================
--- (empty file)
+++ mzscheme/Language-MzScheme/Changes	Sun Jun  6 22:58:29 2004
@@ -0,0 +1,3 @@
+[Changes for 0.00_01 - June 7, 2004]
+
+Initial CPAN Release.

Added: mzscheme/Language-MzScheme/MANIFEST
==============================================================================
--- (empty file)
+++ mzscheme/Language-MzScheme/MANIFEST	Sun Jun  6 22:58:29 2004
@@ -0,0 +1,20 @@
+Changes
+inc/Module/Install.pm
+inc/Module/Install/Base.pm
+inc/Module/Install/Can.pm
+inc/Module/Install/Fetch.pm
+inc/Module/Install/Makefile.pm
+inc/Module/Install/Metadata.pm
+inc/Module/Install/Win32.pm
+inc/Module/Install/WriteAll.pm
+lib/Language/MzScheme.pm
+Makefile.PL
+MANIFEST			This list of files
+MANIFEST.SKIP
+META.yml
+mzscheme.i
+README
+SIGNATURE
+t/0-signature.t
+t/1-basic.t
+t/scripts/three.pl

Added: mzscheme/Language-MzScheme/MANIFEST.SKIP
==============================================================================
--- (empty file)
+++ mzscheme/Language-MzScheme/MANIFEST.SKIP	Sun Jun  6 22:58:29 2004
@@ -0,0 +1,21 @@
+#defaults
+\bRCS\b
+\bCVS\b
+,v$
+\B\.svn\b
+^MANIFEST\.bak
+^Makefile$
+^blib/
+^bin/
+^MakeMaker-\d
+^.*\.hi
+^scheme
+^MzScheme
+^mzscheme_wrap
+^blibdirs
+^pm_to_blib
+^lib/Language/MzScheme_in.pm
+~$
+\.old$
+^#.*#$
+^\.#

Added: mzscheme/Language-MzScheme/Makefile.PL
==============================================================================
--- (empty file)
+++ mzscheme/Language-MzScheme/Makefile.PL	Sun Jun  6 22:58:29 2004
@@ -0,0 +1,69 @@
+#!/usr/bin/perl
+
+use strict;
+use Config;
+use inc::Module::Install;
+
+name('Language-MzScheme');
+version_from('lib/Language/MzScheme.pm');
+abstract_from('lib/Language/MzScheme.pm');
+author('Autrijus Tang <autrijus at autrijus.org>');
+license('perl');
+can_cc() or die "This module requires a C compiler";
+
+`swig -ldflags` =~ /\w/
+  or die "This module requires SWIG - http://www.swig.org/";
+`mzscheme --version` =~ /\d/
+  or die "This module requires MzScheme - http://plt-scheme.org/software/mzscheme/";
+
+my $plt_path = $ENV{PLT_PATH} || do {
+    my $show = `mzc --ldl-show --help`
+      or die 'Cannot run mzc; please set $ENV{PLT_PATH}';
+    $show =~ m!\("([^"]+)/lib/!i
+      or die 'Cannot find PLT path; please set $ENV{PLT_PATH}';
+    $1;
+};
+
+my $include = "$plt_path/include";
+-d $include or die "Cannot find 'include' dir under $plt_path; please set \$ENV{PLT_PATH}";
+
+make_hi();
+
+system(
+    'swig',
+    "-I$include",
+    qw(-module Language::MzScheme -includeall -exportall -perl5 mzscheme.i)
+);
+
+rename("MzScheme.pm" => "lib/Language/MzScheme_in.pm");
+
+makemaker_args(
+    LIBS => "-L$plt_path/lib -lmzgc -lmzscheme",
+    INC => "-I$include",
+    OBJECT => "mzscheme_wrap$Config{obj_ext}",
+);
+
+WriteAll( sign => 1 );
+
+sub make_hi {
+    local $/ = ";\n";
+
+    open IN, "$include/scheme.h" or die $!;
+    open OUT, "> scheme.hi" or die $!;
+    while (<IN>) {
+        s/.*?^enum\b/enum/ms or next;
+        print OUT $_, "\n";
+    }
+    close OUT;
+    close IN;
+
+    open IN, "$include/schemef.h" or die $!;
+    open OUT, "> schemef.hi" or die $!;
+    while (<IN>) {
+        /(.*)^MZ_EXTERN\s*(.+)/sm or next;
+        $_ = "$1$2"; s/MZ_EXTERN\s*//g;
+        print OUT $_, "\n";
+    }
+    close OUT;
+    close IN;
+}

Added: mzscheme/Language-MzScheme/README
==============================================================================
--- (empty file)
+++ mzscheme/Language-MzScheme/README	Sun Jun  6 22:58:29 2004
@@ -0,0 +1,30 @@
+This is the README file for Language::MzScheme, a module that
+provides Perl bindings to PLT MzScheme.
+
+Please type "perldoc Language::MzScheme" after installation to
+see the module usage information.
+
+* Prerequisites
+
+- The C++ Compiler used to compile your perl installation
+- SWIG - http://www.swig.org/
+- MzScheme - http://plt-scheme.org/software/mzscheme/
+
+* Installation
+
+Language::MzScheme uses the standard perl module install process:
+
+cpansign -v		# optional; see SIGNATURE for details
+perl Makefile.PL
+make			# or 'nmake' on Win32
+make test
+make install
+
+* Copyright
+
+Copyright 2004 by Autrijus Tang <autrijus at autrijus.org>.
+
+All rights reserved.  You can redistribute and/or modify
+this bundle under the same terms as Perl itself.
+
+See <http://www.perl.com/perl/misc/Artistic.html>.

Added: mzscheme/Language-MzScheme/SIGNATURE
==============================================================================
--- (empty file)
+++ mzscheme/Language-MzScheme/SIGNATURE	Sun Jun  6 22:58:29 2004
@@ -0,0 +1,42 @@
+This file contains message digests of all files listed in MANIFEST,
+signed via the Module::Signature module, version 0.38.
+
+To verify the content in this distribution, first make sure you have
+Module::Signature installed, then type:
+
+    % cpansign -v
+
+It would check each file's integrity, as well as the signature's
+validity.  If "==> Signature verified OK! <==" is not displayed,
+the distribution may already have been compromised, and you should
+not run its Makefile.PL or Build.PL.
+
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+SHA1 f1d5aa346ccc261b3977b1ab6560ef0427beb36c Changes
+SHA1 67beba91a4f15e1e3332eee3dedaad04272844c2 MANIFEST
+SHA1 7a81e2090d10fa9903f45f7255b4f30156eb0d5e MANIFEST.SKIP
+SHA1 503c7080aa406ff546a80567f87de659fef1cb91 META.yml
+SHA1 28c61f88c0fbfe69faf6ef8f10e23cc42e1f89ab Makefile.PL
+SHA1 015ef794b70a926280cbbe8c8d34c1e1329896df README
+SHA1 2b65fc08c268c16ae7097d800bacccc7b8c9c905 inc/Module/Install.pm
+SHA1 fd56d5c793014bccac2cd1e61926c4da8538ef99 inc/Module/Install/Base.pm
+SHA1 9ce6768a7b8f7032ec89594b773fafd58c6feb1d inc/Module/Install/Can.pm
+SHA1 b6c8f0f22c4c8ba48a7bac2c5e4bd61803a7b097 inc/Module/Install/Fetch.pm
+SHA1 aabcd47178e4e7b27e340ff5273269c93697c9c1 inc/Module/Install/Makefile.pm
+SHA1 207dfa13341a374fc78325fbeb99bc36659aef2d inc/Module/Install/Metadata.pm
+SHA1 aff9341a15c04faec47089851e43d9d4061337e7 inc/Module/Install/Win32.pm
+SHA1 8e0d347ca21bc18b380d9d1aa5910b8d078a76b7 inc/Module/Install/WriteAll.pm
+SHA1 1a8d0ce052c767bcd65963000e5e3f0b52751c83 lib/Language/MzScheme.pm
+SHA1 4e277ada6a53bff256a53a8ad56f664cf2ad5779 mzscheme.i
+SHA1 63c7ea0cfdd7643aa113c260eec9c9bf0a6ee8a0 t/0-signature.t
+SHA1 408aa3a8883e08a2f9b374b3deeb60d524aa17ad t/1-basic.t
+SHA1 bcf009a9acf9bbd543f49b36755ba799b1aafe43 t/scripts/three.pl
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.2.3 (FreeBSD)
+
+iD8DBQFAw9mvtLPdNzw1AaARAs5VAJ9mb1kXTPGSRax/fJ0BtS7pg59fYwCdERaT
+IE+Shj2xXZzQBDUfAGT6qqI=
+=1C/f
+-----END PGP SIGNATURE-----

Added: mzscheme/Language-MzScheme/lib/Language/MzScheme.pm
==============================================================================
--- (empty file)
+++ mzscheme/Language-MzScheme/lib/Language/MzScheme.pm	Sun Jun  6 22:58:29 2004
@@ -0,0 +1,58 @@
+package Language::MzScheme;
+$Language::MzScheme::VERSION = '0.01';
+
+use strict;
+use Language::MzScheme_in;
+
+=head1 NAME
+
+Language::MzScheme - Perl bindings to PLT MzScheme
+
+=head1 VERSION
+
+This document describes version 0.00_01 of Language::MzScheme, released
+June 7, 2004.
+
+=head1 SYNOPSIS
+
+    use strict;
+    use Language::MzScheme;
+    my $env = scheme_basic_env();
+    my $out = scheme_get_param($scheme_config, $MZCONFIG_OUTPUT_PORT);
+    my $val = scheme_eval_string('(+ 1 2)', $env);
+    scheme_display($val, $out);
+    scheme_display(scheme_make_char("\n"), $out);
+
+=head1 DESCRIPTION
+
+This module provides Perl bindings to PLT's MzScheme language.
+
+Currently, it simply exports all C enums, functions and symbols found in
+the MzScheme's extension table into Perl space, without any further
+processing.
+
+Object-oriented wrappers and Perl-based primitives are planned for the
+next few versions.
+
+=cut
+
+1;
+
+=head1 SEE ALSO
+
+L<http://plt-scheme.org/software/mzscheme/>
+
+=head1 AUTHORS
+
+Autrijus Tang E<lt>autrijus at autrijus.orgE<gt>
+
+=head1 COPYRIGHT
+
+Copyright 2004 by Best Practical Solutions, LLC.
+
+This program is free software; you can redistribute it and/or modify it
+under the same terms as Perl itself.
+
+See L<http://www.perl.com/perl/misc/Artistic.html>
+
+=cut

Added: mzscheme/Language-MzScheme/mzscheme.i
==============================================================================
--- (empty file)
+++ mzscheme/Language-MzScheme/mzscheme.i	Sun Jun  6 22:58:29 2004
@@ -0,0 +1,11 @@
+%module mzscheme
+%{
+#include "scheme.h"
+%}
+
+Scheme_Config   *scheme_config;
+Scheme_Env      *scheme_basic_env(void);
+Scheme_Object   *scheme_get_param(Scheme_Config *c, const int pos);
+
+#include "scheme.hi"
+#include "schemef.hi"

Added: mzscheme/Language-MzScheme/t/0-signature.t
==============================================================================
--- (empty file)
+++ mzscheme/Language-MzScheme/t/0-signature.t	Sun Jun  6 22:58:29 2004
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+
+use strict;
+print "1..1\n";
+
+if (!-s 'SIGNATURE') {
+    print "ok 1 # skip No signature file found\n";
+}
+elsif (!eval { require Module::Signature; 1 }) {
+    print "ok 1 # skip ",
+	    "Next time around, consider installing Module::Signature, ",
+	    "so you can verify the integrity of this distribution.\n";
+}
+elsif (!eval { require Socket; Socket::inet_aton('pgp.mit.edu') }) {
+    print "ok 1 # skip ",
+	    "Cannot connect to the keyserver\n";
+}
+else {
+    (Module::Signature::verify() == Module::Signature::SIGNATURE_OK())
+	or print "not ";
+    print "ok 1 # Valid signature\n";
+}
+
+__END__

Added: mzscheme/Language-MzScheme/t/1-basic.t
==============================================================================
--- (empty file)
+++ mzscheme/Language-MzScheme/t/1-basic.t	Sun Jun  6 22:58:29 2004
@@ -0,0 +1,10 @@
+#!/usr/bin/perl
+
+use strict;
+use Test;
+use FindBin;
+
+BEGIN { plan tests => 1 }
+
+chdir $FindBin::Bin;
+ok(`$^X scripts/three.pl`, "3\n");

Added: mzscheme/Language-MzScheme/t/scripts/three.pl
==============================================================================
--- (empty file)
+++ mzscheme/Language-MzScheme/t/scripts/three.pl	Sun Jun  6 22:58:29 2004
@@ -0,0 +1,10 @@
+#!/usr/bin/perl
+
+use strict;
+use Language::MzScheme;
+
+my $env = scheme_basic_env();
+my $out = scheme_get_param($scheme_config, $MZCONFIG_OUTPUT_PORT);
+my $val = scheme_eval_string('(+ 1 2)', $env);
+scheme_display($val, $out);
+scheme_display(scheme_make_char("\n"), $out);


More information about the Rt-commit mailing list