Commit Graph

56 Commits

Author SHA1 Message Date
Krasimir Angelov 43671f3679 concrete revisions not longer take space in the revision registry 2024-09-21 11:56:19 +02:00
Krasimir Angelov c94d0f31bc now we can load PGF files as precompiled modules 2024-01-30 13:02:40 +01:00
Krasimir Angelov 35e47b9fac robustness by reinitializing the locks if dead processes are found 2023-02-22 17:41:50 +01:00
Krasimir Angelov 6d856b2ce0 make it possible to control the initial NGF size 2023-01-29 21:04:08 +01:00
Krasimir Angelov fc6ded1759 one more fix for thread local on MSVC 2023-01-25 23:26:09 +01:00
Krasimir Angelov 696a9ffb16 thread local for MSVC 2023-01-25 23:16:02 +01:00
Krasimir Angelov 8f7e4c084c an API to create unique function names 2022-12-05 08:11:43 +01:00
Krasimir Angelov a6aa6c2a5a constant time and space grammar embedding 2022-11-16 09:43:09 +01:00
Krasimir Angelov d784e2584b A lower-level transaction API and a transaction command in the shell 2022-10-24 10:44:40 +02:00
Krasimir Angelov c3c1cf2a64 on POSIX systems use mprotect to protect the data from accidental changes 2022-07-05 15:59:06 +02:00
Krasimir Angelov 73d4e326f7 consolidation of free blocks 2022-07-05 13:21:53 +02:00
Krasimir Angelov 88477a8834 added mutex for single writer exclusion 2022-06-29 16:28:01 +02:00
Krasimir Angelov 109f8c86e8 more bugfixes in the allocator 2022-05-28 07:43:56 +02:00
Krasimir Angelov d66cf23811 Revisions now correspond to revision_entry:s in the database. 2022-05-23 13:59:03 +02:00
Krasimir Angelov a3d73fa658 register_revision must refresh the transaction to the latest 2022-05-23 11:33:47 +02:00
Krasimir Angelov e794f46e49 merge set_active_revision() with commit() 2022-05-23 09:58:43 +02:00
Krasimir Angelov 35176cc721 descriptors released in the last transaction are now reused in the next 2022-05-23 09:50:58 +02:00
Krasimir Angelov 3c1a3fb899 bugfix 2022-05-20 19:49:27 +02:00
Krasimir Angelov 607b8d6d23 next attempt to fix Windows 2022-05-20 16:08:10 +02:00
Krasimir Angelov 825a43caf2 third fix for Windows 2022-05-20 15:58:21 +02:00
Krasimir Angelov 43ca1079d7 fix the compilation on Windows 2022-05-20 15:40:59 +02:00
Krasimir Angelov 5594679a83 first draft of the new allocator with transactions support 2022-05-20 13:55:45 +02:00
Krasimir Angelov 8960e00e26 speed up booting by implementing realloc+padovan 2022-02-09 10:36:42 +01:00
Krasimir Angelov 19f7fb8d5e added const specifier 2022-01-09 18:20:47 +01:00
Krasimir Angelov cd2c6aa32a cleanup transient revisions only after a transaction is opened 2021-12-29 14:52:21 +01:00
Krasimir Angelov dca6611d84 synchronize the mmap sizes between processes 2021-12-29 11:16:21 +01:00
krangelov 4792665241 back to storing rwlocks in a separate file to avoid moving the lock 2021-12-22 22:19:56 +01:00
krangelov 3134a89307 reduce import symbols 2021-11-26 15:00:24 +01:00
krangelov c1690ffa77 the r/w lock is now in the database itself 2021-11-15 13:13:00 +01:00
krangelov 92ecc8cc1d finished porting to Windows 2021-11-13 05:40:38 +01:00
krangelov 9804d993e4 remove the dependency to pthread on Windows 2021-11-10 17:27:45 +01:00
krangelov c806ce2d26 minimal changes to make the runtime compilable on Windows 2021-11-10 15:52:02 +01:00
krangelov 547783e50e PgfDB::ref_count must be size_t 2021-11-03 11:50:21 +01:00
krangelov 309a16d471 reference counting for concrete syntaxes 2021-11-03 10:48:20 +01:00
krangelov 157574763f now we use inter-process locking 2021-10-25 19:14:25 +02:00
krangelov 1413c273cc API for adding concrete syntaxes. Garbage collection to be fixed! 2021-10-21 19:18:14 +02:00
John J. Camilleri 1401a6d209 Fix (most) macOS compilation problems 2021-10-12 10:46:39 +02:00
krangelov e11e775a96 merge pgf_free and pgf_free_revision since otherwise we cannot control the finalizers in Haskell 2021-09-22 13:21:07 +02:00
krangelov e41feae82a database synchronization only on commit 2021-09-17 16:43:54 +02:00
krangelov 6cfa250b28 PgfDB::sync is now moved to the desctructor for DB_scope 2021-09-11 18:20:28 +02:00
krangelov 4e443374de restore the thread local declarations that were accidentally removed 2021-09-11 18:06:28 +02:00
krangelov ae0a6aa6b6 clean up everything after revision is not needed anymore. 2021-09-11 16:33:22 +02:00
krangelov 1b09e7293f implemented pgf_free_revision 2021-09-10 11:39:54 +02:00
krangelov 28321cc023 added dropFunction 2021-09-09 09:47:26 +02:00
krangelov 44ee5718e9 more friendly PgfDB::malloc 2021-09-08 14:27:52 +02:00
krangelov bcc33af36b added support for branches and explicit transaction commit 2021-09-08 14:09:23 +02:00
krangelov 2e846cdf59 added safeguard to ensure that PgfRevision is an actual object 2021-09-08 09:17:12 +02:00
krangelov a843ddba55 better error handling which always reports the right file name 2021-09-07 15:54:27 +02:00
krangelov e1c23da0a6 forgot updating the header as well 2021-09-07 09:49:45 +02:00
krangelov 9cea2cc70e change the API to allow different grammar revisions 2021-09-06 15:49:39 +02:00