text:
Recursive tree traversal-based expression evaluation produces no gradients

Ported from #548. This is a simple rewrite of the tree traversal-based evaluation scheme used to evaluate expressions in DynamicExpressions.jl.
cc @vchuravy.
The following code fails to produce a gradient:
struct OperatorEnum
    binops::Vector{Function}
    unaops::Vector{Function}
end

struct Node
    degree::Int
    constant::Bool
    feature::Int
    val::Float64
    op::Int
    l::Node
    r::Node

    # Leaf node specifying X[feature, :]
    Node(feature::Int) = new(0, false, feature)
    # Leaf node specifying a constant value
    Node(val::Float64) = new(0, true, 0, val)
    # Branch node with a unary operator
    Node(op::Int, l::Node) = new(1, false, 0, 0.0, op, l)
    # Branch node with a binary operator
    Node(op::Int, l::Node, r::Node) = new(2, false, 0, 0.0, op, l, r)
end

# Recursive depth-first evaluation of tree:
function eval_expression(tree, X::Array{T,2}, operators)::Array{T,1} where T
    if tree.degree == 0
        if tree.constant
            return fill(tree.val, size(X, 2))
        else
            return X[tree.feature, :]
        end
    elseif tree.degree == 1
        l = eval_expression(tree.l, X, operators)
        return deg1_kernel(operators.unaops[tree.op], l)
    else
        l = eval_expression(tree.l, X, operators)
        r = eval_expression(tree.r, X, operators)
        return deg2_kernel(operators.binops[tree.op], l, r)
    end
end

function deg1_kernel(op::F, l::Array{T,1})::Array{T,1} where {F,T}
    op.(l)
end
function deg2_kernel(op::F, l::Array{T,1}, r::Array{T,1})::Array{T,1} where {F,T}
    op.(l, r)
end

operators = OperatorEnum([+, -, *, /], [sin, cos, exp, tanh])
# Create tree representing cos(x1 - 3.4):
tree = Node(2, Node(2, Node(1), Node(3.4)))

function f(X, y)
    out = eval_expression(tree, X, operators)
    y[1] = sum(out)
    return nothing
end

X = randn(1, 5)
bX = zero(X); bX .= 1
y = zeros(1)
by = zero(y); by .= 1

using Enzyme
Enzyme.autodiff(f, Forward, Duplicated(X, bX), Duplicated(y, by))

