diff --git a/CodingStandards.txt b/CodingStandards.txt deleted file mode 100644 index 76f9920e7..000000000 --- a/CodingStandards.txt +++ /dev/null @@ -1,240 +0,0 @@ -0. Formatting - -GOLDEN RULE: Never *ever* use spaces for formatting. - -a. Use tabs for indentation! -- tab stops are every 4 characters. -- One indentation level -> exactly one byte (i.e. a tab character) in the source file. -- Never use spaces to line up sequential lines: If you have run-on lines, indent as you would for a block. -b. Line widths: -- Don't worry about having lines of code > 80-char wide. -- Lines of comments should be formatted according to ease of viewing, but simplicity is to be prefered over beauty. -c. Don't use braces for condition-body one-liners. -d. Never place condition bodies on same line as condition. -e. Space between first paren and keyword, but *not* following first paren or preceeding final paren. -f. No spaces when fewer than intra-expression three parens together; when three or more, space according to clarity. -g. No spaces for subscripting or unary operators. -h. No space before ':' but one after it, except in the ternary operator: one on both sides. -i. Space all other operators. -j. Braces, when used, always have their own lines and are at same indentation level as "parent" scope. - -(WRONG) -if( a==b[ i ] ) { printf ("Hello\n"); } -foo->bar(someLongVariableName, - anotherLongVariableName, - anotherLongVariableName, - anotherLongVariableName, - anotherLongVariableName); - -(RIGHT) -if (a == b[i]) - printf("Hello\n"); // NOTE spaces used instead of tab here for clarity - first byte should be '\t'. -foo->bar( - someLongVariableName, - anotherLongVariableName, - anotherLongVariableName, - anotherLongVariableName, - anotherLongVariableName -); - - - -1. Namespaces; - -a. No "using namespace" declarations in header files. -b. All symbols should be declared in a namespace except for final applications. -c. Preprocessor symbols should be prefixed with the namespace in all-caps and an underscore. - -(WRONG) -#include -using namespace std; -tuple meanAndSigma(vector const& _v); - -(CORRECT) -#include -std::tuple meanAndSigma(std::vector const& _v); - - - -2. Preprocessor; - -a. File comment is always at top, and includes: -- Original author, date. -- Later maintainers (not contributors - they can be seen through VCS log). -- Copyright. -- License (e.g. see COPYING). -b. Never use #ifdef/#define/#endif file guards. Prefer #pragma once as first line below file comment. -c. Prefer static const variable to value macros. -d. Prefer inline constexpr functions to function macros. -e. Split complex macro on multiple lines with '\'. - - - -3. Capitalization; - -GOLDEN RULE: Preprocessor: ALL_CAPS; C++: camelCase. - -a. Use camelCase for splitting words in names, except where obviously extending STL/boost functionality in which case follow those naming conventions. -b. The following entities' first alpha is upper case: -- Type names. -- Template parameters. -- Enum members. -- static const variables that form an external API. -c. All preprocessor symbols (macros, macro argments) in full uppercase with underscore word separation. - - -All other entities' first alpha is lower case. - - - -4. Variable prefixes: - -a. Leading underscore "_" to parameter names (both normal and template). -- Exception: "o_parameterName" when it is used exclusively for output. See 6(f). -- Exception: "io_parameterName" when it is used for both input and output. See 6(f). -b. Leading "c_" to const variables (unless part of an external API). -c. Leading "g_" to global (non-const) variables. -d. Leading "s_" to static (non-const, non-global) variables. - - - -5. Error reporting: - -- Prefer exception to bool/int return type. - - - -6. Declarations: - -a. {Typename} + {qualifiers} + {name}. -b. Only one per line. -c. Associate */& with type, not variable (at ends with parser, but more readable, and safe if in conjunction with (b)). -d. Favour declarations close to use; don't habitually declare at top of scope ala C. -e. Always pass non-trivial parameters with a const& suffix. -f. If a function returns multiple values, use std::tuple (std::pair acceptable). Prefer not using */& arguments, except where efficiency requires. -g. Never use a macro where adequate non-preprocessor C++ can be written. -h. Make use of auto whenever type is clear or unimportant: -- Always avoid doubly-stating the type. -- Use to avoid vast and unimportant type declarations. -- However, avoid using auto where type is not immediately obvious from the context, and especially not for arithmetic expressions. -i. Don't pass bools: prefer enumerations instead. -j. Prefer enum class to straight enum. - - -(WRONG) -const double d = 0; -int i, j; -char *s; -float meanAndSigma(std::vector _v, float* _sigma, bool _approximate); -Derived* x(dynamic_cast(base)); -for (map::iterator i = l.begin(); i != l.end(); ++l) {} - - -(CORRECT) -enum class Accuracy -{ - Approximate, - Exact -}; -double const d = 0; -int i; -int j; -char* s; -std::tuple meanAndSigma(std::vector const& _v, Accuracy _a); -auto x = dynamic_cast(base); -for (auto i = x.begin(); i != x.end(); ++i) {} - - -7. Structs & classes - -a. Structs to be used when all members public and no virtual functions. -- In this case, members should be named naturally and not prefixed with 'm_' -b. Classes to be used in all other circumstances. - - - -8. Members: - -a. One member per line only. -b. Private, non-static, non-const fields prefixed with m_. -c. Avoid public fields, except in structs. -d. Use override, final and const as much as possible. -e. No implementations with the class declaration, except: -- template or force-inline method (though prefer implementation at bottom of header file). -- one-line implementation (in which case include it in same line as declaration). -f. For a property 'foo' -- Member: m_foo; -- Getter: foo() [ also: for booleans, isFoo() ]; -- Setter: setFoo(); - - - -9. Naming - -a. Collection conventions: -- -s means std::vector e.g. using MyTypes = std::vector -- -Set means std::set e.g. using MyTypeSet = std::set -- -Hash means std::unordered_set e.g. using MyTypeHash = std::unordered_set -b. Class conventions: -- -Face means the interface of some shared concept. (e.g. FooFace might be a pure virtual class.) -c. Avoid unpronouncable names; -- If you need to shorten a name favour a pronouncable slice of the original to a scatterred set of consonants. -- e.g. Manager shortens to Man rather than Mgr. -d. Avoid prefixes of initials (e.g. DON'T use IMyInterface, CMyImplementation) -e. Find short, memorable & (at least semi-) descriptive names for commonly used classes or name-fragments. -- A dictionary and thesaurus are your friends. -- Spell correctly. -- Think carefully about the class's purpose. -- Imagine it as an isolated component to try to decontextualise it when considering its name. -- Don't be trapped into naming it (purely) in terms of its implementation. - - - -10. Type-definitions - -a. Prefer 'using' to 'typedef'. e.g. using ints = std::vector; rather than typedef std::vector ints; -b. Generally avoid shortening a standard form that already includes all important information: -- e.g. stick to shared_ptr rather than shortening to ptr. -c. Where there are exceptions to this (due to excessive use and clear meaning), note the change prominently and use it consistently. -- e.g. using Guard = std::lock_guard; ///< Guard is used throughout the codebase since it's clear in meaning and used commonly. -d. In general expressions should be roughly as important/semantically meaningful as the space they occupy. - - -11. Commenting - -a. Comments should be doxygen-compilable, using @notation rather than \notation. -b. Document the interface, not the implementation. -- Documentation should be able to remain completely unchanged, even if the method is reimplemented. -- Comment in terms of the method properties and intended alteration to class state (or what aspects of the state it reports). -- Be careful to scrutinise documentation that extends only to intended purpose and usage. -- Reject documentation that is simply an English transaction of the implementation. - - - -12. Include Headers - -a. Includes should go in order of lower level (STL -> boost -> libdevcore -> libdevcrypto -> libethcore -> libethereum) to higher level. Lower levels are basically dependencies to the higher levels. For example: - -#include -#include - -#include -#include -#include -#include -#include -#include - -b. The only exception to the above rule is the top of a .cpp file where its corresponding header should be located. - -13. Logging - -Logging should be performed at appropriate verbosities depending on the logging message. -The more likely a message is to repeat (and thus cuase noise) the higher in verbosity it should be. -Some rules to keep in mind: - - - Verbosity == 0 -> Reserved for important stuff that users must see and can understand. - - Verbosity == 1 -> Reserved for stuff that users don't need to see but can understand. - - Verbosity >= 2 -> Anything that is or might be displayed more than once every minute - - Verbosity >= 3 -> Anything that only a developer would understand - - Verbosity >= 4 -> Anything that is low-level (e.g. peer disconnects, timers being cancelled) diff --git a/EthereumMacOSXBundleInfo.plist.in b/EthereumMacOSXBundleInfo.plist.in deleted file mode 100644 index 684ad7908..000000000 --- a/EthereumMacOSXBundleInfo.plist.in +++ /dev/null @@ -1,38 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${MACOSX_BUNDLE_EXECUTABLE_NAME} - CFBundleGetInfoString - ${MACOSX_BUNDLE_INFO_STRING} - CFBundleIconFile - ${MACOSX_BUNDLE_ICON_FILE} - CFBundleIdentifier - ${MACOSX_BUNDLE_GUI_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleLongVersionString - ${MACOSX_BUNDLE_LONG_VERSION_STRING} - CFBundleName - ${MACOSX_BUNDLE_BUNDLE_NAME} - CFBundlePackageType - APPL - CFBundleShortVersionString - ${MACOSX_BUNDLE_SHORT_VERSION_STRING} - CFBundleSignature - ???? - CFBundleVersion - ${MACOSX_BUNDLE_BUNDLE_VERSION} - CSResourcesFileMapped - - LSRequiresCarbon - - NSHumanReadableCopyright - ${MACOSX_BUNDLE_COPYRIGHT} - NSHighResolutionCapable - - - diff --git a/appdmg.json.in b/appdmg.json.in deleted file mode 100644 index ea49e9294..000000000 --- a/appdmg.json.in +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": "Ethereum", - "icon": "appdmg_icon.icns", - "background": "appdmg_background.png", - "icon-size": 55, - "contents": [ - { "x": 242, "y": 240, "type": "link", "path": "/Applications" }, - { "x": 145, "y": 125, "type": "file", "path": "${ETH_ALETHZERO_APP}" }, - { "x": 339, "y": 125, "type": "file", "path": "${ETH_MIX_APP}" } - ] -} - - diff --git a/astylerc b/astylerc deleted file mode 100644 index d4e1188eb..000000000 --- a/astylerc +++ /dev/null @@ -1,11 +0,0 @@ -style=allman -indent=force-tab=4 -convert-tabs -indent-preprocessor -min-conditional-indent=1 -pad-oper -pad-header -unpad-paren -align-pointer=type -keep-one-line-blocks -close-templates diff --git a/install-folder-bg.png b/install-folder-bg.png deleted file mode 100644 index 6eba44128..000000000 Binary files a/install-folder-bg.png and /dev/null differ diff --git a/install-folder-bg@2x.png b/install-folder-bg@2x.png deleted file mode 100644 index 31aac5522..000000000 Binary files a/install-folder-bg@2x.png and /dev/null differ diff --git a/package.sh b/package.sh deleted file mode 100755 index f6d45b07c..000000000 --- a/package.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -opwd="$PWD" -br=$(git branch | grep '\*' | sed 's/^..//') - -n=cpp-ethereum-src-$(date "+%Y%m%d%H%M%S" --date="1970-01-01 $(git log -1 --date=short --pretty=format:%ct) sec GMT")-$(grep "Version = " libdevcore/Common.cpp | sed 's/^[^"]*"//' | sed 's/".*$//')-$(git rev-parse HEAD | cut -c1-6) - -cd /tmp -git clone "$opwd" $n -cd $n -git checkout $br -rm -f package.sh -cd .. -tar c $n | bzip2 -- > $opwd/../${n}.tar.bz2 -rm -rf $n -cd $opwd - -echo "SHA1(${n}.tar.bz2) = $(shasum $opwd/../${n}.tar.bz2 | cut -d' ' -f 1)" -