Skip to content

Compilation should leverage my quad core laptop power #17

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ffissore opened this issue Sep 24, 2015 · 22 comments
Closed

Compilation should leverage my quad core laptop power #17

ffissore opened this issue Sep 24, 2015 · 22 comments
Labels
type: enhancement Proposed improvement
Milestone

Comments

@ffissore
Copy link
Contributor

ATM every gcc call is done sequentially, but both library and core compilation can run in parallel

@ffissore ffissore self-assigned this Sep 24, 2015
@ffissore ffissore modified the milestones: 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.6 Oct 27, 2015
@ffissore ffissore modified the milestone: 1.0.6 Nov 4, 2015
ffissore pushed a commit that referenced this issue Nov 27, 2015
-jobs X param is specified and X is greater than 0, arduino-builder won't spawn
more than X processes. Fixes #17

Signed-off-by: Federico Fissore <[email protected]>
ffissore pushed a commit that referenced this issue Nov 30, 2015
-jobs X param is specified and X is greater than 0, arduino-builder won't spawn
more than X processes. Fixes #17

Signed-off-by: Federico Fissore <[email protected]>
@ffissore
Copy link
Contributor Author

ffissore commented Dec 1, 2015

A first implementation is available in parallel branch. It lacks proper output management. At the moment, everything is thrown at stdout, meaning the output is likely to get clutter and logger messages will eventually contain syntax errors

ffissore pushed a commit that referenced this issue Dec 1, 2015
-jobs X param is specified and X is greater than 0, arduino-builder won't spawn
more than X processes. Fixes #17

Signed-off-by: Federico Fissore <[email protected]>
ffissore pushed a commit that referenced this issue Dec 2, 2015
-jobs X param is specified and X is greater than 0, arduino-builder won't spawn
more than X processes. Fixes #17

Signed-off-by: Federico Fissore <[email protected]>
ffissore pushed a commit that referenced this issue Dec 2, 2015
…ed way.

Thus we are sure that those outputs do not interfere with our own output,
otherwise leading to wrongly formatted log messages. Fixes #17

Signed-off-by: Federico Fissore <[email protected]>
ffissore pushed a commit that referenced this issue Dec 2, 2015
-jobs X param is specified and X is greater than 0, arduino-builder won't spawn
more than X processes. Fixes #17

Signed-off-by: Federico Fissore <[email protected]>
ffissore pushed a commit that referenced this issue Dec 2, 2015
…ed way.

Thus we are sure that those outputs do not interfere with our own output,
otherwise leading to wrongly formatted log messages. Fixes #17

Signed-off-by: Federico Fissore <[email protected]>
@PaulStoffregen
Copy link

Maybe you should come up to speed on Go language? That's probably a shorter & more successful path than trying to convince other people to spend their time implementing a feature they've said they do not intend to create because it doesn't make practical sense.

@xcvista
Copy link

xcvista commented Jul 10, 2016

@PaulStoffregen Meanwhile would you guys offer some internal documentations?

@PaulStoffregen
Copy link

I'm pretty sure the only available documentation, aside from the source code, is this wiki: (notice this is 1 of the 14 pages)
https://github.com/arduino/Arduino/wiki/Build-Process

@xcvista
Copy link

xcvista commented Jul 10, 2016

@PaulStoffregen So I, being a newbie to the Go language, have to reverse engineer an existing codebase. Yeah like that would help a lot.

@PaulStoffregen
Copy link

That's a really creative usage of the term "reverse engineer", which usually means figuring out how something works without access to its source code.

@xcvista
Copy link

xcvista commented Jul 10, 2016

@PaulStoffregen Backtracking a poorly-documented code base is no less difficult than black box analysis.

@PaulStoffregen
Copy link

PaulStoffregen commented Jul 10, 2016

This arduino-builder repository contains only 7816 lines in all its source files, not including the automated tests, and many of those lines are redundant license headers, comments or white space. It's simply not a huge code base. Almost all files and functions have very descriptive names, like "generate_buildpath_if_missing.go". There is a 14 page wiki which does document the data formats and general ideas of the build process.

Calling this project poorly-documented sounds to me like whining.

@xcvista
Copy link

xcvista commented Jul 10, 2016

@PaulStoffregen All while I personally have zero days of Go knowledge.

@NicoHood
Copy link

