Commit graph

639 commits

Author SHA1 Message Date
96a4704738 DOC: some problems when building with GCC-5 2015-11-20 05:34:11 +01:00
313eeba70a post-release: Merge hotfixes from release branch 2015-11-15 07:05:13 +01:00
e856283c48 build on Mint 2015-11-05 03:30:46 +01:00
8a707f3a41 post-release: tighten library dependencies
NOTE: we have the policy to always support current Debian/stable
amd at least one Ubuntu LTS release, unless hard dependency problems prevent that.
Currently, Ubuntu/Trusty is already a bit dated, but the only problematic dependency
could be libboost (1.54 in Trusty, 1.55 in Jessie).
GCC-4.8 can be replaced by GCC-4.9 in Trusty without problems

It is always a bit tricky to find out the precise lower boundary,
so we try to upgrade these requirements as our platform progresses.
For now we have used the level available on Ubuntu/Trusty to set
the lower constraints for most libraries
2015-11-03 03:39:00 +01:00
3248741db1 upgrade current release to 0.pre.03 2015-11-02 22:25:54 +01:00
03eb0ff8f1 Pre-release 0.pre.03
This is a development snaphot pre release of Lumiera.
It features codebase maintenance, upgrade to C++14 and GTK-3
and some work towards a Proc-GUI connection (unfinished)

Update README, AUTHORS, LICENSE and similar release docs.
2015-11-02 22:19:26 +01:00
12cefe914e release prep: clean-up obsolete information 2015-11-02 21:14:24 +01:00
4a3b077824 Bugfix: find verb should check for ID match
because otherwise we'd need to send a whole subtree
over the wire and then descend into it just to find an element.

This too is a ripple effect of making '==' deep
2015-11-01 23:11:55 +01:00
34d79ee8df tree-diff-application: unit test PASS
well... this was quite a piece of work
Added some documentation, but a complete documentation,
preferably to the website, would be desirable, as would
be a more complete test covering the negative corner cases
2015-11-01 07:03:47 +01:00
c94bbcbb15 extend storage arrangement to deal with nested child objects
It is difficult to reconcile our general architecture for the
linearised diff representation with the processing of recursive,
tree-like data structures. The natural and most clean way to
deal with trees is to use recursion, i.e. the processor stack.
But in our case, this means we'd have to peek into the next
token of the language and then forward the diff iterator
into a recursive call on the nested scope. Essentially, this
breaks the separation between receiving a token sequence and
interpretation for a concrete target data structure.

For this reason, it is preferrable to make the stack an
internal state of the concrete interpreter. The downside of
this approach is the quite confusing data storage management;
we try to make the role of the storage elements a bit more
clear through descriptive accessor functions.
2015-10-30 03:11:33 +01:00
4356315021 diff-language interpreter: prefer to take payload by const&
each language token of our "linearised diff representation"
carries a payload data element, which typically is the piece
of data to be altered (added, mutated, etc).

Basically, these elements have value semantics and are
"sent over wire", and thus it seems natural when the
language interpreter functions accept that piece of payload
by-value. But since we're now sending GenNode elements as
parameter data in our diff, which typically are of the
size of 10 data elements (640 bit on a 64bit machine),
it seems more resonable to pass these argument elements
by const& through the interpreter function. This still
means we can (and will indeed) copy the mutated data
values when applying the diff, but we're able to
relay the data more efficiently to the point where
it's consumed.
2015-10-24 02:42:13 +02:00
e438a9fe51 chosing an implementation approach for tree-diff-application 2015-10-23 19:24:34 +02:00
c90e6a6f65 on second thought: yet a better solution
...is to let the diff applicator work *on* a Rec::Mutator
This is outright natural -- why is it that I needed 2 days
to come up with this solution?
2015-10-23 01:32:47 +02:00
eabeee3b7b decide on the implementation approach for tree diff application
this boils down to the two alternatives
 - manipulate the target data structure
 - build an altered copy

since our goal is to handle large tree structures efficiently,
the decision was cast in favour of data manipulation
2015-10-23 00:40:02 +02:00
2704b38da6 WIP rework demonstration diff to be valid type-wise
so basically it's time to explicate the way
our diff language will actually be written.

