On 8/15/22 00:38, scsijon wrote: > Been looking around for a while now for simple shell compiler that I > could turn a number of shell scripts into small compiled packages to > deal with varying systems and versions, and I can't seem to find > something with a 'small' output.
*blink* *blink* Conceptually a shell script calls other commands out of the $PATH... Are you just trying to link the script into the shell binary, or are you trying to link all the _other_ commands into one big binary? (In which case you're basically reinventing flatpack, or whatever they call those "I'm told static linking is bad so let's loopback mount a filesystem archive and run a container in it" things...) > BarryK's recently tried with BaCon, Nim, V, using helloworld and the > smallest is 19K and up to 689K. I tried a few others late last year and > rarely got below 350K with all the library addatives they seem they must > add inside the 'command'. A shell hello world? As in "echo 'hello world'"? Or some other hello world? (In some shells echo is a builtin, so maybe that would work...?) > So I thought that ?maybe it could be worth adding one into the toybox > set, No thanks. > after all it surely doesn't have to be that complex, it's only > dealing with scripts? In theory sh -c 'big long thingy' can be megabytes of argument, so what' you're asking for isn't TECHNICALLY that hard... it's just unless you've got everything else in the $PATH for it to call it's not gonna work very well. (Even when toysh can xexec() itself it won't _always_ do that, for reasons ranging from stack depth to suid permission reacquisition. So it still needs a $PATH at least some of the time...) Seriously, static linking in C exists for a reason. > I was thinking / hopping about a maximum of 16K > and down to 8K or smaller for a simple script and inbuilt library. $ make sh ... $ ls -l sh -r-xr-xr-x 1 landley landley 94440 Aug 15 02:47 sh Seems unlikely? Ok, that's pulling in most of lib/ because standalone, but: $ ls -l sed -r-xr-xr-x 1 landley landley 39296 Aug 15 02:48 sed $ ls -l cp -r-xr-xr-x 1 landley landley 31168 Aug 15 02:49 cp A good 2/3 of that is actually shell plumbing. (Bash does a lot!) > Not being a package builder, just a user and simple scripter, I wondered > if it's possible or even practical to do? Possible yes, practical no. > Your thoughts please? Maybe if you want a compiled package you should use a compiled language? Scripting languages have a lot of advantages, but this isn't really their domain. Rob _______________________________________________ Toybox mailing list Toybox@lists.landley.net http://lists.landley.net/listinfo.cgi/toybox-landley.net