Contributing to G95
Ways to contribute
We hope that you find g95 useful. Please consider helping us out financially-- your contributions help us continue squishing bugs, adding new features and dispensing advice.
Good bug reports are needed to make progress. Corner cases and unusual constructs may still trigger bugs like:
g95/testsuite> g95 mytest.f90
If you can send a concise test case that compiles with compiler X but not with G95, the bug might be fixed within a few days. A good test case can be just a few lines and might look like:
CHARACTER(LEN=10) :: test(10)
Accepting illegal code is also be a bug that is worth a bug report.
A useful technique for isolating a crash within a large file is based on the binary seach: First make a copy of the source. Then chop out half the code in the file and recompile. If the error goes away, put that half back in and chop out the other half. You have to watch out for creating new errors by deleting needed decarations, in which case you put the original hunk back in and make a more judicious cut the next time. Sometimes with modules it's easier to delete multiple modules procedures at once.
Another trick is to remove IMPLICIT NONE statements, which loosens up the declaration rules a lot.
Usually after less then a dozen iterations, you're left with a code fragment that doesn't do anything useful except trigger the bug. Which is what we want. At some point, you usually start noticing that some modules are no longer needed and the USE statement can be deleted. The general technique remains the same-- delete something and if the error persists, you deleted something that wasn't necessary for the bug to bite.
Port to a new architecture
If a compiler binary is not available from www.g95.org for your particular architecture or operating system, you can compile your own version from the source codes following the instructions. If you have improved build instructions and/or patches for your target, let us know. Providing an account with ssh access might make it possible to add the target to the list of daily binaries.
Code new features
Get in touch and have a look at the legal stuff before you provide source code.
If you want to contribute more than a few lines of source code to G95, you must assign that work to the Free Software Foundation and it will be covered by the GPL license. In order to get things started, mail the following questionnaire to email@example.com. They'll email you the proper form or forms that you can print out, sign and snail mail back to them.
[What is the name of the program or package you're contributing to?]
[Did you copy any files or text written by someone else in these changes? Even if that material is free software, we need to know about it.]
[Do you have an employer who might have a basis to claim to own your changes? Do you attend a school which might make such a claim?]
[For the copyright registration, what country are you a citizen of?]
[What year were you born?]
[Please write your email address here.]
[Please write your postal address here.]
[Which files have you changed so far, and which new files have you written so far?]