[phobos] next release

Brad Roberts braddr at puremagic.com
Wed Sep 8 14:00:20 PDT 2010


What's the state of the union?  Er.. code base?

IMHO, it's about time to consider cutting the next release.  Who has 
opinions on what's unfinished that they believe needs to be in it?

Here's the current changelog for the trunk (probably needs to be validated 
with some of the fixes having to be reverted):

    $(WHATSNEW
        $(LI std.algorithm:  reduce now works with non-range-based iteration, such as opApply.)
        $(LI std.numeric:  Added FFT.)
        $(LI std.process: Added environment, an AA-like interface for environment variables.)
        $(LI std.range:  Iota, Stride, Transversal, FrontTransveral now support slicing where possible.)
        $(LI std.range:  Added Lockstep, hasLvalueElements.)
        $(LI std.range:  Added virtual function-based wrappers (InputRangeObject, OutputRangeObject) for when a binary interface to a range is required.)
        $(LI std.typecons:  Added convenience functions for Rebindable.)
        $(L1 std.traits:  Added isAssignable, isIterable, ForeachType, isSafe, isUnsafe, EnumMembers.)
        $(L1 std.traits:  hasLocalAliasing, hasLocalObjects and hasLocalRawAliasing are now hasUnsharedAliasing, hasUnsharedObjects and hasUnsharedRawAliasing.  Aliases to the old names are included for now for backwards compatibility.)
        $(LI std.typetuple:  Added anySatisfy.)
        $(LI $(LINK2 phobos/std_stopwatch.html,std.swopwatch):  Added StopWatch, Ticks, systime, apptime, comparingBenchmark, measureTime.)
    )
    $(BUGSFIXED
        $(LI Unlisted Bug:  std.math.pow doesn't work on immutable numbers.)
        $(LI Unlisted Bug:  std.math.pow floating point overload expects both arguments to be exact same type.)
        $(LI Unlisted Bug:  std.path.join("", "foo") returns "/foo" instead of "foo" on Posix.)
        $(LI Unlisted Bug:  std.range.iota() random access primitives inconsistent after popFront on floating point version)
        $(LI Several unlisted bugs in std.range.chain)
        $(LI $(BUGZILLA 2903): Splitter should be bi-dir if the input range is bi-dir.)
        $(LI $(BUGZILLA 2951): std.random.dice() should be templated on proportions.)
        $(LI $(BUGZILLA 2958): std.getopt RangeError on missing arg)
        $(LI $(BUGZILLA 3123): std.algorithm.zip fails on 'lazy' ranges)
        $(LI $(BUGZILLA 3294): forward reference to inferred return type of function call)
        $(LI $(BUGZILLA 3312): std.string.count should use const(char)[], not immutable.)
        $(LI $(BUGZILLA 3348): Documentation for many std.process functions has disappeared)
        $(LI $(BUGZILLA 3361): code in std.zlib concatenates void[] arrays )
        $(LI $(BUGZILLA 3877): std.range.chain do not manage infinite ranges correctly)
        $(LI $(BUGZILLA 3894): std.range.Stride!R requires R.front() and R.back() to return by reference)
        $(LI $(BUGZILLA 3946): schwartzSort - SwapStrategy always unstable)
        $(LI $(BUGZILLA 4402): std.range.Zip doesn't work w/ non-lvalue ranges.)
        $(LI $(BUGZILLA 4408): Ambiguity when using std.algorithm.splitter with generic ranges.)
        $(LI $(BUGZILLA 4292): CommonType fails for singular alias value.)
        $(LI $(BUGZILLA 4345): std.range.take!string: "Nonsensical finite range with slicing but no length".)
        $(LI $(BUGZILLA 4345): More flexible std.array.array.)
        $(LI $(BUGZILLA 4363): Some phobos ranges are not forward ranges (but should be).)
        $(LI $(BUGZILLA 4381): Length attribute for std.typecons.Tuple.)
        $(LI $(BUGZILLA 4387): std.range.Cycle assumes lvalue elements.)
        $(LI $(BUGZILLA 4388): std.range.Radial assumes lvalue elements.)
        $(LI $(BUGZILLA 4403): std.range.FrontTransversal assumes lvalue elements.)
        $(LI $(BUGZILLA 4404): std.range.Transversal assumes lvalue elements.)
        $(LI $(BUGZILLA 4455): Taking the sqrt of an integer shouldn't require an explicit cast.)
        $(LI $(BUGZILLA 4464): std.range.take does not always return Take!R.)
        $(LI $(BUGZILLA 4518): to!string(enum w/invalid value) produces a somewhat unhelpful error)
        $(LI $(BUGZILLA 4603): array(iota(1, 0)) error.)
        $(LI $(BUGZILLA 4643): Shared values are unwritable.)
        $(LI $(BUGZILLA 4700): to!float("0") fails)
        $(LI $(BUGZILLA 4748): Shadowing declaration error in std.string.tolower)
        $(LI $(BUGZILLA 4789): std.algorithm.sort bug)
        $(LI $(BUGZILLA 4810): dotProduct problem with ints)
        $(LI $(BUGZILLA 4834): Implicit sharing via delegates in std.concurrency)


More information about the phobos mailing list