Comments (9)
Maybe another one:
- EDM classes shall be concrete (i.e. 'final')
We currently use (some) inheritance in the EDM for two reasons:
a) to store objects in the TES -- this can be done with type-erasure instead (a-la std::any)
b) to extend objects -- this can be done by composition instead, provided 2) is satisfied
from scheduling-event-model.
Can we implement these constraints via the GSL (and the tools that support it)?
from scheduling-event-model.
(I am obviously in favour of straight jackets that help us not to stray from the true path)
from scheduling-event-model.
Interesting suggestion! Not directly the GSL, but if the C++ Core Guidelines become 'extendable' and the static analysers will support 'customisable guideline profiles' (as seems to be suggested) then, eventually, I would expect the answer is 'yes'.
from scheduling-event-model.
Interesting indeed. This needs to be there early on, to make sure the rules are actually applied. Gerhard do you have c C++ AST translation of those requirements ?
from scheduling-event-model.
Unfortunately, no... Note that I do know how to write a check for 4) today: just try to inherit from an EDM class, and check that the compilation fails... 3) is hard, as it not a property of the EDM class, but of its usage, so a constraint on the event store methods. 1) is a performance requirement, and 2) is maybe not a property of an individual class...
So automatic 'machine verification' may be difficult -- but I invite everyone to prove me wrong!
from scheduling-event-model.
I think if we can from the start provide a recipe for automatic checking we
are winning. If it requires a human/cooperation then rules will be useless.
Once you have a working suite for automated testing (that is very easy to
run and extend) adding new tests becomes cheap. It has to be so cheap that
I prefer using the automated test to check if a bug I found has gone away
than my personal script. This does mean you need a high quality setup for
testing:
- easy to add a new test
- has to be fast to run (subsets of tests)
On Thu, Nov 12, 2015 at 11:09 AM GerhardRaven [email protected]
wrote:
Unfortunately, no... Note that I do know how to write a check for 4)
today: just try to inherit from an EDM class, and check that the
compilation fails... 3) is hard, as it not a property of the EDM class, but
of its usage, so a constraint on the event store methods. 1) is a
performance requirement, and 2) is maybe not a property of an individual
class...So automatic 'machine verification' may be difficult -- but I invite
everyone to prove me wrong!—
Reply to this email directly or view it on GitHub
#19 (comment)
.
from scheduling-event-model.
- can be machine checkable (but as a requirement on the event store!) as it is 'just a matter of const correctness'. So two out of four sofar. And 2) may be possible at a slightly higher level, namely to actually write a skeleton which actually composes the object in question in some reasonable way. Or maybe that this becomes an implicit side-effect of requiring eg. the 'FCC YAML' description ;-). And 1) can be done by just doing a move construction, but that won't tell whether it is 'efficient', just that 'it is possible. So maybe three and a half out of four...
from scheduling-event-model.
So maybe we add
- requirements on EDM classes should be machine verifiable
(note the use of 'should' and not 'shall' ;-)
from scheduling-event-model.
Related Issues (14)
- Little projects HOT 5
- Input from Marco Cattaneo HOT 1
- Data preservation
- List of contributions HOT 2
- Scheduling/Framework session schedule HOT 4
- Computational Graph Specification
- Lxplus Ninja HOT 4
- setup-lhcb-build.sh cannot work in chroot environments HOT 4
- Standup HOT 3
- broken links in CONTRIBUTING.md
- Contribution from Florian HOT 6
- Contribution from Pierre HOT 5
- Upgrade tracking HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from scheduling-event-model.