Description: rtl-objpas

This file as text.
(active) Revisions in this set:
1c3b41eb543d85cd8497c89942062ca54430d489,8b89a5cc5109c15a716a1826096258caf8b36997,e65b822a0c2a0d0dbe11ae3766dc9876accdbf28
bc46d8f33a4caacf63a81a8b4bba8afa0ed4ab5c,e95572921a85a84f64ce4864544d549ad0ef5b50,00f4aeb39b84e5a291310697064904d10e6d0313
acaa4660fb7162c7e76d09c93e759cf384492bdb,42b10196f16592cfabc4284ada2e8c3e78b44015,885a265edbe6cfe3a784b95899ccc988b69d8cac
9b783281753a1b7b76feb9b9fad04975bc7ac109,15e7dd3d9f5d94136f00c29235f9ffbcb8a5650c,5307ef07c43b0c3005f7d2a2da89b58cd2690993
557a324473694e56ffd934e2f9342ce64cd9b50d,74c995c06b7759bf741954b2e51ece96b9847f75,b0fd2615194fa74e8b4de328974c9834e6ca06a4
dba81381756d73ff6bc9493bf5e6b15197d0118b,50344403834db619bdbf15f42ef88bce903d0692,2cec31d86f232e5c47fbe20dfd115d8caf2e5ba5
2ff4fb0e151d84186b0abfe7692cb44fa195dfc0,121f6fce223c975f5ec2d48cad8e40ae9c47cc1f,09b0ca01ccf02d311c1a2223ac8c1c80ea16e78d
ba6696d9eda7872b99b9a3b3060545aa7e31051c,7589bb39b86dcb8ff1bd7a3bb4d836659062bf60,074cb3bcf4dd05140984e8f0ff1b42a2caed1ca3
54bb95da81571e745d02770318ceba5fecf4e0d2,d1432b73029b43b6f1a4746782e76c04ea75ac4a,c2176d27eaaeb68e6dc8c2a6a06cb76df6d91876
492717a25c7f4dd0a1f4f7dc98fb2697a38e6b2f,85494cdb1d831c5b0a3053bc4f9268d10ade1295,9fe350bd91c0293c794a5c46e3211d29fb0e2727
7f94fb2a65a1b9b68fa1be9ce53b2e28098ac270,b5a0c3b1b6be6538d7111f2863e4575cd32da662,d3b14eb1ba8dc3b5f2ca1dd47db1faf79cffd2c3
149db318a0c4a4acff4fe5a23d43dd66e7704017,23dd7a51731239e06e2e1bdbc966d240dc4d21fc,6ff63107a68f173d9c03e99c41ab9c40738b2ff0
d9ec917586b3d945bd4d79a857b165c3bb0aab81,12db8a59b526a292182da0b43adb15e9e30b6c7c,6972d16c3ab08068898d123f5b677c6e56d96d1a
814370b894f989fa5c83ac4684e6e0f5465e6227,b648c6e23716ebdae25e9f59e0cb2a844f44d507,bfa16c0b32b99bcf17abf8d67bc07919615838ec
afc676511f96cae20340cfc84197e138a7b567f4,090df8e6899b2e0c36a5fcf4d91ae5ac739c4a8b,8b6de92c9cc1a5c1d213fea6297b1d5ea461e768
4a31be415301ed5be38ee741a205d3eeec80df1f,7e5278a40b0e563834cb74962662cb485f0b980a,b829348b4842b064f93175e0c956d1e520c6bc3c
6b17f81e784652696d33940f4cc563da937c71d3

Clicking a revision will expand files
 


