Added (minimal) documentation on how to build standalone applications
with Python. Updated various things (versions of libraries used, urls).
This commit is contained in:
parent
b92dce38e7
commit
a2139fef94
|
@ -2,10 +2,10 @@
|
|||
|
||||
:$e"*3e4LFQphFf8ZFR0bB`"bFh*M8P0&4!#3#!'8,V!!N!3"!!!!!6m!!!!r!!!
|
||||
!9G'"(r!!q[m!!2Vr!!$kf!!!qYJ!!2VB!!$kf!!!q[qJ$e"*3e4LFQphFf8ZFR0
|
||||
bB`)!!!"bFh*M8P0&4!#3"R*cFQ058d9%!*!BVAAL!`#3"J'8r`!!q[m!!2VB!!$
|
||||
bB`)!!!"bFh*M8P0&4!#3"R*cFQ058d9%!*!BVPGG(3#3"J'8r`!!q[m!!2VB!!$
|
||||
kf!!!qYJ!!2VB!!$krk!!q[mJm!$kr`!!q[m!!2VB&3!!qYJ!!2VB!!!6qYJ!!2V
|
||||
r)!SJ#b!-!D!!)!Da%"6i!2Vr!!$kf!!!qYJ!!2VB!!$kf!!!qYJ!!2Vr!!$kr`!
|
||||
!q[ri!2Vr%#B!!2Vr`!$krc$i!2Vr!*!%&3"!!"!"&!$&!!!"!!%!N!8#!*!&)J!
|
||||
"!*!&"3!+!+-!V!#3"l3!2!$)!(B%"&0SEhF!!!%!!!!"2`!!!$m!!!"9!2!Xj"0
|
||||
i!!!!(!"'!!&%6%p(!!!!%N4*9%`!!!!H!J#3#`)!rrm!!!!C!*!%$N*bEhGcCA)
|
||||
JGfPZC'phVc!:
|
||||
JGfPZC'ph%ES:
|
||||
|
|
|
@ -44,10 +44,10 @@ directory <code>Mac/mwerks/projects</code> for the project files and
|
|||
related stuff.
|
||||
|
||||
<LI> You need MetroWerks CodeWarrior. The current distribution has
|
||||
been built with CodeWarrior Pro 1. Ordering information is
|
||||
been built with CodeWarrior Pro 2. Ordering information is
|
||||
available on the <A HREF="http://www.metrowerks.com/">MetroWerks
|
||||
homepage</A>. You might still be able to build Python with MPW or
|
||||
Think/Symantec C but you are basically on your own.
|
||||
homepage</A>. Building Python with MPW or Think/Symantec C is
|
||||
probably impossible without major surgery.
|
||||
|
||||
<LI> You need GUSI, the Grand Unified Socket Interface, by Matthias
|
||||
Neeracher. The original CWGUSI is
|
||||
|
@ -61,7 +61,7 @@ these modifications are available in folder <code>Python:Mac:GUSI-mods</code>.
|
|||
|
||||
<A NAME="optional">The MacPython project files are configured to
|
||||
include a plethora of optional modules</A>, and these modules need a
|
||||
number extra packages. To use the project files as-is you have to
|
||||
number of extra packages. To use the project files as-is you have to
|
||||
download these packages too. PPC and CFM68K Python have all such modules as
|
||||
dynamically loaded modules, so if you don't need a certain package it
|
||||
suffices to just refrain from builing the extension module. For static 68K
|
||||
|
@ -81,8 +81,8 @@ below. Get the "full source" distribution, which includes MoreFiles.
|
|||
|
||||
<LI> Waste, a TextEdit replacement written by Marco Piovanelli, <A
|
||||
HREF="mailto:piovanel@kagi.com"><piovanel@kagi.com></A>. Python
|
||||
was built using version 1.2, which you can obtain from <A
|
||||
HREF="ftp://rhino.harvard.edu/pub/dan/WASTE"><ftp://rhino.harvard.edu/pub/dan/WASTE></A>
|
||||
was built using version 1.3, which you can obtain from <A
|
||||
HREF="http://www.boingo.com/waste"><http://www.boingo.com/waste></A>
|
||||
and various other places.
|
||||
|
||||
<LI> Gdbm library for the Mac. Available from Jack's Mac software page at
|
||||
|
@ -121,12 +121,12 @@ Top-level-folder:
|
|||
zlib
|
||||
libpng
|
||||
gdbm
|
||||
MoreFiles 1.4.3 (not needed by Python, only by tcl/tk)
|
||||
Python
|
||||
Tcl/Tk Folder
|
||||
tcl8.0
|
||||
tk8.0
|
||||
Waste 1.2 distribution (if you want waste)
|
||||
MoreFiles 1.4.3
|
||||
Waste 1.3 distribution (if you want waste)
|
||||
</PRE>
|
||||
|
||||
First build GUSI. If you didn't get the python-specific GUSI you have to
|
||||
|
@ -137,7 +137,7 @@ platform (ppc, 68k, cfm68k). <p>
|
|||
Next, in
|
||||
<code>MoreFiles</code>, <code>libjpeg</code>, <code>pbmplus</code>,
|
||||
<code>zlib</code>, <code>libpng</code>, <code>gdbm</code>,
|
||||
and<code>libtiff</code> you build all projects. Sometimes the projects are in "mac"
|
||||
and<code>libtiff</code> you build all projects. Usually the projects are in "mac"
|
||||
subfolders, sometimes they are in the main folder. Tcl/tk is a special
|
||||
case, see below. Of course, if you are only interested in one of
|
||||
static 68K, CFM68K or PPC you can skip building the other libraries.
|
||||
|
@ -174,14 +174,7 @@ building Python.
|
|||
<H2>Building Waste</H2>
|
||||
|
||||
You do not need to build the Waste libraries, as Python includes the
|
||||
source modules themselves. You have to make one modification,
|
||||
though. In file <code>ICCFMGlue.c</code> in folder <code>Minimal IC
|
||||
APIs</code>, add the following lines:
|
||||
|
||||
<blockquote><pre><code>
|
||||
#include <Gestalt.h>
|
||||
#include <Errors.h>
|
||||
</code></pre></blockquote>
|
||||
source modules themselves.
|
||||
|
||||
<H2>The organization of the Python source tree</H2>
|
||||
|
||||
|
@ -190,19 +183,16 @@ the Python source tree. At the top level, we find the following
|
|||
folders:
|
||||
|
||||
<DL>
|
||||
<DT> build.mac68k.stand
|
||||
<DD> This is where you build static 68K interpreters.
|
||||
<DT> build.macstand
|
||||
<DD> This is where you build static 68K interpreter, and possibly (if
|
||||
you want them) static PPC and fat interpreters. There is also a project
|
||||
here that builds smaller versions of the static interpreter.
|
||||
|
||||
<DT> build.mac68k.shared
|
||||
<DD> This is where you build the CFM68K shared library, interpreter
|
||||
and applet framework.
|
||||
|
||||
<DT> build.macppc.shared
|
||||
<DD> This is where you build the PPC shared library, interpreter and
|
||||
applet framework. You can also build the fat applet framework here.
|
||||
|
||||
<DT> build.macppc.stand
|
||||
<DD> This is where you build a nonshared PPC interpreter (optional).
|
||||
<DT> build.mac
|
||||
<DD> This is where you build the CFM68K, PPC and fat shared library,
|
||||
interpreter and applet framework. The fat targets are deposited in the
|
||||
main folder (one level up), the others, which are intermediate results
|
||||
really, are left here.
|
||||
|
||||
<DT> Demo
|
||||
<DD> Demo programs that are not Mac-specific. Some of these may not
|
||||
|
@ -211,7 +201,7 @@ work, the file <code>README-Mac</code> has some details.
|
|||
<DT> Extensions
|
||||
<DD> Extensions to the interpreter that are not Mac-specific. Contains
|
||||
only the <code>img</code> extension in this distribution. Extensions
|
||||
are <em>not</em> built here, as they are on Unix, but incorporated in
|
||||
are not always built here, as they are on Unix, but sometimes incorporated in
|
||||
the core interpreter or built as plugin modules.
|
||||
|
||||
<DT> Grammar
|
||||
|
|
|
@ -79,3 +79,4 @@ http://www.biap.com/datapig/mrwheat/cgi_params.html</a>. <p>
|
|||
To test the script drop <code>cgitest.cgi.py</code> onto <code>mkapplet</code>,
|
||||
move the resulting <code>cgitest.cgi</code> to somewhere where it is reachable
|
||||
by NetPresenz, and point your web browser towards it.
|
||||
</BODY></HTML>
|
||||
|
|
|
@ -1,121 +1,122 @@
|
|||
(This file must be converted with BinHex 4.0)
|
||||
|
||||
:%'0RDA4PFh3ZBfGT,R*cFQ-!FR0bBe*6483"!*!((`VqD`#3"!%!!!!G33!!(%%
|
||||
!!!(*0K3J9#"S!"3J8(d4X'J4!$S"CbB5,`a1ZJ)-$$S!@RN3BfGTG'9cG#jMCfN
|
||||
ZFR0bBfN#!!!!2j!)!*!%2j!)!*!BVRDb4!#3"Km+ra(!U'N"(8!4rr-6F!!3,[r
|
||||
c[G)4CK"40Vj9D`%"3N5pSEj9D`%"-&%b!@FH4"8-!!!FC4*`!"!Z3a8-!!!IBJC
|
||||
`!@!!!3%#,&T8,5j%[3%!'c`"CM!R96iD5S!J8`)S!,m!,L)!l3N#!3"!JbME0"1
|
||||
Tebm-6VS"#8TRD`%!TPG$1J!!!3!4!!!!!3IJ!)%'B!!!"q!!N!!"J!#3!!'!!*!
|
||||
!rri!N!$rrJ!3rrm!NIr!J*(rJ%#4rc!JJrr)%)2JIiq$rM!(Krm!"iIrJ!H(rq!
|
||||
($rrrj`rrrpm2rrrR(Frri"QqrrJGI'Bi24lDh$eZfY`pEYVFICjQhRrrrrjrrrr
|
||||
q!*!*$r!!!!r`!!!2m!!!$r!!!!r`!!(rri!"rrq!!IrrJ!2rri!$rrr!!rrri!I
|
||||
rrr!(rrrr"rrrr`rrrrm2rrrr$rrrrarrrrmIrrrr(rrrrcrrrrJrrrrm2rrrr(r
|
||||
rrrjrrrrqIrrrr[q3&!#3"`T3i!!HK)!!"k%J!!!!3!#3""1!%i!"!#I!*r!R$Ji
|
||||
'$iB2jKUi'V!Im!#3"2q3)!!!!3!!!3!!%!+!!!3%3!"%##!!9I!3!&%J#!"3`r3
|
||||
!8-BD!"2m2`"6r"k!4r`V3%ri)5"Aq!q3!'rm2iK2r$q%cr`IJPrq$i&rrJq#(ri
|
||||
("#hr!`JVI`)3+cd')'PRQ%"T*r#!Irq"!!!J!J!!%!3!!!J)!!!%%!!!!L!!!!&
|
||||
!!!!!J!!!!3!!%!1!!!3(`!"%$q!!9Ir`!&(rq!"3rr`!82rq!"2rr`"6rrq!4rr
|
||||
r`%rrrq"Irrr`Irrrq(rrrrcrrrrqIrrrrhrrrriIrrrm2rrrq$rrrr!rrrrJIrr
|
||||
r`(rrri"rrrm!!$rq!!!Ir!!!$rJ!!!I`!!!$i!!!!F!!!!#!!!!!!J#3#!m!N!N
|
||||
2!*!&m2!!N!N2!!!!$``2!*!($`!2!!!!m-c!m!#3"Jm2$`99A`c-c!m!N!B2$`!
|
||||
&!&c-c-c!m!#3"3m2!!"9h3$rrr`2!*!&$`m!!&AG$iGhIr$`!*!&$`"999AiGhH
|
||||
,r`m!N!32$`"999@)GhGlMr$`!!!!$`!&9999@hGhKlHr$`!!!!m!p99999YhGiG
|
||||
hIm$`!!!2$`99999AGhGhZi[m$`!!$r"9N!9hGlZ,Lrc!m!!2$&@3"AGhZlZlr-`
|
||||
2!2r-9C!&GhGlZiMmc-$`$q99N!9hGhH)Lrc-c-m2p9@3"9GhGlZrr-c0m!!&9C!
|
||||
&9hGhHlr-c0m!!&&9&9@3"(GhGrr-cI!!!&&49499999hGhImc0m!!!"48984848
|
||||
9GhGrr-h`!!!&89%9&9%9&9GrrmcI!!!!"9&4&4&4&49Irmc0m!!!!!99N!GFc-c
|
||||
I!*!*rGhGhFc0m!#3#3rGhGh-h`#3#rh-c-h`!*!,$pc-h`#3$Ih0m!#3$3rI!*!
|
||||
2m!#3#33!N"$r!*!6r`#3#[m!r`#3&2m!N!Ir!#X!r`#3$rm!!!$r!*!'r`!V+bX
|
||||
!r`#3$[m!r`$r!,#3"2m!+j!&!2m!N!hr!2m!!!#`!!#`+j!)!2m!N!cr!2m!N!5
|
||||
`X2Vk!!$rN!8V!2m!N![r!2m!N!5`X2Vk!2qI5*!%rrm!r`#3$2m!!,#3"[qI5*!
|
||||
%Rjrrr`$r!*!*r`$r!!#`N!BcRdL3"61Irrm!r`#3#2m!!!#`N!Jc5*!%-dJc5$2
|
||||
r!2m!N!Ir!!$rX*!)-dL3"*p)N!6r+`$r!*!'r`$r!,#3#%L3"jmc-c2r+`$r!*!
|
||||
&rrm!X*!+5*!%Rc-c-jmcrbXV!2m!N!6r!#Z`N!T)N!3cRc13"2mV+bX!r`!!rrm
|
||||
V+l#3#NL3"6-c-jqIrbZ3"!$r!!$rr,#3#dL3"TqIRc2r+j!'r`$rrl#3$%L3"6-
|
||||
c-rrr+j!%q[m!N!5`N!a)N!DI-rmVN!6kr`#3",!&X,!&X*!*5*!'rrmV+b[kr`#
|
||||
3"E!&X!@`X!@`N!G)N!Er+bXVq[m!N!D`"E!&X,!&"E!&"E!&X%L3"Irr+b[kr`#
|
||||
3"V#`"E!&"E!&X,!&"E!&X,")52rrrbXVq[m!N!H`X!@`"3@`"3@`"3@`"E#`rrr
|
||||
r+bXVq[m!N!L`N"!VN!Akr`#3%[rkN!FV+b[kr`#3&2rkN!BV+rVr!*!@rrSVN!A
|
||||
kr`#3'2rk+bXVq[m!N"VrqL[kr`#3(2rkr`#3([m!N"*!#)!T3!)J"0![U$Bd,V*
|
||||
Z-6mL(m3UL$q3!!)J!8!!J!!!#)!T`!2J"r![q$rm2rjrrcrq(r`rq$r`!q!"`!#
|
||||
!!*!&J!!!m!$`!*!%m2!2$`#3"[$!m!#3"!m-r`m!!!$`99phm2!!!2m&KhU[$`!
|
||||
!m&9AL+r!m!rm99GkV-c2!2999AImcI!!"999ImcI!!"489&GcI!!!&9999hI!*!
|
||||
&rGh`!*!&$pm!N!I`!*!0!3#3"Im!!!$r!*!*r`$r!!$r!2m!N!cr!#X!r`#3#[m
|
||||
!+rrr!2m!N!Er!,#`X2p)52m!r`#3"Irr!,$M5%L*LIm!r`#3"2m!X,#`512MLIm
|
||||
V!2m!!2rr+l#`X%K)LBNVN!6r!!$rX*!&5%Mr+b[jr`#3",#3"8Mr+b[jr`#3",!
|
||||
&X!@`"E$j+rRr!*!&X*!(qIRr!*!+rrRjqIm!N!crqIm!N!lr!*!D"d&38%`!!3!
|
||||
!!!%!(rrq!"!!!`!4!)+!%3%#3"-cJL!9@5)3&@%$q"-a+SJ3!!!)%'rl#"!!!!J
|
||||
3$lJ)%!!!#"!2hkJ3!!!)%!(Vk"!!!!J3!IF)%1!!#"$KlmJ33!!)%I'qL"(`!!J
|
||||
4m$pS%rJ!#"2i2iJ6q!!)&U`hb"DX!!JAr!!)%!!!#"rrrrJIrri!(rrr!"rrri!
|
||||
Irrr!(rrri"rrrr!Irrri(rrrq"rrrrJIrrri(rrrq"rrrrJIrrri(rrrq"rrrrJ
|
||||
Irrri(rrrq"rrrrJIrrri(rrrq"rrrrJIrrri(rrrq"rrrrJIrrri(rrrq"rrrrJ
|
||||
Irrri(rrrq"rrrrJIrrri(rrrq!!!!J!!$rq3#I!!N!82!*!*r`#3"3m!"3#3"&!
|
||||
!!2(`!*!%$`!&!!!!"3!!!2%I!*!%$`"9!&8!99!!!2%4m!!!!!m&N!43"3!`!2%
|
||||
4(`!!!!m&"393!!8!!!$rrrr`!!!2!&8!93!&!$"38&!!m!!!$`#3$2!!!!m!!!9
|
||||
39C!%8&8!!2!!!!m!N!c`!!!2!*!%999399!!!!$`!!!2!*!-m!!!$`#3"&99939
|
||||
999"3m!!!$`#3$2!!!!m!N!8&99"39993m!!!$`#3$2!!!!m!N!8&998&93!!m!!
|
||||
!$`!!99!!N!M`!!!2!!"98!!&99"9998!m!!!$`!!"3#3#I!!!!m!"999!!93999
|
||||
38!$`!!!2!!9993#3#2!!!!m!"999!!!!9999"9$`!!!2!&9999!!N!I`!!!2!&9
|
||||
999!!!&9999!!m!!!$`"99993!*!(m!!!$`9489&9!!"9"999!2!!!!m&89&493#
|
||||
3"r!!!!m&9C!%!*!(m!!!$`#3$2!!!!rrN!c`!!!!"!#3"2q3&!#3$2m!N",rr`#
|
||||
3#rm!!!#`!*!)X!#3"Im&r`#3#[m!!!#`!*!(X!#3"[m&"Im!N!Rr!!#`X!!!X,!
|
||||
!!,#`X!#3"Im&"3Ar!*!)r`#`!,!!X!#`X!!!X!!!f!!!!2m&N!6r!*!(r`#`!,!
|
||||
!X,!!N!5`!*!'rj!(!*!'r`!!X,!!!,#`!!!!X!!!f!#`!,!!X!!!!2m!N!Er!*!
|
||||
Br`#3"[m!N!@`X!#`N!N!X,!!N!6r!*!'r`#3'2m!N!Er!*!)X*!&!,#`X!#3"rm
|
||||
!N!Er!*!Br`#3"[m!N!L`N!B!X*!'!,!!r`#3"[m!N"Mr!*!'r`#3#l#3"!#`!,#
|
||||
3"3$r!*!'r`#3'2m!N!Er!*!,X*!&!,#`X!#3"2m!N!Er!*!%X,#`!*!4r`#3"[m
|
||||
!N!5`X,!!N!5`N!3!X*!'!!$r!*!'r`#3"E!!N",r!*!'r`!!!,#3"3!!!,#`!,#
|
||||
3"3#`!!!!r`#3"[m!!!#`N!8!N"$r!*!'r`!!!,#3"3#3"V#3"J#`X!$r!*!'r`!
|
||||
!X*!(!*!2r`#3"[m!!,#3"`#3"E#3"`!!!2m!N!Er!!#`N!F!N!rr!*!'r`#`X!@
|
||||
`"E!&X,!!N!5`X!#`N!8!!2m!N!Er!,#`"E!&X!@`X!#3$[m!N!Er!,#3#3#3$[m
|
||||
!N!Er!*!Br`#3"[q3'J#3"N"rm%!B9949AN!#6rT!!N$b4J*'HNm#6cTIJPqb3!*
|
||||
rr[q3)!!!!)!2rj!&!!!2!*!%$r!!$`8&"3-2(`!2"38&!`rrm!m!N!E`$`"9N!4
|
||||
3m!m!N!E`$`!!!&99!2!2!!93!!!!m!m!"9!&99$`$`"993!!!2!2!&99!&93m!m
|
||||
&9993!!$`$`9999"9!2!2!*!'m!rrN!E`!!!"!!$rN!X!N!Ar!*!*rrm!N!6r!,!
|
||||
!X!#`!0J!r`Ar!!!!r`#`!,!!X!$B!2q3"!!!r`#3$2m!!2m!!,#3#3$r!!$r!*!
|
||||
-r`!!r`#3"V#3"!!!r`!!r`!!!,#`!*!(r`!!r`!!!,#`!!#`N!3!r`!!r`!!X*!
|
||||
%!*!'r`!!r`!!X*!%!!#`X,!!r`!!r`#`N!B!N!Ar!!$r!,#3"J#`X!!!r`!!r`#
|
||||
3$2m!!2q3$J#3"!G849K8!*!&!3!!!3!!!!+!!!!%3!!!#+!!!"23!!!L5!!!3B3
|
||||
!!)'#!!%(i3!#"##!"JJa3!S)%5!Arrm3,JJ"#%S%!36+"!%#Im3"!cr#!3BIiJ%
|
||||
-,rm"'#Yr!6!V*3&JDf@"`'XPJB"rri-!!M!(!!)B$3!#$"N!!JBa!!)$B3!#!F%
|
||||
!!J#"!!!"!!!!!i!!!!I!!!!2i!!!(r!!!$ri!!"rr!!!rri!!Irr!!2rri!(rrr
|
||||
!$rrri"rrrr!rrrriIrrrr2rrrrjrrrrr2rrrrKrrrr`rrrri2rrrm$rrrq"rrrr
|
||||
!IrrrJ(rrr`!#2rm!!Krp!!)2q3!#"r%!!J2K!!)"`3!#!)%!!!!#!*!)$`#3$r$
|
||||
`!*!0$``2!*!0m-c3m!#3#`m-9982!*!,m-a3"F$`!*!*$`c-a9hG$`#3#I$-c-9
|
||||
GhF$`!*!($`c-a999A-`2!*!(m-c-a3!!A-c!m!#3"3rph-a3!!"9h-r2!*!&m2h
|
||||
Fc&!!!!AFcpc`!!!!$`ArN!RG$`!!!2"9r-!!9Gc-c-c2hF$`!!m-82c!!!AFc-c
|
||||
-cph-$`$rc&$m`!!&hFc-c-rGc-$`$q99rZ8!"9h-c-c2hFc-c`$e9IlP!!"Gc-c
|
||||
-cph-cI!!"9Aqj9!!AGc-c-rGc0m!!&&9rZ9999AFc-c2hFh`!!"48Il99999h-c
|
||||
-cphI!!!!89(qd9%9&Gh-c-rGm!!!"9&4rY94&49Gc-c2h`!!!!948Il48489AFc
|
||||
-cr!!!!!&99Aqj99999hFc0m!N!I`!2hGhGhFcIm!N!I`!!rGhGhFh`m!N!I`!!$
|
||||
pc-c0m!m!N!I`!!!2h-cI!!m!N!I`!!!!rFh`!!m!N!I`!!!!$pm!!!m!N!I`!*!
|
||||
%m!!!$`#3"J3!N"$r!*!Hr`$r!*!Fr`!V!2m!N"Vr!#XVqJ$r!*!Br`!VX*!%!2m
|
||||
!N"Er!#XVX!!!X#X!r`#3&2m!+j!%X,$kq[S!r`#3%[m!+j!&X,$kq[SV!2m!N"$
|
||||
r!#Z3",#3"LXV+`$r!*!1r`!VN!@`!*!%X#Z3"!$r!*!-rrrkqLXV+l!!N!@`X2S
|
||||
V+rmVr`#3#[m!rrVk+bXVX!#3"V$k+b[rqL[r!*!)r`#`rj!5q[S!r`#3"[m!X,$
|
||||
r+bX!!!#`X2SVN!Mrq[SV!2m!N!6r!#Z`!2mV+`#3",$k+j!)rrVk+bX!r`!!rrm
|
||||
V+l!!rbXV!*!%X2Vk+j!(rrVk+bXV!2m!!2rmX,#`rkZVX!!!!,#`qLZ3"rrkqLZ
|
||||
3"Im!!2q`X,$rUkZ`!*!%X2SVN!Irq[SV+b[kr`#3",#`X2qVUl#`!!!!X2Vk+j!
|
||||
'rrVk+b[kr`#3",!&X,$rUkZ`N!Ik+j!'rrVk+rVr!*!&X!@`"IqV-l#3"rSVN!E
|
||||
rq[Vkr`#3"V!&X!ArUc-&X!8&X!@`q[SVN!Arq[Vr!*!'X,!&X!ArUc1`X!8&X!@
|
||||
`X2SVN!Arq[m!N!H`X!@`"IqV-`@`"3@`"E#`qLZ3"Irr!*!)X*!&rkZVX*!)q[S
|
||||
V+b[kr`#3$[m!!!$rqT!)+b[krrm!N!lr!*!%rrU3"b[kr`$r!*!1r`#3"Irk+j!
|
||||
&q[m!!2m!N!lr!*!'rrSV+b[kr`!!!2m!N!lr!*!(rrSVq[m!N!6r!*!1r`#3#2r
|
||||
kr`#3"Im!N!lr!*!*r`#3"[m!N!Y!!)!"3!)J""!)k""%,rTU#6N+'3`UL$qB#LJ
|
||||
*5!L)#!J!J!(!!q!(m!ri(r`rrRrr2riIr$ri2rJ,k!R)#)J)#!!!!)!!N!6`!*!
|
||||
'$`m!N!E``2!!N!32$-`2!*!%m-a982!!!!m-c-A-$`!!m2q3"2$`$rc`AFc-rFm
|
||||
!pI!&h-cpm!!&m!AFc2m!!&(a89h0m!!!9I99AGr`!!!!m2hGm2!!!!$`$pm!m!!
|
||||
!!2!!m!$`!!!!m!!!!2!!!!!"!*!*r`#3$[m!r`#3$2m!+`$r!*!+r`!V+bX!r`#
|
||||
3#2m!+bZ`X,!!r`#3"[m!+j!%X#XV!2m!N!6r!2q3#3$r!!$rrb[r!,$j+j!%rrN
|
||||
Vr`!!rl$r!!#`q5XV+rrjr`#3",$r!!#`q5XV+rrr!*!%X!Ar"E!&X2NVqIm!N!@
|
||||
`X2q`N!6jqIrr!*!(r`$rqIRjr`$r!*!(r`!!rrRr!!$r!*!(r`!!!2m!!!$r!*!
|
||||
(r`#3"rm!N!B(3A4YF!!$!*!%,&"jG$J!!!!"4P*&4J!#!!%!J3!!!)!!!`#$580
|
||||
1)`!#!!%!J!!!!)%!!`##!!!!!3#3"!N!N!B"!3%!!!%!!!!G33!!(%%!!!(*!21
|
||||
aT"a)!!!!(!'k!!T#6N4-!!!!@NP$6L-!!`"Q8dPD43!!!*C'8N9'!!)!SQPMFb-
|
||||
!!`$'D@0X0!!#!2CTBf`i!!)"'QPMFc3!!J%qD@0c1!!#!@*3HA3i!!!"KP"[F(3
|
||||
!!!'5!)$rr`!!'rm!N!3",2rr!*!*J2rr!!!"9J#3"B(rr`!!#MN!N!@#rrm!!"-
|
||||
F!*!%rj!%!!!""!#3"B(rr`!!#Li!N!@!rrm!!"-4!*!&Jrrr!!!Ep!#3"!%Xrrm
|
||||
!!!%5!*!&J2rr!!!)BJ#3"B(rr`!!%88!N!@#rrm!!"SS!*!&J2rr!!!#@J#3"B(
|
||||
rr`!!#cd!N!@#rrm!!"3J!*!&J2rr!!!%AJ#3"B(rr`!!$8%!N!@#rrm!!"BN!*!
|
||||
&J2rr!!!)TJ#3"B(rr`!!%BN!N!@#rrm!!"TX!*!&J2rr!!!*+J#3"B(rr`!!%Jd
|
||||
!N!@#rrm!!"V`!*!+(#m!N!@"rrm!!"`d!*!%$NphEQ9b)(*PFfpeFQ0PAq`:
|
||||
:%'0RDA4PFh3ZBfGT,R*cFQ-!FR0bBe*6483!N!JI#T%Z!*!%!3!!!"e"!!!F33!
|
||||
!!FNf&#"8)'J!&#"3I4'`D"%!1J&R*K)[$%kk!J`-1J"DH4"MCfPdCA0d,Q0RD5j
|
||||
bFh*MD3)!!!"bFh*M8P0&4!#3"(*cFQ058d9%!*!BVUU!+!#3"Km+ra(!U'N"(8!
|
||||
4rr-6F!!3,[rc[G)4CK"40Vj9D`%"3N5pSEj9D`%"-&%b!@FH4"8-!!!FC4*`!"!
|
||||
Z3a8-!!!IBJC`!@!!!3%#,&T8,5j%[3%!'c`"CM!R96iD5S!J8`)S!,m!,L)!l3N
|
||||
#!3"!JbME0"1Tebm-6VS"#8TRD`%!TPG$1J!!!3!4!!!!!3IJ!)%'B!!!"q!!N!!
|
||||
"J!#3!!'!!*!!rri!N!$rrJ!3rrm!NIr!J*(rJ%#4rc!JJrr)%)2JIiq$rM!(Krm
|
||||
!"iIrJ!H(rq!($rrrj`rrrpm2rrrR(Frri"QqrrJGI'Bi24lDh$eZfY`pEYVFICj
|
||||
QhRrrrrjrrrrq!*!*$r!!!!r`!!!2m!!!$r!!!!r`!!(rri!"rrq!!IrrJ!2rri!
|
||||
$rrr!!rrri!Irrr!(rrrr"rrrr`rrrrm2rrrr$rrrrarrrrmIrrrr(rrrrcrrrrJ
|
||||
rrrrm2rrrr(rrrrjrrrrqIrrrr[q3&!#3"`T3i!!HK)!!"k%J!!!!3!#3""1!%i!
|
||||
"!#I!*r!R$Ji'$iB2jKUi'V!Im!#3"2q3)!!!!3!!!3!!%!+!!!3%3!"%##!!9I!
|
||||
3!&%J#!"3`r3!8-BD!"2m2`"6r"k!4r`V3%ri)5"Aq!q3!'rm2iK2r$q%cr`IJPr
|
||||
q$i&rrJq#(ri("#hr!`JVI`)3+cd')'PRQ%"T*r#!Irq"!!!J!J!!%!3!!!J)!!!
|
||||
%%!!!!L!!!!&!!!!!J!!!!3!!%!1!!!3(`!"%$q!!9Ir`!&(rq!"3rr`!82rq!"2
|
||||
rr`"6rrq!4rrr`%rrrq"Irrr`Irrrq(rrrrcrrrrqIrrrrhrrrriIrrrm2rrrq$r
|
||||
rrr!rrrrJIrrr`(rrri"rrrm!!$rq!!!Ir!!!$rJ!!!I`!!!$i!!!!F!!!!#!!!!
|
||||
!!J#3#!m!N!N2!*!&m2!!N!N2!!!!$``2!*!($`!2!!!!m-c!m!#3"Jm2$`99A`c
|
||||
-c!m!N!B2$`!&!&c-c-c!m!#3"3m2!!"9h3$rrr`2!*!&$`m!!&AG$iGhIr$`!*!
|
||||
&$`"999AiGhH,r`m!N!32$`"999@)GhGlMr$`!!!!$`!&9999@hGhKlHr$`!!!!m
|
||||
!p99999YhGiGhIm$`!!!2$`99999AGhGhZi[m$`!!$r"9N!9hGlZ,Lrc!m!!2$&@
|
||||
3"AGhZlZlr-`2!2r-9C!&GhGlZiMmc-$`$q99N!9hGhH)Lrc-c-m2p9@3"9GhGlZ
|
||||
rr-c0m!!&9C!&9hGhHlr-c0m!!&&9&9@3"(GhGrr-cI!!!&&49499999hGhImc0m
|
||||
!!!"489848489GhGrr-h`!!!&89%9&9%9&9GrrmcI!!!!"9&4&4&4&49Irmc0m!!
|
||||
!!!99N!GFc-cI!*!*rGhGhFc0m!#3#3rGhGh-h`#3#rh-c-h`!*!,$pc-h`#3$Ih
|
||||
0m!#3$3rI!*!2m!#3#33!N"$r!*!6r`#3#[m!r`#3&2m!N!Ir!#X!r`#3$rm!!!$
|
||||
r!*!'r`!V+bX!r`#3$[m!r`$r!,#3"2m!+j!&!2m!N!hr!2m!!!#`!!#`+j!)!2m
|
||||
!N!cr!2m!N!5`X2Vk!!$rN!8V!2m!N![r!2m!N!5`X2Vk!2qI5*!%rrm!r`#3$2m
|
||||
!!,#3"[qI5*!%Rjrrr`$r!*!*r`$r!!#`N!BcRdL3"61Irrm!r`#3#2m!!!#`N!J
|
||||
c5*!%-dJc5$2r!2m!N!Ir!!$rX*!)-dL3"*p)N!6r+`$r!*!'r`$r!,#3#%L3"jm
|
||||
c-c2r+`$r!*!&rrm!X*!+5*!%Rc-c-jmcrbXV!2m!N!6r!#Z`N!T)N!3cRc13"2m
|
||||
V+bX!r`!!rrmV+l#3#NL3"6-c-jqIrbZ3"!$r!!$rr,#3#dL3"TqIRc2r+j!'r`$
|
||||
rrl#3$%L3"6-c-rrr+j!%q[m!N!5`N!a)N!DI-rmVN!6kr`#3",!&X,!&X*!*5*!
|
||||
'rrmV+b[kr`#3"E!&X!@`X!@`N!G)N!Er+bXVq[m!N!D`"E!&X,!&"E!&"E!&X%L
|
||||
3"Irr+b[kr`#3"V#`"E!&"E!&X,!&"E!&X,")52rrrbXVq[m!N!H`X!@`"3@`"3@
|
||||
`"3@`"E#`rrrr+bXVq[m!N!L`N"!VN!Akr`#3%[rkN!FV+b[kr`#3&2rkN!BV+rV
|
||||
r!*!@rrSVN!Akr`#3'2rk+bXVq[m!N"VrqL[kr`#3(2rkr`#3([m!N"*!#)!T3!)
|
||||
J"0![U$Bd,V*Z-6mL(m3UL$q3!!)J!8!!J!!!#)!T`!2J"r![q$rm2rjrrcrq(r`
|
||||
rq$r`!q!"`!#!!*!&J!!!m!$`!*!%m2!2$`#3"[$!m!#3"!m-r`m!!!$`99phm2!
|
||||
!!2m&KhU[$`!!m&9AL+r!m!rm99GkV-c2!2999AImcI!!"999ImcI!!"489&GcI!
|
||||
!!&9999hI!*!&rGh`!*!&$pm!N!I`!*!0!3#3"Im!!!$r!*!*r`$r!!$r!2m!N!c
|
||||
r!#X!r`#3#[m!+rrr!2m!N!Er!,#`X2p)52m!r`#3"Irr!,$M5%L*LIm!r`#3"2m
|
||||
!X,#`512MLImV!2m!!2rr+l#`X%K)LBNVN!6r!!$rX*!&5%Mr+b[jr`#3",#3"8M
|
||||
r+b[jr`#3",!&X!@`"E$j+rRr!*!&X*!(qIRr!*!+rrRjqIm!N!crqIm!N!lr!*!
|
||||
D"d&38%`!!3!!!!%!(rrq!"!!!`!4!)+!%3%#3"-cJL!9@5)3&@%$q"-a+SJ3!!!
|
||||
)%'rl#"!!!!J3$lJ)%!!!#"!2hkJ3!!!)%!(Vk"!!!!J3!IF)%1!!#"$KlmJ33!!
|
||||
)%I'qL"(`!!J4m$pS%rJ!#"2i2iJ6q!!)&U`hb"DX!!JAr!!)%!!!#"rrrrJIrri
|
||||
!(rrr!"rrri!Irrr!(rrri"rrrr!Irrri(rrrq"rrrrJIrrri(rrrq"rrrrJIrrr
|
||||
i(rrrq"rrrrJIrrri(rrrq"rrrrJIrrri(rrrq"rrrrJIrrri(rrrq"rrrrJIrrr
|
||||
i(rrrq"rrrrJIrrri(rrrq"rrrrJIrrri(rrrq!!!!J!!$rq3#I!!N!82!*!*r`#
|
||||
3"3m!"3#3"&!!!2(`!*!%$`!&!!!!"3!!!2%I!*!%$`"9!&8!99!!!2%4m!!!!!m
|
||||
&N!43"3!`!2%4(`!!!!m&"393!!8!!!$rrrr`!!!2!&8!93!&!$"38&!!m!!!$`#
|
||||
3$2!!!!m!!!939C!%8&8!!2!!!!m!N!c`!!!2!*!%999399!!!!$`!!!2!*!-m!!
|
||||
!$`#3"&99939999"3m!!!$`#3$2!!!!m!N!8&99"39993m!!!$`#3$2!!!!m!N!8
|
||||
&998&93!!m!!!$`!!99!!N!M`!!!2!!"98!!&99"9998!m!!!$`!!"3#3#I!!!!m
|
||||
!"999!!9399938!$`!!!2!!9993#3#2!!!!m!"999!!!!9999"9$`!!!2!&9999!
|
||||
!N!I`!!!2!&9999!!!&9999!!m!!!$`"99993!*!(m!!!$`9489&9!!"9"999!2!
|
||||
!!!m&89&493#3"r!!!!m&9C!%!*!(m!!!$`#3$2!!!!rrN!c`!!!!"!#3"2q3&!#
|
||||
3$2m!N",rr`#3#rm!!!#`!*!)X!#3"Im&r`#3#[m!!!#`!*!(X!#3"[m&"Im!N!R
|
||||
r!!#`X!!!X,!!!,#`X!#3"Im&"3Ar!*!)r`#`!,!!X!#`X!!!X!!!f!!!!2m&N!6
|
||||
r!*!(r`#`!,!!X,!!N!5`!*!'rj!(!*!'r`!!X,!!!,#`!!!!X!!!f!#`!,!!X!!
|
||||
!!2m!N!Er!*!Br`#3"[m!N!@`X!#`N!N!X,!!N!6r!*!'r`#3'2m!N!Er!*!)X*!
|
||||
&!,#`X!#3"rm!N!Er!*!Br`#3"[m!N!L`N!B!X*!'!,!!r`#3"[m!N"Mr!*!'r`#
|
||||
3#l#3"!#`!,#3"3$r!*!'r`#3'2m!N!Er!*!,X*!&!,#`X!#3"2m!N!Er!*!%X,#
|
||||
`!*!4r`#3"[m!N!5`X,!!N!5`N!3!X*!'!!$r!*!'r`#3"E!!N",r!*!'r`!!!,#
|
||||
3"3!!!,#`!,#3"3#`!!!!r`#3"[m!!!#`N!8!N"$r!*!'r`!!!,#3"3#3"V#3"J#
|
||||
`X!$r!*!'r`!!X*!(!*!2r`#3"[m!!,#3"`#3"E#3"`!!!2m!N!Er!!#`N!F!N!r
|
||||
r!*!'r`#`X!@`"E!&X,!!N!5`X!#`N!8!!2m!N!Er!,#`"E!&X!@`X!#3$[m!N!E
|
||||
r!,#3#3#3$[m!N!Er!*!Br`#3"[q3'J#3"N"rm%!B9949AN!#6rT!!N$b4J*'HNm
|
||||
#6cTIJPqb3!*rr[q3)!!!!)!2rj!&!!!2!*!%$r!!$`8&"3-2(`!2"38&!`rrm!m
|
||||
!N!E`$`"9N!43m!m!N!E`$`!!!&99!2!2!!93!!!!m!m!"9!&99$`$`"993!!!2!
|
||||
2!&99!&93m!m&9993!!$`$`9999"9!2!2!*!'m!rrN!E`!!!"!!$rN!X!N!Ar!*!
|
||||
*rrm!N!6r!,!!X!#`!0J!r`Ar!!!!r`#`!,!!X!$B!2q3"!!!r`#3$2m!!2m!!,#
|
||||
3#3$r!!$r!*!-r`!!r`#3"V#3"!!!r`!!r`!!!,#`!*!(r`!!r`!!!,#`!!#`N!3
|
||||
!r`!!r`!!X*!%!*!'r`!!r`!!X*!%!!#`X,!!r`!!r`#`N!B!N!Ar!!$r!,#3"J#
|
||||
`X!!!r`!!r`#3$2m!!2q3$J#3"!G849K8!*!&!3!!!3!!!!+!!!!%3!!!#+!!!"2
|
||||
3!!!L5!!!3B3!!)'#!!%(i3!#"##!"JJa3!S)%5!Arrm3,JJ"#%S%!36+"!%#Im3
|
||||
"!cr#!3BIiJ%-,rm"'#Yr!6!V*3&JDf@"`'XPJB"rri-!!M!(!!)B$3!#$"N!!JB
|
||||
a!!)$B3!#!F%!!J#"!!!"!!!!!i!!!!I!!!!2i!!!(r!!!$ri!!"rr!!!rri!!Ir
|
||||
r!!2rri!(rrr!$rrri"rrrr!rrrriIrrrr2rrrrjrrrrr2rrrrKrrrr`rrrri2rr
|
||||
rm$rrrq"rrrr!IrrrJ(rrr`!#2rm!!Krp!!)2q3!#"r%!!J2K!!)"`3!#!)%!!!!
|
||||
#!*!)$`#3$r$`!*!0$``2!*!0m-c3m!#3#`m-9982!*!,m-a3"F$`!*!*$`c-a9h
|
||||
G$`#3#I$-c-9GhF$`!*!($`c-a999A-`2!*!(m-c-a3!!A-c!m!#3"3rph-a3!!"
|
||||
9h-r2!*!&m2hFc&!!!!AFcpc`!!!!$`ArN!RG$`!!!2"9r-!!9Gc-c-c2hF$`!!m
|
||||
-82c!!!AFc-c-cph-$`$rc&$m`!!&hFc-c-rGc-$`$q99rZ8!"9h-c-c2hFc-c`$
|
||||
e9IlP!!"Gc-c-cph-cI!!"9Aqj9!!AGc-c-rGc0m!!&&9rZ9999AFc-c2hFh`!!"
|
||||
48Il99999h-c-cphI!!!!89(qd9%9&Gh-c-rGm!!!"9&4rY94&49Gc-c2h`!!!!9
|
||||
48Il48489AFc-cr!!!!!&99Aqj99999hFc0m!N!I`!2hGhGhFcIm!N!I`!!rGhGh
|
||||
Fh`m!N!I`!!$pc-c0m!m!N!I`!!!2h-cI!!m!N!I`!!!!rFh`!!m!N!I`!!!!$pm
|
||||
!!!m!N!I`!*!%m!!!$`#3"J3!N"$r!*!Hr`$r!*!Fr`!V!2m!N"Vr!#XVqJ$r!*!
|
||||
Br`!VX*!%!2m!N"Er!#XVX!!!X#X!r`#3&2m!+j!%X,$kq[S!r`#3%[m!+j!&X,$
|
||||
kq[SV!2m!N"$r!#Z3",#3"LXV+`$r!*!1r`!VN!@`!*!%X#Z3"!$r!*!-rrrkqLX
|
||||
V+l!!N!@`X2SV+rmVr`#3#[m!rrVk+bXVX!#3"V$k+b[rqL[r!*!)r`#`rj!5q[S
|
||||
!r`#3"[m!X,$r+bX!!!#`X2SVN!Mrq[SV!2m!N!6r!#Z`!2mV+`#3",$k+j!)rrV
|
||||
k+bX!r`!!rrmV+l!!rbXV!*!%X2Vk+j!(rrVk+bXV!2m!!2rmX,#`rkZVX!!!!,#
|
||||
`qLZ3"rrkqLZ3"Im!!2q`X,$rUkZ`!*!%X2SVN!Irq[SV+b[kr`#3",#`X2qVUl#
|
||||
`!!!!X2Vk+j!'rrVk+b[kr`#3",!&X,$rUkZ`N!Ik+j!'rrVk+rVr!*!&X!@`"Iq
|
||||
V-l#3"rSVN!Erq[Vkr`#3"V!&X!ArUc-&X!8&X!@`q[SVN!Arq[Vr!*!'X,!&X!A
|
||||
rUc1`X!8&X!@`X2SVN!Arq[m!N!H`X!@`"IqV-`@`"3@`"E#`qLZ3"Irr!*!)X*!
|
||||
&rkZVX*!)q[SV+b[kr`#3$[m!!!$rqT!)+b[krrm!N!lr!*!%rrU3"b[kr`$r!*!
|
||||
1r`#3"Irk+j!&q[m!!2m!N!lr!*!'rrSV+b[kr`!!!2m!N!lr!*!(rrSVq[m!N!6
|
||||
r!*!1r`#3#2rkr`#3"Im!N!lr!*!*r`#3"[m!N!Y!!)!"3!)J""!)k""%,rTU#6N
|
||||
+'3`UL$qB#LJ*5!L)#!J!J!(!!q!(m!ri(r`rrRrr2riIr$ri2rJ,k!R)#)J)#!!
|
||||
!!)!!N!6`!*!'$`m!N!E``2!!N!32$-`2!*!%m-a982!!!!m-c-A-$`!!m2q3"2$
|
||||
`$rc`AFc-rFm!pI!&h-cpm!!&m!AFc2m!!&(a89h0m!!!9I99AGr`!!!!m2hGm2!
|
||||
!!!$`$pm!m!!!!2!!m!$`!!!!m!!!!2!!!!!"!*!*r`#3$[m!r`#3$2m!+`$r!*!
|
||||
+r`!V+bX!r`#3#2m!+bZ`X,!!r`#3"[m!+j!%X#XV!2m!N!6r!2q3#3$r!!$rrb[
|
||||
r!,$j+j!%rrNVr`!!rl$r!!#`q5XV+rrjr`#3",$r!!#`q5XV+rrr!*!%X!Ar"E!
|
||||
&X2NVqIm!N!@`X2q`N!6jqIrr!*!(r`$rqIRjr`$r!*!(r`!!rrRr!!$r!*!(r`!
|
||||
!!2m!!!$r!*!(r`#3"rm!N!B(3A4YF!!$!*!%,&"jG$J!!!!"4P*&4J!#!!%!J3!
|
||||
!!)!!!`#$5801)`!#!!%!J!!!!)%!!`##!!!!!3#3"!N!N!B"!3%!!!%!!!!G33!
|
||||
!(%%!!!(*!21aT"a)!!!!(!'k!!T#6N4-!!!!@NP$6L-!!`"Q8dPD43!!!*C'8N9
|
||||
'!!)!SQPMFb-!!`$'D@0X0!!#!2CTBf`i!!)"'QPMFc3!!J%qD@0c1!!#!@*3HA3
|
||||
i!!!"KP"[F(3!!!'5!)$rr`!!'rm!N!3",2rr!*!*J2rr!!!"9J#3"B(rr`!!#MN
|
||||
!N!@#rrm!!"-F!*!%rj!%!!!""!#3"B(rr`!!#Li!N!@!rrm!!"-4!*!&Jrrr!!!
|
||||
Ep!#3"!%Xrrm!!!%5!*!&J2rr!!!)BJ#3"B(rr`!!%88!N!@#rrm!!"SS!*!&J2r
|
||||
r!!!#@J#3"B(rr`!!#cd!N!@#rrm!!"3J!*!&J2rr!!!%AJ#3"B(rr`!!$8%!N!@
|
||||
#rrm!!"BN!*!&J2rr!!!)TJ#3"B(rr`!!%BN!N!@#rrm!!"TX!*!&J2rr!!!*+J#
|
||||
3"B(rr`!!%Jd!N!@#rrm!!"V`!*!+(#m!N!@"rrm!!"`d!*!%$NphEQ9b)(*PFfp
|
||||
eFQ0PY1!:
|
||||
|
|
|
@ -35,7 +35,12 @@ do for applets, by dragging your application to <code>EditPythonPrefs</code>. <p
|
|||
|
||||
The most logical way to embed Python is to link it against the shared
|
||||
library <code>PythonCore</code>. An example project and source can be
|
||||
found in the <a href="embed">embed</a> folder.
|
||||
found in the <a href="embed">embed</a> folder. <p>
|
||||
|
||||
<b>Note</b>: you may think that you do not have the project file
|
||||
<code>PythonCore</code> but actually you do: the standard installation
|
||||
process deposits it in the <code>Extensions</code> folder in the system
|
||||
folder under the name <code>PythonCore <i>version</i></code>. Add that file
|
||||
to the project replacing <code>PythonCore</code>. <p>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
|
|
@ -23,8 +23,8 @@ Python program to control and monitor the behaviour of the low-level
|
|||
driver, and we will create the user interface around that. If you want
|
||||
to actually run the code, you will obvously need InterSLIP and the
|
||||
interslip module. The latter is available as a dynamically loadable
|
||||
extension for PowerPC macs, and may be compiled in your Python
|
||||
interpreter for 68K macs. As of this writing there is still a slight
|
||||
extension for PowerPC/cfm68k Pythons, and may be compiled in your static 68K
|
||||
Python. As of this writing there is still a slight
|
||||
problem with the Python interslip module causing it to say "file not
|
||||
found" if the driver is not loaded yet. The workaround is to load the
|
||||
driver by starting InterSLIP Control and quitting it. <p>
|
||||
|
@ -50,7 +50,8 @@ NAME="resource-numbering">resource numbering</A>. Because often your
|
|||
resources will be combined with those that the Python interpreter and
|
||||
various standard modules need you should give your DLOG and DITL
|
||||
resources numbers above 512. 128 and below are reserved for Apple,
|
||||
128-255 for the Python interpreter and 256-511 for standard
|
||||
128-228 are for extensions like Tk,
|
||||
228-255 for the Python interpreter and 256-511 for standard
|
||||
modules. If you are writing a module that you will be distributing for
|
||||
inclusion in other people's programs you may want to register a number
|
||||
in the 256-511 range, contact Guido or myself or whoever you think is
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
:&dPZG'9bFfaTF%0[ER4bEf`Y-5jbFh*M!(*cFQ058d9%!*!)!LIr03#3"!%!!!!
|
||||
"``!!!--!!!"NCQBd4$9%-%3a4$*%-a*QCM-c0%8e46"&-88b46-5CQBA5@jdCA*
|
||||
cE'P`3fpZG(*[E#da,R*cFQ-#!!!!FR0bB`!!FR0bBe*6483!N"LYGH)0!*!'!LF
|
||||
cE'P`3fpZG(*[E#da,R*cFQ-#!!!!FR0bB`!!FR0bBe*6483!N"LZ9ed#!*!'!LF
|
||||
cN!3d)!!e)!!`)!!a)!!b)!!c%M-c!!!d)!%e)!%`)!%a)!%b)!%c5b@U5bQU5bU
|
||||
U5bZU5bbU5bfU5bkU5bp,0kT,1+T,1DT,1UT,1kT,2+T,2DT,2UT,2kT,3+T,3DT
|
||||
,3UT,3kT,4+T,4DT,4UT,4kT,5+T,5DT,5UT,)!#U5b!!!!!9!'!!-J$!!C)!!3%
|
||||
|
@ -11,4 +11,4 @@ ZEQ9MG!#3"6`!Y!"3!4F%$99`C'&dC5"cG'&dGA-!N!Bm!5)!8!&@"!44G@Pd!*!
|
|||
&#J"D!"S"9BJ!N!BH!&S!,J&@L!#3"JS!#J!D!&@)"e0dBA4eFcTK!*!&(J!+!#i
|
||||
!9BJ)6@9cFf&RC6S!!!%!!!!"``!!!--!!!"N!2!Xe"2@!!!!(!"'!!&%6%p(!!!
|
||||
!%N4*9%`!!!!H!J#3#2!VV!)!!!m!!!!C!2!VE!j$EfjdFQpX)%4TB@a[C`j$Efj
|
||||
dFQpX)'4TB@a[Ca4+:
|
||||
dFQpX)'4TB@a[Cd#e:
|
||||
|
|
|
@ -134,16 +134,20 @@ nothing has changed. <p>
|
|||
|
||||
Now let us try to turn the python script into an applet, a standalone
|
||||
application. This will <em>not</em> work if you have the "classic 68k"
|
||||
Python distribution, only if you have the cfm68k or PPC distribution.
|
||||
Python distribution, only if you have the cfm68k or PPC distribution.
|
||||
|
||||
<blockquote>
|
||||
Actually, "standalone" is probably not the correct term here, since an
|
||||
applet does still depend on a lot of the python environment: the
|
||||
PythonCore shared library, the Python Preferences file, the python Lib
|
||||
folder and any other modules that the main module depends on. It is
|
||||
possible to get rid of all these dependencies except for the dependency
|
||||
on PythonCore, but at the moment that is still quite difficult so we
|
||||
will ignore that possibility for now. By standalone we mean here that
|
||||
possible to get rid of all these dependencies and create true standalone
|
||||
applications in Python, but this is a bit difficult. See <a href="standalone.html">
|
||||
Standalone Applications in Python</a> for details. For this
|
||||
document, by standalone we mean here that
|
||||
the script has the look-and-feel of an application, including the
|
||||
ability to have its own document types, be droppable, etc. <p>
|
||||
ability to have its own document types, be droppable, etc.
|
||||
</blockquote>
|
||||
|
||||
The easiest way to create an applet is to take your source file and
|
||||
drop it onto "BuildApplet", located in the Python home
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
:&dPZG'9bFfaTF%0[ER4bEf`Y-LjbFh*M!(*cFQ058d9%!*!)$2eid3#3"!%!!!!
|
||||
,T!!!#U3!!!&CCQBd4$9%-%3a4$*%-a*QCM-c0%8e46"&-88b46-5CQBA5@jdCA*
|
||||
cE'P`3fpZG(*[E#db,R*cFQ-#!!!!FR0bB`!!FR0bBe*6483!N"LYGH)3!*!'$2d
|
||||
cE'P`3fpZG(*[E#db,R*cFQ-#!!!!FR0bB`!!FR0bBe*6483!N"LZ9ed2!*!'$2d
|
||||
cN!3d)!!e)!!`)!!a)!!b)!!c%M-c!!!d)!%e)!%`)!%a)!%b)!%c5b@U5bQU5bU
|
||||
U5bZU5bbU5bfU5bkU5bp,0kT,1+T,1DT,1UT,1kT,2+T,2DT,2UT,2kT,3+T,3DT
|
||||
,3UT,3kT,4+T,4DT,4UT,4kT,5+T,5DT,5UT,)!#U5b!!!!!9!'B!KJ$&!GB!!!%
|
||||
|
@ -53,4 +53,4 @@ TBf`i!!!!YQPME$3!!!$#D@0c1!!!!-jTBh-d!!!!fQPMFb-!!!$Q58026J!!!2*
|
|||
!!!!b!-3$U!#!rrm!!!"5!-3#X!#!rrm!!!"G!-3#Y!#!rrm!!!&K!-3#1!#!rrm
|
||||
!!!9P!-3$D!#!rrm!!!GT!-3#+!#!rrm!!!KY!-3#2!#!rrm!!!Ma!-3#3!)"!"N
|
||||
!!!SE!*!(*!!!#Tm!a!)X$N0[ER4bEf`J4'PKE'pR#8&LEh9d)'*[H!T"BQpeG#"
|
||||
*BfpZ$NphEQ9b)(*PFfpeFQ0P$#`:
|
||||
*BfpZ$NphEQ9b)(*PFfpeFQ0PX8S:
|
||||
|
|
|
@ -85,6 +85,11 @@ how to build a PPC or 68K interpreter from a source distribution.
|
|||
<A HREF="embed.html">Embedding Python on the Mac</A> is a minimal example of
|
||||
how to embed Python in other Mac applications.
|
||||
|
||||
<LI>
|
||||
<a href="standalone.html">Building Standalone applications in Python</a>
|
||||
explains how you can create real standalone applications in Python. You do
|
||||
need source (and a C development environment) for this at the moment.
|
||||
|
||||
</UL>
|
||||
|
||||
The Python distribution contains a few more examples, all unexplained:
|
||||
|
@ -105,7 +110,9 @@ img modules on the mac.
|
|||
|
||||
<LI>
|
||||
<I>Resources</I>, <I>Sound</I> and <I>Speech</I> have some examples
|
||||
on using the respective managers.
|
||||
on using the respective managers. In the <i>Mac:Lib</i> folder you
|
||||
will also find modules that do useful things with the Communications
|
||||
Toolbox, the Finder interface, etc.
|
||||
</UL>
|
||||
|
||||
At some point in the (possibly distant) future, I will add chapters on
|
||||
|
@ -117,12 +124,12 @@ your Python program scriptable, but that will have to wait. <p>
|
|||
Please let me know if you miss critical information in this
|
||||
document. I am quite sure that I will never find the time to turn it
|
||||
into a complete MacPython programmers guide (which would probably be a
|
||||
400-page book instead of 5 lousy html-files), but it should contain
|
||||
400-page book instead of 10 lousy html-files), but it should contain
|
||||
at least the information that is neither in the standard Python
|
||||
documentation nor in Inside Mac or other Mac programmers
|
||||
documentation. <p>
|
||||
|
||||
<HR>
|
||||
<A HREF="http://www.cwi.nl/~jack">Jack Jansen</A>,
|
||||
<A HREF="mailto:jack@cwi.nl">jack@cwi.nl</A>, 27-Aug-97.
|
||||
<A HREF="mailto:jack@cwi.nl">jack@cwi.nl</A>, 25-Feb-98.
|
||||
</BODY></HTML>
|
||||
|
|
|
@ -26,8 +26,7 @@ Next, you need a <A
|
|||
HREF="http://www.python.org/python/Sources.html">python source
|
||||
distribution</A>. For PowerPC and cfm68k development you can actually
|
||||
get by without a full source distribution, using the Development
|
||||
distribution (if I have gotten around to putting it together by the time
|
||||
you read this). You'll also need a functional python interpreter, and
|
||||
distribution. You'll also need a functional python interpreter, and
|
||||
the Modulator program (which lives in <CODE>Tools:Modulator</CODE> in
|
||||
the standard source distribution). You may also find that Guido's <A
|
||||
HREF="http://www.python.org/doc/ext/ext.html">Extending and embedding
|
||||
|
@ -190,9 +189,9 @@ language" section of the MW preferences dialog, it will probably be
|
|||
Make the new interpreter and check that you can import the module, see
|
||||
the methods (with "dir(interslip)") and call them. <p>
|
||||
|
||||
<H2>Creating a PowerPC plugin module</H2>
|
||||
<H2>Creating a plugin module</H2>
|
||||
|
||||
For PowerPC development you could follow the same path, but it is
|
||||
For PowerPC or cfm68k development you could follow the same path, but it is
|
||||
actually a better idea to use a dynamically loadable module. The
|
||||
advantage of dynamically loadable modules is that they are not loaded
|
||||
until a python program actually uses them (resulting in less memory
|
||||
|
@ -211,6 +210,12 @@ of adjustments to the preferences:
|
|||
<UL>
|
||||
<LI> in PPC target, set the output file name to "interslipmodule.pcc.slb",
|
||||
<LI> in cfm68k target set the output file name to "interslipmodule.cfm68k.slb".
|
||||
<LI> if you are working without a source distribution (i.e. with a normal
|
||||
binary distribution plus a development distribution) you will not have
|
||||
a file <code>PythonCore</code>. The installation process has deposited this
|
||||
file in the System <code>Extensions</code> folder under the name
|
||||
<code>PythonCore <i>version</i></code>. Add that file to the project, replacing
|
||||
<code>PythonCore</code>.
|
||||
</UL>
|
||||
Next, compile and link your module, fire up python and do the same
|
||||
tests as for 68K python. <p>
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
<HTML><HEAD><TITLE>Creating true standalone applications in Python</TITLE></HEAD>
|
||||
<BODY>
|
||||
<H1>Creating true standalone applications in Python</H1>
|
||||
<HR>
|
||||
You can use Python to create true standalone macintosh applications: applications
|
||||
that you can distribute to other people as a single file, without dependencies
|
||||
on Python being installed, etc. The process is not easy, however, and at the
|
||||
moment you need a source distribution (and a C development environment, CodeWarrior
|
||||
most preferred). You should first familiarize yourself with the sections
|
||||
<a href="building.html">building Python from source</a> and
|
||||
<a href="example2.html">building applets</a>. <p>
|
||||
|
||||
The application we are going to build will contain a complete interpreter,
|
||||
plus <code>'PYC '</code> resources for all the Python modules the program uses.
|
||||
We start by creating a resource file that contains all the modules we need,
|
||||
in PYC-resource form. There are two ways to do this:
|
||||
<UL>
|
||||
<LI> Modify the standard <code>freeze.py</code> module to print the names of
|
||||
all modules used. Copy these to a single folder, run <code>compileall.py</code>
|
||||
on that folder and then run <code>PackLibDir.py</code> from the scripts folder
|
||||
to create the resourcefile. This has one disadvantage: freeze finds the modules
|
||||
used by parsing your Python code, so modules you don't use (for instance because
|
||||
they are system-dependent and not used on the mac) are also included. You
|
||||
may also have problems with dynamically loaded modules. You will also have to rename
|
||||
your main module to __main__.py.
|
||||
|
||||
<LI> Another way to find the modules used is by option-starting your script
|
||||
and setting the "interactive mode after script" flag. Exercise every corner of
|
||||
your program so all your modules have been imported, and when you exit your
|
||||
program and get back to the interpreter use <code>findmodulefiles.findmodulefiles</code>
|
||||
to get a list of all modules used. You can now use
|
||||
<code>findmodulefiles.mkpycresourcefile</code> to create your resourcefile.
|
||||
</UL>
|
||||
|
||||
Next we create the application project. Copy the <code>PythonStandalone.prj</code>
|
||||
project, replace <code>macapplication.c</code> by <code>macapplet.c</code> and
|
||||
replace <code>bundle.rsrc</code> by <code>appletbundle.rsrc</code>. Also
|
||||
add the PYC resource file you made in the previous step and any other resource
|
||||
files you need. Set the target output file names (for all three of ppc/68k/fat).
|
||||
Build your application. <p>
|
||||
|
||||
Finally we have to give the application the right <code>sys.path</code> initialisation.
|
||||
We do this by dropping the application on <code>EditPythonPrefs</code> and removing
|
||||
all path components replacing them with a single <code>$(APPLICATION)</code>. You
|
||||
may have to use ResEdit after this step to remove an "alis" resource from your application,
|
||||
I am not sure why this is sometimes created. <p>
|
||||
|
||||
If you want to get fancy you may be able to make your application smaller by removing
|
||||
all unused builtin modules. If you used the findmodulefiles method above to find
|
||||
your modules you can start a standalone interpreter and use
|
||||
<code>findmodulefiles.findunusedbuiltins</code> to get the names of all builtin
|
||||
modules your program doesn't use. You can then create a private copy of
|
||||
<code>config.c</code> from which you remove all unused modules.
|
||||
|
||||
</BODY></HTML>
|
|
@ -11,7 +11,7 @@ and is therefore easier integrated in Python. <p>
|
|||
WASTE is written by Marco Piovanelli, <A HREF="mailto:piovanel@kagi.com"><piovanel@kagi.com></A>,
|
||||
and copyrighted by him. You can always obtain the latest version (for use in C
|
||||
or Pascal programs) and the documentation from
|
||||
<A HREF="ftp://ftp.dsi.unimi.it/DSI/piovanel/WASTE"><ftp://ftp.dsi.unimi.it/DSI/piovanel/WASTE></A>.
|
||||
<A HREF="http://www.boingo.com/waste/"><http://www.boingo.com/waste/></A>.
|
||||
|
||||
We explain the useage of waste here by showing how to modify the TextEdit based
|
||||
<A HREF="textedit/ped.py">ped.py</A> of the
|
||||
|
|
Loading…
Reference in New Issue