Similar to the list diff case, it's a linear sequence
of verb tokens, but in this case, the payload value
in each token is a GenNode. This is the very reason
why GenNode was conceived as value object with an
opaque DataCap payload
2015-10-09 03:03:27 +02:00
6ecd24a0a0 Design: pick up the task of defining a Tree Diff Language 2015-10-02 02:49:15 +02:00
0d10e62851 WIP: draft a monad-like scope expanding iterator implementation
Initially I intended just to supply an addapter to use
the monadic IterExplorer for this recursive expansion
of GenNode contents. Investigating this approach was
relevant to highlight the minimum requirements for
such an evaluation mechanics: since our GenNode
is an hierarchical structure without back-links,
we are bound to use a stack at some point. And
since an Iterator is a materialised continuation,
we can not use the processor stack and are forced
to represent this stack in memory.

Yet, on second thought, we do not need the full power
of the IterExplorer monad; especially we do not need
to bind arbitrary functions into the monad, just one
single scope exploring function, implemented as
Variant visitor. Based on these observations, we can
"inline" the monad structure into a double nested
iterator, where the outer capsule carries a stack
of scopes to be explored.
2015-09-11 04:06:51 +02:00
be70e58441 considering how to implement the GenNode sequence iteration
remembered that some years ago I had to deal with a very similar problem
for planning the frame rendering jobs. It turned out, that the
iterator monad developed for this looks promising for our task at hand
2015-08-31 03:34:23 +02:00
aa96cb6dd1 implement full data-based equality for GenNode
initially my intention was to use the ID for equality test.
But on a second thought, this seemed like a bad idea, since
it confuses the concepts of equality and identity.

Note: at the moment, I do not know if we even need an equality test,
so it is provided here rather for sake of completeness. And this
means even more that we want an 'equality' implementation that
does what one would naively expect: compare the object identity
*and* compare the contents.
2015-08-28 16:12:04 +02:00
a56226f297 Record "object" representation now finished and passes Test 2015-08-17 22:13:36 +02:00
7650b36f1e Generic Record: finish implementation of Mutator
especially setting (changing) attributes turned out to be tricky,
since in case of a GenNode this would mean to re-bind the hash ID;
we can not possibly do that properly without knowing the type of the payload,
and by design this payload type is opaque (erased).

As resort, I changed the semantics of the assign operation:
now it rather builds a new payload element, with a given initialiser.
In case of the strings, this ends up being the same operation,
while in case of GenNode, this is now something entirely different:
we can now build a new GenNode "in place" of the old one, and both
will have the same symbolic ID (attribute key). Incidentally,
our Variant implementation will reject such a re-building operatinon
when this means to change the (opaque) payload type.

in addition, I created a new API function on the Mutator,
allowing to move-in a complete attribute object. Actually this
new function became the working implementation. This way, it is
still possible to emplace a new attribute efficiently (consider
this to be a whole object graph!). But only, if the key (ID)
embedded in the attribute object is already what is the intended
key for this attribute. This way, we elegantly circumvent the
problem of having to re-bind a hash ID without knowing the type seed
2015-08-17 20:31:07 +02:00
61b6868bff pick up work where I left one month ago
OMG, what was all this about?
OK... this cant possibly work this way.
At least we need to trim after splitting the attributes.
But this is not enough, we want the value, which implies
to make the type flexible (since we cant return a const& to
a substring extracted on-the-fly)
2015-08-17 01:22:01 +02:00
24d7f55935 Merge Platform upgrade and Diff-Framework development 2015-08-16 01:42:26 +02:00
430107fcd8 draft impl of Record<string>
this specialisation of the Record template is provided as
default implementation for simple unit tests
2015-08-16 01:35:31 +02:00
bfb7bbd2f5 implement Record: operator string() for diagnostics 2015-08-16 01:35:30 +02:00
5b0d58518e WIP: stub GenNode ref 2015-08-16 01:35:30 +02:00
d92878876a WIP: attempt to define the object builder invocation chain
TODO still unresolved issues with the bootstrap.
Looks like we shall not initiate from the basic Rec(),
but reather require an explicit construction.
2015-08-16 01:35:30 +02:00
8e990fc04d WIP: simple implementation / stubbing
especially I've now decided how to handle const-ness:
We're open to all forms of const-ness, the actual usage decides.
const GenNode will only expose a const& to the data values

