Description: deeper parts of the RTL (matches rtl/inc)
This file as text.
(active) Revisions in this set:
33463c86983c8db5cb3a903921f8acbd600099a2,a077e0dd90cba0fa1e388ea2101abf66f6d394b3,a19528efa1145e2403104931dcd153515c215810
14f3676b2acdc1192c1183ef0765e36c01936107,7bc03f2590d15a2e4882056c8b4d41521a950aa4,902ef73c7c5112bf522e69501e74121be8d2f5e8
55dfb59631a5e666c3d6e527aebad5086aeb359a,c0da39a35dae71be2248f6ac817ba76eaaf8ade7,48b8110e38b6b08a393e9a947b1b439746802ae7
a60ab40237581e8ea583b159308438cd62554d3f,67bf76c50e40f7a039429835e97bec38f37515d1,789f28877190ef79df431a76d5ec95fffc0a9e43
b0683edfcb6596528a75ff44a21b81f1367630d8,d6d3e171ceabb0e194e8ecd5de51b6cfdc1922a3,10af6fe2fb5cc09e2573c81f3e51eb4ecb01aaf7
0c464605483132ac901f4004aa69a8d33555b671,00a418f589341d6ed9f3ba4ee80f6e6d552aa541,ed688aceee660abed27f84b18fa64e5d4af56fd9
617cc6984ba080be830cad11f3f18bd0e717532d,13902c1c7abebeec9688d3b554554ea36775535b,5ed2475c85809555242f34b9b39b05e4be58bebb
88648248ec2a1eb3cf9af867fc586943332d0523,9a9cd15ec4427bd0e78d3e4048663afe71b30fe1,0f462077769536525b247465937637a22857f1b6
33fa211b8497b5f8d3b9511e4c29ef8d888873e5,e332c17bbd89f3a6223798afee6c837a370dc9bf,871136d4f2beb86ee8056278c6d9b7cae070c8ff
af1a4c06c53b7486965fa31c8bc6ce7a3dcd16f1,1e32b96bc230cd044d6c37faeb5a63e55408778a,c3954a0cee3ecd2e77124ea3cb0994dcf61d1852
0f4ddf7b3497938dce9f1ae5b20179e13c78d03d,5b2426752982777fc1e39b39fe01749990ca8a24,3aa253c11d215bde7ff9312c9e5ac7a5287f0818
f9672b53a2d4e988e99575a70fd55eb7f9cb8960,20f6514d9749d3e3a2323be70188df6eba2858f6,834dbf5f802a9a71982749f0c58a65c08da5074e
7020490f81b308c24d88dadcdcd21faccee544bd,adf064cbb490c331528e6ce7b9697a1ea440f984,aa633544f1adf5d8521a99b1e2341168b1611c87
ec10ee8218c9247836264bcdfcef44331fed62c5,cfff96f44ce391ecd5cf16bb7c8dec76142cd1b0,8bc2326b772fb85d3fbd297582a04d9008c34d60
82346563c118fa536cdc0b5472be1f2be0e74c6f,213d2905dfc44bdbb83e475efc04aa5de59c5f59,832c3d89c83841bbf21cea783064b14c6a5ad6d4
15141124f4462ec01e052f93aac2ae4c679b5c92,449cc8f152991ccd697dd7eb52dec1e03fa5d478,1e4dc56155d14f7531da51fad19b8986bb669b1d
1bf58c2a55dfb16d6b000ff62812eae3002614c7,af20b064ed643cd726bea2d5b5a3cc03282e28d0,e718cb985ebb6cb444455abc48ac674cd3fd44a5
c9fcc68ec19dcebaf16dedb4cb0d3d3c69bfe726,d51213d26ada2eddcae37b82be384355361a554c,52cf07d96831bf8def50a45521582e75256f2dda
408fc819b399947025669f134ff779bd78c5602c,3aa0d92c792b4ecb32eb2fc867b770a3160fa9eb,c2c4048e928ac7e6bbb806c30fae4a35221b03bb
e80b1d9e70ec37dea35becb348a1052c55301677,ac36eec71ae5a5c654ab9f4e8ac366005179d97e,05d680902e71ce9a482384009bb3aaaed9f231ae
257ef24a1e9647c25b6607f3889251d55e4006f6,53a4e6c513bf1a7e3d98e869027a92041b2b40ee,2e2f2eb78467fd70d59196033a7197e9428f3992
1d92cc43bb5a80894d732202acd658d0add06c70,b359080f42f427da88a6dc8790f00f486ac2351e,8b080792240467c8df06d80cc87deeb06fca1434
a9f4c8a16b904ad483b802f4507a392d314faf42,3072df59ff4a6ae0cd4665180d68078ed8da4bff,800bb3adc2362456af74494503cca82bd12c0598
5442e9f9d86ab7807f917694eab6a06e037ef45a,cb953f68c24fdb97ed1e8b5c2c59c7cdcf3c38e8,1e6952264b61d66f62db499f9ffbf405f7f4bcd2
91cf1774dd59376434dde4581f8eaad74696aa0a,f20de5d583cb86f6ec3bf856716fc85ab9ce4a95,c0979bbc0cbc6497c29b608fba5565f81a7228c2
781b2d0a80db394bfcb6ad42d75549a32b360cb4,d29a482cd12ef50734121e4dc7e4c5938c1df5ae,4c296af05eccba74d3bd854b6248d56a8efeffdf
05072d0d82a707444a2847926525a0834d64cefd,38c06e64c742e269d7b9c01bba5344f12845c4e2,f39a6a775587692103ec6ba1012007224d57c01e
fc3b635013d0fd8552b9ae59b092d3697f6a82c5,9a90db79c30e3531034544d757d4f292617ea175,5f089afdfb3820d055e06e727859f38b0ed1f9b0
2f8750924f6da75b9842c1b2a4b97b522453d084,718709c87dfdd442dcd5326e374270abe6fd864b,02abad58d8836e80928e078ebccde151e1ea4b44
a7a689ca1632ef7c8783ea884d5ad59863aa1fde,115f83794b8005274bdf149448f46bc4f42c531c,366aedc6d829bddee3b6063c56bf5244ecee74ab
a8b0e0ed65cf9b0be0e7a177dc23c1e816fb9004,ee2d313aa0785735289f0a8630e2818971782c96,fbed0680487193cda590fde37f6fb35374a67d76
308bc294654f955b357c5e71ad9a7fa9e45d39ad,67fedc6b5ba09803a2264cb4ea2b3dce06713af9,04145589a9b263fc9159dbc55835e1e1e53d0237
08228d7fb37669f7ed4de4eedabd5dc576dc4f23,c9ed14f87bf4bfac5231cb2a65ca3cae06cf958c,1d8b21bcfc2ed4b60fe625ff82c75153bf77f05c
f92102a5f22ae7b978ecf91d59781e16f0b82163,5913434ba91a5726dd2842277eb378cba6eb2e3f,9cbc802d0dd183ea0c72aa32348b7bee14eef836
9f293df425a6c31b554bfbbad9f1020611b077cd,991460c4ee3c26f0811e3ee749bad8e98cd467b3,b38d13577f94364b4c7ba6f4d6b032eae404e934
afc9acda374142b802a0fa02e11d0e98140d85f8,9b6926c5f514ab5a66abb78bdd0c31cc7770d99e,664c613d960ed04fb02ab85475032e6f09c4e902
031c16dd3cd6a8b7b85a747225899d34898ef0a8,5e0eb521c4dfd2430e77ba4f8d01b8a887afedda,c1ec558d0aeda85edd81e095678952b34250d208
348fbfde9d524108e94ea970caf00c2be38bbe98,dafe77b954dd9e786817c37865a9945744f575b0,c29d36e369550035eed8b7e877b327a43b87f312
775408b21b85496d09ebf03541034cfaf4f55972,581dfc6d28fe712245a021a161f5cb74270a1bcd,057cfc100c0f5fa5fc703738bbaccd16bb70201d
4d42d013b8f0f2527d5bf0251f755547d906966f,01b70479a0ec5911460d35520b6984bf83d52135,62d650d926e914b0f210dd5a853a8598430030d6
bec6b8c2493860736d344c6a426187ef8470c224,16710100868d0a48b87ade93a7ab43976d467886,f75f208992232eac7d61d3a0f31dd9a90287e7b5
31ef6622019e34788a532b19813a6042d2f017c5,bcaf82f5e7b4ba858f0987055de374ffc550b009,e98ef65b6f39edc4d9eaef0ee2d97b7e96ff37c7
3085eac5017bdf6da203663305d47682ca7c98e8,b69c78cccea9c45d3ed02b2407fb119f653e2e3a,f04577d29273b9ad30c4a1d4e6e9fd2d3bf9df68
3aefada11a74147de6e220d907e840024c4a9060,30e3d93d5716b60ca4fa07319725a74d6c974830,4bddf12657ac416c76e192a848a6f9539026fec4
218da184e633d5268d80fcf12d1f2158c7dd2618,84e7a17b67acab49f6db6c821ffcced4ec3dcd95,8ef4625e4d91ab3fda180e3102d08dc25ba8cd85
efc0272b99eba5c072baf074e16f85d70816d4a8,ffa14ee4485dbb452fe4a89b9c7a6340ea359c7f,f0811e448daf681e70d7761353c3b19cb79e41fb
ee5b9e53a9dbb247e34372cfd2eb862a5967bdac,15f29b8fa06a5b5d25a0d4783d7940fdf73b00d2,159fa785147c8b71b60922cae2c8ea5bb6a52972
6a902660a52f622042d6aa005a1f60f2845e1b70,73b528d17028e361229070ebd241f9980d4f8892,f0ac02cb2e2ec6b54666372f01e94702f717bf15
98fa292b202f6da868eed12fa9a538ad8d3d7143,86ffe6938012c52d4a31dc791b06ba933cfdf2c0,fca0ace070ea67a899d909d2df34f38443267302
50d72bb559b3d88f5971bb1ba8a305ad4cf679b3,c39e51485c2d2b122b9e682385169287b2cb1413,b8738944ed4319b07c293c742bab2c12ca8d62dd
b121045d4a0cebf142af45f270241a8eb520158e,2a87366086419afd28cfb109f464c532148a9567,96921aaba35135b40114ad02a6208101c2e15b66
ba2b29bd2cc75452b1a1578ac2c9a5e68db39723,032158d9437cd26e3ef857632fcc3abc842dc16e,517d1b017c45bfe75aa0bbe20778d532b253ea65
8d1d763a1a7ead756b90a65192ff9a5eeb8610f2,0d3d4918b3d44614d6a6bc552958faee46cead98,6e5c4667cdc2adefc0b78e852a9fd211b938ee09
bd036125274266dc82d19aa3be16a4c770f096ad,defc7e99d1abbd9cf75cb13ebd0f28ccaab7d376,d12bc9e9b98026f3875053c78a686c15d54b9e44
1a6e6a1b0bfb1d246c5d7e3e00ba46433f1ddcf4,53de381d876c419a4e51720737456ce77e10491c,25360412305f3859c56745cd1a4e69f0c10fa7df
7e69f399b34b34f1ab3dff11648dc3a61d01625e,324b77f3173877b6bddaa2682483fd1205ed1a91,30bf8047aa3ed465b345485fb693ee46fe814643
ba78551c4fa3a74b161acd58b423378ac983c435,854d944cfa79e7308304838fbd208643df9248e3,89142ba73a6dc1dbbb2bbba97cba3913e99861cb
6045b3a6bdca79be9378337e28c3209535de7c4c,b2a13077c0342db976b79068fc834eab8661b340,80d471a9f1c300bf6899a14ed6ca476fe7862ddb
038f054bdc1a88295d1e217d3391840e0ba01c02,9917350ef0803af661e14bcd7f902807a62f7afe,b7d32e4933771e370932fd969f26fd9ae666a3d8
dd4f7e9148541883a9478f2644c4e014dd4fc015,9bb6a32c62406fa3d4a8a5975ac072dd0f55fce8,b81f92536dedc52c110fc5117ab11f87685440bf
e9c6f1c15261103d0d036f72d94d9eb9d1448f42,4aeb1ee2236e7f8f73c09ee1e2aeb0a7f658269d,e7600ee24581a90fdf0c4f0a170428068a3a0320
4af99236b0684fa965099c1409815a04b7c473e0,87a37e70ee894ed7575db525d4db496f83556d1a,88c7954d9f85db24e61d9d6dad069bed663b00c4
30a20cc209e9d3f8ed93afd3880f42989fe6ec26,31b978f3b72332560eade5abd34fc77177584470,b3800d38cbe140917d15416daf7c6489d97df25b
8b40033964ca7c4008646fdf4471209fc9e814a5,5a7d5367d23965468a4d9d22091f9748a2112556,4c6abb38b1d686ebd728c31f2e02f22a071eb9a0
edaee6f392b10c593a274fd61e998e24df7967bc,0ca608243c97c43738081c5b2863deb5fa5304cb,73bf0c82bb1cd913b8ebfd63e2bdf173bdc1c16f
886f91dee3547953ffbb58c85f49f321306b805b,0fe363304436afae572016840b2a9b592a44e923,fc3d71bba38e2c91813b224501eef9966544e18c
e9579fe2df24f5d5a2d6625824e7f52f658bef10,b0076a4709d9fdb67c46d94e1210af71d8528dea,e133ab579077b6f4297a0de4eb7b42c41f999c6a
d1510840d05eb7922ce569bd0927918680be3c9b,801e14c33be6e586c49eb926de753a504ae2f512,11942fcf012b1730c71263d4f16e86e48b4807b2
2519f4285484011cfaf1a7a8e49ac74914548c39,d729d5a5b13d11e75df3871ac62d9be7e64d2856,875e22f7d7c94cf40add10fd077bf605628285d4
2c66f30520dbaf0db225425c74908f6b4c18b993,8d3a9c3ddacf577903186ad6f7572c982f84b4ed,10b7ad9d0cf758d2eb4cb9eee8312b2fef70c2a5
c96b0f6ca58d899bee8682eccf5172107952d11a,9209f55112348cadff86a64e2f3012bf3801b306,3180c985ed30e6536cb7afebed99eba42d6a758d
fa1abfba92bbdcc4fd1dd584035466cd764cd695,569c3fb49feb3b4984814ecdde394dddeb58c74b,be11d22c17e27d92da9cff57df4476baf16b2b79
b3b4343e6be782d5697807f5d03c054322d5c075,08bf5f72013fc4a7136eb935473d5cc2f3d5945d,5b5a8b3387ed2ca1f590c323252575382ca8f2c9
ea33fdcdf8541621e1f1778a551238607308a2b5,296a7923802d48155cd66417b7e15e1da0f29e20,6de766e40afdb32921fd875aa8e6f1cc36bd8873
b8fdd7148b07ad5e34ba18c8d7112deec110d7ad,cd2c8a6539441e0917d3f4b30b4e28d2c701c674,2dd0b55d0429e5d52bf853e5622297b6c4ef5424
7d83cea8da7e877ae8f24395236e6628372aa830,91d3746adfd29cbee1f14c8e0456f09a2228d947,201d38d6fe1a8be5aa5237807103f49b4c8cb53c
d544313698982438389e638758c5e3799b876ba6,4cf202180e47ace9e3e796c3a1d556a931df1ab3,bdb3d097b5572bc7742604e66b7d0be57e596b3e
092ff254f15618cde13a6a741dc1a6f7b0135b45,ecbd0fc0da5fa688aa81a361f1519e42e3038e65,cc7325e31624bdd2933bef0c72be6fbd45b982e9
f1050aeb73100c28576e1a91915846e04fd8e053,f72183eb3769dc2e52cc04b9d54014b3b1540d1a,ae938e16a5fe5710124240accb3d0cb3420dbc80
6035058a215e9cc7e73644c0f422696e3753de89,ec7e917b1a9279a5057bcaf4e90f9f24b8f9db9c,02b31542f677b3f7cb6eacbf1b8f004d3aa86120
73d2ffcf42d12956d5c1dd25b622a3423287f352,28a9a448945b0ad5a917b1444ec5b87e830e90f5,0a53f40f071f9e1beeb7fdea071219c7ce4624c6
1e041077cc42b56ea2ae77075dadc8d3082532a6,c3f80014b41db2cb4a6fa50a50c2548a03000124,6ccad3dc4e7ad93c39eeeeb2cd0f99775feb340a
98a5072fbebceb0c99483d2ac6ea521bff420b10,aeac1c60d1ea303d4585f29a9c9156f20d4d6715,66d7408b3d62414553485a33a8ef42fa38ffd6e6
f7f8c9a615e9fb06080fc3903aa43de3e71c4ad0,840df7e243f922a34113b23ec3b68c41e854a88f,6ab6be4793f300ac18d0b03f44b20c0d2128b2f1
900b1fc4eccfb1bf16723d2747107c02f8135c5f,8093b1ba0c8c9bb4a8054a1107c20b2efa368ba6,ed82c8325bbaae6303186b5bdc892275d980c907
0d5dddfcb5deb648397d38ed618c4c49911f6b03,4f92679625e2e03c9eb08b7bb50ddcd19e056949,0d63a5fdda7e4f1b121b4825147e82d20514cf44
aabd2c50671dd79c8e52514483cf8cce63e71499,ad88310e5b7700e6d46903bfb3acc66e64d125d3,29f00416d672fcc2b054262823cf70b015abc6dc
78475e30709c70398a07578002da345013ce6058,a789dfc8e8f391dfb14ff994fc31c0452df3b2bc,adede6d2ae93189beb900e805095c983ebb85623
5f69f5a7cfee0b717d43747935e24a3afb983d3c,8facd4839edd72c2d23dc18dd305d488018540e3,ebff68a7981731561fc380c25e5f2217d1ae642c
eb233fc4474b9056a9cbb7d02069c7f1024e8026,1f962a5fd233bad39ba0e6d564b44af23e0357d0,cac70de9af210e66a64f3f2d66f521d2c4c03003
d8d6732a1053f04ea76025c3dc9542a48077de34,4d9562231ca3aca5967b502a885d607ddacf8414,a5ef9e946c054981076fda28f2c37d1c6e652c4d
09b029ba9b2f4de32e4194ecb78677c12c903d41,7eeb313376a23b321a44e1639401468ce58ea81f,a3a4b97ed60622831f2accc32b8eca15e3a807cb
dc29758cd0143e7ded318c01a74a4cf2ccfb17eb,4ff1b9462d112cf06eceee0132a428aef35c7b56,09be6aeecf13286481b5656b2df0bd24c32dafb3
5a0f69f452a4d5534b11dc6ce4dc50641e28b71c,e4e58c383eea29ac7678e12974d33a2aa322153a,a0e4a7168d741bcc38a827aca86dd434f3762ac2
c188238d003853ee66ee2f2d0992ddddd5624cce,0de9d0422c32852ad338e3e2c3e0054aa211b2c3,f113115ce8dab90d9ea4e1abaade673076059874
866036d008dab86499cac96679cbbe0203f38b30,8431e7207f7ca1a24a304a1ea154aa312255cdaa,8003027a8cc96f42f15663e7d8189b1854fb0447
33e4361ee9a3a7bc6a11031fa51e8655c57cb96d,f9699e8d513db3418f279f72cb983a2c937d360d,fd0654fe927f783f43bead96b025cd4a24f76f89
5985b58ba832d1349365e0f47280c50ba2585a44,600dcc82f48edd35315dc4c7dbb64de425ecf610,0cda03ed95e53e8fc23e0daca9aab0fa6093bb39
3acb3bc8f1305324c2db27a0d5093534379bb6b1,8594e9ad47d75d3f5b2febf67dee5ed3bef844f3
Clicking a revision will expand files
* moved align helper so it actually gets inlined
+ llvm_lifetime_start/llvm_lifetime_end intrinsic declarations
reverted accidental commit to text.inc
Allways use local pt variable to ameliorate readability of code
* TRttiDataCommon is required outside of the RTTI and DynArray include files as well
* Tenum_typedata needs to include the Common record as well
* disable UCS4String if dynamic arrays are disabled
* handle records with managed fields correctly after attribute merge fixes
- Fix overflow checking in software multiplication routines. Overflow checking should also be enabled for the unsigned multiplications.
- Call FPC_Overflow instead of multiple calls to save on size.
* fixed distribution of random(int64) based on patch by Pangea
(mantis
0035878)
* simplified random(int64) code
Try to fix alignment issues in RTTI code for 64-bit targets which require proper alignment
* fix for Mantis
0035965: correct alignment also for the class info used to retrieve the unit name
+ added test
* m68k has slightly different alignment requirements, so that aligntoptr might result in incorrect addresses for a record's element entries, thus we introduce a separate AlignTypeData function that handles this correctly
* also correctly align the pointer for the record elements inside FPC_COPY
* remove packed from tdynarray, it is not needed and especially 64 bit CPUs which require proper aligment, suffer from it
* call DoUnhandledException instead of RunError(217) when the the psabi eh
unwinder returns an error (this is usually because there is no outer
exception catching frame anymore -> unhandled exception) (based on patch by
Cyrax, mantis
0035751)
* fixed compilation for __ARM_EABI_UNWINDER__ with -dexcdebug
* InitThread variant without parameters as user threads normally cannot know the max. stack size
* fix random() for 32 Bit CPUs
TInterfacedObject.Destroy: fix case for correct auto-completion
* fixed (harmless) range error when expanding ~
+ x86-64: assembler implementation for u128_div_u64_to_u64 for SysV ABI
* reminder => remainder (thanks to Stefan Kanthak for pointing it out)
* some inconsistency regarding FPC_NONE usage fixed
* first couple of improvements propose by Stefan Kanthak at https://skanthak.homepage.t-online.de/division.html#fpc
* fixed generic round(...) for large values based on a comment by Alexander Hofmann on fpc-devel
* extended test
* Minor improvement. No need to move the terminating null char, since it is written later anyway. Remove a local var.
* Fixed
0044960. Also copy a trailing implicit #0 of the original string to the new larger string.
* Do not report about unimplemented unicodestring manager when HAS_WIDESTRINGMANAGER is defined (on Windows). In such case unimplemented parts are never executed unless you call them directly.
* Do not assign DefaultGetStandardCodePage when HAS_WIDESTRINGMANAGER is defined (on Windows).
* reduced the stack margin for stack checking to 64 bytes on the Z80
Allow system unit to be compiled without RTTI feature
- removed old float-to-string and string-to-float conversion code
* fix compilation for non 64 Bit targets
Also use union with double field to ensure correct alignment for float64 type from genmath.inc source
Put floating point type as first variant of floatXX definitions, to ensure correct alignment
New: rtl/inc/genmathh.inc source file, to provide a unique position
for the interface definition of float64 and float32 records,
available to all systems if FPUNONE is not defined.
rtl/inc/genmath.inc: Remove float64/float32, as they are now in rtl/inc/genmathh.inc
rtl/inc/softfpu.pp: Use provided definitions of float32 and float64
if available (by checking presence of FPC_SYSTEM_HAS_floatXX macro)
rtl/inc/systemh.inc: include genmathh.inc if FPUNONE is not defined.
rtl/java/jsystemh_types.inc: Likewise.
* Added a simple implementation of random. It is TP/Delphi compatible. Enabled it for 8/16 bit CPUs by default.
* Improved generic implementations of fpc_mul_dword, fpc_mul_word, fpc_mul_byte to use less iterations and registers.
FExpand: always uppercase drive letter also in BasePath
* Fix bug
0037601: add some attribte definitions
* Add StoredAttribute class, bug ID
0037602
* Xtensa: disable simple random again, committed by accident
* restore ability to cycle with 3.0.4 (at least until 3.2.2 is released) after
0046890
* make use of AllocMem in fpc_dynarray_setlength
* inlinable frame handling dummies for avr
* inline frame handler if possible
* make framecount and framebufsize dependent on the pointer size
* replace some longint by ObjpasInt
* enable the compiler to optimize away parts of System.PushExceptObject, if System.get_frame is not implemented, i.e. returning nil
* adjust softfpu unit so that it can be really used as a standalone unit instead of mainly as part of the System unit
* the define to check for inclusion in the System unit is FPC_IS_SYSTEM, *not* FPC_IN_SYSTEM
+ initial implementation of a FullName field in file records to overcome length limitions of the name field
Fix compilation of RTL when USE_FILEREC_FULLNAME is not defined
Put GetFullName functions inside $ifdef FPC_WIDESTRING_EQUAL_UNICODESTRING
* protect GetFullName with FPC_HAS_FEATURE_UNICODESTRINGS instead of _WIDESTRINGS
* make sure things still build with 3.0 after
0047353
* Fix bug ID
0038008: allow UTF8 to unicode conversion to react on/ignore invalid input
* patch by Zoran Vučenović: fixes TDoubleRec.SetFrac, resolves
0038202
+ test
- remove could which prevented that rte is triggered even if we are inside
an exception block but *without* using sysutils. The remove code
was once added to have primitive exception handling even if
no sysutils is used. But if this is desired, an appropriate handler
to ErrorProc should be assigned. Resolves
0038201
* fpc_ln_real raises an exception for invalid operands if they exception is not masked
* fixed round(currency) so it takes the rounding mode into account on
platforms where currency is "type int64"
* inline trunc(currency), trunc(comp) and round(comp) on platforms where
currency and comp are "type int64"
* fpc_AnsiStr_Concat: if one of the strings is empty and CP_NONE is passed, the code page
of the other string is taken, this is also like fpc_AnsiStr_Concat_multi works if length(sarr)=2
* compilation on Windows fixed
* overflow checked mul helpers do not need to check all bits either
* instead of using discardresult, wrap the uniquestring functions in procedures,
that are declared as inline
* insert explicit type cast for the count parameter of move/fillchar wrapping C functions,
avoids a warning in combination with -O3 and negative count values
* as 3.2.0 is now the oldest compiler we support we can now use {$push} {$pop} to reset the $minenumsize in the RTTI header
* BitSizeOf Documentation sub (issue
0039110)
* replace MT random generator by Xoshiro128**, resolves
gitlab 0038237
* fixed padding in the filerec to match textrec even on platforms where
sizeof(pointer)<>sizeof(codepointer), like in the medium and compact i8086
memory models
* TObject.InitInstance got very big so inlining has no advantage anymore, resolves
gitlab 0039494
* fixes for fpc_Val_SInt_ShortStr by Bart B
+ new test for fpc_Val_SInt_ShortStr
+ benchmark
* reordered condition so they can be evaluated quicker
* updated version by Bart B
* optimze case
* few formatting changes
* fpc_Val_SInt_ShortStr: bug fixes and improvements by Bart B
* patch by Bart B to fix the value of Code for unsigned types if the input is negative, resolves
gitlab 0039523
* patch by Bart B: fixes fpc_val_word_shortstr() and refactors fpc_val_longword_shortstr() so that it uses the same algorithm and naming conventions as the other unsigned val-helpers.
* all val helpers now use the ValValueArray
* some fixes for 8 Bit CPUs
* fpc_AnsiStr_To_ShortStr: set length before moving, should result in better memory access pattern
* avoid warning/error on uninitialized variable
* more false positives of unintialized varibles worked around
Added TranslatePlaceholderCP before Wide2AnsiMoveProc call.
In the fpc_setstring_ansistr_pwidechar procedure, before calling Wide2AnsiMoveProc, the translation cp = 0 to the DefaultSystemCodePage has been added.
Note: In all other places such translation is present.
Added TranslatePlaceholderCP in fpc_Read_Text_AnsiStr procedure.
This is a small optimization.
Set float type information in system interface part for mips64 and mips64el CPUs
* setting of MIPS64(EL) in system.inc fixed
* handle frac(+/-Inf or Nan) correctly in the software implementation, resolves
gitlab 0039584
* revert a650d346f1646c1b71380430a96c440e222a087d for now as it apparently does
not work with all language encoding
+ enable the 64-bit SAR instruction on the WebAssembly target
* align memory blocks in cmem at least to stack alignment boundaries, resolves
gitlab 0039730
* patch by Rika: SwapEndian([u]int16) has unnecessary “and $FFFF”, resolves
gitlab 0039814
Add DISABLE_SYSTEMINLINE check to be able to avoid setting SYSTEMINLINE macro
+ add platform independent helper routines for the atomic intrinsics; these only require the implementation of the size specific fpc_atomic_cmp_xhg_* helper, but if only the CPU size specific helper is implemented the others will at least be safe for multi threading inside the same process
Rewrite fpc_shortstr_concat_multi for AVR to not use a temporary shortstring to reduce RAM usage.
Make Utf8CodepointLen adhere to the Unicode standard somewhat more and know all of the Unicode 15.0 combining characters.
Change wrong "$macros off" into "$macro off"
Introduce CTYPES_INLINE, enabled by default but which can be disabled using -dDISABLE_INLINE for ctypes unit
add loongarch64 rtl support
Fix potential overflow when incrementing 8 bit high value of res.
Fix use of unaligned for big endian code
* first (modified, added a comment) patch by Rika to improve generic Index*, part of
gitlab 0039996
* Add stub for IsManagedType
* string -> shortstring, check zero length instead of comparing to empty string
* check zero length instead of comparing to empty string
* check zero length instead of comparing to empty string
* string -> shortstring, check zero length instead of comparing to empty string
* string -> shortstring, check zero length instead of comparing to empty string
* string -> shortstring, check zero length instead of comparing to empty string
* Add IndexChar for widechar
* check zero length instead of comparing to empty string
* String -> ShortString/RTLString
* check zero length instead of comparing to empty string
* check zero length instead of comparing to empty string
Make generic Index* faster and denser.
* UnicodeString<>WideString on windows
* Zero out stringmanager record
Utf8CodePointLen: remove pointer arithmetic to fix JVM compatibility
Improve generic CompareWord.
Improve generic CompareDWord.
* patch by Rika: Perform 32-bit random if the bound fits into 32 bits at runtime, resolves
gitlab 0040171
* patch by Rika: fix for 15f29b8fa06a5b5d25a0d4783d7940fdf73b00d2
* patch by Rika: Make more use of fpc_*_array (mainly fpc_addref_array) in rtl/inc/dynarr.inc, resolves
gitlab 0040174
* patch by Rika: Remove dead code in DynArrayIndex, resolves
gitlab 0040194
* patch by Rika: Remove wrong paranoia (and add correct one (and shorten in general (and fix a bug in))) fpc_dynarray_setlength, resolves
gitlab 0040193
SSE2 Index* and Compare* for i386, chosen at runtime.
* Better signature for Initialize/Finalize dummies
Improve shortstring Pos() and generic fpc_shortstr_compare().
* Define RTTI visibilities
* Avoid range error in comparisons
* Add TNoRefCountObject (delphi compatibility)
* TPtrWrapper for Delphi compatibility
* Delphi compatibility aliases for Interlocked* functions
Fix cpu16 error in AtomicCmpExchange
Fix system compilation for CPU16
* Interface thunk class must query owner object interface list
Don’t use local shortstring in generic fpc_pchar_to_shortstr, move directly to the destination.
Don’t allow generic fpc_pchar_length to arbitrarily over-read.
* Do not compile pointer overloads of atomic operations for MS-DOS/i8086
* Fix compilation for avr-embedded (no unicode strings)
Improve generic large set operations: +, -, *, ><, =, <=, mostly by working in PtrUints.
Set DYNLIBSINCDIR to WINDIR for win32 and win64
Faster genset.inc:fpc_varset_set_range.
* patch and test by Rika: fixes self inserts in Insert(x, dynarray) and improves Insert(x, dynarray), resolves
gitlab 0040417
Let fpc_dynarray_concat(_multi) reuse the only nonempty input or append to the destination if possible.
Improve fpc_dynarray_delete.
* ensure that the field and method tables are always accessed with the default alignment
Faster string concatenations.
Faster dynamic array concatenations.
* Add Delphi-compatible DisposeOf and friends.
* redefine also PPChar and PPPChar depending on the string type mode, resolves
gitlab 0040491
* Add HINST for Delphi compatibility
* Add varUInt32 alias for delphi compatibility
AVX2 CompareByte for i386.
ERMSB-aware Fill* for i386.
* fix
gitlab 0040592: make the Delphi-compatible attributes usable, but in a way that makes it clear to the user that they won't work
+ added test
* avoid wrong warning about FillChar not initializing the output parameter in case count <= 0
* avoid that fpc_fillmem does not inline due too much nested calls
* Delphi-compatible overloads UTF8ToUnicodeString
* fix implementation comment
* patch by Rika: Small improvements to (a|u)strings.inc, resolves
gitlab 0040364
* Add EnumModules for Delphi compatibility
rtl: add two defines toallow disabling the verbose error of the stub unicodestringmanager and threadmanager
* Add operators to TMethod, for Delphi compatibility
* Add UnicodeFromLocaleChars for Delphi compatibility
* Handle potential double defintion of INFINITE
Try to implement UnicodeFromLocaleChars for java
Non-nil-aware fpc_ansistr_compare(|_equal).
* do not copy sets in fpc_varset_(un)set if source and dest are the same
SSE4.1 IndexQWord for i386 and x86-64.
Disable _Plain versions when compiling RTL for newer CPUs.
Simplify shortstr_concat(_multi).
Check bounds in SetLength(shortstring).
Integers are 16-bit in system, replace with SizeInt.
Fix + QoL + eye candy for Windows error boxes.
Fix compilation of rtl with -dDISABLE_SYSTEMINLINE
Faster Insert(ansi/unicodestring).
Cover more values in the [0; 1) range by “random”.
* arm: Disabled "inline" on "fpc_ansistr_decr_ref" and "..._incr_ref" until arm compiler bug is resolved
* arm: Re-enabled "inline" on "fpc_ansistr_decr_ref" and "fpc_ansistr_incr_ref".
Implement length(PWideChar) with IndexWord.
* Remove debug statements
* remove unneeded checks in generic string routines, resolves
gitlab 0040816
* workaround for WebAssembly resource names possibly residing in memory below 64KB
* make GetProcessID inline
* fix naming (no functional change)
* Shortcuts must pass result on
* really all TMonitor shortcuts pass through the results
* Disposed is protected, does not appear by default in RTTI
* add cpuriscv to be on the safe side
Decimate rtl/i386/strings.inc.
* set MaxIntResource to 1023 for WebAssembly, because that's where the first
data segment starts, after commit 3218f25d130f9e3989ee3a8c6e3079aacde55c8a,
and even before that, when using the external linker
Redesign RTTISizeAndOp to return more useful information.
Faster RTTIManagementAndSize -_-.
* the fpc_invalidpointer rtl function declared compproc to allow easier calling
from the high level code generator
* fpc_varset_load takes a ptrint for set size
Use FillChar in InitializeArray.
* fix fpc_frac_real to properly thrown an exception on +/-Inf/NaN
* bootstrapping fix with 3.2 for arm-linux
* really fix bootstrapping with 3.2.2 on arm-linux
fix AtomicDecrement(Cardinal) overload
+ AtomicIncrement/Decrement overloads
* tests extended
* move aliases of fpc_copy and fpc_copy_by_move_semantics to aliases and adjust their names to match other aliaes
* increase stack margin for x86-64 so back tracing a stack overfow with line info does not cause another stack overflow
* ensure always an exception is raised in genmath.inc if appropriate
* correctly disable the Atomic*Lock functions for the fpc_atomic_cmp_xchg_*() helper fallback of the CPU size
Shorten generic atomic implementations to offset the LoC cost of the commit before last.
This also fixes wrong fpc_atomic_sub_8 and fpc_atomic_sub_16 emulations.
Use correct defines for ALUSInt, fixes problems encountered in webassembly
* make rounding mode and exception mask thread variables as well
* call SysResetFPU and SysInitFPU in InitThread for the time being
Faster managed record initialization.
Interface unref should zero the pointer first.
Shortcut declocked on refcount = 1.
Remove NewAnsiString & NewUnicodeString.
Tailor fpc_ansistr_concat_(multi) to the common case of concatenations.
Check for refcount = 1 first.
Fix UnicodeString ElementSize.
Inline polyevl&ldexp in sin&cos.
Move pop compiler directive to respective ifdef branch to match with push.
Removing forgotten dead code
Call MemoryManager.InitThread symmetrically to MemoryManager.DoneThread.
On aarch64-win64 system, C 'long' type is also a 32-bit type, as for x86_64-win64
Simplify UTF8Encode & Decode.
For JVM, use float64xxx wrappers instead of unsupported lvalue casts.
Fix variable i range of values in procedure InitInterfacePointers(objclass: tclass;instance : pointer);
Fix variable i range of values in class function TObject.InitInstance(instance : pointer) : tobject;
Let Copy(string, start, count) reuse the existing allocation.
* properly initialize prev in the various fpc_val_*_shortstr functions as otherwise the JVM's verifier will complain about the corresponding register not containing the valid type as there can be a path from the start of the function where the register is not initialized (Note: -OoDFA also reports these!)
Specialized huge chunk manager for the case of no SysOSFree.
Use OS zeroing in AllocMem.
* Introduce overloads for ClassNameIs
Fix targets without AnsiString feature
by removal of ClassNameIs overload with RTLString
type because RTLString=ShortString when
the target does not support AnsiString.
* Add TObject lifetime tracking possibility
* Add unit initialization tracking hook
Remove changes for powerpc64
Typo fix in rtl debug string.
Comment fix (rtl). Char not AnsiChar.
Skip nil tails when finalizing pointer arrays.
Split RecordRTTI into FinalizeRecordFields and AddRefRecordFields.
* handle ...^ correctly for multiple writes in iso mode, resolves
gitlab 0041609
Allow use og GDB debugger
Move toFree away from truly thread-local state.
Make use of AllocMem in class creation.
Simplify overflow checks in heap.inc.
Heap overflow runtime error code is 203.
Make HeapInc.ThreadState.Orphan not iterate every chunk allocated.
Batch cross-thread FreeMems.
Replace LastFlag with a sentinel chunk.
Don’t store size indices in fixed headers.
Correct TGUID/PGUID letter case
Store CastErrorFrom/To compactly.
Revert "Allow use og GDB debugger"
This reverts commit f113115ce8dab90d9ea4e1abaade673076059874