forked from jython/jython
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
2150 lines (1974 loc) · 115 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Jython NEWS
The features new in a given version are listed at the head of the section for
the final release of that version. Bugs fixed are listed under the next release
(frequently a beta) after they were fixed.
For more details, three sources are available according to type:
- [ n ], please see old bug tracker at https://bugs.jython.org.
- [ GH-n ], please see https://github.com/jython/jython.
- [ FM-n ], please see https://github.com/jython/frozen-mirror.
==============================================================================
Jython 2.7.5
==============================================================================
New Features
Jython 2.7.5a1 Bugs fixed
==============================================================================
Jython 2.7.4
==============================================================================
New Features
- When building a modular application or library, the jython-slim JAR may
be placed on the *module* path [GH-325]. It will export its usual
packages in an automatic module org.python.jython2. Application build
tools that create a run script will generally add the dependencies of
Jython to the module path automatically. The developer may have to add
(via the build script) --add-modules ALL-MODULE-PATH to the java command
to ensure that these dependencies are resolved.
- The jython-standalone JAR (module org.python.jython2.standalone) may
also be used. Many shaded (and some unshaded) dependencies are then
duplicated in its module, which can be a problem. It may be necessary to
--add-modules ALL-DEFAULT to ensure JDK classes are resolved.
Jython 2.7.4 is unchanged from 2.7.4rc1
Jython 2.7.4rc1 Bugs fixed
- [ GH-344 ] Updated ucnhash.dat to Unicode 15.1.
- [ GH-343 ] Export xml.parsers and xml.etree in xml.__all__.
- [ GH-342 ] Update multiple JARs to latest available.
- [ GH-331 ] Catch IndexError possible when accessing sys.argv.
Jython 2.7.4b2 Feature added
- [ GH-325 ] Upward compatibility to Java 9 Modularity
Jython 2.7.4b1 Bugs fixed
- [ GH-316 ] Clash over META-INF in shaded JARs
- [ GH-310 ] CVE-2024-25710 and CVE-2024-26308 (commons-compress)
- [ GH-304 ] from java import * not working in Java 21
- [ GH-302 ] Interactive interpreter awaits input instead of raising syntax error
- [ GH-298 ] Keep better accounts of contribution and CLA
- [ GH-288 ] Build fails when using modules (duplicate org.w3c from JARs)
- [ GH-281 ] Invoking the wrong overloaded Java constructor
- [ GH-280 ] LineNumberTable deprecated for removal in 2.6 still there
- [ GH-277 ] Argument coercion fails for Java interface with default methods
- [ GH-272 ] GlobalRef.createReaperThreadIfAbsent produces IllegalMonitorStateException
- [ GH-269 ] Upgrade Google Guava to 32.0.1 (CVE-2023-2976)
- [ GH-264 ] Create a security policy (changes on GitHub only)
- [ GH-254 ] Regression in socket.socket.sendall for sending Unicode
- [ GH-247 ] PySystemStateTest fails on Mac
- [ GH-245 ] Document download/binaries location
- [ GH-238 ] Using == to compare strings in sys
- [ GH-223 ] JPasswordField no longer works due to 'bullet' echo char
- [ GH-221 ] Incorrect method precedence with overloading and variable arity
- [ GH-204 ] IllegalArgumentException: where char method returns non-byte value
==============================================================================
Jython 2.7.3
==============================================================================
New Features
- The jython command respects the PYTHONDONTWRITEBYTECODE environment
variable (GH-128).
- Under PR GH-101, the matching of sequence arguments to the parameters of
Java methods is improved (and in constructors under GH-201). A Java
varargs parameter does not match a final sequence in the call if an array
parameter could do so. (Thanks Peter Holloway.)
- array.array itemsize of unsigned types is now the same as their signed
counterparts, where previously it was mostly double. Internal
representations have changed. Anomalies have been eliminated between
itemsize and the serialisation (tostring() etc.) for unsigned types, and
in the range of values accepted in different contexts. The size of type
'u' (unicode character) is 4 on all platforms. Client code that was
working around these anomalies may have to change. Overall, the
experience should be closer to that with CPython.
- We no longer aspire to compile Jython with Java 7. (We may use Java 8
features.)
- The project has moved its home to GitHub (twice), and invites issue
reports there (not at bugs.jython.org).
Jython 2.7.3
The release is the same as the rc1 (apart from the version number).
Jython 2.7.3rc1 Bugs fixed
- [ GH-201 ] Support vararg constructors
Jython 2.7.3b1 Bugs fixed
- [ GH-192 ] PyString with non-byte value in formatting of collections
- [ GH-183 ] Console messages do not reach root logger (bjo 2896)
- [ GH-178 ] Update icu4j JAR to 71.1
- [ GH-177 ] Update Ant to 1.10.12 (Gradle build) (CVE-2020-1945, 2021-36374)
- [ GH-160 ] Improve context of "Cannot create PyString with non-byte value"
- [ GH-159 ] Non-byte PyString error during initialisation in Turkish locale
- [ GH-158 ] Upgrade Bouncy Castle to 1.71
- [ GH-157 ] Upgrade ASM to 9.3
- [ GH-156 ] Replace custom SHA224 digest with Java's
- [ GH-151 ] Upgrade Apache Xerces to 2.12.2 (CVE-2022-23437)
- [ GH-150 ] Upgrade Netty to 4.1.73 (various CVEs)
- [ GH-138 ] Upgrade Guava to 31.0.1 (CVE-2020-8908)
- [ GH-139 ] Make gradlew executable on Unix/Mac
- [ GH-136 ] Use full path of cmd.exe (CVE-2019-17664)
- [ GH-129 ] Only attempt to open source/bytecode if readable (GH-93)
- [ GH-128 ] Support PYTHONDONTWRITEBYTECODE environment variable
- [ GH-125 ] Launch fails on Mac OS Big Sur (MacOS 11) (GH-172)
- [ GH-119 ] array.array itemsize and serialisation anomalies for unsigned types
- [ GH-122 ] Upgrade Apache commons-compress to 1.21
- [ GH-105 ] from java.util import * (etc.) not working in JDK 14+ (bjo 2792)
- [ GH-102 ] Fix CRC32.update calls in zlib.py
- [ GH-101 ] Improve boxing of arguments to vararg methods
- [ GH-98 ] CVE-2019-9740: CRLF injection by url parameter
- [ GH-97 ] Failures in SNI support affecting pip
- [ GH-93 ] Permissions problems with compiled source files ($py.class)
- [ 2892 ] from __future__ import print_function doesn't work interactively (GH-81)
- [ GH-77 ] Broken AST adapter
- [ GH-74 ] Clarify license position in relation to zxJDBC.
- [ GH-57 ] JavaWebStart compatibility broken
- [ GH-35 ] Travis CI on JDKs 8, 11, 13 and add Windows to OSes
- [ GH-50 ] (First) migration from Mercurial corrupted project history
- [ GH-49 ] Update Darwin jffi library dependency
- [ GH-27 ] -Q new always fails
- [ GH-12 ] Test classes in distributed artifacts
- [ GH-4 ] Swap from Mercurial to Git as our SCM tool
- [ GH-2 ] Transfer closed-fixed issues in NEWS from frozen-mirror
- [ 2924 ] module-info.class in root of JAR causes problems (also GH-54?)
- [ 2918 ] slim jar: missing resource file for zxJDBC (also GH-187)
- [ 2892 ] Migrate from hg.python.org to GitHub
==============================================================================
Jython 2.7.2
==============================================================================
New Features
- The main program behaves more like CPython in many small ways, including
a more correct treatment of the -i option. This simplifies support, and
may also make it unnecessary for users to work around differences from
CPython.
- python.startup registry property (and JYTHONSTARTUP environment variable)
added.
- Only the Jython command (class org.python.util.jython) now reads the
environment variable JYTHONPATH, not the core runtime, and it respects
the -E option (ignore environment). This change is for consistency with
CPython and with our handling of other environment variables. A pure Java
application that creates its own interpreter may use the system or
registry key "python.path" to add to sys.path, as documented.
- We no longer recommend overriding toString in PyObject sub-classes as a
way of defining string forms. Override __repr__, and if necessary __str__,
as is usual in Python. We recommend toString should return the same as
__str__ (or __unicode__).
- Experimentally, we use Gradle to build a JAR and POM that may be cited as
a dependency by other projects. The Jython project would like to know if
this is being done suitably for downstream use.
- The registry setting (or Java property) "python.verbose", and direct use
of the global org.python.core.Options.verbose are DEPRECATED: use a Java
logging properties file instead. Console messages are now produced via
java.util.logging (JUL), and the logger "org.python" or its descendants.
The jython command configures a ConsoleLogger for "org.python" and by
default a format for messages generally similar to that in v2.7.1,
preceded by the logger name and JUL severity. The volume of messages is
controlled by your logging preferences, but by default is unchanged from
v2.7.1. Each -v option on the command line makes the logging one step
finer on the JUL scale. Error messages from Python and stack traces are
unaffected. When embedded in your application, Jython makes no logging
configuration changes: messages from the "org.python" name space merge
with those of your application.
- There is much improved support for locale, but as a backward-incompatible
change, it is provided as an opt-in. Define property
python.locale.control=settable on the command line or via the Jython
registry, to enable. This may become the default in a later version.
- The default location of the Jython package cache has moved from the
installation directory to the current working directory and is called
".jython_cache". Previously, Jython installed system-wide either exposed
the cache as world read-write (a security risk) or disabled it.
- BouncyCastle SSL support is incomplete as bundled. The Jython JAR is not
signed, and may not be trusted by your JVM as a security provider. This
manifests as a PEMException: "Unable to create OpenSSL PBDKF:
PBKDF-OpenSSL SecretKeyFactory not available" during certain operations.
If this is a problem, place genuine BouncyCastle JARs on the class path,
and Jython will use those in preference to the classes we include.
The slim JAR does not suffer this problem.
Jython 2.7.2rc1 Bugs fixed
- [ 2858 ] test_ssl failure due to embedding Bouncy Castle (doc change only)
- [ FM-156 ] Race condition in PyStringMap keys method
- [ 2862 ] Jython fails on Linux for normal user when installed by root
Jython 2.7.2b3 Bugs fixed
- [ 2810 ] NoSuchMethodError in test_jython_initializer (Java 10+)
- [ 2808 ] lib2to3 test failures on Windows JDK 11
- [ 2846 ] Main module __name __ is not "__main__" under Java Scripting API
- [ 2828 ] Update netty JARs to 4.1.45
- [ 2044 ] CVE-2013-2027 Current umask sets privileges of class files and cache
- [ 2834 ] Import of Java classes is not thread safe
- [ 2820 ] Import fails with UnicodeDecodeError if sys.path contains invalid UTF-8 bytes
- [ 2826 ] Unicode hex string decode failure
- [ 2836 ] Java Swing library works only in interactive jython session
Jython 2.7.2b2 Bugs fixed
- [ 2814 ] maven/build.xml does not PGP-sign the publication
Jython 2.7.2b1 Bugs fixed
- [ 2806 ] Installer contains dependencies unshaded (Java 8)
- [ 2666 ] Oracle JDK 7 out of support so no longer available on Travis
- [ 2294 ] Importation of modules from directories with non-ASCII characters fails
- [ 2055 ] isinstance() and issubclass() fail with abc.ABCMeta
- [ 2569 ] jython launcher fails on Windows if JAVA_HOME is set
- [ 2505 ] PySystemState is lost
- [ 2796 ] Request for oversize arrays not handled in BaseBytes and PyByteArray
- [ 2730 ] datetime.strptime('%b') behaviour inconsistent with CPython on Windows JDK 9+
- [ 2613 ] MANIFEST.MF contains unfilled placeholders
- [ 2330 ] full-build fails to copy CPython License
- [ 2651 ] Travis builds failing with *** buffer overflow detected ***
- [ 2703 ] JycompileAntTask cannot find ...ant.taskdefs.MatchingTask
- [ 2708 ] test_urllib2net fails (on Travis CI)
- [ 2764 ] Readme is not displayed when using the GUI installer
- [ 2345 ] Installing pip fails if JYTHON_HOME points to old installation
- [ 2774 ] test_ssl failures from weak certificate
- [ 2768 ] Allow bytearray + and += to accept buffer protocol objects
- [ 2742 ] JARs for bouncycastle out of date (upgrade to 1.16)
- [ 2762 ] Upgrade Apache commons-compress to 1.18
- [ GH-5 ] Updates to JNR/JFFI to improve ARM HF support
- [ 2445 ] Eclipse's DelegatingFeatureMap has MRO conflict (and IBM's MQQueue)
- [ FM-121 ] Allow struct unpack and unpack_from bytearray and buffer
- [ 2635 ] AST.lineno ignored by compile
- [ 2744 ] Support buffer type in marshal.dump(s)
- [ 2077 ] marshal doesn't raise error when fed unmarshalable object
- [ 2732 ] Regression in large module support for pip
- [ FM-131 ] Support Unicode in zxJDBC exceptions.
- [ 2654 ] Imported modules allow access to submodules
- [ 2362 ] Import * doesn't work on JDK9 for java.*, jdk.* namespaces
- [ 2630 ] Cannot import java.awt.* on Java 9
- [ 2663 ] Remove dependency on javax.xml.bind.DatatypeConverter
- [ 2726 ] os.uname() throws IllegalArgumentException on Windows (Chinese localisation)
- [ 2719 ] Divergence of __str__ and __repr__ from CPython
- [ 2714 ] Locale and java version failures in test_os_jy
- [ FM-111 ] Proper processing of gzip trailer without resubmission
- [ 2231 ] __doc__ of PyString objects is always "The most base type"
- [ 2230 ] Jython evaluation blocks under heavy load with high multi-core systems
- [ 2506 ] ensurepip is reporting an error
- [ 1609 ] Partial parsing does not work with function decorators
- [ 2494 ] Support for pydoc_data
- [ 2492 ] NPE for PythonInterpreter after new PyInteger
- [ 2707 ] jython.py shebang line invalid on Linux
- [ 1748 ] subprocess and os.system don't show output
- [ 2343 ] PYTHONPATH is overwritten on Windows
- [ 2346 ] Launcher not resilient to bad environment variable settings
- [ 2709 ] test_chdir tolerates absent DOS 8.3 filename
- [ 2706 ] Use python.path instead of JYTHONPATH
- [ 2410 ] Regression in PySystemStateTest (leading slash)
- [ 2639 ] Incorrect result when using != comparison against Java {List, Set, Map}
- [ 2672 ] Integer formatting emits two minus signs with -2^31
- [ 2688 ] ClassCastException when adding list of non-PyObjects
- [ 2659 ] Determine console encoding without access violation (Java 9)
- [ 2662 ] IllegalAccessException accessing public abstract method via PyReflectedFunction
- [ 2501 ] JAVA_STACK doesn't work (fixed for Windows launcher only)
- [ 1866 ] Parser does not have mismatch token error messages caught by BaseRecognizer
- [ 1930 ] traceback raises exception in os.py
- [ 2419 ] List expected failures by OS platform in regrtest.py
- [ 2611 ] mkdir() operation in /Lib/os.py has different behavior when running in Docker container
- [ 2655 ] __findattr__ is final (update documentation)
- [ 2646 ] Test failure in test_os_jy after utf-8 decode
- [ 2469 ] jython launcher fails on Windows if JAVA_HOME is set
- [ 2650 ] Detail message is not set on PyException from PythonInterpreter
- [ 2403 ] VerifyError when implementing interfaces containing default methods (Java 8)
- [ 2715 ] Restrict array.array support for buffer protocol
Jython 2.7.2a1 Bugs fixed
- [ 2632 ] Handle unicode data appropriately in csv module
- [ 2638 ] str not default-decoded in str-unicode operations
- [ 2622 ] json dumps error (use of AbstractDict)
- [ 2607, 2620 ] Error loading Python DLL (error code 14001)
- [ 2612 ] NPE while trying to load class
- [ 2609 ] PyType.fromClass publication race (discovered in strptime and re)
- [ 2608 ] Encoding problems with non-ascii host name
- [ 2599 ] Cannot handle network paths under Windows
- [ 2600 ] subprocess doesn't have _args_from_interpreter_flags (blocks support for multiprocessing)
- [ 2602 ] NumberFormatException in terminal on OSX 10.12.5 (ncurses related)
==============================================================================
Jython 2.7.1
==============================================================================
Jython 2.7.1rc3
Bugs fixed
- [ 2597 ] PySystemState.sysClosers requires cleanup to prevent memory leak
- [ 2593 ] file.write(obj) raises NullPointerException on type error
- [ 2592 ] Line breaks in exceptions are wrong (characters being backslash-escaped)
Jython 2.7.1rc2
Bugs fixed
- [ 2536 ] deadlocks in regrtests due to StackOverflowError in finally block (workaround, still open)
- [ 2348 ] site module does not import if usernames contain non-ascii characters
- [ 2356 ] java.lang.IllegalArgumentException on startup on Windows if username not ASCII
- [ 1839 ] sys.getfilesystemencoding() is None (now utf-8)
- [ 2579 ] Pyc files are not loading for too large modules if path contains __pyclasspath__
- [ 2570 ] Wrong shebang set for OS X installation of Jython
- [ 2585 ] test_ssl failure due to Netty exception mapping
- [ 2313 ] test_jython_initializer failure on Windows
- [ 2399 ] test_sort failure on Java 8
- [ 2309 ] test_classpathimporter fails on Windows.
- [ 2318 ] test_zipimport_jy failure on Windows
- [ 2571 ] Error handling in test_codecencodings_tw fails on Java 8
- [ 2568 ] test_threading intermittent failure
- [ 2559 ] test_marshal fails
- [ 2564 ] test_socket_jy fails on Linux
- [ 2524 ] datetime <-> time conversion incorrect in non UTC times
- [ 2504 ] datetime.date.__tojava__ returns incorrect dates in non-UTC timezones with
negative offset (Jython 2.7.0)
- [ 2500 ] Loading default cacerts on client socket when specifying a default java truststore
unnecessarily searches for more cacerts in the same dir
- [ 2561 ] win32_ver raises exception (breaks test_platform on windows)
- [ 2521 ] Windows installation (all) fails on Windows 10
- [ 2557 ] ongoing pain with platform detection via os.name and sys.platform
- [ 1996 ] Core slots array out of bounds with multiple inheritance
- [ 2101 ] Diamond-style multiple inheritance fails when using __slots__ on the second branch
New Features
- Updated Netty to 4.1.11, ASM to 5.2, BouncyCastle to 1.57, Commons Compress to 1.14,
Guava to 22.0, ICU4J to 59.1, JFFI to 1.2.15, JNR-JFFI to 2.1.5, JNR-POSIX to 3.0.41,
JNR-Constants 0.9.9, JLine to 2.14.3, MySQL Connector to 5.1.42, PostgreSQL to 42.1.1
Note:
You might find it strange that Jython bundles guava-22.0-android.jar rather than guava-22.0.jar.
This is the official way to support Java 7 with Guava > 20.0, also on non-Android platforms.
See https://github.com/google/guava/wiki/Release22#guava-release-220-release-notes.
- There is now support for non-ascii paths in all (home, installation, temporary)
directories, which previously caused failures. sys.getplatformencoding() returns
'utf-8' as the nominal file-system encoding, irrespective of localization. This may
differ from what CPython reports on the same OS. In Jython a file path presented
as bytes is the UTF-8 encoding of the unicode file path as Java sees it. (See issues
#1839 and #2356.) This matter is unrelated to file.encoding or the console.
Jython 2.7.1rc1
Bugs fixed
- [ 2552 ] installing scandir via pip fails (breaks e.g. installing pathlib2 via pip)
- [ 2534 ] os.getlogin() returns a wrong user or returns an exception
- [ 2553 ] sys.getwindowsversion not implemented (breaks pathlib on Windows)
- [ FM-55 ] Replace deprecated use of ASCII constant with ascii()
- [ 1777 ] Help getting SymPy working with Jython
- [ 2475 ] Backported python 3 pathlib and pathlib2 do not work b/c of meta class issues
- [ 2551 ] __slots__ in diamond-style causes lay-out conflict (breaks pathlib and sympy)
- [ 2550 ] test_list_jy fails on Java 8
- [ 2549 ] test_posix fails on Linux
- [ 2548 ] Unicode u'\N{name}' frequently broken, because ucnhash.dat outdated
- [ 2527 ] cStringIO throws IllegalArgumentException with non-ASCII values
- [ 2511 ] Percent operator calls __getattr__('__getitem__')
- [ FM-28 ] zipimporter supports multi-byte characters in pathnames
- [ 2228 ] Reuse "makeCompiledFilename" function where possible
- [ 608632 ] __doc__foo should accept java String
- [ 2523 ] defaultdict.__getitem__() does not propagate exceptions raised by calling
default_factory
- [ 2522 ] defaultdict.__getitem__(unhashable) raises KeyError instead of TypeError
- [ 2515 ] typing module doesn't import
- [ 2538 ] Test failures in test_unittest
- [ 2293 ] "java.lang.IllegalArgumentException: java.lang.IllegalArgumentException:
Cannot create PyString with non-byte value" triggered after adding
unicode element with non-ASCII character to sys.path
- [ 2535 ] Building jython standalone manually results in local filesystem paths
showing up in Jython stacktraces
- [ 2533 ] Opcode.java is outdated -> breaks PyBytecode.interpret
- [ 2502 ] Missing OpenFlags enum entry makes Jython clash with JRuby dependency
- [ 2446 ] Support SNI for SSL/TLS client sockets
- [ FM-50 ] Calling Java vararg methods with no arguments fails
- [ 2455 ] Java classes in packages with __init__.py not found
- [ 2481 ] Update urllib2.py from 2.7.11
- [ 2514 ] Jython Class.__subclasses__() does not match Python output (not in load order)
- [ 2413 ] ElementTree.write doesn't close files if used with invalid encoding
- [ 2443 ] java.util.Map derived classes lack iterkeys, itervalues methods
- [ 2516 ] _get_open_ssl_key_manager tries to validate that the private and
public keys match, and is throwing an SSLError:
"key values mismatch" when provided with multiple certs (Root/CA/Cert)
- [ 2314 ] Failures in test_shutil on Windows
- [ 2488 ] Subprocess should always join corresponding coupler threads
- [ 2461 ] SSL Handshake fails for peers connected via IPV6
- [ 2508 ] Jython non-blocking socket send() does not conform to Python's behavior.
- [ 2462 ] SSL Handshake never happens even if do_handshake_on_connect=True for serv
- [ 2487 ] PyType.fromClass deadlocks on slow systems (circleci for example)
- [ 2480 ] Repeating from <javapackage> import <class> results in reload
- [ 2472 ] Importing simplejson fails with: 'NoneType' object has no
attribute 'encode_basestring_ascii'
- [ 2471 ] Jython is using netty channel future incorrectly
- [ 2470 ] Jython leaks sockets in select reactor
- [ 2469 ] Embedded BouncyCastle provider does not validate properly
- [ 2460 ] Wrong result when multiplying complex numbers involving infinity
- [ 2454 ] Security Vulnerability in Jython
- [ 2442 ] Overriding __len__, __iter__, and __getitem__ in a tuple subclass
causes an infinite recursion
- [ 2112 ] time.strptime() has different default year in Jython and CPython
- [ 1767 ] Rich comparisons
New Features
- Recognize cpython_cmd property to automatically build CPython bytecode for oversized
functions (e.g. jython -J-Dcpython_cmd=python). This is especially convenient when
installing things like SymPy via pip; it would frequently prompt you to provide yet
another pyc-file. Now just run: pip install --global-option="-J-Dcpython_cmd=python" sympy
- SymPy is now workable. (However it runs somewhat slow; some profiling will be required.)
- Updated ucnhash to support name lookup for Unicode 9.0 (like in u'\N{name}').
- Jython doc-entries in Java-code (__doc__foo) now accept anything that implements
java.lang.CharSequence (PyString implements CharSequence now as well).
This allows Jython-friendly Java-code without PyString-induced dependency on Jython.
- Provided a painless way to deal with long-standing Issue 527524 - "Cannot compile to use
methods exceeding JVM size restrictions": If a CPython 2.7 bytecode-file (.pyc) exists,
Jython automatically uses that bytecode to represent oversized functions and methods,
while methods with proper size are still compiled to JVM bytecode.
The crucial bytecode sections from the pyc-file are embedded seamlessly into the created
class-file, so you wouldn't have to distribute the pyc-file at all.
Current implementation of this feature is provisional and might change in future versions.
Issue 527524 was still not listed as solved, because Jython cannot yet create the pyc-file
by itself.
- Support for CPython bytecode (.pyc-files) was updated to Python 2.7 bytecode (from 2.5).
- Buffer API changes allow java.nio.ByteBuffer to provide the storage when a PyBuffer
is exported. This is to support CPython extensions via JyNI, but has other uses too
(including access to direct memory buffers from Python). There is no change at the
Python level or for client code using PyBuffer via the "fully encapsulated" API. It
risks breaking code that makes direct access to a byte array via PyBuffer, implements
the PyBuffer interface, or extends implementation classes in org.python.core.buffer.
- Updated Netty to 4.1.4
- Fixed platform.mac_ver to provide actual info on Mac OS similar to CPython behavior.
- Added uname function to posix module. The mostly Java-based implementation even
works to some extend on non-posix systems (e.g. Windows).
Jython 2.7.1b3
Bugs fixed
- [ 550200 ] Jython does not work on ebcdic platforms
- [ 2457 ] Synchronization bug in PySystemStateCloser causes complete deadlock
- [ 2456 ] java.util.List.remove(index) does not dispatch to overloaded method for index remove
- [ 2453 ] org.python.modules.sre.PatternObject should be named SRE_Pattern to look like CPython
- [ 2452 ] Jython locking threads on Java proxy objects (multithreaded performance degradation)
- [ 2451 ] array.array objects should not hash
- [ 2441 ] sys.executable is None on standalone install, thus causing a setup()
install/build to fail
- [ 2439 ] 'SSLSocket' object has no attribute 'accept'
- [ 2437 ] no common ciphers SSL handshake error
- [ 2436 ] Missing socket.SOL_TCP (= socket.IPPROTO_TCP)
- [ 2435 ] Remove unsupported socket options like socket.SO_EXCLUSIVEADDRUSE
- [ 2434 ] zlib module has different flush behaviour than CPython and PyPy
- [ 2431 ] tox not working because of zero width bug in Jython sre
- [ 2428 ] socket.connect_ex does not properly report connection state sequence
- [ 2426 ] Support socket shutdown with "how" of _socket.SHUT_RDWR (2)
- [ 2423 ] jarray.array() method broken in 2.7
- [ 2421 ] UnboundLocalError: local variable 'key_store' referenced before
assignment in _sslverify.py
- [ 2417 ] os.utime fails on UNC network paths
- [ 2416 ] os.system does not use changes to os.environ in subprocesses
- [ 2401 ] SSL race produces NPE
- [ 2400 ] Installing pip as part of Jython installation fails
- [ 2393 ] Clean running regression tests on windows
- [ 2392 ] Intermittent errors from sre_compile.py -
ValueError('unsupported operand type', 'subpattern')
- [ 2391 ] read-only attr wrongly reported
- [ 2390 ] Support SSLContext
- [ 2374 ] setsockopt call from pika fails with "Protocol not available"error
- [ 2368 ] Problem with _io and BlockingIOError
- [ 2360 ] Not installing pip on Jython
- [ 2358 ] Using "read all" ops on /proc files on Linux produces empty strings
- [ 2357 ] Infinite recursion with set subclass
- [ 2338 ] readline.py startup hook
- [ 2329 ] Cannot create virtualenv with jython2.7rc2 - breaks tox
- [ 2321 ] Py.setSystemState() is a NOOP
- [ 2279 ] PyIterator#__tojava__ should support coercion to java array
- [ 2350 ] Installer errors on ensurepip
- [ 2276 ] Ctrl-Z doesn't exit Jython console on Windows
- [ 2223 ] __file__ not defined when running from ScriptEngine
- [ 2154 ] When running multiple engines in different threads, the last registered
writer is in use for all script executions.
- [ 2124 ] xml.dom.minidom.writexml() changes value of TEXT_NODE
- [ 1984 ] os.pipe() missing
- [ 1953 ] lib2to3 missing
- [ 1780 ] jarray not properly converted to list with java.util.Arrays.asList(T... a)
- [ 1739 ] JSR223: ScriptEngine.FILENAME not honoured
- [ 1738 ] JSR223: ScriptEngine.ARGV is not honoured
New Features
- Use latest upstream bundled wheels for ensurepip: pip (7.1.2), setuptools (18.4),
replacing wheels patched specifically for Jython
- Unified PyDictionary and PyStringMap under a common abstract base class.
- Added Py.newJ method family for easier access to Python code from Java. Now you
can coerce Python types under Java interfaces without needing to inherit from
the Java-interface in Python code. Also see PyModule.newJ.
Jython 2.7.1b2
Bugs fixed
- [ 2396 ] test_threading and others fail under Cygwin (sys.executable).
- [ 2397 ] test.test_os_jy fails on Windows due to non-byte PyString.
- [ 2405 ] os.getpid() is missing (JNR JARs updated).
Jython 2.7.1b1
Bugs fixed
- [ 1423 ] Circular imports no longer cause RuntimeError.
- [ 2310 ] test_import runs on Windows (and passes with 4 skips).
- [ 2347 ] failures in test_import_pep328 when run with -m
- [ 2158, 2259 ] Fixed behaviour of relative from ... import *
- [ 1879 ] -m command now executes scripts from inside a jar file
- [ 2058 ] ClasspathPyImporter implements PEP 302 get_data (and others)
- [ 2364 ] bytearray and str: isalpha(), isupper() etc. now match Python 2
==============================================================================
Jython 2.7
==============================================================================
Jython 2.7rc3
Bugs fixed
- [ 2311, 2319 ] Many compatibility fixes for launcher (bin/jython, bin/jython.exe)
- [ 2332 ] jython -m test.regrtest -e now finds the tests it should
- [ 1572 ] sys-package-mgr console messages silenced by default. Thanks to Emmanuel Jannetti.
- [ 2327 ] Tests in org/python/tests/imp run only with proper path
- [ 2105 ] Fix inconsistent conversion of PyObject to String in StdoutWrapper
- [ 1795 ] Support both subclassing from Java in a Python class and a Python implementation of __tojava__
- [ 1861 ] Fix threading.Lock to support non-reentrant semantics
- [ 2323 ] Fixes pickling issues in object.__reduce__ and cPickle.{load, loads}
- [ 1540 ] Fix stack overflow due to how proxies for Java classes resolve super method in Java
- [ 2325 ] Enable piping input into Jython without getting extraneous prompt output
- [ 2324 ] Fix index computation for StringBuilder after seek back in cStringIO
- [ 2171 ] Fixed direct calls to __pow__() on int, long and float with a modulo of None
- [ 2326 ] Java's weakly consistent iteration of ConcurrentMap is compatible with mutation
- [ 2322 ] Refreshed several networking modules from CPython 2.7.9 due to CVE-2013-1752
- [ 1670 ] Added automatic type coercion of decimal.Decimal to java.lang.{Double, Float}
- Pull in hand coded AST work into code gen in asdl_antlr
- [ 2307 ] Fixed normalization of paths on Windows
- Module tempfile now returns temporary directory in proper case (See also CPython issue 14255)
- Faster extended slice deletion in bytearray.
- [ 2304 ] Fixed __module__ missing from functions in the time and operator modules
Jython 2.7rc2
Bugs fixed
- [ 2301 ] time.strftime now always returns a bytestring (fixes pip on Japanese locales)
- [ 2297 ] Updates Jython installer to use jython.exe
- [ 2298 ] Fix setuptools wheel bundled by ensurepip so it checks for Windows on Jython
- [ 2300 ] Fix bin/jython.py to not consume subcommand args
New features
- Installer installs pip, setuptools by default, but custom builds can de-select.
Does not change standalone usage. (Runs jython -m ensurepip as last install step.)
- Makes jython.py be the default launcher (as bin/jython) if CPython 2.7 is available.
Removed support
- Installer no longer supports using an alternative JRE when generating Jython launchers.
Instead just use JAVA_HOME environment variable to select the desired JRE.
(Removed because of the new native launcher, jython.exe, that is now used on Windows.)
Jython 2.7rc1
Bugs fixed
- [ 1793 ] Fix relative seek in read/write mode via a non-buffered readinto() method
- [ 2282 ] Speed up startup with compiled $py.class files included for standalone, full jars
- [ 1371, 2283, 2296 ] More robustness wrt security managers, python.home, import of non-ascii names
- [ 2068 ] Use position(long) setter to manually update file channel's position post-write.
- [ 2288 ] Posix link and symlink support now uses NIO2
- [ 2120 ] Use Java instead of JNR for os.chmod, os.mkdir when running on Windows
- [ 2226 ] Matches CPython's re support of what counts as a Unicode whitespace codepoint
- [ 1725 ] Speed up re matching by not executing SRE_STATE#TRACE in the sre regex engine
- Exceptions with non-ascii args should not cause an exception when displayed on console
- [ 2274 ] Remove Jython-specific pythonpath, test_pythonpath; update pwd to support unicode
- [ 2289 ] Ensure core types are Serializable, specifically PyUnicode
- [ 2272 ] Generalize adding special slots (__dict__, __weakref__); adds support for Werkzeug
- [ 2280 ] Avoid deadlock at shutdown with synchronization of PySystemStateCloser, FinalizeTrigger
- [ 2275 ] Upgrade JLine to support keyboard layouts using AltGr (such as Finnish) on Windows
- Improve robustness of socket and SSL support, especially error handling
- time.sleep(0) should always attempt to yield CPU
- [ 2271 ] Restore __tojava__ to datetime.{date, datetime, time} classes
- [ 2084, 1729 ] Robust handling of sun.misc.Signal exceptions across various JVM implementations
- [ 2189 ] Add java_user scheme to support user directory installs
- Fix Popen._internal_poll so that it does not race with java.lang.Process finalization
- Fix reflection-based garbage collection traversal for CPython compatible gc semantics
- [ 1491 ] Windows launcher now uses jython.exe (built with PyInstaller) instead of jython.bat
This means that pip, nosetests, yolk, and other installed tool scripts finally work on Windows
New features
- Can add a __dict__ slot descriptor to a subclass of Java classes, such as java.util.HashMap
- Directly execute zip files or dirs with top level __main__.py to support wrapper scripts
generated by distlib, part of pip
- Reflection-based traversal is now activated by default as a fallback for ordinary traversal.
This impacts third-party extenders of PyObject. A warning is emitted that suggests next steps
on how to avoid this cost.
- Uses classpath wildcard in jython.py/jython.exe to minimize the launcher command line,
(main benefit is Jython developers on Windows using dev builds)
- Adds new Jython launcher written in Python, bin/jython.py, to be run by CPython 2.7
Jython 2.7b4
Bugs Fixed
- [ 2032 ] Fixed typo in compiler/pycodegen.py
- [ 2190 ] Raise ValueError when unichr() is called with isolated surrogate codepoint
- [ 1057 ] Finalizer support (__del__) for new style classes
- [ 2192 ] Server requests were hanging using jython, django and django-jython
- [ 2204 ] Minimum (core) install will now support Jython console
- [ 2184 ] inspect.callargs, including anonymous tuples in function params
- [ 2100 ] Fix deficiencies in PyUnicode beyond the BMP
- Fix bug in supporting meta path importers for six
- [ 2183 ] Rework function attributes support
- [ 2115 ] Allow bound methods as arg for single method interface param
- [ 2163 ] Refactor Py, PySystemState to init constants early
- [ 2217 ] Update serial release to 3 for sys.version_info
- [ 2090, 1494 ] Behaviour of long in the JSR-223 engine
- [ 2196 ] Do not emit duplicate entries in building standalone jar
- [ 1708 ] Ensure regrtest runs in a C locale to avoid failures
- [ 2037 ] Prevent non-byte values appearing in str()
- [ 2205 ] Guard via module import lock all entry points from Java into import
- [ 1631 ] Fully proxy java.util.Map objects as Python dicts
- [ 2215 ] Fully proxy java.util.List objects as Python lists
- [ 2242 ] select.select and related socket.connect_ex fixes
- [ 2241 ] Fully proxy java.util.Set objects as Python sets
- [ 2239, 1825 ] os.getenv, os.listdir may return unicode instead of bytes
- [ 2110 ] Update Java Native Runtime jars
- [ 2236 ] Interactive parser does not accept try ... except E as e: syntax
- [ 2232 ] Visit class decorators when visiting class def in scopes compilation
- [ 2247 ] dict.pop should not add additional quoting in KeyError
- [ 2238 ] os.system now uses a simpler wrapping of ProcessBuilder
- [ 1561 ] Raises NotImplementedError if abstract method from Java is not implemented
- [ 2221 ] Implement Popen.pid
- [ 2150 ] Fix regrtest to support -x to exclude tests
- [ 1152612 ] All dict methods for __dict__ except views
- [ 1762054 ] Add webbrowser module
- [ 2252 ] Args in sys.argv are now unicode if characters > 127
- [ 2092 ] Upgrade to JLine2 and add tab completion support
- [ 2236 ] Interactive parser does not accept try ... except E as e: syntax
- [ 2237 ] Fully conformant math and cmath support
- [ 2244 ] More robust testing of math and cmath modules
- [ 2224 ] id(...) now persists object resurrection and a pattern is provided to solve similar issues
(i.e. attributes bound to a PyObject via a WeakHashMap) in an analogue way (See JyAttribute.java).
New features
- Full support of Python buffer protocol, along with Java ByteBuffer support
- Add index to PyUnicode facilitating O(1) access to strings beyond the BMP.
- java.util.{Map, List, Set} are now treated as subclasses of the
corresponding Python abstract base classes
- jythonlib module to simplify usage of Java internals from Python;
weakref collections now directly use corresponding collections from
Google Guava and java.util
- CPython's _json.c was ported to Java to speed up JSON encoding/decoding
- Upgraded third party libraries
- Initial support for ensurepip module
- Callbacks can be registered/unregistered to be notified when
bytecode is loaded, using jythonlib.bytecodetools
- Jython now features an optional, but recommended-to-implement traverseproc-mechanism
like CPython. This enables some new gc-features to optionally emulate CPython-specific
gc-behavior. See doc in gc.java and Traverseproc.java.
Potentially backwards breaking changes, removing silent errors:
- remove method on proxied List objects now follows Python
semantics: a ValueError is raised if the item is not found in the
java.util.List. In the past, Java semantics were used, with a
boolean returned indicating if the item was removed or
not. Given how this interacted with Jython, such remove
invocations were in the past silent, and perhaps were actually a
bug.
- d[key_not_present], if d implement java.util.Map, no longer
returns None, but raises KeyError, which means this behavior now
matches standard dict semantics.
- Abstract methods of an inherited class or interface from Java now raise
NotImplementedError, instead of returning None (in Java, null) or some
"zero", if they are not implemented in the extending Python class.
- os.getenv, os.listdir, sys.argv now return unicode instead of
str values if a given value is not ascii, thus allowing such
values to be passed through to Java, eg
java.io.File(sys.argv[1]). Earlier such behavior was potentially
silently failing in Python functions, but passing through to
Java because of bug 2037. This behavior conforms with Python
3.x, which uses Unicode.
Jython 2.7b3
Bugs Fixed
- [ 2225 ] Jython+django-jython - no module named site
- [ 1497 ] ast classes do not have appropriate base classes
- [ 1980 ] ast.Eq, ast.Gt, ast.GtE, ast.In, ast.Is, ast.IsNot, ast.Lt, ast.LtE, ast.NotEq and ast.NotIn should be subclasses of ast.cmpop
- [ 1981 ] ast.And and ast.Or should be subclasses of ast.boolop
- [ 2130 ] Fix max such that any raised ValueError uses the correct error message text
- [ 2180 ] default encoding is not UTF-8
- [ 2094, 2147, 2174 ] Fix bugs in select.poll, threadpool group closing, and SSL handshaking
- [ 2178 ] Update Apache Commons Compression to 1.8.1 for jar-complete builds
- [ 2176 ] Fix bz2.BZ2File.read so it reads the number of requested bytes
- [ 2028 ] Implement unicode._formatter_parser and unicode._formatter_parser
- [ 1747 ] Synchronize runClosers upon shutdown
- [ 1898 ] Support subprocess termination vs terminate/kill methods
- [ 2096 ] Fix subprocess construction such that handles are inherited if not set
- [ 2123 ] Preserve original name of console encoding
- [ 1728 ] Make PyDictionary#equals() more robust, similar to PyTuple and PyList
- [ 2040 ] Ensure that bz2 decompression has enough data to decode
- [ 2146 ] Fix xrange compliance
- [ 1591 ] Interactive interpreter stuck on '...' loop
- [ 1982 ] Modify enumerate such that it can it work with arbitrarily long integers
- [ 2155 ] Enable IP address objects to be used as tuples
- [ 1991 ] Subclassed itertools classes can now chain, and be iterated by Java code
- [ 2062 ] os.write accepts objects having the buffer API
- [ 1949 ] Update collections.deque to 2.7 compliance, and is now threadsafe
- [ 1066 ] Add CJK codecs, as well as other codecs available in Java but not in Jython directly
- [ 2112 ] time.strptime now uses _strptime.py
- [ 2123 ] Use Java codec throughout parser (not sometimes a Python one)
- [ 2078 ] Fix tuple creation for inet6 addresses, and support for bound inet4 socket local address
- [ 2088 ] Fix defaultdict so that derived classes __missing__ methods are not ignored
- [ 2108 ] Cannot set attribute to instances of AST/PythonTree (blocks pyflakes)
- [ 1982 ] builtin function enumerate() should support an optional 'start' argument
- [ 1896215 ] findResource(s) for SyspathJavaLoader
- [ 2140 ] Raise ValueError on args of invalid domain for math.sqrt, math.log
- [ 2119 ] Updated *Derived.java classes as generated by src/templates/gderived.py.
- [ 2087 ] Updated defaultdict to use LoadingCache idiom instead of deprecated ComputingMap
- [ 2133 ] Fix memory leak by doing computed loads only with __getitem__ in defaultdict
- Full bz2 support
- Fix the struct module so that struct.Struct class can be derived from.
Work on resource cleanup
- RefReaperThread is now a Runnable to avoid ClassLoader resource leaks
- ShutdownCloser is now a Runnable to avoid subclass audit issues under a SecurityManager
- Remove shadowing of mutable statics in PySystemState, instead make them instance variables
- Fix PySystemState such that it supports AutoCloseable, Closeable
Potentially backwards breaking changes
- Fix ThreadState so that Jython runtime can be unloaded, using Object[1] indirection
- Use weakkey/weakvalue when caching ThreadState for a given thread, instead of using ThreadLocal
- recursion_count is now more approximate, because not all entry/exit pairs are tracked
- By default, site module is imported when using PythonInterpreter
Use -Dpython.import.site=false (as of RC1) to not import site at all
New Features
- Added socket reboot work, using Netty 4 to fully support socket, select, and ssl API
Jython 2.7b2
Bugs Fixed
- [ 1753 ] zlib doesn't call end() on compress and decompress
- [ 1860 ] test failures in test_array.py
- [ 1862 ] cStringIO does not support arrays as arguments
- [ 1876 ] PYTHONIOENCODING unsupported, used (among others) by PyDev
- [ 1926 ] Adjust MutableSet.pop test so we do not need to skip it
- [ 1964 ] time.strptime() does not support %f in format
- [ 2005 ] threading.Event object's wait([timeout]) function returns null instead of True/False.
- [ 2013 ] %x hex formatting takes O(N^2) time.
- [ 2020 ] str.translate should delete characters in the second arg when table is None
- [ 2027 ] Discrepancy in bin(-num) output
- [ 2033 ] test_strptime fails: test_mar1_comes_after_feb29_even_when_omitting_the_year
- [ 2046 ] sys.stdin.readline() hangs when used interactively (JLine, Windows)
- [ 2060 ] Thread ident missing
- [ 2071 ] datetime strftime %f does not work
- [ 2075 ] Incorrect padding for hex format strings
- [ 2082 ] Unexpected (Pdb) prompt during regression tests
- [ 2083 ] os.unlink() can delete directories
- [ 2089 ] sys.stdout not flushed after sys.exit
New Features
- Command line option -E (ignore environment variables)
- Environment variable PYTHONIOENCODING, and corresponding registry items
Removed support
- No longer supports Java 6; the minimum version is now Java 7
Jython 2.7b1
Bugs Fixed
- [ 1716 ] xrange slicing raises NPE.
- [ 1968 ] Fixes for test_csv.py.
- [ 1989 ] condition.notify_all() is missing.
- [ 1994 ] threading.Event doesn't have is_set method fixed.
- [ 1327 ] ThreadState needs API cleanup work
- [ 1309 ] Server sockets do not support client options and propagate them to 'accept'ed client sockets.
- [ 1951 ] Bytecode Interpreter stack optimization for larger arguments
- [ 1894 ] bytearray does not support '+' or .join()
- [ 1921 ] compiler module broken in Jython 2.7
- [ 1920 ] Backport CO_FUTURE_PRINT_FUNCTION to Lib/compiler/pycodegen.py
- [ 1914 ] Float formatting broken in many non-English locales in Jython 2.7
- [ 1909 ] attrgetter does not parse dotted attributes
- [ 1924 ] Implement operator.methodcaller
- [ 1934 ] Break itertools.compress into a separate class
- [ 1933 ] Break itertools.cycle into a separate class
- [ 1932 ] Make check for iterability in chain() arguments lazy
- [ 1931 ] Check that there are exactly 2 filter args
- [ 1913 ] Support short -W options
- [ 1897 ] 2.7.0ax only has partial ssl support
- array_class in jarray module returns the "Array of a type" class
New Features
- bytearray complete
- a buffer API
- memoryview
- bz2 module
Jython 2.7a2
Bugs Fixed
- [ 1892 ] site-packages is not in sys.path
Jython 2.7a1
Bugs Fixed
- [ 1880 ] Sha 224 library not present in Jython
Jython 2.5.4rc2
Bugs Fixed
- [ 2017 ] jython.bat script pollutes environment! (variables)
- [ 1899 ] Fix to platform.py to correctly avoid a warning message on Windows.
- [ 1988 ] API for threading.condition fails to accept *args for acquire
- [ 1753 ] zlib doesn't call end() on compress and decompress
- [ 1971 ] platform.py - 'NoneType' object has no attribute 'groups'
- [ 1988 ] API for threading.condition fails to accept *args for acquire
Jython 2.5.4rc1
Bugs Fixed
- [ 1936 ] JBoss 7, vfs protocol in use for jarFileName in PySystemState.
- [ 1972 ] jython 2.5.3 sys.stdin.readline() hangs when jython launched as subprocess on Mac OS X.
- [ 1962 ] Interactive console in Jython 2.5.3 needs CRTL-D to execute command.
- [ 1676 ] NPE in defaultdict
- [ 1481 ] jython throws java.lang.IllegalArgumentException instead of ValueError.
- [ 1716 ] xrange slicing raises NPE.
Jython 2.5.3rc1
Bugs Fixed
- [ 1952 ] __import__(): Handling of non-dict globals argument incompatible with CPython
- [ 1900 ] Python imports from Java cause some Python imports to fail
Jython 2.5.3b3
Bugs Fixed
- [ 1754 ] modjy does not provide appropriate wsgi.input file-like object
Jython 2.5.3b2
Bugs Fixed
- [ 1908 ] Patch for 'Unmapped exception: java.net.NoRouteToHostException'
- [ 1871 ] Relative import in module gets imported to top level (regression)
- [ 1854 ] set().pop() race condition
- [ 1730 ] functools.partial incorrectly makes __doc__ property readonly
- [ 1537 ] expat: org.python.apache.xerces.parsers.SAXParser
- [ 1268 ] SAX parsers wants to load external DTDs, causing an exception
- [ 1805 ] threading.Thread always gets name "Thread" instead of a discriminating one
- [ 1866 ] Parser does not have mismatch token error messages caught by BaseRecognizer
- [ 1837 ] gderived.py and template Ant target fail on Windows
- [ 1536 ] NPE in org.python.jsr223.PyScriptEngine:187
- [ 1640 ] cStringIO does not complain on getvalue after close
- [ 1721 ] NPE when using JSR 223 (TestCase+Patch)
- [ 1749 ] function descriptor doesn't work in interactive console
- [ 1816 ] Jython Interactive Console makes system beep noise too much
- [ 1829 ] test_socket.py failing on Ubuntu (Oneiric)
- [ 1844 ] bad host returned by getsockname
Jython 2.5.3b1
Bugs Fixed
- [ 1835 ] Fix typo: occurred
- [ 1727 ] Error in Jython 2.5.2 with os.stat and varargs
- [ 1735 ] return type of os.read is unicode, not str
- [ 1755 ] os.utime('/tmp/nonexistent-file', None) fails to raise OSError
- [ 1768 ] sax.parse doesn't handle attributes with name 'id' correctly
- [ 1803 ] _tcpsocket doesn't have 'family' attribute
- [ 1804 ] _tcpsocket doesn't have 'type' and 'proto' attributes
- [ 1809 ] socket.getaddrinfo sometimes returns an object that crashes in __str__
- [ 1811 ] Recursive import bug w/ SQLAlchemy 0.7.3
- [ 1819 ] Incorrect handling of Java object toString methods returning null
- [ 1824 ] os.link() can silently fail
- [ 1825 ] EnvironmentError.filename is `str` even if original name is `unicode`
- [ 1828 ] Problems inheriting from long
- [ 1833 ] Trouble passing Python objects through a Java class back to Python
Jython 2.5.2
same as 2.5.2rc4
Jython 2.5.2rc4
Bugs Fixed
- [ 1667 ] thread.local subclasses with constructor params fail
- [ 1698 ] warnings module fails under JSR-223
- [ 1697 ] Wrong error message when http connection can not be established
- [ 1210 ] Lib/socket.py doesn't allow IPv6 sockets and fails with an AssertionError
- [ 1700 ] "virtualenv is not compatible" to 2.5.2rc3
- [ 1701 ] Files are not flushed properly when opened from the EDT (partial fix)
New Features
- The socket module now includes ipv6 support
- The socket module now also includes Internationalized Domain
Names (RFC 3490) support on Java 6
Jython 2.5.2rc3
Bugs Fixed
- [ 1674 ] PDB crashes under the JSR-223 scripting engine
- [ 1680 ] jython -c option is not parsed right
- [ 1681 ] JSR-223, Jython 2.5.2 and implementing Java Interfaces from Python
- [ 1675 ] Jython exits prematurely when executing a file, thus killing Swing windows
- [ 1682 ] exit code of 0 on unhandled exception
- [ 1668 ] strptime('','') works on cpython but not on jython
- [ 1693 ] Unicode sys.path elements cause UnicodeErrors on import
Jython 2.5.2rc2
Bugs Fixed
- [ 1665 ] cPickle calls __import__ with illegal parameters
- [ 1628 ] getpass.getpass echoes input
- Fix logic to detect that a console is interactive (related to #1133)
Jython 2.5.2rc1
Bugs Fixed
- [ 1133 ] Support ipython and other completers with readline emulation
- [ 1642 ] JSR223 PyScriptEngine#getInterface returns a NPE when called with zero args
- [ 1662 ] time.strptime does not use Java date format strings properly
- [ 1543 ] PyArray fails to clean up pre-allocated space
- [ 1661 ] Error at on exit in TCC/LE
- [ 1639 ] JBoss 5, vfszip protocol in use for jarFileName in PySystemState
- [ 1660 ] threading module memory leak
- [ 1452 ] pydoc help() function fails because sys.executable is None in stand-alone Jython
- [ 1568 ] sys.stdout.encoding returns wrong value in Windows with Jython 2.5.1 (fixed on Java 6 only)
- [ 1647 ] zxJDBC does not handle NVARCHAR
- SocketServer module now supports ephemeral server ports (by using port 0); see discussion for #1660
Jython 2.5.2b2
Bugs Fixed
- [ 1327 ] Classloaders cannot GC, which exhausts permgen (partial bug fix)
- [ 1604 ] PyBuiltinCallable.Info should be serializable
- [ 1397 ] Bugs in PyList and PyJavaType.ListIndexDelegate slice setting
- [ 1503 ] Java constructors should take keyword arguments
- [ 1648,1495,1516 ] Incomplete implementation of pep328 for relative imports
- [ 1611 ] Jython bytecode violated JLS, causing NPE on Sun's JVM when using -Xcomp option
- [ 1643 ] Tools subdirectory still exists in trunk
- [ 1455 ] Classes loaded dynamically from sys.path do not have their package defined
- [ 1555 ] Jython does not publish MIME types via JSR 223 (ScriptEngine.getFactory().getMimeTypes() is empty).
- [ 1632 ] cPickle.Unpickler does not allow assignment of find_global
- [ 1395 ] PyList.indexOf() and PyTuple.indexOf() do not function properly
- [ 1373 ] Jython ClassLoader getResource does not work
- [ 1506 ] Jython applies PEP263 pattern for determining source-code encoding on noncomments
- [ 1630 ] threading.Thread lacks __tojava__ method
- [ 1558 ] PyFunction to single method interface wrapping does not handle java.lang.Object methods
- [ 1622 ] array type prevents __radd__ fallback
Jython 2.5.2b1
Bugs Fixed
- [ 1559 ] time.strptime broken for day of week for Sunday
- [ 1614 ] minidom chunks the character input on multi-line values
- [ 1615 ] Can't invoke Java method that takes a variable number of arguments with zero arguments
- [ 1605 ] float preference over PyComplex as arg to __call__ breaks logic
- [ 1586 ] weakref reference count leak when kwargs are used
- [ 1601 ] Can't serialize PyCode object
- [ 1551 ] Java objects cannot be copied by the copy module
- [ 1375 ] XML SAX: attrs.get((None, 'attr')) gives NPE
- [ 1488 ] sax JyInputSourceWrapper does not support unicode strings
- [ 1510 ] minidom is not parsing comment information correctly
- [ 1549 ] Wrapping an InputStream with a PyFile wrongly carries out line-ending translation.
- [ 1583 ] xml.dom.Node.data returns bytestrings of decoded unicode
- [ 1515 ] modjy sometimes adds None to the sys.path
- [ 1507 ] modjy crashes if any query string parameters are not set with '='
- [ 1473 ] modjy servlet doesn't import site-packages by default
- [ 1474 ] modjy servlet doesn't call atexit handlers
- [ 1225 ] socket.getservbyname/port() not yet supported
- [ 1532 ] Cannot use docstring when defining class
- [ 1530 ] BoolOp in multiple assign causes VerifyError
- [ 1478 ] defaultdict & weakref.WeakKeyDictionary [TypeError: first argument must be callable]
- [ 1487 ] Import of module with latin-1 chars fails on utf-8 file encoding
- [ 1449 ] Ellipsis comparison different from Python 2.5 to Jython 2.5
- [ 1493 ] tarfile.extractall() throws "AttributeError: 'module' object has no attribute 'chown'" when called by root
- [ 1470 ] os.mkdir Errno difference from cpython
- [ 1496 ] fix os.listdir errno for non-existing dirs
- [ 1499 ] PostgreSQL datahandler should return Decimals instead of floats for NUMERIC/DECIMAL columns
- [ 1477 ] os.setpgrp and posix.setpgrp fail with TypeError
- [ 1396 ] Assigning os module funcs as class attributes incompatible with CPython
- [ 1504 ] Inheriting twice from the same Java interface causes MRO problems
- [ 1511 ] PySet doesn't support Java serialization
- [ 1426 ] JSR 223 Bindings changes not taking effect and leaking between threads; unnecessary synchronization
- [ 1548 ] Parentheses in CLASSPATH cause errors in jython.bat
- [ 1576 ] files opened in 'a+' mode not readable
- [ 1563 ] unicode() for Java objects working differently in 2.2 and 2.5
- [ 1566 ] os.popen(cmd).read() returns `\r\n` as newline on Windows with Jython 2.5
- [ 1517 ] TypeError: get_referrers
- [ 1502 ] string-escape codec incorrect
- [ 1534 ] new style object __dict__[name] ignored
- [ 1479 ] xml parser file lock
- [ 1582 ] com.ziclix.python.sql.PyConnection leaks memory
- [ 1520 ] os.listdir doesn't return unicode when requested
- [ 1483 ] optparse std module dies on non-ASCII unicode data
- [ 1390 ] ihooks fails due to unimplemented methods in imp module
- [ 1456 ] sys.trace/profile attributes cause: AttributeError: write-only attr: trace in PyAMF
- [ 1385 ] generator.throw uncaught on new generator doesn't stop the generator
- [ 1596 ] SynchronizedCallable does not report that it is callable [suggested fix]
- [ 1557 ] jython.bat doesn't work in 4nt
- [ 1567 ] [Windows] Wildcard Parameter * gets expanded to filename
- [ 1594 ] Glob patterns like *.txt processed incorrectly on startup
- [ 1356 ] [Windows] test_subprocess test_communicate_pipe_buf fails
- [ 1595 ] [patch] CachedJarsPackageManager cannot write cache for packages in jar over 64k
- [ 1522 ] repeated execution of external python scripts causing PermGen out of memory exception
- [ 1251 ] select() fails when selecting on a file descriptor
- [ 1233 ] couldn't make directories when installing django in jython on Windows
- [ 1260 ] Why is asyncore.py so different?
- [ 1236 ] Django 1.0.2 jython setup.py install fails in 2.5b1 (ok in 2.5b0)
- [ 1263 ] importing * from java-class fails
- [ 1252 ] StackOverflow when name referenced before global declaration and run as a script
- [ 1275 ] Jython doesn't load directories of JARs
- [ 1278 ] socket.py error wording nitpick
- [ 1249 ] Trace function is not called with an exception event exactly when the exception occurs
- [ 1282 ] Java serialization problem
- [ 1289 ] os.path.isdir(path) return 0 instead of False