Skip to content

Releases: noir-lang/noir

nightly-2024-07-25: feat: Implement format strings in the comptime interpreter (#5596)

25 Jul 02:19
fd7002c
Compare
Choose a tag to compare
# Description

## Problem\*

Resolves https://github.com/noir-lang/noir/issues/5482

## Summary\*

Implements format strings in the interpreter.

These are a bit weird since we immediately interpolate them and thus
have no need to actually distinguish them from regular strings. They are
also lowered into runtime code as normal strings.

## Additional Context

## Documentation\*

Check one:
- [x] No documentation needed.
- [ ] Documentation included in this PR.
- [ ] **[For Experimental Features]** Documentation to be submitted in a
separate PR.

# PR Checklist\*

- [x] I have tested the changes locally.
- [x] I have formatted the changes with [Prettier](https://prettier.io/)
and/or `cargo fmt` on default settings.

---------

Co-authored-by: Michael J Klein <[email protected]>

nightly-2024-07-24: fix: lookup trait constraints methods in composite types (#5595)

24 Jul 02:19
cec6390
Compare
Choose a tag to compare
# Description

## Problem

Resolves #5186

## Summary

Looking for methods that are bound to trait constraints was already
working for `NamedGeneric`, but when the trait is on a composite type,
like `(T, U)` or even `(T, i32)` methods weren't lookup up in
constraints bound to those types.

We only lookup this in case the regular (`lookup_primitive_method`)
lookup fails to find something.

## Additional Context

None.

## Documentation

Check one:
- [x] No documentation needed.
- [ ] Documentation included in this PR.
- [ ] **[For Experimental Features]** Documentation to be submitted in a
separate PR.

# PR Checklist\*

- [x] I have tested the changes locally.
- [x] I have formatted the changes with [Prettier](https://prettier.io/)
and/or `cargo fmt` on default settings.

nightly-2024-07-23: fix: allow calling a trait method with paths that don't consist of ex…

23 Jul 02:19
88c0a40
Compare
Choose a tag to compare
…actly two segments (#5577)

# Description

## Problem

Resolves #5557

## Summary

For something like `Add::add` the logic was checking if `Add` was a
trait, then looking for a method `add` in it. It only worked if the path
had exactly two segments.

I initially thought the fix was simple: also make it work if there are
more segments. However, it got tricky if there's just one segment: we
need to find out the trait associated with the found function. This
wasn't tracked in `FuncMeta` (well, there was a boolean for it but not
the optional `TraitId`) so in this PR this information is now tracked,
and the lookup works in all cases.

## Additional Context

None.

## Documentation\*

Check one:
- [x] No documentation needed.
- [ ] Documentation included in this PR.
- [ ] **[For Experimental Features]** Documentation to be submitted in a
separate PR.

# PR Checklist\*

- [x] I have tested the changes locally.
- [x] I have formatted the changes with [Prettier](https://prettier.io/)
and/or `cargo fmt` on default settings.

nightly-2024-07-22: fix(frontend): Disallow signed numeric generics (#5572)

22 Jul 02:21
2b4853e
Compare
Choose a tag to compare
# Description

## Problem\*

Resolves #5552

## Summary\*

This temporarily disallows signed numeric generics as to prevent the
panic in the issue until they are fully supported. In general type-level
integers need to be updated to support numeric generics. It is deceiving
to not ban them until type-level integers are updated as otherwise users
can declare signed numeric generics but not actually use them as per the
linked issue.

For the code in the issue we now get this error:
<img width="697" alt="Screenshot 2024-07-19 at 5 41 13 PM"
src="https://github.com/user-attachments/assets/17979de7-8c82-40af-aa0f-a32f73992d48">


## Additional Context



## Documentation\*

Check one:
- [] No documentation needed.
- [ ] Documentation included in this PR.
- [X] **[For Experimental Features]** Documentation to be submitted in a
separate PR.

# PR Checklist\*

- [X] I have tested the changes locally.
- [X] I have formatted the changes with [Prettier](https://prettier.io/)
and/or `cargo fmt` on default settings.

nightly-2024-07-21: fix(frontend): Disallow signed numeric generics (#5572)

21 Jul 02:20
2b4853e
Compare
Choose a tag to compare
# Description

## Problem\*

Resolves #5552

## Summary\*

This temporarily disallows signed numeric generics as to prevent the
panic in the issue until they are fully supported. In general type-level
integers need to be updated to support numeric generics. It is deceiving
to not ban them until type-level integers are updated as otherwise users
can declare signed numeric generics but not actually use them as per the
linked issue.

For the code in the issue we now get this error:
<img width="697" alt="Screenshot 2024-07-19 at 5 41 13 PM"
src="https://github.com/user-attachments/assets/17979de7-8c82-40af-aa0f-a32f73992d48">


## Additional Context



## Documentation\*

Check one:
- [] No documentation needed.
- [ ] Documentation included in this PR.
- [X] **[For Experimental Features]** Documentation to be submitted in a
separate PR.

# PR Checklist\*

- [X] I have tested the changes locally.
- [X] I have formatted the changes with [Prettier](https://prettier.io/)
and/or `cargo fmt` on default settings.

nightly-2024-07-20: fix(frontend): Disallow signed numeric generics (#5572)

20 Jul 02:17
2b4853e
Compare
Choose a tag to compare
# Description

## Problem\*

Resolves #5552

## Summary\*

This temporarily disallows signed numeric generics as to prevent the
panic in the issue until they are fully supported. In general type-level
integers need to be updated to support numeric generics. It is deceiving
to not ban them until type-level integers are updated as otherwise users
can declare signed numeric generics but not actually use them as per the
linked issue.

For the code in the issue we now get this error:
<img width="697" alt="Screenshot 2024-07-19 at 5 41 13 PM"
src="https://github.com/user-attachments/assets/17979de7-8c82-40af-aa0f-a32f73992d48">


## Additional Context



## Documentation\*

Check one:
- [] No documentation needed.
- [ ] Documentation included in this PR.
- [X] **[For Experimental Features]** Documentation to be submitted in a
separate PR.

# PR Checklist\*

- [X] I have tested the changes locally.
- [X] I have formatted the changes with [Prettier](https://prettier.io/)
and/or `cargo fmt` on default settings.

v0.32.0

18 Jul 13:20
c679f01
Compare
Choose a tag to compare

0.32.0 (2024-07-18)

⚠ BREAKING CHANGES

Features

Read more

nightly-2024-07-19: feat: Add a compile-time hash map type (#5543)

19 Jul 02:19
c6e5c4b
Compare
Choose a tag to compare
# Description

## Problem\*

Resolves https://github.com/noir-lang/noir/issues/5479

## Summary\*

Mostly copied over from our existing hash map with a few changes.
- Uses slices and grows automatically
- Uses `break`

## Additional Context

Like other comptime code, I'm avoiding documenting this until comptime
as a whole is stable

## Documentation\*

Check one:
- [ ] No documentation needed.
- [ ] Documentation included in this PR.
- [x] **[For Experimental Features]** Documentation to be submitted in a
separate PR.

# PR Checklist\*

- [x] I have tested the changes locally.
- [x] I have formatted the changes with [Prettier](https://prettier.io/)
and/or `cargo fmt` on default settings.

---------

Co-authored-by: Michael J Klein <[email protected]>

nightly-2024-07-18: feat: LSP document symbol (#5532)

18 Jul 02:18
1fabcde
Compare
Choose a tag to compare
# Description

## Problem

Resolves #5533

## Summary

With this you can see where you are at any time, and jump to any symbol
in the document.



https://github.com/user-attachments/assets/74ebdb36-cd51-4afc-a33e-775156c1317b




## Additional Context

None

## Documentation

Check one:
- [x] No documentation needed.
- [ ] Documentation included in this PR.
- [ ] **[For Experimental Features]** Documentation to be submitted in a
separate PR.

# PR Checklist

- [x] I have tested the changes locally.
- [ ] I have formatted the changes with [Prettier](https://prettier.io/)
and/or `cargo fmt` on default settings.

nightly-2024-07-17: chore: Remove dbg on find_func_with_name (#5526)

17 Jul 02:19
45e82a6
Compare
Choose a tag to compare
# Description

## Problem\*

Resolves <!-- Link to GitHub Issue -->

## Summary\*

Looks like we missed a dbg in one of the recent PRs. This was causing a
lot of unnecessary dbg output.

## Additional Context



## Documentation\*

Check one:
- [X] No documentation needed.
- [ ] Documentation included in this PR.
- [ ] **[For Experimental Features]** Documentation to be submitted in a
separate PR.

# PR Checklist\*

- [X] I have tested the changes locally.
- [X] I have formatted the changes with [Prettier](https://prettier.io/)
and/or `cargo fmt` on default settings.