You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2013/07/20 22:37:57 UTC
[lucy-commits] [1/6] git commit: refs/heads/cfc-pod - Make sure CFC is built before
generating docs
Updated Branches:
refs/heads/cfc-pod ff19b984c -> 82fa89370
Make sure CFC is built before generating docs
Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/a1e51033
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/a1e51033
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/a1e51033
Branch: refs/heads/cfc-pod
Commit: a1e5103390b18e4109f8f507a42450e39e6f0312
Parents: ff19b98
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sat Jul 20 19:50:18 2013 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Sat Jul 20 19:50:18 2013 +0200
----------------------------------------------------------------------
clownfish/compiler/perl/buildlib/Clownfish/CFC/Build.pm | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy/blob/a1e51033/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build.pm b/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build.pm
index 2f4cc2a..965527d 100644
--- a/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build.pm
+++ b/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build.pm
@@ -149,6 +149,8 @@ sub ACTION_code {
sub ACTION_pod {
my $self = shift;
+ $self->dispatch('code');
+
local @INC = ( @INC, qw( blib/lib blib/arch ) );
require Clownfish::CFC;
[lucy-commits] [5/6] git commit: refs/heads/cfc-pod - Documentation for CFCHierarchy
Posted by nw...@apache.org.
Documentation for CFCHierarchy
Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/d20b48e6
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/d20b48e6
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/d20b48e6
Branch: refs/heads/cfc-pod
Commit: d20b48e638f468d354e45f444c486a87c14d9846
Parents: 4d89fd6
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sat Jul 20 20:26:58 2013 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Sat Jul 20 20:26:58 2013 +0200
----------------------------------------------------------------------
.../buildlib/Clownfish/CFC/Build/Binding.pm | 26 ++++++++++++++++++++
clownfish/compiler/src/CFCHierarchy.h | 16 +++++++++---
2 files changed, 39 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy/blob/d20b48e6/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm b/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
index 1623ade..1de4fd7 100644
--- a/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
+++ b/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
@@ -18,11 +18,37 @@ use strict;
sub bind_all {
my $class = shift;
+ $class->bind_hierarchy;
$class->bind_perl;
$class->bind_perlclass;
$class->bind_perlpod;
}
+sub bind_hierarchy {
+ class_from_c('CFCHierarchy', 'Clownfish::CFC::Model::Hierarchy');
+
+ my @exposed = qw(
+ Add_Source_Dir
+ Add_Include_Dir
+ Build
+ Ordered_Classes
+ Get_Source_Dirs
+ Get_Include_Dirs
+ Get_Dest
+ );
+
+ my $pod_spec = Clownfish::CFC::Binding::Perl::Pod->new;
+ $pod_spec->add_constructor( alias => 'new' );
+ $pod_spec->add_method( method => $_, alias => lc($_) ) for @exposed;
+
+ my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+ class_name => 'Clownfish::CFC::Model::Hierarchy',
+ );
+ $binding->set_pod_spec($pod_spec);
+
+ Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
sub bind_perl {
class_from_c('CFCPerl', 'Clownfish::CFC::Binding::Perl');
http://git-wip-us.apache.org/repos/asf/lucy/blob/d20b48e6/clownfish/compiler/src/CFCHierarchy.h
----------------------------------------------------------------------
diff --git a/clownfish/compiler/src/CFCHierarchy.h b/clownfish/compiler/src/CFCHierarchy.h
index f04edb6..80795d0 100644
--- a/clownfish/compiler/src/CFCHierarchy.h
+++ b/clownfish/compiler/src/CFCHierarchy.h
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-/** Clownfish::CFC::Model::Hierarchy - A class hierarchy.
+/** A class hierarchy.
*
* A Clownfish::CFC::Model::Hierarchy consists of all the classes defined in
* files within a source directory and its subdirectories.
@@ -47,12 +47,16 @@ CFCHierarchy_init(CFCHierarchy *self, const char *dest);
void
CFCHierarchy_destroy(CFCHierarchy *self);
-/** Add path C<source_dir> to the list of source directories.
+/** Add a path to the list of source directories.
+ *
+ * @param source_dir The source directory.
*/
void
CFCHierarchy_add_source_dir(CFCHierarchy *self, const char *source_dir);
-/** Add path C<include_dir> to the list of include directories.
+/** Add a path to the list of include directories.
+ *
+ * @param source_dir The include directory.
*/
void
CFCHierarchy_add_include_dir(CFCHierarchy *self, const char *include_dir);
@@ -80,12 +84,18 @@ CFCHierarchy_ordered_classes(CFCHierarchy *self);
struct CFCFile**
CFCHierarchy_files(CFCHierarchy *self);
+/** Accessor for source directories.
+ */
const char**
CFCHierarchy_get_source_dirs(CFCHierarchy *self);
+/** Accessor for include directories.
+ */
const char**
CFCHierarchy_get_include_dirs(CFCHierarchy *self);
+/** Accessor for destination directory.
+ */
const char*
CFCHierarchy_get_dest(CFCHierarchy *self);
[lucy-commits] [4/6] git commit: refs/heads/cfc-pod - Documentation for CFCPerl
Posted by nw...@apache.org.
Documentation for CFCPerl
Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/4d89fd69
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/4d89fd69
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/4d89fd69
Branch: refs/heads/cfc-pod
Commit: 4d89fd69a76f938fddccf402ed96b9ec1f4caa94
Parents: e50bc68
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sat Jul 20 20:18:03 2013 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Sat Jul 20 20:18:03 2013 +0200
----------------------------------------------------------------------
.../buildlib/Clownfish/CFC/Build/Binding.pm | 25 ++++++++++++++++++++
clownfish/compiler/src/CFCPerl.h | 3 +--
2 files changed, 26 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy/blob/4d89fd69/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm b/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
index a17a5c4..1623ade 100644
--- a/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
+++ b/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
@@ -18,10 +18,35 @@ use strict;
sub bind_all {
my $class = shift;
+ $class->bind_perl;
$class->bind_perlclass;
$class->bind_perlpod;
}
+sub bind_perl {
+ class_from_c('CFCPerl', 'Clownfish::CFC::Binding::Perl');
+
+ my @exposed = qw(
+ Write_Pod
+ Write_Boot
+ Write_Bindings
+ Write_Callbacks
+ Write_Hostdefs
+ Write_Xs_Typemap
+ );
+
+ my $pod_spec = Clownfish::CFC::Binding::Perl::Pod->new;
+ $pod_spec->add_constructor( alias => 'new' );
+ $pod_spec->add_method( method => $_, alias => lc($_) ) for @exposed;
+
+ my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+ class_name => 'Clownfish::CFC::Binding::Perl',
+ );
+ $binding->set_pod_spec($pod_spec);
+
+ Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
sub bind_perlclass {
class_from_c('CFCPerlClass', 'Clownfish::CFC::Binding::Perl::Class');
http://git-wip-us.apache.org/repos/asf/lucy/blob/4d89fd69/clownfish/compiler/src/CFCPerl.h
----------------------------------------------------------------------
diff --git a/clownfish/compiler/src/CFCPerl.h b/clownfish/compiler/src/CFCPerl.h
index eef10ac..6427996 100644
--- a/clownfish/compiler/src/CFCPerl.h
+++ b/clownfish/compiler/src/CFCPerl.h
@@ -25,8 +25,7 @@ typedef struct CFCPerl CFCPerl;
struct CFCParcel;
struct CFCHierarchy;
-/** Clownfish::CFC::Binding::Perl - Perl bindings for a
- * Clownfish::CFC::Model::Hierarchy.
+/** Perl bindings for a Clownfish::CFC::Model::Hierarchy.
*
* Clownfish::CFC::Binding::Perl presents an interface for auto-generating XS
* and Perl code to bind C code for a Clownfish class hierarchy to Perl.
[lucy-commits] [2/6] git commit: refs/heads/cfc-pod - Documentation for CFCPerlClass
Posted by nw...@apache.org.
Documentation for CFCPerlClass
Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/dfb40d2d
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/dfb40d2d
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/dfb40d2d
Branch: refs/heads/cfc-pod
Commit: dfb40d2d17edc211b2ea78a58e5f7cf50d4a7a30
Parents: a1e5103
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sat Jul 20 20:04:11 2013 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Sat Jul 20 20:11:34 2013 +0200
----------------------------------------------------------------------
.../perl/buildlib/Clownfish/CFC/Build/Binding.pm | 14 ++++++++++++++
clownfish/compiler/src/CFCPerlClass.h | 9 +++++++--
2 files changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy/blob/dfb40d2d/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm b/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
index 0819b4b..207f528 100644
--- a/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
+++ b/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
@@ -25,12 +25,26 @@ sub bind_perlclass {
class_from_c('CFCPerlClass', 'Clownfish::CFC::Binding::Perl::Class');
my @exposed = qw(
+ Add_To_Registry
Bind_Constructor
Bind_Method
Exclude_Constructor
Exclude_Method
+ Method_Bindings
+ Constructor_Bindings
+ Create_Pod
+ Get_Client
+ Get_Class_Name
+ Append_Xs
+ Get_Xs_Code
Set_Pod_Spec
+ Get_Pod_Spec
);
+ # TODO: Generate docs for functions
+ #my @exposed_functions = qw(
+ # singleton
+ # clear_registry
+ #);
my $pod_spec = Clownfish::CFC::Binding::Perl::Pod->new;
$pod_spec->add_constructor( alias => 'new' );
http://git-wip-us.apache.org/repos/asf/lucy/blob/dfb40d2d/clownfish/compiler/src/CFCPerlClass.h
----------------------------------------------------------------------
diff --git a/clownfish/compiler/src/CFCPerlClass.h b/clownfish/compiler/src/CFCPerlClass.h
index 89fd1fe..cbbbb24 100644
--- a/clownfish/compiler/src/CFCPerlClass.h
+++ b/clownfish/compiler/src/CFCPerlClass.h
@@ -29,8 +29,7 @@ struct CFCPerlPod;
struct CFCPerlMethod;
struct CFCPerlConstructor;
-/** Clownfish::CFC::Binding::Perl::Class - Generate Perl binding code for a
- * Clownfish::CFC::Model::Class.
+/** Generate Perl binding code for a Clownfish::CFC::Model::Class.
*/
/**
@@ -90,6 +89,8 @@ CFCPerlClass_bind_constructor(CFCPerlClass *self, const char *alias,
const char *initializer);
/** Block the automatic generation of a method binding.
+ *
+ * @param method The Clownfish name for the method.
*/
void
CFCPerlClass_exclude_method(CFCPerlClass *self, const char *method);
@@ -128,6 +129,8 @@ const char*
CFCPerlClass_get_class_name(CFCPerlClass *self);
/** Concatenate verbatim XS code.
+ *
+ * @param xs A string containing the XS code.
*/
void
CFCPerlClass_append_xs(CFCPerlClass *self, const char *xs);
@@ -139,6 +142,8 @@ CFCPerlClass_get_xs_code(CFCPerlClass *self);
/** Supply a specification which will cause POD to be generated for this class
* binding.
+ *
+ * @param method A Clownfish::CFC::Binding::Perl::Pod object.
*/
void
CFCPerlClass_set_pod_spec(CFCPerlClass *self, struct CFCPerlPod *pod_spec);
[lucy-commits] [6/6] git commit: refs/heads/cfc-pod - Documentation for CFCBindCore
Posted by nw...@apache.org.
Documentation for CFCBindCore
Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/82fa8937
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/82fa8937
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/82fa8937
Branch: refs/heads/cfc-pod
Commit: 82fa893701de8f80990a8bf8fb27049732d88279
Parents: d20b48e
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sat Jul 20 20:55:13 2013 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Sat Jul 20 20:55:13 2013 +0200
----------------------------------------------------------------------
.../buildlib/Clownfish/CFC/Build/Binding.pm | 20 ++++++++++++++++++++
clownfish/compiler/src/CFCBindCore.h | 11 ++++++-----
2 files changed, 26 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy/blob/82fa8937/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm b/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
index 1de4fd7..94aa4da 100644
--- a/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
+++ b/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
@@ -18,12 +18,32 @@ use strict;
sub bind_all {
my $class = shift;
+ $class->bind_bindcore;
$class->bind_hierarchy;
$class->bind_perl;
$class->bind_perlclass;
$class->bind_perlpod;
}
+sub bind_bindcore {
+ class_from_c('CFCBindCore', 'Clownfish::CFC::Binding::Core');
+
+ my @exposed = qw(
+ Write_All_Modified
+ );
+
+ my $pod_spec = Clownfish::CFC::Binding::Perl::Pod->new;
+ $pod_spec->add_constructor( alias => 'new' );
+ $pod_spec->add_method( method => $_, alias => lc($_) ) for @exposed;
+
+ my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+ class_name => 'Clownfish::CFC::Binding::Core',
+ );
+ $binding->set_pod_spec($pod_spec);
+
+ Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
sub bind_hierarchy {
class_from_c('CFCHierarchy', 'Clownfish::CFC::Model::Hierarchy');
http://git-wip-us.apache.org/repos/asf/lucy/blob/82fa8937/clownfish/compiler/src/CFCBindCore.h
----------------------------------------------------------------------
diff --git a/clownfish/compiler/src/CFCBindCore.h b/clownfish/compiler/src/CFCBindCore.h
index 33fdd82..64c7492 100644
--- a/clownfish/compiler/src/CFCBindCore.h
+++ b/clownfish/compiler/src/CFCBindCore.h
@@ -14,8 +14,7 @@
* limitations under the License.
*/
-/** Clownfish::CFC::Binding::Core - Generate core C code for a
- * Clownfish::CFC::Model::Hierarchy.
+/** Generate core C code for a Clownfish::CFC::Model::Hierarchy.
*
* A Clownfish::CFC::Model::Hierarchy describes an abstract specifiction for a
* class hierarchy; Clownfish::CFC::Binding::Core is responsible for
@@ -50,9 +49,11 @@ CFCBindCore_init(CFCBindCore *self, struct CFCHierarchy *hierarchy,
void
CFCBindCore_destroy(CFCBindCore *self);
-/** Call <code>CFCHierarchy_propagate_modified</code>to establish which
- * classes do not have up-to-date generated .c and .h files, then traverse the
- * hierarchy writing all necessary files.
+/** Establish which classes do not have up-to-date generated .c and .h files,
+ * then traverse the hierarchy writing all necessary files.
+ *
+ * @param modified If this argument is true, write all files without checking
+ * whether they're up-to-date.
*/
int
CFCBindCore_write_all_modified(CFCBindCore *self, int modified);
[lucy-commits] [3/6] git commit: refs/heads/cfc-pod - Documentation for CFCPerlPod
Posted by nw...@apache.org.
Documentation for CFCPerlPod
Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/e50bc682
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/e50bc682
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/e50bc682
Branch: refs/heads/cfc-pod
Commit: e50bc6822da022a36e8bb479fb36ce96d1efd33f
Parents: dfb40d2
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sat Jul 20 20:12:03 2013 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Sat Jul 20 20:12:03 2013 +0200
----------------------------------------------------------------------
.../buildlib/Clownfish/CFC/Build/Binding.pm | 25 ++++++++++++++++++++
clownfish/compiler/src/CFCPerlPod.h | 6 +++++
2 files changed, 31 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy/blob/e50bc682/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
----------------------------------------------------------------------
diff --git a/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm b/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
index 207f528..a17a5c4 100644
--- a/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
+++ b/clownfish/compiler/perl/buildlib/Clownfish/CFC/Build/Binding.pm
@@ -19,6 +19,7 @@ use strict;
sub bind_all {
my $class = shift;
$class->bind_perlclass;
+ $class->bind_perlpod;
}
sub bind_perlclass {
@@ -58,6 +59,30 @@ sub bind_perlclass {
Clownfish::CFC::Binding::Perl::Class->register($binding);
}
+sub bind_perlpod {
+ class_from_c('CFCPerlPod', 'Clownfish::CFC::Binding::Perl::Pod');
+
+ my @exposed = qw(
+ Add_Method
+ Add_Constructor
+ Set_Synopsis
+ Get_Synopsis
+ Set_Description
+ Get_Description
+ );
+
+ my $pod_spec = Clownfish::CFC::Binding::Perl::Pod->new;
+ $pod_spec->add_constructor( alias => 'new' );
+ $pod_spec->add_method( method => $_, alias => lc($_) ) for @exposed;
+
+ my $binding = Clownfish::CFC::Binding::Perl::Class->new(
+ class_name => 'Clownfish::CFC::Binding::Perl::Pod',
+ );
+ $binding->set_pod_spec($pod_spec);
+
+ Clownfish::CFC::Binding::Perl::Class->register($binding);
+}
+
# Quick and dirty hack to create a CFC class from a C header.
sub class_from_c {
my ($cfc_class_name, $class_name) = @_;
http://git-wip-us.apache.org/repos/asf/lucy/blob/e50bc682/clownfish/compiler/src/CFCPerlPod.h
----------------------------------------------------------------------
diff --git a/clownfish/compiler/src/CFCPerlPod.h b/clownfish/compiler/src/CFCPerlPod.h
index 3fb94eb..4d4a476 100644
--- a/clownfish/compiler/src/CFCPerlPod.h
+++ b/clownfish/compiler/src/CFCPerlPod.h
@@ -28,6 +28,8 @@ typedef struct CFCPerlPod CFCPerlPod;
struct CFCFunction;
struct CFCClass;
+/** Constructor
+ */
CFCPerlPod*
CFCPerlPod_new(void);
@@ -79,6 +81,8 @@ char*
CFCPerlPod_constructors_pod(CFCPerlPod *self, struct CFCClass *klass);
/** Supply a SYNOPSIS section.
+ *
+ * @param synopsis A string containing the synopsis.
*/
void
CFCPerlPod_set_synopsis(CFCPerlPod *self, const char *synopsis);
@@ -89,6 +93,8 @@ const char*
CFCPerlPod_get_synopsis(CFCPerlPod *self);
/** Supply a DESCRIPTION section.
+ *
+ * @param description A string containing the description.
*/
void
CFCPerlPod_set_description(CFCPerlPod *self, const char *description);