Open issues

Add tap-> that returns the value
CLJ-2538
Unpredictable behaviour with combination of type inference and autoboxing
CLJ-2522
ClassFormatError when nesting try->loop->try
CLJ-2521
calls to static interface methods are broken for primitive args
CLJ-2517
remote-prepl blocks main-thread upon in-reader's eos
CLJ-2509
clojure.reflect protocol meta regression
CLJ-2494
Integration with java.util.function interfaces
CLJ-2365
clojure.repl/doc repeats doc string in output for special forms in Clojure 1.9.0
CLJ-2295
case fails for vectors with negative numbers
CLJ-2275
#clojure/var tag for transmitting var identity
CLJ-2165
locals closed over by a ^:once fn aren't cleared if the fn is in a branch
CLJ-2145
Lighter-weight aliasing for keywords
CLJ-2123
[spec] Nesting cat inside ? causes unform to return nested result
CLJ-2003
[spec] clojure.spec/def should support an optional doc-string
CLJ-1965
empty? is broken for transient collections
CLJ-1872
Clojure-generated class names length exceed file-system limit
CLJ-1852
Avoid compile-time static initialization of classes when using inheritance
CLJ-1743
clojure.java.io/pushback-reader
CLJ-1611
Enhance multimethods metadata
CLJ-1522
Unrolled small vectors
CLJ-1517
The locking macro fails bytecode verification on Graal native-image and ART runtime
CLJ-1472
aset-* and aget perform poorly on multi-dimensional arrays even with type hints.
CLJ-1289
java method calls cannot omit varargs
CLJ-440
Add anonymous fn support to thread macros
CLJ-2553
*unchecked-math* true does not work for (long) fn
CLJ-2551
Data races in the caching implementation of hashCode and hasheq of several Clojure classes
CLJ-2550
Primitive VecSeq does not implement interface IObj
CLJ-2549
Function that retuns val when it passes a predicate
CLJ-2546
[core.specs] fn specs don't catch vectors as arity definitions
CLJ-2545
Unnecessary array clones when creating an empty transient vector
CLJ-2541
prepl does not run with a DynamicClassLoader
CLJ-2540
Differing results for meta with fns
CLJ-2539
sorted-map-by fails for namespaced keywords
CLJ-2537
Compiler.load() reports wrong exception phase
CLJ-2529
Exceptions thrown in tests outside assertions don't report *testing-contexts*
CLJ-2525
CompilerException java.lang.ClassFormatError: Duplicate field name&signature
CLJ-2518
[spec] spec creation should allow checking validity of specs
CLJ-2515
Supporting `add-method` on multi fns to install a function instead of a function tail
CLJ-2514
Macroexpanded case statement throws `java.lang.NegativeArraySizeException`
CLJ-2511
Cannot use clojure.stracktrace/print-stack-trace with GraalVM
CLJ-2502
Provide guidance on configuring error printer for handling errors
CLJ-2501
[spec] explain-data :via loses aliased keys
CLJ-2496
prepl docstring doesn't correctly doc exception :ret maps
CLJ-2495
clojure.java.shell/sh hangs calling xdg-open
CLJ-2493
Uses of deprecated Class.newInstance() method
CLJ-2492
[spec] generator in keys* spec not overridable
CLJ-2483
Document that a promise can be invoked to deliver
CLJ-2480
[core.specs] Destructuring spec is overly restrictive in namespaced :keys
CLJ-2473
transient vectors should support the stack interface (peek/pop)
CLJ-2464
Clojure-aware error stacktrace rendering
CLJ-2456
issue 1 of 736

Add tap-> that returns the value

Description

tap> returns whether the put was successful. Another variant that would often be useful is a threaded tap-> that returns the value. Open question is what to do on failure:

  • Assert tap> succeeds - if tap queue is full, you will know about it, but it will also alter the behavior of your program with an assertion error

  • Ignore tap> result - if tap queue is full, values will be silently dropped

I'm not sure which is better, I can see both, so I made patches for both and ask for screener's opinion.

Patches:

  • clj-2538-assert.patch - asserts tap> successful

  • clj-2538-drop.patch - ignores tap> result

Environment

None

Assignee

Unassigned

Reporter

Alex Miller

Labels

Approval

Vetted

Patch

Code

Fix versions

Affects versions

Priority

Critical
Configure