* Testsuite in punit format
Commit consists out of
  • M .gitattributes
  • A rtl/test/docompile.sh
  • A rtl/test/punit.cfg
  • A rtl/test/punit.pp
  • A rtl/test/testpunit.pp
  • A rtl/test/testpunit2.pp
  • A rtl/test/testpunit3.pp
  • A rtl/test/testrtl.lpi
  • A rtl/test/testrtl.pp
  • A rtl/test/tohelper.inc
  • A rtl/test/unittest.cfg
  • A rtl/test/utastrcmp.pp
  • A rtl/test/utbytesof.pp
  • A rtl/test/utclasses.pp
  • A rtl/test/utdfexp.pp
  • A rtl/test/utdirex.pp
  • A rtl/test/utdos.pp
  • A rtl/test/utencoding.pp
  • A rtl/test/utencodingerr.pp
  • A rtl/test/utenv.pp
  • A rtl/test/utexec.pp
  • A rtl/test/utexpfncase.pp
  • A rtl/test/utextractquote.pp
  • A rtl/test/utfattr.pp
  • A rtl/test/utfexpand.pp
  • A rtl/test/utffirst.pp
  • A rtl/test/utfile.pp
  • A rtl/test/utfile1.pp
  • A rtl/test/utfile2.pp
  • A rtl/test/utfilename.pp
  • A rtl/test/utfloattostr.pp
  • A rtl/test/utformat.pp
  • A rtl/test/utfsearch.pp
  • A rtl/test/utmath.pp
  • A rtl/test/utrtl.pp
  • A rtl/test/utrwsync.pp
  • A rtl/test/utscanf.pp
  • A rtl/test/utstrcmp.pp
  • A rtl/test/utstrcopy.pp
  • A rtl/test/utstringbuild.pp
  • A rtl/test/utstringhelp.pp
  • A rtl/test/utstrings1.pp
  • A rtl/test/utstrtobool.pp
  • A rtl/test/utstrtotime.pp
  • A rtl/test/utsyshelpers.pp
  • A rtl/test/utsysutils.pp
  • A rtl/test/uttypinfo.pp
  • A rtl/test/utunifile.pp
  • A rtl/test/utuplow.pp
  • A rtl/test/utustringbuild.pp
  • A rtl/test/utverify.pp
  • A rtl/test/utwstrcmp.pp


* Remove testsuite again
Commit consists out of
  • M .gitattributes
  • D rtl/test/docompile.sh
  • D rtl/test/punit.cfg
  • D rtl/test/punit.pp
  • D rtl/test/testpunit.pp
  • D rtl/test/testpunit2.pp
  • D rtl/test/testpunit3.pp
  • D rtl/test/testrtl.lpi
  • D rtl/test/testrtl.pp
  • D rtl/test/tohelper.inc
  • D rtl/test/unittest.cfg
  • D rtl/test/utastrcmp.pp
  • D rtl/test/utbytesof.pp
  • D rtl/test/utclasses.pp
  • D rtl/test/utdfexp.pp
  • D rtl/test/utdirex.pp
  • D rtl/test/utdos.pp
  • D rtl/test/utencoding.pp
  • D rtl/test/utencodingerr.pp
  • D rtl/test/utenv.pp
  • D rtl/test/utexec.pp
  • D rtl/test/utexpfncase.pp
  • D rtl/test/utextractquote.pp
  • D rtl/test/utfattr.pp
  • D rtl/test/utfexpand.pp
  • D rtl/test/utffirst.pp
  • D rtl/test/utfile.pp
  • D rtl/test/utfile1.pp
  • D rtl/test/utfile2.pp
  • D rtl/test/utfilename.pp
  • D rtl/test/utfloattostr.pp
  • D rtl/test/utformat.pp
  • D rtl/test/utfsearch.pp
  • D rtl/test/utmath.pp
  • D rtl/test/utrtl.pp
  • D rtl/test/utrwsync.pp
  • D rtl/test/utscanf.pp
  • D rtl/test/utstrcmp.pp
  • D rtl/test/utstrcopy.pp
  • D rtl/test/utstringbuild.pp
  • D rtl/test/utstringhelp.pp
  • D rtl/test/utstrings1.pp
  • D rtl/test/utstrtobool.pp
  • D rtl/test/utstrtotime.pp
  • D rtl/test/utsyshelpers.pp
  • D rtl/test/utsysutils.pp
  • D rtl/test/uttypinfo.pp
  • D rtl/test/utunifile.pp
  • D rtl/test/utuplow.pp
  • D rtl/test/utustringbuild.pp
  • D rtl/test/utverify.pp
  • D rtl/test/utwstrcmp.pp


