Mojo good first issues

30 open Mojo issues currently match the default 10+ star filter. Scored difficulty: 5,946 at 1/5, 8,786 at 2/5, 12,698 at 3/5, 12,118 at 4/5, 857 at 5/5. This hub uses the same feed as the homepage, limited to repositories whose GitHub language is Mojo.

All languages · Browse projects · How to find good first issues

Active projects

Unique repos with open help-wanted issues updated in the last 30 days

Showing 30 of ~30 matching filters (Mojo · 10+ stars)

List

[Parity] Linear algebra routines missing vs numpy/scipy

AI summary

This issue highlights that the `numojo/routines/linalg/` module is missing several standard linear algebra routines found in libraries like NumPy and SciPy. Key missing functionalities include norms, eigenvalue/eigenvector decomposition, singular value decomposition, QR decomposition, Cholesky decomposition, pseudoinverse, and matrix rank calculations. The suggested approach is to implement `norm` first, followed by more complex decompositions.

enhancementgood first issue
235
Difficulty
4/5

[stdlib] _DLHandle.close calls dlclose on a possibly-null handle

AI summary

The `_DLHandle.close` function in the Mojo standard library incorrectly calls `dlclose` on a potentially null handle. This can lead to undefined behavior as `dlclose` is not designed to handle null pointers. The proposed fix adds a check to ensure `dlclose` is only called when the handle is valid.

good first issueTeam: Mojo Librariesaccepted
26.5K
Difficulty
2/5

[BUG] Improve the Error Message when raising with anything other than Error Struct

AI summary

This bug report describes an issue where the Mojo compiler provides an overly complex and unhelpful error message when a `main` function attempts to raise an exception that is not an `Error` struct. The expected behavior is a clear message indicating that only `Error` structs are supported for exceptions in `main` functions.

buggood first issuemojoNeeds TriageTeam: Mojo Compiler
26.5K
Difficulty
2/5

[stdlib] Improvements to `pow` and `Powable`

AI summary

This issue proposes several improvements to the `pow` function and the `Powable` trait in Mojo's standard library. Key tasks include adding documentation examples, implementing `__pow__` for `IntLiteral` (with a discussion needed on negative exponents), potentially adding tests for `Int`, and considering a `mod` argument similar to Python's `pow`.

help wantedmojomojo-repo[stdlib] core-library-q2-2024
26.5K
Difficulty
3/5

demo issue

AI summary

This is a placeholder issue titled 'demo issue' with a body also containing 'demo'. It is labeled as a 'good first issue', suggesting it's intended for new contributors to get started.

good first issue
26.5K
Difficulty
1/5

[Parity] `NDArray` manipulation routines missing vs numpy

AI summary

This issue highlights the absence of several common NumPy ndarray manipulation routines in NuMojo, including functions for reshaping, splitting, repeating, padding, and finding unique elements. It also points out inconsistencies in the placement and availability of other functions like `squeeze`, `resize`, and `tile`. The suggested approach is to implement these functions one by one in separate pull requests, following established conventions and adding corresponding tests.

enhancementgood first issue
235
Difficulty
3/5

[BUG]: Floating point numbers are not displayed properly rounded

AI summary

This bug report highlights an issue where floating-point division in Mojo produces unexpected, overly precise results, unlike Python's more user-friendly rounding. The user expects `314.0 / 100` to yield `3.14`, but Mojo returns `3.1400000000000001`. This behavior is consistently reproducible on the latest Mojo version on macOS.

bughelp wantedmojo-stdlibmojomojo-repo
26.5K
Difficulty
2/5

[stdlib] Use `normalize_index` throughout the standard library

AI summary

This issue proposes to refactor the standard library by replacing manual index bounds checking and normalization logic with a new `normalize_index` helper function. The goal is to improve code consistency and reduce boilerplate across various collection types like List and InlinedFixedVector. The updates should be applied incrementally to facilitate easier code reviews.

good first issuehelp wantedmojo-stdlibmojorefactoringmojo-repo
26.5K
Difficulty
2/5

update `scripts/commit-changes.py` so it exits successfully when there is nothing to commit

AI summary

The `scripts/commit-changes.py` script currently exits with an error when there are no changes to commit. This prevents CI workflows from completing successfully on clean runs. The goal is to modify the script so it exits with a success code when no changes are detected, ensuring the workflow proceeds as expected.

good first issuehelp wanted
80
Difficulty
2/5
fnands/mimage

Add JPEG decoding

AI summary

This issue proposes adding JPEG decoding functionality to the project, recognizing JPEG and PNG as the most common image formats. An existing, albeit outdated, Mojo example is provided as a starting point for implementation.

help wanted
21
Difficulty
3/5

[Feature Request] Support weightless RMSNorm (for FlashNorm weight folding trick)

AI summary

This feature request asks for support of RMSNorm without normalization weights, enabling a technique called FlashNorm. FlashNorm folds the RMSNorm weights into the subsequent linear layer, reducing inference overhead with no accuracy loss. The user has already demonstrated this optimization on several LLMs.

enhancementhelp wantedmaxNeeds Triage
26.5K
Difficulty
2/5

[stdlib] CPython.__init__ sets init_error then calls Py_Initialize anyway

AI summary

The CPython initialization logic in Mojo incorrectly calls `Py_Initialize` even after detecting an initialization error. This can lead to unexpected behavior or crashes when the Python library is not compatible or found. The proposed fix adds a conditional check to prevent `Py_Initialize` from being called if an error has already been set.

good first issueTeam: Mojo Librariesaccepted
26.5K
Difficulty
2/5

[Feature Request] Add `drain`/`take_items` API to `List`