Here is the stderr. It was 6704 lines, so I skip lines 25-6675:
┌ Warning: Recursive type
│   T = Node
└ @ Enzyme ~/.julia/packages/GPUCompiler/Fu1YT/src/utils.jl:35
┌ Warning: Recursive type
│   T = Node
└ @ Enzyme ~/.julia/packages/GPUCompiler/Fu1YT/src/utils.jl:35
┌ Warning: TypeAnalysisDepthLimit
│   %78 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %77 unordered, align 8, !dbg !162, !dereferenceable_or_null !164, !align !165
│ {[]:Pointer, [0]:Pointer, [0,8]:Integer, [0,16]:Integer, [0,17]:Integer, [0,18]:Integer, [0,19]:Integer, [0,20]:Integer, [0,21]:Integer, [0,22]:Integer, [0,23]:Integer, [0,24]:Float@double, [0,32]:Integer, [0,33]:Integer, [0,34]:Integer, [0,35]:Integer, [0,36]:Integer, [0,37]:Integer, [0,38]:Integer, [0,39]:Integer, [0,40]:Pointer, [0,40,8]:Integer, [0,40,16]:Integer, [0,40,17]:Integer, [0,40,18]:Integer, [0,40,19]:Integer, [0,40,20]:Integer, [0,40,21]:Integer, [0,40,22]:Integer, [0,40,23]:Integer, [0,40,24]:Float@double, [0,40,32]:Integer, [0,40,33]:Integer, [0,40,34]:Integer, [0,40,35]:Integer, [0,40,36]:Integer, [0,40,37]:Integer, [0,40,38]:Integer, [0,40,39]:Integer, [0,40,40]:Pointer, [0,40,40,8]:Integer, [0,40,40,16]:Integer, [0,40,40,17]:Integer, [0,40,40,18]:Integer, [0,40,40,19]:Integer, [0,40,40,20]:Integer, [0,40,40,21]:Integer, [0,40,40,22]:Integer, [0,40,40,23]:Integer, [0,40,40,24]:Float@double, [0,40,40,32]:Integer, [0,40,40,33]:Integer, [0,40,40,34]:Integer, [0,40,40,35]:Integer, [0,40,40,36]:Integer, [0,40,40,37]:Integer, [0,40,40,38]:Integer, [0,40,40,39]:Integer, [0,40,40,40]:Pointer, [0,40,40,40,8]:Integer, [0,40,40,40,16]:Integer, [0,40,40,40,17]:Integer, [0,40,40,40,18]:Integer, [0,40,40,40,19]:Integer, [0,40,40,40,20]:Integer, [0,40,40,40,21]:Integer, [0,40,40,40,22]:Integer, [0,40,40,40,23]:Integer, [0,40,40,40,24]:Float@double, [0,40,40,40,32]:Integer, [0,40,40,40,33]:Integer, [0,40,40,40,34]:Integer, [0,40,40,40,35]:Integer, [0,40,40,40,36]:Integer, [0,40,40,40,37]:Integer, [0,40,40,40,38]:Integer, [0,40,40,40,39]:Integer, [0,40,40,40,40]:Pointer, [0,40,40,40,40,8]:Integer, [0,40,40,40,40,16]:Integer, [0,40,40,40,40,17]:Integer, [0,40,40,40,40,18]:Integer, [0,40,40,40,40,19]:Integer, [0,40,40,40,40,20]:Integer, [0,40,40,40,40,21]:Integer, [0,40,40,40,40,22]:Integer, [0,40,40,40,40,23]:Integer, [0,40,40,40,40,24]:Float@double, [0,40,40,40,40,32]:Integer, [0,40,40,40,40,33]:Integer, [0,40,40,40,40,34]:Integer, [0,40,40,40,40,35]:Integer, [0,40,40,40,40,36]:Integer, [0,40,40,40,40,37]:Integer, [0,40,40,40,40,38]:Integer, [0,40,40,40,40,39]:Integer, [0,40,40,40,40,40]:Pointer, [0,40,40,40,40,48]:Pointer, [0,40,40,40,48]:Pointer, [0,40,40,48]:Pointer, [0,40,48]:Pointer, [0,48]:Pointer}
│
│ Stacktrace:
│  [1] getproperty
│    @ ./Base.jl:38
│  [2] eval_expression
│    @ ./REPL[3]:10
│  [3] eval_expression
│    @ ./REPL[3]:0
│  [4] multiple call sites
│    @ unknown:0
└ @ Enzyme.Compiler ~/.julia/packages/GPUCompiler/Fu1YT/src/utils.jl:35
┌ Warning: TypeAnalysisDepthLimit
│   %82 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %81 unordered, align 8, !dbg !166, !dereferenceable_or_null !164, !align !165
│ {[]:Pointer, [0]:Pointer, [0,8]:Integer, [0,16]:Integer, [0,17]:Integer, [0,18]:Integer, [0,19]:Integer, [0,20]:Integer, [0,21]:Integer, [0,22]:Integer, [0,23]:Integer, [0,24]:Float@double, [0,32]:Integer, [0,33]:Integer, [0,34]:Integer, [0,35]:Integer, [0,36]:Integer, [0,37]:Integer, [0,38]:Integer, [0,39]:Integer, [0,40]:Pointer, [0,40,8]:Integer, [0,40,16]:Integer, [0,40,17]:Integer, [0,40,18]:Integer, [0,40,19]:Integer, [0,40,20]:Integer, [0,40,21]:Integer, [0,40,22]:Integer, [0,40,23]:Integer, [0,40,24]:Float@double, [0,40,32]:Integer, [0,40,33]:Integer, [0,40,34]:Integer, [0,40,35]:Integer, [0,40,36]:Integer, [0,40,37]:Integer, [0,40,38]:Integer, [0,40,39]:Integer, [0,40,40]:Pointer, [0,40,40,8]:Integer, [0,40,40,16]:Integer, [0,40,40,17]:Integer, [0,40,40,18]:Integer, [0,40,40,19]:Integer, [0,40,40,20]:Integer, [0,40,40,21]:Integer, [0,40,40,22]:Integer, [0,40,40,23]:Integer, [0,40,40,24]:Float@double, [0,40,40,32]:Integer, [0,40,40,33]:Integer, [0,40,40,34]:Integer, [0,40,40,35]:Integer, [0,40,40,36]:Integer, [0,40,40,37]:Integer, [0,40,40,38]:Integer, [0,40,40,39]:Integer, [0,40,40,40]:Pointer, [0,40,40,40,8]:Integer, [0,40,40,40,16]:Integer, [0,40,40,40,17]:Integer, [0,40,40,40,18]:Integer, [0,40,40,40,19]:Integer, [0,40,40,40,20]:Integer, [0,40,40,40,21]:Integer, [0,40,40,40,22]:Integer, [0,40,40,40,23]:Integer, [0,40,40,40,24]:Float@double, [0,40,40,40,32]:Integer, [0,40,40,40,33]:Integer, [0,40,40,40,34]:Integer, [0,40,40,40,35]:Integer, [0,40,40,40,36]:Integer, [0,40,40,40,37]:Integer, [0,40,40,40,38]:Integer, [0,40,40,40,39]:Integer, [0,40,40,40,40]:Pointer, [0,40,40,40,40,8]:Integer, [0,40,40,40,40,16]:Integer, [0,40,40,40,40,17]:Integer, [0,40,40,40,40,18]:Integer, [0,40,40,40,40,19]:Integer, [0,40,40,40,40,20]:Integer, [0,40,40,40,40,21]:Integer, [0,40,40,40,40,22]:Integer, [0,40,40,40,40,23]:Integer, [0,40,40,40,40,24]:Float@double, [0,40,40,40,40,32]:Integer, [0,40,40,40,40,33]:Integer, [0,40,40,40,40,34]:Integer, [0,40,40,40,40,35]:Integer, [0,40,40,40,40,36]:Integer, [0,40,40,40,40,37]:Integer, [0,40,40,40,40,38]:Integer, [0,40,40,40,40,39]:Integer, [0,40,40,40,40,40]:Pointer, [0,40,40,40,40,48]:Pointer, [0,40,40,40,48]:Pointer, [0,40,40,48]:Pointer, [0,40,48]:Pointer, [0,48]:Pointer}
│
│  [4] multiple call sites
│    @ unknown:0
└ @ Enzyme.Compiler ~/.julia/packages/GPUCompiler/Fu1YT/src/utils.jl:35
┌ Warning: TypeAnalysisDepthLimit
│   %102 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %101 unordered, align 8, !dbg !179, !dereferenceable_or_null !167, !align !168
│ {[]:Pointer, [0]:Pointer, [0,8]:Integer, [0,16]:Integer, [0,17]:Integer, [0,18]:Integer, [0,19]:Integer, [0,20]:Integer, [0,21]:Integer, [0,22]:Integer, [0,23]:Integer, [0,24]:Float@double, [0,32]:Integer, [0,33]:Integer, [0,34]:Integer, [0,35]:Integer, [0,36]:Integer, [0,37]:Integer, [0,38]:Integer, [0,39]:Integer, [0,40]:Pointer, [0,40,8]:Integer, [0,40,16]:Integer, [0,40,17]:Integer, [0,40,18]:Integer, [0,40,19]:Integer, [0,40,20]:Integer, [0,40,21]:Integer, [0,40,22]:Integer, [0,40,23]:Integer, [0,40,24]:Float@double, [0,40,32]:Integer, [0,40,33]:Integer, [0,40,34]:Integer, [0,40,35]:Integer, [0,40,36]:Integer, [0,40,37]:Integer, [0,40,38]:Integer, [0,40,39]:Integer, [0,40,40]:Pointer, [0,40,40,8]:Integer, [0,40,40,16]:Integer, [0,40,40,17]:Integer, [0,40,40,18]:Integer, [0,40,40,19]:Integer, [0,40,40,20]:Integer, [0,40,40,21]:Integer, [0,40,40,22]:Integer, [0,40,40,23]:Integer, [0,40,40,24]:Float@double, [0,40,40,32]:Integer, [0,40,40,33]:Integer, [0,40,40,34]:Integer, [0,40,40,35]:Integer, [0,40,40,36]:Integer, [0,40,40,37]:Integer, [0,40,40,38]:Integer, [0,40,40,39]:Integer, [0,40,40,40]:Pointer, [0,40,40,40,8]:Integer, [0,40,40,40,16]:Integer, [0,40,40,40,17]:Integer, [0,40,40,40,18]:Integer, [0,40,40,40,19]:Integer, [0,40,40,40,20]:Integer, [0,40,40,40,21]:Integer, [0,40,40,40,22]:Integer, [0,40,40,40,23]:Integer, [0,40,40,40,24]:Float@double, [0,40,40,40,32]:Integer, [0,40,40,40,33]:Integer, [0,40,40,40,34]:Integer, [0,40,40,40,35]:Integer, [0,40,40,40,36]:Integer, [0,40,40,40,37]:Integer, [0,40,40,40,38]:Integer, [0,40,40,40,39]:Integer, [0,40,40,40,40]:Pointer, [0,40,40,40,40,8]:Integer, [0,40,40,40,40,16]:Integer, [0,40,40,40,40,17]:Integer, [0,40,40,40,40,18]:Integer, [0,40,40,40,40,19]:Integer, [0,40,40,40,40,20]:Integer, [0,40,40,40,40,21]:Integer, [0,40,40,40,40,22]:Integer, [0,40,40,40,40,23]:Integer, [0,40,40,40,40,24]:Float@double, [0,40,40,40,40,32]:Integer, [0,40,40,40,40,33]:Integer, [0,40,40,40,40,34]:Integer, [0,40,40,40,40,35]:Integer, [0,40,40,40,40,36]:Integer, [0,40,40,40,40,37]:Integer, [0,40,40,40,40,38]:Integer, [0,40,40,40,40,39]:Integer, [0,40,40,40,40,40]:Pointer, [0,40,40,40,40,48]:Pointer, [0,40,40,40,48]:Pointer, [0,40,40,40,48,8]:Integer, [0,40,40,40,48,16]:Integer, [0,40,40,40,48,17]:Integer, [0,40,40,40,48,18]:Integer, [0,40,40,40,48,19]:Integer, [0,40,40,40,48,20]:Integer, [0,40,40,40,48,21]:Integer, [0,40,40,40,48,22]:Integer, [0,40,40,40,48,23]:Integer, [0,40,40,40,48,24]:Float@double, [0,40,40,40,48,32]:Integer, [0,40,40,40,48,33]:Integer, [0,40,40,40,48,34]:Integer, [0,40,40,40,48,35]:Integer, [0,40,40,40,48,36]:Integer, [0,40,40,40,48,37]:Integer, [0,40,40,40,48,38]:Integer, [0,40,40,40,48,39]:Integer, [0,40,40,40,48,40]:Pointer, [0,40,40,40,48,48]:Pointer, [0,40,40,48]:Pointer, [0,40,40,48,8]:Integer, [0,40,40,48,16]:Integer, [0,40,40,48,17]:Integer, [0,40,40,48,18]:Integer, [0,40,40,48,19]:Integer, [0,40,40,48,20]:Integer, [0,40,40,48,21]:Integer, [0,40,40,48,22]:Integer, [0,40,40,48,23]:Integer, [0,40,40,48,24]:Float@double, [0,40,40,48,32]:Integer, [0,40,40,48,33]:Integer, [0,40,40,48,34]:Integer, [0,40,40,48,35]:Integer, [0,40,40,48,36]:Integer, [0,40,40,48,37]:Integer, [0,40,40,48,38]:Integer, [0,40,40,48,39]:Integer, [0,40,40,48,40]:Pointer, [0,40,40,48,40,8]:Integer, [0,40,40,48,40,16]:Integer, [0,40,40,48,40,17]:Integer, [0,40,40,48,40,18]:Integer, [0,40,40,48,40,19]:Integer, [0,40,40,48,40,20]:Integer, [0,40,40,48,40,21]:Integer, [0,40,40,48,40,22]:Integer, [0,40,40,48,40,23]:Integer, [0,40,40,48,40,24]:Float@double, [0,40,40,48,40,32]:Integer, [0,40,40,48,40,33]:Integer, [0,40,40,48,40,34]:Integer, [0,40,40,48,40,35]:Integer, [0,40,40,48,40,36]:Integer, [0,40,40,48,40,37]:Integer, [0,40,40,48,40,38]:Integer, [0,40,40,48,40,39]:Integer, [0,40,40,48,40,40]:Pointer, [0,40,40,48,40,48]:Pointer, [0,40,40,48,48]:Pointer, [0,40,40,48,48,8]:Integer, [0,40,40,48,48,16]:Integer, [0,40,40,48,48,17]:Integer, [0,40,40,48,48,18]:Integer, [0,40,40,48,48,19]:Integer, [0,40,40,48,48,20]:Integer, [0,40,40,48,48,21]:Integer, [0,40,40,48,48,22]:Integer, [0,40,40,48,48,23]:Integer, [0,40,40,48,48,24]:Float@double, [0,40,40,48,48,32]:Integer, [0,40,40,48,48,33]:Integer, [0,40,40,48,48,34]:Integer, [0,40,40,48,48,35]:Integer, [0,40,40,48,48,36]:Integer, [0,40,40,48,48,37]:Integer, [0,40,40,48,48,38]:Integer, [0,40,40,48,48,39]:Integer, [0,40,40,48,48,40]:Pointer, [0,40,40,48,48,48]:Pointer, [0,40,48]:Pointer, [0,40,48,8]:Integer, [0,40,48,16]:Integer, [0,40,48,17]:Integer, [0,40,48,18]:Integer, [0,40,48,19]:Integer, [0,40,48,20]:Integer, [0,40,48,21]:Integer, [0,40,48,22]:Integer, [0,40,48,23]:Integer, [0,40,48,24]:Float@double, [0,40,48,32]:Integer, [0,40,48,33]:Integer, [0,40,48,34]:Integer, [0,40,48,35]:Integer, [0,40,48,36]:Integer, [0,40,48,37]:Integer, [0,40,48,38]:Integer, [0,40,48,39]:Integer, [0,40,48,40]:Pointer, [0,40,48,40,8]:Integer, [0,40,48,40,16]:Integer, [0,40,48,40,17]:Integer, [0,40,48,40,18]:Integer, [0,40,48,40,19]:Integer, [0,40,48,40,20]:Integer, [0,40,48,40,21]:Integer, [0,40,48,40,22]:Integer, [0,40,48,40,23]:Integer, [0,40,48,40,24]:Float@double, [0,40,48,40,32]:Integer, [0,40,48,40,33]:Integer, [0,40,48,40,34]:Integer, [0,40,48,40,35]:Integer, [0,40,48,40,36]:Integer, [0,40,48,40,37]:Integer, [0,40,48,40,38]:Integer, [0,40,48,40,39]:Integer, [0,40,48,40,40]:Pointer, [0,40,48,40,40,8]:Integer, [0,40,48,40,40,16]:Integer, [0,40,48,40,40,17]:Integer, [0,40,48,40,40,18]:Integer, [0,40,48,40,40,19]:Integer, [0,40,48,40,40,20]:Integer, [0,40,48,40,40,21]:Integer, [0,40,48,40,40,22]:Integer, [0,40,48,40,40,23]:Integer, [0,40,48,40,40,24]:Float@double, [0,40,48,40,40,32]:Integer, [0,40,48,40,40,33]:Integer, [0,40,48,40,40,34]:Integer, [0,40,48,40,40,35]:Integer, [0,40,48,40,40,36]:Integer, [0,40,48,40,40,37]:Integer, [0,40,48,40,40,38]:Integer, [0,40,48,40,40,39]:Integer, [0,40,48,40,40,40]:Pointer, [0,40,48,40,40,48]:Pointer, [0,40,48,40,48]:Pointer, [0,40,48,40,48,8]:Integer, [0,40,48,40,48,16]:Integer, [0,40,48,40,48,17]:Integer, [0,40,48,40,48,18]:Integer, [0,40,48,40,48,19]:Integer, [0,40,48,40,48,20]:Integer, [0,40,48,40,48,21]:Integer, [0,40,48,40,48,22]:Integer, [0,40,48,40,48,23]:Integer, [0,40,48,40,48,24]:Float@double, [0,40,48,40,48,32]:Integer, [0,40,48,40,48,33]:Integer, [0,40,48,40,48,34]:Integer, [0,40,48,40,48,35]:Integer, [0,40,48,40,48,36]:Integer, [0,40,48,40,48,37]:Integer, [0,40,48,40,48,38]:Integer, [0,40,48,40,48,39]:Integer, [0,40,48,40,48,40]:Pointer, [0,40,48,40,48,48]:Pointer, [0,40,48,48]:Pointer, [0,40,48,48,8]:Integer, [0,40,48,48,16]:Integer, [0,40,48,48,17]:Integer, [0,40,48,48,18]:Integer, [0,40,48,48,19]:Integer, [0,40,48,48,20]:Integer, [0,40,48,48,21]:Integer, [0,40,48,48,22]:Integer, [0,40,48,48,23]:Integer, [0,40,48,48,24]:Float@double, [0,40,48,48,32]:Integer, [0,40,48,48,33]:Integer, [0,40,48,48,34]:Integer, [0,40,48,48,35]:Integer, [0,40,48,48,36]:Integer, [0,40,48,48,37]:Integer, [0,40,48,48,38]:Integer, [0,40,48,48,39]:Integer, [0,40,48,48,40]:Pointer, [0,40,48,48,40,8]:Integer, [0,40,48,48,40,16]:Integer, [0,40,48,48,40,17]:Integer, [0,40,48,48,40,18]:Integer, [0,40,48,48,40,19]:Integer, [0,40,48,48,40,20]:Integer, [0,40,48,48,40,21]:Integer, [0,40,48,48,40,22]:Integer, [0,40,48,48,40,23]:Integer, [0,40,48,48,40,24]:Float@double, [0,40,48,48,40,32]:Integer, [0,40,48,48,40,33]:Integer, [0,40,48,48,40,34]:Integer, [0,40,48,48,40,35]:Integer, [0,40,48,48,40,36]:Integer, [0,40,48,48,40,37]:Integer, [0,40,48,48,40,38]:Integer, [0,40,48,48,40,39]:Integer, [0,40,48,48,40,40]:Pointer, [0,40,48,48,40,48]:Pointer, [0,40,48,48,48]:Pointer, [0,40,48,48,48,8]:Integer, [0,40,48,48,48,16]:Integer, [0,40,48,48,48,17]:Integer, [0,40,48,48,48,18]:Integer, [0,40,48,48,48,19]:Integer, [0,40,48,48,48,20]:Integer, [0,40,48,48,48,21]:Integer, [0,40,48,48,48,22]:Integer, [0,40,48,48,48,23]:Integer, [0,40,48,48,48,24]:Float@double, [0,40,48,48,48,32]:Integer, [0,40,48,48,48,33]:Integer, [0,40,48,48,48,34]:Integer, [0,40,48,48,48,35]:Integer, [0,40,48,48,48,36]:Integer, [0,40,48,48,48,37]:Integer, [0,40,48,48,48,38]:Integer, [0,40,48,48,48,39]:Integer, [0,40,48,48,48,40]:Pointer, [0,40,48,48,48,48]:Pointer, [0,48]:Pointer, [0,48,8]:Integer, [0,48,16]:Integer, [0,48,17]:Integer, [0,48,18]:Integer, [0,48,19]:Integer, [0,48,20]:Integer, [0,48,21]:Integer, [0,48,22]:Integer, [0,48,23]:Integer, [0,48,24]:Float@double, [0,48,32]:Integer, [0,48,33]:Integer, [0,48,34]:Integer, [0,48,35]:Integer, [0,48,36]:Integer, [0,48,37]:Integer, [0,48,38]:Integer, [0,48,39]:Integer, [0,48,40]:Pointer, [0,48,40,8]:Integer, [0,48,40,16]:Integer, [0,48,40,17]:Integer, [0,48,40,18]:Integer, [0,48,40,19]:Integer, [0,48,40,20]:Integer, [0,48,40,21]:Integer, [0,48,40,22]:Integer, [0,48,40,23]:Integer, [0,48,40,24]:Float@double, [0,48,40,32]:Integer, [0,48,40,33]:Integer, [0,48,40,34]:Integer, [0,48,40,35]:Integer, [0,48,40,36]:Integer, [0,48,40,37]:Integer, [0,48,40,38]:Integer, [0,48,40,39]:Integer, [0,48,40,40]:Pointer, [0,48,40,40,8]:Integer, [0,48,40,40,16]:Integer, [0,48,40,40,17]:Integer, [0,48,40,40,18]:Integer, [0,48,40,40,19]:Integer, [0,48,40,40,20]:Integer, [0,48,40,40,21]:Integer, [0,48,40,40,22]:Integer, [0,48,40,40,23]:Integer, [0,48,40,40,24]:Float@double, [0,48,40,40,32]:Integer, [0,48,40,40,33]:Integer, [0,48,40,40,34]:Integer, [0,48,40,40,35]:Integer, [0,48,40,40,36]:Integer, [0,48,40,40,37]:Integer, [0,48,40,40,38]:Integer, [0,48,40,40,39]:Integer, [0,48,40,40,40]:Pointer, [0,48,40,40,40,8]:Integer, [0,48,40,40,40,16]:Integer, [0,48,40,40,40,17]:Integer, [0,48,40,40,40,18]:Integer, [0,48,40,40,40,19]:Integer, [0,48,40,40,40,20]:Integer, [0,48,40,40,40,21]:Integer, [0,48,40,40,40,22]:Integer, [0,48,40,40,40,23]:Integer, [0,48,40,40,40,24]:Float@double, [0,48,40,40,40,32]:Integer, [0,48,40,40,40,33]:Integer, [0,48,40,40,40,34]:Integer, [0,48,40,40,40,35]:Integer, [0,48,40,40,40,36]:Integer, [0,48,40,40,40,37]:Integer, [0,48,40,40,40,38]:Integer, [0,48,40,40,40,39]:Integer, [0,48,40,40,40,40]:Pointer, [0,48,40,40,40,48]:Pointer, [0,48,40,40,48]:Pointer, [0,48,40,40,48,8]:Integer, [0,48,40,40,48,16]:Integer, [0,48,40,40,48,17]:Integer, [0,48,40,40,48,18]:Integer, [0,48,40,40,48,19]:Integer, [0,48,40,40,48,20]:Integer, [0,48,40,40,48,21]:Integer, [0,48,40,40,48,22]:Integer, [0,48,40,40,48,23]:Integer, [0,48,40,40,48,24]:Float@double, [0,48,40,40,48,32]:Integer, [0,48,40,40,48,33]:Integer, [0,48,40,40,48,34]:Integer, [0,48,40,40,48,35]:Integer, [0,48,40,40,48,36]:Integer, [0,48,40,40,48,37]:Integer, [0,48,40,40,48,38]:Integer, [0,48,40,40,48,39]:Integer, [0,48,40,40,48,40]:Pointer, [0,48,40,40,48,48]:Pointer, [0,48,40,48]:Pointer, [0,48,40,48,8]:Integer, [0,48,40,48,16]:Integer, [0,48,40,48,17]:Integer, [0,48,40,48,18]:Integer, [0,48,40,48,19]:Integer, [0,48,40,48,20]:Integer, [0,48,40,48,21]:Integer, [0,48,40,48,22]:Integer, [0,48,40,48,23]:Integer, [0,48,40,48,24]:Float@double, [0,48,40,48,32]:Integer, [0,48,40,48,33]:Integer, [0,48,40,48,34]:Integer, [0,48,40,48,35]:Integer, [0,48,40,48,36]:Integer, [0,48,40,48,37]:Integer, [0,48,40,48,38]:Integer, [0,48,40,48,39]:Integer, [0,48,40,48,40]:Pointer, [0,48,40,48,40,8]:Integer, [0,48,40,48,40,16]:Integer, [0,48,40,48,40,17]:Integer, [0,48,40,48,40,18]:Integer, [0,48,40,48,40,19]:Integer, [0,48,40,48,40,20]:Integer, [0,48,40,48,40,21]:Integer, [0,48,40,48,40,22]:Integer, [0,48,40,48,40,23]:Integer, [0,48,40,48,40,24]:Float@double, [0,48,40,48,40,32]:Integer, [0,48,40,48,40,33]:Integer, [0,48,40,48,40,34]:Integer, [0,48,40,48,40,35]:Integer, [0,48,40,48,40,36]:Integer, [0,48,40,48,40,37]:Integer, [0,48,40,48,40,38]:Integer, [0,48,40,48,40,39]:Integer, [0,48,40,48,40,40]:Pointer, [0,48,40,48,40,48]:Pointer, [0,48,40,48,48]:Pointer, [0,48,40,48,48,8]:Integer, [0,48,40,48,48,16]:Integer, [0,48,40,48,48,17]:Integer, [0,48,40,48,48,18]:Integer, [0,48,40,48,48,19]:Integer, [0,48,40,48,48,20]:Integer, [0,48,40,48,48,21]:Integer, [0,48,40,48,48,22]:Integer, [0,48,40,48,48,23]:Integer, [0,48,40,48,48,24]:Float@double, [0,48,40,48,48,32]:Integer, [0,48,40,48,48,33]:Integer, [0,48,40,48,48,34]:Integer, [0,48,40,48,48,35]:Integer, [0,48,40,48,48,36]:Integer, [0,48,40,48,48,37]:Integer, [0,48,40,48,48,38]:Integer, [0,48,40,48,48,39]:Integer, [0,48,40,48,48,40]:Pointer, [0,48,40,48,48,48]:Pointer, [0,48,48]:Pointer, [0,48,48,8]:Integer, [0,48,48,16]:Integer, [0,48,48,17]:Integer, [0,48,48,18]:Integer, [0,48,48,19]:Integer, [0,48,48,20]:Integer, [0,48,48,21]:Integer, [0,48,48,22]:Integer, [0,48,48,23]:Integer, [0,48,48,24]:Float@double, [0,48,48,32]:Integer, [0,48,48,33]:Integer, [0,48,48,34]:Integer, [0,48,48,35]:Integer, [0,48,48,36]:Integer, [0,48,48,37]:Integer, [0,48,48,38]:Integer, [0,48,48,39]:Integer, [0,48,48,40]:Pointer, [0,48,48,40,8]:Integer, [0,48,48,40,16]:Integer, [0,48,48,40,17]:Integer, [0,48,48,40,18]:Integer, [0,48,48,40,19]:Integer, [0,48,48,40,20]:Integer, [0,48,48,40,21]:Integer, [0,48,48,40,22]:Integer, [0,48,48,40,23]:Integer, [0,48,48,40,24]:Float@double, [0,48,48,40,32]:Integer, [0,48,48,40,33]:Integer, [0,48,48,40,34]:Integer, [0,48,48,40,35]:Integer, [0,48,48,40,36]:Integer, [0,48,48,40,37]:Integer, [0,48,48,40,38]:Integer, [0,48,48,40,39]:Integer, [0,48,48,40,40]:Pointer, [0,48,48,40,40,8]:Integer, [0,48,48,40,40,16]:Integer, [0,48,48,40,40,17]:Integer, [0,48,48,40,40,18]:Integer, [0,48,48,40,40,19]:Integer, [0,48,48,40,40,20]:Integer, [0,48,48,40,40,21]:Integer, [0,48,48,40,40,22]:Integer, [0,48,48,40,40,23]:Integer, [0,48,48,40,40,24]:Float@double, [0,48,48,40,40,32]:Integer, [0,48,48,40,40,33]:Integer, [0,48,48,40,40,34]:Integer, [0,48,48,40,40,35]:Integer, [0,48,48,40,40,36]:Integer, [0,48,48,40,40,37]:Integer, [0,48,48,40,40,38]:Integer, [0,48,48,40,40,39]:Integer, [0,48,48,40,40,40]:Pointer, [0,48,48,40,40,48]:Pointer, [0,48,48,40,48]:Pointer, [0,48,48,48]:Pointer, [0,48,48,48,8]:Integer, [0,48,48,48,16]:Integer, [0,48,48,48,17]:Integer, [0,48,48,48,18]:Integer, [0,48,48,48,19]:Integer, [0,48,48,48,20]:Integer, [0,48,48,48,21]:Integer, [0,48,48,48,22]:Integer, [0,48,48,48,23]:Integer, [0,48,48,48,24]:Float@double, [0,48,48,48,32]:Integer, [0,48,48,48,33]:Integer, [0,48,48,48,34]:Integer, [0,48,48,48,35]:Integer, [0,48,48,48,36]:Integer, [0,48,48,48,37]:Integer, [0,48,48,48,38]:Integer, [0,48,48,48,39]:Integer, [0,48,48,48,40]:Pointer, [0,48,48,48,40,8]:Integer, [0,48,48,48,40,16]:Integer, [0,48,48,48,40,17]:Integer, [0,48,48,48,40,18]:Integer, [0,48,48,48,40,19]:Integer, [0,48,48,48,40,20]:Integer, [0,48,48,48,40,21]:Integer, [0,48,48,48,40,22]:Integer, [0,48,48,48,40,23]:Integer, [0,48,48,48,40,24]:Float@double, [0,48,48,48,40,32]:Integer, [0,48,48,48,40,33]:Integer, [0,48,48,48,40,34]:Integer, [0,48,48,48,40,35]:Integer, [0,48,48,48,40,36]:Integer, [0,48,48,48,40,37]:Integer, [0,48,48,48,40,38]:Integer, [0,48,48,48,40,39]:Integer, [0,48,48,48,40,40]:Pointer, [0,48,48,48,40,48]:Pointer, [0,48,48,48,48]:Pointer}
│
│ Stacktrace:
│  [1] getproperty
│    @ ./Base.jl:38
│  [2] eval_expression
│    @ ./REPL[3]:14
│  [3] eval_expression
│    @ ./REPL[3]:0
│  [4] multiple call sites
│    @ unknown:0
└ @ Enzyme.Compiler ~/.julia/packages/GPUCompiler/Fu1YT/src/utils.jl:35
┌ Warning: TypeAnalysisDepthLimit
│   %102 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %101 unordered, align 8, !dbg !179, !dereferenceable_or_null !167, !align !168
│ {[]:Pointer, [0]:Pointer, [0,8]:Integer, [0,16]:Integer, [0,17]:Integer, [0,18]:Integer, [0,19]:Integer, [0,20]:Integer, [0,21]:Integer, [0,22]:Integer, [0,23]:Integer, [0,24]:Float@double, [0,32]:Integer, [0,33]:Integer, [0,34]:Integer, [0,35]:Integer, [0,36]:Integer, [0,37]:Integer, [0,38]:Integer, [0,39]:Integer, [0,40]:Pointer, [0,40,8]:Integer, [0,40,16]:Integer, [0,40,17]:Integer, [0,40,18]:Integer, [0,40,19]:Integer, [0,40,20]:Integer, [0,40,21]:Integer, [0,40,22]:Integer, [0,40,23]:Integer, [0,40,24]:Float@double, [0,40,32]:Integer, [0,40,33]:Integer, [0,40,34]:Integer, [0,40,35]:Integer, [0,40,36]:Integer, [0,40,37]:Integer, [0,40,38]:Integer, [0,40,39]:Integer, [0,40,40]:Pointer, [0,40,40,8]:Integer, [0,40,40,16]:Integer, [0,40,40,17]:Integer, [0,40,40,18]:Integer, [0,40,40,19]:Integer, [0,40,40,20]:Integer, [0,40,40,21]:Integer, [0,40,40,22]:Integer, [0,40,40,23]:Integer, [0,40,40,24]:Float@double, [0,40,40,32]:Integer, [0,40,40,33]:Integer, [0,40,40,34]:Integer, [0,40,40,35]:Integer, [0,40,40,36]:Integer, [0,40,40,37]:Integer, [0,40,40,38]:Integer, [0,40,40,39]:Integer, [0,40,40,40]:Pointer, [0,40,40,40,8]:Integer, [0,40,40,40,16]:Integer, [0,40,40,40,17]:Integer, [0,40,40,40,18]:Integer, [0,40,40,40,19]:Integer, [0,40,40,40,20]:Integer, [0,40,40,40,21]:Integer, [0,40,40,40,22]:Integer, [0,40,40,40,23]:Integer, [0,40,40,40,24]:Float@double, [0,40,40,40,32]:Integer, [0,40,40,40,33]:Integer, [0,40,40,40,34]:Integer, [0,40,40,40,35]:Integer, [0,40,40,40,36]:Integer, [0,40,40,40,37]:Integer, [0,40,40,40,38]:Integer, [0,40,40,40,39]:Integer, [0,40,40,40,40]:Pointer, [0,40,40,40,40,8]:Integer, [0,40,40,40,40,16]:Integer, [0,40,40,40,40,17]:Integer, [0,40,40,40,40,18]:Integer, [0,40,40,40,40,19]:Integer, [0,40,40,40,40,20]:Integer, [0,40,40,40,40,21]:Integer, [0,40,40,40,40,22]:Integer, [0,40,40,40,40,23]:Integer, [0,40,40,40,40,24]:Float@double, [0,40,40,40,40,32]:Integer, [0,40,40,40,40,33]:Integer, [0,40,40,40,40,34]:Integer, [0,40,40,40,40,35]:Integer, [0,40,40,40,40,36]:Integer, [0,40,40,40,40,37]:Integer, [0,40,40,40,40,38]:Integer, [0,40,40,40,40,39]:Integer, [0,40,40,40,40,40]:Pointer, [0,40,40,40,40,48]:Pointer, [0,40,40,40,48]:Pointer, [0,40,40,40,48,8]:Integer, [0,40,40,40,48,16]:Integer, [0,40,40,40,48,17]:Integer, [0,40,40,40,48,18]:Integer, [0,40,40,40,48,19]:Integer, [0,40,40,40,48,20]:Integer, [0,40,40,40,48,21]:Integer, [0,40,40,40,48,22]:Integer, [0,40,40,40,48,23]:Integer, [0,40,40,40,48,24]:Float@double, [0,40,40,40,48,32]:Integer, [0,40,40,40,48,33]:Integer, [0,40,40,40,48,34]:Integer, [0,40,40,40,48,35]:Integer, [0,40,40,40,48,36]:Integer, [0,40,40,40,48,37]:Integer, [0,40,40,40,48,38]:Integer, [0,40,40,40,48,39]:Integer, [0,40,40,40,48,40]:Pointer, [0,40,40,40,48,48]:Pointer, [0,40,40,48]:Pointer, [0,40,40,48,8]:Integer, [0,40,40,48,16]:Integer, [0,40,40,48,17]:Integer, [0,40,40,48,18]:Integer, [0,40,40,48,19]:Integer, [0,40,40,48,20]:Integer, [0,40,40,48,21]:Integer, [0,40,40,48,22]:Integer, [0,40,40,48,23]:Integer, [0,40,40,48,24]:Float@double, [0,40,40,48,32]:Integer, [0,40,40,48,33]:Integer, [0,40,40,48,34]:Integer, [0,40,40,48,35]:Integer, [0,40,40,48,36]:Integer, [0,40,40,48,37]:Integer, [0,40,40,48,38]:Integer, [0,40,40,48,39]:Integer, [0,40,40,48,40]:Pointer, [0,40,40,48,40,8]:Integer, [0,40,40,48,40,16]:Integer, [0,40,40,48,40,17]:Integer, [0,40,40,48,40,18]:Integer, [0,40,40,48,40,19]:Integer, [0,40,40,48,40,20]:Integer, [0,40,40,48,40,21]:Integer, [0,40,40,48,40,22]:Integer, [0,40,40,48,40,23]:Integer, [0,40,40,48,40,24]:Float@double, [0,40,40,48,40,32]:Integer, [0,40,40,48,40,33]:Integer, [0,40,40,48,40,34]:Integer, [0,40,40,48,40,35]:Integer, [0,40,40,48,40,36]:Integer, [0,40,40,48,40,37]:Integer, [0,40,40,48,40,38]:Integer, [0,40,40,48,40,39]:Integer, [0,40,40,48,40,40]:Pointer, [0,40,40,48,40,48]:Pointer, [0,40,40,48,48]:Pointer, [0,40,40,48,48,8]:Integer, [0,40,40,48,48,16]:Integer, [0,40,40,48,48,17]:Integer, [0,40,40,48,48,18]:Integer, [0,40,40,48,48,19]:Integer, [0,40,40,48,48,20]:Integer, [0,40,40,48,48,21]:Integer, [0,40,40,48,48,22]:Integer, [0,40,40,48,48,23]:Integer, [0,40,40,48,48,24]:Float@double, [0,40,40,48,48,32]:Integer, [0,40,40,48,48,33]:Integer, [0,40,40,48,48,34]:Integer, [0,40,40,48,48,35]:Integer, [0,40,40,48,48,36]:Integer, [0,40,40,48,48,37]:Integer, [0,40,40,48,48,38]:Integer, [0,40,40,48,48,39]:Integer, [0,40,40,48,48,40]:Pointer, [0,40,40,48,48,48]:Pointer, [0,40,48]:Pointer, [0,40,48,8]:Integer, [0,40,48,16]:Integer, [0,40,48,17]:Integer, [0,40,48,18]:Integer, [0,40,48,19]:Integer, [0,40,48,20]:Integer, [0,40,48,21]:Integer, [0,40,48,22]:Integer, [0,40,48,23]:Integer, [0,40,48,24]:Float@double, [0,40,48,32]:Integer, [0,40,48,33]:Integer, [0,40,48,34]:Integer, [0,40,48,35]:Integer, [0,40,48,36]:Integer, [0,40,48,37]:Integer, [0,40,48,38]:Integer, [0,40,48,39]:Integer, [0,40,48,40]:Pointer, [0,40,48,40,8]:Integer, [0,40,48,40,16]:Integer, [0,40,48,40,17]:Integer, [0,40,48,40,18]:Integer, [0,40,48,40,19]:Integer, [0,40,48,40,20]:Integer, [0,40,48,40,21]:Integer, [0,40,48,40,22]:Integer, [0,40,48,40,23]:Integer, [0,40,48,40,24]:Float@double, [0,40,48,40,32]:Integer, [0,40,48,40,33]:Integer, [0,40,48,40,34]:Integer, [0,40,48,40,35]:Integer, [0,40,48,40,36]:Integer, [0,40,48,40,37]:Integer, [0,40,48,40,38]:Integer, [0,40,48,40,39]:Integer, [0,40,48,40,40]:Pointer, [0,40,48,40,40,8]:Integer, [0,40,48,40,40,16]:Integer, [0,40,48,40,40,17]:Integer, [0,40,48,40,40,18]:Integer, [0,40,48,40,40,19]:Integer, [0,40,48,40,40,20]:Integer, [0,40,48,40,40,21]:Integer, [0,40,48,40,40,22]:Integer, [0,40,48,40,40,23]:Integer, [0,40,48,40,40,24]:Float@double, [0,40,48,40,40,32]:Integer, [0,40,48,40,40,33]:Integer, [0,40,48,40,40,34]:Integer, [0,40,48,40,40,35]:Integer, [0,40,48,40,40,36]:Integer, [0,40,48,40,40,37]:Integer, [0,40,48,40,40,38]:Integer, [0,40,48,40,40,39]:Integer, [0,40,48,40,40,40]:Pointer, [0,40,48,40,40,48]:Pointer, [0,40,48,40,48]:Pointer, [0,40,48,40,48,8]:Integer, [0,40,48,40,48,16]:Integer, [0,40,48,40,48,17]:Integer, [0,40,48,40,48,18]:Integer, [0,40,48,40,48,19]:Integer, [0,40,48,40,48,20]:Integer, [0,40,48,40,48,21]:Integer, [0,40,48,40,48,22]:Integer, [0,40,48,40,48,23]:Integer, [0,40,48,40,48,24]:Float@double, [0,40,48,40,48,32]:Integer, [0,40,48,40,48,33]:Integer, [0,40,48,40,48,34]:Integer, [0,40,48,40,48,35]:Integer, [0,40,48,40,48,36]:Integer, [0,40,48,40,48,37]:Integer, [0,40,48,40,48,38]:Integer, [0,40,48,40,48,39]:Integer, [0,40,48,40,48,40]:Pointer, [0,40,48,40,48,48]:Pointer, [0,40,48,48]:Pointer, [0,40,48,48,8]:Integer, [0,40,48,48,16]:Integer, [0,40,48,48,17]:Integer, [0,40,48,48,18]:Integer, [0,40,48,48,19]:Integer, [0,40,48,48,20]:Integer, [0,40,48,48,21]:Integer, [0,40,48,48,22]:Integer, [0,40,48,48,23]:Integer, [0,40,48,48,24]:Float@double, [0,40,48,48,32]:Integer, [0,40,48,48,33]:Integer, [0,40,48,48,34]:Integer, [0,40,48,48,35]:Integer, [0,40,48,48,36]:Integer, [0,40,48,48,37]:Integer, [0,40,48,48,38]:Integer, [0,40,48,48,39]:Integer, [0,40,48,48,40]:Pointer, [0,40,48,48,40,8]:Integer, [0,40,48,48,40,16]:Integer, [0,40,48,48,40,17]:Integer, [0,40,48,48,40,18]:Integer, [0,40,48,48,40,19]:Integer, [0,40,48,48,40,20]:Integer, [0,40,48,48,40,21]:Integer, [0,40,48,48,40,22]:Integer, [0,40,48,48,40,23]:Integer, [0,40,48,48,40,24]:Float@double, [0,40,48,48,40,32]:Integer, [0,40,48,48,40,33]:Integer, [0,40,48,48,40,34]:Integer, [0,40,48,48,40,35]:Integer, [0,40,48,48,40,36]:Integer, [0,40,48,48,40,37]:Integer, [0,40,48,48,40,38]:Integer, [0,40,48,48,40,39]:Integer, [0,40,48,48,40,40]:Pointer, [0,40,48,48,40,48]:Pointer, [0,40,48,48,48]:Pointer, [0,48]:Pointer, [0,48,8]:Integer, [0,48,16]:Integer, [0,48,17]:Integer, [0,48,18]:Integer, [0,48,19]:Integer, [0,48,20]:Integer, [0,48,21]:Integer, [0,48,22]:Integer, [0,48,23]:Integer, [0,48,24]:Float@double, [0,48,32]:Integer, [0,48,33]:Integer, [0,48,34]:Integer, [0,48,35]:Integer, [0,48,36]:Integer, [0,48,37]:Integer, [0,48,38]:Integer, [0,48,39]:Integer, [0,48,40]:Pointer, [0,48,40,8]:Integer, [0,48,40,16]:Integer, [0,48,40,17]:Integer, [0,48,40,18]:Integer, [0,48,40,19]:Integer, [0,48,40,20]:Integer, [0,48,40,21]:Integer, [0,48,40,22]:Integer, [0,48,40,23]:Integer, [0,48,40,24]:Float@double, [0,48,40,32]:Integer, [0,48,40,33]:Integer, [0,48,40,34]:Integer, [0,48,40,35]:Integer, [0,48,40,36]:Integer, [0,48,40,37]:Integer, [0,48,40,38]:Integer, [0,48,40,39]:Integer, [0,48,40,40]:Pointer, [0,48,40,40,8]:Integer, [0,48,40,40,16]:Integer, [0,48,40,40,17]:Integer, [0,48,40,40,18]:Integer, [0,48,40,40,19]:Integer, [0,48,40,40,20]:Integer, [0,48,40,40,21]:Integer, [0,48,40,40,22]:Integer, [0,48,40,40,23]:Integer, [0,48,40,40,24]:Float@double, [0,48,40,40,32]:Integer, [0,48,40,40,33]:Integer, [0,48,40,40,34]:Integer, [0,48,40,40,35]:Integer, [0,48,40,40,36]:Integer, [0,48,40,40,37]:Integer, [0,48,40,40,38]:Integer, [0,48,40,40,39]:Integer, [0,48,40,40,40]:Pointer, [0,48,40,40,40,8]:Integer, [0,48,40,40,40,16]:Integer, [0,48,40,40,40,17]:Integer, [0,48,40,40,40,18]:Integer, [0,48,40,40,40,19]:Integer, [0,48,40,40,40,20]:Integer, [0,48,40,40,40,21]:Integer, [0,48,40,40,40,22]:Integer, [0,48,40,40,40,23]:Integer, [0,48,40,40,40,24]:Float@double, [0,48,40,40,40,32]:Integer, [0,48,40,40,40,33]:Integer, [0,48,40,40,40,34]:Integer, [0,48,40,40,40,35]:Integer, [0,48,40,40,40,36]:Integer, [0,48,40,40,40,37]:Integer, [0,48,40,40,40,38]:Integer, [0,48,40,40,40,39]:Integer, [0,48,40,40,40,40]:Pointer, [0,48,40,40,40,48]:Pointer, [0,48,40,40,48]:Pointer, [0,48,40,40,48,8]:Integer, [0,48,40,40,48,16]:Integer, [0,48,40,40,48,17]:Integer, [0,48,40,40,48,18]:Integer, [0,48,40,40,48,19]:Integer, [0,48,40,40,48,20]:Integer, [0,48,40,40,48,21]:Integer, [0,48,40,40,48,22]:Integer, [0,48,40,40,48,23]:Integer, [0,48,40,40,48,24]:Float@double, [0,48,40,40,48,32]:Integer, [0,48,40,40,48,33]:Integer, [0,48,40,40,48,34]:Integer, [0,48,40,40,48,35]:Integer, [0,48,40,40,48,36]:Integer, [0,48,40,40,48,37]:Integer, [0,48,40,40,48,38]:Integer, [0,48,40,40,48,39]:Integer, [0,48,40,40,48,40]:Pointer, [0,48,40,40,48,48]:Pointer, [0,48,40,48]:Pointer, [0,48,40,48,8]:Integer, [0,48,40,48,16]:Integer, [0,48,40,48,17]:Integer, [0,48,40,48,18]:Integer, [0,48,40,48,19]:Integer, [0,48,40,48,20]:Integer, [0,48,40,48,21]:Integer, [0,48,40,48,22]:Integer, [0,48,40,48,23]:Integer, [0,48,40,48,24]:Float@double, [0,48,40,48,32]:Integer, [0,48,40,48,33]:Integer, [0,48,40,48,34]:Integer, [0,48,40,48,35]:Integer, [0,48,40,48,36]:Integer, [0,48,40,48,37]:Integer, [0,48,40,48,38]:Integer, [0,48,40,48,39]:Integer, [0,48,40,48,40]:Pointer, [0,48,40,48,40,8]:Integer, [0,48,40,48,40,16]:Integer, [0,48,40,48,40,17]:Integer, [0,48,40,48,40,18]:Integer, [0,48,40,48,40,19]:Integer, [0,48,40,48,40,20]:Integer, [0,48,40,48,40,21]:Integer, [0,48,40,48,40,22]:Integer, [0,48,40,48,40,23]:Integer, [0,48,40,48,40,24]:Float@double, [0,48,40,48,40,32]:Integer, [0,48,40,48,40,33]:Integer, [0,48,40,48,40,34]:Integer, [0,48,40,48,40,35]:Integer, [0,48,40,48,40,36]:Integer, [0,48,40,48,40,37]:Integer, [0,48,40,48,40,38]:Integer, [0,48,40,48,40,39]:Integer, [0,48,40,48,40,40]:Pointer, [0,48,40,48,40,48]:Pointer, [0,48,40,48,48]:Pointer, [0,48,40,48,48,8]:Integer, [0,48,40,48,48,16]:Integer, [0,48,40,48,48,17]:Integer, [0,48,40,48,48,18]:Integer, [0,48,40,48,48,19]:Integer, [0,48,40,48,48,20]:Integer, [0,48,40,48,48,21]:Integer, [0,48,40,48,48,22]:Integer, [0,48,40,48,48,23]:Integer, [0,48,40,48,48,24]:Float@double, [0,48,40,48,48,32]:Integer, [0,48,40,48,48,33]:Integer, [0,48,40,48,48,34]:Integer, [0,48,40,48,48,35]:Integer, [0,48,40,48,48,36]:Integer, [0,48,40,48,48,37]:Integer, [0,48,40,48,48,38]:Integer, [0,48,40,48,48,39]:Integer, [0,48,40,48,48,40]:Pointer, [0,48,40,48,48,48]:Pointer, [0,48,48]:Pointer, [0,48,48,8]:Integer, [0,48,48,16]:Integer, [0,48,48,17]:Integer, [0,48,48,18]:Integer, [0,48,48,19]:Integer, [0,48,48,20]:Integer, [0,48,48,21]:Integer, [0,48,48,22]:Integer, [0,48,48,23]:Integer, [0,48,48,24]:Float@double, [0,48,48,32]:Integer, [0,48,48,33]:Integer, [0,48,48,34]:Integer, [0,48,48,35]:Integer, [0,48,48,36]:Integer, [0,48,48,37]:Integer, [0,48,48,38]:Integer, [0,48,48,39]:Integer, [0,48,48,40]:Pointer, [0,48,48,40,8]:Integer, [0,48,48,40,16]:Integer, [0,48,48,40,17]:Integer, [0,48,48,40,18]:Integer, [0,48,48,40,19]:Integer, [0,48,48,40,20]:Integer, [0,48,48,40,21]:Integer, [0,48,48,40,22]:Integer, [0,48,48,40,23]:Integer, [0,48,48,40,24]:Float@double, [0,48,48,40,32]:Integer, [0,48,48,40,33]:Integer, [0,48,48,40,34]:Integer, [0,48,48,40,35]:Integer, [0,48,48,40,36]:Integer, [0,48,48,40,37]:Integer, [0,48,48,40,38]:Integer, [0,48,48,40,39]:Integer, [0,48,48,40,40]:Pointer, [0,48,48,40,40,8]:Integer, [0,48,48,40,40,16]:Integer, [0,48,48,40,40,17]:Integer, [0,48,48,40,40,18]:Integer, [0,48,48,40,40,19]:Integer, [0,48,48,40,40,20]:Integer, [0,48,48,40,40,21]:Integer, [0,48,48,40,40,22]:Integer, [0,48,48,40,40,23]:Integer, [0,48,48,40,40,24]:Float@double, [0,48,48,40,40,32]:Integer, [0,48,48,40,40,33]:Integer, [0,48,48,40,40,34]:Integer, [0,48,48,40,40,35]:Integer, [0,48,48,40,40,36]:Integer, [0,48,48,40,40,37]:Integer, [0,48,48,40,40,38]:Integer, [0,48,48,40,40,39]:Integer, [0,48,48,40,40,40]:Pointer, [0,48,48,40,40,48]:Pointer, [0,48,48,40,48]:Pointer, [0,48,48,40,48,8]:Integer, [0,48,48,40,48,16]:Integer, [0,48,48,40,48,17]:Integer, [0,48,48,40,48,18]:Integer, [0,48,48,40,48,19]:Integer, [0,48,48,40,48,20]:Integer, [0,48,48,40,48,21]:Integer, [0,48,48,40,48,22]:Integer, [0,48,48,40,48,23]:Integer, [0,48,48,40,48,24]:Float@double, [0,48,48,40,48,32]:Integer, [0,48,48,40,48,33]:Integer, [0,48,48,40,48,34]:Integer, [0,48,48,40,48,35]:Integer, [0,48,48,40,48,36]:Integer, [0,48,48,40,48,37]:Integer, [0,48,48,40,48,38]:Integer, [0,48,48,40,48,39]:Integer, [0,48,48,40,48,40]:Pointer, [0,48,48,40,48,48]:Pointer, [0,48,48,48]:Pointer, [0,48,48,48,8]:Integer, [0,48,48,48,16]:Integer, [0,48,48,48,17]:Integer, [0,48,48,48,18]:Integer, [0,48,48,48,19]:Integer, [0,48,48,48,20]:Integer, [0,48,48,48,21]:Integer, [0,48,48,48,22]:Integer, [0,48,48,48,23]:Integer, [0,48,48,48,24]:Float@double, [0,48,48,48,32]:Integer, [0,48,48,48,33]:Integer, [0,48,48,48,34]:Integer, [0,48,48,48,35]:Integer, [0,48,48,48,36]:Integer, [0,48,48,48,37]:Integer, [0,48,48,48,38]:Integer, [0,48,48,48,39]:Integer, [0,48,48,48,40]:Pointer, [0,48,48,48,40,8]:Integer, [0,48,48,48,40,16]:Integer, [0,48,48,48,40,17]:Integer, [0,48,48,48,40,18]:Integer, [0,48,48,48,40,19]:Integer, [0,48,48,48,40,20]:Integer, [0,48,48,48,40,21]:Integer, [0,48,48,48,40,22]:Integer, [0,48,48,48,40,23]:Integer, [0,48,48,48,40,24]:Float@double, [0,48,48,48,40,32]:Integer, [0,48,48,48,40,33]:Integer, [0,48,48,48,40,34]:Integer, [0,48,48,48,40,35]:Integer, [0,48,48,48,40,36]:Integer, [0,48,48,48,40,37]:Integer, [0,48,48,48,40,38]:Integer, [0,48,48,48,40,39]:Integer, [0,48,48,48,40,40]:Pointer, [0,48,48,48,40,48]:Pointer, [0,48,48,48,48]:Pointer, [0,48,48,48,48,8]:Integer, [0,48,48,48,48,16]:Integer, [0,48,48,48,48,17]:Integer, [0,48,48,48,48,18]:Integer, [0,48,48,48,48,19]:Integer, [0,48,48,48,48,20]:Integer, [0,48,48,48,48,21]:Integer, [0,48,48,48,48,22]:Integer, [0,48,48,48,48,23]:Integer, [0,48,48,48,48,24]:Float@double, [0,48,48,48,48,32]:Integer, [0,48,48,48,48,33]:Integer, [0,48,48,48,48,34]:Integer, [0,48,48,48,48,35]:Integer, [0,48,48,48,48,36]:Integer, [0,48,48,48,48,37]:Integer, [0,48,48,48,48,38]:Integer, [0,48,48,48,48,39]:Integer, [0,48,48,48,48,40]:Pointer, [0,48,48,48,48,48]:Pointer}
│
│ Stacktrace:
│  [1] getproperty
│    @ ./Base.jl:38
│  [2] eval_expression
│    @ ./REPL[3]:14
│  [3] eval_expression
│    @ ./REPL[3]:0
└ @ Enzyme.Compiler ~/.julia/packages/GPUCompiler/Fu1YT/src/utils.jl:35

