1. Shrouding
I am considering buying the shrouder, but does it get rid of platform() calls?
Also, will a file shrouded under Windows work on Linux?
Thanks,
Alex
2. Re: Shrouding
- Posted by Kenneth Rhodes <wolf_man_jacques at excite.com>
Nov 13, 2005
-
Last edited Nov 14, 2005
Alex Chamberlain wrote:
>
> I am considering buying the shrouder, but does it get rid of platform() calls?
> Also, will a file shrouded under Windows work on Linux?
>
> Thanks,
> Alex
From the Euphoria 2.5 Release notes:
* bug fixed: The platform() function is now evaluated in
backend/backendw/backendu for .il files (rather than in
the front-end of the shrouder). This allows a .il file to
be portable to multiple platforms. In other situations, the
interpreter and translator will continue to evaluate platform()
in the front-end for maximum efficiency.
Ken Rhodes
100% Microsoft Free!
3. Re: Shrouding
- Posted by Robert Craig <rds at RapidEuphoria.com>
Nov 13, 2005
-
Last edited Nov 14, 2005
Alex Chamberlain wrote:
> I am considering buying the shrouder, but does it get rid of platform() calls?
In 2.5 official, the shrouder issues a PLATFORM IL operation that is
executed by whichever backend you use to run the .il file. The result
will be different on each platform.
The binder, on the other hand, simply replaces platform()
by 1, 2, 3 etc. at bind time. The binder knows which platform
the resulting .exe file is going to run on. The shrouder can't
be totally sure, so it leaves that issue until run-time.
> Also, will a file shrouded under Windows work on Linux?
Yes.
As a minor issue, you might have to be careful about the
shebang (#!) line that's supplied by default when you don't
specify one explicitly.
I just tested a small program now, and it worked, Windows->Linux.
I don't think many people have tried this though. Almost everyone
shrouds on the same operating system that they are going to run on.
Be sure to FTP in binary mode. .il files are binary files.
Regards,
Rob Craig
Rapid Deployment Software
http://www.RapidEuphoria.com
4. Shrouding
This is a multi-part message in MIME format.
------=_NextPart_000_0010_01C3A6FA.83285840
charset="iso-8859-1"
Ive had been reg euphoria since like december of 2000, but I've never shrouded
anything before.
How do you shoud source and have it still useable by include?
Daniel Kluss
------=_NextPart_000_0010_01C3A6FA.83285840
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1264" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Ive had been reg euphoria since like december of
2000, but I've never shrouded anything before.</FONT></DIV>
<DIV><FONT face=Arial size=2>How do you shoud source and have it still useable
by include?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
------=_NextPart_000_0010_01C3A6FA.83285840--
5. Re: Shrouding
On Sun, 9 Nov 2003 19:48:56 -0800, Daniel Kluss
<codepilot at netzero.net> wrote:
>Ive had been reg euphoria since like december of 2000, but I've never shrouded
>anything before.
>How do you shoud source and have it still useable by include?
>
I've been doing quite a bit of that this year
If it is a fairly simple source without any include statements, then
it is very easy. Just include the output file as normal.
If there are some include statements, then only the global routines
and constants defined in the main file remain global after shrouding,
so you may have to write a small wrapper at the toplevel, eg, I have:
global procedure setCommissionCode(sequence Code)
SetCommissionCode(Code) -- see register.ew
end procedure
because SetCommissionCode (with a capital S) from the included file is
otherwise not callable after shrouding.
Conversely, global variables remain global no matter where they are
defined, so if you want to hide them, you have to make them local to a
sub-include file and in that file write global set and get functions
(which automatically cease to be global after shrouding), eg I have:
atom A4Mapping
global procedure SetA4Mapping(atom a4m)
A4Mapping=a4m
end procedure
global function GetA4Mapping()
return A4Mapping
end function
where normally I might just have global atom A4Mapping. You only need
to do this if it is important that A4Mapping is not visible externally
once the source has been shrouded.
If your shrouded source uses win32lib or similar, then it can get very
messy. I've managed it, but with hindsight I could have made my life
much easier by finding some way, any way, not to do it
. I can help
out if you need me to, just ask.
Pete
http://palacebuilders.pwp.blueyonder.co.uk/euphoria.html
6. Re: Shrouding
Thanks for the help, there should be a shrouded EUEU(euphoria scripting for
euphoria) on the user contrib spot as soon as it works its way through the
system.
Daniel Kluss
----- Original Message -----
From: "Pete Lomax" <petelomax at blueyonder.co.uk>
To: <EUforum at topica.com>
Subject: Re: Shrouding
>
>
> On Sun, 9 Nov 2003 19:48:56 -0800, Daniel Kluss
> <codepilot at netzero.net> wrote:
>
> >Ive had been reg euphoria since like december of 2000, but I've never
shrouded anything before.
> >How do you shoud source and have it still useable by include?
> >
> I've been doing quite a bit of that this year
>
> If it is a fairly simple source without any include statements, then
> it is very easy. Just include the output file as normal.
>
> If there are some include statements, then only the global routines
> and constants defined in the main file remain global after shrouding,
> so you may have to write a small wrapper at the toplevel, eg, I have:
>
> global procedure setCommissionCode(sequence Code)
> SetCommissionCode(Code) -- see register.ew
> end procedure
>
> because SetCommissionCode (with a capital S) from the included file is
> otherwise not callable after shrouding.
>
> Conversely, global variables remain global no matter where they are
> defined, so if you want to hide them, you have to make them local to a
> sub-include file and in that file write global set and get functions
> (which automatically cease to be global after shrouding), eg I have:
>
> atom A4Mapping
> global procedure SetA4Mapping(atom a4m)
> A4Mapping=a4m
> end procedure
> global function GetA4Mapping()
> return A4Mapping
> end function
>
> where normally I might just have global atom A4Mapping. You only need
> to do this if it is important that A4Mapping is not visible externally
> once the source has been shrouded.
>
> If your shrouded source uses win32lib or similar, then it can get very
> messy. I've managed it, but with hindsight I could have made my life
> much easier by finding some way, any way, not to do it
. I can help
> out if you need me to, just ask.
>
> Pete
> http://palacebuilders.pwp.blueyonder.co.uk/euphoria.html
>
>
>
> TOPICA - Start your own email discussion group. FREE!
>
>
8. Re: Shrouding
Irv Mullins writes:
> Please tell me the names of the routines and variables.
> Perhaps you can - I sure can't.
My previous comments and the docs are both a
bit vague about this.
If you choose the "scramble" option, then nobody can
read anything, but you can document the nice global
names you used in your original source file, and people
who include your file can use them.
> Maybe you should change the docs
> to "you can distribute a shrouded but not
> scrambled include file..."
No. Scrambling works too. Just tell your users what names
they need to use.
If you care about security, there's no reason
not to choose the scramble option, other than
a very tiny start-up cost in descrambling your program.
Regards,
Rob Craig
Rapid Deployment Software
http://www.RapidEuphoria.com
9. Re: Shrouding
From: Tony Bucholtz <tony_bucholtz at hotmail.com>
> G'day all
>
> Robert Craig wrote:
> > If you choose the "scramble" option, then nobody can
> > read anything, but you can document the nice global
> > names you used in your original source file, and people
> > who include your file can use them.
>
> Maybe what we need is a combination of some of the earlier ideas,
> such as:
>
> 1. Preprocessor to prepend a comment block regarding globals and
> includes, extracted from the code
> 2. The "with shrouding" and "without shrouding" directives
> 3. Expand the "with/without shrouding" directives to also imply
> "with scrambling" and "without scrambling", to *always* leave the
> comment block (and anything else the author wants to reveal) in
> clear text
I believe that adding 'clear text' comments to the start of an otherwise
shrouded file is an excellent one - distribute one file instead of two,
and your docs can never get out of sync with your library.
Probably there is a technical reason why Rob can't do this:
I think Euphoria looks at something (the first few bytes, perhaps) of
each file when it is included, and ships it off to the 'deshrouder'
routine if necessary. Probably, once a file is determined to be in plain
text, i.e. a readable include file, it goes straight to the interpreter.
Maybe it would require a complete re-design of the interpreter to make
it smart enough to handle mixed files.
Regards,
Irv
10. Re: Shrouding
Irv Mullins writes:
> I believe that adding 'clear text' comments to the
> start of an otherwise shrouded file is an excellent one
> - distribute one file instead of two, and your docs can
> never get out of sync with your library.
> Probably there is a technical reason why Rob can't do this:
You *can* add comments to either a shrouded
or a scrambled file after you create it.
You can even add statements.
Insert your comments or code before or after
any scrambled code, not in the middle.
(You'll have technical difficulties with certain non-ascii
characters if you use ed on a scrambled file,
but NotePad will work.)
Regards,
Rob Craig
Rapid Deployment Software
http://www.RapidEuphoria.com
11. Re: Shrouding
On Friday 29 June 2001 15:01, Robert Craig wrote:
> You *can* add comments to either a shrouded
> or a scrambled file after you create it.
> You can even add statements.
> Insert your comments or code before or after
> any scrambled code, not in the middle.
> (You'll have technical difficulties with certain non-ascii
> characters if you use ed on a scrambled file,
> but NotePad will work.)
Thanks! I had no idea that this was possible, but it works fine.
Regards,
Irv