-
Notifications
You must be signed in to change notification settings - Fork 68
New mini book: OS setup for Fortran developement #152
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
New mini book: OS setup for Fortran developement #152
Conversation
Nice to see this - I will have a closer look at the text.
Op di 6 okt. 2020 om 02:02 schreef smeskos <notifications@github.com>:
… Hi all, this PR is a follow-up to Issue #134
<#134>.
The goal is to provide, in a beginners-friendly format, all the necessary
steps to choose and install a compiler, as well as it includes information
about text-editors and IDEs.
It is not complete and definitely needs "attention"... take it as a
template to start building on it.
The part with the text-editors needs a few of you with experience with
some of those editors to contribute with "how to configure them".
I am aware that some parts are opinionated, but the topic itself is
subjective by nature... choosing compilers, text-editors, or IDEs. Let's
discuss them and find a common path.
------------------------------
You can view, comment on, or merge this pull request online at:
#152
Commit Summary
- add new _site to master
- Revert "add new _site to master"
- test
- Revert "test"
- Merge remote-tracking branch 'upstream/master'
- Merge remote-tracking branch 'upstream/master'
- Merge remote-tracking branch 'upstream/master'
- Merge remote-tracking branch 'upstream/master'
- added main index page
- added second page: choosing compilers
- added third page: installing gfortran
- added fourth page: installing opencoarrays
- added fifth page: texteditors
- added sixth page: IDEs
- added final page: Tips
- added new minibook structure
File Changes
- *M* _data/learning.yml
<https://github.com/fortran-lang/fortran-lang.org/pull/152/files#diff-793049ea95168d552f25dbf988e2b6f3>
(12)
- *A* learn/os_setup/choose_compiler.md
<https://github.com/fortran-lang/fortran-lang.org/pull/152/files#diff-3f295dde916c8c2704b83a487a362e44>
(18)
- *A* learn/os_setup/ides.md
<https://github.com/fortran-lang/fortran-lang.org/pull/152/files#diff-2681dbd91fd0b562e296b3b4441cf8ec>
(20)
- *A* learn/os_setup/index.md
<https://github.com/fortran-lang/fortran-lang.org/pull/152/files#diff-2da110db96cec689bc5276893e1f7924>
(27)
- *A* learn/os_setup/install_gfortran.md
<https://github.com/fortran-lang/fortran-lang.org/pull/152/files#diff-b3e6b9920d8f42caf950376c2e530f2e>
(85)
- *A* learn/os_setup/install_opencoarrays.md
<https://github.com/fortran-lang/fortran-lang.org/pull/152/files#diff-96fdd7a54c435d91e866957d4eac37c5>
(16)
- *A* learn/os_setup/text_editors.md
<https://github.com/fortran-lang/fortran-lang.org/pull/152/files#diff-88cbca544ed22b504a0f0bf812b14f34>
(54)
- *A* learn/os_setup/tips.md
<https://github.com/fortran-lang/fortran-lang.org/pull/152/files#diff-88f51d3e1e97db0cafb7b34ac5ba2ebd>
(13)
Patch Links:
- https://github.com/fortran-lang/fortran-lang.org/pull/152.patch
- https://github.com/fortran-lang/fortran-lang.org/pull/152.diff
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#152>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAN6YR4CW2UVBDYNB4YMFNTSJJNCHANCNFSM4SFKITAA>
.
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
The link at the preview doesn't work. I am now sure why. I've built it locally and the site appears fine. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work @smeskos, many thanks! I've had a quick read through and left a few minor corrections.
-
I've left a suggestion to expand the section on WSL etc. with some important points.
-
The page on OpenCoarrays is short and I think it would be better suited as a subsection on the gfortran page since it describes how to 'enable' coarrays with gfortran.
(The preview link is working for me. If you're not seeing anything, try here: https://fortran-lang.org/pr/152/?v=2)
Co-authored-by: Laurence Kedward <laurence.kedward@bristol.ac.uk>
Co-authored-by: Laurence Kedward <laurence.kedward@bristol.ac.uk>
Co-authored-by: Laurence Kedward <laurence.kedward@bristol.ac.uk>
Co-authored-by: Laurence Kedward <laurence.kedward@bristol.ac.uk>
Co-authored-by: Laurence Kedward <laurence.kedward@bristol.ac.uk>
Co-authored-by: Laurence Kedward <laurence.kedward@bristol.ac.uk>
Co-authored-by: Laurence Kedward <laurence.kedward@bristol.ac.uk>
Co-authored-by: Laurence Kedward <laurence.kedward@bristol.ac.uk>
Co-authored-by: Laurence Kedward <laurence.kedward@bristol.ac.uk>
Thank you @milancurcic for this detailed review. Following your recommendation, I also added a link to a tutorial for update-alternatives. |
#build_preview |
This PR has been built with Jekyll and can be previewed at: https://fortran-lang.org/pr/152/ |
@arjenmarkus Do you need more time to review this or it's good to go? |
Let me read it now - I have some time at the moment.
Op di 20 okt. 2020 om 18:22 schreef Milan Curcic <notifications@github.com>:
… @arjenmarkus <https://github.com/arjenmarkus> Do you need more time to
review this or it's good to go?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#152 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAN6YR5QBCYPTXIRCFQE3NDSLW2MZANCNFSM4SFKITAA>
.
|
I read through it, this is good enough to merge and we can improve it with future PRs. After @arjenmarkus approves, let's merge it. I think our tools should support all editors, but I think we should ensure that at least one editor works first class. |
@smekos, I have just read the entire booklet in its present form. Nice work
:), but I do have a comment: MinGW-w64 and MSYS2.
First of all, under the threading Windows, MinGW-w64 is mentioned, but not
its relation to MSYS2.
Secondly. if you compile under MSYS2, then you get binaries that depend on
the MSYS2 environment, but if you use the MinGW-w64 environment, you can
freely distribute the programs. So, just the other way around.
Thirdly, the latest version, at https://github.com/msys2, gives you the GCC
compiler suite 10.2.
Regards,
Arjen
Op di 20 okt. 2020 om 21:04 schreef Arjen Markus <arjen.markus895@gmail.com
…:
Let me read it now - I have some time at the moment.
Op di 20 okt. 2020 om 18:22 schreef Milan Curcic ***@***.***
>:
> @arjenmarkus <https://github.com/arjenmarkus> Do you need more time to
> review this or it's good to go?
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#152 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AAN6YR5QBCYPTXIRCFQE3NDSLW2MZANCNFSM4SFKITAA>
> .
>
|
@Ondřej Čertík <ondrej@certik.us>, see my comments - the text is fine as it
is, with just this inaccuracy/update for MinGW-w64/MSYS2. I particularly
focused on this, as it has confused me for years :).
Op di 20 okt. 2020 om 21:23 schreef Ondřej Čertík <notifications@github.com
…:
I read through it, this is good enough to merge and we can improve it with
future PRs. After @arjenmarkus <https://github.com/arjenmarkus> approves,
let's merge it.
I think our tools should support all editors, but I think we should ensure
that at least one editor works first class.
I think we should pick an editor and provide tutorials with screenshots
using it, and we should also write extensions to such an editor with fpm
support, with formatting support, with Flang and LFortran support etc. Such
an editor should work cross platform, and be in wide use. I think it should
be VSCode. But as I said, we should write our tools in an editor
independent way, but by ensuring that things just work in VSCode, we can
simply direct new users to it, and make our lives simpler. And we can
support other editors as we have time, but don't have to stress about it
too much, since we have a nice default that will do the job for new users.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#152 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAN6YR4J5ZMQBHLRNR4U76DSLXPTTANCNFSM4SFKITAA>
.
|
learn/os_setup/install_gfortran.md
Outdated
2. [TDM GCC](https://jmeubank.github.io/tdm-gcc/articles/2020-03/9.2.0-release), provides 32 and 64-bit x86 executables of the 9.2 gcc-version. | ||
3. [Mingw-w64](http://mingw-w64.org/doku.php/download/mingw-builds) provides a 64-bit x86 executable of the 7.2 gcc-version. | ||
2. [TDM GCC](https://jmeubank.github.io/tdm-gcc/articles/2020-03/9.2.0-release), provides 32 and 64-bit x86 executables of the 9.2 gcc-version. | ||
3. [Mingw-w64](http://mingw-w64.org/doku.php/download/mingw-builds) provides a 64-bit x86 executable of the 7.2 gcc-version. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suggest: MinGW-w64/MSYS2 provides 32 and 64-bit x86 executable of the 10.2 gcc-version
learn/os_setup/install_gfortran.md
Outdated
|
||
In all the above choices, the process is straightforward—just download the installer and follow the installation wizard. | ||
|
||
### Unix-like development on Windows | ||
For those familiar with a unix-like development environment, several emulation options are available on Windows each of which provide packages for gfortran: | ||
|
||
* __Cygwin:__ A runtime environment that provides POSIX compatibility to Windows; | ||
* __MSYS2:__ A collection of Unix-like development tools for compiling native Windows binaries; | ||
* __Windows Subsystem for Linux (WSL):__ An official compatibility layer for running Linux binary executables on Windows. | ||
* __MSYS2:__ A collection of Unix-like development tools for compiling native Windows binaries; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suggest: MinGW-w64: ...
(There is more to say about all this, but that is not suitable for an introductory text like this! I have struggled with it recently, hence my emphasis on getting it least wrong)
Hi @arjenmarkus, the current text on MSYS2 and MinGW was written by myself. I will address your comments with an update. Can you be more specific about what you understand the relationship between MSYS2 and MinGW-w64 to be? |
Okay, minor comments/suggestions added.
Op di 20 okt. 2020 om 21:36 schreef Arjen Markus <arjen.markus895@gmail.com
…:
@Ondřej Čertík ***@***.***>, see my comments - the text is fine as
it is, with just this inaccuracy/update for MinGW-w64/MSYS2. I particularly
focused on this, as it has confused me for years :).
Op di 20 okt. 2020 om 21:23 schreef Ondřej Čertík <
***@***.***>:
> I read through it, this is good enough to merge and we can improve it
> with future PRs. After @arjenmarkus <https://github.com/arjenmarkus>
> approves, let's merge it.
>
> I think our tools should support all editors, but I think we should
> ensure that at least one editor works first class.
> I think we should pick an editor and provide tutorials with screenshots
> using it, and we should also write extensions to such an editor with fpm
> support, with formatting support, with Flang and LFortran support etc. Such
> an editor should work cross platform, and be in wide use. I think it should
> be VSCode. But as I said, we should write our tools in an editor
> independent way, but by ensuring that things just work in VSCode, we can
> simply direct new users to it, and make our lives simpler. And we can
> support other editors as we have time, but don't have to stress about it
> too much, since we have a nice default that will do the job for new users.
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#152 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AAN6YR4J5ZMQBHLRNR4U76DSLXPTTANCNFSM4SFKITAA>
> .
>
|
Sure, I ran into this when I tried to understand the way MinGW-w64/MSYS2
handle Windows-style paths.
If you install MinGW-w64/MSYS2, you get a number of shells, each giving
access to their own versions of the various packages. To keep it simple, I
will describe what I understand regarding the GCC compiler suite:
mingw64.exe: a program compiled with the GCC compilers understands the
Windows-style path names, the home directory I get with "echo $HOME" is
"/home/markus", but if I ask in a C program for the current directory if I
am in my home directory, I get "c:\msys64-2020\home\markus\".
I can copy the program to another machine or run it in a plain command
window without any problem.
msys2.exe: if I do the same under this shell, I have a different version of
the compiler and the run-time libraries. The result of getcwd() would then
be Unixy - "/home/markus". And the program does not work outside the MSYS2
environment, as it would miss a crucial DLL.
Op di 20 okt. 2020 om 21:50 schreef Laurence Kedward <
notifications@github.com>:
… Hi @arjenmarkus <https://github.com/arjenmarkus>, the current text on
MSYS2 and MinGW was written by myself. I will address your comments with an
update. Can you be more specific about what you understand the relationship
between MSYS2 and MinGW-w64 to be?
My understanding is that they are separate with MSYS2 providing one (of
three) environments that is built atop MinGW-w64, hence why I have written
that you can freely distribute programs. Yes, there is a 'native' MSYS2
environment that has it's own DLL dependency, however this environment is
only recommended for developing tools for the MSYS2 .
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#152 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAN6YRZ7S72BU2D6ERTU22DSLXSYJANCNFSM4SFKITAA>
.
|
Thanks @arjenmarkus, that essentially aligns with my understanding. However it should be clear that the MinGW-w64 toolchain is separate to MSYS2 and can be distributed independent of it. The text I have written makes the assumption that the reader will use one of the MinGW shells in MSYS2 as opposed to the 'native' MSYS2 shell which should only be used for writing programs to distribute in MSYS2. To be clear, the following compile environments are available:
I will update the text tomorrow to make it simpler and clearer to a beginner. |
Please try to do that. |
Why don't we remove the paragraph, merge this PR, and then let's open another PR with just the |
I agree, unless we can come up with a concise and clear description. A
clear description is of importance to the stdlib-os subproject as well and
given the confusion we all have about it, it might even become a topic in a
separate minibook on popular OSes.
Op di 20 okt. 2020 om 22:51 schreef Ondřej Čertík <notifications@github.com
…:
Why don't we remove the paragraph, merge this PR, and then let's open
another PR with just the mingw clarification and we can figure it out
there?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#152 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAN6YR23TWPCRW2GFFSGKNLSLXZ4HANCNFSM4SFKITAA>
.
|
Co-authored-by: Laurence Kedward <laurence.kedward@bristol.ac.uk>
Thanks @smeskos - I agree, removing that paragraph is the clearest we can be for the scope of this tutorial. |
This is now good to merge, correct? |
As far as I am concerned, yes.
Op wo 21 okt. 2020 om 17:12 schreef Milan Curcic <notifications@github.com>:
… This is now good to merge, correct?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#152 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAN6YR4XQ47CUDDQ5LQZUCTSL325RANCNFSM4SFKITAA>
.
|
Thank you all, and especially @smeskos who led the effort! |
Thanks everybody, I am glad this is in. |
#delete_preview |
The preview build for this PR has now been deleted. |
Hi all, this PR is a follow-up to Issue #134.
The goal is to provide, in a beginners-friendly format, all the necessary steps to choose and install a compiler, as well as it includes information about text-editors and IDEs.
It is not complete and definitely needs "attention"... take it as a template to start building on it.
The part with the text-editors needs a few of you with experience with some of those editors to contribute with "how to configure them".
I am aware that some parts are opinionated, but the topic itself is subjective by nature... choosing compilers, text-editors, or IDEs. Let's discuss them and find a common path.