Jump to page: 1 2 3
Thread overview
[phobos] Deprecation of std.date
Jan 16, 2011
Jonathan M Davis
Jan 16, 2011
Walter Bright
Jan 16, 2011
Jonathan M Davis
Jan 17, 2011
Jonathan M Davis
Jan 17, 2011
Walter Bright
Jan 18, 2011
Jonathan M Davis
Jan 16, 2011
Jonathan M Davis
Jan 16, 2011
Walter Bright
Jan 16, 2011
Jonathan M Davis
Jan 16, 2011
Walter Bright
Jan 16, 2011
Jonathan M Davis
Jan 17, 2011
Jonathan M Davis
Jan 16, 2011
Walter Bright
Jan 17, 2011
Jonathan M Davis
Jan 17, 2011
Walter Bright
Jan 17, 2011
Jonathan M Davis
Jan 17, 2011
Walter Bright
Jan 17, 2011
Brad Roberts
Jan 17, 2011
Jonathan M Davis
Jan 17, 2011
Jonathan M Davis
Jan 17, 2011
Jonathan M Davis
Jan 17, 2011
Walter Bright
January 15, 2011
I've been going through the process of making Phobos use std.datetime instead of std.date. It isn't all that many changes, but it does mean that we're going to need to deprececate several functions outside of std.date and std.dateparse (all in std.file IIRC) and of course the modules std.gregorian, std.date, and std.dateparse. That's fine. The problem, however, is marking them as "scheduled for deprecation" with a pragma rather than just marking them as deprecated. It works just fine to mark them as scheduled for deprecation with a pragma, but it means that the output for the unittest build of Phobos spits out

std.date has been scheduled for deprecation. Please use std.datetime instead. std.dateparse has been scheduled for deprecation. Please use std.datetime instead.

almost every other line (as opposed to std.gregorian, which prints out its message once or twice). It's definitely annoying, albeit temporary.

Is it acceptable to pollute the output for the build that thoroughly, or should I should I just mark the std.date-related stuff as deprecated instead of scheduled to be deprecated, or are we willing to have the build output flooded with "scheduled for deprecation" messages for a release or two?

- Jonathan M Davis
January 15, 2011

Jonathan M Davis wrote:
> are we willing to have the build output flooded with "scheduled for deprecation" messages for a release or two?
>
> 

We already have some of those, and it's not a problem.
January 15, 2011
On Saturday 15 January 2011 20:28:33 Jonathan M Davis wrote:
> I've been going through the process of making Phobos use std.datetime instead of std.date. It isn't all that many changes, but it does mean that we're going to need to deprececate several functions outside of std.date and std.dateparse (all in std.file IIRC) and of course the modules std.gregorian, std.date, and std.dateparse. That's fine. The problem, however, is marking them as "scheduled for deprecation" with a pragma rather than just marking them as deprecated. It works just fine to mark them as scheduled for deprecation with a pragma, but it means that the output for the unittest build of Phobos spits out
> 
> std.date has been scheduled for deprecation. Please use std.datetime instead. std.dateparse has been scheduled for deprecation. Please use std.datetime instead.
> 
> almost every other line (as opposed to std.gregorian, which prints out its message once or twice). It's definitely annoying, albeit temporary.
> 
> Is it acceptable to pollute the output for the build that thoroughly, or should I should I just mark the std.date-related stuff as deprecated instead of scheduled to be deprecated, or are we willing to have the build output flooded with "scheduled for deprecation" messages for a release or two?

And from the looks of it, _anyone_ using std.file will end up getting those pragma messages, even if they _don't_ use std.date or std.dateparse at all, simply because std.file uses them for functions which are going to be deprecated. So, it seems to me that it's going to be highly annoying all around to use the pragmas instead of just deprecating them. I expect that if the pragmas weren't as heavy-handed, it wouldn't be as big an issue, but they seem to print just because you used a module that used a module that has such a pragma in it - even if you didn't directly or indirectly use any of the functionality which was scheduled for deprecation.

