-
Notifications
You must be signed in to change notification settings - Fork 3
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
Building C::Blocks takes a long time #8
Comments
So this changes significantly due to:
After installing libperl-dev, ./Build is 60x faster:
Is it worth trying to add a warning to that effect ("you don't seem to have your perl headers installed, if you're running a Linux distribution supplied perl, consider installing the perl headers package (eg. libperl-dev on debian derivatives") or so? --Steffen |
I know that nobody reads the README, but this is mentioned there: https://github.com/run4flat/C-Blocks#build-notes I think your idea about a warning is a very good one. Perhaps I could use something like |
Personal nit: I'd stay away from IO::Prompter and anything fancy like that. In particular, any user interaction at Build.PL/configure time needs to automatically degrade to "just choose defaults" or "don't bother" if in a fully automated build environment (such as CPAN testers). So I'd probably just go for warn() with a good error message. If it's an interactive session, then the user will see the warning because then the build is actually quite slow anyway... |
Hmm, know of any handy incantation for detecting if the appropriate header files are installed? Is Devel::CheckLib reliable enough here? Or, perhaps trying to run the executable screen without any symbols would give a reliable result? |
I don't understand the code here very well, but indeed I was assuming that since its purpose is to try and compile things and it bombs if it doesn't find stuff, that would be the easiest way to tell. :) |
I just built C::Blocks on a rather vanilla Linux (4.4.0-53-generic #74-Ubuntu SMP Fri Dec 2 15:59:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux) using the stock distribution perl 5.22.1.
Building C::Blocks takes "forever" in the Build stage because it falls into brute_force_screen in PerlAPI.xs.PL
...
(I think that the "starting brute force scan" showing up late in the output is a STDOUT/STDERR mixing or a PerlIO buffering effect.)
The bit that I found surprising was that this uses the system compiler rather than TCC, so there's clearly something about the purpose of this that I haven't intuitively understood (didn't dig).
HTH,
Steffen
The text was updated successfully, but these errors were encountered: