Commit graph

3530 commits

Author SHA1 Message Date
dd8a88d095 adjustments and stubbing to get it past the compiler 2012-11-26 01:22:01 +01:00
b5a7055f29 move Query interface to Lib 2012-11-25 02:29:52 +01:00
baefd74ae7 prepare refactoring of the Query interface 2012-11-25 02:04:19 +01:00
2f1aa5ff58 switch off enum warning for now (#898) 2012-10-15 04:29:19 +02:00
62bfccd67b cleanup: remove the old factory template
This template was a leftover from the early days
of Lumiera development and doesn't provide any
substantial value as an abstraction.

For the more intricate cases, we're using the
lib::MultiFact template, which allows to install
several "fabrication" functions at runtime
2012-10-14 01:30:08 +02:00
23cac22a9f Sync Documentation 2012-10-10 06:14:58 +02:00
2867dc1870 comment on the SemanticTags proposal 2012-10-10 06:11:32 +02:00
Michael Fisher
f7a7c1c416 GCC 4.7 compilation fixes. Now builds on debian wheezy beta2 2012-10-10 05:29:54 +02:00
Michael Fisher
e267e0ad0b GCC 4.7 compilation fixes
clarify binding of function (by specifying 'this')
2012-10-10 05:25:42 +02:00
954ebefc4c draft implementation of the PlanningStepGenerator 2012-10-10 05:20:24 +02:00
44435fd1db clarify and settle the relation between Dispatcher and PlanningStepGenerator
the solution is to introduce a superinterface
and let Dispatcher augment that with the specific parts.
This way, the Job planning only has to rely on the
rather generic stuff (TimeAnchor, FrameCoord)

NOTE: this commit makes the whole JobPlanning machinery
compilable for the first time!
2012-10-10 05:20:23 +02:00
3300d00cc8 WIP working towards a solution for generating frame location sequences
..the Idea is to rely on some kind of service,
to break the cyclic dependency with the Dispatcher.
But I seem unable to find a natural location or
concept to house that service.
2012-10-10 05:20:23 +02:00
ce5b940d39 WIP consider how to seed the evaluation of a JobTicket 2012-10-10 05:20:23 +02:00
14e6086488 better do initialisation by ctor 2012-10-10 05:20:22 +02:00
30cf0b5718 implementation of JobTicket::ExplorationState 2012-10-10 05:20:22 +02:00
062e1bbdc1 explicate the JobPlanningSequence definition
..causing the compiler to instantiate the
involved templates, i.e. get the complete
pipeline definition through the compiler
2012-10-10 05:20:22 +02:00
b52a1a8366 refactor JobTicket to remove the double layering
basically we had two lines of doubly nested capsules, due to
using the IterAdaptor template. Actually, the evaluation stack
within JobTicket can be considered an implementation detail and
thus doesn't require an iterator interface; the intention is to
use this through JobPlanning solely.

Thus this reworking removes the special iterator within JobTicket,
but retains the idea of exposing the "current" JobTicket through
a smart pointer or  operator->()

work done during the FrOSCon travel
2012-10-10 05:20:21 +02:00
66defdc0cb refactor JobPlanning to encapsulate all state mechanics into a "state core"
especially the exploration stack is pushed down
first successful definition of all the JobPlanning classes

just the framework of classes necessary to pass the compiler;
all implementation is still stubbed
2012-10-10 05:20:21 +02:00
a3bc69cc77 maybe a breakthrough on the job planning design quest?
why the hell is getting this design about right
such a chellenging task. Anyway, seems to be the
first step ahead after numerous failed attempts
2012-10-10 05:20:21 +02:00
88f433f433 successfully implemented another combinator strategy
DOH!
this thime hopefully I've actually succeedd to
created what is actually required in the Dispatcher
2012-10-10 05:20:20 +02:00
e073d05f58 new header to define some class partially noncopyable 2012-10-10 05:20:20 +02:00
016a739a5c WIP back to the original problem: how to dispatch jobs...
brainstorming how to implement the job planning stage

the idea is to built on top of the IterExplorer,
but have the "stack" of re-evaluation integrated
into a custom type, which exploits the static
node network structure to avoid heap allocations

solution idea: again use a builder function?
2012-10-10 05:20:20 +02:00
e76b85fcfa fix test broken by #410 2012-10-10 05:20:19 +02:00
0e3821abeb refatcor function meta programming headers
the template _Fun started as an internal helper
for function-closure, but seems to be of
general use. Thus move it into meta/function.hpp
(function-closure.hpp is heavyweight)
2012-10-10 05:20:19 +02:00
e6a105fbc1 iterator exploring monad finished, passes unit test 2012-10-10 05:20:19 +02:00
3d0d599158 get the depth-first exploration test to work
...using the IterQueue for intermediary results
2012-10-10 05:20:18 +02:00
2c33000346 complement IterStack by a similar wrapper for queue-like access 2012-10-10 05:20:18 +02:00
8ced6758fb initial draft for recursive evaluating iterator monad
tricky design problem, because nothing is known about
the source and result sequences to be built.
2012-10-10 05:20:18 +02:00
59c5627bbe change Implementation class for IterStack
now using a std::deque directly; this allows
for a later extension for queue-like behaviour
2012-10-10 05:20:18 +02:00
41180eb99c rework to allow for recursive evaluation
this enables expansion of a (functional) data structure
until exhaustion -- which is what we need to
build job functors by traversing and expanding
an arbitrarily nested job definition structure
2012-10-10 05:20:17 +02:00
75df583607 raw version of ChainedIter passes unit test 2012-10-10 05:20:17 +02:00
697924925c pragmatic fix for the long-standing problem of detecting increment operator
our duck-detector had a shortcoming here and failed
to detect iterators, in case the increment operator
was inherited from a mix-in
2012-10-10 05:20:17 +02:00
8db5413199 implemented chained-iterators
...using the IterExplorer building blocks
2012-10-10 05:20:17 +02:00
d14b37a71d utility class factored out and covered by test
...a stack which can be Lumiera-iterated
2012-10-10 05:20:16 +02:00
da4a343e9e refactor IterExplorer to allow for more flexible strategy definition 2012-10-10 05:20:16 +02:00
dc3ebd4a8f first working concept for an "iterator monad"
the intention is to use this to simplify
generating render jobs based on the elaborated
dependency network of the render nodes. The key
challenge is to overcome the necessity to
store partially done evaluations as
continuation
2012-10-10 05:20:16 +02:00
3a7db1603e add test for the base case 2012-10-10 05:20:16 +02:00
eedcd69941 draft the IterExplorer design
the tricky part seems to be how to combine the
source iterators into a new monad instance, while
keeping this "Combinator" Strategy configurable

...just passes the compiler, while still lacking
even the generic implementation of joining
together the source iterators
2012-10-10 05:20:16 +02:00
45f4c96c6f change LinkedElements to us a more space efficient iterator
Actually we don't need any backreference to the
container for iterating a singly linked list
2012-10-10 05:20:15 +02:00
378ebe21f0 Fix naming of Iteration control API functions (closes #410)
comes in handy now, since IterStateWrapper uses a similar API
2012-10-10 05:20:15 +02:00
83a0f4b41f Implementation (I) : IterStateWrapper as foundation (passing test) 2012-10-10 05:20:15 +02:00
ab2a6b2fce WIP brainstorming about a monadic iterator
The idea is to avoid building a data structure
for intermediary results, while still being able
to process a variably sized and arbitrary shaped
set of source data
2012-10-10 05:20:15 +02:00
fa15a38016 draft JobTicket implementation datastructure
...but need an extension on our iterator helpers
to build a suitable functional datastructure
for generating Jobs.
2012-10-10 05:20:15 +02:00
3ef1fb7697 linked list helper template finished and passes test 2012-10-10 05:20:14 +02:00
c33fcf9797 WIP draft a linked list helper template 2012-10-10 05:20:14 +02:00
ddff8b654b WIP investigating the relation of Jobs, JobTicket and Closure in detail 2012-10-10 05:20:14 +02:00
4ceec90b9e design decision how to invoke a job
without any trickery, we'll always get two indirections.
Thus, the decision is to turn the 2nd indirection
into a VTable call; this way, basically the JobClosure
also acts as job functor itself.
2012-10-10 05:20:13 +02:00
0320bc4b2c considering the relation of Job and JobClosure 2012-10-10 05:20:13 +02:00
bb43c03ef9 stub all the job generating functions required for the dispatcher interface 2012-10-10 05:20:13 +02:00
0ab773ab7c helper to pull all elements from an iterator, yielding the last one 2012-10-10 05:20:13 +02:00