Can you upload the whole trace as a file?

The middle content is more Warning: TypeAnalysisDepthLimit. If that’s helpful I can upload the whole thing.

@MilesCranmer what was the specific issue you saw -- that the gradients were zero, it was hanging, or something else.
What was the exact Julia / Enzyme / OS version

Gradients were zero.
Julia: 1.8.3
Enzyme: 0.10.12
OS: macOS 12.5.1 (M1)

That would be expected. Duplicated indicates that the derivative will be updated in place into the shadow data structure. For example, here bX and by would be updated

Sorry, it's been a while so I guess I forgot the exact issue specification... Just re-ran it and the original error is that bX is simply not updated - it is still 1, when it should actually store the derivatives.
Are you able to reproduce this locally?

Here's a further simplified version - just unary operators. Same error.
struct OperatorEnum
    ops::Vector{Function}
end

struct Node
    feature::Int
    op::Int
    l::Node
    Node(feature::Int) = new(feature) # Leaf node specifying X[feature, :]
    Node(op::Int, l::Node) = new(0, op, l) # Branch node with a unary operator
end

# Recursive depth-first evaluation of tree:
function eval_expression(tree, X::Array{T,2}, operators)::Array{T,1} where T
    tree.feature != 0 && return X[tree.feature, :]
    l = eval_expression(tree.l, X, operators)
    return kernel(operators.ops[tree.op], l)
