Shrouding and Binding
Synopsis: shroud [-clear] [-list] [-quiet] [-out shrouded_file] [filename] The shroud command converts a Euphoria program, typically consisting of a main file plus many include files, into a single, shrouded (i.e. encrypted) file, that's easy to distribute to others. By default, the shroud command will perform the following steps:
options can be:
If you simply type: shroudwithout any options or filename, you'll be prompted for all the information. shroud only performs very superficial checks on the syntax of your program. You should test your program thoroughly before shrouding or binding it. You can distribute a shrouded .e include file that people can include in their programs without seeing your source code. Symbols declared as global in your main .e file will not be renamed or deleted, so your users can access routines and variables using meaningful long names. You can shroud or bind a program that includes a shrouded file (presumably from someone else), however you won't be allowed to use the -CLEAR option, since this would reduce the security of the included shrouded file. For security, the Euphoria interpreter will not perform tracing on a shrouded file, unless it is shrouded with the -clear option. In most cases it's much better to trace your original source. Only RDS has the knowledge required to undo the encryption on a program and we have no tool to do it. Even if someone managed to undo the encryption, they would only recover the version of the source after steps 1 to 5 were applied. The comments, and the meaningful variable and routine names can never be recovered. Always keep a copy of your original source files!
Synopsis:
bind [-clear] [-list] [-quiet] [-out executable_file] [filename.ex] bindu [-clear] [-list] [-quiet] [-out executable_file] [filename.exu] bindw [-clear] [-list] [-quiet] [-out executable_file] [-icon filename.ico] [filename.exw] bind (bindw or bindu) does the same thing as shroud, and has the same options. It then combines your shrouded (or clear text) file with the Public Domain Edition ex.exe, exw.exe or exu to make a single, stand-alone executable file that you can conveniently use and distribute. Your users need not have Euphoria installed. Each time your executable file is run, a quick integrity check is performed to detect any tampering or corruption. For security, the Euphoria interpreter will not perform tracing on a bound file, unless it is bound with the -clear option. In most cases it's much better to trace your original source. options can be:
If you simply type: bind (or bindw or bindu)without any options or filename, you'll be prompted for all the information. Only the Public Domain Edition interpreters can be bound. Users of the Euphoria Complete Edition for DOS32 + WIN32 will have ex.exe (Complete) and pdex.exe (Public Domain), as well as exw.exe (Complete) and pdexw.exe (Public Domain) in euphoria\bin. The bind (bindw) program will use the pdex.exe (pdexw.exe) files for binding. On Linux or FreeBSD, you'll have exu (Complete) and pdexu (Public Domain), with pdexu used for binding. A one-line Euphoria program will result in an executable file as large as the interpreter you are binding with, but the size increases very slowly as you add to your program. When bound, the entire Euphoria editor, ed.ex, adds only 18K to the size of the interpreter. All three interpreters are compressed to reduce their size. exw.exe and exu are compressed using UPX (see http://upx.sourceforge.net). ex.exe is compressed using a tool that comes with the CauseWay DOS extender. ex.exe is the largest of the three since it includes a lot of pixel graphics routines, not part of exw.exe or exu. Note: In some rare cases, a compressed executable may trigger a warning message from a virus scanner. This is simply because the executable file looks abnormal to the virus scanner. If demo\sanity.ex runs correctly, you can safely ignore these warnings. Otherwise contact RDS. The first two arguments returned by the command_line() library routine will be slightly different when your program is bound. See library.doc for the details. A bound executable file can handle standard input and output redirection. e.g. myprog.exe < file.in > file.outIf you were to write a small DOS .bat file myprog.bat that contained the line "ex myprog.ex" you would not be able to redirect input and output in the following manner: myprog.bat < file.in > file.out (doesn't work in DOS!)You could however use redirection on individual lines within the .bat file. |