view release on metacpan or search on metacpan
charmonizer/src/Charmonizer/Core/Util.c
charmonizer/src/Charmonizer/Core/Util.h
charmonizer/src/Charmonizer/Probe.c
charmonizer/src/Charmonizer/Probe.h
charmonizer/src/Charmonizer/Probe/AtomicOps.c
charmonizer/src/Charmonizer/Probe/AtomicOps.h
charmonizer/src/Charmonizer/Probe/DirManip.c
charmonizer/src/Charmonizer/Probe/DirManip.h
charmonizer/src/Charmonizer/Probe/Floats.c
charmonizer/src/Charmonizer/Probe/Floats.h
charmonizer/src/Charmonizer/Probe/FuncMacro.c
charmonizer/src/Charmonizer/Probe/FuncMacro.h
charmonizer/src/Charmonizer/Probe/Headers.c
charmonizer/src/Charmonizer/Probe/Headers.h
charmonizer/src/Charmonizer/Probe/Integers.c
charmonizer/src/Charmonizer/Probe/Integers.h
charmonizer/src/Charmonizer/Probe/LargeFiles.c
charmonizer/src/Charmonizer/Probe/LargeFiles.h
charmonizer/src/Charmonizer/Probe/Memory.c
charmonizer/src/Charmonizer/Probe/Memory.h
charmonizer/src/Charmonizer/Probe/UnusedVars.c
charmonizer/src/Charmonizer/Probe/UnusedVars.h
charmonizer/src/Charmonizer/Probe/VariadicMacros.c
charmonizer/src/Charmonizer/Probe/VariadicMacros.h
charmonizer/src/Charmonizer/Test.c
charmonizer/src/Charmonizer/Test.h
charmonizer/src/Charmonizer/Test/AllTests.c
charmonizer/src/Charmonizer/Test/AllTests.h
charmonizer/src/Charmonizer/Test/TestDirManip.c
charmonizer/src/Charmonizer/Test/TestFuncMacro.c
charmonizer/src/Charmonizer/Test/TestHeaders.c
charmonizer/src/Charmonizer/Test/TestIntegers.c
charmonizer/src/Charmonizer/Test/TestLargeFiles.c
charmonizer/src/Charmonizer/Test/TestUnusedVars.c
charmonizer/src/Charmonizer/Test/TestVariadicMacros.c
clownfish/lib/Clownfish.pm
clownfish/lib/Clownfish/Binding/Core.pm
clownfish/lib/Clownfish/Binding/Core/Aliases.pm
clownfish/lib/Clownfish/Binding/Core/Class.pm
clownfish/lib/Clownfish/Binding/Core/File.pm
clownfish/lib/Clownfish/Binding/Core/Function.pm
clownfish/lib/Clownfish/Binding/Core/Method.pm
clownfish/lib/Clownfish/Binding/Perl.pm
clownfish/lib/Clownfish/Binding/Perl/Class.pm
clownfish/lib/Clownfish/Binding/Perl/Constructor.pm
- charmonizer/src/Charmonizer/Core/Util.c
- charmonizer/src/Charmonizer/Core/Util.h
- charmonizer/src/Charmonizer/Probe.c
- charmonizer/src/Charmonizer/Probe.h
- charmonizer/src/Charmonizer/Probe/AtomicOps.c
- charmonizer/src/Charmonizer/Probe/AtomicOps.h
- charmonizer/src/Charmonizer/Probe/DirManip.c
- charmonizer/src/Charmonizer/Probe/DirManip.h
- charmonizer/src/Charmonizer/Probe/Floats.c
- charmonizer/src/Charmonizer/Probe/Floats.h
- charmonizer/src/Charmonizer/Probe/FuncMacro.c
- charmonizer/src/Charmonizer/Probe/FuncMacro.h
- charmonizer/src/Charmonizer/Probe/Headers.c
- charmonizer/src/Charmonizer/Probe/Headers.h
- charmonizer/src/Charmonizer/Probe/Integers.c
- charmonizer/src/Charmonizer/Probe/Integers.h
- charmonizer/src/Charmonizer/Probe/LargeFiles.c
- charmonizer/src/Charmonizer/Probe/LargeFiles.h
- charmonizer/src/Charmonizer/Probe/Memory.c
- charmonizer/src/Charmonizer/Probe/Memory.h
- charmonizer/src/Charmonizer/Probe/UnusedVars.c
- charmonizer/src/Charmonizer/Probe/UnusedVars.h
- charmonizer/src/Charmonizer/Probe/VariadicMacros.c
- charmonizer/src/Charmonizer/Probe/VariadicMacros.h
- charmonizer/src/Charmonizer/Test.c
- charmonizer/src/Charmonizer/Test.h
- charmonizer/src/Charmonizer/Test/AllTests.c
- charmonizer/src/Charmonizer/Test/AllTests.h
- charmonizer/src/Charmonizer/Test/TestDirManip.c
- charmonizer/src/Charmonizer/Test/TestFuncMacro.c
- charmonizer/src/Charmonizer/Test/TestHeaders.c
- charmonizer/src/Charmonizer/Test/TestIntegers.c
- charmonizer/src/Charmonizer/Test/TestLargeFiles.c
- charmonizer/src/Charmonizer/Test/TestUnusedVars.c
- charmonizer/src/Charmonizer/Test/TestVariadicMacros.c
- clownfish/lib/Clownfish.pm
- clownfish/lib/Clownfish/Binding/Core.pm
- clownfish/lib/Clownfish/Binding/Core/Aliases.pm
- clownfish/lib/Clownfish/Binding/Core/Class.pm
- clownfish/lib/Clownfish/Binding/Core/File.pm
- clownfish/lib/Clownfish/Binding/Core/Function.pm
- clownfish/lib/Clownfish/Binding/Core/Method.pm
- clownfish/lib/Clownfish/Binding/Perl.pm
- clownfish/lib/Clownfish/Binding/Perl/Class.pm
- clownfish/lib/Clownfish/Binding/Perl/Constructor.pm
charmonizer/charmonize.c view on Meta::CPAN
/* Charmonize.c -- Create Charmony.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Charmonizer/Probe.h"
#include "Charmonizer/Probe/AtomicOps.h"
#include "Charmonizer/Probe/DirManip.h"
#include "Charmonizer/Probe/Floats.h"
#include "Charmonizer/Probe/FuncMacro.h"
#include "Charmonizer/Probe/Headers.h"
#include "Charmonizer/Probe/Integers.h"
#include "Charmonizer/Probe/LargeFiles.h"
#include "Charmonizer/Probe/Memory.h"
#include "Charmonizer/Probe/UnusedVars.h"
#include "Charmonizer/Probe/VariadicMacros.h"
#include "Charmonizer/Core/HeaderChecker.h"
#include "Charmonizer/Core/ConfWriter.h"
int main(int argc, char **argv)
{
/* Parse and process arguments. */
if (argc < 3) {
fprintf(stderr,
"Usage: ./charmonize CC_COMMAND CC_FLAGS [VERBOSITY]\n");
exit(1);
charmonizer/charmonize.c view on Meta::CPAN
const long verbosity = strtol(argv[3], NULL, 10);
chaz_Probe_set_verbosity(verbosity);
}
chaz_Probe_init(cc_command, cc_flags, NULL);
}
/* Run probe modules. */
chaz_DirManip_run();
chaz_Headers_run();
chaz_AtomicOps_run();
chaz_FuncMacro_run();
chaz_Integers_run();
chaz_Floats_run();
chaz_LargeFiles_run();
chaz_Memory_run();
chaz_UnusedVars_run();
chaz_VariadicMacros_run();
/* Write custom postamble. */
chaz_ConfWriter_append_conf(
"#ifdef CHY_HAS_SYS_TYPES_H\n"
" #include <sys/types.h>\n"
"#endif\n\n"
);
chaz_ConfWriter_append_conf(
"#ifdef CHY_HAS_ALLOCA_H\n"
" #include <alloca.h>\n"
charmonizer/src/Charmonizer/Probe/FuncMacro.c view on Meta::CPAN
#define CHAZ_USE_SHORT_NAMES
#include "Charmonizer/Core/Compiler.h"
#include "Charmonizer/Core/ConfWriter.h"
#include "Charmonizer/Core/Util.h"
#include "Charmonizer/Probe/FuncMacro.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
/* Code for verifying ISO func macro. */
static char iso_func_code[] =
QUOTE( #include "_charm.h" )
QUOTE( int main() { )
QUOTE( Charm_Setup; )
QUOTE( printf("%s", __func__); )
charmonizer/src/Charmonizer/Probe/FuncMacro.c view on Meta::CPAN
}
static const char* inline_options[] = {
"__inline",
"__inline__",
"inline"
};
static int num_inline_options = sizeof(inline_options) / sizeof(void*);
void
FuncMacro_run(void)
{
int i;
char *output;
size_t output_len;
chaz_bool_t has_funcmac = false;
chaz_bool_t has_iso_funcmac = false;
chaz_bool_t has_gnuc_funcmac = false;
chaz_bool_t has_inline = false;
ConfWriter_start_module("FuncMacro");
/* Check for ISO func macro. */
output = CC_capture_output(iso_func_code, strlen(iso_func_code),
&output_len);
if (output != NULL && strncmp(output, "main", 4) == 0) {
has_funcmac = true;
has_iso_funcmac = true;
}
free(output);
charmonizer/src/Charmonizer/Probe/FuncMacro.h view on Meta::CPAN
/* Charmonizer/Probe/FuncMacro.h
*/
#ifndef H_CHAZ_FUNC_MACRO
#define H_CHAZ_FUNC_MACRO
#ifdef __cplusplus
extern "C" {
#endif
#include <stdio.h>
/* Run the FuncMacro module.
*
* If __func__ successfully resolves, this will be defined:
*
* HAS_ISO_FUNC_MACRO
*
* If __FUNCTION__ successfully resolves, this will be defined:
*
* HAS_GNUC_FUNC_MACRO
*
* If one or the other succeeds, these will be defined:
*
* HAS_FUNC_MACRO
* FUNC_MACRO
*
* The "inline" keyword will also be probed for. If it is available, the
* following macro will be defined to "inline", otherwise it will be defined
* to nothing.
*
* INLINE
*/
void chaz_FuncMacro_run(void);
#ifdef CHAZ_USE_SHORT_NAMES
#define FuncMacro_run chaz_FuncMacro_run
#endif
#ifdef __cplusplus
}
#endif
#endif /* H_CHAZ_FUNC_MACRO */
/* Copyright 2006-2011 Marvin Humphrey
charmonizer/src/Charmonizer/Probe/VariadicMacros.c view on Meta::CPAN
#define CHAZ_USE_SHORT_NAMES
#include "Charmonizer/Core/Compiler.h"
#include "Charmonizer/Core/ConfWriter.h"
#include "Charmonizer/Core/Util.h"
#include "Charmonizer/Probe/VariadicMacros.h"
#include <string.h>
#include <stdio.h>
/* Code for verifying ISO-style variadic macros. */
static char iso_code[] =
QUOTE( #include "_charm.h" )
QUOTE( #define ISO_TEST(fmt, ...) \\ )
" printf(fmt, __VA_ARGS__) \n"
QUOTE( int main() { )
charmonizer/src/Charmonizer/Probe/VariadicMacros.c view on Meta::CPAN
static char gnuc_code[] =
QUOTE( #include "_charm.h" )
QUOTE( #define GNU_TEST(fmt, args...) printf(fmt, ##args) )
QUOTE( int main() { )
QUOTE( Charm_Setup; )
QUOTE( GNU_TEST("%d %d", 1, 1); )
QUOTE( return 0; )
QUOTE( } );
void
VariadicMacros_run(void)
{
char *output;
size_t output_len;
chaz_bool_t has_varmacros = false;
chaz_bool_t has_iso_varmacros = false;
chaz_bool_t has_gnuc_varmacros = false;
ConfWriter_start_module("VariadicMacros");
/* Test for ISO-style variadic macros. */
output = CC_capture_output(iso_code, strlen(iso_code), &output_len);
if (output != NULL) {
has_varmacros = true;
has_iso_varmacros = true;
ConfWriter_append_conf("#define CHY_HAS_VARIADIC_MACROS\n");
ConfWriter_append_conf("#define CHY_HAS_ISO_VARIADIC_MACROS\n");
}
charmonizer/src/Charmonizer/Probe/VariadicMacros.h view on Meta::CPAN
/* Charmonizer/Probe/VariadicMacros.h
*/
#ifndef H_CHAZ_VARIADIC_MACROS
#define H_CHAZ_VARIADIC_MACROS
#ifdef __cplusplus
extern "C" {
#endif
#include <stdio.h>
/* Run the VariadicMacros module.
*
* If your compiler supports ISO-style variadic macros, this will be defined:
*
* HAS_ISO_VARIADIC_MACROS
*
* If your compiler supports GNU-style variadic macros, this will be defined:
*
* HAS_GNUC_VARIADIC_MACROS
*
* If you have at least one of the above, this will be defined:
*
* HAS_VARIADIC_MACROS
*/
void chaz_VariadicMacros_run(void);
#ifdef CHAZ_USE_SHORT_NAMES
#define VariadicMacros_run chaz_VariadicMacros_run
#endif
#ifdef __cplusplus
}
#endif
#endif /* H_CHAZ_VARIADIC_MACROS */
/* Copyright 2006-2011 Marvin Humphrey
charmonizer/src/Charmonizer/Test/AllTests.c view on Meta::CPAN
static TestBatch **batches = NULL;
void
AllTests_init()
{
Test_init();
/* Create a null-terminated array of test batches to iterate over. */
batches = (TestBatch**)malloc(8 * sizeof(TestBatch*));
batches[0] = TestDirManip_prepare();
batches[1] = TestFuncMacro_prepare();
batches[2] = TestHeaders_prepare();
batches[3] = TestIntegers_prepare();
batches[4] = TestLargeFiles_prepare();
batches[5] = TestUnusedVars_prepare();
batches[6] = TestVariadicMacros_prepare();
batches[7] = NULL;
}
void
AllTests_run()
{
int total_tests = 0;
int total_passed = 0;
int total_failed = 0;
int total_skipped = 0;
charmonizer/src/Charmonizer/Test/AllTests.h view on Meta::CPAN
* undetected failure some of the time. However, missing symbols required by
* your application will trigger compile-time errors, so the theoretical
* problem of silent failure is less severe than it appears, affecting only
* fallbacks.
*/
chaz_TestBatch*
chaz_TestDirManip_prepare();
chaz_TestBatch*
chaz_TestFuncMacro_prepare();
chaz_TestBatch*
chaz_TestHeaders_prepare();
chaz_TestBatch*
chaz_TestIntegers_prepare();
chaz_TestBatch*
chaz_TestLargeFiles_prepare();
chaz_TestBatch*
chaz_TestUnusedVars_prepare();
chaz_TestBatch*
chaz_TestVariadicMacros_prepare();
void
chaz_TestDirManip_run(chaz_TestBatch *batch);
void
chaz_TestFuncMacro_run(chaz_TestBatch *batch);
void
chaz_TestHeaders_run(chaz_TestBatch *batch);
void
chaz_TestIntegers_run(chaz_TestBatch *batch);
void
chaz_TestLargeFiles_run(chaz_TestBatch *batch);
void
chaz_TestUnusedVars_run(chaz_TestBatch *batch);
void
chaz_TestVariadicMacros_run(chaz_TestBatch *batch);
#ifdef CHAZ_USE_SHORT_NAMES
#define TestDirManip_prepare chaz_TestDirManip_prepare
#define TestDirManip_run chaz_TestDirManip_run
#define TestFuncMacro_prepare chaz_TestFuncMacro_prepare
#define TestHeaders_prepare chaz_TestHeaders_prepare
#define TestIntegers_prepare chaz_TestIntegers_prepare
#define TestLargeFiles_prepare chaz_TestLargeFiles_prepare
#define TestUnusedVars_prepare chaz_TestUnusedVars_prepare
#define TestVariadicMacros_prepare chaz_TestVariadicMacros_prepare
#define TestFuncMacro_run chaz_TestFuncMacro_run
#define TestHeaders_run chaz_TestHeaders_run
#define TestIntegers_run chaz_TestIntegers_run
#define TestLargeFiles_run chaz_TestLargeFiles_run
#define TestUnusedVars_run chaz_TestUnusedVars_run
#define TestVariadicMacros_run chaz_TestVariadicMacros_run
#endif
#ifdef __cplusplus
}
#endif
#endif /* H_CHAZ_TEST */
/* Copyright 2006-2011 Marvin Humphrey
charmonizer/src/Charmonizer/Test/TestFuncMacro.c view on Meta::CPAN
#define CHAZ_USE_SHORT_NAMES
#include "charmony.h"
#include <string.h>
#include "Charmonizer/Test.h"
#include "Charmonizer/Test/AllTests.h"
TestBatch*
TestFuncMacro_prepare()
{
return Test_new_batch("FuncMacro", 4, TestFuncMacro_run);
}
#ifdef INLINE
static INLINE char* S_inline_function()
{
return "inline works";
}
#endif
void
TestFuncMacro_run(TestBatch *batch)
{
#ifdef HAS_FUNC_MACRO
TEST_STR_EQ(batch, FUNC_MACRO, "chaz_TestFuncMacro_run",
"FUNC_MACRO");
#else
SKIP(batch, "no FUNC_MACRO");
#endif
#ifdef HAS_ISO_FUNC_MACRO
TEST_STR_EQ(batch, __func__, "chaz_TestFuncMacro_run",
"HAS_ISO_FUNC_MACRO");
#else
SKIP(batch, "no ISO_FUNC_MACRO");
#endif
#ifdef HAS_GNUC_FUNC_MACRO
TEST_STR_EQ(batch, __FUNCTION__, "chaz_TestFuncMacro_run",
"HAS_GNUC_FUNC_MACRO");
#else
SKIP(batch, "no GNUC_FUNC_MACRO");
#endif
#ifdef INLINE
PASS(batch, S_inline_function());
#else
SKIP(batch, "no INLINE functions");
#endif
charmonizer/src/Charmonizer/Test/TestVariadicMacros.c view on Meta::CPAN
#define CHAZ_USE_SHORT_NAMES
#include "charmony.h"
#include <string.h>
#include <stdio.h>
#include "Charmonizer/Test.h"
#include "Charmonizer/Test/AllTests.h"
TestBatch*
TestVariadicMacros_prepare()
{
return Test_new_batch("VariadicMacros", 4, TestVariadicMacros_run);
}
void
TestVariadicMacros_run(TestBatch *batch)
{
char buf[10];
chaz_bool_t really_has_var_macs = false;
#if defined(HAS_ISO_VARIADIC_MACROS) || defined(HAS_GNUC_VARIADIC_MACROS)
#ifdef HAS_VARIADIC_MACROS
PASS(batch, "#defines agree");
#else
FAIL(batch, 0, "#defines agree");
#endif
clownfish/lib/Clownfish/Binding/Perl/Class.pm view on Meta::CPAN
=item * B<parcel> - A L<Clownfish::Parcel> or parcel name.
=item * B<class_name> - The name of the class to be registered.
=item * B<xs_code> - Raw XS code to be included in the final .xs file
generated by Clownfish::Binding::Perl. The XS directives PACKAGE and
MODULE should be specified.
=item * B<bind_methods> - An array of names for novel methods for which XS
bindings should be auto-generated, supplied using Clownfish's C<Macro_Name>
method-naming convention. The Perl subroutine name will be derived by
lowercasing C<Method_Name> to C<method_name>, but this can be overridden by
prepending an alias and a pipe: e.g. C<_get_foo|Get_Foo>.
=item * B<bind_constructors> - An array of constructor names. The default
implementing function is the class's C<init> function, unless it is overridden
using a pipe-separated string: C<_new2|init2> would create a Perl subroutine
"_new2" which would invoke C<myproj_FooJr_init2>.
=item * B<make_pod> - A specification for generating POD. TODO: document this
core/KinoSearch/Object/Err.cfh view on Meta::CPAN
#endif
#define CFISH_ERR_ADD_FRAME(_error) \
Kino_Err_Add_Frame(_error, __FILE__, __LINE__, \
CFISH_ERR_FUNC_MACRO)
#define CFISH_RETHROW(_error) \
kino_Err_rethrow((kino_Err*)_error, __FILE__, __LINE__, \
CFISH_ERR_FUNC_MACRO)
/** Macro version of kino_Err_throw_at which inserts contextual information
* automatically, provided that the compiler supports the necessary features.
*/
#ifdef CHY_HAS_VARIADIC_MACROS
#ifdef CHY_HAS_ISO_VARIADIC_MACROS
#define CFISH_THROW(_vtable, ...) \
kino_Err_throw_at(_vtable, __FILE__, __LINE__, CFISH_ERR_FUNC_MACRO, \
__VA_ARGS__)
#define CFISH_WARN(...) \
kino_Err_warn_at(__FILE__, __LINE__, CFISH_ERR_FUNC_MACRO, __VA_ARGS__)
#define CFISH_MAKE_MESS(...) \
lib/KinoSearch/Test.pm view on Meta::CPAN
chaz_TestBatch *batch = NULL;
chaz_Test_init();
if (strcmp(which, "dirmanip") == 0) {
batch = chaz_TestDirManip_prepare();
}
else if (strcmp(which, "integers") == 0) {
batch = chaz_TestIntegers_prepare();
}
else if (strcmp(which, "func_macro") == 0) {
batch = chaz_TestFuncMacro_prepare();
}
else if (strcmp(which, "headers") == 0) {
batch = chaz_TestHeaders_prepare();
}
else if (strcmp(which, "large_files") == 0) {
batch = chaz_TestLargeFiles_prepare();
}
else if (strcmp(which, "unused_vars") == 0) {
batch = chaz_TestUnusedVars_prepare();
}
else if (strcmp(which, "variadic_macros") == 0) {
batch = chaz_TestVariadicMacros_prepare();
}
else {
THROW(KINO_ERR, "Unknown test identifier: '%s'", which);
}
batch->run_test(batch);
batch->destroy(batch);
}
END_XS_CODE