The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
If you have a proper IDE and build system, and not the least: a well designed project structure, you modify and develop your submodule with incremental compilation and linking of that submodule.
Absolute rule: You never commit any code that is not syntactically correct or violate coding rules (lint style, or whatever you use for static code analysis). If your system is well structured, and your tools are good, you might spend the time having another sip of coffee, not much more.
Good rule: The commit process includes running basic module tests - a subset that runs through all relevant functions of a 'normal' code run, although not with the full set of all corner case inputs.
So you commit your code, knowing that on the build servers, it will not cause any syntactic errors, and no logical errors for the standard usage cases - at least not at the module level.
What do you do? You go on to the next issue to be handled. The next bug to be fixed, or next extension to be implemented. If it turns out that the complete project build causes errors that are not of an integration kind, then you certainly should have a look at your tool setup. That shouldn't happen.
Even for lots of integration issues, usually a lot could have been detected pre-commit. Details depend a lot on IDE/build tool details. And, of course on discipline within the development team, e.g. regarding header files, if you use such a language. Treating interface definitions as immutable. Things like that.
I am not talking about common practice. More like an ideal. But 'best practices' working habits can get you quite close.
Greetings and Kind Regards May I please inquire how you spend your time while your project is building? As for myself I twiddle my thumbs or watch a portion of a Star Trek episode or stream music or merely surf Cheerios
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
Why don't you spend that time writing a document for management? Rather than compiling locally It might be cost effective for your employer sets up a build server. That way you can continue coding while your project builds on a remote server.
I am a lone programmer working from home and do not have the knowledge to set up a build server but thank you for the suggestion but as my builds are in the five minute range I am not sure it is needed in my situation Thank goodness I do not have to write documentation for management
That depends on what project & what platform. The stuff I work on in Delphi or C++ builds fast. With precompiled headers for C++ anyway. Without them, I might just as well go back to my company's DOS-based product which I also maintain. I got this witty comic printed & glued to the side of the monitor attached to that DOS-based system https://xkcd.com/303
solve a problem in another project (eg if there's an issue or just something I want to implement in one of my personal projects)
check up on Twitter
You could also use the time to listen to a section of an audio book (eg from Audible) - I tend to use my Audible book time during commutes & garden work.
The trick is being able to find something that you can switch to for that time which doesn't run over or dramatically pull you out of the focus you need to complete your current task. If possible, as mentioned elsewhere, move on to the next task.
If you say that getting the money
is the most important thing
You will spend your life
completely wasting your time
You will be doing things
you don't like doing
In order to go on living
That is, to go on doing things
you don't like doing
"build time"?? emm... are you building on PC XT or use punched cards? )
I use C# in VS2019, my "build time" barely exceeds 2-3 seconds. What I do during that priceless time? Oh, I can breath 1-2 times.
I'm absolutely serious and I still have no idea HOW you can build smth for minutes.
My rule: ONE current project + referenced DLLs. If I improve two projects - OK, both of 'em include in solution. But even in that case all compilation is quite quick to do smth else.
I had one of the early laptops (by Olivetti) with twin floppy drives (no HD). I had the compiler and source code on one floppy, the libraries on another floppy. I had a long commute when I was travelling home for the weekend on the train, about four hours. The battery on the laptop would also last about four hours. I would edit my C++ code using Brief for a while, sometimes most of the trip, but sometimes I would want to test some small change so would have to do a build. A full build took just over three and a bit hours so I would just have time to do some editing, do a full build, run a couple of tests on the results, make TODO notes and shutdown just before the battery packed in, and then get off the train.
I would read a paperback book during the build - sometimes a whole one. Ah, the good old days!
- I would love to change the world, but they won’t give me the source code.
It was less build time than startup time - the app built in under a minute, but the open project dialog took a few minutes to load (pulling a zillion times more data from the DB to build fat models instead of the 3 or 4 columns from a single table needed for the list) followed by the detailed application model taking a few minutes to compute (overly complex model, and because it was time dependent and took a while to stabilize computing way more data than actually shown).
I ended up spending a few months trying to figure out how to build a Binder Clip Star[^] using a poor set of directions (the linked one at least shows which wire goes on the outside at all steps, but is missing anything about how you need to hold it at some steps to keep it from self-destructing halfway through).
Eventually we got out of crunch mode and I was able to look at things that weren't my assigned tasks (no one else cared that performance was a tire dump fire ) and un- ed the startup code, sped the main model calculation up by a factor of ~2x, and changed how it was used to not need computing huge amounts of data beyond the displayed range for something like 5-20x typical improvement; and got the compile to start testing my code changes cycle down to under a minute. It still took the model a few weeks to go from bogus starting values to a fully stable state; my not done before the contract ran out next step would've been to save daily snapshots of the model state in the DB to allow faster startup (saving the displayed per minute values would've exploded its size and ate the disk, so we had to recompute on load) by another factor of 5-10x at which point it wouldn't have any obnoxiously long "did it lock up?" pauses.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
If compile time is an essential part of the build time, then you are making a program.
You are not making a software system composed of sevearal program components merged into a whole.
You are not making a software product with nasty elements such as documentation, test logs, ...
Or, maybe you are, but when you say "build time" you are not talking of building the software system product, but to "build" a linkable unit from a source file. Then you might see compiling filling a noticeable part of the build time. Maybe half a second out of two seconds build time ...
Last time I did a make clean, rebuilt the system from scratch, and inspected the last written timestamp on the compiled files, there were typically six to eight of them completed per second. (And last time I did this little exercise was around ten years ago; we've got faster machines today.)
Using compile time as an argument against compiled languages, in favor of interpreted ones, might have been valid in the 1980s. It is not today.
Besides: Because interpreted languages traditionally had lousy run time performance, all major interpreted languages today start the interpretation by doing an on-the-fly compilation... (if they do not find an already compiled version in a cache). So you don't escape the compile time - you just count it as part of the run time.
First, you should learn to consider that someone might be joking. This is the lounge.
Secondly, when I think build I think of the entire thing. Compile and link.
If you use second-party libraries for much of your source the it will be much quicker than it really should be. Mostly, what I did I built from scratch. An exception to this was the .lib file that came with an A/D converter. For FORTRAN, years ago, I even built a graphics .lib I coded in Assembler. The whole thing, if I did it all at once, would be done in a minute, tops (on an 80286 w/HDD and 1 MB RAM).
Mostly, however, the libraries were compiled once and, with the exception of an occasional addition, left as they were. Compile/link took seconds, usually.
You need to get a grasp on context when commenting in the forum. Not every, and perhaps hardly anything, is taken seriously. Certainly not if there's an opening for a laugh. Maybe that long sunless winter's getting to you?
Well, back when it was Turbo Pascal: Used the bathroom (took a book), got a cup of coffee, chatted up the receptionist (you could do that, then), checked the telex machine, read a bit of Byte magazine and then topped off my coffee again.