end

kernel(op::F, l::Array{T,1}) where {F,T} = op.(l)

operators = OperatorEnum([cos, (-)])
tree = Node(1, Node(2, Node(1))) # Create tree representing cos(-x1):

function f(X, y)
    y[1] = sum(eval_expression(tree, X, operators))
    return nothing
end

X = randn(1, 5)
bX = zero(X); bX .= 1
y = zeros(1)
by = zero(y); by .= 1

using Enzyme
Enzyme.autodiff(f, Forward, Duplicated(X, bX), Duplicated(y, by))

On the brightside, the warning messages are pretty small now:
┌ Warning: TypeAnalysisDepthLimit
│   %54 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %53 unordered, align 8, !dbg !128, !dereferenceable_or_null !130, !align !131
│ {[]:Pointer, [0]:Pointer, [0,0]:Integer, [0,1]:Integer, [0,2]:Integer, [0,3]:Integer, [0,4]:Integer, [0,5]:Integer, [0,6]:Integer, [0,7]:Integer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer, [0,16]:Pointer, [0,16,0]:Integer, [0,16,1]:Integer, [0,16,2]:Integer, [0,16,3]:Integer, [0,16,4]:Integer, [0,16,5]:Integer, [0,16,6]:Integer, [0,16,7]:Integer, [0,16,8]:Integer, [0,16,9]:Integer, [0,16,10]:Integer, [0,16,11]:Integer, [0,16,12]:Integer, [0,16,13]:Integer, [0,16,14]:Integer, [0,16,15]:Integer, [0,16,16]:Pointer, [0,16,16,0]:Integer, [0,16,16,1]:Integer, [0,16,16,2]:Integer, [0,16,16,3]:Integer, [0,16,16,4]:Integer, [0,16,16,5]:Integer, [0,16,16,6]:Integer, [0,16,16,7]:Integer, [0,16,16,8]:Integer, [0,16,16,9]:Integer, [0,16,16,10]:Integer, [0,16,16,11]:Integer, [0,16,16,12]:Integer, [0,16,16,13]:Integer, [0,16,16,14]:Integer, [0,16,16,15]:Integer, [0,16,16,16]:Pointer, [0,16,16,16,0]:Integer, [0,16,16,16,1]:Integer, [0,16,16,16,2]:Integer, [0,16,16,16,3]:Integer, [0,16,16,16,4]:Integer, [0,16,16,16,5]:Integer, [0,16,16,16,6]:Integer, [0,16,16,16,7]:Integer, [0,16,16,16,8]:Integer, [0,16,16,16,9]:Integer, [0,16,16,16,10]:Integer, [0,16,16,16,11]:Integer, [0,16,16,16,12]:Integer, [0,16,16,16,13]:Integer, [0,16,16,16,14]:Integer, [0,16,16,16,15]:Integer, [0,16,16,16,16]:Pointer, [0,16,16,16,16,0]:Integer, [0,16,16,16,16,1]:Integer, [0,16,16,16,16,2]:Integer, [0,16,16,16,16,3]:Integer, [0,16,16,16,16,4]:Integer, [0,16,16,16,16,5]:Integer, [0,16,16,16,16,6]:Integer, [0,16,16,16,16,7]:Integer, [0,16,16,16,16,8]:Integer, [0,16,16,16,16,9]:Integer, [0,16,16,16,16,10]:Integer, [0,16,16,16,16,11]:Integer, [0,16,16,16,16,12]:Integer, [0,16,16,16,16,13]:Integer, [0,16,16,16,16,14]:Integer, [0,16,16,16,16,15]:Integer, [0,16,16,16,16,16]:Pointer}
│
│ Stacktrace:
│  [1] getproperty
│    @ ./Base.jl:38
│  [2] eval_expression
│    @ ./REPL[3]:4
│  [3] eval_expression
│    @ ./REPL[3]:0
│  [4] multiple call sites
│    @ unknown:0
└ @ Enzyme.Compiler ~/.julia/packages/GPUCompiler/hi5Wg/src/utils.jl:35
┌ Warning: TypeAnalysisDepthLimit
│   %54 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %53 unordered, align 8, !dbg !128, !dereferenceable_or_null !130, !align !131
│ {[]:Pointer, [0]:Pointer, [0,0]:Integer, [0,1]:Integer, [0,2]:Integer, [0,3]:Integer, [0,4]:Integer, [0,5]:Integer, [0,6]:Integer, [0,7]:Integer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer, [0,16]:Pointer, [0,16,0]:Integer, [0,16,1]:Integer, [0,16,2]:Integer, [0,16,3]:Integer, [0,16,4]:Integer, [0,16,5]:Integer, [0,16,6]:Integer, [0,16,7]:Integer, [0,16,8]:Integer, [0,16,9]:Integer, [0,16,10]:Integer, [0,16,11]:Integer, [0,16,12]:Integer, [0,16,13]:Integer, [0,16,14]:Integer, [0,16,15]:Integer, [0,16,16]:Pointer, [0,16,16,0]:Integer, [0,16,16,1]:Integer, [0,16,16,2]:Integer, [0,16,16,3]:Integer, [0,16,16,4]:Integer, [0,16,16,5]:Integer, [0,16,16,6]:Integer, [0,16,16,7]:Integer, [0,16,16,8]:Integer, [0,16,16,9]:Integer, [0,16,16,10]:Integer, [0,16,16,11]:Integer, [0,16,16,12]:Integer, [0,16,16,13]:Integer, [0,16,16,14]:Integer, [0,16,16,15]:Integer, [0,16,16,16]:Pointer, [0,16,16,16,0]:Integer, [0,16,16,16,1]:Integer, [0,16,16,16,2]:Integer, [0,16,16,16,3]:Integer, [0,16,16,16,4]:Integer, [0,16,16,16,5]:Integer, [0,16,16,16,6]:Integer, [0,16,16,16,7]:Integer, [0,16,16,16,8]:Integer, [0,16,16,16,9]:Integer, [0,16,16,16,10]:Integer, [0,16,16,16,11]:Integer, [0,16,16,16,12]:Integer, [0,16,16,16,13]:Integer, [0,16,16,16,14]:Integer, [0,16,16,16,15]:Integer, [0,16,16,16,16]:Pointer, [0,16,16,16,16,0]:Integer, [0,16,16,16,16,1]:Integer, [0,16,16,16,16,2]:Integer, [0,16,16,16,16,3]:Integer, [0,16,16,16,16,4]:Integer, [0,16,16,16,16,5]:Integer, [0,16,16,16,16,6]:Integer, [0,16,16,16,16,7]:Integer, [0,16,16,16,16,8]:Integer, [0,16,16,16,16,9]:Integer, [0,16,16,16,16,10]:Integer, [0,16,16,16,16,11]:Integer, [0,16,16,16,16,12]:Integer, [0,16,16,16,16,13]:Integer, [0,16,16,16,16,14]:Integer, [0,16,16,16,16,15]:Integer, [0,16,16,16,16,16]:Pointer}
│
│ Stacktrace:
│  [1] getproperty
│    @ ./Base.jl:38
│  [2] eval_expression
│    @ ./REPL[3]:4
│  [3] eval_expression
│    @ ./REPL[3]:0
└ @ Enzyme.Compiler ~/.julia/packages/GPUCompiler/hi5Wg/src/utils.jl:35
┌ Warning: TypeAnalysisDepthLimit
│   %54 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %53 unordered, align 8, !dbg !128, !dereferenceable_or_null !130, !align !131
│ {[]:Pointer, [0]:Pointer, [0,0]:Integer, [0,1]:Integer, [0,2]:Integer, [0,3]:Integer, [0,4]:Integer, [0,5]:Integer, [0,6]:Integer, [0,7]:Integer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer, [0,16]:Pointer, [0,16,0]:Integer, [0,16,1]:Integer, [0,16,2]:Integer, [0,16,3]:Integer, [0,16,4]:Integer, [0,16,5]:Integer, [0,16,6]:Integer, [0,16,7]:Integer, [0,16,8]:Integer, [0,16,9]:Integer, [0,16,10]:Integer, [0,16,11]:Integer, [0,16,12]:Integer, [0,16,13]:Integer, [0,16,14]:Integer, [0,16,15]:Integer, [0,16,16]:Pointer, [0,16,16,0]:Integer, [0,16,16,1]:Integer, [0,16,16,2]:Integer, [0,16,16,3]:Integer, [0,16,16,4]:Integer, [0,16,16,5]:Integer, [0,16,16,6]:Integer, [0,16,16,7]:Integer, [0,16,16,8]:Integer, [0,16,16,9]:Integer, [0,16,16,10]:Integer, [0,16,16,11]:Integer, [0,16,16,12]:Integer, [0,16,16,13]:Integer, [0,16,16,14]:Integer, [0,16,16,15]:Integer, [0,16,16,16]:Pointer, [0,16,16,16,0]:Integer, [0,16,16,16,1]:Integer, [0,16,16,16,2]:Integer, [0,16,16,16,3]:Integer, [0,16,16,16,4]:Integer, [0,16,16,16,5]:Integer, [0,16,16,16,6]:Integer, [0,16,16,16,7]:Integer, [0,16,16,16,8]:Integer, [0,16,16,16,9]:Integer, [0,16,16,16,10]:Integer, [0,16,16,16,11]:Integer, [0,16,16,16,12]:Integer, [0,16,16,16,13]:Integer, [0,16,16,16,14]:Integer, [0,16,16,16,15]:Integer, [0,16,16,16,16]:Pointer, [0,16,16,16,16,0]:Integer, [0,16,16,16,16,1]:Integer, [0,16,16,16,16,2]:Integer, [0,16,16,16,16,3]:Integer, [0,16,16,16,16,4]:Integer, [0,16,16,16,16,5]:Integer, [0,16,16,16,16,6]:Integer, [0,16,16,16,16,7]:Integer, [0,16,16,16,16,8]:Integer, [0,16,16,16,16,9]:Integer, [0,16,16,16,16,10]:Integer, [0,16,16,16,16,11]:Integer, [0,16,16,16,16,12]:Integer, [0,16,16,16,16,13]:Integer, [0,16,16,16,16,14]:Integer, [0,16,16,16,16,15]:Integer, [0,16,16,16,16,16]:Pointer}
│
│ Stacktrace:
│  [1] getproperty
│    @ ./Base.jl:38
│  [2] eval_expression
│    @ ./REPL[3]:4
│  [3] eval_expression
│    @ ./REPL[3]:0
│  [4] multiple call sites
│    @ unknown:0
└ @ Enzyme.Compiler ~/.julia/packages/GPUCompiler/hi5Wg/src/utils.jl:35
┌ Warning: TypeAnalysisDepthLimit
│   %54 = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %53 unordered, align 8, !dbg !128, !dereferenceable_or_null !130, !align !131
│ {[]:Pointer, [0]:Pointer, [0,0]:Integer, [0,1]:Integer, [0,2]:Integer, [0,3]:Integer, [0,4]:Integer, [0,5]:Integer, [0,6]:Integer, [0,7]:Integer, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer, [0,16]:Pointer, [0,16,0]:Integer, [0,16,1]:Integer, [0,16,2]:Integer, [0,16,3]:Integer, [0,16,4]:Integer, [0,16,5]:Integer, [0,16,6]:Integer, [0,16,7]:Integer, [0,16,8]:Integer, [0,16,9]:Integer, [0,16,10]:Integer, [0,16,11]:Integer, [0,16,12]:Integer, [0,16,13]:Integer, [0,16,14]:Integer, [0,16,15]:Integer, [0,16,16]:Pointer, [0,16,16,0]:Integer, [0,16,16,1]:Integer, [0,16,16,2]:Integer, [0,16,16,3]:Integer, [0,16,16,4]:Integer, [0,16,16,5]:Integer, [0,16,16,6]:Integer, [0,16,16,7]:Integer, [0,16,16,8]:Integer, [0,16,16,9]:Integer, [0,16,16,10]:Integer, [0,16,16,11]:Integer, [0,16,16,12]:Integer, [0,16,16,13]:Integer, [0,16,16,14]:Integer, [0,16,16,15]:Integer, [0,16,16,16]:Pointer, [0,16,16,16,0]:Integer, [0,16,16,16,1]:Integer, [0,16,16,16,2]:Integer, [0,16,16,16,3]:Integer, [0,16,16,16,4]:Integer, [0,16,16,16,5]:Integer, [0,16,16,16,6]:Integer, [0,16,16,16,7]:Integer, [0,16,16,16,8]:Integer, [0,16,16,16,9]:Integer, [0,16,16,16,10]:Integer, [0,16,16,16,11]:Integer, [0,16,16,16,12]:Integer, [0,16,16,16,13]:Integer, [0,16,16,16,14]:Integer, [0,16,16,16,15]:Integer, [0,16,16,16,16]:Pointer, [0,16,16,16,16,0]:Integer, [0,16,16,16,16,1]:Integer, [0,16,16,16,16,2]:Integer, [0,16,16,16,16,3]:Integer, [0,16,16,16,16,4]:Integer, [0,16,16,16,16,5]:Integer, [0,16,16,16,16,6]:Integer, [0,16,16,16,16,7]:Integer, [0,16,16,16,16,8]:Integer, [0,16,16,16,16,9]:Integer, [0,16,16,16,16,10]:Integer, [0,16,16,16,16,11]:Integer, [0,16,16,16,16,12]:Integer, [0,16,16,16,16,13]:Integer, [0,16,16,16,16,14]:Integer, [0,16,16,16,16,15]:Integer, [0,16,16,16,16,16]:Pointer}
│
│ Stacktrace:
│  [1] getproperty
│    @ ./Base.jl:38
│  [2] eval_expression
│    @ ./REPL[3]:4
│  [3] eval_expression
│    @ ./REPL[3]:0
└ @ Enzyme.Compiler ~/.julia/packages/GPUCompiler/hi5Wg/src/utils.jl:35

