DMUG-Archiv 2005

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Eigenen Code weitergeben

OK.
Wenn man aber die myfun - Definition in ein .mx Package speichert dann
nützt auch On[SetDelayed]  nichts, weil ja schon die DownValues im .mx sind.

Rolf

Jens-Peer Kuska wrote:

Hallo,

guckt doch mal, was passiert mit

-------------------------------------------------------------------
BeginPackage["TopSecret`"]

myfun::usage="myfun[x] will do something very very sectret."

Begin["`Private`"]

myfun[x_]:=Sin[x]

End[]
EndPackage[]

Attributes[myfun]={ReadProtected,Protected,Locked}
--------------------------------------------------------------------
Mit Encode[] gibt das die Datei im Anhang.

So, jetzt ist myfun[] sicher vor den Augen der
Welt -- ist ja mit Locked geschützt.

Dann startet man einen neuen Kernel, sagt

On[SetDelayed]
Get["TopSecret`"]

und was lächelt uns an ?

SetDelayed::trace: myfun[x_]:=Sin[x] --> Null

wer hätte das gedacht. Nicht mal der volle Context macht den Code unleserlich. Ansonsten *muß* das immer gehen, weil man die Funktion erst mit Locked versehen kann, wenn sie definiert
ist.

Natürlich kann man vor BeginPackage[] alle Debugging-Funktionen
ausschalten :-), um das zu verhindern.

Gruß
 Jens

----- Original Message ----- From: "Rolf Mertig" <rolf@XXXXXXX.com> To: "Jens-Peer Kuska" <kuska@XXXXXXX.de>
Cc: <llsaiyajin@XXXXXXX.de>; <demug@XXXXXXX.ch>
Sent: Thursday, September 15, 2005 11:30 PM
Subject: Re: Eigenen Code weitergeben


| Jens-Peer Kuska wrote:
|
| >Hallo,
| >
| >ich schätze solches Verhalten eigentlich nicht.
| >Zum einen ist es meist sinnlos. Weil sich kaum
| >jemand
| >einen größeren Quelltext anguckt und weil sich
| >eine störende
| >Kleinigkeit nicht selbst  beheben läßt.
| >
| >Neben dem Encode[] muß man nämlich noch
| >alle Symbole mit einem Protected Attribut
| >schützen und alle Funktionen mit ReadProtected.
| >
| >Natürlich kann man den Quelltext immer
| >rekonstruieren, in dem
| >man das Encode[] Package läd, sich die Names[] des
| >Kontextes ausgeben
| >läßt, dann obige Attribute von den Symbolen des
| >Packages
| >entfernt und sich die Definition[], die Options[]
| >.. ausgeben läßt.
| >
| >
| Nee nee, beim Attribute "Locked" geht das nicht ..
|
|



Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html