Difference between revisions of "Infrastructure/Utrecht-Hacking-Notes"

From HaskellWiki
Jump to navigation Jump to search
 
(10 intermediate revisions by 2 users not shown)
Line 6: Line 6:
   
 
* https://patch-tag.com/r/dons/containers/home
 
* https://patch-tag.com/r/dons/containers/home
  +
  +
Added test suite and coverage data, (increased coverage to > 50%)
  +
  +
* http://code.haskell.org/~dons/tests/containers/hpc_index.html
  +
  +
Investigate certain functions, then determine if anything on Hackage uses them. If no such package is found using the Map function, remove it from the API -- 20 years and 2000 packages should be enough empirical evidence.
  +
  +
Added benchmarking suite.
  +
  +
Improved performance. Submitted to libraries process: http://hackage.haskell.org/trac/ghc/ticket/4277
  +
  +
Candidates for removal:
  +
  +
{| class="wikitable"
  +
|-
  +
! Function
  +
! Reason
  +
! Comment
  +
|-
  +
| notMember
  +
| Trivial composition of not and member
  +
|
  +
|-
  +
| findWithDefault
  +
| Should be renamed to lookupWithDefault for consistency
  +
|
  +
|-
  +
| updateWithKey
  +
| The caller already has the key
  +
|
  +
|-
  +
| updateLookupWithKey
  +
| The caller already has the key. updateLookup could be useful though
  +
|
  +
|-
  +
| adjust
  +
| Simply calls adjustWithKey that calls updateWithKey
  +
|
  +
|-
  +
| adjustWithKey
  +
| Simply calls updateWithKey
  +
|
  +
|}
   
 
=== hackage 2 ===
 
=== hackage 2 ===
Line 18: Line 61:
   
 
network package is low level, difficult to maintain and fragile. Rewrite using design from python?
 
network package is low level, difficult to maintain and fragile. Rewrite using design from python?
  +
  +
=== hashmaps ===
  +
  +
Based on Patricia trees and using MurmurHash.
   
 
=== hashtables ===
 
=== hashtables ===
Line 25: Line 72:
 
=== text ===
 
=== text ===
   
Propose text for the HP.
+
Propose text for the HP. Draft now available: http://trac.haskell.org/haskell-platform/wiki/Proposals/text
   
 
=== platform ===
 
=== platform ===

Latest revision as of 08:46, 30 August 2010

Notes from Utrecht on future directions for packages and infrastructure

containers

Work underway to do general performance improvements to the containers package, based on worker/wrapper and other idioms. New repository for work on patch-tag:

Added test suite and coverage data, (increased coverage to > 50%)

Investigate certain functions, then determine if anything on Hackage uses them. If no such package is found using the Map function, remove it from the API -- 20 years and 2000 packages should be enough empirical evidence.

Added benchmarking suite.

Improved performance. Submitted to libraries process: http://hackage.haskell.org/trac/ghc/ticket/4277

Candidates for removal:

Function Reason Comment
notMember Trivial composition of not and member
findWithDefault Should be renamed to lookupWithDefault for consistency
updateWithKey The caller already has the key
updateLookupWithKey The caller already has the key. updateLookup could be useful though
adjust Simply calls adjustWithKey that calls updateWithKey
adjustWithKey Simply calls updateWithKey

hackage 2

Ready Hackage 2 for use.

network

network package is low level, difficult to maintain and fragile. Rewrite using design from python?

hashmaps

Based on Patricia trees and using MurmurHash.

hashtables

Fast, open addressed hashtables: useful, but relatively small ROI. Also quite complex.

text

Propose text for the HP. Draft now available: http://trac.haskell.org/haskell-platform/wiki/Proposals/text

platform

Generate unified docs for the HP.