In forward-mode AD, the algorithm will propagate the derivative from the inputs to the outputs.
Therefore one would expect dy to contain the derivative. In this case it would contain dX[1] * (dy/dX[1]) + dX[2] * (dy/dX[2]) + ...
In this specific example that would be d/dX[1] (cos(-X[1])) +  d/dX[2] (cos(-X[2])) + ...
This appears to be correct:
X = [-0.2841629589803162 0.8082795091314986 0.005654300537624448 -0.8881057647754982 0.43894275885357803]
y = [4.186708543948131]
bX = [1.0 1.0 1.0 1.0 1.0]
by = [-0.09750460772038017]
julia> sum(sin.(-X))
-0.09750460772038017

If this doesn't work on your system, or as expected -- please feel free to reopen!

Thanks. I am a bit confused though, how would I compute dy/dX here? (i.e., a vector)

authors: MilesCranmer wsmoses


text:
Add tmux mouse modes:

allow mouse to select pane
allow mouse dragging to resize panes
allow mouse to select windows

:ship:

source: gharchive/pull-request

repo: EpionHealth/dotfiles

license: mit

license_type: permissive

license_source: bigquery


text:
Sticky sessions; handle getAssignment called before initialization

labels: mergeable
Fixes: #3844
Motivation and Context
https://eppo-group.slack.com/archives/C035Z4W1LJZ/p1657055437357259
If the getAssignment function is called before the new RAC finishes downloading, we want to avoid the “flickering” affect where a client is assigned to one variation for an old RAC, then a different variation for the new RAC.
To handle this we use both local storage and session storage:

