Contributing Shamisen
- The Issues should be described in English or Japanese.
- When an issue is written in Japanese, the owner can translate it in order to discuss in English.
- When an issue is written in another language, the owner MUST close it as invalid one.
- Write some minimal representation code first.
- Create a new Issue with Bug Report Template
- Make sure your proposal doesn't collide any existing features.
- Feel free to suggest some syntax sugar like fatures.
- Create a new Issue with Feature Request Template.
- You should not commit directly to branches.
- Use Pull Request instead.
Name | Value |
---|---|
NewLine | CRLF |
Encoding | UTF-8 |
- DO NOT USE
T[] buffer, int offset, int count
patterns at ANY places!(when possible)- Range checks can be remained under this pattern!
- You MUST use
Span<T>
,Memory<T>
,ReadOnlySpan<T>
,ReadOnlyMemory<T>
except for some needed places.
- Feel free to use
Unsafe
andMemoryMarshal
.- Don't forget that
Span<T>
can wrap any pointers thoguh.
- Don't forget that
- You should be extremely greedy about doing tricky optimizations.
- Manage memories yourself if appropriate.
- Be careful when using
MemoryMarshal.Cast<T, (T2,T3,T4,T5)>(Span<T> span)
becauseStructLayout
ofValueTuple
is set toAuto
.
- Write XML comments at EVERY public members.
- The comments should be written in English except for automatically-generated comments like
IDisposable
patterns.