I miss @ffissore :(

@andig
Copy link

andig commented Jul 10, 2016

@xcvista imho the discussion is a little inappropriate. As Paul has said: its open source, go fix it or leave it if the developers have other priorities. If thats beyond your skills too bad. You may also have chances offering a bounty to make your contribution to the project.

Or: give platformio a try, it has parallel builds and loads of other things that Arduino doesn't offer.

@xcvista
Copy link

xcvista commented Sep 21, 2016

Coming to think of it, if moving to using Makefiles as an intermediary step, we need and only need the discovery step to find all the libraries. For my personal preference I would first assemble a pre-build source tree that have all core and library code files linked or copied over, throw a generic portable makefile in there and exec make.

facchinm added a commit that referenced this issue Nov 29, 2016
If -jobs X param is specified and X is greater than 0, arduino-builder won't spawn more than X processes. Fixes #17

Signed-off-by: Federico Fissore <[email protected]>
copercini added a commit to copercini/arduino-builder that referenced this issue Aug 14, 2017
If -jobs X param is specified and X is greater than 0, arduino-builder won't spawn more than X processes. Fixes arduino#17

Based on Federico Fissore code arduino@0a3d888
Removed an if which suppress some gcc errors here arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
copercini added a commit to copercini/arduino-builder that referenced this issue Aug 14, 2017
If -jobs X param is specified and X is greater than 0, arduino-builder won't spawn more than X processes. Fixes arduino#17

Rebased from Federico Fissore branch arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
Remove and if which suppress some GCC error messages here: arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
copercini added a commit to copercini/arduino-builder that referenced this issue Aug 14, 2017
If -jobs X param is specified and X is greater than 0, arduino-builder won't spawn more than X processes. Fixes arduino#17

Rebased from Federico Fissore branch arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
Remove an if which suppress some GCC error messages here: arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
copercini added a commit to copercini/arduino-builder that referenced this issue Aug 14, 2017
If -jobs X param is specified and X is greater than 0, arduino-builder won't spawn more than X processes. Fixes arduino#17

- Rebased from Federico Fissore branch arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
- Add HumanTagsLogger compatibility
- Remove an if which suppress some GCC error messages here: arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
facchinm pushed a commit to facchinm/arduino-builder that referenced this issue Sep 15, 2017
If -jobs X param is specified and X is greater than 0, arduino-builder won't spawn more than X processes. Fixes arduino#17

- Rebased from Federico Fissore branch arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
- Add HumanTagsLogger compatibility
- Remove an if which suppress some GCC error messages here: arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
facchinm pushed a commit to facchinm/arduino-builder that referenced this issue Jan 10, 2018
If -jobs X param is specified and X is greater than 0, arduino-builder won't spawn more than X processes. Fixes arduino#17

- Rebased from Federico Fissore branch arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
- Add HumanTagsLogger compatibility
- Remove an if which suppress some GCC error messages here: arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
cmaglie pushed a commit to cmaglie/arduino-builder that referenced this issue Jan 10, 2018
If -jobs X param is specified and X is greater than 0, arduino-builder won't spawn more than X processes. Fixes arduino#17

- Rebased from Federico Fissore branch arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
- Add HumanTagsLogger compatibility
- Remove an if which suppress some GCC error messages here: arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
facchinm pushed a commit to facchinm/arduino-builder that referenced this issue Jan 10, 2018
If -jobs X param is specified and X is greater than 0, arduino-builder won't spawn more than X processes. Fixes arduino#17

- Rebased from Federico Fissore branch arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
- Add HumanTagsLogger compatibility
- Remove an if which suppress some GCC error messages here: arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
cmaglie pushed a commit to cmaglie/arduino-builder that referenced this issue Jan 10, 2018
If -jobs X param is specified and X is greater than 0, arduino-builder won't spawn more than X processes. Fixes arduino#17

- Rebased from Federico Fissore branch arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
- Add HumanTagsLogger compatibility
- Remove an if which suppress some GCC error messages here: arduino@0a3d888#diff-8f074e2b3fc911dbe8255891fc1a9b13R96
cmaglie pushed a commit that referenced this issue Jan 11, 2018
If -jobs X param is specified and X is greater than 0, arduino-builder won't spawn more than X processes. Fixes #17

Signed-off-by: Federico Fissore <[email protected]>
@cmaglie cmaglie added this to the 1.3.26 milestone May 31, 2018
@rsora rsora added the type: enhancement Proposed improvement label Sep 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: enhancement Proposed improvement
Projects
None yet
Development

No branches or pull requests

8 participants