AI summary

This feature request proposes adding a `drain()` or `take_items()` API to Mojo's `List` type. This would allow iterators to move items out of the list as they are consumed, avoiding unnecessary copies and improving performance in scenarios like initializing dictionaries or other collections from lists.

enhancementgood first issuehelp wantedmojoTeam: Mojo Libraries
26.5K
Difficulty
3/5

[BUG] [stdlib] `llvm.masked.scatter` causes `CUDA_ERROR_ILLEGAL_ADDRESS` in shared memory

AI summary

A bug has been reported where `llvm.masked.scatter` fails when used with shared memory on CUDA devices, resulting in an `CUDA_ERROR_ILLEGAL_ADDRESS`. The issue works correctly with global memory, and a potential solution involves providing a fallback mechanism or restricting the operation to `AddressSpace.GENERIC`.

buggood first issuehelp wantedmojoTeam: Mojo Libraries
26.5K
Difficulty
3/5

[Testing] Test coverage gaps in existing routines

AI summary

This issue identifies significant gaps in test coverage for several existing routine modules within the numojo library. Specific functions in bitwise, functional, linalg, and statistics routines are either untested or have very limited test coverage. The suggested approach is to address these gaps by writing new tests for individual functions or modules.

enhancementgood first issue
235
Difficulty
2/5

[Parity] `numojo.random` missing distributions and has no seeding support

AI summary

This issue highlights two key missing features in the `numojo.random` module: the absence of seeding support for reproducible results and the lack of several common probability distributions found in libraries like NumPy. The suggested approach is to implement these missing distributions incrementally, making it suitable for contributions.

enhancementgood first issue
235
Difficulty
2/5

[Parity] Miscellaneous missing math/logic/sorting routines

AI summary

This issue requests the implementation of several missing NumPy mathematical, logical, and sorting routines within the NuMojo library. It lists specific functions like `convolve`, `interp`, `isin`, and `partition` that need to be added, along with their corresponding `NDArray` instance methods. The suggested approach is to implement these functions one by one with accompanying tests.

enhancementgood first issue
235
Difficulty
3/5

[Parity] Statistics routines missing vs numpy, including nan-aware reductions

AI summary

This issue requests the addition of several missing statistical routines to the numojo library, particularly focusing on nan-aware reductions that are present in numpy. The suggested approach involves implementing wrappers for nan-aware functions and developing new implementations for percentile, quantile, histogram, and bincount.

enhancementgood first issue
235
Difficulty
3/5

[FEATURE] Improve error handling in NuMojo

AI summary

This issue proposes to improve error handling in NuMojo by standardizing the use of custom error types instead of generic ones. The goal is to make debugging easier and provide clearer error messages for users and contributors. This involves refactoring existing error raising and potentially adding new custom error types.

enhancementgood first issue
235
Difficulty
2/5

[Feature Request] [Epic] Extend support for NVIDIA sm_120 / sm_121 consumer Blackwell GPUs

AI summary

This is a feature request to extend Mojo's platform support to include NVIDIA's consumer Blackwell GPUs (sm_120/sm_121), such as those found in the RTX 50XX series. The goal is to identify and fix kernel issues and optimize performance for this new architecture, which differs significantly from existing supported Blackwell GPUs.

enhancementhelp wantedmojomax
26.5K
Difficulty
4/5

[BUG] b64decode does not handle whitespaces

AI summary

The `b64decode` function in Mojo's `base64` module incorrectly handles whitespace characters within the base64 encoded string. Instead of ignoring them as is standard for base64 decoding, it appears to treat them as invalid characters, leading to incomplete or corrupted decoding.

bughelp wantedmojomojo-repoaccepted
26.5K
Difficulty
2/5

[Feature Request] [stdlib] Migrate the remaining abort tests to _assert_aborts

AI summary

This feature request aims to migrate remaining abort tests in the Mojo standard library to use the `std.testing._assert_aborts()` function. The migration involves refactoring existing tests that use older patterns like `-D test=N` and `mojo_filecheck_test(expect_crash = True)` into new test functions and `mojo_test` targets.

good first issuemojo-stdlibrefactoringacceptedMojo Libraries
26.5K
Difficulty
3/5

[BUG] macOS os.stat timestamps are too large by up to ~1000 seconds

AI summary

On macOS, the `os.stat` function in Mojo incorrectly scales sub-second timestamps by a factor of 1000, leading to inaccuracies of up to ~1000 seconds. This occurs because Mojo assumes the `struct stat`'s nanosecond field provides microseconds on macOS, when it actually provides nanoseconds, causing incorrect comparisons of file modification, access, and creation times.

buggood first issuemojoTeam: Mojo Librariesaccepted
26.5K
Difficulty
2/5

[BUG] Parser rejects an inner try/except that is the last statement of a try-with-finally body ("body must not be empty")

AI summary

The Mojo parser incorrectly rejects a nested try-except statement when it's the last statement within a try-with-finally block. This leads to misleading "body must not be empty" and "expected 'except' or 'finally' block" errors, even though the syntax is valid.

buggood first issuemojoTeam: Mojo Compilerauto_priority_triaged
26.5K
Difficulty
3/5

[Feature Request] Add non-mutating `mojo format --check` mode

AI summary

This feature request asks for a non-mutating `--check` mode for the `mojo format` command. This mode would allow developers to verify if code is correctly formatted without altering files, making it suitable for CI pipelines and pre-commit hooks. The requested behavior includes exiting with a specific code (0 for formatted, 1 for unformatted) and reporting which files need changes.

enhancementgood first issue
26.5K
Difficulty
2/5

Also browsing: Python , TypeScript , JavaScript