App opens; session started

Start fetching new RAC

Client calls getAssignment()

Scenario A) the config for the experiment already exists in local storage from the last time RAC was downloaded. Return variation
Scenario B) config does not exist in local storage. Return null
In both scenarios, update session storage to remember the variation (or null) returned

Finish fetching new RAC

Client calls getAssignment()

There are new configs in local storage, but we ignore them if they are for an experiment/subject that was already evaluated in the session before the new RAC finished downloading.

App opens again; new session. Use the latest configs from local storage, which persists across sessions.

Testing

[x] If init is called twice during same session, only one request sent to fetch RAC
[x] If getAssignment is called before the async initialization has finished:

[x] if there is an old RAC in local storage use that for assignments for the remainder of the session
[x] if there are no RAC in local storage, use null for the remainder of the session and don't log.

Problem: if getAssignment is called while still initializing but there is a config in local storage, we want to log the assignment that used that config from local storage. Currently, the init method is async and the logger is passed to this init method. So no logger is set on the client instance if getAssignment is called while waiting for the async init method.
There are 2 options for passing the logger to the init method, while also supporting sticky sessions:

Make init sync. Complexity: need to store state about initialization errors and initialization status. Also need a way to wait for initialization (in case the consumer doesn’t want to assign until initialized).

Keep init async. Complexity: need to track log events that occurred during initialization, then flush those events once initialized and a logger has been set.

Other alternative: we could also make no changes to the original implementation, which throws an exception if getInstance() is called before initialization. The consumer would have to wait for Eppo to initialize before rendering their page (e.g. using a React Suspense to show a loading state). This is not ideal because the SDK initialization would add latency to the page load. However, the browser caches the RAC response (cache-control header with 10min TTL) so that latency would only affect the first request in a 10-minute window.
In this PR I've gone with the 2nd option.

repo: Eppo-exp/js-client-sdk

license: MIT

license_source: github-api


text:
Enhancement : Deploy to heroku button

a  button would be cool, I've seen it on some github projects and it's really neat.
I see in the readme you're talking about "how I deploy this for my friends" etc, and with this button it's a few clicks setup to get a worldwide accessible url :-)
here is the doc from heroku.com: https://devcenter.heroku.com/articles/heroku-button

Unfortunately, this won't work if deployed to Heroku.

Damn

source: gharchive/issue

authors: Eric-Carlton eswak

repo: Eric-Carlton/PokemonGoReader


text:
Remove short prompt cli arg

Closes #131

Thank you!


text:
Cannot play newer content, error parsing global option

Running into this issue on playback.

Regular perhaps less demanding TV Series seem to be playing correctly, but larger new release films are throwing this error.

HDR content is currently only supported using HLS Direct streaming mode. For other updates, see https://github.com/ErsatzTV/ErsatzTV/issues/1297

To be clear, this is a duplicate of #1297 - and it is planned to support HDR to SDR transcoding.

Already tried HLS Direct and this behavior is absolutely still occurring regardless of selected streaming mode including HLS Direct, even after restarting ErstatzTV as well as clients.

Which client are you using? If Plex, it only supports MPEG-TS and ignores the streaming mode setting. Other clients need to refresh the M3U to use the newly configured streaming mode.

Appears to be happening on both Jellyfin and TiviMate after deleting and re-adding. Adding as a HDHomeRun in Jellyfin will display SDR content but adding the M3U link just encounters an error.

+1 for this and definitely looking for the day this HDR->SDR arrived so I don't have to chance if it is a HDR movie playing on a channel right now and render this error. Usually I have to quit Kodi entirely instead of waiting it to timeout and remember NOT to switch back to that channel.
Jellyfin seems to have HDR->SDR tonemapping done right in their ffmpeg build. Not sure how they built it but I think the ffmpeg in jellyfin work. Too bad it's dynamically link so there is no way to test it on ErsatzTV container

authors: Andrewpaps dsync89 jasongdove

repo: ErsatzTV/ErsatzTV

license: Zlib


text:
[TECH-DEBT] Add View Sync Timeout to Config

Closes #1472
This PR:
Adds a view sync timeout duration to the config and makes the default a less time than the view timeout.
This PR does not:
Shouldn't change anything else
Key places to review:
Are the defaults reasonable

This looks great. Though I think I'll need to re-approve after your types PR goes in.

Mind taking a look at the other PR?

repo: EspressoSystems/HotShot


text:
Parameter Issue

I am trying to pass only the cookbook and the recipe in the run-list & nothing else. It throws the following error:
You must supply a name when declaring a file resource
For the recipe portal. I have created a wrapper cookbook which has the following recipes:

include_recipe 'arcgis-enterprise::system'
include_recipe 'esri-iis'
include_recipe 'arcgis-enterprise::portal'
include_recipe 'arcgis-enterprise::portal_wa'
include_recipe 'arcgis-enterprise::post_install'

The wrapper cookbook has a attribute file which has all the necessary parameters. But for the node['arcgis']['server']['authorization_file'] it throws an error when I don't mention it in the run-list but when I mention only the above parameter in the run-list the cookbook converges.
Here is the run-list with the parameter:
{
 "arcgis": {
    "portal": {
      "authorization_file":"D:\\ArcGIS_License\\Portal.prvc"
    }
},
"run_list": [
 "recipe[arcgis-portal-windows::default]"
  ]
}

Here is the run-list without the parameter:
{
"run_list": [
 "recipe[arcgis-portal-windows::default]"
  ]
}

When I use chef-client to converge the cookbook the run-list with the parameter converges but the run-list without the parameter fails to converge. Why is this so?

Anybody know how to solve this error?

I was getting a similar error, and it was resolved by bootstrap installing Chef-client 12.21.3.

authors: mschoelen srinivas-anant

repo: Esri/arcgis-cookbook


text:
clustering sample

a clustering sample and shows how to use WidgetPlaceholder as well.

This widget looks good, the code needs to be formatted I think. For example, the indentation for some lines are not correct.

This widget looks good, the code needs to be formatted I think. For example, the indentation for some lines are not correct.

I will format and merge.

authors: dmartine qlqllu


text:
Luk10114/integrated mesh layer

Issue here: https://devtopia.esri.com/runtime/common-samples/issues/1150

Closing as created PR against forked repo.

repo: Esri/arcgis-runtime-samples-android


text:
Certification fixes for 100.4 - PR6

@ThadT Can you please code review these fixes for issues found during the 100.4 certification? The issues being fixed are:

Xamarin.Forms Android Author and save a map - OAuth settings form has black text on a black background - unusable. [The fix was to make the background gray so that black text could be read]
All platforms Animate 3D graphic - when the user changes mission progress while the animation is paused, animation resumes. [The fix was to automatically turn play/pause button back to 'play mode' whenever the user made an GUI change by: choosing a different mission, adjusting the play speed, or modifying mission progress. This was the easiest fix given the complex nature of the control interactions. Modifications were made to the readme.md, as well as the .cs and .xaml files depending on the platform.]

@ThadT Thanks for the code review. I have made note of your testing issues and added them to the existing issue for 100.4 certification fixes.

repo: Esri/arcgis-runtime-samples-dotnet


text:
reverting pointsize change

@DonMoJa Please review. Reverting the point size changes. They had more negative impacts than positive.

thanks @DonMoJa. Agreed, probably good to just clean this up now while at it. Updated

repo: Esri/arcgis-runtime-samples-qt


text:
v2.12.1

Closes #388 - remove infoTemplate object from applyEdits request.  Now
also removed from adds as well as updates.

Looked good, thanks. Just a reminder note, make sure to always initiate pull requests from a custom (non-master) branch. Could save you a few headaches at some point in the future...

authors: andygup robkspeer

repo: Esri/offline-editor-js


text:
Network Trace - Config pages view

@MikeMillerGIS @previnWong
Using 1.2 developer edition. Check boxes are no cut off. Additionally, before the outline width is increased, the scroll bar is cutoff and the bottom of the outline width box. Once the outline width parameter is increased, the scroll bar appears as expected.

@CTLocalGovTeam @MikeMillerGIS
Verified fix with latest code. Closing issue.

repo: Esri/solutions-webappbuilder-widgets


text:
Can you provide test code?

Thanks for your good work, loading saved clip model parameters failed.

Is it in SeqPAR or PromptPAR?

PromptPAR
the training results are normal, model and clip_model weight yet were saved, but  clip_model weight can't be loaded by clip.load()

model = build_model(wt['clip_model'])
Traceback (most recent call last):
File "", line 1, in
File "OpenPAR/PromptPAR/clip/model.py", line 564, in build_model
model.load_state_dict(state_dict,strict=False)
File "CLIP/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1051, in load_state_dict
raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
RuntimeError: Error(s) in loading state_dict for CLIP:
size mismatch for transformer.prompt_text_deep: copying a param with shape torch.Size([12, 3, 5, 768]) from checkpoint, the shape in current model is torch.Size([12, 0, 5, 768]).

how to convert to onnx?

I think the parameter for text prompt length in config was not set correctly during the test.

because, I used 5 classes with text attributes modified.
oh, could you provite test code example?

clip_model.visual

