From d8cc3eeeb55b92b0d7fe9a325937df11c28fbcaa Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sun, 12 Jan 2020 17:05:25 +0200 Subject: Update doc/ and move various entries to wiki --- doc/Development/Fuzzing.asciidoc | 49 --------------------------- doc/Development/Hacking.asciidoc | 52 ----------------------------- doc/Development/Manual.asciidoc | 11 ------ doc/Development/RepositoryCommands.asciidoc | 6 ---- doc/Development/Session.asciidoc | 19 ----------- doc/Development/Translating.asciidoc | 16 --------- doc/Development/Updater.asciidoc | 25 -------------- doc/Development/git.asciidoc | 10 ------ 8 files changed, 188 deletions(-) delete mode 100644 doc/Development/Fuzzing.asciidoc delete mode 100644 doc/Development/Hacking.asciidoc delete mode 100644 doc/Development/Manual.asciidoc delete mode 100644 doc/Development/RepositoryCommands.asciidoc delete mode 100644 doc/Development/Session.asciidoc delete mode 100644 doc/Development/Translating.asciidoc delete mode 100644 doc/Development/Updater.asciidoc delete mode 100644 doc/Development/git.asciidoc (limited to 'doc/Development') diff --git a/doc/Development/Fuzzing.asciidoc b/doc/Development/Fuzzing.asciidoc deleted file mode 100644 index 0981f1a..0000000 --- a/doc/Development/Fuzzing.asciidoc +++ /dev/null @@ -1,49 +0,0 @@ -=== Setup -Required packages: afl - -==== Compiling Qt -This will build an instrumented Qt: - -[source, sh] ----- -export CC=$(which afl-gcc) -export CXX=$(which afl-g++) -./configure ... -make ----- - -=== Running the fuzzer -[source, sh] ----- -cd /sys/devices/system/cpu -su -echo performance | tee cpu*/cpufreq/scaling_governor -exit - -cd $testdir -afl-fuzz -m 512 -t 40 -i $input -o $output -- $testexe @@ - -# see for available scaling_governor values: -cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors - -cd /sys/devices/system/cpu -su -echo powersave | tee cpu*/cpufreq/scaling_governor -exit ----- - -The $input directory contains your reference input files, while the findings of the fuzzers will be written in $output. - -@@ gets replaced by the name of a file generated by AFL, containing the mutated input. - -=== Using ramdisk for tests -[source, sh] ----- -$ mkdir afl -# mount -t tmpfs -o size=1024M tmpfs afl/ -$ cd afl/ -$ afl-fuzz -i inputs -o findings ... ----- - -=== Sources -1. https://www.kdab.com/fuzzing-qt-fun-profit/ diff --git a/doc/Development/Hacking.asciidoc b/doc/Development/Hacking.asciidoc deleted file mode 100644 index d0332e9..0000000 --- a/doc/Development/Hacking.asciidoc +++ /dev/null @@ -1,52 +0,0 @@ -== C++ Performance -(Adapted from CppCon2016 Practical Performance Practices) -https://florianjw.de/en/cpp_coding_standard.html - -- Prefer std::array, then std::vector -- Construct and initialize in one step -- Use const always when possible -- To enable const with complex initialization, use lambdas -- Don't recalculate values that only need to be calculated once -- Don't disable move operations - moving is more efficient than copying -- Avoid shared_ptr copies unless really needed -- Prefer returning unique_ptr from factories -- Use '\n' instead of std::endl -- Use lambdas - they have no overhead compared to direct functions -- final can help the compiler optimize virtual function calls -- Code branches are expensive - -=== Smaller code is faster code - -=== Do one thing and do it well -Simple code is easy to understand, easy to maintain, and as such lead to less bugs. - -=== Only use text formats -They can be edited both by humans and by programs. Use generic formats (ini, json, etc.) instead of custom ones. - -=== Document your changes -Don't do this just for others, do it for your future self. - -== Useful compiler options -- -fuse-ld=gold -- -Wold-style-cast - -=== Setting in meson -Compiler arguments are free-form comma-separated list. -meson configure -Dcpp_args="-Wold-style-cast" -meson configure -Dcpp_link_args="-fuse-ld=gold" - -== C++ Coding Standard - -=== Naming Conventions -- Naming uses camelCase -- Private attributes are prefixed with 'm_'. -- Include guards should be named SMOLBOTE__H - -=== Compiler -- Use the highest sane warning level. - -=== Resource management -- Manage your resources with RAII (Resource Acquisition Is Initialization). - -=== Functions -- Try to keep the complexity low and the body short. diff --git a/doc/Development/Manual.asciidoc b/doc/Development/Manual.asciidoc deleted file mode 100644 index 6e5a39f..0000000 --- a/doc/Development/Manual.asciidoc +++ /dev/null @@ -1,11 +0,0 @@ -== manpage - -=== Generating manpage -[code, sh] ----- -# with asciidoc -a2x --format=manpage doc/smolbote.7.asciidoc - -# with asciidoctor -asciidoctor --backend=manpage doc/smolbote.7.asciidoc ----- diff --git a/doc/Development/RepositoryCommands.asciidoc b/doc/Development/RepositoryCommands.asciidoc deleted file mode 100644 index 13e2f8e..0000000 --- a/doc/Development/RepositoryCommands.asciidoc +++ /dev/null @@ -1,6 +0,0 @@ -== Repository commands -[code, sh] ----- -# listing branches -curl --request GET --url https://neueland.iserlohn-fortress.net/gitea/api/v1/repos/aqua/smolbote/branches ----- diff --git a/doc/Development/Session.asciidoc b/doc/Development/Session.asciidoc deleted file mode 100644 index 846d6a3..0000000 --- a/doc/Development/Session.asciidoc +++ /dev/null @@ -1,19 +0,0 @@ -== Session - -== Session JSON structure -- windows: list of windows - -=== Window -- subwindows: list of subwindows - -=== Subwindow -- profile: profile ID -- tabs: list of views -- current: current tab index - -=== View -- profile: profile ID -- history: view history - -Storing history: compress, toBase64 (to make printable), toQString (to store in json) -Restoring history: toLatin1 (turn into bytearray), fromBase64, uncompress diff --git a/doc/Development/Translating.asciidoc b/doc/Development/Translating.asciidoc deleted file mode 100644 index f79fa56..0000000 --- a/doc/Development/Translating.asciidoc +++ /dev/null @@ -1,16 +0,0 @@ -== Translating -[code, sh] ----- -# generating translations -lupdate src/ lib/ -ts lang/.ts - -# updating translations -lupdate src/ lib/ -no-obsolete -ts lang/.ts - -# generate lang/.qm -lrelease lang/.ts ----- - -=== Using translations - --browser.locale # set Qt translation; ex. de - --browser.translation # set translation file; ex. /home/user/.config/smolbote/lang/custom-translate.qm diff --git a/doc/Development/Updater.asciidoc b/doc/Development/Updater.asciidoc deleted file mode 100644 index a039318..0000000 --- a/doc/Development/Updater.asciidoc +++ /dev/null @@ -1,25 +0,0 @@ -== Updater - -=== Creating manifest -[code, sh] ----- -find windows/ -type f | xargs sha512sum | sed 's/windows\///' > windows-sha512.txt -find windows/ -type d -exec chmod 755 {} + ----- - -=== Building - -You can build for the current system using: -[code, sh] ----- -go build -# remove debug information -strip updater ----- - -You can also cross-compile for other systems by setting GOOS and GOARCH. For a -list of supported platforms, use `go tool dist list`. -[code, sh] ----- -GOOS=windows GOARCH=amd64 go build ----- diff --git a/doc/Development/git.asciidoc b/doc/Development/git.asciidoc deleted file mode 100644 index e9e8b61..0000000 --- a/doc/Development/git.asciidoc +++ /dev/null @@ -1,10 +0,0 @@ -== git - -=== Updating submodules -[source, sh] ----- -git submodule update --remote --merge - -# add to commit -git add 3rd-party/ ----- -- cgit v1.2.1