Commit graph

180 commits

Author SHA1 Message Date
Vladimir Panteleev
d18d52641c
std.datetime.date: Clarify that add/roll mutate the current object
It was not clear from the documentation whether these methods mutate
the current object, or return a new object with the applied
modification. The fact that these functions have a non-void return
type adds to the confusion.

Clarify this by explicitly mentioning that the functions mutate the
current object, and add a "Returns:" DDoc section documenting that the
methods simply return `this`.
2018-11-01 21:24:52 +00:00
Iain Buclaw
fd5facfe04 posix.mak: Enforce whitespace before opening parenthesis for version conditions 2018-09-22 16:57:24 +02:00
Basile Burg
db819575f1 Fix issue 11959 - Set private symbols declared in version(unittest) blocks 2018-08-26 10:22:11 +02:00
Jonathan M Davis
371ed2c475 Clean up use of scope in std.datetime.systime.
This removes unnecessary uses of scope, adds a lot of necessary uses of
scope, and adds basic tests that ensure that each of the functions in
std.datetime.systime compile when given scope arguments. It also enables
some previously commented out tests involving immutable SysTimes (IIRC,
they didn't use to compile due to compiler bugs related to
Rebindable!(immutable TimeZone), but they now compiler, so they should
be enabled).
2018-06-27 21:27:43 -06:00
The Dlang Bot
ec8bb20d28
Merge pull request #6591 from jmdavis/issue_17732_again
Fix issue 12507: SysTime.init.toString() segfaults.
merged-on-behalf-of: Petar Kirov <ZombineDev@users.noreply.github.com>
2018-06-26 13:33:50 +02:00
Jonathan M Davis
9b1f72d89b Fix issue 12507: SysTime.init.toString() segfaults.
This adds a special TimeZone type internal to SysTime which _timezone is
directly initialized to so that SysTime.init will work without
segfaulting but will still be uniquely identifiable with the is
operator. Or at least, _timezone is _supposed_ to be directly
initialized to it, but issue# 17740 currently prevents that. So,
_timezone has been temporarily renamed to _timezoneStorage and private
getters and setters named _timezone have been added. The getter then
does a null check and returns InitTimeZone() for SysTime.init to
simulate the member variable having been initialized to InitTimeZone().
Once issue# 17740 has been fixed, these accessors will be unnecessary,
and the code should be updated so that _timezone is properly a variable
again and is directly initialized with InitTimeZone().

The new TimeZone type - InitTimeZone - is internal to SysTime and can
only be obtained by the timezone getter on SysTime.init. It acts the
same as UTC except that it is not special-cased by the to*String
functions and thus will print out its timezone as +00:00 instead of z,
which is perfectly legitimate per the spec. And as such, if _timezone
were directly initialized with InitTimeZone(), there would be no extra
checks due to this change, and everything would just work. However,
until issue# 17740 is fixed, there will be an extra null check any time
that a function is called on _timezone, because _timezone is currently a
wrapper that does a null check rather than being a member variable
directly like it's supposed to be.