train_logits,final_similarity = model(imgs.cuda(),clip_model=clip_model)
Traceback (most recent call last):
File "", line 1, in
File "/CLIP/lib/python3.8/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/OpenPAR/PromptPAR/base_block.py", line 31, in forward
clip_image_features,all_class,attenmap=clip_model.visual(imgs.type(clip_model.dtype))
File "/CLIP/lib/python3.8/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/OpenPAR/PromptPAR/clip/model.py", line 326, in forward
x,all_class,attnmap = self.transformer(x)
File "/CLIP/lib/python3.8/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/OpenPAR/PromptPAR/clip/model.py", line 253, in forward
x,attn_output_weights = block(x,self.visual_mask)
File "/CLIP/lib/python3.8/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/OpenPAR/PromptPAR/clip/model.py", line 202, in forward
attn_output, attn_output_weights = self.attention(self.ln_1(x),visual_mask)
File "/OpenPAR/PromptPAR/clip/model.py", line 198, in attention
return self.attn(x, x, x, need_weights=True, attn_mask=self.attn_mask)
File "/CLIP/lib/python3.8/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/CLIP/lib/python3.8/site-packages/torch/nn/modules/activation.py", line 978, in forward
return F.multi_head_attention_forward(
File "/CLIP/lib/python3.8/site-packages/torch/nn/functional.py", line 4235, in multi_head_attention_forward
raise RuntimeError('The size of the 2D attn_mask is not correct.')
RuntimeError: The size of the 2D attn_mask is not correct.

We've updated the test code and Readme so that you can use the provided code for testing purposes. And we can't provide a method to convert to onnx, you may need to implement it yourself

thank you,indeed, the test was ok.
the two parameters may be missing: vis_prompt, use_textprompt.

but it occur error when pytorch convert to onnx:
onnxruntime.capi.onnxruntime_pybind11_state.Fail: [ONNXRuntimeError] : 1 : FAIL : Load model from ./onnx/clip_model.onnx failed:Node (Concat_5586) Op (Concat) [ShapeInferenceError] All inputs to Concat must have same rank. Input 1 has rank 4 != 3

repo: Event-AHU/OpenPAR


text:
Date picker onChange firing with previous value

same as #10

fix: f1ec82b380032bf9776ce171f42f16440e4a1012

repo: EventBooking/angular-datepicker


text:
url.parse function

Is your feature request related to a problem? Please describe.
for a column containing URLs, I'd like to parse them and extract relevant components
Describe the solution you'd like
urls = [
    "https://huggingface.co/datasets/wikimedia/wikipedia/resolve/main/20231101.ar/train-00004-of-00007.parquet",
    "https://huggingface.co/datasets/wikimedia/wikipedia/resolve/main/20231101.ar/train-00005-of-00007.parquet",
    "https://huggingface.co/datasets/wikimedia/wikipedia/resolve/main/20231101.ar/train-00006-of-00007.parquet",
    "https://huggingface.co/datasets/wikimedia/wikipedia/resolve/main/20231101.arc/train-00000-of-00001.parquet",
    "https://huggingface.co/datasets/wikimedia/wikipedia/resolve/main/20231101.ary/train-00000-of-00001.parquet",
    "https://huggingface.co/datasets/wikimedia/wikipedia/resolve/main/20231101.de/train-00013-of-00020.parquet",
    "https://huggingface.co/datasets/wikimedia/wikipedia/resolve/main/20231101.de/train-00014-of-00020.parquet",
    "https://huggingface.co/datasets/wikimedia/wikipedia/resolve/main/20231101.de/train-00015-of-00020.parquet",
    "https://huggingface.co/datasets/wikimedia/wikipedia/resolve/main/20231101.de/train-00016-of-00020.parquet",
    "https://huggingface.co/datasets/wikimedia/wikipedia/resolve/main/20231101.de/train-00017-of-00020.parquet",
    "https://huggingface.co/datasets/wikimedia/wikipedia/resolve/main/20231101.de/train-00018-of-00020.parquet"
]

df = daft.from_pydict({ 'urls': urls })

df.select(col('urls').url.parse()).select(col('url.*')).collect()

╭──────────┬────────────────┬──────────┬────────────┬───────┬────────┬──────────╮
│ fragment ┆ host           ┆ password ┆      …     ┆ query ┆ scheme ┆ username │
│ ---      ┆ ---            ┆ ---      ┆            ┆ ---   ┆ ---    ┆ ---      │
│ Utf8     ┆ Utf8           ┆ Null     ┆ (2 hidden) ┆ Utf8  ┆ Utf8   ┆ Null     │
╞══════════╪════════════════╪══════════╪════════════╪═══════╪════════╪══════════╡
│          ┆ huggingface.co ┆ None     ┆ …          ┆       ┆ https  ┆ None     │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│          ┆ huggingface.co ┆ None     ┆ …          ┆       ┆ https  ┆ None     │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│          ┆ huggingface.co ┆ None     ┆ …          ┆       ┆ https  ┆ None     │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│          ┆ huggingface.co ┆ None     ┆ …          ┆       ┆ https  ┆ None     │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│          ┆ huggingface.co ┆ None     ┆ …          ┆       ┆ https  ┆ None     │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│          ┆ huggingface.co ┆ None     ┆ …          ┆       ┆ https  ┆ None     │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│          ┆ huggingface.co ┆ None     ┆ …          ┆       ┆ https  ┆ None     │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│          ┆ huggingface.co ┆ None     ┆ …          ┆       ┆ https  ┆ None     │
╰──────────┴────────────────┴──────────┴────────────┴───────┴────────┴──────────╯
(Showing first 8 of 11 rows)

Describe alternatives you've considered
UDF functions
Additional context
Add any other context or screenshots about the feature request here.

@ThanhChinhBK assigning this issue to you!

repo: Eventual-Inc/Daft


text:
Not being able to learn a move that pre-evolutions learn more than 4 moves pre-evolution level

Clefable won't get approved for anything that only Cleffa or Clefairy learn.  Probopass can't learn Rock Throw.  Gyarados can't learn Splash.  Gabite can't learn Tackle and Sand Attack.

Fixed for next server reboot

authors: EverOddish UbeHalaya-Speg

repo: EverOddish/pokemon-showdown


text:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 8: illegal multibyte sequence

Traceback (most recent call last):
File "main.py", line 123, in
obj.run()
File "main.py", line 37, in run
urlList = Dotpy.getSource()
File "D:\Users\下载\ww_iptvm3ulist_com\iptv-m3u-maker-master\plugins\dotpy.py", line 19, in getSource
lines = f.readlines()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 8: illegal multibyte sequence

暴力注销掉。那个源已经关闭了。所以出错。

我看一下,下个版本迭代时会解决这个问题,暂时请先按楼上的方法试试~

暴力注销掉。那个源已经关闭了。所以出错。

我也遇到了这个问题,是系统默认编码出了问题.有类似解决方案,例如:
https://blog.csdn.net/lqzdreamer/article/details/76549256

dotpy.py 第19行改成这样试试, 编码encoding='utf-8'
with open(sourcePath, 'r', encoding='utf-8') as f:

authors: Danny8090 EvilCult Weot myramses snyzf


text:
cloud you tell me how you trans Entity's propertitys to entity_propertity

sorry,it's not a issue,just something i can't figure out too long.🥺
is it a plugin to trans or a nodered automations?
help me please.
thanks you anyway
very good project
pretty ui pretty evishome

Hi, did you figure it out? I am not fully sure if I understood what you mean? Can you open up this a bit?

I read your issue once more and think I got it, sorry .. I am slow like that :)
So how to have an entity's attribute as a separate entity?
You can do this in your configuration.yaml
example: I take an entity sensor sensor.unifi_gateway_www which has an attribute latency, use the template platform to make it a separate entity. Not sure if there are better ways to do this, but that's how I've done it.
  - platform: template
    sensors:
      unifi_udmpro_latency_ms:
        value_template: >-
          {{ state_attr('sensor.unifi_gateway_www', 'latency') | float | round(0) }}
        unit_of_measurement: 'ms'
        friendly_name: Internet Latency

repo: EvisHome/home-assistant


text:
Mislabeled Behavior?

        /// <summary>
        /// Add paragraph after self but by allowing to specify section
        /// </summary>
        /// <param name="section"></param>
        /// <param name="paragraph"></param>
        /// <returns></returns>
        public WordParagraph AddParagraphAfterSelf(WordSection section, WordParagraph paragraph = null) {
            if (paragraph == null) {
                paragraph = new WordParagraph(section._document, true, false);
            }
            this._paragraph.InsertAfterSelf(paragraph._paragraph);
            return paragraph;
        }

I'm going through some stuff looking for things, if I end up changing anything then I'll add tests. I've been adding a lot of documentation that is either missing or otherwise badly worded. What is this method supposed to do when both section and paragraph is given? How I read it was basically whichever came last but that isn't what the code is doing.
If this needs updated then I can go ahead and do so this PR.

This is used internally:
https://github.com/EvotecIT/OfficeIMO/blob/5f16f4f956fd32fb3d6f081a3a33761cc40af9c8/OfficeIMO.Word/WordSection.PublicMethods.cs#L16-L26
and
https://github.com/EvotecIT/OfficeIMO/blob/5f16f4f956fd32fb3d6f081a3a33761cc40af9c8/OfficeIMO.Word/WordSection.PublicMethods.cs#L28-L47
This could be hidden and made internal/private only. I don't think it doesn't make much sense outside of internal usage.

Alright thanks, that answered this question.
Would you like me to change the scope of the
method to internal in next pr or leave as is?

Can be PR

I also should update the signature for AddParagraphBeforeSelf then?
Making the change locally, will open a PR in the future.

BeforeSelf does not have a section argument, but an overload for AfterSelf does. I only need to make the definition with section as an argument private and leave both other method's defined public?
Private: AddParagraphAfterSelf(WordSection section, WordParagraph paragraph = null);
Public: AddParagraphAfterSelf();
public AddParagraphBeforeSelf();
Asking for clarification, right now I moved all three to the private methods file.

AddParagraphAfterSelf is pretty useful AddParagraphBeforeSelf as well. Basically you can insert new paragraph before the one you're currently operating with. The ones with section isn't really useful i guess. But i could be wrong.

authors: PrzemyslawKlys tmheath

repo: EvotecIT/OfficeIMO


text:
Recipes not unlocked until item is obtained?

Is this intentional?
It seems strange that ingots wouldn't unlock horse armors and leather not unlock the saddle.

Yes. I agree. Possibly another requirement would be you have to have mounted a horse at least once, because it wouldn't make sense to think of a recipe tailored to a mob that you aren't familiar with.

Yes. I agree. Possibly another requirement would be you have to have mounted a horse at least once, because it wouldn't make sense to think of a recipe tailored to a mob that you aren't familiar with.

repo: EwyBoy/CHA-S


text:
Make install process Windows compatible

Move node_module archiving to Procfile tar command, so it only run on Heroku, and fixes #1331 for those that run on Windows or don't have tar installed. It also adds node before the bower command which makes it Windows compatible.

Updated @vernak2539 . I'm sorry I didn't understand the comment.

:+1:

The archive is created in order to allow TravisCI to not run npm install.
It's what Bootstrap does, except they use Python and AWS.

right on

:+1:

authors: interactivellama swilliamset vernak2539

repo: ExactTarget/fuelux


text:
Update State class to use 2-D Kokkos views

Here, the State class was updated to use 2-D Kokkos::Views to facilitate time integration of a FE mesh consisting of multiple nodes.
NB: All unit tests from GeneralizedAlphaTimeIntegrator class were imported, while the heavy top unit tests are still under progress. We might need to add this work as part of the gebt_poc namespace depending on how much work it involves.

Is gebt_poc using the time integrator from the heavy top problem? I had figured the integrator would be copied into the gebt_poc namespace since it will need to be modified for the static problem.

Yup, that's what I mentioned in my original comment. It was faster for me to make these changes directly into generalized alpha namespace - I will move things over to the GEBT namespace before merging this.

Looks Good. I see some immediate conflicts with my CUDA changes that we'll have to resolve. Would it make sense for us to merge this PR now, and I'll resolve them before merging that PR?

Let's do that please.

@ddement @deslaughter I moved over the time integrator logic to gebt_poc namespace. I needed to comment out the unit tests in test_gebt_generalized_alpha_solver.cpp since they were failing - I don't think it's critical to figure out why for this current proof-of-concept work. Let's do a quick spot check on this one to make sure we all agree on the changes made before I merge it.

repo: Exawind/openturbine


text:
Call to undefined method Laravel\Cashier\Cashier::stripeOptions()

Hello guys, i just tried to use this package.
And i am getting this error.
Call to undefined method Laravel\Cashier\Cashier::stripeOptions()
This package will allow to make subscriptions in multi vendors ?

You need to install Cashier also.

Not an cashier undefined method not class

Same error.
In Laravel\Cashier no more method stripeOptions sinse v. 13:
https://github.com/laravel/cashier-stripe/blob/13.x/src/Cashier.php

Fix is in main branch, but not in release.

Main has error, create #17.

Solved in https://github.com/ExpDev07/laravel-cashier-stripe-connect/pull/17.

authors: ExpDev07 oleg-kolzhanov tdrabikdev


text:
Create v2 API based on HAL representations

Per issue #19 the API will move toward HAL-based representations. This is a breaking API change, so the API needs a new version (v2).
This issue includes the following:

Create v2 counterparts for the existing endpoints, as appropriate.
Maintain support for existing v1 endpoints, including the search engine.
Add missing unit tests for current services and web components.

It does not include migrating the UI to v2 at this time. That will be a separate issue.
From a design perspective, treat v1 and v2 as separate serialization formats. (There may be other differences as well, but serialization format is the key one.) This means separating resource (DTO) assembly from resource serialization.

Leaving out the POST/PUT requests for the moment, as those are a little more involved, and I want to push all the rest of it. Will handle POST/PUT in a separate issue.

repo: ExpediaDotCom/seiso


text:
error after 1.0.1 upgrade

Tried to deploy the 1.0.1 apiary-data-lake version and I got this error:

* module.apiary.data.template_file.bucket_policy: At column 107, line 1: list "var.apiary_managed_schemas" does not have any elements so cannot determine type. in:

${ length(var.apiary_shared_schemas) == 0 || contains(var.apiary_shared_schemas,var.apiary_managed_schemas[count.index]) ?
                             join("\",\"", formatlist("arn:aws:iam::%s:root",var.apiary_customer_accounts)) :
                             "arn:aws:iam::${data.aws_caller_identity.current.account_id}:root" }

I have neither apiary_shared_schemas nor apiary_managed_schemas defined. Both are optional in VARIABLES.md

