Improve documentation and refactor `copy` + `move` in mutable APIs
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- haskell
- Ambito
- api, documentation
Direzione di ricerca
Inizia dalla documentazione di Data-Vector-Mutable collegata nell’issue e confronta i contratti documentati di copy e move. Determina se vengono accettate le modifiche richieste alla formulazione e alla gestione delle sovrapposizioni, oppure la proposta di deprecazione; il lavoro è concluso quando il comportamento dell’API e la documentazione hanno un design definito e testato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
- Consider updating existing documentation for copy/move:
https://hackage.haskell.org/package/vector-0.13.0.0/docs/Data-Vector-Mutable.html#g:13
It's not clear what is the difference between "copy" and "move".
Consider changing "may" to a strong "must" and adding a line on what happens otherwise:
Copy a vector. The two vectors must have the same length and may not overlap.
To:
Copy contents of one vector to another.
The two vectors must have the same length and must not overlap.
An error is thrown if vectors have different lengths or if overlap.
It was unclear what is the meaning of "moving a vector" and what is the difference VS "copying data".
Consider explaining "move" in terms of "copy" and changing:
Move the contents of a vector. The two vectors must have the same length.
To:
Same as "copy", but allows vectors to overlap -- at additional cost, by allocating a temporary vector for copying.
- Improvement: consider deprecating "move", but make "copy" deal with overlapping vectors (at no additional cost -- see below).
In short: different copying order. If two vectors overlap, the order of copying offset + (zero..length) VS offset + (length..zero) can be chosen, depending on which of the two vectors (source and target) goes first in address (index) space. No need to allocate temporary memory.
- Lingua principale
- Haskell
- Stelle
- 401
- Fork
- 145
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di haskell/vector
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
-
`Size` can be a newtype. Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Tutte le issue di haskell/vector
Issue simili
-
docs
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
-
needs triage type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
doclayout-0.6 Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
commercialhaskell/stackage#8126 ·