You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2014/04/27 01:11:50 UTC

[lucy-commits] [20/54] [abbrv] Remove bundled Clownfish.

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Model/CBlock.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/CBlock.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Model/CBlock.pm
deleted file mode 100644
index bb3e6a1..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/CBlock.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Model::CBlock;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Class.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Class.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Class.pm
deleted file mode 100644
index 8e751b4..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Class.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Model::Class;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Model/DocuComment.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/DocuComment.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Model/DocuComment.pm
deleted file mode 100644
index f6c1904..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/DocuComment.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Model::DocuComment;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Model/File.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/File.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Model/File.pm
deleted file mode 100644
index b2f82ae..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/File.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Model::File;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Model/FileSpec.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/FileSpec.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Model/FileSpec.pm
deleted file mode 100644
index d54dbf1..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/FileSpec.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Model::FileSpec;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Function.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Function.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Function.pm
deleted file mode 100644
index 163728f..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Function.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Model::Function;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Hierarchy.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Hierarchy.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Hierarchy.pm
deleted file mode 100644
index 0ee3ea1..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Hierarchy.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Model::Hierarchy;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Method.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Method.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Method.pm
deleted file mode 100644
index e264a47..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Method.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Model::Method;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Model/ParamList.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/ParamList.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Model/ParamList.pm
deleted file mode 100644
index 8fbb810..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/ParamList.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Model::ParamList;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Parcel.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Parcel.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Parcel.pm
deleted file mode 100644
index c879ff1..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Parcel.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Model::Parcel;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Symbol.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Symbol.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Symbol.pm
deleted file mode 100644
index 824c6fa..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Symbol.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Model::Symbol;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Type.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Type.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Type.pm
deleted file mode 100644
index 92e1b98..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Type.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Model::Type;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Variable.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Variable.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Variable.pm
deleted file mode 100644
index da535df..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Model/Variable.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Model::Variable;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Parser.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Parser.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Parser.pm
deleted file mode 100644
index 94752cb..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Parser.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Parser;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Perl/Build.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Perl/Build.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Perl/Build.pm
deleted file mode 100644
index a007756..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Perl/Build.pm
+++ /dev/null
@@ -1,679 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-package Clownfish::CFC::Perl::Build;
-use base qw( Clownfish::CFC::Perl::Build::Charmonic );
-our $VERSION = '0.01';
-
-use File::Spec::Functions qw( catdir catfile curdir updir abs2rel rel2abs );
-use File::Path qw( mkpath );
-use Config;
-use Carp;
-
-# Add a custom Module::Build hashref property to pass additional build
-# parameters
-if ( $Module::Build::VERSION <= 0.30 ) {
-    __PACKAGE__->add_property( clownfish_params => {} );
-}
-else {
-    # TODO: add sub for property check
-    __PACKAGE__->add_property(
-        'clownfish_params',
-        default => {},
-    );
-}
-
-=for Rationale
-
-When the distribution tarball for the Perl bindings is built, core/, and any
-other needed files/directories are copied into the perl/ directory within the
-main source directory.  Then the distro is built from the contents of the
-perl/ directory, leaving out all the files in ruby/, etc. However, during
-development, the files are accessed from their original locations.
-
-=cut
-
-my @BASE_PATH;
-push(@BASE_PATH, updir()) unless -e 'core';
-
-my $AUTOGEN_DIR  = 'autogen';
-my $LIB_DIR      = 'lib';
-my $BUILDLIB_DIR = 'buildlib';
-
-sub new {
-    my $self = shift->SUPER::new( @_ );
-
-    my $extra_ccflags = $self->extra_compiler_flags;
-    if ( $self->config('cc') =~ /^cl\b/ ) {
-        # Compile as C++ under MSVC.
-        push @$extra_ccflags, qw(
-            -TP -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS
-        );
-        # Redefine 'for' to fix broken 'for' scoping under MSVC6.
-        push @$extra_ccflags, '-Dfor="if(0);else for"';
-    }
-    # Define HAS_BOOL, so that the Perl headers don't redefine 'bool'.
-    push @$extra_ccflags, '-DHAS_BOOL';
-    $self->extra_compiler_flags(@$extra_ccflags);
-
-    # TODO: use Charmonizer to determine whether pthreads are userland.
-    if ( $Config{osname} =~ /openbsd/i && $Config{usethreads} ) {
-        my $extra_ldflags = $self->extra_linker_flags;
-        push @$extra_ldflags, '-lpthread';
-        $self->extra_linker_flags(@$extra_ldflags);
-    }
-
-    my $include_dirs = $self->include_dirs;
-    push( @$include_dirs,
-        curdir(), # for ppport.h and charmony.h
-        catdir( $AUTOGEN_DIR, 'include' ),
-    );
-    $self->include_dirs($include_dirs);
-
-    my $cf_source = $self->clownfish_params('source');
-    if ( !defined($cf_source) ) {
-        $cf_source = [];
-    }
-    elsif ( !ref($cf_source) ) {
-        $cf_source = [ $cf_source ];
-    }
-    push( @$cf_source, catdir( $AUTOGEN_DIR, 'source' ) );
-    $self->clownfish_params( source => $cf_source );
-
-    my $cf_include = $self->clownfish_params('include');
-    if ( !defined($cf_include) ) {
-        $cf_include = [];
-    }
-    elsif ( !ref($cf_include) ) {
-        $cf_include = [ $cf_include ];
-    }
-    $self->clownfish_params( include => $cf_include );
-
-    my $autogen_header = $self->clownfish_params('autogen_header');
-    if ( !defined($autogen_header) ) {
-        $self->clownfish_params( autogen_header => <<'END_AUTOGEN' );
-/***********************************************
-
- !!!! DO NOT EDIT !!!!
-
- This file was auto-generated by Build.PL.
-
- ***********************************************/
-
-END_AUTOGEN
-    }
-
-    return $self;
-}
-
-sub cf_base_path {
-    my $self_or_class = shift;
-    return @BASE_PATH;
-}
-
-sub cf_system_include_dirs {
-    my $self_or_class = shift;
-
-    my @include_dirs;
-    for my $location ( qw( site vendor ) ) {
-        my $install_dir = $Config{"install${location}arch"};
-        my $include_dir = catdir( $install_dir, 'Clownfish', '_include' );
-        next unless -d $include_dir;
-        push(@include_dirs, $include_dir);
-    }
-
-    return @include_dirs;
-}
-
-sub cf_linker_flags {
-    my ( $self_or_class, $module_name ) = @_;
-
-    my $dlext = $Config{dlext};
-    # Only needed on Windows
-    return () if $dlext ne 'dll';
-
-    # Find library to link against
-    my @module_parts = split( '::', $module_name );
-    my $class_name   = $module_parts[-1];
-    # Link against import library on MSVC
-    my $ext          = $Config{cc} =~ /^cl\b/ ? 'lib' : $dlext;
-
-    for my $location ( qw( site vendor ) ) {
-        my $install_dir = $Config{"install${location}arch"};
-        my $lib_file = catfile(
-            $install_dir, 'auto', @module_parts, "$class_name.$ext",
-        );
-        return ( $lib_file ) if -f $lib_file;
-    }
-
-    die("No Clownfish library file found for module $module_name");
-}
-
-sub _cfh_filepaths {
-    my $self = shift;
-    my @paths;
-    my $source_dirs = $self->clownfish_params('source');
-    for my $source_dir (@$source_dirs) {
-        next unless -e $source_dir;
-        push @paths, @{ $self->rscan_dir( $source_dir, qr/\.cfh$/ ) };
-    }
-    return \@paths;
-}
-
-sub cf_copy_include_file {
-    my ($self, @path) = @_;
-
-    my $dest_dir     = catdir( $self->blib, 'arch', 'Clownfish', '_include' );
-    my $include_dirs = $self->include_dirs;
-    for my $include_dir (@$include_dirs) {
-        my $file = catfile ( $include_dir, @path );
-        if ( -e $file ) {
-            $self->copy_if_modified(
-                from => $file,
-                to   => catfile( $dest_dir, @path ),
-            );
-            return;
-        }
-    }
-    die( "Clownfish include file " . catfile(@path) . " not found" );
-}
-
-sub ACTION_copy_clownfish_includes {
-    my $self = shift;
-
-    # Copy .cfh files to blib/arch/Clownfish/_include
-    my $inc_dir     = catdir( $self->blib, 'arch', 'Clownfish', '_include' );
-    my $source_dirs = $self->clownfish_params('source');
-
-    for my $source_dir (@$source_dirs) {
-        my $cfh_filepaths = $self->rscan_dir( $source_dir, qr/\.cf[hp]$/ );
-
-        for my $file (@$cfh_filepaths) {
-            my $rel  = abs2rel( $file, $source_dir );
-            my $dest = catfile( $inc_dir, $rel );
-            $self->copy_if_modified( from => $file, to => $dest );
-        }
-    }
-}
-
-sub _compile_clownfish {
-    my $self = shift;
-
-    require Clownfish::CFC::Model::Hierarchy;
-    require Clownfish::CFC::Binding::Perl;
-    require Clownfish::CFC::Binding::Perl::Class;
-
-    # Compile Clownfish.
-    my $hierarchy = Clownfish::CFC::Model::Hierarchy->new(
-        dest => $AUTOGEN_DIR,
-    );
-    my $source_dirs  = $self->clownfish_params('source');
-    my $include_dirs = $self->clownfish_params('include');
-    for my $source_dir (@$source_dirs) {
-        $hierarchy->add_source_dir($source_dir);
-    }
-    for my $include_dir (@$include_dirs) {
-        $hierarchy->add_include_dir($include_dir);
-    }
-    $hierarchy->build;
-
-    # Process all Binding classes in buildlib.
-    my $pm_filepaths = $self->rscan_dir( $BUILDLIB_DIR, qr/\.pm$/ );
-    for my $pm_filepath (@$pm_filepaths) {
-        next unless $pm_filepath =~ /Binding/;
-        require $pm_filepath;
-        my $package_name = $pm_filepath;
-        $package_name =~ s/buildlib\/(.*)\.pm$/$1/;
-        $package_name =~ s/\//::/g;
-        $package_name->bind_all($hierarchy);
-    }
-
-    my $binding = Clownfish::CFC::Binding::Perl->new(
-        hierarchy  => $hierarchy,
-        lib_dir    => $LIB_DIR,
-        boot_class => $self->module_name,
-        header     => $self->clownfish_params('autogen_header'),
-        footer     => '',
-    );
-
-    return ( $hierarchy, $binding );
-}
-
-sub ACTION_pod {
-    my $self = shift;
-    $self->dispatch("clownfish");
-    $self->_write_pod(@_);
-}
-
-sub _write_pod {
-    my ( $self, $binding ) = @_;
-    if ( !$binding ) {
-        ( undef, $binding ) = $self->_compile_clownfish;
-    }
-    print "Writing POD...\n";
-    my $pod_files = $binding->write_pod;
-    $self->add_to_cleanup($_) for @$pod_files;
-}
-
-sub ACTION_clownfish {
-    my $self = shift;
-
-    $self->add_to_cleanup($AUTOGEN_DIR);
-
-    my @module_dir  = split( '::', $self->module_name );
-    my $class_name  = pop(@module_dir);
-    my $xs_filepath = catfile( $LIB_DIR, @module_dir, "$class_name.xs" );
-
-    my $buildlib_pm_filepaths = $self->rscan_dir( $BUILDLIB_DIR, qr/\.pm$/ );
-    my $cfh_filepaths = $self->_cfh_filepaths;
-
-    # XXX joes thinks this is dubious
-    # Don't bother parsing Clownfish files if everything's up to date.
-    return
-        if $self->up_to_date(
-        [ @$cfh_filepaths, @$buildlib_pm_filepaths ],
-        [ $xs_filepath,    $AUTOGEN_DIR, ]
-        );
-
-    # Write out all autogenerated files.
-    print "Parsing Clownfish files...\n";
-    my ( $hierarchy, $perl_binding ) = $self->_compile_clownfish;
-    require Clownfish::CFC::Binding::Core;
-    my $core_binding = Clownfish::CFC::Binding::Core->new(
-        hierarchy => $hierarchy,
-        header    => $self->clownfish_params('autogen_header'),
-        footer    => '',
-    );
-    print "Writing Clownfish autogenerated files...\n";
-    my $modified = $core_binding->write_all_modified;
-    if ($modified) {
-        unlink('typemap');
-        print "Writing typemap...\n";
-        $self->add_to_cleanup('typemap');
-        $perl_binding->write_xs_typemap;
-    }
-
-    # Rewrite XS if either any .cfh files or relevant .pm files were modified.
-    $modified ||=
-        $self->up_to_date( \@$buildlib_pm_filepaths, $xs_filepath )
-        ? 0
-        : 1;
-
-    if ($modified) {
-        $self->add_to_cleanup($xs_filepath);
-        $perl_binding->write_callbacks;
-        $perl_binding->write_boot;
-        $perl_binding->write_hostdefs;
-        $perl_binding->write_bindings;
-        $self->_write_pod($perl_binding);
-    }
-
-    # Touch autogenerated files in case the modifications were inconsequential
-    # and didn't trigger a rewrite, so that we won't have to check them again
-    # next pass.
-    if (!$self->up_to_date(
-            [ @$cfh_filepaths, @$buildlib_pm_filepaths ], $xs_filepath
-        )
-        )
-    {
-        utime( time, time, $xs_filepath );    # touch
-    }
-    if (!$self->up_to_date(
-            [ @$cfh_filepaths, @$buildlib_pm_filepaths ], $AUTOGEN_DIR
-        )
-        )
-    {
-        utime( time, time, $AUTOGEN_DIR );    # touch
-    }
-}
-
-# Write ppport.h, which supplies some XS routines not found in older Perls and
-# allows us to use more up-to-date XS API while still supporting Perls back to
-# 5.8.3.
-#
-# The Devel::PPPort docs recommend that we distribute ppport.h rather than
-# require Devel::PPPort itself, but ppport.h isn't compatible with the Apache
-# license.
-sub ACTION_ppport {
-    my $self = shift;
-    if ( !-e 'ppport.h' ) {
-        require Devel::PPPort;
-        $self->add_to_cleanup('ppport.h');
-        Devel::PPPort::WriteFile();
-    }
-}
-
-sub ACTION_compile_custom_xs {
-    my $self = shift;
-
-    $self->dispatch('ppport');
-
-    require ExtUtils::CBuilder;
-    require ExtUtils::ParseXS;
-
-    my $module_name  = $self->module_name;
-    my @module_parts = split( '::', $module_name );
-    my @module_dir   = @module_parts;
-    my $class_name   = pop(@module_dir);
-
-    my $cbuilder = ExtUtils::CBuilder->new( config => $self->config );
-    my $libdir   = catdir( $LIB_DIR, @module_dir );
-    my $archdir  = catdir( $self->blib, 'arch', 'auto', @module_parts );
-    mkpath( $archdir, 0, 0777 ) unless -d $archdir;
-    my @objects;
-
-    # Compile C source files.
-    my $c_files = [];
-    my $source_dirs = $self->clownfish_params('source');
-    for my $source_dir (@$source_dirs) {
-        push @$c_files, @{ $self->rscan_dir( $source_dir, qr/\.c$/ ) };
-    }
-    # Compile with -fvisibility=hidden on GCC >= 4.0
-    my $extra_cflags = $self->charmony("EXTRA_CFLAGS");
-    if ( $self->config('gccversion') && $Config{dlext} ne 'dll' ) {
-        my @version_nums = split( /\./, $self->config('gccversion') );
-        if ( $version_nums[0] >= 4 ) {
-            $extra_cflags .= ' -fvisibility=hidden';
-        }
-    }
-    for my $c_file (@$c_files) {
-        my $o_file   = $c_file;
-        my $ccs_file = $c_file;
-        $o_file   =~ s/\.c$/$Config{_o}/ or die "no match";
-        $ccs_file =~ s/\.c$/.ccs/        or die "no match";
-        push @objects, $o_file;
-        next if $self->up_to_date( $c_file, $o_file );
-        $self->add_to_cleanup($o_file);
-        $self->add_to_cleanup($ccs_file);
-        $cbuilder->compile(
-            source               => $c_file,
-            extra_compiler_flags => $extra_cflags,
-            include_dirs         => $self->include_dirs,
-            object_file          => $o_file,
-        );
-    }
-
-    # .xs => .c
-    my $xs_filepath         = catfile( $libdir, "$class_name.xs" );
-    my $perl_binding_c_file = catfile( $libdir, "$class_name.c" );
-    $self->add_to_cleanup($perl_binding_c_file);
-    if ( !$self->up_to_date( $xs_filepath, $perl_binding_c_file ) ) {
-        ExtUtils::ParseXS::process_file(
-            filename   => $xs_filepath,
-            prototypes => 0,
-            output     => $perl_binding_c_file,
-        );
-    }
-
-    # .c => .o
-    my $version = $self->dist_version;
-    my $perl_binding_o_file = catfile( $libdir, "$class_name$Config{_o}" );
-    unshift @objects, $perl_binding_o_file;
-    $self->add_to_cleanup($perl_binding_o_file);
-    if ( !$self->up_to_date( $perl_binding_c_file, $perl_binding_o_file ) ) {
-        # Don't use -fvisibility=hidden for XS
-        $cbuilder->compile(
-            source               => $perl_binding_c_file,
-            extra_compiler_flags => $self->extra_compiler_flags,
-            include_dirs         => $self->include_dirs,
-            object_file          => $perl_binding_o_file,
-            # 'defines' is an undocumented parameter to compile(), so we
-            # should officially roll our own variant and generate compiler
-            # flags.  However, that involves writing a bunch of
-            # platform-dependent code, so we'll just take the chance that this
-            # will break.
-            defines => {
-                VERSION    => qq|"$version"|,
-                XS_VERSION => qq|"$version"|,
-            },
-        );
-    }
-
-    # Create .bs bootstrap file, needed by Dynaloader.
-    my $bs_file = catfile( $archdir, "$class_name.bs" );
-    $self->add_to_cleanup($bs_file);
-    if ( !$self->up_to_date( $perl_binding_o_file, $bs_file ) ) {
-        require ExtUtils::Mkbootstrap;
-        ExtUtils::Mkbootstrap::Mkbootstrap($bs_file);
-        if ( !-f $bs_file ) {
-            # Create file in case Mkbootstrap didn't do anything.
-            open( my $fh, '>', $bs_file )
-                or confess "Can't open $bs_file: $!";
-        }
-        utime( (time) x 2, $bs_file );    # touch
-    }
-
-    # Clean up after CBuilder under MSVC.
-    $self->add_to_cleanup('compilet*');
-    $self->add_to_cleanup('*.ccs');
-    $self->add_to_cleanup( catfile( $libdir, "$class_name.ccs" ) );
-    $self->add_to_cleanup( catfile( $libdir, "$class_name.def" ) );
-    $self->add_to_cleanup( catfile( $libdir, "${class_name}_def.old" ) );
-    $self->add_to_cleanup( catfile( $libdir, "$class_name.exp" ) );
-    $self->add_to_cleanup( catfile( $libdir, "$class_name.lib" ) );
-    $self->add_to_cleanup( catfile( $libdir, "$class_name.lds" ) );
-    $self->add_to_cleanup( catfile( $libdir, "$class_name.base" ) );
-
-    # .o => .(a|bundle)
-    my $lib_file = catfile( $archdir, "$class_name.$Config{dlext}" );
-    if ( !$self->up_to_date( [ @objects, $AUTOGEN_DIR ], $lib_file ) ) {
-        $cbuilder->link(
-            module_name        => $module_name,
-            objects            => \@objects,
-            lib_file           => $lib_file,
-            extra_linker_flags => $self->extra_linker_flags,
-        );
-        # Install .lib file on Windows
-        my $implib_file = catfile( $libdir, "$class_name.lib" );
-        if ( -e $implib_file ) {
-            $self->copy_if_modified(
-                from => $implib_file,
-                to   => catfile( $archdir, "$class_name.lib" ),
-            );
-        }
-    }
-}
-
-sub ACTION_code {
-    my $self = shift;
-
-    $self->dispatch('clownfish');
-    $self->dispatch('compile_custom_xs');
-    $self->dispatch('copy_clownfish_includes');
-
-    $self->SUPER::ACTION_code;
-}
-
-# Monkey patch ExtUtils::CBuilder::Platform::Windows::GCC::format_linker_cmd
-# to make extensions work on MinGW.
-#
-# nwellnhof: The original ExtUtils::CBuilder implementation uses dlltool and a
-# strange incremental linking scheme. I think this is only needed for ancient
-# versions of GNU ld. It somehow breaks exporting of symbols via
-# __declspec(dllexport). Starting with version 2.17, one can pass .def files
-# to GNU ld directly, which requires only a single command and gets the
-# exports right.
-{
-    no warnings 'redefine';
-    require ExtUtils::CBuilder::Platform::Windows::GCC;
-    *ExtUtils::CBuilder::Platform::Windows::GCC::format_linker_cmd = sub {
-      my ($self, %spec) = @_;
-      my $cf = $self->{config};
-
-      # The Config.pm variable 'libperl' is hardcoded to the full name
-      # of the perl import library (i.e. 'libperl56.a'). GCC will not
-      # find it unless the 'lib' prefix & the extension are stripped.
-      $spec{libperl} =~ s/^(?:lib)?([^.]+).*$/-l$1/;
-
-      unshift( @{$spec{other_ldflags}}, '-nostartfiles' )
-        if ( $spec{startup} && @{$spec{startup}} );
-
-      # From ExtUtils::MM_Win32:
-      #
-      ## one thing for GCC/Mingw32:
-      ## we try to overcome non-relocateable-DLL problems by generating
-      ##    a (hopefully unique) image-base from the dll's name
-      ## -- BKS, 10-19-1999
-      File::Basename::basename( $spec{output} ) =~ /(....)(.{0,4})/;
-      $spec{image_base} = sprintf( "0x%x0000", unpack('n', $1 ^ $2) );
-
-      %spec = $self->write_linker_script(%spec)
-        if $spec{use_scripts};
-
-      foreach my $path ( @{$spec{libpath}} ) {
-        $path = "-L$path";
-      }
-
-      my @cmds; # Stores the series of commands needed to build the module.
-
-      # split off any -arguments included in ld
-      my @ld = split / (?=-)/, $spec{ld};
-
-      push @cmds, [ grep {defined && length} (
-        @ld                       ,
-        '-o', $spec{output}       ,
-        "-Wl,--image-base,$spec{image_base}" ,
-        @{$spec{lddlflags}}       ,
-        @{$spec{libpath}}         ,
-        @{$spec{startup}}         ,
-        @{$spec{objects}}         ,
-        @{$spec{other_ldflags}}   ,
-        $spec{libperl}            ,
-        @{$spec{perllibs}}        ,
-        $spec{def_file}           ,
-        $spec{map_file} ? ('-Map', $spec{map_file}) : ''
-      ) ];
-
-      return @cmds;
-    };
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Clownfish::CFC::Perl::Build - Build Clownfish modules
-
-=head1 DESCRIPTION
-
-Clownfish::CFC::Perl::Build is a subclass of L<Module::Build> which builds
-the Perl bindings for Clownfish modules.
-
-=head1 SYNOPSIS
-
-    use Clownfish::CFC::Perl::Build;
-    use File::Spec::Functions qw( catdir );
-
-    my @cf_base_path    = Clownfish::CFC::Perl::Build->cf_base_path;
-    my @cf_sys_includes = Clownfish::CFC::Perl::Build->cf_system_include_dirs;
-    my @cf_linker_flags = Clownfish::CFC::Perl::Build->cf_linker_flags(
-        'Other::Module',
-    );
-
-    my $builder = Clownfish::CFC::Perl::Build->new(
-        module_name        => 'My::Module',
-        dist_abstract      => 'Do something with this and that',
-        dist_author        => 'The Author <au...@example.com>',
-        dist_version       => '0.1.0',
-        include_dirs       => [ @cf_sys_includes ],
-        extra_linker_flags => [ @cf_linker_flags ],
-        clownfish_params => {
-            source  => [ catdir( @cf_base_path, 'core' ) ],
-            include => [ @cf_sys_includes ],
-        },
-        requires => {
-            'Other::Module' => '0.3.0',
-        },
-        configure_requires => {
-            'Clownfish::CFC::Perl::Build' => 0.01,
-        },
-        build_requires => {
-            'Clownfish::CFC::Perl::Build' => 0.01,
-        },
-    );
-
-    $builder->create_build_script();
-
-=head1 CONSTRUCTOR
-
-=head2 my $builder = Clownfish::CFC::Perl::Build->new(%args);
-
-Creates a new Clownfish::CFC::Perl::Build object. %args can contain all
-arguments that can be passed to L<Module::Build/new>. It accepts an additional
-argument 'clownfish_params', which is a hashref with the following params:
-
-=head3 source
-
-An arrayref of source directories containing the .cfh and .c files of the
-module. Defaults to [ 'core' ] or to [ '../core' ] if 'core' can't
-be found.
-
-=head3 include
-
-An arrayref of include directories containing .cfh files from other Clownfish
-modules needed by the module. Empty by default. Should contain the Clownfish
-system include directories if needed.
-
-=head3 autogen_header
-
-A string that will be prepended to the files generated by the Clownfish
-compiler.
-
-=head1 METHODS
-
-=head2 my @path = Clownfish::CFC::Perl::Build->cf_base_path();
-
-Returns the base path of the source tree where 'core' etc. will be found.
-Currently either () or ('..').
-
-=head1 METHODS
-
-=head2 my @dirs = Clownfish::CFC::Perl::Build->cf_system_include_dirs();
-
-Returns a list of Clownfish include directories of system-wide installations
-of Clownfish modules.
-
-=head2 my @flags = Clownfish::CFC::Perl::Build->cf_linker_flags($module_name);
-
-Returns the linker flags needed to link against Clownfish module named
-$module_name. Should be added to extra_linker_flags for all module
-dependencies.
-
-=head2 $builder->cf_copy_include_file(@path);
-
-Look for a file with path components @path in all of the Module::Build
-include dirs and copy it to blib, so it will be installed in a Clownfish
-system include directory. Typically used for additional .h files that the
-.cfh files need.
-
-=head2 my $value = $builder->clownfish_params($key);
-
-=head2 $builder->clownfish_params($key => $value);
-
-Get or set a Clownfish build param. Supports all the parameters that can be
-passed to L</new>.
-
-=head1 COPYRIGHT
-
-Clownfish is distributed under the Apache License, Version 2.0, as
-described in the file C<LICENSE> included with the distribution.
-
-=cut
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Perl/Build/Charmonic.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Perl/Build/Charmonic.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Perl/Build/Charmonic.pm
deleted file mode 100644
index 8c5843c..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Perl/Build/Charmonic.pm
+++ /dev/null
@@ -1,116 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-package Clownfish::CFC::Perl::Build::Charmonic;
-
-use base qw( Module::Build );
-
-our $VERSION = '0.003000';
-$VERSION = eval $VERSION;
-
-use Carp;
-use Config;
-use Cwd qw( getcwd );
-use File::Spec::Functions qw( catfile curdir );
-
-# Add a custom Module::Build hashref property to pass the following build
-# parameters.
-# charmonizer_c: Charmonizer C file, required
-if ( $Module::Build::VERSION <= 0.30 ) {
-    __PACKAGE__->add_property( charmonizer_params => {} );
-}
-else {
-    __PACKAGE__->add_property(
-        'charmonizer_params',
-        default => {},
-    );
-}
-
-my $CHARMONIZER_EXE_PATH = catfile( curdir(), "charmonizer$Config{_exe}" );
-my $CHARMONY_H_PATH      = 'charmony.h';
-my $CHARMONY_PM_PATH     = 'Charmony.pm';
-
-# Compile and run the charmonizer executable, creating the charmony.h and
-# Charmony.pm files.
-sub ACTION_charmony {
-    my $self = shift;
-    my $charmonizer_c = $self->charmonizer_params('charmonizer_c');
-    $self->add_to_cleanup($CHARMONIZER_EXE_PATH);
-    if ( !$self->up_to_date( $charmonizer_c, $CHARMONIZER_EXE_PATH ) ) {
-        print "\nCompiling $CHARMONIZER_EXE_PATH...\n\n";
-        my $cc = $self->config('cc');
-        my $outflag = $cc =~ /cl\b/ ? "/Fe" : "-o ";
-        system("$cc $charmonizer_c $outflag$CHARMONIZER_EXE_PATH")
-            and die "Failed to compile $CHARMONIZER_EXE_PATH";
-    }
-
-    return if $self->up_to_date( $CHARMONIZER_EXE_PATH, [
-        $CHARMONY_H_PATH, $CHARMONY_PM_PATH,
-    ] );
-    print "\nRunning $CHARMONIZER_EXE_PATH...\n\n";
-
-    $self->add_to_cleanup($CHARMONY_H_PATH);
-    $self->add_to_cleanup($CHARMONY_PM_PATH);
-    # Clean up after charmonizer if it doesn't succeed on its own.
-    $self->add_to_cleanup("_charm*");
-
-    # Prepare arguments to charmonizer.
-    my @command = (
-        $CHARMONIZER_EXE_PATH,
-        '--cc=' . _quotify( $self->config('cc') ),
-        '--enable-c',
-        '--enable-perl',
-    );
-    if ( !$self->config('usethreads') ) {
-        push @command, '--disable-threads';
-    }
-    push @command, ( '--', $self->config('ccflags') );
-    if ( $ENV{CHARM_VALGRIND} ) {
-        unshift @command, "valgrind", "--leak-check=yes";
-    }
-    print join( " ", @command ), $/;
-
-    system(@command) and die "Failed to run $CHARMONIZER_EXE_PATH: $!";
-}
-
-my $config;
-
-sub charmony {
-    my ( undef, $key ) = @_;
-    if (!$config) {
-        eval { require 'Charmony.pm'; };
-        if ( !$@ ) {
-            $config = Charmony->config;
-        }
-    }
-    if ($config) {
-        return $config->{$key};
-    }
-    return;
-}
-
-sub _quotify {
-    my $string = shift;
-    $string =~ s/\\/\\\\/g;
-    $string =~ s/"/\\"/g;
-    return $string =~ /\s/ ? qq|"$string"| : $string;
-}
-
-1;
-
-__END__

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Test.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Test.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Test.pm
deleted file mode 100644
index bebd673..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Test.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Test;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/lib/Clownfish/CFC/Util.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/lib/Clownfish/CFC/Util.pm b/clownfish/compiler/perl/lib/Clownfish/CFC/Util.pm
deleted file mode 100644
index 25d10f6..0000000
--- a/clownfish/compiler/perl/lib/Clownfish/CFC/Util.pm
+++ /dev/null
@@ -1,20 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-package Clownfish::CFC::Util;
-use Clownfish::CFC;
-
-1;
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/t/000-load.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/000-load.t b/clownfish/compiler/perl/t/000-load.t
deleted file mode 100644
index 4f450a2..0000000
--- a/clownfish/compiler/perl/t/000-load.t
+++ /dev/null
@@ -1,39 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-use Test::More 'no_plan';
-use File::Find 'find';
-
-my @modules;
-
-find(
-    {   no_chdir => 1,
-        wanted   => sub {
-            return unless $File::Find::name =~ /\.pm$/;
-            push @modules, $File::Find::name;
-            }
-    },
-    'lib'
-);
-for (@modules) {
-    s/^.*?Clownfish/Clownfish/;
-    s/\.pm$//;
-    s/\W+/::/g;
-    use_ok($_);
-}
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/t/001-util.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/001-util.t b/clownfish/compiler/perl/t/001-util.t
deleted file mode 100644
index 745bb69..0000000
--- a/clownfish/compiler/perl/t/001-util.t
+++ /dev/null
@@ -1,69 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-use Test::More tests => 15;
-use File::stat qw( stat );
-use Clownfish::CFC::Util qw(
-    slurp_text
-    current
-    verify_args
-    a_isa_b
-    write_if_changed
-);
-
-my $foo_txt = 'foo.txt';
-unlink $foo_txt;
-open( my $fh, '>', $foo_txt ) or die "Can't open '$foo_txt': $!";
-print $fh "foo";
-close $fh or die "Can't close '$foo_txt': $!";
-is( slurp_text($foo_txt), "foo", "slurp_text" );
-
-ok( current( $foo_txt, $foo_txt ), "current" );
-ok( !current( $foo_txt, 't' ), "not current" );
-ok( !current( $foo_txt, "nonexistent_file" ),
-    "not current when dest file mising"
-);
-
-my $one_second_ago = time() - 1;
-utime( $one_second_ago, $one_second_ago, $foo_txt )
-    or die "utime failed";
-write_if_changed( $foo_txt, "foo" );
-is( stat($foo_txt)->mtime, $one_second_ago,
-    "write_if_changed does nothing if contents not changed" );
-write_if_changed( $foo_txt, "foofoo" );
-ok( stat($foo_txt)->mtime != $one_second_ago,
-    "write_if_changed writes if contents changed"
-);
-
-unlink $foo_txt;
-
-my %defaults = ( foo => undef );
-sub test_verify_args { return verify_args( \%defaults, @_ ) }
-
-ok( test_verify_args( foo => 'foofoo' ), "args verified" );
-ok( !test_verify_args('foo'), "odd args fail verification" );
-like( $@, qr/odd/, 'set $@ on odd arg failure' );
-ok( !test_verify_args( bar => 'nope' ), "bad param doesn't verify" );
-like( $@, qr/param/, 'set $@ on invalid param failure' );
-
-my $foo = bless {}, 'Foo';
-ok( a_isa_b( $foo, 'Foo' ), "a_isa_b true" );
-ok( !a_isa_b( $foo,  'Bar' ), "a_isa_b false" );
-ok( !a_isa_b( 'Foo', 'Foo' ), "a_isa_b not blessed" );
-ok( !a_isa_b( undef, 'Foo' ), "a_isa_b undef" );
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/t/050-docucomment.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/050-docucomment.t b/clownfish/compiler/perl/t/050-docucomment.t
deleted file mode 100644
index d2be87c..0000000
--- a/clownfish/compiler/perl/t/050-docucomment.t
+++ /dev/null
@@ -1,58 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-use Test::More tests => 10;
-
-BEGIN { use_ok('Clownfish::CFC::Model::DocuComment') }
-use Clownfish::CFC::Parser;
-
-my $parser = Clownfish::CFC::Parser->new;
-isa_ok( $parser->parse('/** foo. */'), "Clownfish::CFC::Model::DocuComment" );
-
-my $text = <<'END_COMMENT';
-/**
- * Brief description.  Long description.
- *
- * More long description.
- *
- * @param foo A foo.
- * @param bar A bar.
- *
- * @param baz A baz.
- * @return a return value.
- */
-END_COMMENT
-
-my $docucomment = $parser->parse($text);
-
-like(
-    $docucomment->get_description,
-    qr/^Brief.*long description.\s*\Z/ims,
-    "get_description"
-);
-is( $docucomment->get_brief, "Brief description.", "brief" );
-like( $docucomment->get_long, qr/^Long.*long description.\s*\Z/ims, "long" );
-is_deeply( $docucomment->get_param_names, [qw( foo bar baz )],
-    "param names" );
-is( $docucomment->get_param_docs->[0], "A foo.", '@param terminated by @' );
-is( $docucomment->get_param_docs->[1],
-    "A bar.", '@param terminated by empty line' );
-is( $docucomment->get_param_docs->[2],
-    "A baz.", '@param terminated next element, @return' );
-is( $docucomment->get_retval, "a return value.", "get_retval" );
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/t/051-symbol.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/051-symbol.t b/clownfish/compiler/perl/t/051-symbol.t
deleted file mode 100644
index 9356696..0000000
--- a/clownfish/compiler/perl/t/051-symbol.t
+++ /dev/null
@@ -1,84 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-use Test::More tests => 40;
-use Clownfish::CFC;
-
-for (qw( foo 1Foo Foo_Bar 1FOOBAR )) {
-    eval { my $thing = new_symbol( class_name => $_ ) };
-    like( $@, qr/class_name/, "Reject invalid class name $_" );
-    my $bogus_middle = "Foo::" . $_ . "::Bar";
-    eval { my $thing = new_symbol( class_name => $bogus_middle ) };
-    like( $@, qr/class_name/, "Reject invalid class name $bogus_middle" );
-}
-
-my @exposures = qw( public private parcel local );
-for my $exposure (@exposures) {
-    my $thing = new_symbol( exposure => $exposure );
-    ok( $thing->$exposure, "exposure $exposure" );
-    my @not_exposures = grep { $_ ne $exposure } @exposures;
-    ok( !$thing->$_, "$exposure means not $_" ) for @not_exposures;
-}
-
-my $foo    = new_symbol( class_name => 'Foo' );
-my $foo_jr = new_symbol( class_name => 'Foo::FooJr' );
-ok( !$foo->equals($foo_jr), "different class_name spoils equals" );
-is( $foo_jr->get_class_name, "Foo::FooJr", "get_class_name" );
-is( $foo_jr->get_class_cnick, "FooJr", "derive class_cnick from class_name" );
-
-my $public_exposure = new_symbol( exposure => 'public' );
-my $parcel_exposure = new_symbol( exposure => 'parcel' );
-ok( !$public_exposure->equals($parcel_exposure),
-    "different exposure spoils equals"
-);
-
-my $lucifer_parcel = Clownfish::CFC::Model::Parcel->new( name => 'Lucifer' );
-$lucifer_parcel->register;
-my $lucifer = new_symbol( parcel => 'Lucifer' );
-ok( $$lucifer_parcel == ${ $lucifer->get_parcel }, "derive parcel" );
-is( $lucifer->get_prefix, "lucifer_", "get_prefix" );
-is( $lucifer->get_Prefix, "Lucifer_", "get_Prefix" );
-is( $lucifer->get_PREFIX, "LUCIFER_", "get_PREFIX" );
-my $luser = new_symbol( parcel => 'Luser' );
-ok( !$lucifer->equals($luser), "different parcel spoils equals" );
-
-for ( qw( 1foo * 0 ), "\x{263a}" ) {
-    eval { my $thing = new_symbol( micro_sym => $_ ); };
-    like( $@, qr/micro_sym/, "reject bad micro_sym" );
-}
-
-my $ooga  = new_symbol( micro_sym => 'ooga' );
-my $booga = new_symbol( micro_sym => 'booga' );
-ok( !$ooga->equals($booga), "Different micro_sym spoils equals()" );
-
-my $eep = new_symbol(
-    parcel     => 'Eep',
-    class_name => "Op::Ork",
-    micro_sym  => 'ah_ah',
-);
-is( $eep->short_sym, "Ork_ah_ah",     "short_sym" );
-is( $eep->full_sym,  "eep_Ork_ah_ah", "full_sym" );
-
-sub new_symbol {
-    return Clownfish::CFC::Model::Symbol->new(
-        micro_sym => 'sym',
-        exposure  => 'parcel',
-        @_
-    );
-}
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/t/052-version.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/052-version.t b/clownfish/compiler/perl/t/052-version.t
deleted file mode 100644
index 1e96bb8..0000000
--- a/clownfish/compiler/perl/t/052-version.t
+++ /dev/null
@@ -1,41 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-use Test::More tests => 11;
-use Clownfish::CFC;
-
-my $v3_2_1   = Clownfish::CFC::Model::Version->new( vstring => 'v3.2.1' );
-my $v3_2     = Clownfish::CFC::Model::Version->new( vstring => 'v3.2' );
-my $v3_3     = Clownfish::CFC::Model::Version->new( vstring => 'v3.3' );
-my $v3_2_0   = Clownfish::CFC::Model::Version->new( vstring => 'v3.2.0' );
-my $v3_2_1_0 = Clownfish::CFC::Model::Version->new( vstring => 'v3.2.1.0' );
-my $v90210   = Clownfish::CFC::Model::Version->new( vstring => 'v90210' );
-
-is( $v3_2_1->get_major,   3,        'get_major' );
-is( $v90210->get_major,   90210,    'parse big number' );
-is( $v3_2_1->get_vstring, 'v3.2.1', 'get_vstring' );
-
-is( $v3_2_1->compare_to($v3_2_1_0), 0,  "ignore zeroes in compare_to" );
-is( $v3_2_1_0->compare_to($v3_2_1), 0,  "ignore zeroes in compare_to" );
-is( $v3_2_1->compare_to($v3_3),     -1, "compare_to A < B_fewer_digits" );
-is( $v3_3->compare_to($v3_2_1),     1,  "compare_to A_fewer_digits > B" );
-is( $v3_2_1->compare_to($v3_2),     1,  "compare_to A < B_fewer_digits" );
-is( $v3_2->compare_to($v3_2_1),     -1, "compare_to A_fewer_digits > B" );
-is( $v3_2_1->compare_to($v3_2_0),   1,  "compare_to A > B" );
-is( $v3_2_0->compare_to($v3_2_1),   -1, "compare_to A < B" );
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/t/100-type.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/100-type.t b/clownfish/compiler/perl/t/100-type.t
deleted file mode 100644
index a881883..0000000
--- a/clownfish/compiler/perl/t/100-type.t
+++ /dev/null
@@ -1,42 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-use Test::More tests => 10;
-use Clownfish::CFC::Model::Parcel;
-
-my $neato_parcel = Clownfish::CFC::Model::Parcel->new( name => 'Neato' );
-$neato_parcel->register;
-
-my $type = Clownfish::CFC::Model::Type->new(
-    parcel    => 'Neato',
-    specifier => 'mytype_t'
-);
-is( ${ $type->get_parcel },
-    $$neato_parcel, "constructor changes parcel name to Parcel singleton" );
-
-is( $type->to_c, "mytype_t", "to_c()" );
-ok( !$type->const, "const() is off by default" );
-is( $type->get_specifier, "mytype_t", "get_specifier()" );
-
-ok( !$type->is_object,      "is_object() false by default" );
-ok( !$type->is_integer,     "is_integer() false by default" );
-ok( !$type->is_floating,    "is_floating() false by default" );
-ok( !$type->is_void,        "is_void() false by default" );
-ok( !$type->is_composite,   "is_composite() false by default" );
-ok( !$type->is_string_type, "is_string_type() false by default" );
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/t/101-primitive_type.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/101-primitive_type.t b/clownfish/compiler/perl/t/101-primitive_type.t
deleted file mode 100644
index 5cad4e7..0000000
--- a/clownfish/compiler/perl/t/101-primitive_type.t
+++ /dev/null
@@ -1,36 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-use Test::More tests => 4;
-use Clownfish::CFC;
-
-my $type = new_primitive_type( specifier => 'hump_t' );
-ok( $type->is_primitive, "is_primitive" );
-
-my $other = new_primitive_type( specifier => 'hump_t' );
-ok( $type->equals($other), "equals()" );
-
-$other = new_primitive_type( specifier => 'dump_t' );
-ok( !$type->equals($other), "equals() spoiled by specifier" );
-
-$other = new_primitive_type( specifier => 'hump_t', const => 1 );
-ok( !$type->equals($other), "equals() spoiled by const" );
-
-sub new_primitive_type {
-    return Clownfish::CFC::Model::Type->new( @_, primitive => 1 );
-}
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/t/102-integer_type.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/102-integer_type.t b/clownfish/compiler/perl/t/102-integer_type.t
deleted file mode 100644
index 132457c..0000000
--- a/clownfish/compiler/perl/t/102-integer_type.t
+++ /dev/null
@@ -1,82 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-use Test::More tests => 87;
-use Clownfish::CFC::Model::Type;
-use Clownfish::CFC::Parser;
-
-my $integer_type = Clownfish::CFC::Model::Type->new_integer(
-    specifier => 'int32_t',
-    const     => 1,
-);
-ok( $integer_type->const, "const" );
-is( $integer_type->get_specifier, "int32_t" );
-like( $integer_type->to_c, qr/const/, "'const' in C representation" );
-
-my $parser = Clownfish::CFC::Parser->new;
-
-my @chy_specifiers = qw(
-    bool
-);
-my @c_specifiers = qw(
-    char
-    short
-    int
-    long
-    size_t
-    int8_t
-    int16_t
-    int32_t
-    int64_t
-    uint8_t
-    uint16_t
-    uint32_t
-    uint64_t
-);
-
-for my $chy_specifier (@chy_specifiers) {
-    my $type = $parser->parse($chy_specifier);
-    isa_ok( $type, "Clownfish::CFC::Model::Type" );
-    ok( $type && $type->is_integer, "parsed Type is_integer()" );
-    $type = $parser->parse("const $chy_specifier");
-    isa_ok( $type, "Clownfish::CFC::Model::Type" );
-    ok( $type && $type->is_integer, "parsed const Type is_integer()" );
-    ok( $type && $type->const,      "parsed const Type is const()" );
-SKIP: {
-        skip( "No way to catch parser exception at present", 1 );
-        my $bogus = $chy_specifier . "oot_toot";
-        ok( !$parser->parse($bogus),
-            "chy_integer_specifier guards against partial word matches" );
-    }
-}
-
-for my $c_specifier (@c_specifiers) {
-    my $type = $parser->parse($c_specifier);
-    isa_ok( $type, "Clownfish::CFC::Model::Type" );
-    ok( $type && $type->is_integer, "parsed Type is_integer()" );
-    $type = $parser->parse("const $c_specifier");
-    isa_ok( $type, "Clownfish::CFC::Model::Type" );
-    ok( $type && $type->is_integer, "parsed const Type is_integer()" );
-    ok( $type && $type->const,      "parsed const Type is const()" );
-SKIP: {
-        skip( "No way to catch parser exception at present", 1 );
-        my $bogus = $c_specifier . "y";
-        ok( !$parser->parse($bogus),
-            "c_integer_specifier guards against partial word matches" );
-    }
-}

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/t/103-float_type.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/103-float_type.t b/clownfish/compiler/perl/t/103-float_type.t
deleted file mode 100644
index e690899..0000000
--- a/clownfish/compiler/perl/t/103-float_type.t
+++ /dev/null
@@ -1,48 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-use Test::More tests => 15;
-use Clownfish::CFC::Model::Type;
-use Clownfish::CFC::Parser;
-
-my $float_type = Clownfish::CFC::Model::Type->new_float(
-    specifier => 'float',
-    const     => 1,
-);
-ok( $float_type->const, "const" );
-is( $float_type->get_specifier, "float" );
-like( $float_type->to_c, qr/const/, "'const' in C representation" );
-
-my $parser = Clownfish::CFC::Parser->new;
-
-for my $specifier (qw( float double)) {
-    my $type = $parser->parse($specifier);
-    isa_ok( $type, "Clownfish::CFC::Model::Type" );
-    ok( $type && $type->is_floating, "parsed specifier is_floating()" );
-    $type = $parser->parse("const $specifier");
-    isa_ok( $type, "Clownfish::CFC::Model::Type" );
-    ok( $type && $type->is_floating, "parsed const specifier is_floating()" );
-    ok( $type && $type->const,       "parsed const specifier is_floating()" );
-SKIP: {
-        skip( "No way to catch parser exception at present", 1 );
-        my $bogus = $specifier . "y";
-        ok( !$parser->parse($bogus),
-            "c_float_specifier guards against partial word matches" );
-    }
-}
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/t/104-void_type.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/104-void_type.t b/clownfish/compiler/perl/t/104-void_type.t
deleted file mode 100644
index 0d87e2c..0000000
--- a/clownfish/compiler/perl/t/104-void_type.t
+++ /dev/null
@@ -1,52 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-use Test::More tests => 11;
-use Clownfish::CFC::Model::Type;
-use Clownfish::CFC::Parser;
-
-my $void_type = Clownfish::CFC::Model::Type->new_void;
-is( $void_type->get_specifier, "void", "specifier defaults to 'void'" );
-is( $void_type->to_c,          "void", "to_c" );
-ok( $void_type->is_void, "is_void" );
-
-$void_type = Clownfish::CFC::Model::Type->new_void( const => 1 );
-ok( $void_type->const, "const" );
-like( $void_type->to_c, qr/const/, "'const' in C representation" );
-
-my $parser = Clownfish::CFC::Parser->new;
-
-$void_type = $parser->parse('void');
-isa_ok( $void_type, "Clownfish::CFC::Model::Type" );
-ok( $void_type && $void_type->is_void,
-    "Parser calls new_void() when parsing 'void'" );
-my $const_void_type = $parser->parse('const void');
-isa_ok( $const_void_type, "Clownfish::CFC::Model::Type" );
-ok( $const_void_type && $const_void_type->is_void,
-    "Parser calls new_void() when parsing 'const void'"
-);
-ok( $const_void_type && $const_void_type->const,
-    "Parser preserves const when parsing 'const void'"
-);
-
-SKIP: {
-    skip( "No way to catch parser exception at present", 1 );
-    ok( !$parser->parse('voidable'),
-        "void_type_specifier guards against partial word matches" );
-}
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/t/105-object_type.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/105-object_type.t b/clownfish/compiler/perl/t/105-object_type.t
deleted file mode 100644
index 6bf4c65..0000000
--- a/clownfish/compiler/perl/t/105-object_type.t
+++ /dev/null
@@ -1,132 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-use Test::More tests => 54;
-use Clownfish::CFC::Model::Type;
-use Clownfish::CFC::Parser;
-
-my $parser = Clownfish::CFC::Parser->new;
-
-# Set and leave parcel.
-my $parcel = $parser->parse('parcel Neato;')
-    or die "failed to process parcel_definition";
-
-for my $bad_specifier (qw( foo Foo_Bar FOOBAR 1Foo 1FOO )) {
-    eval {
-        my $type = Clownfish::CFC::Model::Type->new_object(
-            parcel    => 'Neato',
-            specifier => $bad_specifier,
-        );
-    };
-    like( $@, qr/specifier/,
-        "constructor rejects bad specifier $bad_specifier" );
-}
-
-my @specifiers = qw( Foo FooJr FooIII Foo4th );
-my @classes = map { $parser->parse("class $_ {}") } @specifiers;
-
-for my $specifier (@specifiers) {
-    my $type = $parser->parse("$specifier*");
-    $type->resolve(\@classes);
-    is( $type->get_specifier, "neato_$specifier",
-        "object_type_specifier: $specifier" );
-    is( $parser->parse("neato_$specifier*")->get_specifier,
-        "neato_$specifier", "object_type_specifier: neato_$specifier" );
-    ok( $type && $type->is_object, "$specifier*" );
-    $type = $parser->parse("neato_$specifier*");
-    ok( $type && $type->is_object, "neato_$specifier*" );
-    $type = $parser->parse("const $specifier*");
-    ok( $type && $type->is_object && $type->const, "const $specifier*" );
-    $type = $parser->parse("incremented $specifier*");
-    ok( $type && $type->is_object && $type->incremented,
-        "incremented $specifier*" );
-    $type = $parser->parse("decremented $specifier*");
-    ok( $type && $type->is_object && $type->decremented,
-        "decremented $specifier*" );
-    $type = $parser->parse("nullable $specifier*");
-    ok( $type && $type->is_object && $type->nullable,
-        "nullable $specifier*" );
-}
-
-eval { my $type = Clownfish::CFC::Model::Type->new_object };
-like( $@, qr/specifier/i, "specifier required" );
-
-for ( 0, 2 ) {
-    eval {
-        my $type = Clownfish::CFC::Model::Type->new_object(
-            specifier   => 'Foo',
-            indirection => $_,
-        );
-    };
-    like( $@, qr/indirection/i, "invalid indirection of $_" );
-}
-
-my $foo_type = Clownfish::CFC::Model::Type->new_object( specifier => 'Foo' );
-my $another_foo
-    = Clownfish::CFC::Model::Type->new_object( specifier => 'Foo' );
-ok( $foo_type->equals($another_foo), "equals" );
-
-my $bar_type = Clownfish::CFC::Model::Type->new_object( specifier => 'Bar' );
-ok( !$foo_type->equals($bar_type), "different specifier spoils equals" );
-
-my $foreign_foo_class = Clownfish::CFC::Model::Class->create(
-    parcel     => 'Foreign',
-    class_name => 'Foreign::Foo',
-);
-my $foreign_foo = Clownfish::CFC::Model::Type->new_object(
-    specifier => 'Foo',
-    parcel    => 'Foreign',
-);
-$foreign_foo->resolve([ $foreign_foo_class ]);
-ok( !$foo_type->equals($foreign_foo), "different parcel spoils equals" );
-is( $foreign_foo->get_specifier, "foreign_Foo",
-    "prepend parcel prefix to specifier" );
-
-my $incremented_foo = Clownfish::CFC::Model::Type->new_object(
-    specifier   => 'Foo',
-    incremented => 1,
-);
-ok( $incremented_foo->incremented, "incremented" );
-ok( !$foo_type->incremented,       "not incremented" );
-ok( !$foo_type->equals($incremented_foo),
-    "different incremented spoils equals"
-);
-
-my $decremented_foo = Clownfish::CFC::Model::Type->new_object(
-    specifier   => 'Foo',
-    decremented => 1,
-);
-ok( $decremented_foo->decremented, "decremented" );
-ok( !$foo_type->decremented,       "not decremented" );
-ok( !$foo_type->equals($decremented_foo),
-    "different decremented spoils equals"
-);
-
-my $const_foo = Clownfish::CFC::Model::Type->new_object(
-    specifier => 'Foo',
-    const     => 1,
-);
-$const_foo->resolve(\@classes);
-ok( !$foo_type->equals($const_foo), "different const spoils equals" );
-like( $const_foo->to_c, qr/const/, "const included in C representation" );
-
-my $string_type
-    = Clownfish::CFC::Model::Type->new_object( specifier => 'String', );
-ok( !$foo_type->is_string_type,   "Not is_string_type" );
-ok( $string_type->is_string_type, "is_string_type" );
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/t/106-va_list_type.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/106-va_list_type.t b/clownfish/compiler/perl/t/106-va_list_type.t
deleted file mode 100644
index e20063f..0000000
--- a/clownfish/compiler/perl/t/106-va_list_type.t
+++ /dev/null
@@ -1,37 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-use Test::More tests => 4;
-use Clownfish::CFC::Model::Type;
-use Clownfish::CFC::Parser;
-
-my $va_list_type = Clownfish::CFC::Model::Type->new_va_list;
-is( $va_list_type->get_specifier,
-    "va_list", "specifier defaults to 'va_list'" );
-is( $va_list_type->to_c, "va_list", "to_c" );
-
-my $parser = Clownfish::CFC::Parser->new;
-
-my $type = $parser->parse('va_list');
-ok( $type && $type->is_va_list, "parse va_list" );
-SKIP: {
-    skip( "No way to catch parser exception at present", 1 );
-    ok( !$parser->parse('va_listable'),
-        "va_list_type_specifier guards against partial word matches" );
-}
-

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/t/107-arbitrary_type.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/107-arbitrary_type.t b/clownfish/compiler/perl/t/107-arbitrary_type.t
deleted file mode 100644
index 7dc0767..0000000
--- a/clownfish/compiler/perl/t/107-arbitrary_type.t
+++ /dev/null
@@ -1,60 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-use Test::More tests => 10;
-use Clownfish::CFC::Model::Type;
-use Clownfish::CFC::Parser;
-
-my $foo_type = Clownfish::CFC::Model::Type->new_arbitrary(
-    parcel    => 'Neato',
-    specifier => "foo_t",
-);
-is( $foo_type->get_specifier, "foo_t", "get_specifier" );
-is( $foo_type->to_c,          "foo_t", "to_c" );
-
-my $compare_t_type = Clownfish::CFC::Model::Type->new_arbitrary(
-    parcel    => 'Neato',
-    specifier => "Sort_compare_t",
-);
-TODO: {
-    local $TODO = "Disabled until parcels get overhauled.";
-    is( $compare_t_type->get_specifier,
-        "neato_Sort_compare_t", "Prepend prefix to specifier" );
-    is( $compare_t_type->to_c, "neato_Sort_compare_t", "to_c" );
-}
-
-my $twin = Clownfish::CFC::Model::Type->new_arbitrary(
-    parcel    => 'Neato',
-    specifier => "foo_t",
-);
-ok( $foo_type->equals($twin), "equals" );
-ok( !$foo_type->equals($compare_t_type),
-    "equals spoiled by different specifier"
-);
-
-my $parser = Clownfish::CFC::Parser->new;
-
-for my $specifier (qw( foo_t Sort_compare_t )) {
-    my $type = $parser->parse($specifier);
-    ok( $type && $type->is_arbitrary, "arbitrary_type '$specifier'" );
-SKIP: {
-        skip( "Can't recover from bad specifier", 1 );
-        ok( !$parser->parse( $specifier . "_y_p_e eep;" ),
-            "arbitrary_type_specifier guards against partial word matches" );
-    }
-}

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/t/108-composite_type.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/108-composite_type.t b/clownfish/compiler/perl/t/108-composite_type.t
deleted file mode 100644
index 8a8369d..0000000
--- a/clownfish/compiler/perl/t/108-composite_type.t
+++ /dev/null
@@ -1,92 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-use Test::More tests => 23;
-use Clownfish::CFC::Model::Type;
-use Clownfish::CFC::Parser;
-
-my $parser = Clownfish::CFC::Parser->new;
-
-my @composite_type_strings = (
-    qw(
-        char*
-        char**
-        char***
-        int32_t*
-        Obj**
-        int8_t[]
-        int8_t[1]
-        neato_method_t[]
-        neato_method_t[1]
-        multi_dimensional_t[1][10]
-        ),
-    'char * * ',
-    'const Obj**',
-    'const void*',
-    'int8_t[ 3 ]',
-);
-
-for my $input (@composite_type_strings) {
-    my $type = $parser->parse($input);
-    ok( $type && $type->is_composite, $input );
-}
-
-eval { my $type = Clownfish::CFC::Model::Type->new_composite };
-like( $@, qr/child/i, "child required" );
-
-my $foo_type = Clownfish::CFC::Model::Type->new_object( specifier => 'Foo' );
-my $composite_type = Clownfish::CFC::Model::Type->new_composite(
-    child       => $foo_type,
-    indirection => 1,
-);
-is( $composite_type->get_specifier,
-    'Foo', "get_specifier delegates to child" );
-
-my $other = Clownfish::CFC::Model::Type->new_composite(
-    child       => $foo_type,
-    indirection => 1,
-);
-ok( $composite_type->equals($other), "equals" );
-ok( $composite_type->is_composite,   "is_composite" );
-
-my $bar_type = Clownfish::CFC::Model::Type->new_object( specifier => 'Bar' );
-my $bar_composite = Clownfish::CFC::Model::Type->new_composite(
-    child       => $bar_type,
-    indirection => 1,
-);
-ok( !$composite_type->equals($bar_composite),
-    "equals spoiled by different child"
-);
-
-my $foo_array = $parser->parse("foo_t[]")
-    or die "Can't parse foo_t[]";
-is( $foo_array->get_array, '[]', "get_array" );
-unlike( $foo_array->to_c, qr/\[\]/, "array subscripts not included by to_c" );
-
-my $foo_array_array = $parser->parse("foo_t[][]")
-    or die "Can't parse foo_t[][]";
-ok( !$foo_array->equals($foo_array_array),
-    "equals spoiled by different array postfixes"
-);
-
-my $foo_star = $parser->parse("foo_t*")
-    or die "Can't parse foo_t*";
-my $foo_star_star = $parser->parse("foo_t**")
-    or die "Can't parse foo_t**";
-ok( !$foo_star->equals($foo_star_star),
-    "equals spoiled by different levels of indirection" );

http://git-wip-us.apache.org/repos/asf/lucy/blob/1704c275/clownfish/compiler/perl/t/200-function.t
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/t/200-function.t b/clownfish/compiler/perl/t/200-function.t
deleted file mode 100644
index 2bedb1d..0000000
--- a/clownfish/compiler/perl/t/200-function.t
+++ /dev/null
@@ -1,60 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-use warnings;
-
-use Test::More tests => 6;
-
-BEGIN { use_ok('Clownfish::CFC::Model::Function') }
-use Clownfish::CFC::Parser;
-use Clownfish::CFC::Model::Parcel;
-
-my $parser = Clownfish::CFC::Parser->new;
-$parser->parse('parcel Neato;')
-    or die "failed to process parcel_definition";
-
-my %args = (
-    parcel      => 'Neato',
-    return_type => $parser->parse('Obj*'),
-    class_name  => 'Neato::Foo',
-    class_cnick => 'Foo',
-    param_list  => $parser->parse('(int32_t some_num)'),
-    micro_sym   => 'return_an_obj',
-);
-
-my $func = Clownfish::CFC::Model::Function->new(%args);
-isa_ok( $func, "Clownfish::CFC::Model::Function" );
-
-eval {
-    my $death
-        = Clownfish::CFC::Model::Function->new( %args, extra_arg => undef );
-};
-like( $@, qr/extra_arg/, "Extra arg kills constructor" );
-
-eval { Clownfish::CFC::Model::Function->new( %args, micro_sym => 'Uh_Oh' ); };
-like( $@, qr/Uh_Oh/, "invalid micro_sym kills constructor" );
-
-$parser->set_class_name("Neato::Obj");
-$parser->set_class_cnick("Obj");
-isa_ok(
-    $parser->parse($_),
-    "Clownfish::CFC::Model::Function",
-    "function declaration: $_"
-    )
-    for (
-    'inert int running_count(int biscuit);',
-    'public inert Hash* init_fave_hash(int32_t num_buckets, bool o_rly);',
-    );