When is Something Built from Source
-
@scottalanmiller said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
@scottalanmiller said in When is Something Built from Source:
XO you start with code and end with code and an executable that was already on the system (NodeJS) runs that code. NodeJS is the executable, not XO.
Um... we install nodejs. It doesn't exist (or doesn't have too)
https://raw.githubusercontent.com/scottalanmiller/xenorchestra_installer/master/xo_install.sh
sudo apt-get install --yes nodejs
So do you assume that you're running some kind of compiler when you install Wireshark and it helps you out by installing WinPCap (another precompiled piece of software)?
Only if you (your .sh or exe) check to see if the item is there or not and required could you consider that even remotely. We're checking to see if a dependency is installed, if not we install the dependency.
Only if? What about "checking to see if something is there" correlates with compilation? That's totally unrelated.
Lets take any horrid windows installer. It might check to see if .Net is installed, if not it prompts you to go an download .Net and then install .Net
Once .Net is installed, you try the installation again, this time it passes all checks.
My point is, we are checking for dependencies, and then pulling in anything required automatically.
-
@DustinB3403 said in When is Something Built from Source:
@scottalanmiller said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
@scottalanmiller said in When is Something Built from Source:
XO you start with code and end with code and an executable that was already on the system (NodeJS) runs that code. NodeJS is the executable, not XO.
Um... we install nodejs. It doesn't exist (or doesn't have too)
https://raw.githubusercontent.com/scottalanmiller/xenorchestra_installer/master/xo_install.sh
sudo apt-get install --yes nodejs
So do you assume that you're running some kind of compiler when you install Wireshark and it helps you out by installing WinPCap (another precompiled piece of software)?
Only if you (your .sh or exe) check to see if the item is there or not and required could you consider that even remotely. We're checking to see if a dependency is installed, if not we install the dependency.
Only if? What about "checking to see if something is there" correlates with compilation? That's totally unrelated.
Lets take any horrid windows installer. It might check to see if .Net is installed, if not it prompts you to go an download .Net and then install .Net
Once .Net is installed, you try the installation again, this time it passes all checks.
My point is, we are checking for dependencies, and then pulling in anything required automatically.
Okay, but none of those pieces are in any way related to compilation.
-
And nodejs is required (because it operate the code) for XO.
-
@DustinB3403 said in When is Something Built from Source:
And nodejs is required (because it operate the code) for XO.
RIght, it is the interpreter. We've covered these bits The point is... nothing is being compiled, ever.
-
@scottalanmiller said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
And nodejs is required (because it operate the code) for XO.
RIght, it is the interpreter. We've covered these bits The point is... nothing is being compiled, ever.
So let me see if this is correct. (freaking semantics...)
drafting code in Visual Basic, is the creation of source code. The application which packages the code into an EXE or MSI would be VB's compiler.
Correct?
And if it's correct, does anyone ever really compile anything (besides maybe machine language programmers?)
If the question isn't clear, ask.
-
Or are you saying, the creation of source code is compilation?
And that packing it into an EXE for example is just something nice that we do?
-
@DustinB3403 said in When is Something Built from Source:
Or are you saying, the creation of source code is compilation?
No, I'm saying the exact opposite. Compilation is taking source code and turning it into binary for the system to execute. What compilation is is one of the most basic and well known things in computing.
-
@DustinB3403 said in When is Something Built from Source:
And that packing it into an EXE for example is just something nice that we do?
You don't pack into an EXE. An EXE (executable binary file) has no source code in it. It is a binary file that the computer itself can execute. The only thing that can make an exe file is compilation.
-
@scottalanmiller said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
Or are you saying, the creation of source code is compilation?
No, I'm saying the exact opposite. Compilation is taking source code and turning it into binary for the system to execute. What compilation is is one of the most basic and well known things in computing.
Ok that makes a bit more sense.
As source code is just text, until it's able to be installed.
-
@scottalanmiller said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
And that packing it into an EXE for example is just something nice that we do?
You don't pack into an EXE. An EXE (executable binary file) has no source code in it.
This I remember from high school.
-
@DustinB3403 said in When is Something Built from Source:
As source code is just text, until it's able to be installed.
No, installation and compilation are totally different things. Compilation takes source and turns it into an executable. Installation takes applications and puts them on a system. There is nothing that connections compilation and installation. Unrelated concepts.
-
Just stretching my memory.
Back in highschool (programming class) we had a project where we were using VB6 to create a game. Simon Says.
We drafted all of the code in VB6 (placed our elements into the form etc). We check our source code, confirming there are no logic errors etc. And then we hit the VB6 compile button.
That compile button, took our logic, and the "physical" elements of the form, and made an installer for our application.
What is the VB6 compiler doing specifically, that you are saying is compilation? Just taking everything we told it to, and spitting out an installer?
Still confused I guess, but I do understand, a bit.
-
@DustinB3403 said in When is Something Built from Source:
That compile button, took our logic, and the "physical" elements of the form, and made an installer for our application.
That's where your memory is failing. VB6 had no ability to "create an installer." It would create an executable only. You would either then create your own installer or buy a commercial one or whatever. In the VB6 days, commercial installers were big business.
-
@DustinB3403 said in When is Something Built from Source:
What is the VB6 compiler doing specifically, that you are saying is compilation? Just taking everything we told it to, and spitting out an installer?
All compilers are the same. They take source code (VB6, C, C++, Fortran) and turn it into a binary executable(s). They do not produce installers. Compilation and installation are unrelated. Completely and totally unrelated.
It's possible, of course, to build a compiler that also creates installers. That would be very silly and to the best of my knowledge has never been done. Certainly nothing that anyone would ever use.
-
@scottalanmiller said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
That compile button, took our logic, and the "physical" elements of the form, and made an installer for our application.
That's where your memory is failing. VB6 had no ability to "create an installer." It would create an executable only. You would either then create your own installer or buy a commercial one or whatever. In the VB6 days, commercial installers were big business.
So in a side bar this was just said. "I could be wrong on this, but I think compiled means - change from human readable into machine readable"
Is that accurate @scottalanmiller ?
-
@DustinB3403 said in When is Something Built from Source:
@scottalanmiller said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
That compile button, took our logic, and the "physical" elements of the form, and made an installer for our application.
That's where your memory is failing. VB6 had no ability to "create an installer." It would create an executable only. You would either then create your own installer or buy a commercial one or whatever. In the VB6 days, commercial installers were big business.
So in a side bar this was just said. "I could be wrong on this, but I think compiled means - change from human readable into machine readable"
Is that accurate @scottalanmiller ?
Essentially, yes.
It would take this: 10 PRINT "This is a print statement";
Into this: 00100010101101010110 1010101 1010101010101
-
@scottalanmiller said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
What is the VB6 compiler doing specifically, that you are saying is compilation? Just taking everything we told it to, and spitting out an installer?
All compilers are the same. They take source code (VB6, C, C++, Fortran) and turn it into a binary executable(s).
That is the part I was looking for.
Binary executable.
-
@DustinB3403 said in When is Something Built from Source:
@scottalanmiller said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
What is the VB6 compiler doing specifically, that you are saying is compilation? Just taking everything we told it to, and spitting out an installer?
All compilers are the same. They take source code (VB6, C, C++, Fortran) and turn it into a binary executable(s).
That is the part I was looking for.
Binary executable.
And then binary executables can either be simply copied to where you want them OR in most cases, packaged with other things into an installer that deploys them for you.
-
So with the example of top....
The gcc compiler takes C code source files of top and compiles them into a single executable (ELF) file.
The RPM package of top is created that makes a top installer for people who want to use a handy installer system.
So top itself is the executable and top.rpm is the installer.
-
I suppose something that adds to the confusion is the installer process.
When you compile something, you compile the whole thing into a binary executable. That binary may or may not depend on other files.
Likely in the case of your Simon Says game you wrote, it probably didn't rely on any other files. The single file all by itself was self contained to play the game.
The same goes for Top in Scott's example.
But when we look at things like MS Word, that application is made up of dozens of files, several of which are executable binaries and many which are libraries, etc. So you need an installer to put all of the pieces in the correct location to make MS Word work.
Where your game as it's single file, doesn't need an installer - it simply executes where ever it's currently sitting and relies no nothing else.