Comments (12)
Don't agree with using an overly-complex build system. A simple makefile should be more than enough.
Check out this code philosophy; I think your code is so tiny it fits right in.
https://github.com/nothings/single_file_libs
from libaco.
Thanks Markus for your nice proposal :D
The reason why I choosed to write a simple bash script make.sh is because:
- The libaco is very simple to build and also has very minimal dependencies on the POSIX.
gcc -g -O2 acosw.S aco.c app_of_libaco.c -o app_of_libaco
- Using bash scripts could make the C flags matrix build process easier and clearer.
But still, adding the higher level build system support could even better.
I would like to add it to the ToDo list and it would be released in the future v1.3.0 since it is not so urgent.
Edit:
The reason why there is no such static or shared library makefile for libaco is because:
- There are several C macro config choices in libaco's build;
- The binary of libaco self is so tiny (15k~).
So, I think the best option for the developer is to configure the C macros and compile libaco himself. It would be clearer and is more impossible to make a mistake.
from libaco.
- Does a tool like “autoscan” show any software dependencies that you find worth for further considerations?
- How do you think about to support more development environments by the reuse of build system generators?
from libaco.
Maybe I'll choose to use CMake, but the priority of this issue is not so high.
from libaco.
I have just committed a simple Makefile demo for test_aco_synopsis.c. A full functional makefile (also including the test suites) will come with the release of v1.3.0.
from libaco.
I propose to invest development resources more in better build scripts than in a questionable make file.
from libaco.
Of course, we will. That Makefile is just temporary and will be substituted in the future with our formal build system generator. I should have commented on it clearly.
from libaco.
How do you think about to avoid intermediate work if you became convinced that other development approaches will provide better functionality?
from libaco.
from libaco.
Thank you very much for your kindly advice, @ddengster.
In the future, even we decide to add some build system generator, that would be only limited to the build of the test suites. There would be no such static or shared library makefile for libaco (the reason is described in the 2nd comment of this thread) unless there are some very strong benefits.
from libaco.
Is a build approach like “GNU Libtool” another incentive for further evolution in this software area?
from libaco.
Any updates on this @hnes ? 🙂
from libaco.
Related Issues (20)
- Request: having a version of aco_yield() that receives the coroutine to where to yield
- 为什么使用自行编写的acosw.S汇编来切换上下文,而不是使用现成的setjmp? HOT 1
- 不再活跃维护/更新/开发了吗? HOT 2
- Document c standard library dependencies
- Status and Future Plans of libaco
- can libaco support yield/resume between threads? HOT 3
- Provide way to return error to caller instead of calling `abort()` on failed assertions HOT 1
- is it worth to create coroutine inside coroutine?
- which one better to pass argument to co function
- 关于libco bug的疑问
- Thread local storage support HOT 1
- Feature request: Ability to return a value from aco_yield() HOT 1
- Feature Request: aco_get_co() return NULL when the caller is main co HOT 4
- is 120byte the lowest we can have? possible to lower this? HOT 1
- Do libaco coroutines run on different CPUs at the same time. i.e. does the program performance benefit from having multiple CPUs HOT 2
- Question: which is faster, creating new coroutines or reusing old coroutines HOT 3
- resume multiple coroutines in parallel HOT 1
- Integrate into our io engine? HOT 1
- add arm32/aarch64 support for android and ios HOT 1
- `aco_amd64_inline_short_aligned_memcpy_test_ok` size alignment
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 libaco.