- Jonathan M Davis
January 15, 2011
On Saturday 15 January 2011 20:48:01 Walter Bright wrote:
> Jonathan M Davis wrote:
> > are we willing to have the build output flooded
> > with "scheduled for deprecation" messages for a release or two?
> 
> We already have some of those, and it's not a problem.

The problem is that it's very nearly _every other line_:

---------------------------

make --no-print-directory -f posix.mak OS=linux BUILD=debug unittest
dmd -I../druntime/import  -w -d -m32 -g -debug -lib -
ofgenerated/linux/debug/libphobos2.a ../druntime/lib/libdruntime.a crc32.d
std/algorithm.d std/array.d std/base64.d std/bigint.d std/bitmanip.d
std/compiler.d std/complex.d std/concurrency.d std/container.d std/contracts.d
std/conv.d std/cpuid.d std/cstream.d std/ctype.d std/date.d std/datetime.d
std/datebase.d std/dateparse.d std/demangle.d std/encoding.d std/exception.d
std/file.d std/format.d std/functional.d std/getopt.d std/gregorian.d
std/intrinsic.d std/json.d std/loader.d std/math.d std/mathspecial.d std/md5.d
std/metastrings.d std/mmfile.d std/numeric.d std/outbuffer.d std/path.d std/perf.d
std/process.d std/random.d std/range.d std/regex.d std/regexp.d std/signals.d
std/socket.d std/socketstream.d std/stdint.d std/stdio.d std/stdiobase.d
std/stream.d std/string.d std/syserror.d std/system.d std/traits.d
std/typecons.d std/typetuple.d std/uni.d std/uri.d std/utf.d std/variant.d
std/xml.d std/zip.d std/zlib.d std/c/stdarg.d std/c/stdio.d etc/c/zlib.d
std/internal/math/biguintcore.d std/internal/math/biguintnoasm.d
std/internal/math/biguintx86.d std/internal/math/gammafunction.d
std/internal/math/errorfunction.d std/c/linux/linux.d std/c/linux/socket.d
generated/linux/debug/etc/c/zlib/adler32.o
generated/linux/debug/etc/c/zlib/compress.o
generated/linux/debug/etc/c/zlib/crc32.o
generated/linux/debug/etc/c/zlib/deflate.o
generated/linux/debug/etc/c/zlib/gzclose.o
generated/linux/debug/etc/c/zlib/gzlib.o
generated/linux/debug/etc/c/zlib/gzread.o
generated/linux/debug/etc/c/zlib/gzwrite.o
generated/linux/debug/etc/c/zlib/infback.o
generated/linux/debug/etc/c/zlib/inffast.o
generated/linux/debug/etc/c/zlib/inflate.o
generated/linux/debug/etc/c/zlib/inftrees.o
generated/linux/debug/etc/c/zlib/trees.o
generated/linux/debug/etc/c/zlib/uncompr.o
generated/linux/debug/etc/c/zlib/zutil.o
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
std.contracts has been scheduled for deprecation. Please use std.exception
instead.
std.gregorian has been scheduled for deprecation. Please use std.datetime
instead.
std.perf has been scheduled for deprecation. Please use std.datetime instead.
Testing generated/linux/debug/unittest/crc32
Testing generated/linux/debug/unittest/std/algorithm
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
std.algorithm.canFindSorted is scheduled for deprecation.  Use
std.range.SortedRange.canFind instead.
std.algorithm.lowerBound is scheduled for deprecation.  Use
std.range.SortedRange.lowerBound instead.
std.algorithm.upperBound is scheduled for deprecation.  Use
std.range.SortedRange.upperBound instead.
std.algorithm.equalRange is scheduled for deprecation.  Use
std.range.SortedRange.equalRange instead.
Testing generated/linux/debug/unittest/std/array
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/base64
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/bigint
Testing generated/linux/debug/unittest/std/bitmanip
Testing generated/linux/debug/unittest/std/compiler
Testing generated/linux/debug/unittest/std/complex
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/concurrency
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/container
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/contracts
std.contracts has been scheduled for deprecation. Please use std.exception
instead.
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/conv
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/cpuid
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/cstream
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/ctype
Testing generated/linux/debug/unittest/std/date
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/datetime
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/datebase
Testing generated/linux/debug/unittest/std/dateparse
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
std.date has been scheduled for deprecation. Please use std.datetime instead.
Testing generated/linux/debug/unittest/std/demangle
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/encoding
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/exception
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/file
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/format
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/functional
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/getopt
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/gregorian
std.gregorian has been scheduled for deprecation. Please use std.datetime
instead.
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/intrinsic
Testing generated/linux/debug/unittest/std/json
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/loader
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/math
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/mathspecial
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/md5
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/metastrings
Testing generated/linux/debug/unittest/std/mmfile
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/numeric
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/outbuffer
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/path
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/perf
std.perf has been scheduled for deprecation. Please use std.datetime instead.
Testing generated/linux/debug/unittest/std/process
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/random
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/range
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/regex
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
 --- std.regex(3410) broken test ---