Unlike previous attempts along these lines, this does not make it so
that SysTime.init has NaN behavior such that any operation (other than
assignment) on an an uninitialized SysTime would result in SysTime.init,
and the timezone setter property does not set the SysTime to
SysTime.init if it's passed this TimeZone. So, unfortunately, it _is_
possible to have other SysTime values with the special TimeZone, but it
was deemed unnecessarily complex for too little benefit to add the NaN
behavior. And regardless, SysTime.init is still uniquely identifiable
via the is operator. It's just that it can't technically be uniquely
identified by the timezone getter, which was never a supported feature
anyway.
2018-06-26 02:22:49 -06:00
The Dlang Bot
9334f46371
Merge pull request #6610 from jmdavis/scope_const_date
Remove const scope from value types in std.datetime.date.
merged-on-behalf-of: Nathan Sashihara <n8sh@users.noreply.github.com>
2018-06-26 01:19:15 +02:00
Jonathan M Davis
9e09703b8c Remove const scope from value types in std.datetime.date.
None of these uses of const scope should be required, because Date,
TimeOfDay, and DateTime are all value types with no indirections.
2018-06-24 19:38:12 -06:00
Jonathan M Davis
e3de72cfea Remove deprecated functions from std.datetime.timezone. 2018-06-24 18:03:51 -06:00
The Dlang Bot
d682187cfe
Merge pull request #6598 from Alexibu/patch-1
Document deprecation of TimeZone.getTimeZone
merged-on-behalf-of: Jonathan M Davis <jmdavis@users.noreply.github.com>
2018-06-24 12:15:26 +02:00
The Dlang Bot
67a86ee574
Merge pull request #6602 from WalterBright/date-in
dip1000: std.datetime.date replace 'in' with 'scope const'
merged-on-behalf-of: Petar Kirov <ZombineDev@users.noreply.github.com>
2018-06-24 11:19:51 +02:00
The Dlang Bot
82a7dc6f08
Merge pull request #6604 from WalterBright/interval-in
interval std.datetime.interval replace 'in' with 'scope const'
merged-on-behalf-of: Walter Bright <WalterBright@users.noreply.github.com>
2018-06-24 09:42:12 +02:00
The Dlang Bot
6180697df3
Merge pull request #6603 from WalterBright/timezone-in
dip1000: std.datetime.timezone replace 'in' with 'scope const'
merged-on-behalf-of: Walter Bright <WalterBright@users.noreply.github.com>
2018-06-24 08:31:04 +02:00
Walter Bright
878277200d interval std.datetime.interval replace 'in' with 'scope const' 2018-06-23 23:26:57 -07:00
Walter Bright
92aa49952b dip1000: std.datetime.timezone replace 'in' with 'scope const' 2018-06-23 22:32:50 -07:00
Walter Bright
4f47997635 dip1000: std.datetime.date replace 'in' with 'scope const' 2018-06-23 22:21:17 -07:00
Walter Bright
f6aeb514c0 dip1000: std.datetime.system replace 'in' 2018-06-23 21:18:05 -07:00
Jonathan M Davis
852dc7ef6e
Some fixes to the docs for TimeZone and LocalTime
The information that the docs for TimeZone and LocalTime gave about the TZ Database
was outdated.
2018-06-22 19:28:31 -06:00
Alexibu
58f8200fc7
Update timezone.d 2018-06-22 20:39:45 +10:00
Alexibu
8d971df834
Document deprecation of TimeZone.getTimeZone
There was documentation refering to the now deprecated method of getting one of the of the timezone implementations via the static TimeZone.getTimeZone.
2018-06-22 20:30:50 +10:00
Nathan Sashihara
27257d1413
Revert "Add dontOptimizeAway to std.datetime.stopwatch" 2018-06-13 16:19:17 -04:00
The Dlang Bot
e257ce133a
Merge pull request #5416 from wilzbach/dontoptimizeaway
Add dontOptimizeAway to std.datetime.stopwatch
merged-on-behalf-of: unknown
2018-06-13 20:07:09 +02:00
Joakim
f916d73af7 Musl: last remaining tweaks 2018-06-07 11:58:44 +05:30
The Dlang Bot
a56ae8026b
Merge pull request #6542 from wilzbach/underscore
Remove a few cases of underscore escaping
merged-on-behalf-of: Steven Schveighoffer <schveiguy@users.noreply.github.com>
2018-06-04 22:29:52 +02:00
Roman Chistokhodov
12185caf84 Add nogc attribute to unixTimeToStdTime 2018-06-04 16:13:27 +03:00
Sebastian Wilzbach
c324714fde Remove a few cases of underscore escaping 2018-06-04 13:05:01 +02:00
The Dlang Bot
ca72c991cd
Merge pull request #6422 from wilzbach/duplicate-static-gshared
Remove redundant 'static' storage classes on __gshared variables
merged-on-behalf-of: Jack Stouffer <jack@jackstouffer.com>
2018-04-05 20:30:54 +02:00
Sebastian Wilzbach
6f766dce5d Remove redundant 'static' storage classes 2018-04-05 13:11:48 +02:00
Sebastian Wilzbach
6f1bb469ef Fix Issue 18704 - std/datetime/stopwatch.d(452) assertion failure on auto-tester 2018-04-05 07:14:20 +02:00
The Dlang Bot
0d45880abe
Merge pull request #6356 from JackStouffer/datetime-docs
Simplified std.datetime.package overview
merged-on-behalf-of: Jack Stouffer <jack@jackstouffer.com>
2018-04-05 05:07:11 +02:00
Jack Stouffer
bc6e75e5a9 Added examples to std.datetime.systime 2018-04-04 10:42:37 -04:00
Jack Stouffer
a737f62160 Simplified std.datetime.package overview 2018-04-04 09:23:52 -04:00
Sebastian Wilzbach
6797808b39
Merge pull request #6366 from FeepingCreature/fix/localtime-has-always-been-broken-and-should-never-have-been-used
Fix localtime
2018-04-03 11:21:56 +02:00
Mathis Beer
5d6bf2bdd2 Do not call localtime. It is not threadsafe. You will randomly return wrong times in threaded apps. Fixes Issue 18714. 2018-04-03 09:57:00 +02:00
Sebastian Wilzbach
42894784dd Markdownify Phobos
$(D word) -> `word`
2018-04-02 22:32:47 +02:00
Sebastian Wilzbach
81b05c0fdd std.datetime: make -dip1000 compatible 2018-03-28 02:33:10 +02:00
Jack Stouffer
5094a273a8 Fixed >120 character line in std.datetime.timezone 2018-03-26 15:25:35 -04:00
Jack Stouffer
2f737b9bf2 Add examples to std.datetime.date and enable dscanner check 2018-03-20 10:47:02 -04:00
Jack Stouffer
8575c286da Add public examples to std.datetime.package and enable dscanner check 2018-03-19 10:38:37 -04:00
Sebastian Wilzbach
25c3ef46af Fix Issue 18593 - std.datetime.stopwatch.benchmark shouldn't optimize away its functions 2018-03-11 22:47:21 +01:00
Jonathan M Davis
cb2bbe1b7c Fix issue with benchmark unit test when compiling with optimizations.
Apparently, with gdc and optimizations turned on, the test in question
is optimized enough that the first function being benchmarked sometimes
takes no time at all (since the function being benchmarked does
nothing), causing the test to fail. This fixes that.
2018-03-11 14:12:19 -06:00
Jonathan M Davis
1436fca1cc Add website link to author name for Jonathan M Davis. 2018-03-10 16:31:23 -07:00
Jack Stouffer
626065d78f Added writer version of toString to std.datetime.interval.Interval 2018-03-06 13:08:01 -05:00
The Dlang Bot
becfefbae9
Merge pull request #6224 from ThomasMader/master
Use baseName to also skip leapseconds file in subfolders
merged-on-behalf-of: Jonathan M Davis <jmdavis@users.noreply.github.com>
2018-03-05 07:55:39 +01:00
Thomas Mader
138d43e254 Use baseName to also skip leapseconds file in subfolders like on NixOS in the posix subfolder. 2018-02-26 13:10:13 +01:00
Martin Nowak
09926f9837 Merge remote-tracking branch 'upstream/stable' into merge_stable 2018-02-23 21:37:12 +01:00
Jack Stouffer
663b5b9278 Revert addition of StdUnittest 2018-02-20 13:32:32 -05:00
carblue
b0beef2518 std.datetime.systime.d - fix -dip1000 compilable issues; add scope to @property adjTime 2018-02-18 14:10:28 +01:00
The Dlang Bot
1cc3b530aa
Merge pull request #6183 from carblue/dip1000_2
std.datetime.timezone - fix a -dip1000 compilable issue; trivial
merged-on-behalf-of: Sebastian Wilzbach <sebi.wilzbach@gmail.com>
2018-02-18 10:05:49 +01:00
Jack Stouffer
dcdf8b4125 Fix Issue 10828 - datetime toString functions should accept sink 2018-02-16 12:52:00 -05:00