From: Finn B. <bc...@us...> - 2000-11-12 22:22:09
|
Update of /cvsroot/jython/jython/Doc In directory slayer.i.sourceforge.net:/tmp/cvs-serv17955 Modified Files: compile.ht differences.ht embedding.ht faq.ht index.ht interpreter.ht jarray.ht jythonc.ht properties.ht registry.ht subclassing.ht usejava.ht whatis.ht links.h Log Message: Updated to Jython. Index: compile.ht =================================================================== RCS file: /cvsroot/jython/jython/Doc/compile.ht,v retrieving revision 2.0 retrieving revision 2.1 diff -C2 -r2.0 -r2.1 *** compile.ht 1999/09/22 20:31:28 2.0 --- compile.ht 2000/11/12 22:22:06 2.1 *************** *** 1,48 **** ! Title: Compiling JPython ! <h3>Compiling JPython</h3> ! <P>Most users of JPython will never be required to look at the ! contents of the src directory, or try and recompile any of the files in the org.python package. All of these files have been precompiled in ! jpython.jar.</P> ! <P>For those people who do want to rebuild JPython from the source, for whatever reason, the following offers a few tips to keep in mind.</P> ! <P>The source to many of the classes in the org.python.parser package ! are not distributed with JPython. These classes are produced from the ! file "python.jjt" using the ! <A HREF="http://www.metamata.com/javacc/">JavaCC</A> parser generator ! tool. When rebuilding JPython from source you have two options for ! generating these classes: ! ! <OL> ! <LI>Copy all of the .class files from jpython.jar into src. Then ! only rebuild those files in packages other than ! org.python.parser. This is the recommended choice unless you ! explicitly want to experiment with the JPython ! grammar/parser. ! ! <LI>Get <A HREF="http://www.metamata.com/javacc/">JavaCC</A> ! <sup>1</sup>. ! Run jjtree on python.jjt, and then run javacc on the resulting ! python.jj. This should produce all of the required source ! files to build the org.python.parser package. ! </OL> ! ! <P></P> ! ! <P>The file in src/installer/MakeScriptAction.java is only used by the ! JPython installer. You should have no need to recompile this file ! unless you plan to build a new installer for JPython. This file ! depends on packages from ! <A HREF="http://www.installshield.com/java">InstallShield Java ! Edition</A>, and you must have this software installed and in your ! CLASSPATH before you can rebuild this file. <hr> ! <sup>1</sup>JavaCC version 0.7.1 is required. Specifically, newer ! versions of JavaCC are known to be incompatible with JPython's grammar ! file. This will be fixed in a later release. --- 1,35 ---- ! Title: Compiling Jython ! <h3>Compiling Jython</h3> ! <P>Most users of Jython will never be required to look at the ! contents of the source directories, or try and recompile any of the files in the org.python package. All of these files have been precompiled in ! jython.jar.</P> ! <P>For those people who do want to rebuild Jython from the source, for whatever reason, the following offers a few tips to keep in mind.</P> ! <P>Some of the sources in the org.python.parser package are generated ! from python.jtt file by the JavaCC parser generator. If you need to ! make changes to the grammar file you will need to download this ! <A HREF="http://www.metamata.com/javacc/">JavaCC</A> too. The generated ! files are also in the distribution, so usually this is not necessary. ! ! <P>To regenerate the parser from the grammar, run jjtree on python.jjt, ! and then run javacc on the resulting python.jj. This should produce all ! of the required source files to build the org.python.parser package. ! ! <P>If you have further interest in the Jython source and Jython's ! continued development, you can read the archives for the ! <a href="http://www.geocrawler.com/lists/3/SourceForge/7018/0/"> ! Jython-dev mailing list</a> or you can ! <a href="http://lists.sourceforge.net/mailman/listinfo/jython-dev">join</a> ! the list. + <P> + <hr> ! <sup>1</sup>JavaCC version 2.0 is used to create the generated sources ! included with the distribution. Index: differences.ht =================================================================== RCS file: /cvsroot/jython/jython/Doc/differences.ht,v retrieving revision 2.7 retrieving revision 2.8 diff -C2 -r2.7 -r2.8 *** differences.ht 2000/02/11 18:15:04 2.7 --- differences.ht 2000/11/12 22:22:06 2.8 *************** *** 1,7 **** ! Title: Differences between CPython and JPython ! <h3>Differences between CPython and JPython</h3> ! <P>CPython and JPython are two different implementations of the Python language. While a <A HREF="http://www.python.org/doc/ref">Language Reference</A> exists for the Python language, there are a number of --- 1,7 ---- ! Title: Differences between CPython and Jython ! <h3>Differences between CPython and Jython</h3> ! <P>CPython and Jython are two different implementations of the Python language. While a <A HREF="http://www.python.org/doc/ref">Language Reference</A> exists for the Python language, there are a number of *************** *** 9,34 **** following lists all known differences between the two implementations of the Python language. These differences range from the trivial -- ! JPython prints "1.0E20" where CPython prints ! "1e+020" -- to the dramatic -- everything in JPython is an instance of a class. At some point more effort should be made to separate the interesting differences from the mundane. <p>Any other differences not listed here can probably be considered a ! bug in JPython. Understand of course that CPython and JPython advance at different paces. All efforts are made to keep the two implementations in sync, but that's not always possible. <p><i>This list ! has been updated to describe the differences between JPython 1.1beta4 and ! CPython 1.5.2</i> <h3>Syntax</h3> <UL> ! <LI>JPython has a different interpretation of floating point literals. CPython doesn't allow 001.1 <I>CPython should be fixed.</I> ! <p><LI>JPython supports continue in a try clause. <I>CPython should be fixed - but don't hold your breath.</I> </UL> --- 9,34 ---- following lists all known differences between the two implementations of the Python language. These differences range from the trivial -- ! Jython prints "1.0E20" where CPython prints ! "1e+020" -- to the dramatic -- everything in Jython is an instance of a class. At some point more effort should be made to separate the interesting differences from the mundane. <p>Any other differences not listed here can probably be considered a ! bug in Jython. Understand of course that CPython and Jython advance at different paces. All efforts are made to keep the two implementations in sync, but that's not always possible. <p><i>This list ! has been updated to describe the differences between Jython-2.0 and ! CPython 2.0</i> <h3>Syntax</h3> <UL> ! <LI>Jython has a different interpretation of floating point literals. CPython doesn't allow 001.1 <I>CPython should be fixed.</I> ! <p><LI>Jython supports continue in a try clause. <I>CPython should be fixed - but don't hold your breath.</I> </UL> *************** *** 37,89 **** <UL> ! <LI>JPython string objects support full two-byte Unicode ! characters and the functions in the string module are ! Unicode-aware. <I>CPython should add Unicode support in the ! future, though the details of this are still unclear.</I> ! ! <p><li>JPython string objects have methods, providing a more ! convenient interface to most of the string module functionality. ! <i>This feature has been added to CPython and will appear in ! version CPython 1.6.</i> ! ! <p><LI>JPython formats floating point numbers differently, e.g. an upper case 'E' is used, and it switches over to E notation sooner than CPython does. <I>Both behaviors are acceptable.</I> - - <p><LI>In JPython, 0.1**4 is printed as - 1.0000000000000002E-4. In CPython, it is printed 0.0001, even - though it is not actually equal to 0.0001. <I>Both behaviors - are acceptable for now -- this is still being discussed.</I> - - <p><LI>JPython sequences support three argument - slices. i.e. range(3)[::-1] == [2,1,0]. <I>CPython should be - fixed.</I> ! <p><LI>Every object in JPython is an instance of a class -- ! there are no types in JPython. i.e. [].__class__ is a sensible ! thing to write in JPython. <I>CPython should be fixed - but don't hold your breath.</I> - - <p><LI>The .tell() method on JPython file objects returns a - Python long, while the .tell() method on CPython file objects - returns a Python int. <I>Whether or not both behaviors are - acceptable is still unclear.</I> ! <p><LI>JPython file objects are still missing some functionality -- see todo list in PyFile.java. (Hopefully in ! the near future this can be changed to read -- JPython file objects include the following extra functionality to properly ! handle non-ascii files...) <I>JPython should be fixed.</I> <p><LI>In CPython, range(0.1, 3.2) yields the surprising [0, ! 1, 2]. JPython does the right thing (reject float arguments). -- Many other functions taking int arguments have the same ! problem. <I>CPython should be fixed.</I> ! ! <p><LI>In CPython, the list.append() method takes multiple ! arguments and forms a tuple. JPython's append() method ! requires one argument only. <I>CPython should be fixed -- but ! probably won't be due to backwards compatibility.</I> <p><LI>The __name__ attribute of built-in extension modules --- 37,85 ---- <UL> ! <LI>Jython have only one string type which support full ! two-byte Unicode characters and the functions in the string ! module are Unicode-aware. The u"" string modifier is optional ! and completely ignored if specified. ! CPython-2.0 have two string types, the classic 8-bit string and ! and new unicode string which is created with the u"" string modifier. ! <I>Both behaviors are acceptable.</I> ! ! <p><li>Jython uses the character properties (isuppercase, isdecimal, ...) ! from the java platform. Java uses Unicode-2.0 and not all unicode properties ! is available through java. ! CPython-2.0 uses Unicode-3.0 and all unicode properties are available. ! About 340 of the unicode points have different properties. ! <I>Both behaviors are acceptable.</I> ! ! <p><LI>Jython formats floating point numbers differently, e.g. an upper case 'E' is used, and it switches over to E notation sooner than CPython does. <I>Both behaviors are acceptable.</I> ! <p><LI>In Jython, 0.1**4 is printed as ! 1.0000000000000002E-4. In CPython, it is printed ! 0.00010000000000000005. ! <I>Both behaviors are acceptable.</I> ! ! <p><LI>Jython sequences support three argument ! slices. i.e. range(3)[::-1] == [2,1,0]. ! <I>CPython should be fixed.</I> ! ! <p><LI>Every object in Jython is an instance of a class -- ! there are no types in Jython. i.e. [].__class__ is a sensible ! thing to write in Jython. <I>CPython should be fixed - but don't hold your breath.</I> ! <p><LI>Jython file objects are still missing some functionality -- see todo list in PyFile.java. (Hopefully in ! the near future this can be changed to read -- Jython file objects include the following extra functionality to properly ! handle non-ascii files...) <I>Jython should be fixed.</I> <p><LI>In CPython, range(0.1, 3.2) yields the surprising [0, ! 1, 2]. Jython does the right thing (reject float arguments). -- Many other functions taking int arguments have the same ! problem. <I>CPython should be fixed, but don't hold your ! breath.</I> <p><LI>The __name__ attribute of built-in extension modules *************** *** 92,125 **** <p><LI>In many cases, introspection yields different results. ! <I>Where appropriate and possible, JPython will adhere to CPython's introspection behavior. Some differences are acceptable.</I> ! <p><LI>JPython defines __debug__, but always sets it equal to ! 1. <I>JPython should implement CPython's -O option.</I> ! <p><LI>The locals() dictionary in JPython is mutable from within a function. After "def foo(x=1): locals()['x'] = 2; print x" foo() prints 1 in CPython and 2 in ! JPython. Jim thinks that JPython's behavior is better here -- but the best answer might be that locals() should be considered a read-only dictionary.<I> Proper behavior here is still unclear.</I> ! <p><LI>JPython doesn't support restricted execution mode and doesn't have the magic __builtins__ in every namespace. ! <I>JPython will probably never support restricted execution mode -- Java's security model is recommended instead.</I> ! <p><LI>JPython uses different values for the IOError argument. This causes trouble for people who unpack the value into an (errno, message) tuple. <I>Both behaviors are acceptable.</I> ! <p><LI>JPython code objects are missing other attributes -- co_code, co_consts, co_lnotab, co_names, co_nlocals, co_stacksize. <I>co_flags is now supported because the Python debugger requires it. Other attributes will probably never be ! supported in JPython due to its implementation of code objects as compiled Java bytecodes.</I> --- 88,121 ---- <p><LI>In many cases, introspection yields different results. ! <I>Where appropriate and possible, Jython will adhere to CPython's introspection behavior. Some differences are acceptable.</I> ! <p><LI>Jython defines __debug__, but always sets it equal to ! 1. <I>Jython should implement CPython's -O option.</I> ! <p><LI>The locals() dictionary in Jython is mutable from within a function. After "def foo(x=1): locals()['x'] = 2; print x" foo() prints 1 in CPython and 2 in ! Jython. Jim thinks that Jython's behavior is better here -- but the best answer might be that locals() should be considered a read-only dictionary.<I> Proper behavior here is still unclear.</I> ! <p><LI>Jython doesn't support restricted execution mode and doesn't have the magic __builtins__ in every namespace. ! <I>Jython will probably never support restricted execution mode -- Java's security model is recommended instead.</I> ! <p><LI>Jython uses different values for the IOError argument. This causes trouble for people who unpack the value into an (errno, message) tuple. <I>Both behaviors are acceptable.</I> ! <p><LI>Jython code objects are missing other attributes -- co_code, co_consts, co_lnotab, co_names, co_nlocals, co_stacksize. <I>co_flags is now supported because the Python debugger requires it. Other attributes will probably never be ! supported in Jython due to its implementation of code objects as compiled Java bytecodes.</I> *************** *** 127,136 **** objects may raise <tt>AttributeError</tt> or <tt>TypeError</tt> differently. <i>This is considered ! implementation dependent. In JPython the following rules are used: when getting a non-existant attribute, <tt>AttributeError</tt> is raised; when setting or deleting a readonly attribute, <tt>TypeError</tt> is raised; when setting or deleting a non-existant attribute, <tt>AttributeError</tt> ! is raised. Be aware though currently neither JPython nor CPython are completely consistent.</i> --- 123,132 ---- objects may raise <tt>AttributeError</tt> or <tt>TypeError</tt> differently. <i>This is considered ! implementation dependent. In Jython the following rules are used: when getting a non-existant attribute, <tt>AttributeError</tt> is raised; when setting or deleting a readonly attribute, <tt>TypeError</tt> is raised; when setting or deleting a non-existant attribute, <tt>AttributeError</tt> ! is raised. Be aware though currently neither Jython nor CPython are completely consistent.</i> *************** *** 138,165 **** func_defaults attributes. <i>While these are writable in CPython, I haven't decided whether they should be writable in ! JPython.</i> ! <p><LI>JPython has "true" garbage collection whereas ! CPython uses reference counting. This means that in JPython users don't need to worry about handling circular references as these are guaranteed to be collected properly. On the ! other hand, users of JPython have no guarantees of when an object will be finalized -- this can cause problems for people who use open("foo", 'r').read() excessively. <I>Both behaviors are acceptable -- and highly unlikely to change.</I> - <p><LI>In JPython, __del__() methods in user-defined classes - are never called. <i>Some future version of JPython might - provide limited support for __del__(), but see the above - item.</i> - <p><LI>The dictionaries used by classes, instances, and ! modules in JPython are not the same as the dictionaries created by {}. They are StringMap's which require all of their keys to be strings. After "class c: pass", c.__dict__[1] = 2 will work in CPython, but will raise a "TypeError: keys in namespace must be strings" error ! in JPython. <I>Both behaviors are acceptable -- CPython might ! adopt JPython's approach in the future for the performance gains it can provide.</I> --- 134,156 ---- func_defaults attributes. <i>While these are writable in CPython, I haven't decided whether they should be writable in ! Jython.</i> ! <p><LI>Jython has "true" garbage collection whereas ! CPython uses reference counting. This means that in Jython users don't need to worry about handling circular references as these are guaranteed to be collected properly. On the ! other hand, users of Jython have no guarantees of when an object will be finalized -- this can cause problems for people who use open("foo", 'r').read() excessively. <I>Both behaviors are acceptable -- and highly unlikely to change.</I> <p><LI>The dictionaries used by classes, instances, and ! modules in Jython are not the same as the dictionaries created by {}. They are StringMap's which require all of their keys to be strings. After "class c: pass", c.__dict__[1] = 2 will work in CPython, but will raise a "TypeError: keys in namespace must be strings" error ! in Jython. <I>Both behaviors are acceptable -- CPython might ! adopt Jython's approach in the future for the performance gains it can provide.</I> *************** *** 169,194 **** <UL> ! <LI>JPython supports all Java packages as extension modules. i.e. from "java.lang import System" will ! work in any JPython implementation. <I>This functionality might be added as an optional extension to some future version of CPython.</I> ! <p><LI>JPython includes the builtin module <tt>jarray</tt> -- which allows Python programmers to create and manipulate Java array objects. ! <p><LI>Lots of builtin extension modules don't exist in JPython. <UL> ! <LI>Modules struct, cPickle, cStringIO, and operator were ! all added for JPython v1.1. The following are likely to ! be implemented in a future version of JPython -- cmath. ! ! <p><LI>The following are under consideration (working code would make the decision much easier ;-) -- array, select, ! a dbm/gdbm/bsddb style module, Numeric. <p><LI>The following are highly unlikely any time soon -- ! Tkinter. However, Finn Bock has a JNI implementation called <a href="http://jTkinter.sourceforge.net/">jTkinter</a> which supports the full _tkinter API. Very cool stuff! --- 160,181 ---- <UL> ! <LI>Jython supports all Java packages as extension modules. i.e. from "java.lang import System" will ! work in any Jython implementation. <I>This functionality might be added as an optional extension to some future version of CPython.</I> ! <p><LI>Jython includes the builtin module <tt>jarray</tt> -- which allows Python programmers to create and manipulate Java array objects. ! <p><LI>Some builtin extension modules don't exist in Jython. <UL> ! <LI>The following are under consideration (working code would make the decision much easier ;-) -- array, select, ! a dbm/gdbm/bsddb style module, Numeric, cmath. <p><LI>The following are highly unlikely any time soon -- ! win32com and Tkinter. However, Finn Bock has a JNI implementation called <a href="http://jTkinter.sourceforge.net/">jTkinter</a> which supports the full _tkinter API. Very cool stuff! *************** *** 198,214 **** </UL> - <p><LI>__builtin__ module - <UL> - <p><LI>Incomplete implementation of __import__ -- only one - argument is allowed and replacing this with a user-defined - function has no effect. <I>JPython might be fixed in a - future release, but CPython will probably adopt a new - import mechanism in the near future, so JPython may not - change until the new mechanism is defined.</I> - </UL> - <p><LI>os module <UL> ! <LI>popen() and system() are missing. <I>JPython should be fixed, patches would be graciously accepted.</I> --- 185,191 ---- </UL> <p><LI>os module <UL> ! <LI>popen() and system() are missing. <I>Jython should be fixed, patches would be graciously accepted.</I> *************** *** 234,241 **** <UL> ! <p><LI>JPython is still missing exitfunc <p><LI>Also missing executable, getrefcount, ! setcheckinterval which don't make much sense for JPython. </UL> --- 211,218 ---- <UL> ! <p><LI>Jython is still missing exitfunc <p><LI>Also missing executable, getrefcount, ! setcheckinterval which don't make much sense for Jython. </UL> *************** *** 244,249 **** <UL> <p><LI>CPython's thread modules defines some aliases that ! JPython's doesn't. <I>These aliases are considered ! obsolete and won't be supported by JPython.</I> </UL> --- 221,226 ---- <UL> <p><LI>CPython's thread modules defines some aliases that ! Jython's doesn't. <I>These aliases are considered ! obsolete and won't be supported by Jython.</I> </UL> *************** *** 260,267 **** <UL> ! <p><LI>JPython doesn't catch interrupts. <I>Only fixable with a GUI console since interrupts are not supported by Java.</I> ! <p><LI>JPython doesn't have command line editing. <I>Only fixable with a GUI console. However, Un*x users can check out <tt>rlterm</tt> which provides generic GNU Readline support --- 237,244 ---- <UL> ! <p><LI>Jython doesn't catch interrupts. <I>Only fixable with a GUI console since interrupts are not supported by Java.</I> ! <p><LI>Jython doesn't have command line editing. <I>Only fixable with a GUI console. However, Un*x users can check out <tt>rlterm</tt> which provides generic GNU Readline support *************** *** 270,278 **** <a href="ftp://ftp-icf.llnl.gov/pub/Yorick/">Yorick</a> package.</I> ! <p><LI>JPython should have a feature similar to $PYTHONSTARTUP, which specifies a script to run at the start of interactive mode only. ! <p><LI>JPython supports <a href="interpreter.html">different command line options</a> than CPython, e.g. "-jar" and "-D". It --- 247,255 ---- <a href="ftp://ftp-icf.llnl.gov/pub/Yorick/">Yorick</a> package.</I> ! <p><LI>Jython should have a feature similar to $PYTHONSTARTUP, which specifies a script to run at the start of interactive mode only. ! <p><LI>Jython supports <a href="interpreter.html">different command line options</a> than CPython, e.g. "-jar" and "-D". It Index: embedding.ht =================================================================== RCS file: /cvsroot/jython/jython/Doc/embedding.ht,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** embedding.ht 1999/06/03 20:43:56 1.1 --- embedding.ht 2000/11/12 22:22:06 1.2 *************** *** 1,10 **** ! Title: Embedding JPython ! <h3>Embedding JPython</h3> ! <P>There are several options for embedding JPython in a Java application. Sometimes the nicest approach is to make a real Java class out of a Python class and then just use that Python class from ! Java code. The simplest approach to embedding JPython is to use the PythonInterpreter object.</P> --- 1,10 ---- ! Title: Embedding Jython ! <h3>Embedding Jython</h3> ! <P>There are several options for embedding Jython in a Java application. Sometimes the nicest approach is to make a real Java class out of a Python class and then just use that Python class from ! Java code. The simplest approach to embedding Jython is to use the PythonInterpreter object.</P> Index: faq.ht =================================================================== RCS file: /cvsroot/jython/jython/Doc/faq.ht,v retrieving revision 2.9 retrieving revision 2.10 diff -C2 -r2.9 -r2.10 *** faq.ht 2000/01/22 00:50:29 2.9 --- faq.ht 2000/11/12 22:22:06 2.10 *************** *** 1,5 **** ! Title: JPython FAQ ! <h3>The JPython FAQ</h3> <ol> --- 1,5 ---- ! Title: Jython FAQ ! <h3>The Jython FAQ</h3> <ol> *************** *** 14,31 **** JPython. ! <p><li><b>Is JPython the same language as Python?</b> ! <P>We will always strive to ensure that JPython remains as compatible with CPython as possible. Nevertheless, there are a number of <a href="differences.html">differences</a> between the two implementations that are ! unlikely to go away. These range from the trivial - JPython's code objects don't have a co_code attribute because they don't ! have any Python bytecodes; to the significant - JPython uses Java's true garbage collection rather than Python's reference counting scheme. <P>Python has never really had much of a language definition ! beyond it's C-based implementation. The existence of JPython changed that for the first time and will hopefully lead to a much clearer sense of what Python the language is; independent of any --- 14,43 ---- JPython. ! <p><li><b>What is Jython?</b> ! ! <p>Jython is the successor to JPython. The Jython project was ! created in accordance with the CNRI JPython 1.1.x license, in ! order to ensure the continued existence and development of this ! important piece of Python software. The intent is to manage this ! project with the same open policies that are serving CPython so well. ! ! <p>Mailing lists, CVS and all current information on the Jython ! project is available at SourceForge, at ! <a href="http://sourceforge.net/projects/jython">The Jython project</a>. ! ! <p><li><b>Is Jython the same language as Python?</b> ! <P>We will always strive to ensure that Jython remains as compatible with CPython as possible. Nevertheless, there are a number of <a href="differences.html">differences</a> between the two implementations that are ! unlikely to go away. These range from the trivial - Jython's code objects don't have a co_code attribute because they don't ! have any Python bytecodes; to the significant - Jython uses Java's true garbage collection rather than Python's reference counting scheme. <P>Python has never really had much of a language definition ! beyond it's C-based implementation. The existence of Jython changed that for the first time and will hopefully lead to a much clearer sense of what Python the language is; independent of any *************** *** 38,55 **** <p><li><b>What is the current status of JPython?</b> ! <p>JPython 1.1rc1 was released on 21-Jan-2000, with the final ! release expected before the ! <a href="http://www.python.org/workshops/2000-01/">8th ! International Python Conference</a>. Check the ! <a href="http://www.jpython.org">www.jpython.org</a> site for the ! most current release. ! Jim Hugunin, JPython's author, has moved out to sunny ! California to work on Xerox PARC's ! <a href="http://www.parc.xerox.com/spl/projects/aop/">AspectJ</a> ! language. JPython continues to be maintained by Barry Warsaw at ! CNRI, with help and input from Python's author Guido van Rossum, ! other CNRI folks, and the many contributors on the ! <a href="http://www.python.org/mailman/listinfo/jpython-interest"> ! JPython-Interest</a> mailing list. <p><li><b>JPython and Y2K</b> --- 50,59 ---- <p><li><b>What is the current status of JPython?</b> ! <p>JPython 1.1 was released on 28-Jan-2000. Since then, there have ! been no further developments on JPython. ! ! <p><li><b>What is the current status of Jython?</b> ! <p>The Jython project was announced on 19-oct-2000. A release of ! jython-2.0 is planned before the end of the year. <p><li><b>JPython and Y2K</b> *************** *** 59,66 **** <a href="http://www.python.org/cgi-bin/faqw.py?querytype=anykeywords&casefold=yes&req=search&query=y2k"> Python FAQ entry on the subject</a>, with the additional caveat ! that JPython is of course dependent on any Y2K issues associated with the underlying JVM and Java class libraries you're using. However, you can essentially apply the Python Y2K stance to ! JPython by, e.g. substituting the word "Java" for "C" in FAQ question 4.65 (<em>ignore the clip from the Python copyright notice</em>). --- 63,70 ---- <a href="http://www.python.org/cgi-bin/faqw.py?querytype=anykeywords&casefold=yes&req=search&query=y2k"> Python FAQ entry on the subject</a>, with the additional caveat ! that Jython is of course dependent on any Y2K issues associated with the underlying JVM and Java class libraries you're using. However, you can essentially apply the Python Y2K stance to ! Jython by, e.g. substituting the word "Java" for "C" in FAQ question 4.65 (<em>ignore the clip from the Python copyright notice</em>). *************** *** 69,73 **** library are supported?</b> ! <P>The good news is that JPython now supports the large majority of the standard Python library. The bad news is that this has moved so rapidly, it's hard to keep the documentation up to --- 73,77 ---- library are supported?</b> ! <P>The good news is that Jython now supports the large majority of the standard Python library. The bad news is that this has moved so rapidly, it's hard to keep the documentation up to *************** *** 75,79 **** <p>Built-in modules (e.g. those that are written in C for CPython) ! are a differnet story. These would have to be ported to Java, or implemented with a JNI bridge in order to be used by JPython. Some built-in modules have been ported to JPython, most notably --- 79,83 ---- <p>Built-in modules (e.g. those that are written in C for CPython) ! are a different story. These would have to be ported to Java, or implemented with a JNI bridge in order to be used by JPython. Some built-in modules have been ported to JPython, most notably *************** *** 89,95 **** <P>If there is some standard Python module that you have a real need for that doesn't work with JPython yet, please ! <a href="mailto:jp...@py...">send us mail</a>. ! <p><li><b>How fast is JPython?</b> <p>At <a href="http://www.python.org/workshops/1997-10/">IPC-6</a> --- 93,99 ---- <P>If there is some standard Python module that you have a real need for that doesn't work with JPython yet, please ! <a href="mailto:jyt...@li...">send us mail</a>. ! <p><li><b>How fast is Jython?</b> <p>At <a href="http://www.python.org/workshops/1997-10/">IPC-6</a> *************** *** 99,114 **** CPython is 1.5.2 which might be only slightly faster than 1.5. JimH re-ran his benchmark tests against CPython 1.5 and his then ! current release of JPython, finding that JPython was about 2.5x slower than CPython 1.5. I have recently run a few informal benchmarks and found some interesting numbers: using Sun's JDK ! 1.2.1 with JIT on a Solaris 2.6 Sparc Ultra 2, I found JPython 1.1beta3 to produce pystone numbers equal to (or very slightly better than) CPython 1.5.2+. <p>The problem, of course, is that JITs are still not reliable ! enough for JPython. Turning off the JIT on the above platform, ! can slow JPython down by a factor of 10. ! <P>The speed of JPython is tied very tightly to the speed of the underlying JVM. The benchmark results that JimH reported were all using Microsoft's JVM from Internet Explorer 4.0. The next --- 103,118 ---- CPython is 1.5.2 which might be only slightly faster than 1.5. JimH re-ran his benchmark tests against CPython 1.5 and his then ! current release of Jython, finding that Jython was about 2.5x slower than CPython 1.5. I have recently run a few informal benchmarks and found some interesting numbers: using Sun's JDK ! 1.2.1 with JIT on a Solaris 2.6 Sparc Ultra 2, I found Jython 1.1beta3 to produce pystone numbers equal to (or very slightly better than) CPython 1.5.2+. <p>The problem, of course, is that JITs are still not reliable ! enough for Jython. Turning off the JIT on the above platform, ! can slow Jython down by a factor of 10. ! <P>The speed of Jython is tied very tightly to the speed of the underlying JVM. The benchmark results that JimH reported were all using Microsoft's JVM from Internet Explorer 4.0. The next *************** *** 119,133 **** <P>Finally, pystone is not the last word in benchmarking. At the ! moment I'm more concerned with making JPython complete and correct than with performance. We will continually be revisiting performance issues both to examine better benchmark's for ! comparing JPython and CPython (as well as other scripting ! languages for the JVM) and work at optimizing JPython's performance. ! <p><li><b>Why do weird things sometimes happen in JPython?</b> <p>More likely than not, the problem is with the JIT ! (Just-in-time) compiler your JVM is using. JPython acts like a bizarre Java compiler, taking Python source code and emitting Java bytecode. It's bizarre because the emitted bytecode --- 123,137 ---- <P>Finally, pystone is not the last word in benchmarking. At the ! moment I'm more concerned with making Jython complete and correct than with performance. We will continually be revisiting performance issues both to examine better benchmark's for ! comparing Jython and CPython (as well as other scripting ! languages for the JVM) and work at optimizing Jython's performance. ! <p><li><b>Why do weird things sometimes happen in Jython?</b> <p>More likely than not, the problem is with the JIT ! (Just-in-time) compiler your JVM is using. Jython acts like a bizarre Java compiler, taking Python source code and emitting Java bytecode. It's bizarre because the emitted bytecode *************** *** 137,142 **** stuff happen, or weird bugs, the first thing to do is to turn off your JIT and try again. If the bug still exists with the JIT ! turned off then consider <a href="http://www.python.org/jpython-bugs"> ! submitting a bug report</a>. <p><li><b>Why did I get an OutOfMemoryError?</b> --- 141,147 ---- stuff happen, or weird bugs, the first thing to do is to turn off your JIT and try again. If the bug still exists with the JIT ! turned off then consider ! <a href="http://sourceforge.net/bugs/?group_id=12867">submitting a ! bug report</a>. <p><li><b>Why did I get an OutOfMemoryError?</b> *************** *** 164,168 **** (i.e. <tt>jview.exe</tt>) which provides the standard classes in a different format. You need to run the following command in a ! console window before using JPython: <pre> --- 169,173 ---- (i.e. <tt>jview.exe</tt>) which provides the standard classes in a different format. You need to run the following command in a ! console window before using Jython: <pre> *************** *** 170,176 **** </pre> ! <p><li><b>Semantic Differences between JPython and CPython</b> ! <P>There are several several differences between JPython and CPython that wil probably never go away. These differences are primarily related to underlying differences between the C and Java --- 175,181 ---- </pre> ! <p><li><b>Semantic Differences between Jython and CPython</b> ! <P>There are several several differences between Jython and CPython that wil probably never go away. These differences are primarily related to underlying differences between the C and Java *************** *** 181,190 **** <p><UL> ! <LI><em>JPython has true garbage collection - CPython uses reference counting.</em> ! <br>This means that in JPython users don't need to worry about creating circular references as these are guarnteed to be ! collected properly. On the other hand, users of JPython have no guarantees of when an object will be finalized (short of calling System.gc() to force garbage collection). --- 186,195 ---- <p><UL> ! <LI><em>Jython has true garbage collection - CPython uses reference counting.</em> ! <br>This means that in Jython users don't need to worry about creating circular references as these are guarnteed to be ! collected properly. On the other hand, users of Jython have no guarantees of when an object will be finalized (short of calling System.gc() to force garbage collection). *************** *** 196,200 **** ever called. ! <p><LI><em>Control-C can not be caught by JPython, but will exit the shell completely</em> </UL> --- 201,205 ---- ever called. ! <p><LI><em>Control-C can not be caught by Jython, but will exit the shell completely</em> </UL> *************** *** 202,206 **** <p><li><b>Why can't I multiply inherit from two Java classes?</b> ! <P>In an earlier version of JPython, you actually could. This was deliberately disabled in 1.1 for a variety of good reasons. For a detailed discussion on this issue see the following archive --- 207,211 ---- <p><li><b>Why can't I multiply inherit from two Java classes?</b> ! <P>In earlier versions of JPython, you actually could. This was deliberately disabled in 1.1 for a variety of good reasons. For a detailed discussion on this issue see the following archive Index: index.ht =================================================================== RCS file: /cvsroot/jython/jython/Doc/index.ht,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** index.ht 1999/06/28 15:38:34 1.2 --- index.ht 2000/11/12 22:22:06 1.3 *************** *** 1,8 **** ! Title: Overview of JPython documentation ! <h3>Overview of JPython Documentation</h3> <P>There is a variety of documentation available to help you learn to ! use JPython. We will be expanding this information in the future so check back here often. You can use the sidebar you see on the left side of this page as a table of contents to easily jump to the --- 1,8 ---- ! Title: Overview of Jython documentation ! <h3>Overview of Jython Documentation</h3> <P>There is a variety of documentation available to help you learn to ! use Jython. We will be expanding this information in the future so check back here often. You can use the sidebar you see on the left side of this page as a table of contents to easily jump to the *************** *** 10,39 **** these links is provided below. ! <h3>JPython Specific Documentation</h3> ! The following documentation is specific to JPython: <ul> ! <li>For a one-page introduction to what JPython is, and why you should care, check out <A HREF="whatis.html"><em>What is ! JPython?</em></A>. <li>Here is information on <a href="interpreter.html">invoking the ! JPython interpreter</a> by typing <em>jpython</em> at the shell prompt. ! <li>The <a href="registry.html">JPython registry</a> replaces environment variables for <code>PYTHONPATH</code> and more. <li>The <a href="embedding.html">embedding</a> document describes ! how to call JPython from a Java application. <li>You might also be interested in <a ! href="compile.html">building JPython from the source code</a>. </ul> <h3>Interaction with Java Packages</h3> ! Most JPython applications will want to use the vast array of Java packages available. The following documentation helps you work with Java packages. --- 10,39 ---- these links is provided below. ! <h3>Jython Specific Documentation</h3> ! The following documentation is specific to Jython: <ul> ! <li>For a one-page introduction to what Jython is, and why you should care, check out <A HREF="whatis.html"><em>What is ! Jython?</em></A>. <li>Here is information on <a href="interpreter.html">invoking the ! Jython interpreter</a> by typing <em>jython</em> at the shell prompt. ! <li>The <a href="registry.html">Jython registry</a> replaces environment variables for <code>PYTHONPATH</code> and more. <li>The <a href="embedding.html">embedding</a> document describes ! how to call Jython from a Java application. <li>You might also be interested in <a ! href="compile.html">building Jython from the source code</a>. </ul> <h3>Interaction with Java Packages</h3> ! Most Jython applications will want to use the vast array of Java packages available. The following documentation helps you work with Java packages. *************** *** 51,55 **** <a href="subclassing.html">subclass Java classes in Python</a>. ! <li>The <a href="jpythonc.html">jpythonc</a> utility compiles Python source code to real Java classes, and is used for building applets, servlets, beans, etc. --- 51,55 ---- <a href="subclassing.html">subclass Java classes in Python</a>. ! <li>The <a href="jythonc.html">jythonc</a> utility compiles Python source code to real Java classes, and is used for building applets, servlets, beans, etc. *************** *** 58,66 **** <h3>General Python Documentation</h3> ! <P>While JPython has only been publically available for eight months, the Python language has been around for many years. The majority of the <A HREF="http://www.python.org/doc/">standard Python ! documentation</A> applies to JPython. A few very handy places to look are:</P> --- 58,66 ---- <h3>General Python Documentation</h3> ! <P>While Jython has only been publically available for eight months, the Python language has been around for many years. The majority of the <A HREF="http://www.python.org/doc/">standard Python ! documentation</A> applies to Jython. A few very handy places to look are:</P> *************** *** 72,76 **** Library Reference</A>. Although many of these modules are not yet implemented (those coded in C for CPython must be ! re-implemented in Java for JPython), experience Python programmers keep the Library Reference Manual under their pillow for easy access. --- 72,76 ---- Library Reference</A>. Although many of these modules are not yet implemented (those coded in C for CPython must be ! re-implemented in Java for Jython), experience Python programmers keep the Library Reference Manual under their pillow for easy access. *************** *** 80,84 **** <ul> ! <li>JPython and CPython are two different implementations of the same language. There are naturally some differences between the two implementations, sometimes reflecting undefined --- 80,84 ---- <ul> ! <li>Jython and CPython are two different implementations of the same language. There are naturally some differences between the two implementations, sometimes reflecting undefined *************** *** 86,97 **** the independent implementations. Here is a more detailed discussion and <a href="differences.html">comparision of ! JPython and CPython</a>. ! <li>The <a href="faq.html">JPython FAQ</a> may already contain the answer to your question... <li>...and if it doesn't, then the ! <a href="http://www.python.org/pipermail/jpython-interest/"> ! JPython-interest mailing list archives</a> might help. <li>You might also be interested in reading --- 86,97 ---- the independent implementations. Here is a more detailed discussion and <a href="differences.html">comparision of ! Jython and CPython</a>. ! <li>The <a href="faq.html">Jython FAQ</a> may already contain the answer to your question... <li>...and if it doesn't, then the ! <a href="http://www.geocrawler.com/archives/3/7017/2000/"> ! Jython-users mailing list archives</a> might help. <li>You might also be interested in reading *************** *** 107,114 **** <UL> ! <LI>The <A HREF="http://www.python.org/mailman/listinfo/jpython-interest"> ! jpython-interest</A> mailing list. <LI>The <A HREF="news:comp.lang.python">comp.lang.python</A> newsgroup. ! <LI>JPython's developers, who can be reached at ! <A HREF="mailto:jp...@py...">jp...@py...</A>. </UL> --- 107,114 ---- <UL> ! <LI>The <A HREF="http://lists.sourceforge.net/mailman/listinfo/jython-users"> ! jython-users</A> mailing list. <LI>The <A HREF="news:comp.lang.python">comp.lang.python</A> newsgroup. ! <LI>Jython's developers, who can be reached at ! <A HREF="mailto:jyt...@li...">jyt...@li...</A>. </UL> Index: interpreter.ht =================================================================== RCS file: /cvsroot/jython/jython/Doc/interpreter.ht,v retrieving revision 2.1 retrieving revision 2.2 diff -C2 -r2.1 -r2.2 *** interpreter.ht 1999/06/17 16:04:05 2.1 --- interpreter.ht 2000/11/12 22:22:06 2.2 *************** *** 1,10 **** ! Title: Invoking the JPython Interpreter ! <h3>Invoking the JPython Interpreter</h3> ! <P>JPython can be invoked from the shell using the following command:</P> <pre> ! jpython [options] [-jar jar | -c cmd | file | -] [args] </pre> --- 1,10 ---- ! Title: Invoking the Jython Interpreter ! <h3>Invoking the Jython Interpreter</h3> ! <P>Jython can be invoked from the shell using the following command:</P> <pre> ! jython [options] [-jar jar | -c cmd | file | -] [args] </pre> *************** *** 19,27 **** <td>don't imply <em>import site</em> on initialization </tr><tr> - <td><b>-X</b></td> - <td>disable class based standard exceptions - </tr><tr> <td><b>-D<em>prop</em>=<em>value</em></b></td> ! <td>Set the Java property <em>prop</em> to <em>value</em></td> </tr><tr> <td><b>-jar <em>jar</em></b></td> --- 19,24 ---- <td>don't imply <em>import site</em> on initialization </tr><tr> <td><b>-D<em>prop</em>=<em>value</em></b></td> ! <td>Set the jython property <em>prop</em> to <em>value</em></td> </tr><tr> <td><b>-jar <em>jar</em></b></td> *************** *** 39,44 **** <td>program is read from standard-in (default; interactive mode is used if on a tty). This flag allows you to pipe a file into ! JPython and have it be treated correctly. This would be useful ! in a case like: <tt>filter file | jpython -</tt> </tr><tr> <td><b>--help</b></td> --- 36,41 ---- <td>program is read from standard-in (default; interactive mode is used if on a tty). This flag allows you to pipe a file into ! Jython and have it be treated correctly. This would be useful ! in a case like: <tt>filter file | jython -</tt> </tr><tr> <td><b>--help</b></td> *************** *** 46,50 **** </tr><tr> <td><b>--version</b></td> ! <td>print JPython version number and exit </tr><tr> <td><b><em>args</em></b></td> --- 43,47 ---- </tr><tr> <td><b>--version</b></td> ! <td>print Jython version number and exit </tr><tr> <td><b><em>args</em></b></td> *************** *** 55,77 **** <H3>Details</H3> ! <P><tt>jpython</tt> is a short script that invokes your local JVM, sets the Java property <tt>install.path</tt> to an appropriate value, and then runs the Java classfile ! <tt>org.python.util.jpython</tt>.</P> ! <H3>Making JPython Scripts Executable</H3> ! <P>To make a jpython ".py" file executable on a Unix system you can add the following line to the top of the file: ! <PRE><B>#! /usr/bin/env jpython</B></PRE> ! <P>For this magic to work, you must have <tt>jpython</tt> somewhere on your standard PATH. You also must also make the ".py" file executable. Typically this is done with the command: <TT>chmod +x foo.py</TT>. ! <p><I>Note: "#! <...>/jpython" will probably not work to ! make your script executable. This is because "jpython" is itself a script, and the #! magic requires that the file to execute is a binary executable on most Unix variants. Using --- 52,74 ---- <H3>Details</H3> ! <P><tt>jython</tt> is a short script that invokes your local JVM, sets the Java property <tt>install.path</tt> to an appropriate value, and then runs the Java classfile ! <tt>org.python.util.jython</tt>.</P> ! <H3>Making Jython Scripts Executable</H3> ! <P>To make a jython ".py" file executable on a Unix system you can add the following line to the top of the file: ! <PRE><B>#! /usr/bin/env jython</B></PRE> ! <P>For this magic to work, you must have <tt>jython</tt> somewhere on your standard PATH. You also must also make the ".py" file executable. Typically this is done with the command: <TT>chmod +x foo.py</TT>. ! <p><I>Note: "#! <...>/jython" will probably not work to ! make your script executable. This is because "jython" is itself a script, and the #! magic requires that the file to execute is a binary executable on most Unix variants. Using Index: jarray.ht =================================================================== RCS file: /cvsroot/jython/jython/Doc/jarray.ht,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** jarray.ht 1999/06/03 20:43:57 1.1 --- jarray.ht 2000/11/12 22:22:06 1.2 *************** *** 1,21 **** ! Title: Java Arrays in JPython ! <h3>Java Arrays in JPython - JArray</h3> Many Java methods require Java array objects as arguments. The way that these arguments are used means that they must correspond to ! fixed-length, mutable sequences, so'metimes of primitive data types. The PyArray class is added to support these Java arrays and instances of this class will be automatically returned from any Java method call that produces an array. In addition, the "jarray" module is provided ! to allow users of JPython to create these arrays themselves, primarily for the purpose of passing them to a Java method. <P>The jarray module exports two functions: ! <pre> array(sequence, type) zeros(length, type) ! </pre> <P>array will create a new array of the same length as the input --- 1,21 ---- ! Title: Java Arrays in Jython ! <h3>Java Arrays in Jython - JArray</h3> Many Java methods require Java array objects as arguments. The way that these arguments are used means that they must correspond to ! fixed-length, mutable sequences, sometimes of primitive data types. The PyArray class is added to support these Java arrays and instances of this class will be automatically returned from any Java method call that produces an array. In addition, the "jarray" module is provided ! to allow users of Jython to create these arrays themselves, primarily for the purpose of passing them to a Java method. <P>The jarray module exports two functions: ! <blockquote><pre> array(sequence, type) zeros(length, type) ! </pre></blockquote> <P>array will create a new array of the same length as the input Index: jythonc.ht =================================================================== RCS file: /cvsroot/jython/jython/Doc/jythonc.ht,v retrieving revision 2.3 retrieving revision 2.4 diff -C2 -r2.3 -r2.4 *** jythonc.ht 2000/01/17 21:35:25 2.3 --- jythonc.ht 2000/11/12 22:22:06 2.4 *************** *** 1,34 **** ! Title: Compiling Python Source to Real Java Classes ! <h3>Compiling Python Source to Real Java Classes - jpythonc</h3> <P>The previous section describes how Python classes can be created that subclass from Java classes. This works very well when you want ! to pass a Python class into Java from JPython. This is not adequate for building real Java ".class" files that implement a Java class and can be passed directly to Java programs. This sort of functionality ! is required to build applets, servlets, or JavaBeans in JPython that can be used exactly like their Java equivalents. It is also very valuable for users who wish to subclass Python classes in Java.</P> <P>In order to build a real java class from a Python class, you will ! use the <tt>jpythonc</tt> tool. A script called "jpythonc" should ! have been installed in the JPython installation directory when you installed the package. If it was not, it can be invoked as follows: ! "jpython Tools\jpythonc\jpythonc.py".</P> ! <p>JPython 1.1 has a new version of the jpythonc tool, which generates ! actual Java source code, and then invokes a Java compiler over this ! source code to create the .class files. Thus, you will need access to ! a Java compiler in order to use jpythonc. It is recommended that you ! use Sun's standard <tt>javac</tt> compiler, or IBM's excellent ! <tt>jikes</tt> compiler. Specifically, the Microsoft SDK <tt>jvc</tt> ! compiler is not recommended. ! <P>Invoke jpythonc like this: ! <P><B>jpythonc [options] [module]*</b> ! <p>Options are given in the table below. Note that jpythonc now uses the standard Python <tt>getopt</tt> module, meaning that both long and short forms of the options are available. The old option names still --- 1,34 ---- ! Title: Using the Jython compiler - jythonc ! <h3>Compiling Python Source to Real Java Classes</h3> <P>The previous section describes how Python classes can be created that subclass from Java classes. This works very well when you want ! to pass a Python class into Java from Jython. This is not adequate for building real Java ".class" files that implement a Java class and can be passed directly to Java programs. This sort of functionality ! is required to build applets, servlets, or JavaBeans in Jython that can be used exactly like their Java equivalents. It is also very valuable for users who wish to subclass Python classes in Java.</P> <P>In order to build a real java class from a Python class, you will ! use the <tt>jythonc</tt> tool. A script called "jythonc" should ! have been installed in the Jython installation directory when you installed the package. If it was not, it can be invoked as follows: ! "jython Tools\jythonc\jythonc.py".</P> ! <p>The jythonc tool generates actual Java source code, and then ! invokes a Java compiler over this source code to create the .class ! files. Thus, you will need access to a Java compiler in order to use ! jythonc. ! It is recommended that you use Sun's standard <tt>javac</tt> compiler, ! or IBM's excellent <tt>jikes</tt> compiler. ! Specifically, the Microsoft SDK <tt>jvc</tt> compiler is not recommended. ! <P>Invoke jythonc like this: ! <P><B>jythonc [options] [module]*</b> ! <p>Options are given in the table below. Note that jythonc now uses the standard Python <tt>getopt</tt> module, meaning that both long and short forms of the options are available. The old option names still *************** *** 62,66 **** <br><b>-c</b> <br><font size=-1 color="blue"><b>-core</b></font> ! </td><TD>Include the core JPython libraries (about 130K). Needed for applets since Netscape doesn't yet support multiple archives. Implies the <b>--deep</b> option. --- 62,66 ---- <br><b>-c</b> <br><font size=-1 color="blue"><b>-core</b></font> ! </td><TD>Include the core Jython libraries (about 130K). Needed for applets since Netscape doesn't yet support multiple archives. Implies the <b>--deep</b> option. *************** *** 69,73 **** <br><b>-a</b> <br><font size=-1 color="blue"><b>-all</b></font> ! </td><TD>Include all of the JPython libraries (everything in core + compiler and parser). Implies the <b>--deep</b> option. </TR><TR> --- 69,73 ---- <br><b>-a</b> <br><font size=-1 color="blue"><b>-all</b></font> ! </td><TD>Include all of the Jython libraries (everything in core + compiler and parser). Implies the <b>--deep</b> option. </TR><TR> *************** *** 84,88 **** </td><td>Include Java dependencies from this list of packages. Default is <tt>org.python.modules</tt> and ! <tt>com.oroinc.text.regex</tt>. </TR><TR> <TD><B>--workdir</B> <em>directory</em> --- 84,88 ---- </td><td>Include Java dependencies from this list of packages. Default is <tt>org.python.modules</tt> and ! <tt>org.apache.oro.text.regex</tt>. </TR><TR> <TD><B>--workdir</B> <em>directory</em> *************** *** 105,109 **** is set to "NONE" then compile ends with the generation of the Java source file. Alternatively, you can set the property ! <tt>python.jpythonc.compiler</tt> in the <a href="registry.html">registry</a>. </tr><tr> --- 105,109 ---- is set to "NONE" then compile ends with the generation of the Java source file. Alternatively, you can set the property ! <tt>python.jythonc.compiler</tt> in the <a href="registry.html">registry</a>. </tr><tr> *************** *** 112,116 **** </td><td>Options passed directly to the Java compiler. Alternatively, you can set the property ! <tt>python.jpythonc.compileropts</tt> in the <a href="registry.html">registry</a>. </tr><tr> --- 112,116 ---- </td><td>Options passed directly to the Java compiler. Alternatively, you can set the property ! <tt>python.jythonc.compileropts</tt> in the <a href="registry.html">registry</a>. </tr><tr> *************** *** 131,164 **** </TABLE> ! <p>The Python module must contain a Python class with the same name as ! the module, and that Python class must subclass exactly one Java class ! or interface. The real Java class created will be a subclass of ! whatever Java class is subclassed. - <!--table-stop--> <h3>Examples</h3> <P>On my Windows NT machine, I used the following command to create the file appletdemo.jar (containing all of the applet demos on the web ! site, as well as the core JPython libraries):</P> ! <PRE>c:\jpython\Demo\applet> jpythonc -core -deep -jar appletdemo.jar *.py</PRE> <P>To generate a skeleton class to allow a Python class to be used as java.awt.Component in a Java gui program, I used the following command:</P> ! <PRE>c:\jpython\Demo\javaclasses> jpythonc Graph.py</PRE> ! <P>To generate a JPyth... [truncated message content] |