Thread overview | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
January 15, 2011 [phobos] Deprecation of std.date | ||||
---|---|---|---|---|
| ||||
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 [phobos] Deprecation of std.date | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jonathan M Davis |
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 [phobos] Deprecation of std.date | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jonathan M Davis | 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 [phobos] Deprecation of std.date | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | 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 [phobos] Deprecation of std.date | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jonathan M Davis |
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 [phobos] Deprecation of std.date | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | 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 [phobos] Deprecation of std.date | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jonathan M Davis |
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 [phobos] Deprecation of std.date | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | 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 [phobos] Deprecation of std.date | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jonathan M Davis | 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 [phobos] Deprecation of std.date | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jonathan M Davis | 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
|
Copyright © 1999-2021 by the D Language Foundation