Commit Graph

54 Commits

Author SHA1 Message Date
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
krangelov
fb2454767a add method "free" 2021-09-03 19:58:28 +02:00
krangelov
b28e891a6b a type annotated version of marshaller/unmarshaller 2021-08-26 17:27:34 +02:00