Testing generated/linux/debug/unittest/std/regexp
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/signals
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/socket
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/socketstream
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/stdint
Testing generated/linux/debug/unittest/std/stdio
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/stdiobase
Testing generated/linux/debug/unittest/std/stream
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/string
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/syserror
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/system
Testing generated/linux/debug/unittest/std/traits
Testing generated/linux/debug/unittest/std/typecons
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Warning: WhiteHole!(I_1) used assert(0) instead of Error for the auto-
implemented nothrow function I_1.bar
Warning: AutoImplement!(C_6) ignored variadic arguments to the constructor
C_6(...)
Testing generated/linux/debug/unittest/std/typetuple
Testing generated/linux/debug/unittest/std/uni
Testing generated/linux/debug/unittest/std/uri
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/utf
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/variant
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/xml
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/zip
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/zlib
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/c/stdarg
Testing generated/linux/debug/unittest/std/c/stdio
Testing generated/linux/debug/unittest/etc/c/zlib
Testing generated/linux/debug/unittest/std/internal/math/biguintcore
Testing generated/linux/debug/unittest/std/internal/math/biguintnoasm
Testing generated/linux/debug/unittest/std/internal/math/biguintx86
Testing generated/linux/debug/unittest/std/internal/math/gammafunction
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/internal/math/errorfunction
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/debug/unittest/std/c/linux/linux
Testing generated/linux/debug/unittest/std/c/linux/socket
make --no-print-directory -f posix.mak OS=linux BUILD=release unittest
dmd -I../druntime/import  -w -d -m32 -O -release -nofloat -lib -
ofgenerated/linux/release/libphobos2.a ../druntime/lib/libdruntime.a crc32.d
std/algorithm.d std/array.d std/base64.d std/bigint.d std/bitmanip.d
std/compiler.d std/complex.d std/concurrency.d std/container.d std/contracts.d
std/conv.d std/cpuid.d std/cstream.d std/ctype.d std/date.d std/datetime.d
std/datebase.d std/dateparse.d std/demangle.d std/encoding.d std/exception.d
std/file.d std/format.d std/functional.d std/getopt.d std/gregorian.d
std/intrinsic.d std/json.d std/loader.d std/math.d std/mathspecial.d std/md5.d
std/metastrings.d std/mmfile.d std/numeric.d std/outbuffer.d std/path.d std/perf.d
std/process.d std/random.d std/range.d std/regex.d std/regexp.d std/signals.d
std/socket.d std/socketstream.d std/stdint.d std/stdio.d std/stdiobase.d
std/stream.d std/string.d std/syserror.d std/system.d std/traits.d
std/typecons.d std/typetuple.d std/uni.d std/uri.d std/utf.d std/variant.d
std/xml.d std/zip.d std/zlib.d std/c/stdarg.d std/c/stdio.d etc/c/zlib.d
std/internal/math/biguintcore.d std/internal/math/biguintnoasm.d
std/internal/math/biguintx86.d std/internal/math/gammafunction.d
std/internal/math/errorfunction.d std/c/linux/linux.d std/c/linux/socket.d
generated/linux/release/etc/c/zlib/adler32.o
generated/linux/release/etc/c/zlib/compress.o
generated/linux/release/etc/c/zlib/crc32.o
generated/linux/release/etc/c/zlib/deflate.o
generated/linux/release/etc/c/zlib/gzclose.o
generated/linux/release/etc/c/zlib/gzlib.o
generated/linux/release/etc/c/zlib/gzread.o
generated/linux/release/etc/c/zlib/gzwrite.o
generated/linux/release/etc/c/zlib/infback.o
generated/linux/release/etc/c/zlib/inffast.o
generated/linux/release/etc/c/zlib/inflate.o
generated/linux/release/etc/c/zlib/inftrees.o
generated/linux/release/etc/c/zlib/trees.o
generated/linux/release/etc/c/zlib/uncompr.o
generated/linux/release/etc/c/zlib/zutil.o
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
std.contracts has been scheduled for deprecation. Please use std.exception
instead.
std.gregorian has been scheduled for deprecation. Please use std.datetime
instead.
std.perf has been scheduled for deprecation. Please use std.datetime instead.
Testing generated/linux/release/unittest/crc32
Testing generated/linux/release/unittest/std/algorithm
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
std.algorithm.canFindSorted is scheduled for deprecation.  Use
std.range.SortedRange.canFind instead.
std.algorithm.lowerBound is scheduled for deprecation.  Use
std.range.SortedRange.lowerBound instead.
std.algorithm.upperBound is scheduled for deprecation.  Use
std.range.SortedRange.upperBound instead.
std.algorithm.equalRange is scheduled for deprecation.  Use
std.range.SortedRange.equalRange instead.
Testing generated/linux/release/unittest/std/array
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/base64
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/bigint
Testing generated/linux/release/unittest/std/bitmanip
Testing generated/linux/release/unittest/std/compiler
Testing generated/linux/release/unittest/std/complex
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/concurrency
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/container
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/contracts
std.contracts has been scheduled for deprecation. Please use std.exception
instead.
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/conv
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/cpuid
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/cstream
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/ctype
Testing generated/linux/release/unittest/std/date
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/datetime
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/datebase
Testing generated/linux/release/unittest/std/dateparse
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
std.date has been scheduled for deprecation. Please use std.datetime instead.
Testing generated/linux/release/unittest/std/demangle
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/encoding
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/exception
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/file
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/format
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/functional
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/getopt
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/gregorian
std.gregorian has been scheduled for deprecation. Please use std.datetime
instead.
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/intrinsic
Testing generated/linux/release/unittest/std/json
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/loader
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/math
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/mathspecial
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/md5
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/metastrings
Testing generated/linux/release/unittest/std/mmfile
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/numeric
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
/usr/bin/ld: Warning: size of symbol
`_D3std7numeric58__T21gapWeightedSimilarityVAyaa6_61203d3d2062TAAyaTAAyaTiZ21gapWeightedSimilarityFAAyaAAyaiZi'
changed from 358 in generated/linux/release/unittest/std/numeric.o to 353 in
generated/linux/release/unittest/std/numeric.o
Testing generated/linux/release/unittest/std/outbuffer
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/path
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/perf
std.perf has been scheduled for deprecation. Please use std.datetime instead.
Testing generated/linux/release/unittest/std/process
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/random
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/range
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/regex
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
 --- std.regex(3410) broken test ---
Testing generated/linux/release/unittest/std/regexp
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/signals
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/socket
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/socketstream
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/stdint
Testing generated/linux/release/unittest/std/stdio
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/stdiobase
Testing generated/linux/release/unittest/std/stream
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/string
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/syserror
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/system
Testing generated/linux/release/unittest/std/traits
Testing generated/linux/release/unittest/std/typecons
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Warning: AutoImplement!(C_6) ignored variadic arguments to the constructor
C_6(...)
Testing generated/linux/release/unittest/std/typetuple
Testing generated/linux/release/unittest/std/uni
Testing generated/linux/release/unittest/std/uri
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/utf
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/variant
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/xml
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/zip
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/zlib
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/c/stdarg
Testing generated/linux/release/unittest/std/c/stdio
Testing generated/linux/release/unittest/etc/c/zlib
Testing generated/linux/release/unittest/std/internal/math/biguintcore
Testing generated/linux/release/unittest/std/internal/math/biguintnoasm
Testing generated/linux/release/unittest/std/internal/math/biguintx86
Testing generated/linux/release/unittest/std/internal/math/gammafunction
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/internal/math/errorfunction
std.date has been scheduled for deprecation. Please use std.datetime instead.
std.dateparse has been scheduled for deprecation. Please use std.datetime
instead.
Testing generated/linux/release/unittest/std/c/linux/linux
Testing generated/linux/release/unittest/std/c/linux/socket

---------------------------


A few such messages wouldn't be a problem. It's the fact that they're flooding the output.

- Jonathan M Davis
January 15, 2011

Jonathan M Davis wrote:
>
> And from the looks of it, _anyone_ using std.file will end up getting those pragma messages, even if they _don't_ use std.date or std.dateparse at all, simply because std.file uses them for functions which are going to be deprecated. So, it seems to me that it's going to be highly annoying all around to use the pragmas instead of just deprecating them. I expect that if the pragmas weren't as heavy-handed, it wouldn't be as big an issue, but they seem to print just because you used a module that used a module that has such a pragma in it - even if you didn't directly or indirectly use any of the functionality which was scheduled for deprecation.
>
> 

Then leave the pragmas off.
January 15, 2011
On Saturday 15 January 2011 21:50:53 Walter Bright wrote:
> Jonathan M Davis wrote:
> > And from the looks of it, _anyone_ using std.file will end up getting those pragma messages, even if they _don't_ use std.date or std.dateparse at all, simply because std.file uses them for functions which are going to be deprecated. So, it seems to me that it's going to be highly annoying all around to use the pragmas instead of just deprecating them. I expect that if the pragmas weren't as heavy-handed, it wouldn't be as big an issue, but they seem to print just because you used a module that used a module that has such a pragma in it - even if you didn't directly or indirectly use any of the functionality which was scheduled for deprecation.
> 
> Then leave the pragmas off.

??? You mean not put the pgramas in std.date and std.dateparse? Doesn't that essentially mean that they're going to get deprecated with no warning when they do get deprecated? Or are you thinking that updating the documentation to say that they're scheduled for deprecation is enough warning? If so, I'm fine with that, but I expect that that will primarily mean that new code will use std.datetime rather than the old code being fixed before std.date is actually deprecated, since I wouldn't really expect anyone to be reading the documentation unless they weren't already using the functions and familiar with them.

Regardless, what you're proposing then is that I mark std.date and std.dateparse as scheduled for deprecation now but that I don't actually use the pragma. Then, in a release or two or whenever we decide to deprecate them, we mark them as deprecated. So, anyone who reads the documentation will be aware of the impending deprecation, but anyone already using the functionality without looking at the deprecation won't know.

- Jonathan M Davis
January 15, 2011

Jonathan M Davis wrote:
> On Saturday 15 January 2011 21:50:53 Walter Bright wrote:
> 
>>
>> Then leave the pragmas off.
>> 
>
> ??? You mean not put the pgramas in std.date and std.dateparse? Doesn't that essentially mean that they're going to get deprecated with no warning when they do get deprecated? Or are you thinking that updating the documentation to say that they're scheduled for deprecation is enough warning? If so, I'm fine with that, but I expect that that will primarily mean that new code will use std.datetime rather than the old code being fixed before std.date is actually deprecated, since I wouldn't really expect anyone to be reading the documentation unless they weren't already using the functions and familiar with them.
>
> Regardless, what you're proposing then is that I mark std.date and std.dateparse as scheduled for deprecation now but that I don't actually use the pragma. Then, in a release or two or whenever we decide to deprecate them, we mark them as deprecated. So, anyone who reads the documentation will be aware of the impending deprecation, but anyone already using the functionality without looking at the deprecation won't know.
>
> 

Then how about fixing the functions in std.file so they don't call the deprecated functions?
January 15, 2011
On Saturday 15 January 2011 22:03:28 Walter Bright wrote:
> Jonathan M Davis wrote:
> > On Saturday 15 January 2011 21:50:53 Walter Bright wrote:
> >> Then leave the pragmas off.
> > 
> > ??? You mean not put the pgramas in std.date and std.dateparse? Doesn't that essentially mean that they're going to get deprecated with no warning when they do get deprecated? Or are you thinking that updating the documentation to say that they're scheduled for deprecation is enough warning? If so, I'm fine with that, but I expect that that will primarily mean that new code will use std.datetime rather than the old code being fixed before std.date is actually deprecated, since I wouldn't really expect anyone to be reading the documentation unless they weren't already using the functions and familiar with them.
> > 
> > Regardless, what you're proposing then is that I mark std.date and std.dateparse as scheduled for deprecation now but that I don't actually use the pragma. Then, in a release or two or whenever we decide to deprecate them, we mark them as deprecated. So, anyone who reads the documentation will be aware of the impending deprecation, but anyone already using the functionality without looking at the deprecation won't know.
> 
> Then how about fixing the functions in std.file so they don't call the deprecated functions?

It's not just the functions. It's the type. Several functions in std.file take a std.date.d_time. I've written replacements which take a std.datetime.SysTime, but unless we want to immediately break code, we need to keep the old versions there. Sure, the implementations of the functions that take a d_time could be changed to convert the d_time to a SysTime and call the new versions, which would make it so that none of the std.date functions were being called, but they would still be using std.date.d_time.

Also, even if I were take the approach of altering the functions that use a d_time so that they don't call anything in std.date, and I duplicated the d_time alias in std.file, you'd then need a pragma in std.file to tell programmers to stop using those functions - and I'm not aware of a way to stick such a pragma on a function so that it's shown if those functions are called (you can with template functions, but these functions aren't templated) - so anyone using std.file - even when correctly using the new SysTime functions - would get see the pragma.

It seems like what we really need is another level of deprecated which marks symbols as scheduled to be deprecated instead of actually deprecating them and so does not require -d. Using pragma as we are isn't precise enough to avoid unnecessary messages. Regardless of whether we had such a version of deprecated, however, the issue of telling programmers what to use instead would remain, since deprecated has no way of telling you what to use instead, if anything.

So, with what we currently have, I see 3 options:

1. Just deprecate the stuff. You won't get the unnecessary the pragma messages from using std.file, and the build output won't be flooded with them either. It will, however, break builds.

2. Use the pragma messages and let them show up more than they technically need to and let them flood the build output. No builds will be broken, however.

3. Don't use the pragma messages. Just update the documentation. Then, there's _some_ warning at least, when we finally go and deprecate the symbols in question, but it will still come out of nowhere for some people.

Regardless, there will be one function - the version std.file.lastModified which just takes the file name - which will break the build of anyone using it, because the only thing changing in its signature is its return type (SysTime instead of d_time), so there's no way to overload it. Fortunately, however, I think that it's the only function in that boat.

- Jonathan M Davis
January 16, 2011
Could you replace the use of std.date within Phobos with std.datetime?

Andrei

On 1/15/11 10:49 PM, Jonathan M Davis wrote:
> On Saturday 15 January 2011 20:28:33 Jonathan M Davis wrote:
>> I've been going through the process of making Phobos use std.datetime instead of std.date. It isn't all that many changes, but it does mean that we're going to need to deprececate several functions outside of std.date and std.dateparse (all in std.file IIRC) and of course the modules std.gregorian, std.date, and std.dateparse. That's fine. The problem, however, is marking them as "scheduled for deprecation" with a pragma rather than just marking them as deprecated. It works just fine to mark them as scheduled for deprecation with a pragma, but it means that the output for the unittest build of Phobos spits out
>>
>> std.date has been scheduled for deprecation. Please use std.datetime instead. std.dateparse has been scheduled for deprecation. Please use std.datetime instead.
>>
>> almost every other line (as opposed to std.gregorian, which prints out its message once or twice). It's definitely annoying, albeit temporary.
>>
>> Is it acceptable to pollute the output for the build that thoroughly, or should I should I just mark the std.date-related stuff as deprecated instead of scheduled to be deprecated, or are we willing to have the build output flooded with "scheduled for deprecation" messages for a release or two?
>
> And from the looks of it, _anyone_ using std.file will end up getting those pragma messages, even if they _don't_ use std.date or std.dateparse at all, simply because std.file uses them for functions which are going to be deprecated. So, it seems to me that it's going to be highly annoying all around to use the pragmas instead of just deprecating them. I expect that if the pragmas weren't as heavy-handed, it wouldn't be as big an issue, but they seem to print just because you used a module that used a module that has such a pragma in it - even if you didn't directly or indirectly use any of the functionality which was scheduled for deprecation.
>
> - Jonathan M Davis
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
January 16, 2011
One possibility would be to have the legacy functions taking a d_time simply take a long for now (d_time was an alias for it I recall). Then you don't need to import std.date, and the warnings are gone.

Andrei

On 1/16/11 12:42 AM, Jonathan M Davis wrote:
> On Saturday 15 January 2011 22:03:28 Walter Bright wrote:
>> Jonathan M Davis wrote:
>>> On Saturday 15 January 2011 21:50:53 Walter Bright wrote:
>>>> Then leave the pragmas off.
>>>
>>> ??? You mean not put the pgramas in std.date and std.dateparse? Doesn't that essentially mean that they're going to get deprecated with no warning when they do get deprecated? Or are you thinking that updating the documentation to say that they're scheduled for deprecation is enough warning? If so, I'm fine with that, but I expect that that will primarily mean that new code will use std.datetime rather than the old code being fixed before std.date is actually deprecated, since I wouldn't really expect anyone to be reading the documentation unless they weren't already using the functions and familiar with them.
>>>
>>> Regardless, what you're proposing then is that I mark std.date and std.dateparse as scheduled for deprecation now but that I don't actually use the pragma. Then, in a release or two or whenever we decide to deprecate them, we mark them as deprecated. So, anyone who reads the documentation will be aware of the impending deprecation, but anyone already using the functionality without looking at the deprecation won't know.
>>
>> Then how about fixing the functions in std.file so they don't call the deprecated functions?
>
> It's not just the functions. It's the type. Several functions in std.file take a std.date.d_time. I've written replacements which take a std.datetime.SysTime, but unless we want to immediately break code, we need to keep the old versions there. Sure, the implementations of the functions that take a d_time could be changed to convert the d_time to a SysTime and call the new versions, which would make it so that none of the std.date functions were being called, but they would still be using std.date.d_time.
>
> Also, even if I were take the approach of altering the functions that use a d_time so that they don't call anything in std.date, and I duplicated the d_time alias in std.file, you'd then need a pragma in std.file to tell programmers to stop using those functions - and I'm not aware of a way to stick such a pragma on a function so that it's shown if those functions are called (you can with template functions, but these functions aren't templated) - so anyone using std.file - even when correctly using the new SysTime functions - would get see the pragma.
>
> It seems like what we really need is another level of deprecated which marks symbols as scheduled to be deprecated instead of actually deprecating them and so does not require -d. Using pragma as we are isn't precise enough to avoid unnecessary messages. Regardless of whether we had such a version of deprecated, however, the issue of telling programmers what to use instead would remain, since deprecated has no way of telling you what to use instead, if anything.
>
> So, with what we currently have, I see 3 options:
>
> 1. Just deprecate the stuff. You won't get the unnecessary the pragma messages from using std.file, and the build output won't be flooded with them either. It will, however, break builds.
>
> 2. Use the pragma messages and let them show up more than they technically need to and let them flood the build output. No builds will be broken, however.
>
> 3. Don't use the pragma messages. Just update the documentation. Then, there's _some_ warning at least, when we finally go and deprecate the symbols in question, but it will still come out of nowhere for some people.
>
> Regardless, there will be one function - the version std.file.lastModified which just takes the file name - which will break the build of anyone using it, because the only thing changing in its signature is its return type (SysTime instead of d_time), so there's no way to overload it. Fortunately, however, I think that it's the only function in that boat.
>
> - Jonathan M Davis
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
« First   ‹ Prev
1 2 3