List of prescreened patches for CLJ project
Date: November 8, 2012
Screeners: See Note 3 near the bottom of this message for the command
to use when applying patches. See Note 4 near the bottom for the
criteria to call a patch "prescreened".
This list of tickets is intended primarily for Clojure screeners and
committers. If you are a contributor looking for tickets that need
more work, look for the separate "Tickets needing work" list. Also
consider reading and evaluating the not-yet-screened patches below to
help out the screeners, adding your comments to the tickets in JIRA
with what you learned. You can also vote on tickets you want to see
fixed.
----------------------------------------------------------------------
Blocking bugs
----------------------------------------------------------------------
One or more contributors consider these bugs to be blocking,
i.e. significant enough to warrant fixing before another release is
made, by saying so on clojure-dev. If someone from Clojure/core wants
to veto that status, let me know and I'll remove it from this part of
the report.
CLJ-873 clj-873-namespace-divides-patch.txt (already screened)
CLJ-1036 clj-1036-hasheq-for-biginteger-patch-v1.txt (already screened)
CLJ-1092 fix-added-metadata-for-re-quote-replacement.txt (not screened, one-line :added metadata correction)
----------------------------------------------------------------------
"Oddballs"
----------------------------------------------------------------------
CLJ-124 is marked as Approval=OK. Is it intended to be in that state?
There are patches in the old Assembla system, but it isn't clear to me
from the comments which if any of them is approved.
CLJ-124 GC Issue 120: Determine mechanism for controlling automatic shutdown of Agents, ...
These are suggested changes to
clojure.org web pages, not patches to
Clojure.
CLJ-936 Improve docs about argument destructuring at
clojure.org
CLJ-1031 Website documentation for evaluation has misleading information about "load"
<suggested in email> Remove now-obsolete
http://clojure.org/streams and any links to it (RH said in 2009 that streams lost to chunked sequences)
----------------------------------------------------------------------
Tickets that can be closed since a patch has been committed for them
----------------------------------------------------------------------
CLJ-927 default tagged literal reader
----------------------------------------------------------------------
Tickets that might be closable without any code changes
----------------------------------------------------------------------
Some contributors believe that these tickets can be closed without any
code changes, perhaps because there was no bug in the first place, the
issue is obsolete, the problem was apparently fixed by some other
commit since the issue was created, etc.
CLJ-775 Test clojure.test-clojure.rt fails
CLJ-779 Document
clojure.org differences between 1.2 and 1.3
- CLJ-851 Type-hinting a var with primitive array pseudo-class results in IllegalArgumentException when the var is used as an arg
CLJ-956 [java.lang.ClassFormatError: Duplicate method name&signature] when using gen-class
CLJ-996 alter-var-root + protocol function call results in StackOverflow
CLJ-1006 Quotient on bigdec may produce wrong result
CLJ-1051 Recursive function raises "call unbound fn" exception
----------------------------------------------------------------------
Enhancements ideas for which it might be time to create a ticket
----------------------------------------------------------------------
Is it OK to create a ticket for these now? (see Note 2 near the end)
http://dev.clojure.org/display/design/Overriding+compile-time+var+values+at+expression-level+granularity
----------------------------------------------------------------------
Prescreened patches *not* marked with Fix Version/s = "Release 1.5"
----------------------------------------------------------------------
Doc string fixes only:
CLJ-196 0002-Don-t-promise-the-value-of-file-in-the-REPL.patch
Better error reporting:
CLJ-735 protocolerr.diff
Debug/tooling enhancement:
CLJ-706 706-deprecated-var-warning.diff fails tests when applied by itself. Needs test fixes in other 706-* patches and then they pass.
CLJ-1073 clj-1073-allow-thread-interrupt-in-print-sequential-patch.txt
CLJ-1076 clj-1076-fix-tests-on-windows-patch-v1.txt
CLJ-1088 0001-Add-support-for-protocol-fns-to-repl-source.-CLJ-1088.patch
Clojure library bug fixes:
CLJ-944 0001-Fix-for-CLJ-944.patch
(See comments for another patch 0002-Fix-for-CLJ-944.patch and why it fails some tests, which are fixable.)
CLJ-1029 ns-patch.diff
CLJ-1059 001-clj-1059-make-persistentqueue-implement-list.diff or 002-clj-1059-asequential.diff
CLJ-1079 CLJ-1079.diff
CLJ-1074 0001-Read-Infinity-and-NaN.patch
CLJ-1077 thread-bound.diff
CLJ-1093 001-fix-empty-record-literal.patch
CLJ-1101 CLJ-1101-make-default-data-reader-fn-set-able-in-REPL.patch
CLJ-1102 clj-1102-improve-empty-stack-trace-handling-v1.txt
Language enhancement, new reducers planned for Clojure 1.5:
CLJ-991 reducer-partition-by4.diff
CLJ-1045 fold-by-halves.patch
CLJ-1046 drop-while-reducer.patch
(Note: As of Oct 28 2012, some patches for CLJ-992 and CLJ-993 apply, build, and test cleanly if applied after the patches for CLJ-1045 and CLJ-1046.)
CLJ-1047 001-simplify-fj-importing.patch
CLJ-1049 0001-reduce-kv-transformations.diff
CLJ-1098 0001-CLJ-1098-Implement-IKVReduce-and-CollFold-for-nil.patch
Allow more correct-looking Clojure code to work:
CLJ-373 clj-373-alter-behavior-of-update-in-with-empty-key-patch2.txt
CLJ-666 0001-Add-Big-support-to-Reflector-Updated.patch
CLJ-700 clj-700-patch6.txt (was Screened, then Incomplete in Aug 2012, now no Approval)
CLJ-1020 clj-1020-inspect-table-skip-nil-rows-patch1.txt
CLJ-1021 001-propagate-on-macro-meta.diff
CLJ-1044 001-enable-factory-ctor-inside-deftype.diff
CLJ-1086 thread-last-arity-1.diff
Language/library enhancement:
CLJ-866 clj-866-test-vars.patch
CLJ-957 clj-957-allow-typehinting-of-method-signatures-in-deftype-patch2.txt
CLJ-958 0001-Make-APersistentVector.iterator-slightly-more-effici.patch
CLJ-978 clojure--bean-support-for-private-implementation-classes-v3.diff
CLJ-1010 0001-CLJ-1010-Add-a-left-to-right-version-of-comp-comp.patch
CLJ-1063 clj-1063-add-dissoc-in-patch-v2.txt (TBD: Open ticket for Clojure incubator for this.)
CLJ-1078 queue.patch
CLJ-1094 0001-Add-zero-arity-variants-for-every-pred-and-some-fn.patch
CLJ-1097 node-seq.diff
CLJ-1103 clj-1103-make-conj-assoc-dissoc-handle-args-similarly-v1.txt
Language enhancement:
CLJ-248 clj-248-SortedMap-SortedSet-interfaces-patch2.txt
CLJ-308 0001-Added-ClosableResource-protocol-for-with-open.patch
CLJ-771 clj-771-move-unchecked-casts-patch-v4.txt
CLJ-865 updated.patch
Language enhancement, some complexity, two similar patches available:
CLJ-827 0001-add-unsigned-bit-shift-right.patch
CLJ-827 0001-CLJ-827-Add-bit-shift-right-logical.patch
Performance enhancement:
CLJ-703 improve-writeclassfile-perf.patch
CLJ-862 pmap-chunking-862.diff
CLJ-1080 clj-1080-eliminate-many-reflection-warnings-patch-v1.txt
CLJ-1087 clj-1087-diff-perf-enhance-patch-v1.txt
CLJ-1096 desctructure-keyword-lookup.diff
Code cleanup:
CLJ-842 0001-Migrate-the-metadata-in-clojure.pprint.-to-the-new-s.patch
- CLJ-1026 0001-Introduce-end-of-line-normalization.patch
CLJ-1072 0001-CLJ-1072-Replace-old-metadata-reader-macro-syntax.patch
CLJ-1092 fix-added-metadata-for-re-quote-replacement.txt
----------------------------------------------------------------------
Prescreened patches that are marked with Fix Version/s = "Release
1.5", but not screened (? means it was so marked by someone other than RH)
----------------------------------------------------------------------
Debug/tooling enhancement:
CLJ-896 clj-896-browse-url-uses-xdg-open-patch2.txt
CLJ-908 clj-908-Print-metadata-and-anonymous-classes-better-patch2.txt
CLJ-939 clj-939-report-load-exceptions-with-file-and-line-patch-v2.txt
? CLJ-987 0002-pprint-now-flushes-the-underlying-stream-similarly-t.patch
CLJ-1099 better-error-message-for-seq.patch
Clojure library bug fixes:
CLJ-783 clj-783-patch.txt
CLJ-863 0001-make-interleave-handle-odd-arugments-in-the-same-man.patch
CLJ-937 cl-format-efg-coerce-ratios-to-doubes-patch1.txt
CLJ-945 capitalize-for-supplementary-chars-patch.txt
CLJ-1100 clj-1100-reader-literal-periods.patch OR CLJ-1100-allow-periods-in-data-reader-tags.patch
Allow more correct-looking Clojure code to work:
? CLJ-1018 inconsistent_range_fix.diff
Language/library enhancement:
CLJ-394 clj-394-add-predicates-for-type-and-record.diff
? CLJ-1004 arraychunk-seq-10004.diff
Performance enhancement:
CLJ-669 0001-use-java.nio-in-do-copy-method-for-Files.patch
CLJ-858 stm-rm-msecs-patch.diff
CLJ-1005 0001-Use-transient-map-in-zipmap.2.patch
Language enhancement:
CLJ-949 0001-let-undeclared-exceptions-continue-unchecked.patch
? CLJ-970 clj-970-extend-implement-parameterized-types-patch2.txt
Disable failing tests:
CLJ-967 clj-967-disable-failing-io-copy-tests-on-ibm-jdk-16-patch1.txt
----------------------------------------------------------------------
Screener has left question in comments for Rich Hickey
----------------------------------------------------------------------
Clojure library bug fixes:
CLJ-935 fix-trim-fns-different-whitespace-patch.txt
----------------------------------------------------------------------
Prescreened, and screened or accepted
----------------------------------------------------------------------
Clojure library bug fixes:
CLJ-1036 clj-1036-hasheq-for-biginteger-patch-v1.txt
Language enhancement:
CLJ-873 clj-873-namespace-divides-patch.txt
----------------------------------------------------------------------
First column is one of:
- Patch applied cleanly until recently, but recent changes to latest
master have caused it to no longer apply cleanly.
----------------------------------------------------------------------
(Note 1) Warnings/errors explicitly allowed in output of 'ant' command
The following warning lines are explicitly allowed in the output of
Oracle JDK 1.7.0:
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5
----------------------------------------------------------------------
(Note 2) Rich Hickey requested that enhancements have a wiki page
created for them before any ticket is created.
http://groups.google.com/group/clojure-dev/browse_frm/thread/8eb9c7efbcb60033
----------------------------------------------------------------------
(Note 3) As documented in the "Screening Tickets" section of the JIRA
Workflow wiki page at
http://dev.clojure.org/display/design/JIRA+workflow, please use the
following command to apply git format patches:
% git am --keep-cr -s < patch_file
Some Clojure source files contain CR/LF endings, and applying such
patches without the --keep-cr option fails with many such patches.
Some patches will produce warnings when applied, but if they have been
prescreened, they did not produce any errors when the command above
was used with the latest Clojure master as of the date of this report.
----------------------------------------------------------------------
(Note 4) Prescreened means:
* The patch is in git format.
* All authors listed in the patch have signed a CA.
* Patch applies cleanly to latest master as of the date of the report
with all of the OS/JDK combos listed below:
Mac OS X 10.6.8 + Oracle/Apple JDK 1.6.0_37 64-bit
Ubuntu 11.10 32-bit + Oracle JDK 1.6.0_37 32-bit
Ubuntu 11.10 32-bit + Oracle JDK 1.7.0_09 32-bit
NOT Ubuntu 11.10 + IBM JDK 1.6.0 J9 2.4 (I may add this back in to
my prescreen testing if latest Clojure master builds and passes
tests with this JVM again.)
* After applying the patch, the command "./antsetup.sh ; ant" compiles
and passes all tests without warnings or errors (see Note 1 near the
end for a short list of allowed warnings).
The conditions above are straightforward to automate, and have been
automated. The patch might still be a bad idea for many reasons,
e.g. it doesn't really fix the problem, there wasn't a problem that
needed fixing to begin with, it isn't backwards compatible with
existing Clojure code, it contains bad spelling/grammar in doc
strings, etc., etc.
----------------------------------------------------------------------
(IBM JDK 1.6)
Since May 2012 I have been testing patches not against the latest
Clojure master, but against latest Clojure master plus the CLJ-967
patch that disables some tests for IBM JDK 1.6. I had been doing this
because the latest Clojure master fails a few tests when using that
JVM, due to some oddities (probably bugs) in how that JVM handles
supplementary Unicode characters.
At least for now, I will no longer apply patches to "latest Clojure
master + CLJ-967 test disabling patch", but instead to latest Clojure
master. Why? Because the patch for CLJ-967 conflicts with a few
other patches, and it doesn't seem reasonable to mark them "not
prescreened" because the CLJ-967 patch conflicts with them.
That also means that the meaning of "prescreened" will change
slightly, because I won't be testing against IBM JDK 1.6. There
doesn't seem to be much reason to do so when the latest Clojure master
doesn't pass all tests with that JVM.
I will add Ubuntu + Oracle JDK 1.6 to the list of JVMs used for
prescreening, for the little bit of testing breadth that may provide.