diff --git a/uppsrc/Core/src.tpp/Callbacks$en-us.tpp b/uppsrc/Core/src.tpp/Callbacks$en-us.tpp index a1e3bf2a6..70008a0ca 100644 --- a/uppsrc/Core/src.tpp/Callbacks$en-us.tpp +++ b/uppsrc/Core/src.tpp/Callbacks$en-us.tpp @@ -11,6 +11,8 @@ topic "Callbacks"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US [ {{10000@(113.42.0) [s0; [*@7;4 Callbacks]]}}&] +[s9; [/ Note: Callbacks are now deprecated. Use Function/Event/Gate +instead!]&] [s9; Callbacks can be described as a very generalized form of function pointers. Each Callback represents some kind of action (usually calling a certain function or a certain object method) that can diff --git a/uppsrc/Core/src.tpp/FindFile$en-us.tpp b/uppsrc/Core/src.tpp/FindFile$en-us.tpp index 24fd2a692..994a9455b 100644 --- a/uppsrc/Core/src.tpp/FindFile$en-us.tpp +++ b/uppsrc/Core/src.tpp/FindFile$en-us.tpp @@ -9,174 +9,173 @@ topic "FindFile"; [l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param] [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] -[{_} -[ {{10000@(113.42.0) [s0;%% [*@7;4 FindFile]]}}&] -[s3; &] -[s1;:FindFile`:`:class: [@(0.0.255)3 class][3 _][*3 FindFile]&] -[s9;%% This class serves as platform independent encapsulation of -directory enumeration.&] -[s3; &] -[s0; &] -[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s3; &] -[s5;:FindFile`:`:Search`(const char`*`): [@(0.0.255) bool]_[* Search]([@(0.0.255) const]_[@(0.0.255) c -har]_`*[*@3 path])&] -[s2;%% Starts a new listing. [%-*@3 path] can contain wildcards (`'`*`', +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@7;4 FindFile]]}}&] +[s3;%- &] +[s1;:FindFile`:`:class:%- [@(0.0.255)3 class][3 _][*3 FindFile]&] +[s9; This class serves as platform independent encapsulation of directory +enumeration.&] +[s0;%- &] +[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] +[s3;%- &] +[s5;:FindFile`:`:Search`(const char`*`):%- [@(0.0.255) bool]_[* Search]([@(0.0.255) const]_ +[@(0.0.255) char]_`*[*@3 path])&] +[s2; Starts a new listing. [%-*@3 path] can contain wildcards (`'`*`', `'?`') to list more than single file. Returns true if first file is found. Wildcard pattern follows Windows conventions, `*.`* matches all files, even those without extension.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:Next`(`): [@(0.0.255) bool]_[* Next]()&] -[s2;%% Attemts to iterate to the next file, returns true if successful.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:GetAttributes`(`)const: [_^dword^ dword]_[* GetAttributes]()_[@(0.0.255) c -onst]&] -[s6; `[Win32`]&] -[s2;%% Returns win32 attributes of file.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:GetName`(`)const: [_^String^ String]_[* GetName]()_[@(0.0.255) const]&] -[s2;%% Returns the name of current directory entry.&] -[s3;%% &] -[s4; &] -[s5;:FindFile`:`:GetPath`(`)const: [_^String^ String]_[* GetPath]()_[@(0.0.255) const]&] -[s2;%% Returns the full path of current directory entry.&] [s3; &] -[s4;%% &] -[s5;:FindFile`:`:GetLength`(`)const: [_^int64^ int64]_[* GetLength]()_[@(0.0.255) const]&] -[s2;%% Returns the length of current file. Undefined if current directory +[s4; &] +[s5;:FindFile`:`:Next`(`):%- [@(0.0.255) bool]_[* Next]()&] +[s2; Attemts to iterate to the next file, returns true if successful.&] +[s3; &] +[s4; &] +[s5;:FindFile`:`:GetAttributes`(`)const:%- [_^dword^ dword]_[* GetAttributes]()_[@(0.0.255) c +onst]&] +[s6;%- `[Win32`]&] +[s2; Returns win32 attributes of file.&] +[s3; &] +[s4; &] +[s5;:FindFile`:`:GetName`(`)const:%- [_^String^ String]_[* GetName]()_[@(0.0.255) const]&] +[s2; Returns the name of current directory entry.&] +[s3; &] +[s4;%- &] +[s5;:FindFile`:`:GetPath`(`)const:%- [_^String^ String]_[* GetPath]()_[@(0.0.255) const]&] +[s2; Returns the full path of current directory entry.&] +[s3;%- &] +[s4; &] +[s5;:FindFile`:`:GetLength`(`)const:%- [_^int64^ int64]_[* GetLength]()_[@(0.0.255) const]&] +[s2; Returns the length of current file. Undefined if current directory entry is not file.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:GetCreationTime`(`)const: [_^FileTime^ FileTime]_[* GetCreationTime]()_[@(0.0.255) c -onst]&] -[s6;%% `[Win32`]&] -[s2;%% Returns Win32 creation time. Does not work with all filesystems.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:GetLastAccessTime`(`)const: [_^FileTime^ FileTime]_[* GetLastAccessTime]( -)_[@(0.0.255) const]&] -[s2;%% Returns the last time the entry was accessed. Does not work -with all filesystems.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:GetLastWriteTime`(`)const: [_^FileTime^ FileTime]_[* GetLastWriteTime]() +[s3; &] +[s4; &] +[s5;:FindFile`:`:GetCreationTime`(`)const:%- [_^FileTime^ FileTime]_[* GetCreationTime]() _[@(0.0.255) const]&] -[s2;%% Returns the last time the entry was modified. Always works.&] -[s3;%% &] -[s4; &] -[s5;:FindFile`:`:GetLastChangeTime`(`)const: uid`_t_[* GetUid]()&] -[s6;%% `[POSIX`]&] -[s2;%% Returns user ID of file.&] +[s6; `[Win32`]&] +[s2; Returns Win32 creation time. Does not work with all filesystems.&] [s3; &] [s4; &] -[s5;:FindFile`:`:GetLastChangeTime`(`)const: gid`_t_[* GetGid]()&] -[s6;%% `[POSIX`]&] -[s2;%% Returns group ID of file.&] +[s5;:FindFile`:`:GetLastAccessTime`(`)const:%- [_^FileTime^ FileTime]_[* GetLastAccessTim +e]()_[@(0.0.255) const]&] +[s2; Returns the last time the entry was accessed. Does not work +with all filesystems.&] [s3; &] [s4; &] -[s5;:FindFile`:`:GetLastChangeTime`(`)const: [@(0.0.255) bool]_[* CanRead]()_[@(0.0.255) co -nst]&] -[s6;%% `[POSIX`]&] -[s2;%% Returns true if current user can read the file.&] -[s3; &] -[s4; &] -[s5;:FindFile`:`:GetLastChangeTime`(`)const: [@(0.0.255) bool]_[* CanWrite]()_[@(0.0.255) c -onst]&] -[s6;%% `[POSIX`]&] -[s2;%% Returns true if current user can write the file.&] -[s3; &] -[s4; &] -[s5;:FindFile`:`:GetLastChangeTime`(`)const: [@(0.0.255) bool]_[* CanExecute]()_[@(0.0.255) c -onst]&] -[s6;%% `[POSIX`]&] -[s2;%% Returns true if current user can execute the file.&] -[s3; &] -[s4;%% &] -[s5;:FindFile`:`:GetLastChangeTime`(`)const: [_^FileTime^ FileTime]_[* GetLastChangeTime]( +[s5;:FindFile`:`:GetLastWriteTime`(`)const:%- [_^FileTime^ FileTime]_[* GetLastWriteTime]( )_[@(0.0.255) const]&] -[s6;%% `[POSIX`]&] -[s2;%% Returns the last change time (st`_ctime member of stat structure).&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:IsDirectory`(`)const: [@(0.0.255) bool]_[* IsDirectory]()_[@(0.0.255) cons -t]&] -[s2;%% Returns true if entry is a directory. Note that FindFile returns +[s2; Returns the last time the entry was modified. Always works.&] +[s3; &] +[s4;%- &] +[s5;:FindFile`:`:GetLastChangeTime`(`)const:%- uid`_t_[* GetUid]()&] +[s6; `[POSIX`]&] +[s2; Returns user ID of file.&] +[s3;%- &] +[s4;%- &] +[s5;:FindFile`:`:GetLastChangeTime`(`)const:%- gid`_t_[* GetGid]()&] +[s6; `[POSIX`]&] +[s2; Returns group ID of file.&] +[s3;%- &] +[s4;%- &] +[s5;:FindFile`:`:GetLastChangeTime`(`)const:%- [@(0.0.255) bool]_[* CanRead]()_[@(0.0.255) c +onst]&] +[s6; `[POSIX`]&] +[s2; Returns true if current user can read the file.&] +[s3;%- &] +[s4;%- &] +[s5;:FindFile`:`:GetLastChangeTime`(`)const:%- [@(0.0.255) bool]_[* CanWrite]()_[@(0.0.255) c +onst]&] +[s6; `[POSIX`]&] +[s2; Returns true if current user can write the file.&] +[s3;%- &] +[s4;%- &] +[s5;:FindFile`:`:GetLastChangeTime`(`)const:%- [@(0.0.255) bool]_[* CanExecute]()_[@(0.0.255) c +onst]&] +[s6; `[POSIX`]&] +[s2; Returns true if current user can execute the file.&] +[s3;%- &] +[s4; &] +[s5;:FindFile`:`:GetLastChangeTime`(`)const:%- [_^FileTime^ FileTime]_[* GetLastChangeTim +e]()_[@(0.0.255) const]&] +[s6; `[POSIX`]&] +[s2; Returns the last change time (st`_ctime member of stat structure).&] +[s3; &] +[s4; &] +[s5;:FindFile`:`:IsDirectory`(`)const:%- [@(0.0.255) bool]_[* IsDirectory]()_[@(0.0.255) co +nst]&] +[s2; Returns true if entry is a directory. Note that FindFile returns `'..`' and `'.`' pseudo`-directories in the listing (on both platforms), these return true as well.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:IsFolder`(`)const: [@(0.0.255) bool]_[* IsFolder]()_[@(0.0.255) const]&] -[s2;%% Returns true if entry is a directory, but [* not] `'..`' nor -`'.`'.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:IsFile`(`)const: [@(0.0.255) bool]_[* IsFile]()_[@(0.0.255) const]&] -[s2;%% Returns true if entry is a file.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:IsArchive`(`)const: [@(0.0.255) bool]_[* IsArchive]()_[@(0.0.255) const]&] -[s6;%% `[Win32`]&] -[s2;%% Returns true if entry has archive flag set.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:IsCompressed`(`)const: [@(0.0.255) bool]_[* IsCompressed]()_[@(0.0.255) co -nst]&] -[s6;%% `[Win32`]&] -[s2;%% Returns true if entry has compressed flag set.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:IsHidden`(`)const: [@(0.0.255) bool]_[* IsHidden]()_[@(0.0.255) const]&] -[s2;%% Returns true if entry has hidden flag set in Win32 or starts -with `'.`' in POSIX.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:IsReadOnly`(`)const: [@(0.0.255) bool]_[* IsReadOnly]()_[@(0.0.255) const]&] -[s2;%% Returns true if entry is read only (in current user context).&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:IsSystem`(`)const: [@(0.0.255) bool]_[* IsSystem]()_[@(0.0.255) const]&] -[s6;%% `[Win32`]&] -[s2;%% Returns true if entry has system flag set.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:IsTemporary`(`)const: [@(0.0.255) bool]_[* IsTemporary]()_[@(0.0.255) cons -t]&] -[s6;%% `[Win32`]&] -[s2;%% Returns true if entry has system flag set.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:IsSymLink`(`)const: [@(0.0.255) bool]_[* IsSymLink]()_[@(0.0.255) const]&] -[s2;%% POSIX: Returns true if entry is POSIX symlink. Win32: Returns -true if entry is Shell link file (.lnk with proper content).&] -[s3;%% &] -[s4; &] -[s5;:FindFile`:`:IsExecutable`(`)const: [@(0.0.255) bool]_[* IsExecutable]()_[@(0.0.255) co -nst]&] -[s2;%% Returns true if target file is executable binary.&] [s3; &] -[s4;%% &] -[s5;:FindFile`:`:GetMode`(`)const: [_^dword^ dword]_[* GetMode]()_[@(0.0.255) const]&] -[s6;%% `[POSIX`]&] -[s2;%% Returns UNIX access mode.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:operator bool`(`)const: [* operator_bool]()_[@(0.0.255) const]&] -[s2;%% Returns true if there is current entry in FindFile (if false, +[s4; &] +[s5;:FindFile`:`:IsFolder`(`)const:%- [@(0.0.255) bool]_[* IsFolder]()_[@(0.0.255) const]&] +[s2; Returns true if entry is a directory, but [* not] `'..`' nor `'.`'.&] +[s3; &] +[s4; &] +[s5;:FindFile`:`:IsFile`(`)const:%- [@(0.0.255) bool]_[* IsFile]()_[@(0.0.255) const]&] +[s2; Returns true if entry is a file.&] +[s3; &] +[s4; &] +[s5;:FindFile`:`:IsArchive`(`)const:%- [@(0.0.255) bool]_[* IsArchive]()_[@(0.0.255) const]&] +[s6; `[Win32`]&] +[s2; Returns true if entry has archive flag set.&] +[s3; &] +[s4; &] +[s5;:FindFile`:`:IsCompressed`(`)const:%- [@(0.0.255) bool]_[* IsCompressed]()_[@(0.0.255) c +onst]&] +[s6; `[Win32`]&] +[s2; Returns true if entry has compressed flag set.&] +[s3; &] +[s4; &] +[s5;:FindFile`:`:IsHidden`(`)const:%- [@(0.0.255) bool]_[* IsHidden]()_[@(0.0.255) const]&] +[s2; Returns true if entry has hidden flag set in Win32 or starts +with `'.`' in POSIX.&] +[s3; &] +[s4; &] +[s5;:FindFile`:`:IsReadOnly`(`)const:%- [@(0.0.255) bool]_[* IsReadOnly]()_[@(0.0.255) cons +t]&] +[s2; Returns true if entry is read only (in current user context).&] +[s3; &] +[s4; &] +[s5;:FindFile`:`:IsSystem`(`)const:%- [@(0.0.255) bool]_[* IsSystem]()_[@(0.0.255) const]&] +[s6; `[Win32`]&] +[s2; Returns true if entry has system flag set.&] +[s3; &] +[s4; &] +[s5;:FindFile`:`:IsTemporary`(`)const:%- [@(0.0.255) bool]_[* IsTemporary]()_[@(0.0.255) co +nst]&] +[s6; `[Win32`]&] +[s2; Returns true if entry has system flag set.&] +[s3; &] +[s4; &] +[s5;:FindFile`:`:IsSymLink`(`)const:%- [@(0.0.255) bool]_[* IsSymLink]()_[@(0.0.255) const]&] +[s2; POSIX: Returns true if entry is POSIX symlink. Win32: Returns +true if entry is Shell link file (.lnk with proper content).&] +[s3; &] +[s4;%- &] +[s5;:FindFile`:`:IsExecutable`(`)const:%- [@(0.0.255) bool]_[* IsExecutable]()_[@(0.0.255) c +onst]&] +[s2; Returns true if target file is executable binary.&] +[s3;%- &] +[s4; &] +[s5;:FindFile`:`:GetMode`(`)const:%- [_^dword^ dword]_[* GetMode]()_[@(0.0.255) const]&] +[s6; `[POSIX`]&] +[s2; Returns UNIX access mode.&] +[s3; &] +[s4; &] +[s5;:FindFile`:`:operator bool`(`)const:%- [* operator_bool]()_[@(0.0.255) const]&] +[s2; Returns true if there is current entry in FindFile (if false, all entry information methods have undefined behaviour). Usually, this is used as condition to the loop that enumerates directory.&] -[s3;%% &] -[s0;%% &] -[ {{10000F(128)G(128)@1 [s0;%% [* Constructor detail]]}}&] -[s3;%% &] -[s5;:FindFile`:`:FindFile`(`): [* FindFile]()&] -[s2;%% Initializes to empty state.&] -[s3;%% &] -[s4;%% &] -[s5;:FindFile`:`:FindFile`(const char`*`): [* FindFile]([@(0.0.255) const]_[@(0.0.255) char -]_`*[*@3 name])&] -[s2;%% Initializes and performs Search([%-*@3 name]).&] -[s3;%% &] -[s0;%% ]] \ No newline at end of file +[s3; &] +[s0; &] +[ {{10000F(128)G(128)@1 [s0; [* Constructor detail]]}}&] +[s3; &] +[s5;:FindFile`:`:FindFile`(`):%- [* FindFile]()&] +[s2; Initializes to empty state.&] +[s3; &] +[s4; &] +[s5;:FindFile`:`:FindFile`(const char`*`):%- [* FindFile]([@(0.0.255) const]_[@(0.0.255) ch +ar]_`*[*@3 name])&] +[s2; Initializes and performs Search([%-*@3 name]).&] +[s3; &] +[s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Format$en-us.tpp b/uppsrc/Core/src.tpp/Format$en-us.tpp index 13ad18d5a..bf23133d7 100644 --- a/uppsrc/Core/src.tpp/Format$en-us.tpp +++ b/uppsrc/Core/src.tpp/Format$en-us.tpp @@ -10,8 +10,8 @@ topic "Format - text formatting"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0; [*@3;4 Format `- text formatting]&] -[s0;*+117 &] +[ {{10000@(113.42.0) [s0; [*@2;4 Format `- text formatting]]}}&] +[s0;*@3;4 &] [s5;:`:`:Format`(const char`*`,const`:`:Vector`<`:`:Value`>`&`):%- [^`:`:String^ String ]_[* Format][@(64) (][@(0.0.255) const][@(64) _][@(0.0.255) char][@(64) _`*][*@3 format][@(64) , ][@(0.0.255) const][@(64) _][^`:`:Vector^@(64) Vector][@(64) <][^`:`:Value^@(64) Value][@(64) > diff --git a/uppsrc/Core/src.tpp/Function$en-us.tpp b/uppsrc/Core/src.tpp/Function$en-us.tpp index 32656697d..b2c569283 100644 --- a/uppsrc/Core/src.tpp/Function$en-us.tpp +++ b/uppsrc/Core/src.tpp/Function$en-us.tpp @@ -1,4 +1,4 @@ -topic ""; +topic "Function"; [2 $$0,0#00000000000000000000000000000000:Default] [i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] [l288;2 $$2,2#27521748481378242620020725143825:desc] diff --git a/uppsrc/Core/src.tpp/Huge$en-us.tpp b/uppsrc/Core/src.tpp/Huge$en-us.tpp index dfc5cb1ff..8884a7168 100644 --- a/uppsrc/Core/src.tpp/Huge$en-us.tpp +++ b/uppsrc/Core/src.tpp/Huge$en-us.tpp @@ -1,4 +1,4 @@ -topic ""; +topic "Huge"; [2 $$0,0#00000000000000000000000000000000:Default] [i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] [l288;2 $$2,2#27521748481378242620020725143825:desc] @@ -10,7 +10,7 @@ topic ""; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 Title]]}}&] +[ {{10000@(113.42.0) [s0; [*@7;4 Huge]]}}&] [s3;%- &] [s1;:Upp`:`:Huge`:`:class:%- [@(0.0.255)3 class][3 _][*3 Huge]&] [s2; This class is intended for dealing of raw binary data bigger @@ -98,5 +98,4 @@ onst]&] [s5;:Upp`:`:Huge`:`:Get`(`)const:%- [_^Upp`:`:String^ String]_[* Get]()_[@(0.0.255) const]&] [s2; Returns data as String. There must be less than 2GB of data or operation fails with Panic.&] -[s3;%- &] -[s0; ]] \ No newline at end of file +[s3;%- ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/Id$en-us.tpp b/uppsrc/Core/src.tpp/Id$en-us.tpp index 10c48a933..6605f7007 100644 --- a/uppsrc/Core/src.tpp/Id$en-us.tpp +++ b/uppsrc/Core/src.tpp/Id$en-us.tpp @@ -21,8 +21,7 @@ is required.&] [s3; &] [s0;i448;a25;kKO9;@(0.0.255) &] [ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&] -[s0; &] -[s4; &] +[s3; &] [s5;:Id`:`:ToString`(`)const: [@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[* ToStrin g]()_[@(0.0.255) const]&] [s2;%% Returns contained text.&] diff --git a/uppsrc/Core/src.tpp/Mt$en-us.tpp b/uppsrc/Core/src.tpp/Mt$en-us.tpp index 3be8fe533..a18c2adc1 100644 --- a/uppsrc/Core/src.tpp/Mt$en-us.tpp +++ b/uppsrc/Core/src.tpp/Mt$en-us.tpp @@ -10,73 +10,72 @@ topic "Thread synchronization primitives"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [*C1 $$10,10#39751211140134154172026758035355:code] -[{_} -[s0;%% [*@3;4 Thread synchronization primitives]&] +[{_}%EN-US +[ {{10000@(113.42.0) [s0; [*@2;4 Thread synchronization primitives]]}}&] [s3; &] -[s0; &] -[ {{10000t/25b/25@1 [s0; [* Function List]]}}&] -[s3; &] -[s5;:AssertST`(`): [@(0.0.255) void]_[* AssertST]()&] -[s2;%% This operation only has effect in DEBUG mode. If any Thread +[ {{10000t/25b/25@1 [s0;%- [* Function List]]}}&] +[s3;%- &] +[s5;:AssertST`(`):%- [@(0.0.255) void]_[* AssertST]()&] +[s2; This operation only has effect in DEBUG mode. If any Thread was started prior to calling AssertST, it will stop the execution with diagnostic message. The purpose is that some global initialization routines are best performed before any multi`-threading starts. AssertST can be used to assure this as runtime check.&] -[s3;%% &] -[s4; &] -[s5;:Atomic`:`:typedef: [@(0.0.255) typedef]_[/ integer`_type]_[* Atomic]&] -[s2;%% This is the integer type that can be used as argument of AtomicInc/AtomicDec +[s3; &] +[s4;%- &] +[s5;:Atomic`:`:typedef:%- [@(0.0.255) typedef]_[/ integer`_type]_[* Atomic]&] +[s2; This is the integer type that can be used as argument of AtomicInc/AtomicDec function. It is compatible with `'int`' `- it has the same value range and it can be converted to `'int`'. Since C`+`+11, it is in fact implemented using std`::atomic and kept only because of backward compatibility.&] +[s3;%- &] +[s4;%- &] +[s5;:AtomicInc`(volatile Atomic`&`):%- [@(0.0.255) int]_[* AtomicInc]([@(0.0.255) volatile]_ +[_^Atomic^ Atomic][@(0.0.255) `&]_[*@3 t])&] +[s2; Increments t by one and returns the result (`"`+`+t`").&] [s3; &] -[s4; &] -[s5;:AtomicInc`(volatile Atomic`&`): [@(0.0.255) int]_[* AtomicInc]([@(0.0.255) volatile]_[_^Atomic^ A -tomic][@(0.0.255) `&]_[*@3 t])&] -[s2;%% Increments t by one and returns the result (`"`+`+t`").&] -[s3;%% &] -[s4; &] -[s5;:AtomicDec`(volatile Atomic`&`): [@(0.0.255) int]_[* AtomicDec]([@(0.0.255) volatile]_[_^Atomic^ A -tomic][@(0.0.255) `&]_[*@3 t])&] -[s2;%% Decrements t by one and returns the result (`"`-`-t`").&] -[s3; &] -[s0; &] -[ {{10000t/25b/25@1 [s0; [* Macro List]]}}&] -[s3; &] -[s5;:INTERLOCKED: [* INTERLOCKED]&] -[s2;%% This macro adds static Mutex to the block. For example:&] -[s2;%% [C1 -|-|INTERLOCKED `{]&] -[s2;%% [C1 -|-|-|Foo();]&] -[s2;%% [C1 -|-|`}]&] -[s2;%% -|is equivalent to&] -[s2;%% [C1 -|-|`{-|static Mutex ][/C1 uniquename][C1 ;]&] -[s2;%% [C1 -|-|-|][/C1 uniquename][C1 .Enter();]&] -[s2;%% [C1 -|-|-|Foo();]&] -[s2;%% [C1 -|-|-|][/C1 uniquename][C1 .Leave();]&] -[s2;%% [C1 -|-|`}]&] -[s3; &] -[s4; &] -[s5;:INTERLOCKED`_`(cs`): [* INTERLOCKED`_]([*@3 cs])&] -[s2;%% Similar to INTERLOCKED, but instead of `'anonymous`' implicit +[s4;%- &] +[s5;:AtomicDec`(volatile Atomic`&`):%- [@(0.0.255) int]_[* AtomicDec]([@(0.0.255) volatile]_ +[_^Atomic^ Atomic][@(0.0.255) `&]_[*@3 t])&] +[s2; Decrements t by one and returns the result (`"`-`-t`").&] +[s3;%- &] +[s0;%- &] +[ {{10000t/25b/25@1 [s0;%- [* Macro List]]}}&] +[s3;%- &] +[s5;:INTERLOCKED:%- [* INTERLOCKED]&] +[s2; This macro adds static Mutex to the block. For example:&] +[s2; [C1 -|-|INTERLOCKED `{]&] +[s2; [C1 -|-|-|Foo();]&] +[s2; [C1 -|-|`}]&] +[s2; -|is equivalent to&] +[s2; [C1 -|-|`{-|static Mutex ][/C1 uniquename][C1 ;]&] +[s2; [C1 -|-|-|][/C1 uniquename][C1 .Enter();]&] +[s2; [C1 -|-|-|Foo();]&] +[s2; [C1 -|-|-|][/C1 uniquename][C1 .Leave();]&] +[s2; [C1 -|-|`}]&] +[s3;%- &] +[s4;%- &] +[s5;:INTERLOCKED`_`(cs`):%- [* INTERLOCKED`_]([*@3 cs])&] +[s2; Similar to INTERLOCKED, but instead of `'anonymous`' implicit static Mutex it uses explicit Mutex [%-*@3 cs].&] -[s3; &] -[s4; &] -[s5;:ONCELOCK: [* ONCELOCK]&] -[s2;%% Designates block that only gets performed at first run, taking +[s3;%- &] +[s4;%- &] +[s5;:ONCELOCK:%- [* ONCELOCK]&] +[s2; Designates block that only gets performed at first run, taking into account all multi`-threading issues. In single threaded environment&] -[s2;%% -|-|[C1 ONCELOCK `{ Foo(); `}]&] -[s2;%% -|is equivalent to&] -[s2;%% [C1 -|-|`{ static bool x; if(!x) `{ x `= true; Foo(); `} `}.]&] -[s3;%% &] -[s4; &] -[s5;:ONCELOCK`_`(o`_b`_`): [* ONCELOCK`_](o`_b`_)&] -[s2;%% Similar to oncelock, but allows associating a flag variable, +[s2; -|-|[C1 ONCELOCK `{ Foo(); `}]&] +[s2; -|is equivalent to&] +[s2; [C1 -|-|`{ static bool x; if(!x) `{ x `= true; Foo(); `} `}.]&] +[s3; &] +[s4;%- &] +[s5;:ONCELOCK`_`(o`_b`_`):%- [* ONCELOCK`_](o`_b`_)&] +[s2; Similar to oncelock, but allows associating a flag variable, which must be of type OnceFlag. Such variable has to initialized to zero (preferably by static zero initialization of memory). On the first run of for specific OnceFlag, ONCELOCK`_ performs the block (and changes the variable so that it is not performed on the next run).&] -[s3; &] -[s0; ]] \ No newline at end of file +[s3;%- &] +[s0;%- ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/PtePtr$en-us.tpp b/uppsrc/Core/src.tpp/PtePtr$en-us.tpp index b21cde72c..908e41dd9 100644 --- a/uppsrc/Core/src.tpp/PtePtr$en-us.tpp +++ b/uppsrc/Core/src.tpp/PtePtr$en-us.tpp @@ -23,8 +23,6 @@ class bases, with the derived class as its parameter, e.g.:&] [s0; [C+75 struct Foo : Pte `{....]&] [s3; &] [s0; &] -[s0; &] -[s0; &] [ {{10000@(113.42.0) [s0; [*@7;4 Pte]]}}&] [s3;%- &] [s1;:noref:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]&] @@ -38,8 +36,6 @@ pointed object. &] teBase]&] [s3; &] [s0;%- &] -[s0;%- &] -[s0;%- &] [ {{10000@(113.42.0) [s0; [*@7;4 Ptr and Pte]]}}&] [s3;%- &] [s1;:noref:%- [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 T][@(0.0.255) >]&] @@ -122,4 +118,4 @@ tr][@(64) `&_][@3 a][@(64) , ][@(0.0.255) const][@(64) _][^`:`:Ptr^@(64) Ptr][@( ]&] [s2; Comparison operators.&] [s3; &] -[s0; ] \ No newline at end of file +[s0; ]] \ No newline at end of file diff --git a/uppsrc/Core/src.tpp/SerializationUtils$en-us.tpp b/uppsrc/Core/src.tpp/SerializationUtils$en-us.tpp index 5eb042737..a7e748443 100644 --- a/uppsrc/Core/src.tpp/SerializationUtils$en-us.tpp +++ b/uppsrc/Core/src.tpp/SerializationUtils$en-us.tpp @@ -10,8 +10,8 @@ topic "Serialization utilities"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[s0; [*@3;4 Serialization utilities]&] -[s0;3%- &] +[ {{10000@(113.42.0) [s0; [*@2;4 Serialization utilities]]}}&] +[s0;*@3;4 &] [ {{10000t/25b/25@1 [s0;%- [* Function List]]}}&] [s0;0%- &] [s5;:Pack16`(Stream`&`,int`&`):%- [_^Stream^ Stream][@(0.0.255) `&]_[* Pack16]([_^Stream^ Str diff --git a/uppsrc/Core/src.tpp/StreamFn$en-us.tpp b/uppsrc/Core/src.tpp/StreamFn$en-us.tpp index 17aff8433..f01c4a13b 100644 --- a/uppsrc/Core/src.tpp/StreamFn$en-us.tpp +++ b/uppsrc/Core/src.tpp/StreamFn$en-us.tpp @@ -10,8 +10,8 @@ topic "Stream utilities"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} -[s0;%% [5 Stream helpers]&] -[s0;3 &] +[ {{10000@(113.42.0) [s0;%% [*@2;4 Stream helpers]]}}&] +[s0;%% &] [ {{10000t/25b/25@1 [s0; [* Function List]]}}&] [s3; &] [s5;:LoadStream`(Stream`&`): [_^String^ String]_[* LoadStream]([_^Stream^ Stream][@(0.0.255) `& diff --git a/uppsrc/Core/src.tpp/Utf$en-us.tpp b/uppsrc/Core/src.tpp/Utf$en-us.tpp index d7c8d468e..edbbeacc5 100644 --- a/uppsrc/Core/src.tpp/Utf$en-us.tpp +++ b/uppsrc/Core/src.tpp/Utf$en-us.tpp @@ -1,4 +1,4 @@ -topic ""; +topic "Unicode UTF[8,16,32] support"; [2 $$0,0#00000000000000000000000000000000:Default] [i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class] [l288;2 $$2,2#27521748481378242620020725143825:desc] diff --git a/uppsrc/Core/src.tpp/ValueMap$en-us.tpp b/uppsrc/Core/src.tpp/ValueMap$en-us.tpp index 4f8c393e5..ba76f3fb1 100644 --- a/uppsrc/Core/src.tpp/ValueMap$en-us.tpp +++ b/uppsrc/Core/src.tpp/ValueMap$en-us.tpp @@ -10,8 +10,8 @@ topic "ValueMap"; [i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam] [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_}%EN-US -[ {{10000@(113.42.0) [s0; [*@7;4 Title]]}}&] -[s1;@(0.0.255)3%- &] +[ {{10000@(113.42.0) [s0; [*@7;4 ValueMap]]}}&] +[s3;%- &] [s1;:ValueMap`:`:class:%- [@(0.0.255)3 class][3 _][*3 ValueMap]&] [s2; ValueMap is a map of key`-value pairs, where both key and value are of Value type. Key has to be rich Value type with operator`=`= @@ -34,7 +34,6 @@ elements with corresponding indices.&] ValueArray elements contained in Value with text keys (if Value does not contain ValueMap or requested key, Void Value is returned).&] [s2; &] -[s3;%- &] [ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&] [s3;%- &] [s5;:ValueMap`:`:ValueMap`(`):%- [* ValueMap]()&] diff --git a/uppsrc/Core/src.tpp/XmlIO$en-us.tpp b/uppsrc/Core/src.tpp/XmlIO$en-us.tpp index a611c6ac4..819a737c2 100644 --- a/uppsrc/Core/src.tpp/XmlIO$en-us.tpp +++ b/uppsrc/Core/src.tpp/XmlIO$en-us.tpp @@ -11,7 +11,7 @@ topic "XmlIO"; [b42;2 $$9,9#13035079074754324216151401829390:normal] [{_} [ {{10000@(113.42.0) [s0;%% [*@7;4 XmlIO and Xmlize framework]]}}&] -[s1;@(0.0.255)3 &] +[s3; &] [s1;:XmlIO`:`:class: [@(0.0.255)3 class][3 _][*3 XmlIO]&] [s2;%% XmlIO represents a single XmlNode in Jsonize framework. It is used as parameter for Xmlize and XmlAttrLoad/XmlAttrStore