@mroark1m - We are hitting this issue because for us apiary_managed_schemas is an empty list and empty_list[count.index] do not works (similar issue - https://github.com/hashicorp/terraform/issues/17251). This behavior seems to be fixed in terraform v0.12.
I have raised #93 to fix this.

repo: ExpediaInc/apiary-data-lake


text:
[HOLD for payment 2023-04-04] iOS - Build against iOS 16.1 SDK or later

From Apple's email, we need to build the iOS App against SDK 16.1 or later otherwise the App will be rejected starting in April.
cc @Expensify/mobile-deployers

Dear Developer,
We identified one or more issues with a recent delivery for your app, "New Expensify" 1.2.89 (1.2.89.0). Your delivery was successful, but you may wish to correct the following issues in your next delivery:
ITMS-90725: SDK Version Issue - This app was built with the iOS 16.0 SDK. Starting April 2023, all iOS apps submitted to the App Store must be built with the iOS 16.1 SDK or later, included in Xcode 14.1 or later.
After you’ve corrected the issues, you can upload a new binary to App Store Connect.
Best regards,
The App Store Team

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.2.90-7 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/16540

If no regressions arise, payment will be issued on 2023-04-04. :confetti_ball:
After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

[ ] External issue reporter
[ ] Contributor that fixed the issue
[ ] Contributor+ that helped on the issue and/or PR

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

Merged PR within 3 business days of assignment - 50% bonus
Merged PR more than 9 business days after assignment - 50% penalty

@luacmartins Huh... This is 4 days overdue. Who can take care of this?

@luacmartins Eep! 4 days overdue now. Issues have feelings too...

authors: MelvinBot luacmartins

repo: Expensify/App


text:
IOU - Unable to empty the merchant field to set it to default value 'Request'

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Action Performed:

Go to staging.new.expensify,com
Create a money request with custom merchant
Open IOU report
Click on the merchant
Empty the merchant
Save the merchant

Expected Result:
The merchant is defaulted to 'Request' when it is emptied
Actual Result:
The merchant is not defaulted to 'Request'. It is defauled to data that is set in Step 2
The behavior here is that it defaults to whatever data that is entered in the Merchant field when the IOU is created. But what if I need to delete the Merchant and change it back to default (Request), it does not allow me to set it back to 'Request'
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[x] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome
[ ] MacOS / Desktop

Version Number: 1.3.59-0
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/a58da3b3-bae5-4c3b-8c92-3aec1ba9d66b
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

@mountiny Thank you for the clarification


text:
[$500] mweb-Compose-In 1:1 page, concierge with invite not shown but in IOU report page it is shown

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

**Version Number:**1.4.34
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4259033
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
**Slack conve1. Go to https://staging.new.expensify.com/
Action Performed:

Go to https://staging.new.expensify.com/
Tap on a report with IOU chats
Enter @ in compose
Select a contact from user suggestions and send it
Note no concierge message is displayed
Tap on any IOU and open IOU report page
Enter @ in compose
Select a contact from user suggestions and send it
Note concierge message is displayed with invite option
Tap on invite
Note contact isn't the member of room displayed

Expected Result:
Both in 1:1 page and IOU report page, if i select a contact from user suggestion and send, concierge message behavior must be same.
If user when taps invite button in IOU report page, invited message must be displayed and isn't the member of this room message must not be displayed
Actual Result:
In 1:1 page, if i select a contact from user suggestion and send, concierge message with invite option is not shown.
From IOU report page, if i select a contact from user suggestion and send, in that case, concierge message with invite option is shown.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/e468d5ef-05a5-43b8-8280-9cb052c042fe
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01413f5ddf6832318b
Upwork Job ID: 1752770692457275392
Last Price Increase: 2024-01-31

Waiting for proposals

This seems to me like a BE issue and IOU report can have more than two members that's why we're probably seeing the conceirge message.

Rereading this one, I don't think it's a bug - users shouldn't be able to invite 3rd parties to 1:1 chats, but should be able to invite into IOU report/transaction threads. Closing


text:
[$500] Chat - Text is always pasted as plain text when editing messages

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number: 1.4.39-0
Reproducible in staging?: y
Reproducible in production?: n
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: applause internal team
Slack conversation:
Action Performed:

Log in to New Expensify
Navigate to any chat
Send message with markdown and copy it
Edit another message and paste copied message with markdown

Expected Result:
Message with markdown should be correctly pasted and include markdown of original message.
Actual Result:
Messages are pasted as plain text in edit compose box, all markdown is omitted.
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/43996225/7d061a66-e4df-46f0-94c3-47c20f0dc905

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0151f8c718e0328abd
Upwork Job ID: 1755994883161890816
Last Price Increase: 2024-02-09

We think this bug might be related to #vip-vsb

Seems related to Markdown preview. Has this been reverted? I dont get markdown preview anymore in staging.new

Can you confirm if you are looking for proposals? Or handled in Live Markdown Issues?
Cannot reproduce without live markdown build

We've reverted the offending PR https://github.com/Expensify/App/pull/35837, so this is no longer a blocker

This issue has the same RCA as #36269

Cool, let's consolidate there

authors: jeremy-croff kavimuru robertKozik thienlnam


text:
CRITICAL: [Actionable Whispers] [$1250] Launch basic actionable whisper foundation

We're adding the 'Track Expense' action in this PR. After tracking an expense to your selfDM, there will be a whisper action that provides different options you can take

Currently after each tracked transaction, there is another reportAction added which is called ACTIONABLETRACKEXPENSEWHISPER. This will be the actionable whisper.
We already have a similar actionable whisper for inviting people here

There are 4 actions that can be taken
Request someone to pay it (Doc)
This will open up straight to the participant selector for the existing transaction. However, in this case it will move the transaction once the request is created as opposed to creating a new one.

API command: 'ConvertTrackedExpenseToRequest'
Parameters:

authToken
payerAccountID
iouReportID
chatReportID
transactionID
reportActionID
createdChatReportActionID
createdIOUReportActionID
reportPreviewReportActionID

Categorize it (Doc)
This creates a workspace (if necessary), then moves it to the open expense report on the workspace chat, and opens the category editor.

API command: CategorizeTrackedExpense

authToken
policyID
transactionID
reportID
reportActionID
modifiedExpenseReportActionID
announceChatReportID
announceCreatedReportActionID
adminsChatReportID
adminsCreatedReportActionID
expenseChatReportID
expenseCreatedReportActionID

Share it with my accountant (Doc)
This creates a workspace (if necessary), moves it to a report on the workspace chat, and opens the invite flow.

API command: ShareTrackedExpense

authToken
policyID
transactionID
reportID
reportActionID
modifiedExpenseReportActionID
announceChatReportID
announceCreatedReportActionID
adminsChatReportID
adminsCreatedReportActionID
expenseChatReportID
expenseCreatedReportActionID

Nothing for now
Hides the actionable whisper
API command: DismissActionableWhisper

authToken
reportActionID

Note: To get started, you will need to branch off this existing PR. We haven't done full flow testing of the API commands, so there may be some additional BE changes that are required that you might find through working on this PR that we can work on in parallel.
We're also trying to launch this ASAP. Please do NOT pick this up unless you can spend your full attention on this
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~015906865d86966bf9
Upwork Job ID: 1770146045833195520
Last Price Increase: 2024-05-07

@ishpaul777 is this what you're looking for?

In Figma, we're using our medium (default) size buttons—they have 16px of left/right padding and a fixed height of 40px.

Actively working through issue.

Could you please add what you think is a fair amount and reasoning for it?

That seems fair to me 👍

Payment summary:

Contributor: @ishpaul777 $1,250
Contributor+: @shubham1206agra $1,250

Offers sent out via Upwork. @shubham1206agra given that this is a new feature, please suggest a set of regression tests to ensure we keep quality high and are testing this for every QA run.

@thienlnam Have all the regression tests in the Track Expense doc been added to TestRail yet?

All Contributors paid out, just wanted to confirm on regression tests for Track Expense before closing this out.

@thienlnam Have all the regression tests in the Track Expense doc been added to TestRail yet?

Yeah, they're being added https://github.com/Expensify/Expensify/issues/399663

authors: JmillsExpensify dannymcclain thienlnam


text:
[$1000] Workspace chat expense report show up in the LHN without a GBR or as unread

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number:
Reproducible in staging?: needs reproduction
Reproducible in production?: needs reproduction
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @puneetlath
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1712068571511789
Prerequisite
Be on a collect plan where User A is approver and User B is an employee
User A has priority mode set to #focus
Action Performed:

User B/employee submits expense
User A opens app and observes either

The report from user B doesn't show in LHN
The report from user B is not bold and/or does not have 🟢 for Green Brick Road (GBR)

Click on the report

Expected Result:
Report should show in LHN
and/or
GBR should show up in the LHN for the workspace chat
Actual Result:
Report doesn't show in LHN
or
GBR is not shown and chat is not bold to indicate it is unread
very often, when I click on the workspace chat, then a GBR appears.
Seems like perhaps we aren't properly sending the hasOutstandingChildRequest field when a report is sent via instant submit
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~010d8f311682125da6
Upwork Job ID: 1779939910911811584
Last Price Increase: 2024-05-22

Issue OwnerCurrent Issue Owner: @eVoloshchak

This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989

I'm not an approver on a workspace myself, so I won't be able to reproduce this. Applying the retest-weekly label and will ping the #QA room in Slack (per SO)

Unable to reproduce
https://github.com/Expensify/App/assets/43996225/922761a4-b225-4f80-8189-a4f1c5795258

@kavimuru can you try testing with Instant Submit and doing Scan Receipt instead of manual.

I've bumped the Slack thread with your request, @puneetlath.

@kavimuru indicated that they cannot reproduce this one.

I can consistently reproduce this every day. How can I help troubleshoot?

@johncschuster , snagging this from you cuz I'm working on documenting a process for issues that need reproduction.  @eVoloshchak , can you see if you can reproduce plz?
I create a job for $125 to provide reproduction steps, testing this out before I work on internally here.

Sounds good, @mallenexpensify! Just a heads up, it looks like @puneetlath can consistently reproduce this every day, so I think we need to get clear on what the difference is between Puneet's reproduction setup and @kavimuru's setup.

Opened up to reproduction steps, leaving as-is for now.

Bumped to weekly since we're looking for repro steps.

I still experience this every day. This is a core part of the Collect approver experience. What can I do to help diagnose? Would it be helpful to get device logs?

Hmm, it could be similar, yes. What I consistently get is that the reports show up in the LHN, but they aren't bolded and they don't have the GBR.
Though I did just experience the same issue as you, where I got sent one but it's not showing up in my LHN at all.

Thanks @puneetlath , updated OP, title and price.  Shared in #expensify-open-source too. Will try to prioritize this
https://expensify.slack.com/archives/C01GTK53T8Q/p1714670946557159

Issue not reproducible during KI retests. (First week)

Since we have performance issues and a deploy freeze, I'm going to wait til next week to take action on this.

Bumped to $1000 to try to get more 👀 here. If we don't get any takers, I'll also update it to compensate for reliable reproduction steps, since some are having trouble reproducing.  @eVoloshchak can you try to repro plz? thx

Issue not reproducible during KI retests. (Second week)

@eVoloshchak plz attempt reproduction and report back.

Hello, this issue seems to be similar if not same as described here

What I consistently get is that the reports show up in the LHN, but they aren't bolded and they don't have the GBR.

Can reproduce the issue @puneetlath is facing in https://github.com/Expensify/App/issues/39453#issuecomment-2091099136

Go to OldDot, create a new Collect workspace
Go to that workspace settings, open console, paste the following and press Enter:

p = Policy.getCurrent();
p.policy.isPolicyExpenseChatEnabled = "true";
p.save();

Using NewDo create two new accounts: an employee account (userA), and an approver account (userB)
Go back to OldDot, workspace settings -> members -> invite
Invite the employee, select the Employee role
Invite the approver, select the Workspace Admin role
On New dot, from userA, submit an expense to the workspace
Log in to NewDot as userB, notice that report from userA is not bold and does not have a 🟢
OR: the report from userA does not show in LHN until you open the search list
Notice that the same report is bold in the search list (1:43 on the video below)

https://github.com/Expensify/App/assets/9059945/d111c16d-bb25-4c0a-8b29-42552761ec86

Pinged SWM and Margelo to see if they can help today. Link from post in #contributor-plus

^ Doubled price and posted in #expensify-open-source that we now have reproducible steps from @eVoloshchak
https://expensify.slack.com/archives/C01GTK53T8Q/p1717089805633669?thread_ts=1717089752.822759&cid=C01GTK53T8Q

I believe this is BE issue, when I do request money BE is not sending the proper details i.e lastActorAccountID and hasOutstandingChildRequest is not set true for the admins.
https://github.com/Expensify/App/blob/f886a6b6323ff8e22cd799fa2041e1aef890cdc5/src/libs/SidebarUtils.ts#L277 Because of this line LHN item is not highlighted as lastActorAccountID is coming as null or as empty string.

I can reproduce the green dot issue. It only happens when the approval mode is optional. hasOutstandingChildRequest is not set to true as @b4s36t4 mentioned, so it's a pusher issue.
For the bold/unread issue, it's the same root cause as https://github.com/Expensify/App/issues/38778 but is currently on hold because not a priority.

@eVoloshchak , 👀 please. If you also agree it's a BE issue, can you 🎀 it to assign an internal engineer?  Thx

Approving to assign an internal engineer since this is a BE issue
🎀👀🎀 C+ reviewed!

Issue not reproducible during KI retests. (Third week)

@grgia can you confirm this is BE?  Thx

@mallenexpensify yes, internal

I may be a bit busy with a few other bugs for the next couple of days, but if it's still there next week I may be able to take it!

Also posted in #engineering to see if anyone has bandwidth
https://expensify.slack.com/archives/C03SSAQ7P/p1718404700838939

going to unassign and label with hot picks for now

Thanks @grgia .  I'll keep asking around for help

Posted again in #engineering .  Will post in #wave-collect next week if we dont' get a volunteer.

Trying to find a volunteer in  #wave-collect
https://expensify.slack.com/archives/C036QM0SLJK/p1720482169207219

Closing per internal discussion, Puneet will reopen if the bugs reoccur

authors: MelvinBot b4s36t4 bernhardoj carlosmiceli eVoloshchak grgia jnowakow johncschuster kavimuru m-natarajan mallenexpensify mvtglobally puneetlath


text:
Web – IOU – Unable to save selected date using Enter key in Submit expense

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number: 1.4.73-1
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause - Internal Team
Action Performed:

Go to https://staging.new.expensify.com/
Log in
Click on FAB and select Submit expense
Enter an amount and select user
Click on Show more and select Date
Click on any number using mouse and press Enter key from keyboard

Expected Result:
Selected date is saved
Actual Result:
Blue frame appears around selected date
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/57df4510-608a-4c1b-b1b0-949a8ac5e1e8
View all open jobs on GitHub

@MitchExpensify  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

We think that this bug might be related to #vip-vsp

Reproduced but I don't think this is worth solving right now