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 2009/12/19 04:57:28 UTC
svn commit: r892427 - /lucene/lucy/trunk/charmonizer/README
Author: marvin
Date: Sat Dec 19 03:57:27 2009
New Revision: 892427
URL: http://svn.apache.org/viewvc?rev=892427&view=rev
Log:
Update Charmonizer's README.
Modified:
lucene/lucy/trunk/charmonizer/README
Modified: lucene/lucy/trunk/charmonizer/README
URL: http://svn.apache.org/viewvc/lucene/lucy/trunk/charmonizer/README?rev=892427&r1=892426&r2=892427&view=diff
==============================================================================
--- lucene/lucy/trunk/charmonizer/README (original)
+++ lucene/lucy/trunk/charmonizer/README Sat Dec 19 03:57:27 2009
@@ -14,10 +14,8 @@
REQUIREMENTS
- The only prerequisite for the target machine is an ISO C90-compliant
- compiler which can be invoked from C via the system() command. Your
- development environment must include Perl in order to run the metaquote
- utility script, but no Perl programming is required.
+ Charmonizer's only prerequisite is an ISO C90-compliant compiler which can
+ be invoked from C via the system() command.
PROBING
@@ -27,14 +25,14 @@
int main()
{
- /* tell Charmonizer about your OS and compiler */
+ /* Tell Charmonizer about your OS and compiler. */
chaz_Probe_init("darwin", "cc", "-I/usr/local/include", NULL);
- /* run desired Charmonizer modules */
+ /* Run desired Charmonizer modules. */
chaz_Integers_run();
chaz_LargeFiles_run();
- /* tear down */
+ /* Tear down. */
chaz_Probe_clean_up();
return 0;
@@ -46,12 +44,13 @@
functionality which may go by many different aliases on different systems.
One header file, "Charmonizer/Probe.h", provides the primary interface and
- a suite of topically oriented modules, e.g.
- "Charmonizer/Probe/LargeFiles.h", "Charmonizer/Probe/Integers.h" do the
- heavy lifting. Each module exports 1 main function, ModuleName_run(),
- which appends output to charmony.h. The config gets built up bit by bit as
- you run each module in turn. "charmony.h" can be further customized by
- writing your own content to it.
+ a suite of topically oriented modules -- e.g.
+ "Charmonizer/Probe/LargeFiles.h", "Charmonizer/Probe/Integers.h" -- do the
+ heavy lifting. Each topical module exports 1 main function,
+ ModuleName_run(), which runs all the relevant compiler probes and appends
+ output to charmony.h. As you run each module in turn, "charmony.h" gets
+ built up incrementally; it can be further customized by writing your own
+ content to it at any point.
TESTING
@@ -85,54 +84,41 @@
The stock tests require access to "charmony.h". Not all tests will pass
in every environment, and the expectation is that you will append
- charmony.h with ifdef tests as necessary to draw in supplementary code.
- (Charmonizer restricts itself to working with what it finds, and
- does not supply a library of compatibility functions.)
+ charmony.h with ifdef tests as necessary to draw in supplementary code:
#ifndef HAS_DIRENT_H
#include "my/dirent.h"
#endif
+ Charmonizer restricts itself to working with what it finds, and
+ does not supply a library of compatibility functions.
+
C NAMESPACE
- Charmonizer allows you to prepend a prefix onto every symbol it exports.
- For public code, such as header files, this helps avoid namespace
- collisions. For private code, the prefixes are stripped via
- the USE_SHORT_NAMES symbol.
-
- #ifdef LUCY_HAS_LONG_LONG
- /* ... */
- #define LUCY_USE_SHORT_NAMES
- #ifdef HAS_LONG_LONG
+ The "charmony.h" header prepends a prefix onto most of the symbols it
+ exports: either "chy_" or "CHY_". For public code, such as header files,
+ this helps avoid namespace collisions. For private code, the prefixes can
+ be stripped via the CHY_USE_SHORT_NAMES symbol.
+
+ #define CHY_USE_SHORT_NAMES
+ #ifdef HAS_LONG_LONG /* alias for CHY_HAS_LONG_LONG */
FILESYSTEM NAMESPACE
Charmonizer creates a number of temporary files within the current working
directory while it runs. These files all begin with "_charm".
-GATHERING FILES
-
- Charmonizer master modules are stored in the src/ directory, and have
- .harm/.charm extensions. They are ordinary ANSI C files, except for one
- thing: multi-line quoted snippets of source code are surrounded by
- "METAQUOTE" tags. This is done for maintainability's sake, since
- embedding C source code in C source code as string literals is very messy.
-
- To generate all the necessary Charmonizer .c/.h files, use the metaquote
- utility.
-
- $ ./bin/metaquote --src=/path/to/charmonizer/src --out=/my/charm/dir
-
SECURITY
Under no circumstances should input from untrusted users be supplied to
- Charmonizer. A lot of what it does it does by passing strings to the
- system() command.
+ Charmonizer. A lot of what Charmonizer does it does by passing strings to
+ the system() command; security cannot be assured unless input is
+ restricted.
COPYRIGHT AND LICENSE
/**
- * Copyright 2006 The Apache Software Foundation
+ * Copyright 2006-2009 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.