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

new topic     » topic index » view message » categorize

2. Re: Shrouding

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!

new topic     » goto parent     » topic index » view message » categorize

3. Re: Shrouding

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

new topic     » goto parent     » topic index » view message » categorize

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>&nbsp;</DIV>

------=_NextPart_000_0010_01C3A6FA.83285840--

new topic     » goto parent     » topic index » view message » categorize

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 blink

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 blink. I can help
out if you need me to, just ask.

Pete
http://palacebuilders.pwp.blueyonder.co.uk/euphoria.html

new topic     » goto parent     » topic index » view message » categorize

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 blink
>
> 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 blink. 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!
>
>

new topic     » goto parent     » topic index » view message » categorize

7. Shrouding


new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu