Comments (1)
Seems good 👍
One suggestion: We move all the command line stuff to a separate directory/package/... .
→ The top-level directories would then be: cli, tools, utilities, classes
Currently the cli functionality is already well-separated from the actual implementation but the separation is not really visible as the files all reside in the same directory.
We could even take it even one step further and have completely separate packages for each tool. e.g.
main package for a "standard installation"
discopop
(requires all the cli packages. Installingdiscopop
therefore results in a "full" installation of everything)
cli packages
discopop-explorer-cli
(requiresdiscopop-explorer
)discopop-optimizer-cli
(requiresdiscopop-optimizer
)- ...
pure python packages that provide the python APIs
They each require the discopop-common
package, if needed. If a component is however only needed in one package then it can reside in the respective package.
discopop-explorer
discopop-optimizer
- ...
all the shared stuff goes into discopop-common
discopop-common
- utilities
- classes
In theory this would make it possible to install only the tools needed for the job at hand (+ discopop-common), e.g. if a user is not interested in the optimizer or the patches, only the discopop-explorer(-cli) would need to be installed.
While this is not really a common use case, it would force us into separating concerns more strictly, making the code more reusable and easier to understand.
A downside I can think of: having separate packages for each tool would require us to make sure that installed versions match properly. However this is also something I would also like to see from the VSCX perspective. Currently there is no check to ensure that the installed discopop version is compatible with the VSCX extension. I feel like a notification should show up during startup to let the user know if the (oftentimes automatically updated) extension is intended to work with a different discopop version.
PS:
The discopop-profiler
is completely outdated and can be removed, right?
from discopop.
Related Issues (20)
- wiki: examples: walk-through (VSCX)
- wiki: tools: explorer HOT 1
- wiki: tools: patch generator HOT 1
- wiki: tools: patch applicator HOT 1
- wiki: tools: optimizer HOT 1
- wiki: tools: code generator HOT 1
- wiki: tools: scripts and wrappers HOT 1
- wiki: tools: config provider HOT 1
- wiki: data: cu information HOT 1
- wiki: data: data dependences HOT 1
- wiki: data: parallel patterns HOT 1
- wiki: data: program execution graph HOT 1
- wiki: data: filemapping
- Patterns.json: add hierarchy level HOT 2
- Website: Update certificate
- DiscoPoP: CI: replace bash-based profiler tests by python-based unittests for easier maintenance
- Add check for existing file
- Inquiry about using Discopop for Fortran code analysis HOT 6
- Profiler: Verbose build and DISCOPOP_VERBOSE environment variable
- Add citations for DiscoPoP HOT 1
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 discopop.