From 7cf1a1298d1d3b56ed93ac1c6d4e18f5ed29d322 Mon Sep 17 00:00:00 2001 From: "andrey.bychkov" Date: Fri, 27 Feb 2026 23:51:53 +0300 Subject: [PATCH] remove md files --- .gitignore | 2 + AGENTS.md | 166 --------------------------------------- README.md | 115 +++++++++++++++++++++++++++ dependencies.md | 55 ------------- options.md | 59 -------------- plans/doxygen_docs.md | 113 -------------------------- plans/doxygen_example.md | 15 ---- plans/pivector2d.md | 28 ------- 8 files changed, 117 insertions(+), 436 deletions(-) delete mode 100644 AGENTS.md delete mode 100644 dependencies.md delete mode 100644 options.md delete mode 100644 plans/doxygen_docs.md delete mode 100644 plans/doxygen_example.md delete mode 100644 plans/pivector2d.md diff --git a/.gitignore b/.gitignore index 1acefdd3..1c093651 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ CMakeLists.txt.user* /include /release /build* +/AGENTS.md +/plans diff --git a/AGENTS.md b/AGENTS.md deleted file mode 100644 index 270ffd38..00000000 --- a/AGENTS.md +++ /dev/null @@ -1,166 +0,0 @@ -# AGENTS.md - Agent Guidelines for PIP - -This file provides guidance for agentic coding agents working on the PIP (Platform Independent Primitives) codebase. - -## Project Overview - -PIP is a C++ cross-platform library providing platform-independent abstractions for: -- Core/Types: Strings, variants, containers, datetime, networks -- Threading: Mutexes, semaphores, thread pools, timers -- I/O: Files, serial, CAN, GPIO, SPI, Ethernet -- Math: Vectors, matrices, FFT, quaternions -- Crypto: MD5, SHA, BLAKE2, SipHash -- Compression: zlib support -- HTTP: Client and server support -- Serialization: JSON, binary, XML - -## Build Commands - -### Basic Build -```bash -cmake -B build -cmake --build build -j8 -``` - -### Build with Tests -```bash -cmake -B build -DTESTS=ON -cmake --build build -j8 -``` - -### Run Tests -```bash -ctest --test-dir build/tests # Run all tests -ctest --test-dir build/tests -R # Run specific tests matching regex -ctest --test-dir build/tests -V # Verbose output -``` - -To run a single test: -```bash -# Build the test executable, then run directly: -./build/tests/pip__test -# Or use ctest with specific test name -ctest --test-dir build/tests -R "TestName" -``` - -### Other Commands -```bash -cmake --build build --target clean # Clean build -cmake --install build_pip # Install -cmake --build build --target doc # Build documentation -``` - -### Build Options -```bash --DTESTS=ON # Build tests --DCOVERAGE=ON # Build with coverage --DICU=ON # ICU support for codepage conversion --DSTD_IOSTREAM=ON # std::iostream operators support --DINTROSPECTION=ON # Build with introspection --DPIP_BUILD_CRYPT=ON # Crypt module (requires libsodium) --DPIP_BUILD_FFTW=ON # FFT support -``` - -## Code Style Guidelines - -### File Organization -- Header files: `libs/main/**/*.h` -- Source files: `libs/main/**/*.cpp` -- Private headers: `*_p.h` -- Tests: `tests//` -- Use Doxygen comments (`/*! ... */`) for documentation with `\brief`, `\param`, `\return` - -### Naming Conventions -- **Classes**: PascalCase with `PI` prefix (e.g., `PIString`, `PIByteArray`, `PIVariant`) -- **Functions**: camelCase (e.g., `toAscii()`, `isEmpty()`, `append()`) -- **Member variables**: snake_case, or just lowercase (e.g., `array_size`, `count`) -- **Constants**: PascalCase or UPPER_SNAKE_CASE -- **Enums**: PascalCase for enum names and values - -### Code Formatting -- **Indentation**: Use tabs (4 spaces equivalent) or spaces - match existing code -- **Braces**: Opening brace on same line for functions, new line for namespaces/classes -- **Includes**: System includes first, then project headers -- **Use forward declarations** where possible to reduce compile times -- **Use `nullptr`** instead of `NULL` - -### C++ Standards -- C++11 standard (enforced in CMakeLists.txt) -- Use `override` keyword for virtual function overrides -- Use `explicit` for single-argument constructors -- Use `const` member functions where applicable -- Use range-based `for` loops when possible - -### Error Handling -- Return error codes -- DO NOT USE exceptions -- Use `piCerr` and `piCout` for error messages -- Check for null pointers where appropriate - -### Module Structure - -Each module typically has: -1. Public header: `pip_.h` or `.h` -2. Private implementation: `.cpp` or `_p.cpp` -3. Use `PIP_EXPORT` macro for symbols that need to be exported from the library - -Example class structure: -```cpp -// header.h -#ifndef MODULE_CLASSNAME_H -#define MODULE_CLASSNAME_H - -#include "pip_export.h" - -class PIP_EXPORT ClassName { -public: - ClassName(); - ~ClassName(); - - void doSomething(); - bool isValid() const; - -private: - void privateMethod(); - int data; -}; - -#endif // MODULE_CLASSNAME_H - -// source.cpp -#include "header.h" -#include "piincludes_p.h" - -ClassName::ClassName() : data(0) {} -``` - -### Testing -- Use Google Test framework -- Test files go in `tests//` -- Use `TEST(TestSuite, TestName)` or `TEST_F(TestFixture, TestName)` for test cases -- Use `ASSERT_*` for fatal failures, `EXPECT_*` for non-fatal -- Test naming: `_` - -Example: -```cpp -#include "pistring.h" -#include "gtest/gtest.h" - -TEST(PIString_Tests, constructor_empty) { - PIString str; - ASSERT_TRUE(str.isEmpty()); -} -``` - -### Module Dependencies -- Main library: `libs/main/` -- Third-party: `3rd/` -- Utils: `utils/` - -### Key Files -- `CMakeLists.txt` - Main build configuration -- `tests/CMakeLists.txt` - Test configuration - - -## Lint/Format Commands -- For formatting, use clang-format with .clang-format in repo root diff --git a/README.md b/README.md index 11691014..236ceaf7 100644 --- a/README.md +++ b/README.md @@ -40,3 +40,118 @@ You should add ${} to your target. [πŸ‡·πŸ‡Ί Онлайн докумСнтация](https://shstk.ru/pip/html/ru/index.html) [πŸ‡·πŸ‡Ί Qt-help](https://shstk.ru/pip/pip_ru.qch) + +## ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ сборки + +### Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ (option()) +| ΠžΠΏΡ†ΠΈΡ | ОписаниС | По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ | +|-------|----------|--------------| +| `ICU` | ICU support для ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… страниц | ON (ΠΊΡ€ΠΎΠΌΠ΅ Win/Android/Apple) | +| `STD_IOSTREAM` | ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° std::iostream ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² | OFF | +| `INTROSPECTION` | Π‘Π±ΠΎΡ€ΠΊΠ° с интроспСкциСй | OFF | +| `TESTS` | Π‘Π±ΠΎΡ€ΠΊΠ° тСстов | OFF | +| `COVERAGE` | Π‘Π±ΠΎΡ€ΠΊΠ° с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ | OFF | +| `PIP_FFTW_F` | ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° FFTW для float | ON | +| `PIP_FFTW_L` | ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° FFTW для long double | ON | +| `PIP_FFTW_Q` | ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° FFTW для quad double | OFF | + +### ΠžΠΏΡ†ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (PIP_BUILD_*) +| ΠžΠΏΡ†ΠΈΡ | ΠœΠΎΠ΄ΡƒΠ»ΡŒ | +|-------|--------| +| `PIP_BUILD_CONSOLE` | console | +| `PIP_BUILD_CRYPT` | crypt (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ libsodium) | +| `PIP_BUILD_COMPRESS` | compress (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ zlib) | +| `PIP_BUILD_USB` | usb | +| `PIP_BUILD_FFTW` | fftw | +| `PIP_BUILD_OPENCL` | opencl | +| `PIP_BUILD_IO_UTILS` | io_utils | +| `PIP_BUILD_CLIENT_SERVER` | client_server | +| `PIP_BUILD_CLOUD` | cloud | +| `PIP_BUILD_LUA` | lua | +| `PIP_BUILD_HTTP_CLIENT` | http_client (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ libcurl) | +| `PIP_BUILD_HTTP_SERVER` | http_server (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ libmicrohttpd) | + +### Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ +| ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ | ОписаниС | +|------------|----------| +| `PIP_BUILD_DEBUG` | Π‘Π±ΠΎΡ€ΠΊΠ° debug вСрсии | +| `PIP_FREERTOS` | Π Π΅ΠΆΠΈΠΌ сборки для FreeRTOS | +| `CROSSTOOLS` | Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ инструмСнты кросс-сборки ΠΏΠΎΠ΄ Ρ…ΠΎΡΡ‚ΠΎΠ²ΡƒΡŽ систСму (pip_cmg, pip_rc, ...) | +| `LOCAL` | Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ установка (bin/lib/include) | +| `PIP_CONTAINERS_MIN_ALLOC` | ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π°Π»Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² | +| `PIP_CONTAINERS_MAX_POT_ALLOC` | ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π°Π»Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ X_KiB, X_MiB) | + +### ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования +```bash +# Базовая сборка с тСстами +cmake -B build -DTESTS=ON + +# Π‘Π±ΠΎΡ€ΠΊΠ° с ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ ΠΈ ICU +cmake -B build -DTESTS=ON -DCOVERAGE=ON -DICU=ON + +# ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ +cmake -B build -DPIP_BUILD_CRYPT=OFF -DPIP_BUILD_OPENCL=OFF + +# ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² +cmake -B build -DPIP_CONTAINERS_MIN_ALLOC=64 + +# Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ установка +cmake -B build -DLOCAL=ON +``` + +## PIP Dependencies + +### ВстроСнныС (included in 3rd/) + +| Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° | НазначСниС | ΠœΠΎΠ΄ΡƒΠ»ΡŒ PIP | +|------------|------------|------------| +| **PCRE2** | РСгулярныС выраТСния | main (internal) | +| **BLAKE2** | Π₯Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ | main (internal) | +| **SipHash** | Π₯Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ | main (internal) | +| **Lua** | Lua scripting | lua | +| **LuaBridge** | Lua bindings | lua | + +### Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ (систСмныС) + +| Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° | ΠžΠΏΡ†ΠΈΡ | ΠœΠΎΠ΄ΡƒΠ»ΡŒ PIP | +|------------|-------|------------| +| **ICU** | `-DICU=ON` | main (string conversion) | +| **zlib** | `PIP_BUILD_COMPRESS` | compress | +| **libsodium** | `PIP_BUILD_CRYPT` | crypt, io_utils, cloud | +| **libusb** | `PIP_BUILD_USB` | usb | +| **FFTW3** (+ threads) | `PIP_BUILD_FFTW` | fftw | +| **OpenCL** | `PIP_BUILD_OPENCL` | opencl | +| **libmicrohttpd** | `PIP_BUILD_HTTP_SERVER` | http_server | +| **libcurl** | `PIP_BUILD_HTTP_CLIENT` | http_client | + +### ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ (тСсты/докумСнтация) + +| Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ | НазначСниС | +|------------|------------| +| **Google Test** | ВСстированиС (fetched automatically) | +| **Doxygen** | ГСнСрация Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ | + + +### Π‘Ρ…Π΅ΠΌΠ° зависимостСй ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ + +``` +main (core) +β”œβ”€β”€ PCRE2 (встроСн) +β”œβ”€β”€ BLAKE2 (встроСн) +β”œβ”€β”€ SipHash (встроСн) +└── ICU (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) + +console β†’ main +compress β†’ zlib +crypt β†’ libsodium +usb β†’ libusb +fftw β†’ FFTW3 +opencl β†’ OpenCL +io_utils β†’ [crypt, Ссли доступСн] +client_server β†’ io_utils +cloud β†’ io_utils, crypt +lua β†’ Lua (встроСн), LuaBridge (встроСн) +http_server β†’ libmicrohttpd +http_client β†’ libcurl +``` + diff --git a/dependencies.md b/dependencies.md deleted file mode 100644 index 3dd0f8cb..00000000 --- a/dependencies.md +++ /dev/null @@ -1,55 +0,0 @@ -# PIP Dependencies - -## ВстроСнныС (included in 3rd/) - -| Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° | НазначСниС | ΠœΠΎΠ΄ΡƒΠ»ΡŒ PIP | -|------------|------------|------------| -| **PCRE2** | РСгулярныС выраТСния | main (internal) | -| **BLAKE2** | Π₯Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ | main (internal) | -| **SipHash** | Π₯Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ | main (internal) | -| **Lua** | Lua scripting | lua | -| **LuaBridge** | Lua bindings | lua | - -## Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ (систСмныС) - -| Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° | ΠžΠΏΡ†ΠΈΡ | ΠœΠΎΠ΄ΡƒΠ»ΡŒ PIP | -|------------|-------|------------| -| **ICU** | `-DICU=ON` | main (string conversion) | -| **zlib** | `PIP_BUILD_COMPRESS` | compress | -| **libsodium** | `PIP_BUILD_CRYPT` | crypt, io_utils, cloud | -| **libusb** | `PIP_BUILD_USB` | usb | -| **FFTW3** (+ threads) | `PIP_BUILD_FFTW` | fftw | -| **OpenCL** | `PIP_BUILD_OPENCL` | opencl | -| **libmicrohttpd** | `PIP_BUILD_HTTP_SERVER` | http_server | -| **libcurl** | `PIP_BUILD_HTTP_CLIENT` | http_client | - -## ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ (тСсты/докумСнтация) - -| Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ | НазначСниС | -|------------|------------| -| **Google Test** | ВСстированиС (fetched automatically) | -| **Doxygen** | ГСнСрация Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ | - - -## Π‘Ρ…Π΅ΠΌΠ° зависимостСй ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ - -``` -main (core) -β”œβ”€β”€ PCRE2 (встроСн) -β”œβ”€β”€ BLAKE2 (встроСн) -β”œβ”€β”€ SipHash (встроСн) -└── ICU (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) - -console β†’ main -compress β†’ zlib -crypt β†’ libsodium -usb β†’ libusb -fftw β†’ FFTW3 -opencl β†’ OpenCL -io_utils β†’ [crypt, Ссли доступСн] -client_server β†’ io_utils -cloud β†’ io_utils, crypt -lua β†’ Lua (встроСн), LuaBridge (встроСн) -http_server β†’ libmicrohttpd -http_client β†’ libcurl -``` diff --git a/options.md b/options.md deleted file mode 100644 index 74eac7ae..00000000 --- a/options.md +++ /dev/null @@ -1,59 +0,0 @@ -# PIP Build Options - -## ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ сборки - -### Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ (option()) -| ΠžΠΏΡ†ΠΈΡ | ОписаниС | По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ | -|-------|----------|--------------| -| `ICU` | ICU support для ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… страниц | ON (ΠΊΡ€ΠΎΠΌΠ΅ Win/Android/Apple) | -| `STD_IOSTREAM` | ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° std::iostream ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² | OFF | -| `INTROSPECTION` | Π‘Π±ΠΎΡ€ΠΊΠ° с интроспСкциСй | OFF | -| `TESTS` | Π‘Π±ΠΎΡ€ΠΊΠ° тСстов | OFF | -| `COVERAGE` | Π‘Π±ΠΎΡ€ΠΊΠ° с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ | OFF | -| `PIP_FFTW_F` | ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° FFTW для float | ON | -| `PIP_FFTW_L` | ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° FFTW для long double | ON | -| `PIP_FFTW_Q` | ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° FFTW для quad double | OFF | - -### ΠžΠΏΡ†ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (PIP_BUILD_*) -| ΠžΠΏΡ†ΠΈΡ | ΠœΠΎΠ΄ΡƒΠ»ΡŒ | -|-------|--------| -| `PIP_BUILD_CONSOLE` | console | -| `PIP_BUILD_CRYPT` | crypt (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ libsodium) | -| `PIP_BUILD_COMPRESS` | compress (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ zlib) | -| `PIP_BUILD_USB` | usb | -| `PIP_BUILD_FFTW` | fftw | -| `PIP_BUILD_OPENCL` | opencl | -| `PIP_BUILD_IO_UTILS` | io_utils | -| `PIP_BUILD_CLIENT_SERVER` | client_server | -| `PIP_BUILD_CLOUD` | cloud | -| `PIP_BUILD_LUA` | lua | -| `PIP_BUILD_HTTP_CLIENT` | http_client (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ libcurl) | -| `PIP_BUILD_HTTP_SERVER` | http_server (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ libmicrohttpd) | - -### Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ -| ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ | ОписаниС | -|------------|----------| -| `PIP_BUILD_DEBUG` | Π‘Π±ΠΎΡ€ΠΊΠ° debug вСрсии | -| `PIP_FREERTOS` | Π Π΅ΠΆΠΈΠΌ сборки для FreeRTOS | -| `CROSSTOOLS` | Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ инструмСнты кросс-сборки ΠΏΠΎΠ΄ Ρ…ΠΎΡΡ‚ΠΎΠ²ΡƒΡŽ систСму (pip_cmg, pip_rc, ...) | -| `LOCAL` | Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ установка (bin/lib/include) | -| `PIP_CONTAINERS_MIN_ALLOC` | ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π°Π»Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² | -| `PIP_CONTAINERS_MAX_POT_ALLOC` | ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π°Π»Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ X_KiB, X_MiB) | - -### ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования -```bash -# Базовая сборка с тСстами -cmake -B build -DTESTS=ON - -# Π‘Π±ΠΎΡ€ΠΊΠ° с ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ ΠΈ ICU -cmake -B build -DTESTS=ON -DCOVERAGE=ON -DICU=ON - -# ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ -cmake -B build -DPIP_BUILD_CRYPT=OFF -DPIP_BUILD_OPENCL=OFF - -# ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² -cmake -B build -DPIP_CONTAINERS_MIN_ALLOC=64 - -# Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ установка -cmake -B build -DLOCAL=ON -``` diff --git a/plans/doxygen_docs.md b/plans/doxygen_docs.md deleted file mode 100644 index 4954ce57..00000000 --- a/plans/doxygen_docs.md +++ /dev/null @@ -1,113 +0,0 @@ -# План: Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Doxygen Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ PIP - -## ΠžΠ±Π·ΠΎΡ€ - -НСобходимо Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π±Π°Π·ΠΎΠ²ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Doxygen (`\brief`) Π²ΠΎ всС ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ: -- Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π° (`\file`, `\brief`, Π³Ρ€ΡƒΠΏΠΏΠ°) -- Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса (`\class`, `\brief`) -- Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для всСх ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (`\brief`) - -## Π‘Ρ‚ΠΈΠ»ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ - -Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Π²Π° стиля ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² (ΠΎΠ±Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ): -1. `//!` - однострочныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ (ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) -2. `/*! ... */` - многострочныС Π±Π»ΠΎΠΊΠΈ - -## ΠŸΡ€ΠΈΠΌΠ΅Ρ€ оформлСния (Π½Π° основС pipair.h) - -```cpp -//! \addtogroup Containers -//! \{ -//! \file pipair.h -//! \brief -//! \~english Declares \a PIPair -//! \~russian ОбъявлСниС \a PIPair -//! \~\authors -//! \~english Ivan Pelipenko peri4ko@yandex.ru; Andrey Bychkov work.a.b@yandex.ru -//! \~russian Иван ПСлипСнко peri4ko@yandex.ru; АндрСй Π‘Ρ‹Ρ‡ΠΊΠΎΠ² work.a.b@yandex.ru -//! \~\} -/* - ЛицСнзия GPL -*/ - -#ifndef PIPAIR_H -#define PIPAIR_H - -#include "picout.h" - -//! \addtogroup Containers -//! \{ -//! \class PIPair -//! \brief -//! \~english Class template that provides a way to store two heterogeneous objects as a single unit. -//! \~russian Класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π²Π° Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅. -//! \~\} -//! \~\sa \a PIMap -template -class PIPair { -public: - //! \~english Constructs an empty PIPair. - //! \~russian Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ пустой PIPair. - PIPair(): first(), second() {} - - //! \~english Constructs PIPair from values `value0` and `value1`. - //! \~russian Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ PIPair ΠΈΠ· `value0` ΠΈ `value1`. - PIPair(const Type0 & value0, const Type1 & value1) { - first = value0; - second = value1; - } - - //! \~english First element. - //! \~russian ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт. - Type0 first; - - //! \~english Second element. - //! \~russian Π’Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт. - Type1 second; -}; - -//! \~english Compare operator with PIPair. -//! \~russian ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ сравнСния с PIPair. -template -inline bool operator==(const PIPair & value0, const PIPair & value1) { - return (value0.first == value1.first) && (value0.second == value1.second); -} - -#endif // PIPAIR_H -``` - -## Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ для Π°Π³Π΅Π½Ρ‚Π° (Π½Π° ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ») - -1. **ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»** ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ: - - Π“Ρ€ΡƒΠΏΠΏΡƒ модуля (Container, Types, Core, IO, Thread, Math ΠΈ Ρ‚.Π΄.) - - ВсС классы Π² Ρ„Π°ΠΉΠ»Π΅ - - ВсС ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса - - ВсС свободныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (non-member) - -2. **Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π°** (Ссли отсутствуСт): - ```cpp - //! \addtogroup - //! \{ - //! \file - //! \brief - //! \~english Brief description - //! \~russian ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС - //! \~\} - ``` - -3. **Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса**: - ```cpp - //! \class ClassName - //! \brief - //! \~english Class description - //! \~russian ОписаниС класса - ``` - -4. **Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²**: - ```cpp - //! \~english Method description. - //! \~russian ОписаниС ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. - ReturnType methodName(params); - ``` - -5. **ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» компилируСтся** послС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ diff --git a/plans/doxygen_example.md b/plans/doxygen_example.md deleted file mode 100644 index 4c52cdfd..00000000 --- a/plans/doxygen_example.md +++ /dev/null @@ -1,15 +0,0 @@ -ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ элСмСнты Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ - -| Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ | ОписаниС | -|---------|----------| -| //! \~english | ОписаниС Π½Π° английском языкС | -| //! \~russian | ОписаниС Π½Π° русском языкС | -| //! \details | | -| //! \~english | Π”Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ объяснСниС Π½Π° английском языкС | -| //! \~russian | Π”Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ объяснСниС Π½Π° русском языкС | -| //! \note | | -| //! \~english | Π’Π°ΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΎ слоТности/ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π° английском языкС | -| //! \~russian | Π’Π°ΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΎ слоТности/ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π½Π° русском языкС | -| //! \~\sa | Бсылки Π½Π° связанныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ | - -NOTE: НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСкции \param ΠΈ \return diff --git a/plans/pivector2d.md b/plans/pivector2d.md deleted file mode 100644 index 6e9c751a..00000000 --- a/plans/pivector2d.md +++ /dev/null @@ -1,28 +0,0 @@ -# План Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° PIVector2D - -## Π­Ρ‚Π°ΠΏ 1: Π‘Π±ΠΎΡ€ΠΊΠ° - -### 1.1 Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ -- [x] собСри ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΏΡ€ΠΈ нСобходимости ΠΏΠΎΠΏΡ€Π°Π²ΡŒ ошибки - -## Π­Ρ‚Π°ΠΏ 2: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ тСсты - -### 2.1 Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСсты -- [x] Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ: `./build/tests/pip_math_test --gtest_filter="*Vector2D*"` -- [x] Π’ случаС ошибок внСсти ΠΏΡ€Π°Π²ΠΊΠΈ Π² pivector2d.h - ---- - -## Π­Ρ‚Π°ΠΏ 3: Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ PIPair Π½Π° PIVector2DIndex - -### 3.1 Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ структуру PIVector2DIndex -- [x] Π‘ΠΎΠ·Π΄Π°Π½ΠΎ: `struct Index { ssize_t row; ssize_t col; };` - -### 3.2 ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ return types -- [x] indexOf() -> Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Index вмСсто PIPair -- [x] lastIndexOf() -- [x] indexWhere() -- [x] lastIndexWhere() - - ----