Commit graph

644 commits

Author SHA1 Message Date
bf02d6d03f adapter interface for the test-entry 2010-06-03 04:40:36 +02:00
3c35e2a95f WIP code up index functionality... 2010-06-03 04:40:36 +02:00
530940254e stubbed advice binding index implementation 2010-06-03 04:40:36 +02:00
c8ac2b0447 planning the advice binding index implementation 2010-06-03 04:40:35 +02:00
0514c24487 Advice binding pattern finished, passing unit test
now detecting a lot of syntax errors
2010-06-03 04:40:35 +02:00
1e28c7f1ab get the advice binding unit test to pass thus far 2010-06-03 04:40:35 +02:00
85f8035f92 Implement parsing of Advice binding pattern spec 2010-06-03 04:40:35 +02:00
f2269b7e78 Implement Advice binding pattern 2010-06-03 04:40:35 +02:00
f27024172f Implementation skeleton for advice binding match 2010-06-03 04:40:34 +02:00
e3c963378f outline some implementation details regarding the Bindings to match 2010-06-03 04:40:34 +02:00
3e2b78b670 fill in the basic definitions to make the draft test compile 2010-06-03 04:40:34 +02:00
abe8d876dd Start planning the Advice implementation: skeleton of unit tests 2010-06-03 04:40:34 +02:00
0f6c2e84d2 test-driven brainstorming: TypedID usage 2010-06-03 04:37:22 +02:00
a78845507a cleanup 2010-06-03 04:37:20 +02:00
e61eb01942 experimental fix for #307 2010-06-03 04:37:20 +02:00
82d8d26308 extend the map iterator adapter to work on STL ranges 2010-06-03 04:37:20 +02:00
939270063e helper: take snapshot of a given Lumiera or STL iterator 2010-06-03 04:37:20 +02:00
81f87ba852 similar low-level iterator adapter for multimap value groups 2010-06-03 04:37:20 +02:00
c5e4725dcb implement another wrapper to filter duplicates 2010-06-03 04:37:19 +02:00
a87889cbad implement convenience helper to pick key/value from a map iterator 2010-06-03 04:37:19 +02:00
73a2aea50c draft a low-level adapter to get all keys/vals of a stl::map
intention is just to use a thin wrapper, without
abstracting the implementation type (as IterSource does)
2010-06-03 04:37:19 +02:00
57a9b1a270 Iterator adapter to ennumerate all values to a multimap key (closes #492) 2010-06-03 04:37:19 +02:00
c9bf26d8c4 EntryID finished and passes unit test 2010-06-03 04:37:19 +02:00
2131488afb test-driven brainstorming: simplified asset-like ID 2010-06-03 04:37:17 +02:00
c93dfc4f29 partially refactor into library 2010-06-03 04:37:16 +02:00
479bbbb6c7 clarify how deregistration works 2010-06-03 04:37:16 +02:00
dd3d22f950 implement registry for element-tracking. passes unit test 2010-06-03 04:37:16 +02:00
9ec865c3ab Stubbing and definitions to get element-tracking to compile 2010-06-03 04:37:16 +02:00
55df5205a4 draft a mixin for adding element-tracking functionality 2010-06-03 04:37:15 +02:00
bfc18dfb94 consider using RefArray for the Session API 2010-06-03 04:37:14 +02:00
Odin Hørthe Omdal
792a595041 Fix for old GAVL versions (missing uint64_t) 2010-05-15 02:20:07 +02:00
Christian Thaeter
9d99300841 FIX: #619, New Nobug required! version 201005.1
add the 'extra' argument to mpool dumps.
Solves Linking problems on some distros.
2010-05-12 00:46:39 +02:00
5b9aa5deb2 landing the new threadpool implementation 2010-02-15 00:48:52 +01:00
1c63a02e23 augment and round up the C++ thread wrapper 2010-02-14 23:39:15 +01:00
90d311dc1d Error integration: error::Flag as subclass of State. Wrapped throw 2010-02-13 20:56:41 +01:00
dc991ca563 valgrind suppression: add some more cases to be filtered 2010-02-13 06:00:38 +01:00
b41bd20de4 push accessing the DiagnosticContext down one layer
accessing the DiagnosticContext now inline when
providing the paramters for calling the C-functions.
No change in functionality, but saves us a lot of
syntactic noise.
2010-02-13 05:33:08 +01:00
3466793976 repackage as a more general facility (DiagnosticContext)
implementation unaltered (just managing the NoBug handle)
2010-02-13 04:54:59 +01:00
4dfd7266b9 draft solution to factor out management of the resource handle
based on the idea of a diagnostic context stack
2010-02-13 04:03:27 +01:00
763f86fe0e back out changes I do not want in lib/sync.hpp
especially, I do not want to pass a resource handle
through all locking function APIs; the memory
management of the resource tracker should better
be kept separate and not mixed with the monitor.

Also, I am rather reluctand regarding any extended
functionality for the monitor, like timed locks
or trylocks or read/write monitors. I think, the
monitor pattern is only beneficial when it is kept
fairly simple, advanced thread programming should
be pushed out into lib functions in the backend.
2010-02-12 05:22:17 +01:00
Christian Thaeter
80e2db4800 hook the resourcecollector into safeclib on backend startup 2010-02-08 17:47:26 +01:00
Christian Thaeter
d103346482 hook mpool into the resourcecollector and using safeclib allocations 2010-02-08 14:28:54 +01:00
Christian Thaeter
9feb01e4fe add hooks for malloc/free to mpool, add (no-op) purge function
We will need this to hook the resourcecollector in
2010-02-07 20:53:51 +01:00
Christian Thaeter
b60d8aa907 FIX: error.c memory leak when destroying threads
the error context is dynamically allocated and must be freed, forgotten
this as errors originated from static strings initially.
2010-02-07 20:25:09 +01:00
Christian Thaeter
d350a250fa Move the resourcecollector to the backend, closes #521 2010-02-05 08:58:19 +01:00
Christian Thaeter
01839d4e48 update for nobug-201002.1 2010-02-03 10:38:12 +01:00
Christian Thaeter
014c83ff5a PTHREAD_ONCE_INIT can be a macro, fast init trick doesn't work then 2010-01-30 08:40:38 +01:00
Christian Thaeter
87465ff69b little test-helper cosmetics 2010-01-30 07:20:09 +01:00
9a6f9b2ba5 PlacementIndex: possibly retaining type information on insert 2010-01-23 15:50:46 +01:00
Christian Thaeter
9fc68c9d32 Merge remote branch 'public/nobug201001.2' into backend_devel
* public/nobug201001.2:
  integrating nobug context passing
  updates for nobug 201001.2

Conflicts:
	configure.ac
	src/lib/condition.h
	src/lib/reccondition.h
	tests/backend/test-threads.c
2010-01-23 06:56:39 +01:00
Christian Thaeter
c15f2247d7 integrating nobug context passing
Somewhat more intrusive than the previous patch,
adds contexts everywhere except for sync.hpp where only default ctors
are used.
2010-01-23 01:40:27 +01:00
Christian Thaeter
8254b3fbda updates for nobug 201001.2
dumping got a new api, surprisingly everything else works...
2010-01-22 23:21:48 +01:00
Christian Thaeter
e2c5aceec4 FIX: off by one error in time normalization
"The value of the nanoseconds field must be in the range 0 to 999999999."
2010-01-18 18:45:02 +01:00
Christian Thaeter
87918c657c check wait condition before loop body 2010-01-18 14:23:23 +01:00
Christian Thaeter
b8336879f7 autoconf/automake cleanup
* refactor configure.ac to have distinct sections to configure each
   subsystem.
 * Dedicated LUMIERA_<subsys>_CFLAGS|_LIBS vars
 * Fix Makefile.am's to use them, remove unnecessary dependencies

Stray dependencies to be refacored:
 * tests/Makefile.am has dependencies on proc and backend
  - should be moved to tests/library/Makefile.am etc anyways
 * tests/lib/Makefile.am has dependency on GUI left


 * src/tool/Makefile.am links GUI stuff generally, thats ok

 * one threading test is broken, we don't care, merging new threadpool in
   next.
2010-01-17 15:48:30 +01:00
Christian Thaeter
aea546554b reworked sync.hpp using libraries locking functions 2010-01-14 21:15:13 +01:00
Christian Thaeter
dbb3b2e2e7 FIX: uhm .. forgotten to fix some stuff 2010-01-14 13:22:19 +01:00
Christian Thaeter
3e8d8590e9 C lumiera_error to C++ exception bridge
* error::Runtime exception class which transports the C error code
 * lumiera::throwOnError() which throws when there is a pending
   lumiera error, otherwise it does nothing
2010-01-13 20:30:10 +01:00
Christian Thaeter
c29ea07138 lumiera_error_expect() lets one easily handle expected errors
This is a convenience function which clears the error state when some
expected error occurred and lets one branch on this.
2010-01-13 17:41:26 +01:00
Christian Thaeter
f0483b1d8b FIX: few glitches using nobug flags 2010-01-13 14:22:08 +01:00
Christian Thaeter
a287b13481 remove the LUMIERA_RESTRICT macro
all functions using restrict are inline and can be properly optimized by
the compiler, no restrcit necessary
2010-01-13 13:00:13 +01:00
Christian Thaeter
f78ec3b0ef undo -Werror which slipped into the CXXFLAGS for the lib 2010-01-13 09:23:19 +01:00
Christian Thaeter
9c9161ef65 reccondition refactoring 2010-01-13 00:19:20 +01:00
Christian Thaeter
f1cf5aee60 condition var refactoring 2010-01-13 00:19:00 +01:00
Christian Thaeter
6816766182 rwlock refactoring 2010-01-13 00:18:48 +01:00
Christian Thaeter
059f086b4f recmutex refactoring 2010-01-13 00:18:32 +01:00
Christian Thaeter
e7e9394f9b refactor locking macros to functions, simpler macros 2010-01-13 00:16:43 +01:00
Christian Thaeter
b232a4f9f0 errors for locking
* add a 'unknown' error to the error system as fallback
 * lockerror.c|h define all errors which can happen due locking
 * lumiera_lockerror_set() translates posix errors to lumiera errors
 * remove stale errors from sectionlock.h
2010-01-13 00:10:33 +01:00
Christian Thaeter
7b014012e8 WIP: refactor locks once again, new nobug, little simpler 2010-01-10 10:36:24 +01:00
Christian Thaeter
7fea4f79be Sectionlock needs a 'user' handle with new nobug 2010-01-10 10:36:24 +01:00
Christian Thaeter
799fe34980 Fix: race conditions with the nobug resource tracker
* requires new nobug version
* 40components.test "Type-based contexts" TypedCounter_test hangs
  for unknown reason, temporary disabled
2010-01-10 10:36:24 +01:00
8c7894943c add equality comparison to the HashIndexed (mixin base) 2010-01-08 03:56:21 +01:00
5cc3af3009 document the changed/new behaviour by unit test 2010-01-07 04:40:10 +01:00
3525b77126 somewhat tricky modification of for-each, allowing inline calls 2010-01-07 03:10:02 +01:00
665bd19f8a use this to get the distinct keys of a multimap 2010-01-06 06:53:29 +01:00
ff2113e61f implement an duplicate-value filtering iterator 2010-01-06 06:19:30 +01:00
0081b36793 Itertools: add caching to FilterIter
filter predicate is now evaluated at most once
2010-01-06 06:16:30 +01:00
2ad85dbb07 bugfix and test coverage 2010-01-06 04:14:16 +01:00
2a5b080dd7 implement IterSource adapter for STL map and hashmap 2010-01-06 03:38:02 +01:00
030a7d3813 basic IterSource implementation passes unit test (#490) 2010-01-05 05:21:13 +01:00
16962ae714 IterSource implementation draft 2010-01-05 04:10:23 +01:00
ea5668c5e3 WIP define expected usage of IterSouce 2010-01-05 02:53:20 +01:00
330eb2c243 extended for-each looping helpers. Closes #479 2010-01-04 14:48:00 +01:00
cd3a77649e use the (new) iterable classification to mask for_each overloads 2010-01-04 11:19:01 +01:00
7d913dc558 start moving some metaprogramming helpers to lib::meta 2010-01-04 10:08:14 +01:00
64cedb6345 implemented compile-time detection of STL or Lumiera iterator
closes #482
2010-01-03 05:43:33 +01:00
e838d46336 Fix: operator++ needs to return the actual target type
see Ticket #486
2010-01-03 05:42:35 +01:00
e27d03c501 simple duck detecor components pass unit test 2010-01-02 09:07:10 +01:00
8777aa585a duck detector (lib helpers): initial implementation draft 2010-01-02 08:09:40 +01:00
e94927d5a3 standard case (using STL container) solved, incl. binding arguments and member functions 2009-12-31 03:25:25 +01:00
2b46574da3 move the for_each helpers into a separate header
(because util.hpp is used pervasively, and I don't want
<tr1/functional> in such a widely used header...
2009-12-29 04:39:27 +01:00
7b7e9096a3 Hook up scope contents iterator in PlacementIndex (closes #343) 2009-12-27 06:25:34 +01:00
26c506c0d6 rewrite TransformIter, allowing to return references (closes #475) 2009-12-27 04:03:00 +01:00
534ae16605 implemented this FunctionResult template, needed for Ticket #175 2009-12-23 04:46:09 +01:00
97faf3dcb8 ItemWrapper unit test pass. Closes #476 2009-12-21 07:52:58 +01:00
e5ab9d73eb add specialisation to deal with wrapping a reference... 2009-12-21 06:19:56 +01:00
6a7f325ecf static assert to protect against misguided equality comparison 2009-12-21 05:45:02 +01:00
3db676fa32 base implementation fo the ItemWrapper 2009-12-21 05:44:29 +01:00
83eb6976cd draft an universal val/ref wrapper, needed by TransformIter.
Seemingly I've hit a nasty problem here, because PlacementIndex
should return an Placement&, but this is being fetched
after-the fact from within the iterator.
2009-12-20 04:33:24 +01:00
4773305853 Fix itertools: allow TransformIter to return an reference 2009-12-19 03:55:02 +01:00