+ add type helpers for the remaining Boolean types (QWordBool and Boolean{8,16,32,64})
Commit consists out of
  • M packages/rtl-objpas/src/inc/syshelpers.pp
  • M rtl/objpas/sysutils/syshelp.inc
  • M rtl/objpas/sysutils/syshelph.inc


* x86_64 Win64 callback implementation: fix building the argument array if the result is passed as a parameter
Commit consists out of
  • M packages/rtl-objpas/src/x86_64/invoke.inc


* i386 callback implementation: only skip the result argument if it was detected as one from the parameters
Commit consists out of
  • M packages/rtl-objpas/src/i386/invoke.inc


* i386 invoke implementation: check the correct argument in the second pass
Commit consists out of
  • M packages/rtl-objpas/src/i386/invoke.inc


Improve NaturalCompareText behaviour as a comparer.

This version probably can’t return garbage or intransitive results.
Commit consists out of
  • M packages/rtl-objpas/src/inc/strutils.pp


* Some fixes in INtToBin, XorDecode/XorEncode
Commit consists out of
  • M packages/rtl-objpas/src/inc/strutils.pp

only pchar->pansichar fixes



* Fix compilation after rebase
Commit consists out of
  • M packages/fcl-base/src/fpexprpars.pp
  • M packages/fcl-base/src/inicol.pp
  • M packages/fcl-db/src/dbase/dbf_prscore.pas
  • M packages/fcl-db/src/dbase/dbf_prsdef.pas
  • M packages/fcl-fpcunit/src/DUnitCompatibleInterface.inc
  • M packages/fcl-hash/src/fpasn.pp
  • M packages/fcl-hash/src/fphashutils.pp
  • M packages/fcl-passrc/src/pscanner.pp
  • M packages/fcl-pdf/src/fppdfparser.pp
  • M packages/fcl-web/src/base/fphttpclient.pp
  • M packages/fcl-web/src/base/httpdefs.pp
  • M packages/rtl-objpas/src/inc/dateutil.inc
  • M packages/webidl/src/webidlscanner.pp
  • M packages/webidl/src/webidltowasmjob.pp


* Redirect posex to pos, patch from rika. Fixes issue gitlab 0040389
Commit consists out of
  • M packages/rtl-objpas/src/inc/strutils.pp


* patch and test by Rika: Redirect StrUtils.RPos to StrUtils.RPosEx, fix a bit, improve a bit, resolves gitlab 0040394
Commit consists out of
  • M packages/rtl-objpas/src/inc/strutils.pp
  • A tests/test/units/strutils/trpos.pp


bypass `real` → `integer` conversion → `real` promotion in `dateUtils.dateOf`

The `dateUtils.dateOf` function takes one `tDateTime` value, a `real` value,
converts it to an `integer` using `trunc`, and then the value is automatically
promoted to a `real` value again (because of result data type `tDateTime`).

This is unnecessary (unless an error is the desired behavior).
You can use just `system.int` to obtain the integral (= date) part of `tDateTime`.
Commit consists out of
  • M packages/rtl-objpas/src/inc/dateutil.inc


* Add system.actions unit for Delphi compatibility
Commit consists out of
  • M packages/rtl-objpas/fpmake.pp
  • A packages/rtl-objpas/src/inc/system.actions.pp

needs anonymous methods



* Add system.math.vectors for Delphi compatibility.
Commit consists out of
  • M packages/rtl-objpas/fpmake.pp
  • A packages/rtl-objpas/src/inc/system.math.vectors.pp
  • M packages/rtl-objpas/tests/testrunner.rtlobjpas.pp
  • A packages/rtl-objpas/tests/tv.dpr
  • A packages/rtl-objpas/tests/utcmatrix.pp
  • A packages/rtl-objpas/tests/utcmatrix3d.pp
  • A packages/rtl-objpas/tests/utcpoint.pp
  • A packages/rtl-objpas/tests/utcquaternion.pp
  • A packages/rtl-objpas/tests/utcvector.pp
  • A packages/rtl-objpas/tests/utmathvectorbase.pas


