List of prescreened patches for CLJ project Date: July 2, 2015 The first letter on each patch summary line indicates the Approval of the ticket: "T" for Triaged, "V" for Vetted, etc. After the ticket id (CLJ-) is the state of the ticket. See the JIRA workflow diagram for details: http://dev.clojure.org/display/community/JIRA+workflow 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. 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. ---------------------------------------------------------------------- Prescreened patches *not* marked with Fix Version/s = "Release 1.8" ---------------------------------------------------------------------- Doc string fixes only: V CLJ-1104 Backlog clj-1104-doc-unsafety-of-concurrent-with-redefs-v1.txt T CLJ-1117 Triaged clj-1117.patch CLJ-1240 Open 0001-CLJ-1240-Note-limits-of-clojure.walk-macroexpand-all.patch T CLJ-1290 Triaged CLJ-1290.patch CLJ-1292 Open clj-1292.diff CLJ-1337 Open 0001-Update-defprotocol-s-docstring-to-remove-an-out-of-d.patch T CLJ-1385 Triaged CLJ-1385-reword-docstrings-on-transient-update-funct-2.patch T CLJ-1414 Triaged clj-1414-v1.patch T CLJ-1483 Triaged 0001-Clarify-the-usage-of-replace-first-with-pattern-func.patch T CLJ-1607 Triaged CLJ-1607-p1.patch T CLJ-1722 Triaged fixwithbindingsdocs.patch T CLJ-1769 Triaged docstringfix.patch T CLJ-1772 Triaged clj-1772.patch Better error reporting: T CLJ-735 Triaged protocolerr.diff T CLJ-888 Triaged 0001-Forbid-vararg-declaration-in-defprotocol-definterfac.patch CLJ-1030 Open string-coerce-to-int.diff V CLJ-1099 Vetted better-error-message-for-seq.patch T CLJ-1107 Triaged clj-1107-throw-on-unsupported-get-v4.patch V CLJ-1130 Vetted clj-1130-v5.diff CLJ-1162 Open CLJ-1162-p1.patch CLJ-1189 Open CLJ-1189-p1.patch T CLJ-1210 Triaged extend-io-factory-to-nil.diff T CLJ-1282 Triaged CLJ-1282-p2.patch T CLJ-1319 Triaged 0002-CLJ-1319-Throw-on-odd-arguments-to-PersistentArrayMa.patch CLJ-1341 Open keyword-1341-2014-02-12.2.patch CLJ-1406 Open 0001-modify-clojure.core-load-lib-so-that-it-removes-the-.patch T CLJ-1456 Triaged clj-1456-4.patch T CLJ-1473 Triaged CLJ-1473_v03.patch T CLJ-1490 Triaged CLJ-1490.1.patch CLJ-1514 Open 0001-Use-fully-qualified-class-names-for-return-type-hint.patch CLJ-1630 Open no-multiple-rest-params-v1.patch T CLJ-1647 Triaged kworam-clj-1647.patch CLJ-1737 Open clearer-CompilerException-messase.patch Debug/tooling enhancement: V CLJ-415 Backlog clj-415-assert-prints-locals-v1.txt The patch applies cleanly and passes tests, but gives a warning because macro local-bindings is same name (and perhaps the same author, since the body is almost the same) as a function local-bindings in clojure.test.generative. If the one in clojure.test.generative were moved to clojure.core, test.generative could use that one. CLJ-706 Open 706-fix-deprecation-warnings-on-replicate.diff This patch is only to eliminate some use of deprecated symbols. 706-deprecated-var-warning-patch-v2.txt is the patch that implements the warnings when using deprecated symbols, but fails tests when applied by itself. It needs test fixes in other 706-* patches and then they pass. T CLJ-1073 Triaged clj-1073-add-print-interruptibly-patch-v2.txt CLJ-1112 Open 0001-Allow-setting-loading-verbosely-by-system-property.patch T CLJ-1209 Triaged 0002-CLJ-1209-show-ex-data-in-clojure-test.patch CLJ-1442 Open 0003-Annotate-generated-symbols-with-metadata.patch CLJ-1502 Open clj-1502-v1.patch T CLJ-1645 Triaged CLJ-1645-protocol-class-has-no-source-file-information-w-repl.patch T CLJ-1673 Triaged clj-1673-2.patch Clojure language/library bug fixes: T CLJ-130 Triaged 0001-CLJ-130-preserve-metadata-for-AOT-compiled-namespace.patch CLJ-457 Open clj-457-3.diff CLJ-1029 Open ns-patch.diff CLJ-1077 Open thread-bound.diff T CLJ-1134 Triaged clj-1134-star-directive-in-cl-format.txt T CLJ-1137 Triaged CLJ-1137-eval-metadata-once.diff CLJ-1216 Open 0001-Create-a-DoExpr.Parser-class-that-delegates-to-BodyE.patch CLJ-1217 Open 0001-Don-t-realize-seq-exprs-in-for-unless-necessary.patch T CLJ-1225 Triaged clj-1225-2.txt CLJ-1226 Open 0001-CLJ-1226-fix-set-of-instance-field-expression-that-r-v2.patch CLJ-1229 Open clj-1229-count-overflow-patch-v1.txt T CLJ-1253 Triaged clj-1253-1.txt T CLJ-1254 Triaged clj-1254-2.diff CLJ-1317 Open 0001-CLJ-1317-fix-seq-zip-to-avoid-spurious-nils.patch CLJ-1358 Open CLJ-1358.patch T CLJ-1361 Triaged simple-ns-pprint-fix.patch T CLJ-1372 Triaged 0007-CLJ-1372-consistent-hasheq-for-java.util.-List-Map-M.patch CLJ-1379 Open fix-quoting-in-pass-case.diff T CLJ-1390 Triaged CLJ-1390-pprint-GregorianCalendar.patch T CLJ-1399 Triaged clj-1399-with-test.diff CLJ-1423 Open apply-var.patch T CLJ-1453 Triaged 0001-Throw-NSEE-in-gvec-iterator.patch T CLJ-1475 Triaged clj-1475.diff T CLJ-1485 Triaged clj-1485.patch CLJ-1507 Open fix_npe_eval_reader.diff T CLJ-1528 Triaged fix-CLJ-1528.diff T CLJ-1533 Triaged clj-1533-2.patch T CLJ-1562 Triaged fix-CLJ-1418_and_1562.patch T CLJ-1565 Triaged CLJ-1565.patch CLJ-1582 Open 0001-Allow-overriding-of-clojure.core-in-ns-and-clojure.c.patch T CLJ-1586 Triaged 0001-Compiler-doesn-t-preserve-metadata-for-lazyseq-liter.patch CLJ-1587 Open 0001-PersistentArrayMap-s-assoc-doesn-t-respect-HASHTABLE.patch T CLJ-1588 Triaged clj-1588-2.patch T CLJ-1609 Triaged reflector_method_bug.patch T CLJ-1613 Triaged 0001-CLJ-1613-evaluate-or-defaults-in-enclosing-scope-in-.patch CLJ-1615 Open CLJ-1615-entryAt.patch T CLJ-1644 Triaged CLJ-1644-array-first-nil-v2.patch CLJ-1657 Open CLJ-1657-patch.diff T CLJ-1659 Triaged clj-1659-v3.patch T CLJ-1705 Triaged clj-1705-3.patch T CLJ-1714 Triaged CLJ-1714.patch T CLJ-1733 Triaged clj-1733-tagged-literals-throw-on-sorted-set.patch CLJ-1747 Open CLJ-1747-eduction-print.patch T CLJ-1755 Triaged transient-vector-nth.patch T CLJ-1759 Triaged clj-1759.patch T CLJ-1763 Triaged 0001-CLJ-1763-make-sort-thread-safe.patch T CLJ-1770 Triaged atom-reset-atomic-watch-2015-06-30.patch Language enhancement, reducers: CLJ-1045 Open clj-1045-fold-by-halves-patch-v2.txt CLJ-1047 Open 001-simplify-fj-importing.patch Allow more correct-looking Clojure code to work: CLJ-666 Open 0001-Add-Big-support-to-Reflector-Updated.patch CLJ-1020 Open clj-1020-inspect-table-skip-nil-rows-patch2.txt CLJ-1044 Open 001-enable-factory-ctor-inside-deftype.diff T CLJ-1060 Triaged list-star-fix.diff V CLJ-1148 Vetted clj-1148-defonce-5.patch T CLJ-1242 Triaged 0001-fix-for-CLJ-1242-tests.patch Language/library enhancement: CLJ-107 Open clj-107-v1.diff V CLJ-124 Vetted clj-124-daemonthreads-v1.patch CLJ-200 Open clj-200-cond-let-clauses-fixed-test-v2.diff CLJ-248 Open clj-248-SortedMap-SortedSet-interfaces-patch2.txt T CLJ-308 Triaged 0001-Added-ClosableResource-protocol-for-with-open.patch V CLJ-322 Vetted compile-interop-1.patch Patch compile-interop-1.patch applies and builds cleanly. Comment discussion on various approaches to this ticket are extensive. CLJ-957 Open clj-957-allow-typehinting-of-method-signatures-in-deftype-patch2.txt CLJ-958 Open 0001-Make-APersistentVector.iterator-slightly-more-effici.patch T CLJ-970 Triaged clj-970-extend-implement-parameterized-types-patch2.txt CLJ-1010 Open 0001-CLJ-1010-Add-a-left-to-right-version-of-comp-comp.patch T CLJ-1063 Triaged clj-1063-add-dissoc-in-patch-v2.txt TBD: Open ticket for clojure.incubator for this. CLJ-1078 Open clj-1048-add-queue-functions.diff T CLJ-1094 Triaged 0001-Add-zero-arity-variants-for-every-pred-and-some-fn.patch CLJ-1097 Open node-seq.diff T CLJ-1103 Triaged clj-1103-7.diff CLJ-1108 Open clj-1108-enhance-future-call-patch-v2.txt CLJ-1120 Open 0001-CLJ-1120-ex-message-ex-cause.patch T CLJ-1219 Triaged 0001-CLJ-1219-make-identical-variadic.patch T CLJ-1239 Triaged 0002-CLJ-1239-protocol-dispatch-for-clojure.walk.patch CLJ-1266 Open floats-intrinsics.diff T CLJ-1293 Triaged CLJ-1293-v001.patch T CLJ-1305 Triaged 0001-add-not-found-to-sets-and-vecs-as-functions-refs-130.patch CLJ-1340 Open primitive-cohercion.diff CLJ-1366 Open 0002-make-the-reader-return-the-same-empty-map-when-it-re.patch CLJ-1375 Open clj-1375-v1.patch CLJ-1383 Open clj-1383.diff T CLJ-1386 Triaged 0004-Add-transient-predicate.patch T CLJ-1398 Triaged 0001-update-apache-commons-javadoc-location.patch There are 3 separate patches, and it appears the author is suggesting all 3 should be applied. The other two are: 0002-add-javadoc-lookup-for-guava-and-apache-commons-lang.patch 0003-add-javadoc-lookup-for-jdk8.patch T CLJ-1449 Triaged clj-1449-more-v1.patch T CLJ-1452 Triaged CLJ-1452.patch CLJ-1467 Open 0001-first-try-for-adding-compare.patch T CLJ-1472 Triaged 0001-CLJ-1472-Locking-macro-without-explicit-monitor-ente.patch CLJ-1486 Open 0001-make-fnil-vararg.patch T CLJ-1488 Triaged 0001-Implement-clojure.lang.Named-over-Vars.patch CLJ-1496 Open ex_info_arity.diff CLJ-1506 Open fast_syntax_quote_reader.diff CLJ-1508 Open supplied_p.diff CLJ-1519 Open new-ns-arity.patch CLJ-1523 Open doreduced2.diff CLJ-1534 Open clj_1534.diff T CLJ-1545 Triaged CLJ-1545-2.diff CLJ-1573 Open 0001-transient-field-deftype.patch CLJ-1583 Open 0001-make-RT.boundedLength-lazier.patch CLJ-1597 Open 0001-allow-ISeq-args-to-map-conj.patch T CLJ-1599 Triaged get-and-set.diff T CLJ-1611 Triaged drupp-clj-1611-2.patch T CLJ-1624 Triaged clj-1624.diff T CLJ-1653 Triaged clj-1653-2.patch CLJ-1661 Open CLJ-1661-v1.patch CLJ-1675 Open fix-string-protocol.diff CLJ-1689 Open clj-1689-v3.patch CLJ-1715 Open 0001-CLJ-1715-Use-AFn.applyToHelper-rather-than-IFn.apply.patch CLJ-1719 Open CLJ-1719_v01.patch CLJ-1720 Open CLJ-1720_v02.patch CLJ-1721 Open CLJ-1721_v01.patch T CLJ-1743 Triaged clj-1743-2.patch CLJ-1744 Open 0001-CLJ-1744-clear-unused-locals-v2.patch T CLJ-1762 Triaged reduce-kv-java-map.patch T CLJ-1765 Triaged clj-1765.patch Performance enhancement: T CLJ-99 Triaged clj-99-v2.patch T CLJ-668 Triaged slurp-perf-patch.diff T CLJ-703 Triaged improve-writeclassfile-perf.patch V CLJ-1005 Vetted CLJ-1005-zipmap-iterators.patch CLJ-1087 Open clj-1087-diff-perf-enhance-patch-v1.txt T CLJ-1096 Triaged inline-get-keyword.diff CLJ-1128 Open 0002-Improve-merge-with.patch T CLJ-1259 Triaged clj-1259-1.txt T CLJ-1277 Triaged clj-1277-1.txt T CLJ-1289 Triaged CLJ-1289-p1.patch T CLJ-1295 Triaged clj-1295-1.diff T CLJ-1373 Triaged clj-1373.diff CLJ-1402 Open CLJ-1402-v2.patch T CLJ-1458 Triaged clj-1458-4.patch CLJ-1469 Open kwinvoke.patch T CLJ-1493 Triaged fast_keyword_intern.diff T CLJ-1598 Triaged 0001-if-test-expr-of-an-if-statement-is-a-literal-don-t-e.patch T CLJ-1654 Triaged 0000-reuse-seq-in-some.patch T CLJ-1656 Triaged CLJ-1656-v5.patch T CLJ-1665 Triaged CLJ-1665-faster-take-nth-transducer-without-rem.patch CLJ-1679 Open CLJ-1679-v3.patch T CLJ-1724 Triaged clj-1724.diff T CLJ-1730 Triaged refer-perf.patch Code cleanup: CLJ-842 Open clj-842-update-clojure.pprint-metadata-v2.txt CLJ-1151 Open tiny-reducers-cleanup.diff T CLJ-1313 Triaged clj-1313-v3.patch CLJ-1314 Open clj-1314-v2.diff T CLJ-1329 Triaged clj-1329-2.patch T CLJ-1351 Triaged 0001-remove-unused-swapThunk-method-generation.patch CLJ-1482 Open 0001-Replace-a-couple-of-filter-complement-usages-with-re.patch CLJ-1521 Open improve_parse_let_expr.diff T CLJ-1567 Triaged 0001-Remove-unused-local-in-clojure.core-condp.patch ---------------------------------------------------------------------- Prescreened patches that are marked with Fix Version/s = "Release 1.8", but not screened ---------------------------------------------------------------------- Better error reporting: V CLJ-1232 Screenable 0001-auto-qualify-arglists-class-names-v3.patch Clojure language/library bug fixes: V CLJ-701 Screenable hoistedmethod-pass-5.diff V CLJ-1093 Screenable 0001-CLJ-1093-v2.patch V CLJ-1157 Screenable clj-1157-v2.diff Allow more correct-looking Clojure code to work: V CLJ-700 Screenable clj-700-rt.patch Language/library enhancement: V CLJ-1208 Screenable 0001-CLJ-1208-load-own-namespace-in-deftype-defrecord-cla-v5.patch Performance enhancement: V CLJ-1517 Screenable unrolled-collections-2.diff There are 2 separate patches, and it appears the author is suggesting both should be applied. The other is: unrolled-vector-2.patch ---------------------------------------------------------------------- Prescreened, and screened or accepted ---------------------------------------------------------------------- Clojure language/library bug fixes: S CLJ-1250 Screened clj-1250-2.patch S CLJ-1761 Screened clj-1761-with-tests.patch Performance enhancement: S CLJ-1224 Screened 0001-cache-hasheq-and-hashCode-for-records-v2.patch ---------------------------------------------------------------------- (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 Similar warnings are allowed in the output from JDK 1.8.0 and 1.9.0. ---------------------------------------------------------------------- (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 "Process in Detail" section of the Screening Tickets wiki page at http://dev.clojure.org/display/community/Screening+Tickets please use the following command to apply git format patches: % git am --keep-cr -s --ignore-whitespace < 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_65 64-bit Mac OS X 10.9.5 + Oracle/Apple JDK 1.7.0_45 64-bit Mac OS X 10.10.4 + Oracle/Apple JDK 1.8.0_11 64-bit Ubuntu 14.04.2 64-bit + OpenJDK 1.7.0_79 64-bit Ubuntu 14.04.2 64-bit + Oracle JDK 1.9.0-ea-b70 64-bit * 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. There are differences between the results for 2 tickets between the JDK versions above, due to some patches using new JDK APIs that do not exist in older JDK versions. The results shown here are for JDK 1.6: Mac OS X 10.6.8 + Oracle/Apple JDK 1.6.0_65 64-bit The only tickets with patches whose results differ between JDK versions are CLJ-1671 and CLJ-1680.