peri4
4df907ef10
CMake - add all flags to pip_defs.h
...
Introspection - revert *_p files, because they are external API for introspection, not internal
2026-09-05 23:09:38 +03:00
andrey
331ef49991
refactor: simplify redundant PIP_HAS_* preprocessor guards
...
- drop INTROSPECTION conjunctions (CMake dep table already forces THREADS+SOCKET)
- remove whole-file guards in client_server/process tests (CMake only compiles them when flags are ON)
- normalize single-flag '#if defined(PIP_HAS_X)' to '#ifdef PIP_HAS_X'
2026-08-25 16:57:20 +03:00
andrey
2605446573
refactor: rename __PIP_TYPENAME_DECLARE to PIP_REGISTER_TYPENAME, add PIP_DECLARE_TYPENAME macro
...
- Rename __PIP_TYPENAME_DECLARE to PIP_REGISTER_TYPENAME across all headers
- Add PIP_DECLARE_TYPENAME(name) macro for in-class type name declaration
- Replace all static const char * __pip_typename__() member functions with PIP_DECLARE_TYPENAME
2026-08-24 19:31:41 +03:00
andrey
86a1084ec1
feat: enforce no-RTTI type name registration with static_assert
2026-08-23 08:20:51 +03:00
andrey
8fc2be8dd9
fix: complete PIP_HAS_* flag matrix and restore ESP32/FreeRTOS support
...
- CMake: disable thread/socket-dependent modules (http_client, mqtt_client,
client_server) and fftw when the required feature flags are off;
client_server/cloud no longer tied to the crypt option
- host utils gated on filesystem and the modules they need
- Pico keeps the minimal set; generic FreeRTOS (ESP32) keeps filesystem,
sockets and serial as in master, module set limited to crypt/compress/io_utils
- PICAN, PIBroadcast, PIPackedTCP vanish without socket+threads
- PISerial: restore PISERIAL_NO_PINS (auto-enabled on PIP_EMBEDDED)
- PIFile: FREERTOS uses fopen/stat (no fopen64 in ESP-IDF newlib)
- drop invalid PICout buffer guards, guard PIObject::deleteLater,
remove (void)destroying hack, fake PIHIDevice non-Linux stub and the
redundant PICO_SDK guard in code_model_generator
2026-08-22 19:23:22 +03:00
andrey
858d205fd3
fix: guard PIObject dump diagnostics by PIP_INTROSPECTION and drop PIP_FORCE_NO_PIINTROSPECTION
...
- invert friend block in piobject.h (friends needed when introspection
is enabled) and remove dead friend PIObjectManager
- guard PIObject::dump()/dumpApplication()/dumpApplicationToFile()
declarations and definitions by PIP_INTROSPECTION
(dumpApplicationToFile additionally requires PIP_HAS_FILESYSTEM)
- guard dumpApplicationToFile() call in __sighandler__ by
PIP_INTROSPECTION && PIP_HAS_FILESYSTEM
- replace '#if defined(PIP_INTROSPECTION) && !defined(PIP_FORCE_NO_PIINTROSPECTION)'
with plain '#ifdef PIP_INTROSPECTION' everywhere, remove PIP_FORCE_NO_PIINTROSPECTION
- fix broken PIINTROSPECTION_CONTAINER_ALLOC(T, (as - ...)) in
pideque.h/pivector.h ('as' no longer exists, use new_rsize)
2026-08-22 13:44:58 +03:00
andrey
a94d5d536b
remove spaces
2026-08-12 18:23:48 +03:00
andrey
e2c0445c1b
remove some unused defines
2026-08-12 14:04:49 +03:00
andrey
077ac9887b
refactor: rename PIP_NO_\* to PIP_HAS_\* with inverted logic
...
All feature flags now use positive naming (enabled by default):
- PIP_HAS_FILESYSTEM, PIP_HAS_THREADS, PIP_HAS_SOCKET
- PIP_HAS_PROCESS, PIP_HAS_DYNLIB, PIP_HAS_FFT, PIP_HAS_SERIAL
Preprocessor guards inverted:
- #ifndef PIP_NO_X → #ifdef PIP_HAS_X
- #ifdef PIP_NO_X → #ifndef PIP_HAS_X
CMake options default ON instead of OFF.
Platform blocks set flags OFF to disable features.
85 files transformed via Python script + 2 manual fixes.
2026-08-11 19:51:42 +03:00
andrey
4d8b743075
refactor: migrate MICRO_PIP to fine-grained feature flags
...
Replace monolithic MICRO_PIP/PIP_MICRO with granular flags:
Feature flags (CMake options + platform auto-detection):
- PIP_NO_FILESYSTEM, PIP_NO_THREADS, PIP_NO_SOCKET
- PIP_NO_PROCESS, PIP_NO_DYNLIB, PIP_NO_FFT, PIP_NO_SERIAL
Embedded optimization flag:
- PIP_EMBEDDED (auto-set for Pico SDK and FreeRTOS)
Controls buffer sizes, time stubs, terminal fallback, init stubs
Platform blocks in CMakeLists.txt:
- Pico SDK: auto-disables FS, PROCESS, DYNLIB, FFT, SERIAL;
conditionally disables THREADS (no FreeRTOS) and SOCKET (no LWIP)
- FreeRTOS: auto-disables FS, PROCESS, DYNLIB, FFT, SERIAL;
conditionally disables SOCKET (no LWIP)
- Android: auto-disables PROCESS, DYNLIB, FFT
Updated 96 files across libs/, utils/, tests/, and CMakeLists.txt.
Builds verified for Linux (547 tests pass) and Pico SDK (100%).
Removed all MICRO_PIP and PIP_MICRO references (0 remaining).
2026-08-11 14:34:59 +03:00
peri4
ed13838237
merged AI doc, some new pages
2026-03-12 14:46:57 +03:00
peri4
caa7880cc4
get rid of piForeach
...
apply some code analyzer recommendations
ICU flag now check if libicu exists
prepare for more accurate growth of containers (limited PoT, then constantly increase size)
2024-11-20 20:01:47 +03:00
peri4
35aadb0e78
doc and brush
2023-07-04 13:08:37 +03:00
peri4
3391d88460
version 3.8.2
...
PIObject::Connection::disconnect() now const
PIObject::deleted now public
2023-01-26 23:54:17 +03:00
peri4
c2b8a8d6da
code format
2022-12-14 14:13:52 +03:00
Бычков Андрей
4725eb96d6
replace typedef function ptr by std::function
...
start PIMap refactoring
2022-07-29 15:49:36 +03:00
peri4
a4882dc054
complex macros with ;
2022-07-25 11:18:09 +03:00
peri4
0b3ee4bb6a
doc ru
2022-05-05 22:31:59 +03:00
peri4
2bbdbc3ac9
PIIODevice registration dramatically optimization
2022-04-30 11:21:57 +03:00
peri4
6881fd13b7
PIConstChars
2022-04-29 23:53:07 +03:00
Andrey
8c8553a6af
PIObject Property const char *
2022-04-29 18:17:03 +03:00
peri4
90afc369f0
string brush
2022-04-25 15:29:27 +03:00
peri4
e67a426ff2
doc fix
2022-04-22 21:48:35 +03:00
peri4
6485d81025
piobject metasystem memory and performance optimization
2022-04-22 15:35:25 +03:00
andrey
c90d06871e
PIVector iterator operators
2022-04-06 08:40:25 +03:00
peri4
81b749caa2
doc, pitime.h decomposition
2022-03-25 17:47:41 +03:00
peri4
7a26ae7292
doc ru
2022-03-17 18:13:02 +03:00
peri4
54b5372356
doxygen @ tags replaced to \
2022-03-14 21:19:31 +03:00
Andrey
8296e9a32b
add FreeRTOS support for PIThread PIMutex PIConditionVariable
2022-01-21 14:15:42 +03:00
Andrey
a7df53fbfe
platformio_pre.py
2022-01-14 18:15:56 +03:00
Andrey
48c885e12a
PIThreadNotifier, rewrite PIObject::deleteLater()
...
tests for PIThreadNotifier and PIObject::deleteLater()
2021-10-29 18:20:48 +03:00
peri4
aa76a15f40
version 2.32.0
...
PIObject::Connection struct
2021-10-04 21:50:49 +03:00
Andrey
ca20785b53
revert piDisconnectAll
2021-10-04 15:07:14 +03:00
Andrey
13d0b2f960
remove piDisconnectAll
2021-10-04 15:05:58 +03:00
Andrey
46571ac39f
piDisconnectAll private
2021-10-04 14:18:23 +03:00
andrey
25def958a1
rename doc macros
2021-08-04 16:31:32 +03:00
peri4
4584d9c639
PIObject::deleted now has 1 argument
...
PIIODevice small refactoring
new PIIODevice virtual methods: threadedReadTerminated() and threadedWriteTerminated()
PIIODevice::stop now accept bool "hard" instead of "wait"
PIStreamPacker new features: packet size crypt and aggressive optimization
2021-04-07 22:13:56 +03:00
peri4
c79f39ad2a
cosmetic
2020-10-22 18:03:22 +03:00
peri4
298765b7d8
new class PIVariantSimple
...
PIObject::CONNECTU_QUEUED moved to PIVariantSimple
static_assert on undeclared operators PIByteArray << and >> with complex types
2020-10-01 21:50:41 +03:00
peri4
51c7355af4
version 2.8.0
...
new PIObject::deleteLater method
decompose piobject.h to 2 files
2020-09-18 14:59:24 +03:00
peri4
5f7c58c28e
pip static initializer
2020-09-17 13:51:02 +03:00
peri4
ccd6a9888f
tree changes
2020-08-19 00:47:05 +03:00