T060101.txt 0.0.7 UTF-8 2023-07-18 *---|----1----|----2----|----3----|----4----|----5----|----6----|----7----|--* nfoWare/nfoWorks nfoTools ========================= T060101d: HELLO, WHAT'S HAPPENING HERE? --------------------------------------- MANIFEST T060101d.txt this manifest and job-jar file index.md front porch published as orcmid.github.io/nfoTools/T060101/ T060101d1-2023-06-11-0918-CL-Hello.vsdx Visio diagram of the top-level CL Hello comilation T060101d1-2023-06-11-0919-CL-Hello.png Visio diagram saved as magnified PNG to 144x144 for good display T060101d2-2023-06-11-1545-Compile+Link.vsdx Visio diagrammatic depiction of compiling + linking T060101d2-2023-06-11-1545-Compile+Link.png Web formatted 144x144 resolution PNG of the diagram T060101d3-2023-06-24-1535-hello.exe-layout.vsdx Visio diagram draft for EXE layout (diagrammatic) T060202d4-2023-07018-0811-objective.vsdx Borrowed VSD diagram for morphing for how hello is arranged to be operated (highly, loosely diagrammatic) T060101d1-Compiling-SalvageFile.vsdx Interim file used for salvaging components from an older diagram. *---|----1----|----2----|----3----|----4----|----5----|----6----|----7----|--* Copyright 2023 Dennis E. Hamilton Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. *---|----1----|----2----|----3----|----4----|----5----|----6----|----7----|--* ATTRIBUTION Hamilton, Dennis E. T060101d: Hello, What's Happening Here? nfoTools project text file T060101d.txt version 0.0.7 dated 2023-07-18, available on the Internet as a version of TODO * Demonstrate the edit, save, compile, test, rinse-repeat * Find a progressive explanation of the preprocess-compile-link-execute scheme that applies in handling C Language via VC/C++. * Ensure a good treatment of this case in T060501, T211002 (Build Tools) and T211001 (VS Code), maybe. * There will need to be better links to authoritative information on what this is all about. * I am unhappy about the explanation of linking and the .exe file. I need to address the layout in memory, in an exemplary manner. I need to introduce the idea of a loader and how that does finalized things, including fixing addresses in some cases. * Should I refer directly to TAoCP here? I think so, for the same reasons that Knuth clings to MIX and Volume 1 as foundation. I need to also let readers know that some mathematical comfort is required but it is not necessary to swallow all of Chapter 1. Start with 1.3 MIX for a general understanding of what organizing code and data in computer memor is about. * A good reference on Computer Science that describes computer architecture might be better. Although I found some bad ones on-line, such as quibbling about the Von Neumann architecture. There is a decent account of the bottleneck and how it is mitigated though. * I need a way to explain that includes of header files from the standard libraries does not so much include code (definitions) as identify how the code is to be referenced (declarations). The example with regard to stdio.h and fputs() declaration and maybe stdout definition. Although stdout is actually a function call that returns a FILE*, so this could be done simpler. Maybe need to speak in terms of references as well. * I need to explain the compile step a little more. * I need to explain the *.obj perhaps a little better. * I then need to deal with the idea of the exe as being loadable in the machine perhaps shared with other things in a (virtual) memory. I am not certain how that works in a modern x64 computer, but I don't want to cause any deep-ending about that. * I need to setup this topic by first describing the loading and execution environment, a bit like the oFrugal diagram. I need to recover that VSD and see how to adapt it. * I also need to do the take-apart on the compile through linking better. The diagrams for that stage are all right. The narrative is clumsy. I will try subheadings (which also gives me permalinks to rely on). *---|----1----|----2----|----3----|----4----|----5----|----6----|----7----|--* 0.0.7 2023-07-18T15:43Z Experimental Visio diagrams for the troubling parts 0.0.6 2023-07-16T16:59Z More TODOs, fretting about the setup and progression 0.0.5 2023-06-19T16:34Z More TODOs 0.0.4 2023-06-17T16:28Z TODOs on dealing with computer memory and TAoCP 0.0.3 2023-06-11T23:06Z Add Compile+Link diagram 0.0.2 2023-06-11T16:53Z Manage TODOs, update Manifest 0.0.1 2023-06-08T20:14Z Introduce initial top-level diagram 0.0.0 2023-06-07T19:28Z Placeholder with 0.0.17 T060101.txt boilerplate ***** end of T060101d.txt *****