* Correct permissions
Commit consists out of
  • M packages/rtl-objpas/src/inc/system.actions.pp
  • M packages/rtl-objpas/src/inc/system.math.vectors.pp


Refactor promotional features of StrUtils.
Commit consists out of
  • M packages/rtl-objpas/src/inc/strutils.pp
  • A tests/test/tstrutils3.pp


* Fix compilation of unicode RTL after patch by Rika
Commit consists out of
  • M packages/rtl-objpas/src/inc/strutils.pp


* correct aDelta size
Commit consists out of
  • M packages/rtl-objpas/src/inc/strutils.pp


Fix a leak in StrUtils.StringsReplace, change StrUtils.IsWordPresent to work like Pos, and make a few more minor adjustments.
Commit consists out of
  • M packages/rtl-objpas/src/inc/strutils.pp


* Fix typo, missing brackets
Commit consists out of
  • M packages/rtl-objpas/src/inc/strutils.pp


+ Add Simple MonitorSupport implementation
Commit consists out of
  • A packages/rtl-objpas/examples/monex.pp
  • M packages/rtl-objpas/fpmake.pp
  • A packages/rtl-objpas/namespaced/System.MonitorSupport.pp
  • M packages/rtl-objpas/namespaces.lst
  • A packages/rtl-objpas/src/inc/fpmonitor.pp
  • A packages/rtl-objpas/tests/testrunner.rtlobjpas
  • A packages/rtl-objpas/tests/testrunner.rtlobjpas.lpi
  • M packages/rtl-objpas/tests/testrunner.rtlobjpas.pp
  • A packages/rtl-objpas/tests/utcfpmonitor.pas


Create TMonitorData initialized.
Commit consists out of
  • M packages/rtl-objpas/src/inc/fpmonitor.pp


Set ‘TMonitorData’s without locking.
Commit consists out of
  • M packages/rtl-objpas/src/inc/fpmonitor.pp
  • M rtl/inc/monitor.inc
  • M rtl/inc/objpas.inc
  • M rtl/inc/objpash.inc


Manage ‘TPulseData’s as linked list of structures allocated in ‘Wait’ stack frames.
Commit consists out of
  • M packages/rtl-objpas/src/inc/fpmonitor.pp


‘LockCount’ does not require atomics.
Commit consists out of
  • M packages/rtl-objpas/src/inc/fpmonitor.pp


TMonitor.Wait temporarily unlocks through recursive calls.
Commit consists out of
  • M packages/rtl-objpas/src/inc/fpmonitor.pp


Use exponential backoff in timeouted ‘TMonitor.Enter’ and explain why it’s still a bad solution.
Commit consists out of
  • M packages/rtl-objpas/src/inc/fpmonitor.pp


* Do not prefix with unit name unless necessary
Commit consists out of
  • M packages/rtl-objpas/src/inc/fpmonitor.pp


* Fix wrong type for threadID
Commit consists out of
  • M packages/rtl-objpas/src/inc/fpmonitor.pp


Alternative implementation of TMonitor for Windows Vista+.
Commit consists out of
  • M packages/rtl-objpas/fpmake.pp
  • A packages/rtl-objpas/namespaced/System.WindowsMonitorSupport.pp
  • M packages/rtl-objpas/namespaces.lst
  • M packages/rtl-objpas/src/inc/fpmonitor.pp
  • A packages/rtl-objpas/src/win/fpwinmonitor.pp
  • M packages/rtl-objpas/tests/utcfpmonitor.pas


* Add TCubicBezierCurve for Delphi compatibility
Commit consists out of
  • M packages/rtl-objpas/src/inc/system.math.vectors.pp


