Commit graph

198 commits

Author SHA1 Message Date
Oscar Nihlgård
33ed8f7e73 times.Timezone changes (#8527)
* Use floorDiv in times.nim

* New implementation of times.Timezone

* Tweak doc comments

* Fix typo
2018-08-17 11:12:58 +02:00
alaviss
7ef268274f Haiku support for Nim (#8542)
* posix_other: Haiku now has spawn.h

This is added per https://dev.haiku-os.org/ticket/13446

* posix_other: Add Haiku specific Dirent members

* cpuinfo: Add an implementation for Haiku

* distros: Add basic Haiku support

* encodings: update Haiku support

* fenv, math: Haiku now provides libm

* times: Add Haiku struct members

* ansi_c, osalloc: Add Haiku constants

* threads: Add Haiku support

* testament: Haiku uses LIBRARY_PATH

* nim.cfg: Update Haiku support

libnetwork should only be linked if network functions are used

* threads: Haiku does not support -pthread switch

* tworkingdir: Haiku's env is in /bin

* posix_other: add SIGKILLTHR for Haiku

* sockets: link with libnetwork on Haiku

* coro: correct ucontext.h location

http://pubs.opengroup.org/onlinepubs/009696699/basedefs/ucontext.h.html

* coro: ucontext backend is not available on Haiku

Haiku doesn't provide the <ucontext.h> header, as it was removed from POSIX

* coro: fix setjmp backend

The compiler does not allow statements after a noreturn function

* nativesockets: Haiku doesn't support AI_V4MAPPED

* system: hostOS can contains "haiku"

* os: add support for Haiku's packagefs

packagefs is read-only, but there are writable holes to the underlying
file system as well

* os: update constant for Haiku
2018-08-14 09:35:07 +02:00
Oscar Nihlgård
503dc22236 Use enum string values in times.nim (#8413) 2018-07-23 22:40:39 +02:00
Timothee Cour
2ac22b4cf0 fix #8273 times format regression, and fix inconsistent ordering in 1 format overload (#8290)
* Fix issue #8273 [regression] [times.format] Error: attempting to call
undeclared routine: 'format'

* rename format to f for consistency with other overloads and avoid
similar bugs as #8273

* breaking change since PR 8094: changed format*(f: TimeFormat, dt: DateTime) to format*(dt: DateTime, f: TimeFormat) for consistency w other overloads

* use consistent ordering for times.parse procs
2018-07-16 21:15:17 +02:00
Oscar Nihlgård
3b310e91cd New implementations of times.parse & times.format (#8094) 2018-07-09 20:04:25 +02:00
Oscar Nihlgård
b61e69202b Unexport times.stringifyUnit (#8168) 2018-07-01 12:54:13 +02:00
Oscar Nihlgård
371f87e962 Change inconsistent paramaters in times.nim (#8091) 2018-06-23 09:01:55 -04:00
Michael Voronin
b7a8eef87a [change] Replace mutators with their more generic versions 2018-06-06 13:10:56 +03:00
Michael Voronin
5da74d5979 [add] Add fraction of seconds to parse/format utils 2018-05-31 16:09:48 +03:00
Michael Voronin
8aeb24b4fd [add] add between function to calculate TI between two datetimes 2018-05-31 16:02:40 +03:00
Michael Voronin
11fcc83f8a [add] Add procs for TimeInterval stringify 2018-05-31 16:02:37 +03:00
Michael Voronin
a573577cdc [add+change] Added toDurationParts proc to convert Duration to array[FixedTimeUnit, int64] of it's human-readable parts, use it in $Duration 2018-05-31 16:01:58 +03:00
Michael Voronin
08d1b5892b [doc] Standardize deprecation warnings 2018-05-10 13:18:38 +03:00
Michael Voronin
8a080acda9 [add] Add some wrappers 2018-05-10 13:18:38 +03:00
Michael Voronin
0ff0dfbfce [refactoring] Rearrange functions for better readability/usage 2018-05-10 13:18:38 +03:00
Michael Voronin
52eac6fb64 [doc] Add/modify some runnable examples for pure/times 2018-05-10 13:18:38 +03:00
Michael Voronin
b63dc4042b [fix] Little fix for runnable example in pure/times 2018-05-10 13:18:38 +03:00
Dominik Picheta
f7f69b1abb
Merge pull request #7624 from skilchen/fix-issue7620
there is no hour 0 in am/pm time (see #7620)
2018-05-03 16:07:27 +01:00
Andreas Rumpf
fb15a265c5 times.nim: don't rely on zero terminator 2018-04-29 08:13:25 +02:00
Oscar Nihlgård
b34580fd5b Rename Time.nanoseconds to nanosecond (#7673)
* Rename `Time.nanoseconds` to `nanosecond`

* Fix bug with Duration comparision
2018-04-25 02:43:26 +02:00
Oscar Nihlgård
7d034d7b6a Add fromWinTime and deprecate unixTimeToWinTime/winTimeToUnixTime (#7641) 2018-04-19 22:41:06 +02:00
Oscar Nihlgård
fdf1d12380 Change type of Timeval.tv_sec to posix.Time (#7646) 2018-04-18 21:24:28 +02:00
skilchen
a708fda733 allow stringification of DurationZero (#7625) 2018-04-18 13:22:05 +02:00
Hendrik
b1b517128e os.setLastModificationTime*(file: string, t: times.Time) (#7543)
* add proc toFILETIME to winlean
* add proc toWinTime to times
* add proc setFileTime to winlean
* openHandle with write access
* add proc setLastModificationTime to os
* moved epochDiff,rateDiff constants and proc toWinTime
The constants were moved out of the when defined(JS) block so that they
are alsways available in proc toWinTime.
proc toWinTime was moved above the # Deprecated procs comment. Best new
location seemed to be with the toUnix proc.
2018-04-16 22:03:24 +02:00
skilchen
bf6e82a861 there is no hour 0 in am/pm time 2018-04-16 17:40:54 +02:00
Oscar Nihlgård
02d6dd723d Timeinterval optimization (#7608)
* TimeInterval optimization

* Fix typo in `$`(Duration)
2018-04-16 00:01:34 +02:00
Andreas Rumpf
116e984a6b remove deprecated timeToTimeInfo; fixes #3678 2018-04-14 00:59:32 +02:00
Oscar Nihlgård
f6df2d9956 Sub second time resolution (#6978)
* Add deprecation warnings to recently deprecated procs

* Fix bad usage of the times module

* Introduce sub second resolution

* Fix usage of C's time()

* Switch to nanosecond resolution

* Make Time & Duration opaque again and fix some errors

* Change back to TimeInterval for shorthands

* Fix JS test

* Fix build error for windows

* Undeprecate epochTime

* Documentation and minor changes

* Lots of bugfixes and doc comments

* Attempt to make travis & appveyor green

* Fix edge cases for dealing with the local timezone

* Workaround JS backend overflow/underflow bug

* Use better workaround for not knowing the size of time_t

* Use all available timezones for tests

* Fix indentation

* Add procs for accessing the fractional part of a duration

* Order time units from smallest to largest since it makes more sense

* Include months and years in `TimeUnit`

* Review fix
2018-04-13 07:36:30 +02:00
Yuriy Glukhov
bc724a0a81 Fixed compilation of times.nim with mingw 4.9.2 C++ 32bit 2018-04-03 19:05:36 +03:00
data-man
759023e157 Comparing datetimes 2018-04-01 00:41:38 +03:00
Dominik Picheta
ceebfb3e89 Remove repetitive index checks in b30b920751. 2018-02-19 20:00:14 +00:00
data-man
b30b920751 Fix date parsing for a bad inputs 2018-02-19 16:57:17 +03:00
Dominik Picheta
24cae4addb
Merge pull request #7033 from GULPF/allow-timezone-closures
Allow timezone procs to be closures
2018-01-10 17:45:29 +00:00
Oscar Nihlgård
c098ee3c7a Remove nimcall pragma from tz procs 2018-01-05 11:16:58 +01:00
Oscar Nihlgård
c344fb311d Allow timezone procs to be closures 2018-01-05 10:07:46 +01:00
GULPF
30d182e5d6 Unexport epochday procs (#7024) 2018-01-03 23:54:36 +01:00
GULPF
74fb3e6e6e
Improve deprecation comments in times module 2017-12-31 14:40:46 +01:00
Daniil Yarancev
a521f98392 Add warnings about deprecation to times module (#7001)
* Add warnings about deprecation to times module

I've added warnings about some procedures being deprecated.
Also I can't find what is the replacement for `getTimezone` proc, please help with that

* Update times.nim

* Update times.nim
2017-12-30 15:15:15 +00:00
Araq
77d56aaff6 cleanup times.nim 2017-12-21 10:11:45 +01:00
GULPF
a879973081 Better times module (#6552)
* First work on better timezones

* Update tests to new api.
Removed tests for checking that `isDst` was included when formatting, since `isDst` no longer affects utc offset (the entire utc offset is stored directly in `utcOffset` instead).

* Deprecate getLocaltime & getGmTime
* Add `now()` as a shorthand for GetTIme().inZone(Local)
* Add FedericoCeratto's timezone tests (#6548)
* Run more tests in all timezones

* Make month enum start at 1 instead of 0
* Deprecate getDayOfWeekJulian
* Fix issues with gc safety
* Rename TimeInfo => DateTime
* Fixes #6465
* Improve isLeapYear
* FIx handling negative adjTime

* Cleanup:
- deprecated toSeconds and fromSeconds, added fromUnix and toUnix instead (that returns int64 instead of float)
- added missing doc comments
- removed some unnecessary JS specific implementations

* Fix misstake in JS `-` for Time

* Update usage of TimeEffect
* Removed unecessary use of `difftime`
* JS fix for local tz
* Fix subtraction of months
* Fix `days` field in `toTimeInterval`
* Style and docs
* Fix getDayOfYear for real this time...
* Fix handling of adding/subtracting time across dst transitions
* Fix some bad usage of the times module in the stdlib
* Revert to use proper time resoultion for seeding in random.nim
* Move deprecated procs to bottom of file
* Always use `epochTime` in `randomize`
* Remove TimeInterval normalization
* Fixes #6905

* Fix getDayOfWeek for year < 1
* Export toEpochDay/fromEpochDay and change year/month/monthday order
* Add asserts for checking that the monthday is valid
* Fix some remaining ambiguous references to `Time`
* Fix ambiguous reference to Time
2017-12-18 23:11:28 +01:00
Andreas Rumpf
762ade1177 'ord' does not produce a range type anymore 2017-11-02 18:23:21 +01:00
Oscar Nihlgård
f2ba3d174c Fix countLeapYears 2017-10-10 15:47:12 +02:00
Charlie Barto
d55e02ddf1 fixes to allow the usage of clang on windows with the msvc abi and ms headers (#6442) 2017-10-09 17:26:53 +02:00
GULPF
0b7b116f04 Call tzset to initialize timezone (#6466) 2017-10-03 07:31:06 +02:00
Federico Ceratto
ca0de9a54d Improve TimeInterval docs #6135 (#6341) 2017-09-07 08:29:20 +02:00
Federico Ceratto
bad52ca29a Improve docs around subtracting times (#6152)
The output can be surprising - better provide examples.
2017-09-03 01:01:06 +02:00
Federico Ceratto
a038c62bef Add TimeInterval reversing docstring 2017-07-29 11:42:03 +01:00
Araq
5334fd4533 fixes #6021! 2017-06-27 15:34:42 +02:00
Euan T
3a2ab81df1 Fix #6010 documenting subtracting time interval (#6012) 2017-06-22 13:52:13 +02:00
Daniil Yarancev
3b0dba7a75 Update times.nim 2017-06-18 01:28:48 +03:00