diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 1998-02-25 15:40:35 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 1998-02-25 15:40:35 (GMT) |
commit | a2139fef94c0f94bb897a62f4e2c53f40eb40cc4 (patch) | |
tree | 7a5b1646a79fb78449c298b79432da1c90ec65fa /Mac/Demo | |
parent | b92dce38e7834dcde4f450c89da1c10f81a6d1a0 (diff) | |
download | cpython-a2139fef94c0f94bb897a62f4e2c53f40eb40cc4.zip cpython-a2139fef94c0f94bb897a62f4e2c53f40eb40cc4.tar.gz cpython-a2139fef94c0f94bb897a62f4e2c53f40eb40cc4.tar.bz2 |
Added (minimal) documentation on how to build standalone applications
with Python.
Updated various things (versions of libraries used, urls).
Diffstat (limited to 'Mac/Demo')
-rw-r--r-- | Mac/Demo/PICTbrowse/PICTbrowse.rsrc.hqx | 4 | ||||
-rw-r--r-- | Mac/Demo/building.html | 50 | ||||
-rw-r--r-- | Mac/Demo/cgi.html | 1 | ||||
-rw-r--r-- | Mac/Demo/cgi/cgitest.cgi.rsrc.hqx | 239 | ||||
-rw-r--r-- | Mac/Demo/embed.html | 7 | ||||
-rw-r--r-- | Mac/Demo/example1.html | 7 | ||||
-rw-r--r-- | Mac/Demo/example1/InterslipControl-1.rsrc.hqx | 4 | ||||
-rw-r--r-- | Mac/Demo/example2.html | 14 | ||||
-rw-r--r-- | Mac/Demo/example2/InterslipControl-2.rsrc.hqx | 4 | ||||
-rw-r--r-- | Mac/Demo/index.html | 13 | ||||
-rw-r--r-- | Mac/Demo/plugins.html | 13 | ||||
-rw-r--r-- | Mac/Demo/standalone.html | 55 | ||||
-rw-r--r-- | Mac/Demo/waste.html | 2 |
13 files changed, 241 insertions, 172 deletions
diff --git a/Mac/Demo/PICTbrowse/PICTbrowse.rsrc.hqx b/Mac/Demo/PICTbrowse/PICTbrowse.rsrc.hqx index bdf3c77..4357bbd 100644 --- a/Mac/Demo/PICTbrowse/PICTbrowse.rsrc.hqx +++ b/Mac/Demo/PICTbrowse/PICTbrowse.rsrc.hqx @@ -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: diff --git a/Mac/Demo/building.html b/Mac/Demo/building.html index fee9cfd..7d3aa92 100644 --- a/Mac/Demo/building.html +++ b/Mac/Demo/building.html @@ -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.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.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.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 diff --git a/Mac/Demo/cgi.html b/Mac/Demo/cgi.html index c2369cf..651d205 100644 --- a/Mac/Demo/cgi.html +++ b/Mac/Demo/cgi.html @@ -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> diff --git a/Mac/Demo/cgi/cgitest.cgi.rsrc.hqx b/Mac/Demo/cgi/cgitest.cgi.rsrc.hqx index 9e00e3a..2c49e24 100644 --- a/Mac/Demo/cgi/cgitest.cgi.rsrc.hqx +++ b/Mac/Demo/cgi/cgitest.cgi.rsrc.hqx @@ -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!: diff --git a/Mac/Demo/embed.html b/Mac/Demo/embed.html index 82b5473..4e1c830 100644 --- a/Mac/Demo/embed.html +++ b/Mac/Demo/embed.html @@ -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> diff --git a/Mac/Demo/example1.html b/Mac/Demo/example1.html index ddb897c..ada669b 100644 --- a/Mac/Demo/example1.html +++ b/Mac/Demo/example1.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 diff --git a/Mac/Demo/example1/InterslipControl-1.rsrc.hqx b/Mac/Demo/example1/InterslipControl-1.rsrc.hqx index 008bf7e..04c8a53 100644 --- a/Mac/Demo/example1/InterslipControl-1.rsrc.hqx +++ b/Mac/Demo/example1/InterslipControl-1.rsrc.hqx @@ -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: diff --git a/Mac/Demo/example2.html b/Mac/Demo/example2.html index 84c766f..95e2d0a 100644 --- a/Mac/Demo/example2.html +++ b/Mac/Demo/example2.html @@ -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 diff --git a/Mac/Demo/example2/InterslipControl-2.rsrc.hqx b/Mac/Demo/example2/InterslipControl-2.rsrc.hqx index f4ca24c..b73b919 100644 --- a/Mac/Demo/example2/InterslipControl-2.rsrc.hqx +++ b/Mac/Demo/example2/InterslipControl-2.rsrc.hqx @@ -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: diff --git a/Mac/Demo/index.html b/Mac/Demo/index.html index 4301fa8..5d706ce 100644 --- a/Mac/Demo/index.html +++ b/Mac/Demo/index.html @@ -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> diff --git a/Mac/Demo/plugins.html b/Mac/Demo/plugins.html index 7d43e72..368f50b 100644 --- a/Mac/Demo/plugins.html +++ b/Mac/Demo/plugins.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> diff --git a/Mac/Demo/standalone.html b/Mac/Demo/standalone.html new file mode 100644 index 0000000..70a2587 --- /dev/null +++ b/Mac/Demo/standalone.html @@ -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> diff --git a/Mac/Demo/waste.html b/Mac/Demo/waste.html index 21efa8f..96b13bf 100644 --- a/Mac/Demo/waste.html +++ b/Mac/Demo/waste.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 |