Adding some convinience functions to TNullable
Commit consists out of
  • M packages/rtl-objpas/src/inc/nullable.pp
  • M tests/test/units/nullable/tnull.pp


Adding tuple unit
Commit consists out of
  • A packages/rtl-objpas/namespaced/System.Tuples.pp
  • M packages/rtl-objpas/namespaces.lst
  • A packages/rtl-objpas/src/inc/tuples.pp
  • A tests/test/units/tuples/ttuple.pp


+ Add license header to tuples, add to fpmake
Commit consists out of
  • M packages/rtl-objpas/fpmake.pp
  • M packages/rtl-objpas/src/inc/tuples.pp


Adding TNullPtr to types

Additional changes:
* Now using TNullPtr instead of custom type in TNullable
* Adding assignment of variants with TNulPtr to avoid name conflicts
* Adding comparison to TNullPtr (Pointers, TObjects, TNullable)
Commit consists out of
  • M packages/rtl-objpas/src/inc/nullable.pp
  • M packages/rtl-objpas/src/inc/variants.pp
  • M rtl/objpas/types.pp
  • M tests/test/units/nullable/tnull.pp
  • A tests/test/units/types/tnullptr.pp
  • A tests/test/units/variants/tvariants.pp


Adding pointer access to nullable
Commit consists out of
  • M packages/rtl-objpas/src/inc/nullable.pp
  • M tests/test/units/nullable/tnull.pp


* in the Win64 ABI all const record parameters are passed by reference
Commit consists out of
  • M packages/rtl-objpas/src/x86_64/invoke.inc


* proper handling for boolean results (especially Boolean64 and QWordBool) in System.Rtti.Invoke
Commit consists out of
  • M packages/rtl-objpas/src/wasm32/invoke.inc


* also handle enumeration results and integer result sizes, other than 32-bit in System.Rtti.Invoke for WebAssembly
Commit consists out of
  • M packages/rtl-objpas/src/wasm32/invoke.inc


Fix NaturalCompareText for string = unicodestring.
Commit consists out of
  • M packages/rtl-objpas/src/inc/strutils.pp


Add support for win16 target by introducing USE_WINDOWS_UNIT define, which is set for other Windows OSes
Commit consists out of
  • M packages/rtl-objpas/src/inc/dateutil.inc


Use USE_WINDOWS_OLE_FUNCTIONS macro to avoid build failure for win16 OS target
Commit consists out of
  • M packages/rtl-objpas/src/inc/varutilh.inc


Use the MemPos approach in IsWordPresent.
Commit consists out of
  • M packages/rtl-objpas/src/inc/strutils.pp


* more handling of varUString in Variant utility functions
Commit consists out of
  • M packages/rtl-objpas/src/inc/variants.pp
  • M packages/rtl-objpas/src/inc/varutils.inc


+ add utility function to retrieve a UnicodeString from a Variant
Commit consists out of
  • M packages/rtl-objpas/src/inc/cvarutil.inc
  • M packages/rtl-objpas/src/inc/varutilh.inc


- remove unnecessary case-header
Commit consists out of
  • M packages/rtl-objpas/src/inc/variants.pp


* fix the build after 090df8e6
Commit consists out of
  • M packages/rtl-objpas/src/inc/varutils.inc


Update repository
Commit consists out of
  • M packages/fpmake.pp
  • M packages/rtl-objpas/src/inc/variants.pp
  • M packages/rtl-objpas/src/inc/varutilh.inc
  • M packages/rtl-objpas/src/inc/varutils.inc
  • M packages/rtl-objpas/tests/tests.rtti.value.pas
  • M rtl/bsd/system.pp


Rebased with trunk to fix inadvertent revisions
Commit consists out of
  • M packages/fcl-md/src/markdown.parser.pas
  • M packages/rtl-objpas/src/inc/variants.pp
  • M packages/rtl-objpas/src/inc/varutilh.inc
  • M packages/rtl-objpas/src/inc/varutils.inc
  • M packages/rtl-objpas/tests/tests.rtti.value.pas