still TODO is the object builder notation for diff::Record
2015-08-16 01:35:30 +02:00
1fa7a4a437 WIP: define the full set of default copy operations explicitly
on a second thought, this "workaround" does not look so bad,
due to the C++11 feature to request the default implementation explicitly.
Maybe we'll never need a generic solution for these cases
2015-08-16 01:35:30 +02:00
f15266e435 GenNode(#956): define the ctors
implies decision on the ID representation
2015-08-16 01:35:30 +02:00
7ea4f739bd introduce a new header for #984 2015-08-16 01:35:29 +02:00
248fbef9b4 WIP: draft a DSL for simplified definition of literal records
This is just a draft for now -- kindof a by-catch, since it is
chep to build that DSL on top of the Rec::Mutator.
This DSL could be of value later, when it comes to define
some configuration data inline, in a copact and clear fashion,
without the need to use a bridge to/from JSON
2015-08-16 01:35:29 +02:00
b81419ad63 WIP: decide to implement the record ref as simple referenc wrapper 2015-08-16 01:35:29 +02:00
c70ad01ad3 resolve some conflicts in the design of the "External Tree Representation"
for the purpose of working out the inner logic, I frequently use the
help of a mindmap -- so why not commiting this alongside? For sure,
it is preliminary and the worked out concepts will be cast in code
and documented on the website. Yet the thought-process leading to
these decisions might be of some interest, at least for myself.
2015-08-16 01:35:29 +02:00
8e27416594 planning towards a tree diff language
before engaging into the implementation of lib::Record,
I prefer to conduct a round of planning, to get a clearer
view about the requirements we'll meet when extending
our existing list diff to tree structures
2015-08-16 01:35:29 +02:00
b91734b0a6 WIP: first draft -- properties of an external symbolic record type
This Record type is intended to play a role in the
diff description / exchange of GUI data structures.
2015-08-16 01:35:28 +02:00
ff0950fd3b DOC: a note regarding Lumiera Forward Iterators and the range-for loop 2015-08-16 01:35:28 +02:00
e40c85fd7b DOK: rename Track -> Fork (III) -- closes #155
Introduce the new term "Fork" at various relevant places
within the documentation. We do not entirely purge the
term "track" though; rather we

- make clear that "Fork" is the entity to build tracks
- use "fork" also synonymous to the "tree of tracks"
2015-05-31 03:46:05 +02:00
07822182d9 player: planning play proces memory management 2015-05-30 17:52:44 +02:00
dece405801 LANDING: transition to GTK-3
This switches the Lumiera UI from GTK-2 to GTK-3
Unfortunately, this move breaks two crucial features, which have been
disabled for now: the display of video and our custom timeline widget.

Since both of these require some reworking, which in fact has already
started, we prefer to do the library and framework switch right away.
2015-05-30 17:11:41 +02:00
75aa5c970e summarise my thoughts regarding the 'External Tree Description'
seems like a new concept, closely related to the 'systematic metadata' RfC
2015-05-26 16:17:00 +02:00
6de24bc7f0 Ticket #956: decide layout and handling of GenNode elements
to carry out that rather obvious step, I was bound to consider
all the implications of choosing a given layout and handling pattern
for our external structure representation.

Finally, I settled upon the following decisions
- the value space represented within the DataCap is flat, not further structured
- the distinction between "attribute" and "nested object" is merely conceptual
  and will be enforced solely by the diff detection / representation protocol
- basically, a nested subtree may appear as an attribute; the difference
  between attributes and children lies solely in the way of access and referral:
  by-name vs. positional
- it is pointless to save space for the representation of the discriminator ID
- but we can omit any further explicit type tag, because
- we do *not* support programming by switch-on-type, and thus
- we do *not* support full introspection, only a passive type-safety check
- this is *not* a limitation, since we acknowledge that GenNode is a *Monad*
- and the partial function needed within any flatMap implementation
  maps naturally onto our Variant-Visitor; thus
- the DataCap can basically just *be* a Variant
- and GenNode has just to supply the neccessary shaffolding
  to turn that into a full fledged Monad implementation, including
  direct construction by wrapping a value and flatMap with tree walk
2015-05-02 01:11:39 +02:00
Christoph Varga
f952cad073 Lumiera GUI thoughts -- Mindmap to complement the Interface concept PDF
This mindmap explains some of the ideas and concepts in more detail.
It can be viewed with the "freeplane" mind mapping software.
("freemind" works as well, but will mess up some of the formatting)
2015-04-26 23:22:42 +02:00
Christoph Varga
05e5ab95a3 Lumiera GUI thoughts -- early draft for an interface concept
note by the committer: this mindmap was really work in progress.
Christoph shared it with me while in discussion. I'll place it
here in the git history, since it might be interesting to se
how the thoughts evolved. Isn't that what mindmaps are all about?
2015-04-26 23:22:40 +02:00
51cdc85e58 back from LAC2015: re-read and simplify the code draft 2015-04-13 15:49:38 +02:00
723d1e0164 settle architectural considerations regarding the TreeMuator concept
so yes, it is complicated, and inevitably involves three layers
of indirection. The alternative seems to bind the GUI direcly to
the Session interface -- is there a middle gound?

For the messages from GUI to Proc, we have our commands, based
on PlacementRef entities. But for feeding model updates to the
GUI, whatever I consider, I end up either with diff messages or
an synchronised access to Session attributes, which ties the
responsiveness of the GUI to the Builder operation.
2015-04-03 20:10:22 +02:00
e490fe0263 expand that draft to cover some of the technicalities
- how to deal with children
- how to integrate typing of children
2015-04-01 02:45:22 +02:00
513c02d767 design breakthrough? concept how to implement tree mutations
this is an attempt to resolve the "impedance mismatch" between
a generic metadata model and heterogeneous GUI implementation code
2015-03-30 00:25:37 +02:00
7742d78ba7 investigating use cases of state update notification
the scope is to find out what is relevant for the diff representation,
to be able do design the GenNode element accordingly
2015-03-22 17:39:47 +01:00
b051845835 identify and decide on some of the insidious questions of design
- how to deal with typing
- how to relate equality and mutations
2015-03-21 19:23:41 +01:00
f5ddfa0dbe decide on the foundations of tree diff representation
- we use a GenNode element
- this holds a polymorphic value known as DataCap
- besides simple attribute values, this may hold collections of GenNode sub elements
- a special kind of GenNode collection, the Record, is used to represent objects

The purpose of this setup is to enable an external model representation
which is only loosely coupled to the interndal data representation
through the exchange of (tree)diff messages
2015-03-21 02:00:55 +01:00
9a9e17578c extended planning to define the operation of UI-Bus and model update
this includes a decision about the tree diff representation and handling format
2015-01-17 16:08:56 +01:00
28d18a7326 refactoring: better name for the query focus shifting operation
previously this operation was named 'attach', which an be confused
with attching an object to this location. Indeed, the session interface
even offers such an attach function. By renaming the focus moving
operation into QueryFocus::shift(Scope), this ambiguity is resolved
2015-01-08 15:13:27 +01:00
8b6177a1c5 Design: Backbone of the GUI
This is the first step towards a generic backbone to connect
any GUI elements to the session within Proc-Layer.

It is based on a spefic understanding of Model-View-Controller,
which turns the Model-Controller interactions into messages.
2015-01-06 23:44:58 +01:00
371c13f790 add TODO markers regarding #959
Some parts of the GUI model will be remoulded
2015-01-05 15:47:23 +01:00
1a5e5eaa10 DOC: Wiki / UML clean-up
Remove some orphaned diagrams and PNG images not actually used
in the TiddlyWiki. Add a page with some hints regarding Bouml

See also #960 -- Bouml has been discontinued and is closed source now
not sure how to proceed with this
2015-01-05 15:44:17 +01:00
6d5f86423c sharpening the concept of structured data exchange through diff 2015-01-03 12:36:10 +01:00
beb57cde22 DOC: decision to use a simplistic implementation to start with
This means to discontinue any research into emitting an optimal
diff verb sequence for now and just to document the possible path
I see to reach at such a optimal solution later, when it turns out
to be really necessary performance wise.

Personal note: I arrived at this conclusion while whatching the
New Year fireworks 2014/2015 at the banks of the Isar river in
the centre of the city.
Too sad that 2014 didn't bring us World War III
2015-01-01 04:11:20 +01:00
73f310eb23 DOC: reread and slightly reworded 2014-12-23 02:18:28 +01:00
fe9105f321 DOC: reasoning behind the construction of our list diff algorithm
this is a theoretical description of our method, and gives
the reaoning why it is correct, plus the assesment of
size and complexity order.
2014-12-22 05:20:49 +01:00
42f69b6cb5 DOC: assumptions and definitions for diff handling
...plus a started draft of the list diff algorithm
2014-12-21 07:48:04 +01:00
e00a08b056 reorganise the DSL aspect of the design
we want a simple and straight forward way of defining tokens
of the "diff language". Each token is bound to a specific
handler function in the language interpreter interface.
2014-12-14 03:47:23 +01:00
c911456909 Refactoring: separate DiffLanguage, Interpreter and concrete Language definition
Problem is that likely we'll get a ListDiffLanguage and a TreeDiffLanguage;
after all, I really don't know yet how far to take this whole
diff representation endeavour...
2014-12-12 04:17:02 +01:00
55f49746a1 clarify diff implementation approach 2014-12-06 23:35:22 +01:00
f4cb2896b7 WIP: start with drafting the GUI diff representation
...first step is to design a generic linearised list diff representation.
Basically just need to pull together the theoretical work of the last weeks.
Next steps will be to extend to typed ordered trees.
2014-12-01 02:50:46 +01:00
09e7e1f8f5 WIP: pondering diff representation variants
Actually I arried at the conclusion, that the *receiving* of
a diff representation is actually a typical double-dispatch situation.
This leads to the attempt to come up with a specialised visitor
as standard pattern to handle and apply a diff. Obviously,
we do not want the classical GoF-Visitor, but (yes, we had
that discussion allready) -- well in terms of runtime cost,
we have to deal with at least two indirections anyway;
so now I'm exploring the idea to implement one of these
indirections through a functor object, which at the same time
acts as "Tag" in the diff representation language (instead
of using an enum as tag)
2014-11-10 04:00:39 +01:00
ed54f44b5e Write down some fundamental insight regarding diff algorithms 2014-11-07 03:58:37 +01:00
85d24e980d Design: devise a "linear diff language"
This DSL is usable as wire format for sending
structural change data to another, loosely coupled entity.
A similar format could be used for model serialisation later on.
2014-11-04 04:56:19 +01:00
c09e14f4dc Analysis: some conclusions regarding the diffing mechanism 2014-11-03 02:19:37 +01:00
4c74a2dd43 Design: draft a tree diffing algorithm 2014-10-27 04:49:32 +01:00
6c663a5c9e Design: elaborating how GUI model updates might work
esp. regarding parallelism
2014-10-27 04:48:49 +01:00
a35a6b0724 Design decision regarding model communication in the GUI
this is a quite fundamental decision: we split the GUI into
two sub-layers, and one of them is GTK agnosic
2014-10-25 04:00:11 +02:00
20105d1228 Design: considerations regarding widget structure in the timeline 2014-10-25 03:37:20 +02:00
ead58d03a9 DOC: expand concept map
I know that "reactive" is some kind of a fad currently.
But the term captures the intent very well, and I for sure
wanted such a GUI 5 years ago. Waiting after each stroke or
trim for 5 seconds or even 30 seconds for the UI to update
just totally sucks and kills any creative flow.

We all know that an application needs to be built for reactivity
and exactly that is what we do.
2014-10-25 01:56:44 +02:00
41a711120c planning the access structure to session content
initial considerations; there is a concurrency problem, since
all of session handling within Proc is deliberately not threadsafe.
Thus the decision is to make this the gui::model::SessionFacade's responsibility
2014-10-19 05:54:20 +02:00
1c0e86d373 DOC: complete the core concepts of workflow
A lot of details could be expanded, but this are the
most important concepts and relations for any GUI design
2014-10-18 22:53:55 +02:00
ac5816df4f DOC: expand on the core concepts of workflow 2014-10-18 21:39:13 +02:00
ed601d9eba DOC: start a concept map for workflow and interaction design 2014-10-17 04:02:56 +02:00
99438d459c some notes regarding the design of a GUI proxy model 2014-10-17 03:43:01 +02:00
718d544d8e Design: decide on the conventions for representing a timeline in the GUI
Actually this is nothing new, just making explicit what is evident
from the definition of the Proc-Layer model entities. By following
these conventions, it should be possible to come up with a
clearer structure for the custom timeline widget(s).
2014-10-16 04:38:44 +02:00
7c3efb309a explain the term 'subsystem' 2014-02-16 22:03:47 +01:00
5d835c71f3 TiddlyWiki: fix some orphaned pages
...caused by image names starting with upper case letter
2014-02-16 22:02:55 +01:00
6822a9e2fb DOC: reorganise the Doxygen configuration and structure
- upgrade the configuration to a current version
- provide a frontpage with cross-links to other documentation
- define a set of modules; relevant classes and files can be
  added to these, to create a exploration path for new readers
- fix a lot of errors in documentation comments
- use a custom configuration for the documentation pages
- tweak the navigation, the sections and further arrangements
2013-10-25 06:34:38 +02:00
567ab3819b WIP: draft an improved version of the Singleton factory
...this would both improve our general design and circumvent
the problems with Clang and static variables
2013-10-14 01:18:56 +02:00
5cbc152833 before FrOSCon 2013: recent coding work and documentation improvements 2013-08-20 04:42:57 +02:00
160dafebdb WIP re-read the code, try to understand the problem to be solved
unfortunately there was an interruption of more than a month
since my last Lumiera contribution
2013-08-13 01:16:29 +02:00
fada231a6b upgrade TiddlyWiki to v2.8.1
Notably TiddlyWiki provides now a fallback mechanism
in case the saving to a local file fails due to security
restrictions. When this happens, TiddlyWiki generates a
download link pointing to the current content; this way
one is at least able to "save as" through the browser
context menu.

Due to some controversial policy changes in recent Firefox versions
the support for saving to local files was removed. The rationale
given by the Firefox developers was that this is a rarely used
and generally outdated concept; preferrably people shall use
extensions and save to cloud services (!)

Anyway, Jeremy Ruston, the original author of TiddlyWiki, wrote
a Firefox plugin called "TiddlyFox" to work around these
arcane limitations.
2013-08-10 05:36:57 +02:00
77066ee3ce WIP: how to start the actual calculation streams within EngineService
this draft fills in the structure how to get from an invocation
of the engine service to the starting of actual CalcStream instances.

Basically the EngineService implementation is repsonsile to
instruct the Segmentation to provide a suitable Dispatcher.
2013-06-03 05:25:13 +02:00
723096d3f2 WIP introduce a new kind of job closure to perform the planning
this might help solving that gordian knot related to the TimeAnchor,
the Dispatcher and the introduction of a possible playback strategy
2013-06-02 03:09:18 +02:00
56be672358 WIP: reworking the dispatcher interface
the goal is still how to introduce a playback strategy
2013-05-30 02:10:56 +02:00
8982223a4d pondering about a suitable definition of a planning chunk (#920)
mostly this seems to be a matter of getting the terms
and meaning of the involved entities straight
2013-05-21 04:35:25 +02:00
7c596a8089 remove the old Main-TiddlyWiki
this is superseded by our website since a looooong time.
I've just re-checked that all relevant content is indeed
migrated to Lumiera.org
2013-05-20 03:33:53 +02:00
00dc435169 upgrade TiddlyWiki to v2.7.2
we were using an very ancient TiddlyWiki version, basically
unaltered since the start of the Lumiera project.

Recent Firefox versions (starting with FF-17) effectively
removed the ability for JavaScript code to get additional
privileges for writing local files; this change seriuosly
undermines the usability of TiddlyWiki and a lot of similar
portable local JavaScript applications.

The original author of TiddlyWiki, Jeremy Ruston, has written
a Firefox plug-in to work around this restriction; this prompts
us to upgrade to a recent TiddlyWiki version as well.

The good news is: recent TiddlyWiki versions are able to import
Tiddlers from older Wikis without much hassle.
2013-05-20 03:24:02 +02:00
7ada9ff291 consider how to integrate a playback mode strategy 2013-02-11 03:19:24 +01:00
9f7e229a12 DOC: requirement analysis of playback modes 2013-01-19 23:29:10 +01:00
30409e66bd WIP: considering how to support non-linear playback modes 2013-01-13 23:20:20 +01:00
f41d3221c8 remove the old "main" TiddlyWiki
now, the Proc-Layer TiddlyWiki is the only one to survive...
2013-01-03 11:22:41 +01:00
65feeb83fd supply some documentation about lumiera::Query 2013-01-02 03:32:49 +01:00
e902757a14 (DRAFT) refactor the way how to retrieve the syntactic query representation
there can't be a callback from the base ctor;
instead the subclass must pass a QueryText definition
2012-12-29 00:31:24 +01:00
5dfe5e099f refactor namespaces for query and defaults manager 2012-12-01 08:44:07 +01:00