Commit Graph

720 Commits (eef73eea22b00b795c5fd39d012d55a3793d70df)

Author SHA1 Message Date
hazohelet fd2d9c214c f64: fix .eq() 2019-09-28 14:04:03 +03:00
joe-conigliaro fbd414fd2f crypto.md5: fix u64 modulus operation 2019-09-28 14:02:57 +03:00
Delyan Angelov 6bba4b1be0 string: document the tradeoffs for V strings 2019-09-28 13:54:30 +03:00
Alexander Medvednikov 60eb73adb4 array: single element array test 2019-09-28 13:52:38 +03:00
lutherwenxu a4d2633a33 string: Properly null-terminate repeated string 2019-09-28 13:31:12 +03:00
Alexander Medvednikov a5391c8882 string.repeat: re-write without a libc function call 2019-09-28 02:51:42 +03:00
Alvydas Vitkauskas 931b71c428 string: improve repeat() 2019-09-27 15:49:09 +03:00
vitalyster a1e45e3247 darwin: use system ssl headers 2019-09-27 01:35:25 +03:00
Alexander Medvednikov 74bbf592d1 solaris: another fix 2019-09-27 00:30:41 +03:00
Alexander Medvednikov fcf8f7fc93 solaris: small fix 2019-09-27 00:24:15 +03:00
Alexander Medvednikov 107e9107c8 solaris support 2019-09-27 00:23:27 +03:00
Don Alfons Nisnoni fb4f14ba76 string: add repeat() method 2019-09-26 22:54:53 +03:00
vitalyster 9834ccfcd9 windows: Unicode and IPv6 http/sockets
cleanup schannel implementation (drop NT4.0 compatibility, use unicode strings, etc)
restore http tests
fix socket test: it did not throw before
2019-09-26 22:54:15 +03:00
joe-conigliaro 47da52b85b crypto.[sha256/sha512]: remove extraneous casts & use rotations from math.bits 2019-09-26 16:38:12 +03:00
joe-conigliaro c069525e8c crypto.[md5/rc4/sha1]: remove extraneous casts 2019-09-26 14:57:31 +03:00
joe-conigliaro f1f720cc78 pg: update optional return syntax 2019-09-26 14:23:29 +03:00
joe-conigliaro 896f978b94 crypto.aes: remove extraneous casts 2019-09-26 14:22:47 +03:00
joe-conigliaro a5ea7e4304 math.bits: remove extraneous casts 2019-09-26 14:14:04 +03:00
Alexander Medvednikov 04e4018228 compiler: small fixes + some logic for freeing strings 2019-09-26 03:24:58 +03:00
Don Alfons Nisnoni b1f0df0fd1 mysql: make compile 2019-09-26 03:18:26 +03:00
Delyan Angelov 33df5edc08 http: remove const started, use _ instead 2019-09-25 23:58:32 +03:00
Delyan Angelov ab291902d8 compiler: remove special case for http__init_module call
tmp fix until `fn init()` is supported
2019-09-25 23:28:51 +03:00
Alexander Medvednikov 4c898ab6b3 strings: simplify repeat() 2019-09-25 22:08:51 +03:00
joe-conigliaro d4bae356ba compiler/vlib: add error for no new vars in loop ("_,_") & remove "." from errors 2019-09-25 17:59:50 +03:00
joe-conigliaro 8974aa4513 compiler/vlib: change `_ :=` to `_ =` and disable `_ :=` 2019-09-25 15:10:45 +03:00
Alexander Medvednikov ab52b453cb
map: make .keys() pure 2019-09-25 05:56:10 +03:00
Alexander Medvednikov f7d8fb0cf4 string: bring back old index() without an allocation 2019-09-23 23:34:42 +03:00
Alexander Medvednikov d2d75f3824 parser: do not allow "int?", only "?int" 2019-09-23 23:17:06 +03:00
Alexander Medvednikov 8d52d877fb compiler: free local_vars 2019-09-23 22:16:52 +03:00
Delyan Angelov 0e39df24d4 net: make socket.recv return the allocated buffer and the message length 2019-09-23 19:48:18 +03:00
Alexander Medvednikov bf1ee28194 ui: Objective-C @interface support for Cocoa; minor clean-ups 2019-09-23 15:54:17 +03:00
Henrixounez db44004d51 readline: utf8 compatibility 2019-09-23 13:43:24 +03:00
joe-conigliaro 23c84516e2 compiler: error on unused imports 2019-09-23 13:42:20 +03:00
Alexander Medvednikov b4207e1be7 compiler: allow "u64_var == 0" without casting the const literal 2019-09-23 02:14:10 +03:00
joe-conigliaro 7aaf4012e4 math.bits: add missing pub to fn's 2019-09-23 00:51:03 +03:00
Delyan Angelov 1b91b31698 rand: add pcg32 and splitmix64 implementations 2019-09-23 00:50:22 +03:00
Delyan Angelov 7421781150 CI: split jobs into more steps; compiler: fix "v test v" with tcc 2019-09-22 17:24:15 +03:00
luoheng f1d5f8e2bf parser: allow `!` only with bools 2019-09-21 18:21:45 +03:00
Alexander Medvednikov a232b215a7 double quotes for denoting strings 2019-09-21 17:18:02 +03:00
Michiel Vlootman 9b7ca248f0 similarity.v: update a comment 2019-09-21 14:59:06 +03:00
vitalyster 111007470e array: malloc => calloc 2019-09-21 02:29:09 +03:00
Henrixounez ffcff9ebd4 builtins: ustring comparisons, concatenation and other functions 2019-09-20 19:07:38 +03:00
joe-conigliaro d80a3365c4 math.bits: add some more helpers, to be used in upcoming biginteger 2019-09-20 17:39:36 +03:00
vitalyster a42b4e219c net.socket: windows fixes and test
* added missing ai_canonname in addrinfo structure
* ai_canonname, ai_addr and ai_addrlen must be zeroed before getaddrinfo call
* write() must not be used on windows sockets
* added (Socket).get_port() function which is useful when socket was initialized with 0 (random) port
* tests is fixed, test server started listening on random port to avoid conflicts
2019-09-20 17:04:39 +03:00
vitalyster f1bb25bfaf windows: Unicode input in REPL 2019-09-20 17:03:13 +03:00
joe-conigliaro 486b3d2f92 crypto.rand: fix rand test from failing sometimes 2019-09-19 13:12:40 +03:00
Alexander Medvednikov a94c1556ce array: remove temporary repeat2() 2019-09-19 05:22:24 +03:00
Alexander Medvednikov cb31eeec55 compiler: first step to require explicit definition of imported C fns 2019-09-19 05:16:25 +03:00
joe-conigliaro b9cc6535f6 crypto.rand: rename read_u64 to int_u64 + clean up 2019-09-18 16:12:16 +03:00
joe-conigliaro f187c35fb2 vlib: inline certain functions 2019-09-18 15:45:32 +03:00
Alexander Medvednikov d1500511e6 "none" keyword for optionals + more memory fixes 2019-09-18 14:15:10 +03:00
joe-conigliaro 32ad33558d crypto.rand: add PRNG function read_u64 2019-09-17 22:03:54 +03:00
Alexander Medvednikov 0a2f7a6ba7 fix tests 2019-09-17 13:37:25 +03:00
Alexander Medvednikov 1397d532c6 compiler: check if mutable receivers are modified 2019-09-17 13:10:43 +03:00
joe-conigliaro 9c9e6290a6 remove unnecessary mut argument (#2016) 2019-09-17 01:09:19 +03:00
Alexander Medvednikov 19b04d5427 math: fix const warnings 2019-09-16 22:49:18 +03:00
Nicolas Sauzede ff009f1c4e rand: rand_r(seed) 2019-09-16 22:21:21 +03:00
vitalyster f7a0fefe27 glfw: printf -> println 2019-09-16 21:07:34 +03:00
Alexander Medvednikov c76d09f9a5 make V.js compile 2019-09-16 18:31:13 +03:00
Delyan Angelov 7cf7215557 testing: always show benchmarks 2019-09-16 18:27:55 +03:00
hazohelet 9158ba4640 vlib: add Android checks to build V on Android 2019-09-16 18:23:11 +03:00
Delyan Angelov a45895a3af new benchmark module + make the tests use it 2019-09-16 17:29:06 +03:00
joe-conigliaro 075a8e5ccb compiler: improve typo detection 2019-09-15 20:07:12 +03:00
Alexander Medvednikov 3db4d66824 operator | not defined on bool 2019-09-15 19:35:48 +03:00
Alexander Medvednikov 48c05b5a45 cgen: use *char in all functions with *char args to avoid warnings 2019-09-15 18:56:33 +03:00
Alexander Medvednikov 849bef987c more C warnings fixed 2019-09-15 15:53:57 +03:00
Alexander Medvednikov 3e923871cf compiler: use *char() cast in C functions to afix warnings 2019-09-15 15:19:18 +03:00
joe-conigliaro f077fbd32d vlib: change `[0;n]` to `[0].repeat(n)` 2019-09-15 12:26:05 +03:00
Henrixounez 602e472b8a builtin: getchar for unicode characters 2019-09-15 04:41:24 +03:00
Henrixounez 04ff9ede9f readline: allow writing without tty + small fixes 2019-09-15 04:33:31 +03:00
Alexander Medvednikov 5cc81b91cb JavaSript backend (early stage) 2019-09-15 03:49:57 +03:00
Vitor Oliveira 1a099c9284 vlib: fix several typos 2019-09-14 23:54:14 +03:00
joe-conigliaro 81bf67ba4f hash.crc32: change *Crc32 to &Crc32 2019-09-13 22:45:04 +03:00
joe-conigliaro 5aaa794519 compiler: clean up the typo check 2019-09-13 16:15:30 +03:00
Alexander Medvednikov 9dd86f6fb8 compiler: more memory logic + replace "cur_fn &Fn" with "cur_fn Fn" 2019-09-13 15:47:31 +03:00
joe-conigliaro 41734affb3 compiler: detect typos in function/variable/module names 2019-09-13 14:10:24 +03:00
iRedMail 92b634de7c Fixes old syntax and make Row.vals mutable
- Replace `*` by `&` for C code
- Make `Row.vals` mutable. Otherwise line 56 will raise error.
2019-09-13 00:46:51 +03:00
Henrixounez af60f9ead4 compiler: escapes quote on literals 2019-09-11 15:48:08 +03:00
Alexander Medvednikov 9853323157 array: make ".contains()" private, use "in" everywhere 2019-09-11 15:12:13 +03:00
Delyan Angelov a53c69de38 os: use path separator more consistently 2019-09-11 01:08:23 +03:00
Alexander Medvednikov 7fc678c961 fix urllib_test.v 2019-09-09 14:21:18 +03:00
Alexander Medvednikov 00687de43b memory: clean up all arrays in the V compiler 2019-09-09 13:55:47 +03:00
Alexander Medvednikov 735c78fc6d fix bitfield.v 2019-09-09 02:38:15 +03:00
Alexander Medvednikov a6ec6e23bc bf: minor clean up 2019-09-09 02:31:43 +03:00
Alexander Medvednikov 31c9a2a744 fix bitfield_test.v 2019-09-08 17:55:27 +03:00
Alexander Medvednikov ae866260c8 bf: rename to bitfield 2019-09-08 17:45:51 +03:00
Alexander Medvednikov 6dcdb224a1 bf: fix resize() 2019-09-08 16:10:59 +03:00
Alexander Medvednikov dcc42c858b glfw: GPU driver info 2019-09-08 15:54:16 +03:00
Alexander Medvednikov 76a89c832e parser: small optimizations 2019-08-26 01:19:39 +03:00
Flavien CADET c1f76aec3a vweb: fix a typo 2019-09-06 20:30:20 +03:00
joe-conigliaro 79d4d56fe5 string: implement is_space in V & make trim_space use trim 2019-09-06 13:22:37 +03:00
Carlos Esquerdo Bernat 8a77d4482c vweb: fix headers 2019-09-05 15:46:24 +03:00
Henrixounez f83bc9528d readline: added suspend handling and dont print special characters 2019-09-05 15:06:41 +03:00
Henrixounez cc5470d068 readline: overwrite mode and eof fix 2019-09-05 02:02:04 +03:00
vitalyster 38d26c8080 Travis: run msvc tests 2019-09-03 20:15:08 +03:00
joe-conigliaro b4d033ff54 compiler: generalize mod dag & use for sorting structs also 2019-09-03 19:11:21 +03:00
Delyan Angelov db110759ab vweb: fix warnings 2019-09-03 19:10:56 +03:00
joe-conigliaro 5dcfda0600 crypto.rand: improve test to actually check for difference in data 2019-09-03 16:10:26 +03:00
Delyan Angelov c9a39dfdb5 compiler: build tetris executable on windows with both msvc and mingw gcc 2019-09-03 16:09:43 +03:00
Henrixounez 216f343f09 readline: history feature 2019-09-03 16:07:20 +03:00
Joe Conigliaro 1f67d9edd8 fix bugs breaking tests 2019-09-03 15:21:52 +03:00
Delyan Angelov ecb661f719 tetris: fix &Foo instead of *Foo warnings. 2019-09-03 11:39:06 +03:00
Vitaly Takmazov 83d724fb70 print_backtrace: do not use printf directly 2019-09-03 11:09:55 +03:00
Henrixounez 510fb2a981 readline: add custom prompt feature 2019-09-02 20:22:33 +03:00
Delyan Angelov 93716ee944 crypto: add utility hexhash functions 2019-09-02 20:22:19 +03:00
Alexander Medvednikov bb9eec8696 json: use & 2019-09-02 19:17:05 +03:00
Henrixounez 9b8de9b59c readline: clear the screen on ctrl+l 2019-09-02 15:33:46 +03:00
Alexander Medvednikov 1c6d51f271 remove u8 and i32 from tests and examples 2019-09-02 15:02:25 +03:00
Alexander Medvednikov 718041194f os: clean up 2019-09-02 13:57:00 +03:00
Henrixounez 33ae7520e7 readline: added suppr key to delete characters right of cursor 2019-09-02 13:36:04 +03:00
Alexander Medvednikov 0e2c41e0f9 replace *Foo with &Foo everywhere 2019-09-01 22:51:16 +03:00
Alexander Medvednikov 3bd7bcfac3 remove u8 and i32 aliases 2019-09-01 22:37:22 +03:00
Alexander Medvednikov 4edccce9a3 array: sort ints 2019-09-01 22:30:49 +03:00
Henrixounez fe3639d547 readline: multiline wrapping for editing and cursor 2019-09-01 20:43:47 +03:00
Alexander Medvednikov bfa6505636 compiler: replace &Type with Type 2019-09-01 14:05:03 +03:00
Alexander Medvednikov 961e778ed1 map_test.v: format + ref test 2019-09-01 14:05:03 +03:00
Alexander Medvednikov af5b2e1b3c glfw: make Pos fields public 2019-09-01 07:09:18 +03:00
Henrixounez 4abfb686ec readline: moving cursor feature 2019-09-01 01:02:33 +03:00
Henrixounez 95b107cbc6 readline: reworked dispatch architecture for easier features add 2019-08-31 21:18:32 +03:00
Alexander Medvednikov 72363ada84 array: make .set() private + format 2019-08-31 02:35:05 +03:00
Henrixounez a9a4032a11 readline: basic reading on linux 2019-08-31 00:54:53 +03:00
kawa-yoiko 4f0f99e663 parser: fix mutability with chained fields 2019-08-30 20:19:06 +03:00
Delyan Angelov e3389e8ec1 log: add seconds to terminal output too. 2019-08-30 13:06:02 +03:00
Alexander Medvednikov d5d1b74f90 time: do not include <unistd.h> on windows 2019-08-30 01:10:29 +03:00
Alexander Medvednikov 3c5087902d fix msvc build 2019-08-30 01:06:10 +03:00
Alexander Medvednikov 2fe20cd092 compiler: fix struct order bug 2019-08-29 23:46:12 +03:00
Henrixounez 29e0396eca compiler: adds handling of two variables for loop on string 2019-08-29 21:41:16 +03:00
joe-conigliaro cd625b04eb http: windows - make https requests work in threads 2019-08-29 12:33:20 +03:00
joe-conigliaro 32683ad6fd sync: fix mutex on win & waitgroup (all os) update. fixes news_fetcher example on win (#1776) 2019-08-29 11:48:03 +03:00
Delyan Angelov c92654a044 fix building v on alpine with musl libc 2019-08-28 19:26:18 +03:00
Vitaly Takmazov 5124eae47d msvc: check exit code 2019-08-28 13:26:27 +03:00
Delyan Angelov 73c6bae480 print backtraces on panic on mac and linux 2019-08-27 23:29:13 +03:00
joe-conigliaro 02fc7e14cd make trim use cutset like trim_right/trim_left 2019-08-27 22:53:32 +03:00
joe-conigliaro 3db50f724b net.urllib: Update with latest changes from go lib 2019-08-27 22:44:41 +03:00
Alexander Medvednikov ab0a78a498 fix sync_win.v 2019-08-27 00:46:27 +03:00
Alexander Medvednikov d4b6b6c833 freetype: render all Unicode characters 2019-08-27 00:20:54 +03:00
Robin Martijn 5df31c16f7 json: fix #1751; support unsigned integers 2019-08-26 20:02:19 +03:00
joe-conigliaro 857cf00caf builtin.string: make trim_left/right() behave correctly 2019-08-26 14:18:58 +03:00
Delyan Angelov aa438c7c3f os: fix exec() and get_raw_line(); fix Windows tests and examples 2019-08-26 13:51:48 +03:00
Swastik Baranwal db525524ee string: title() and small fixes 2019-08-26 13:32:53 +03:00
Robin Martijn 754b8082fb time/vlib: fix day_of_week() with sakamoto's algorithm 2019-08-25 23:35:01 +03:00
joe-conigliaro 836cc32d78 http: allocate memory dynamically on Windows 2019-08-25 21:27:12 +03:00
Henrixounez f22d5c5624 vlib: remove negative checks on unsigned (#1728) 2019-08-25 01:48:38 +03:00
Delyan Angelov a62e6b127a http: send headers and request data 2019-08-25 01:48:06 +03:00
Alexander Medvednikov cd10890258 minor tcc fixes 2019-07-08 03:44:47 +02:00
Alexander Medvednikov 4c07df6a21 small webassembly fix 2019-08-24 03:09:23 +03:00
Alexander Medvednikov 031e7fe113 os: libproc.h on macos only 2019-08-24 02:53:11 +03:00
Alexander Medvednikov 7fd9827318 all: add missing includes 2019-08-24 02:48:47 +03:00
Alexander Medvednikov d98c20466e cc.v: build with "implicit-function-declaration" and fix declarations
required for the webassembly backend

2
2019-08-24 00:20:53 +03:00
Michiel Vlootman 817f5bf0a6 add test for [json:fieldname]
Added test also tests the output from json.encode to make sure the json:fieldname attribute is used.
2019-08-23 11:43:11 +03:00
Alexander Medvednikov e39cb41d6b json: custom json field names with "[json:field_name]" 2019-08-23 02:54:39 +03:00
Alexander Medvednikov f61b14584a remove "import const" everywhere 2019-08-23 00:09:03 +03:00
Alexander Medvednikov dcfc9eb1a1 remove from the language 2019-08-22 23:19:31 +03:00
Alexander Medvednikov 2eb9440095 http: disable the tests for now 2019-08-22 22:48:31 +03:00
Alexander Medvednikov eb5fcafa77 table: TypeCategory; freetype: remove C code; [typedef] C structs;
Objective-C interfaces
2019-08-22 22:18:55 +03:00
SewerynKaminski c8da79d785 Fix terminal goto control sequence building 2019-08-22 20:10:54 +03:00
Henrixounez 780ddaf22b compiler: handles printing of structures and arrays of structures 2019-08-22 14:34:33 +03:00
Danil-Lapirow fe8145c697 json: add raw json test 2019-08-22 14:22:16 +03:00
Delyan Angelov 77b31de117 compiler: produce errors in C "filepath:line:column:" format 2019-08-22 14:15:11 +03:00
Henrixounez 9b3b22d6b3 compiler: allows compound assignment operators on array 2019-08-22 04:57:43 +03:00
Delyan Angelov ffb6c6f5b4 net: add udp socket support and a simple udp server example. 2019-08-22 04:01:04 +03:00
Delyan Angelov 51818346df http: support plain http protocol 2019-08-21 20:04:06 +03:00
Delyan Angelov 49899c649c orm: fix select .. limit 1 . This case now returns an ?Row. 2019-08-20 16:33:14 +03:00
Carlos Esquerdo Bernat cf23c289ec tests: cleanup 2019-08-20 11:18:12 +03:00
Istvan dee411149e pg: config struct for connecting 2019-08-20 11:08:06 +03:00
Alexander Medvednikov 33e730b3fa ui: users_gui example 2019-08-20 00:19:55 +03:00
Alexander Medvednikov 01586d6d67 ui: ui_lin.v and ui_win.v 2019-08-19 00:28:33 +03:00
Alexander Medvednikov ac6c6e36c3
V UI readme: better wording 2019-08-19 00:14:39 +03:00
Alexander Medvednikov 7465ff97b3
V UI info 2019-08-19 00:12:35 +03:00
Alexander Medvednikov f654c4af7a
ui README.md 2019-08-18 18:28:29 +03:00
Alexander Medvednikov ac8a6d180c
ui license 2019-08-18 18:20:17 +03:00
Alexander Medvednikov 18d0a08ace freetype: fix utf crash 2019-08-18 18:13:12 +03:00
Emily Hudson d373b331fa ompiler: MSVC related fixes and `v test v` for windows testing
* MSVC related fixes and v test v for windows testing

* If second stage crashes on windows goto error

* use os.exec instead of system so that the error can be printed

* use -debug for osx vid

* Fix some whitespace to trigger a rebuild
2019-08-18 17:25:33 +03:00
S-YOU 0066afe7fc mysql module 2019-08-18 17:24:43 +03:00
Alexander Medvednikov 89b5a0fc25 ui: fix focus_app() 2019-08-18 17:01:31 +03:00
Alexander Medvednikov 56fbafe03a cc(): fix -x objective-c; ui.focus_app() 2019-08-18 16:59:36 +03:00
Alexander Medvednikov f9fb6f0be4 orm_test: remove pg import for now 2019-08-18 15:02:36 +03:00
joe-conigliaro 22348f2245 http: add vschannel_cleanup() back 2019-08-18 13:04:17 +03:00
Alexander Medvednikov fe2d2bd2a3 fmt: remove trailing spaces 2019-08-17 22:21:43 +03:00
Alexander Medvednikov 8a1324c141 os: make exec() return ?Result with exit code and output 2019-08-17 21:11:40 +03:00
Alexander Medvednikov 60bf668281 string: fix trim_right 2019-08-17 20:07:40 +03:00
Joe Conigliaro e5ebb83bd9 add test for writer 2019-08-17 17:43:43 +03:00
joe-conigliaro 547241c13c http: make do() return errors instead of panic 2019-08-17 17:02:01 +03:00
Joe Conigliaro 1274cdf0af path must start with / 2019-08-17 16:37:31 +03:00
Alexander Medvednikov 100bb7c54c os: clean up windows functions 2019-08-17 16:17:43 +03:00
Alexander Medvednikov 7ed0438b04 os: remove PathSeparator hack now that we have v_win.c 2019-08-17 16:02:59 +03:00
joe-conigliaro 1ba701e036 encoding.csv: add write support 2019-08-17 15:51:20 +03:00
joe-conigliaro 56566ba3d0 http: follow redirects (openssl & schannel) + fix url params 2019-08-17 15:50:47 +03:00
Nicolas Sauzede 4760fea489 examples/tetris: use better unique colors, implement game over/pause 2019-08-17 02:56:09 +03:00
unknown-v 49205dcce3 examples: fix maps warnings 2019-08-17 02:55:11 +03:00
Alexander Medvednikov be141d9c5f os: Windows fixes 2019-08-17 02:09:36 +03:00
Alexander Medvednikov 94b900bd0a map: allow array values 2019-08-16 23:28:47 +03:00
Alexander Medvednikov b188ecf680 Makefile: re-write `make test` in V 2019-08-16 16:51:46 +03:00
Alexander Medvednikov c156cef972 vweb: fix the test 2019-08-16 09:58:27 +03:00
Alexander Medvednikov dc9cebe26c orm fixes; glfw: remove C code 2019-08-16 09:10:03 +03:00
kambrium a5af903362 Fixed typo 2019-08-16 09:02:09 +03:00
joe-conigliaro 7b48f7ac9e encoding.csv module 2019-08-14 09:45:56 +03:00
Delyan Angelov a0c8fa5bbc http openssl: on linux, prefer newer openssl installations when available 2019-08-13 10:49:07 +03:00
Alexander Medvednikov a11961b0d3 vweb: make mime_types a const 2019-08-13 01:04:26 +03:00
Alexander Medvednikov bc563930f7 string: remove abs() 2019-08-12 21:16:01 +03:00