Improve the `fn` pointer types
Open
Nobody has claimed this yet.
T-lang
- Dominant language
- Markdown
- Stars
- 6.6k
- Forks
- 1.7k
- Avg merge
- 16h 14m
- Merged PRs (30d)
- 1
Description
The current function pointer types have some downsides:
- They assume that all functions are static code that lives forever. This isn't true for JITs or DLLs.
- They are always non-nullable, safe pointers. This may not be what you want -- particularly the nullable aspect. This is connected to the previous point, because it implies that there is no place to attach a lifetime in the current syntax.
This is a "postponement issue". There have been various RFCs aiming to improve this:
- #252 -- a fairly straight-forward scheme to add lifetimes to
fntypes. - #883 -- a simple scheme to change the syntax of
fnto&'static fnfor forwards compatibility. - #996 -- a more involved scheme which introduced a kind of unsized type.
It should be possible to adapt these schemes backwards compatibly.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No source files, tests, or entry points are named. Start by reading RFCs #252, #883, and #996, then compare their lifetime, nullability, and syntax proposals to determine whether one can be adapted backwards compatibly; done requires a concrete, agreed direction rather than just postponement.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100