When is Something Built from Source
-
Remember, the source code is the running code. It's literally impossible for it to be changed and have the changes not be reflected once the system restarts. There is no way around this. It's the actual program being modified.
-
I'm not sure where the disconnect is. Is it that interpreted languages are not understood? Or that JavaScript is believed to be a compiled language? I'm not sure how to explain this more clearly because it isn't something that needs to be tested, this is basic computing. When the code is changed, it's changed. There is no original file to be run, so the interpreter knows nothing about "how it used to be."
-
There could, of course, be a cache mechanism that would hold the old file in memory for some time, but NodeJS does not do this. And no interpreter does that I know of. Because it reloads from from disk each time and runs a unique process for every script it would need to store the memory dump to disk somewhere to persist through a restart and would have to know to pick it up. It would be a dangerous cache mechanism to use, possible, but no one does it. Not even systems like Java. It's definitely not existing here. But even if it were, it would not change the underlying principles, it would only be that a cache had not flushed yet.
-
@scottalanmiller said in XenOrchestra XOSAN...a pic is worth 1000 words:
@Danp said in XenOrchestra XOSAN...a pic is worth 1000 words:
@scottalanmiller said in XenOrchestra XOSAN...a pic is worth 1000 words:
What code changes were you making previously?
Here's one example where this could occur.
What do you mean? If you change the code and restart, it will always be modified in the running system. Always. Your example here doesn't state anything contrary to that.
Did you actually add that functionality and not have it work?
We added the functionality to XO and it does work. https://github.com/Jarli01/xenorchestra_updater/commit/a3d8f60cff8cbfc3bc4c1a09346f2d786c759052
-
Another example of actual building, was the old PBX in a Flash process. Their process was install CentOS 5 and then run their script which would download and build Asterisk from the source code.
-
@JaredBusch said in XenOrchestra XOSAN...a pic is worth 1000 words:
Another example of actual building, was the old PBX in a Flash process. Their process was install CentOS 5 and then run their script which would download and build Asterisk from the source code.
Oh yeah, great example as Asterisk is, or was until a few years ago, often built that way and even moreso the DAHDI drivers for it, even when you were on Elastix 2.4 you had to rebuild the DAHDI drivers after any kernel update!
-
This entire XO build thing is fucking stupid. It is not building anything. It never has.
The developers need to update their terminology to remove the phrase build from sources.
Build can be a valid term because you are building and rebuilding the file structure with NPM.
Source (not sources) can be a valid term because you are getting something from a source.
Build from source is a very specific phrase that is 100% not applicable to what XO is doing.
-
@DustinB3403 said in XenOrchestra XOSAN...a pic is worth 1000 words:
@scottalanmiller said in XenOrchestra XOSAN...a pic is worth 1000 words:
@Danp said in XenOrchestra XOSAN...a pic is worth 1000 words:
@scottalanmiller said in XenOrchestra XOSAN...a pic is worth 1000 words:
What code changes were you making previously?
Here's one example where this could occur.
What do you mean? If you change the code and restart, it will always be modified in the running system. Always. Your example here doesn't state anything contrary to that.
Did you actually add that functionality and not have it work?
We added the functionality to XO and it does work. https://github.com/Jarli01/xenorchestra_updater/commit/a3d8f60cff8cbfc3bc4c1a09346f2d786c759052
Hey awesome.
-
@scottalanmiller said in XenOrchestra XOSAN...a pic is worth 1000 words:
@DustinB3403 said in XenOrchestra XOSAN...a pic is worth 1000 words:
@scottalanmiller said in XenOrchestra XOSAN...a pic is worth 1000 words:
@Danp said in XenOrchestra XOSAN...a pic is worth 1000 words:
@scottalanmiller said in XenOrchestra XOSAN...a pic is worth 1000 words:
What code changes were you making previously?
Here's one example where this could occur.
What do you mean? If you change the code and restart, it will always be modified in the running system. Always. Your example here doesn't state anything contrary to that.
Did you actually add that functionality and not have it work?
We added the functionality to XO and it does work. https://github.com/Jarli01/xenorchestra_updater/commit/a3d8f60cff8cbfc3bc4c1a09346f2d786c759052
Hey awesome.
Thanks.
-
@DustinB3403 said in When is Something Built from Source:
@scottalanmiller said in XenOrchestra XOSAN...a pic is worth 1000 words:
@Danp said in XenOrchestra XOSAN...a pic is worth 1000 words:
@scottalanmiller said in XenOrchestra XOSAN...a pic is worth 1000 words:
What code changes were you making previously?
Here's one example where this could occur.
What do you mean? If you change the code and restart, it will always be modified in the running system. Always. Your example here doesn't state anything contrary to that.
Did you actually add that functionality and not have it work?
We added the functionality to XO and it does work. https://github.com/Jarli01/xenorchestra_updater/commit/a3d8f60cff8cbfc3bc4c1a09346f2d786c759052
True, but only after running the NPM command post modifications.
-
From the other thread
Thanks for this thread. While I believe that I understood, and agree with what Scott and JB are saying, I didn't actually watch the install process of XO close enough to know if there was an actual compile process going on, therefore made an assumption based on the typical definition of "build from source" that source code was being downloaded and compiled.
Scott, other than dissecting the install script, how is a non dev person suppose to know if they are installing non compiled script versus needing to be compiled source versus pre compiled code?
I have compiled source before, both in Windows and nix systems, but have done it so little and so long ago that I did it by instructions, not memory or even complete understanding. Clearly I would never claim to know how to just hop to and build some source.
-
@Danp said in When is Something Built from Source:
@DustinB3403 said in When is Something Built from Source:
@scottalanmiller said in XenOrchestra XOSAN...a pic is worth 1000 words:
@Danp said in XenOrchestra XOSAN...a pic is worth 1000 words:
@scottalanmiller said in XenOrchestra XOSAN...a pic is worth 1000 words:
What code changes were you making previously?
Here's one example where this could occur.
What do you mean? If you change the code and restart, it will always be modified in the running system. Always. Your example here doesn't state anything contrary to that.
Did you actually add that functionality and not have it work?
We added the functionality to XO and it does work. https://github.com/Jarli01/xenorchestra_updater/commit/a3d8f60cff8cbfc3bc4c1a09346f2d786c759052
True, but only after running the NPM command post modifications.
Git does not modify the sources, necessarily. It just pulls down a copy, not necessarily to the running location. Unless you actually verified that you modified the source, you can't assume that you did. NPM would be expected to take the copy that you download and put it into the right place to be used as the running file. This explains the confusion. Go into the actual source you are using and make code modifications. You see them take effect immediately upon restart. That's all that NPM is doing for you, it's automating that placement on your behalf.
-
@Dashrender said in When is Something Built from Source:
From the other thread
Scott, other than dissecting the install script, how is a non dev person suppose to know if they are installing non compiled script versus needing to be compiled source versus pre compiled code?
Well, hopefully they will know because they will be told to "install" rather than "build". But there are some key hints like...
- NodeJS cannot be compiled.
- NPM is a package installer, not a compilation process.
- No compiler is ever installed by the end user.
The lack of compilation step really is the big tip off. There is no compiler dependency anywhere.
-
It would be incredibly uncommon for someone to build from source and not know it. Could it be automated? Yeah, potentially. For anything big? No, not reasonably. Compiling from source is a bit technical and you would know if you were doing it. If you don't know how to compile C code, assume you aren't
It's a bit like my friend's father in law who told everyone that he was a "video game programmer". Turns out, he didn't know what programming was and thought that it meant "installing". So he would pop a CD into his PC, double click the installer and five minutes later he's announce that he's "programmed a new game".
-
Or, you know, like Curtis. Bwahahaha
-
@Dashrender said in When is Something Built from Source:
Clearly I would never claim to know how to just hop to and build some source.
Exactly. But in the case of things like this, the follow command would be considered "building from source":
wget http://myserver.com/somefile.php
Just downloading it would qualify as that is a copy operation.
-
@Dashrender said in When is Something Built from Source:
I didn't actually watch the install process of XO close enough to know if there was an actual compile process going on, therefore made an assumption based on the typical definition of "build from source" that source code was being downloaded and compiled.
That's really the issue we are up against. The term is originating from a place where it is kind of being used to make it sound scarier than it is - to encourage adoption of the pre-built VM. And then it is getting repeated. It is, for all intents and purposes, marketing and one that has been used effectively as even IT people are repeating it and, as you said, making assumptions based around it.
In reality, because of how it is being used, even downloading XOA constitutes "building from source" because it is also a copy operation involving the source code.
-
@scottalanmiller said in When is Something Built from Source:
@Dashrender said in When is Something Built from Source:
From the other thread
Scott, other than dissecting the install script, how is a non dev person suppose to know if they are installing non compiled script versus needing to be compiled source versus pre compiled code?
Well, hopefully they will know because they will be told to "install" rather than "build". But there are some key hints like...
- NodeJS cannot be compiled.
- NPM is a package installer, not a compilation process.
- No compiler is ever installed by the end user.
The lack of compilation step really is the big tip off. There is no compiler dependency anywhere.
Again - all of that stuff can be scripted - I had no idea XO was made in NodeJS, you can script the install of the compiler, you can script the compilation process.
So I don't see this big tip off you're talking about. I will admit that I'm looking at this through my Windows admin goggles.
Someone who knows and understands what the scripts are doing I would fully expect to understand this process.
-
@scottalanmiller said in When is Something Built from Source:
It would be incredibly uncommon for someone to build from source and not know it. Could it be automated? Yeah, potentially. For anything big? No, not reasonably. Compiling from source is a bit technical and you would know if you were doing it. If you don't know how to compile C code, assume you aren't
It's a bit like my friend's father in law who told everyone that he was a "video game programmer". Turns out, he didn't know what programming was and thought that it meant "installing". So he would pop a CD into his PC, double click the installer and five minutes later he's announce that he's "programmed a new game".
Yeah - sadly, this is completely common.
-
@Dashrender said in When is Something Built from Source:
Again - all of that stuff can be scripted - I had no idea XO was made in NodeJS, you can script the install of the compiler, you can script the compilation process.
CAN script it, yes, but you'd have a compiler sitting about. Literally nothing does that. And compilation is not reliable, that's why it is scary to talk about. Basically you never know if it will work across different systems. So you need human intervention. If you were actually able to script compilation reliably, no one would be concerned about using it.