Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Upstream

未关闭
#47 0 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
25/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
julia
领域
tooling

调研方向

首先检查未勾选的 LinearAlgebra 和 SparseArrays 项,以及所引用的 Julia 上游 pull request。将它们与 src/dispatch.jl 和 src/MutableArithmetics.jl 中的变通方案进行比较。当剩余的上游假设得到处理,并且相应的变通方案可以简化或移除时,即可视为完成。

由索引模型根据 Issue 内容生成。

描述

Some implementations in Base/LinearAlgebra/SparseArrays have the following assumption:

  1. zero(T) isa T
  2. one(T) isa T
  3. -(::T) isa T
  4. +(::T, ::T) isa T
  5. *(::T, ::T) isa T
  6. x * y = y * x
  7. Implements ==
  8. *(x::T, y::S) = *(promote(x, y)...)

However, these assumptions are violated for the following types where MP stands for MultivariatePolynomials and MOI stand for MathOptInterface.

Type 1 2 3 4 5 6 7 8
Bool x x
JuMP.VariableRef x x x x x x
MOI.VariableRef x x x x x x
MOI.ScalarAffineExpression x x x
MP.AbstractVariable x x x x x
MP.AbstractMonomial x x x x
MP.AbstractTerm x
AbstractArray x
Non-commutative MP.AbstractVariable x x x x x x

The current approach is to create an AbstractMutable type and redefine methods for the methods defined in Base for these types.
The long term solution would be to fix the issue upstream. In the short term, as Julia v1.5 might be an LTS, that would allow the package to be simplified once we drop Julia v1.0 for all the fixes that are merged before Julia v1.5.

The following are the issues in LinearAlgebra.

The following are the issues in SparseArrays.

主要语言
TeX
星标
55
派生
15
平均合并
19 小时 44 分钟
30 天内合并 PR
9

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

jump-dev/MutableArithmetics.jl 的其他 Issue

查看 jump-dev/MutableArithmetics.jl 的全部 Issue

相似的 Issue

更多 DevTools Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。