M
837af9b230
freebsd: backtrace
2019-11-25 13:54:56 +03:00
Delyan Angelov
30042ab54b
cfns: fix some declarations
2019-11-25 13:54:07 +03:00
Unknown User
268a6dc6d9
add missing cfns
2019-11-25 04:35:41 +03:00
Alexander Medvednikov
19b4cf66ac
Windows should work now
2019-11-24 15:31:51 +03:00
Alexander Medvednikov
748e8b7ce4
more Windows definitions
2019-11-24 15:29:11 +03:00
Alexander Medvednikov
b44cbc9b13
define RegQueryValueEx on Windows
2019-11-24 15:21:49 +03:00
Alexander Medvednikov
558024696c
lots of C Windows function definitions
2019-11-24 15:16:19 +03:00
Alexander Medvednikov
a74f4a661d
fix C.GetStdHandle() on Windows
2019-11-24 14:07:14 +03:00
Alexander Medvednikov
81c17e55a6
more C fn definitions
2019-11-24 13:16:11 +03:00
Alexander Medvednikov
f4fe90ea6d
C fn definitions on Linux
2019-11-22 19:00:56 +03:00
Alexander Medvednikov
e9e931fe4a
force C function definitions
2019-11-24 12:14:22 +03:00
Dwight Schauer
e724792a67
freestanding: add core linux syscalls and associated tests
2019-11-23 19:35:57 +03:00
Delyan Angelov
9b4bc0189b
backtraces: cleaner looking backtrace output on linux
2019-11-23 14:22:55 +03:00
Alexander Medvednikov
57fbf0b8a9
map: fix `in` for deleted keys
2019-11-22 20:05:43 +03:00
Alexander Medvednikov
9712213f50
x64 machine code generation (ELF)
2019-11-22 14:33:22 +03:00
Alexander Medvednikov
c98db8c437
array: fix sort() for ints
2019-11-19 00:27:35 +03:00
Jiten Palaparthi
32fbc2bdf3
remove pub for a private function in array.v
2019-11-18 00:43:23 +03:00
Alexander Medvednikov
0c5854e371
add a c/raw string interpolation test
2019-11-16 22:17:01 +03:00
Alexander Medvednikov
8d1eb759f7
fix v -o foo.c build module foo
2019-11-16 21:49:58 +03:00
Alexander Medvednikov
dc50ed69cf
bare: fix str[idx]
2019-11-16 11:33:04 +03:00
Alexander Medvednikov
d1b8d34dd5
os_linux.v
2019-11-16 09:16:51 +03:00
Nicolas Sauzede
1dadf9d966
fix Windows warnings
2019-11-16 02:30:50 +03:00
Alexander Medvednikov
96cde10696
C string literals (c'str'); bare builtin module; bare println()
2019-11-15 02:29:20 +03:00
Alexander Medvednikov
bd97dc0134
os: realpath potential fix
2019-11-15 01:07:38 +03:00
Alexander Medvednikov
a04c3bac83
CI: ubuntu-musl target
2019-11-15 00:46:40 +03:00
Alexander Medvednikov
6eaa2db533
fix V.js
2019-11-14 10:05:41 +03:00
Alexander Medvednikov
7d924679a6
[]: update all examples and tests
2019-11-14 10:00:22 +03:00
Alexander Medvednikov
96b530cf85
update []
2019-11-14 09:53:05 +03:00
Alexander Medvednikov
4a833d8151
parser: clean up all []
2019-11-14 09:21:20 +03:00
Alexander Medvednikov
861f2d4bc0
parser: skip $if windows etc blocks on a different os
2019-11-13 21:14:37 +03:00
Alexander Medvednikov
ffa6bcfff5
vfmt: handle comments
2019-11-13 11:54:22 +03:00
Steven Gay
51663520c8
MSVC backtrace
2019-11-13 11:05:06 +03:00
Alexander Medvednikov
10b0432eca
parser: fix mutable map args
2019-11-12 22:35:53 +03:00
Don Alfons Nisnoni
d732be64f6
array: update docs
2019-11-12 19:26:04 +03:00
BigBlack
0ab09a57f7
parser: multi-level pointers
2019-11-11 18:43:22 +03:00
Alexander Medvednikov
ffa9646749
Revert "print_backtrace_skipping_top_frames: Implementation for MSVC "
...
This reverts commit d1e7a54f3a
.
2019-11-10 20:01:19 +03:00
Don Alfons Nisnoni
b9728c7af0
string: update split() method
2019-11-10 19:37:36 +03:00
Steven Gay
d1e7a54f3a
print_backtrace_skipping_top_frames: Implementation for MSVC
2019-11-10 19:34:53 +03:00
Nicolas Sauzede
2f5de11c22
fix byteptr warning
2019-11-08 01:30:07 +03:00
vitalyster
8dbeab9a7b
make V work on Windows 7
2019-11-06 23:04:40 +03:00
Alexander Medvednikov
75510e2ea1
remove `last` test
2019-11-06 18:19:03 +03:00
Alexander Medvednikov
f6d06fcda2
update tests and examples after the mutability fix
2019-11-06 06:57:04 +03:00
Alexander Medvednikov
425c9ce401
a special `last` variable in for loops (experimental)
2019-11-05 17:17:55 +03:00
Alexander Medvednikov
4e64a58ac1
scanner: fix string interpolation in raw strings
2019-11-03 23:57:26 +03:00
Alexander Medvednikov
80ba8f07b8
more ui vh fixes
2019-11-01 18:03:24 +03:00
Nicolas Sauzede
71450828bd
fix missing protos for popen and backtrace_symbols
2019-11-01 00:52:08 +03:00
Alexander Medvednikov
91df08f56d
cc: experimental -fast option for tcc/codegen in the future
2019-11-01 00:37:24 +03:00
Alexander Medvednikov
987f5fd2a1
string: bring back strconv
2019-11-01 00:28:52 +03:00
Alexander Medvednikov
ae696e7ccb
Revert "Revert "array: fix and document array functions""
...
This reverts commit b1eb9d6b15
.
2019-10-31 21:50:20 +03:00
Alexander Medvednikov
4c96ca4e62
string: remove strconv dep
2019-10-31 21:50:11 +03:00
Alexander Medvednikov
128d37c671
vh fixes for the UI module
2019-10-31 21:26:12 +03:00
Alexander Medvednikov
b1eb9d6b15
Revert "array: fix and document array functions"
...
This reverts commit 7fa33fc250
.
2019-10-31 20:29:58 +03:00
Alvydas Vitkauskas
7fa33fc250
array: fix and document array functions
2019-10-31 15:46:50 +03:00
Amal Shaji
e8d34002e1
map: fixed deletion of non-existent keys
2019-10-30 20:19:59 +03:00
lorenzo pirro
d42c53346d
array: eq() for builtins (byte, string, int, i64, f32)
2019-10-29 14:26:00 +03:00
Don Alfons Nisnoni
8358528888
string: add some docs
2019-10-27 22:29:55 +03:00
Alexander Medvednikov
d00fdca38f
[if vfmt] for fgen() functions
2019-10-27 12:13:08 +03:00
joe-conigliaro
d81b0675f0
array: bring back left & right method tests
2019-10-27 12:05:19 +03:00
joe-conigliaro
59378dce46
compiler/vlib: replace substr/left/right with `[start..end]` everywhere
2019-10-27 10:03:15 +03:00
joe-conigliaro
a075ce160e
compiler: add `[..2]` & `[2..]` support for slices
2019-10-27 09:36:04 +03:00
Alexander Medvednikov
ee51313e2c
test array and string slices
2019-10-27 01:37:29 +03:00
Alexander Medvednikov
6944161b15
array: clean up filter()
2019-10-26 14:53:55 +03:00
Alexander Medvednikov
70c9565607
array: fix map() return type and handle []bool
2019-10-26 14:49:36 +03:00
Alexander Medvednikov
f40d672a12
array: map() test
2019-10-26 14:32:56 +03:00
Alexander Medvednikov
f6f5b8cfb1
bring back string.h for now
2019-10-26 11:51:22 +03:00
Alexander Medvednikov
fbd41eacba
remove string.h include 1
2019-10-26 11:43:25 +03:00
Alexander Medvednikov
ef45a87882
remove string.h include
2019-10-26 11:29:56 +03:00
Alexander Medvednikov
cba12d0106
macos libproc fix 2
2019-10-26 02:19:14 +03:00
Alexander Medvednikov
203f967677
macos libproc fix 1
2019-10-26 02:16:37 +03:00
Alexander Medvednikov
7de95a642e
remove more C headers
2019-10-26 02:08:46 +03:00
Alexander Medvednikov
dc2c62807a
string: faster int()
2019-10-25 23:41:18 +03:00
Alexander Medvednikov
5510327d70
array_test.v: str() test
2019-10-25 22:40:52 +03:00
Delyan Angelov
8364130a1f
compiler: implement error_with_code(s string, code int)
...
Make available the integer code as errcode to callers/unwrappers
2019-10-25 22:03:42 +03:00
Alexander Medvednikov
be0830b24f
builtin: do not use backtrace with musl
2019-10-25 18:38:47 +03:00
Alexander Medvednikov
ef9cae6dc0
bring back backtrace
2019-10-25 17:59:41 +03:00
Alexander Medvednikov
a83aa28a67
urllib: switch => match
2019-10-25 17:54:34 +03:00
Alexander Medvednikov
d0cbb4041b
disable backtrace for now
2019-10-25 17:38:07 +03:00
Alexander Medvednikov
e04c4ad852
remove execinfo.h include
2019-10-25 17:20:49 +03:00
Alexander Medvednikov
784847cf18
make V compile
2019-10-25 16:06:21 +03:00
Alexander Medvednikov
ea3f9b5b9a
remove execinfo.h header
2019-10-25 12:13:38 +03:00
Alexander Medvednikov
4e21e9ed44
minor V.js fixes
2019-10-25 12:13:38 +03:00
Alexander Medvednikov
d4c1bba856
fix V.js
2019-10-24 22:58:01 +03:00
Alexander Medvednikov
3a929faf26
enums: make `in` work without specifying the full type
2019-10-24 15:41:34 +03:00
Alexander Medvednikov
dca49e43d9
c defs
2019-10-24 15:41:34 +03:00
Alexander Medvednikov
4a88a28a3b
make all necessary structs public
2019-10-24 12:51:00 +03:00
Alexander Medvednikov
f14425ec18
do not allow one letter struct names
2019-10-23 23:46:07 +03:00
Alexander Medvednikov
054dd237a4
V.js: remove u8
2019-10-23 15:56:57 +03:00
Alexander Medvednikov
6174dfb424
fix V.js
2019-10-23 15:51:52 +03:00
Delyan Angelov
eef73eea22
tools: new tool to extracts function names declared in V files
2019-10-21 14:14:28 +03:00
Alexander Medvednikov
81b1b882fd
bultin: mark unsafe functions
2019-10-20 20:29:24 +03:00
Alexander Medvednikov
1b518c158b
unsafe keyword + make array.free() an unsafe method
2019-10-20 20:10:44 +03:00
Ole-Martin Bratteng
b73387647c
v.js: make eprintln use console.error
2019-10-19 15:42:37 +03:00
Alexander Medvednikov
80e79a3966
array: optimized generic filter()
2019-10-18 07:30:39 +03:00
joe-conigliaro
8d16762f03
strconv module + use it in builtin/string instead of C functions
2019-10-17 19:37:55 +03:00
Unknown User
f46b58b09d
int: i64 hex() use PRIx64
2019-10-17 11:06:54 +03:00
Alexander Medvednikov
75e2a29cb5
string: bring back strtoul for now
2019-10-15 08:53:35 +03:00
Alexander Medvednikov
f9593bd857
builtin: float.v + remove #include <math.h>
2019-10-15 08:41:45 +03:00
Alexander Medvednikov
4b176ba855
string: test i64() and u64()
2019-10-15 04:26:19 +03:00
Alexander Medvednikov
10ed65bc12
fix float.eq()
2019-10-15 03:45:11 +03:00
Alexander Medvednikov
91690a1b54
fix f64 tcc eq crash
2019-10-13 04:27:57 +03:00
Alexander Medvednikov
2d127cb694
tcc windows fixes
2019-10-14 09:03:11 +03:00
joe-conigliaro
de10a529b0
CI: fix building v
2019-10-14 07:08:02 +03:00
joe-conigliaro
51388fea75
compiler: module init function & init consts for cached modules
2019-10-12 01:17:37 +03:00
Don Alfons Nisnoni
c7e47e6884
array: minor clean up
2019-10-12 00:06:30 +03:00
Delyan Angelov
2b087dbf95
backtraces: add source line numbers too on linux
...
* Add source line numbers to backtraces on linux.
* Fix -g (broken after token caching).
* reset the #line directives after all the v code is compiled
* cleanup p.cgen.line setting inside p.next() .
* Support windows filepaths like "C:\Users\travis\build\vlang\v\v.exe.tmp.c" inside generated #line directives.
* Try to diagnose better windows-gcc failing.
* Revert "Try to diagnose better windows-gcc failing."
* implement and use cescaped_path/1 .
* Use cescaped_path/1 consistently throughout compiler/ .
2019-10-12 00:04:42 +03:00
Alexander Medvednikov
af46bf515f
glfw: bring back 64 bit glfw3.dll
2019-10-11 13:47:56 +03:00
Alexander Medvednikov
52c2fa44b8
runtime: nr_cpus()
2019-10-11 13:47:56 +03:00
Alexander Medvednikov
a280e98d7f
fix the build
2019-10-11 06:57:08 +03:00
Alexander Medvednikov
726aaecc46
compiler: make V compilable wit the tcc backend
2019-10-11 06:49:53 +03:00
Don Alfons Nisnoni
942c56ca95
array: add reduce() method
2019-10-11 04:12:40 +03:00
Alexander Medvednikov
e1dd4c19b5
compiler: cache modules if they are not built yet
2019-10-10 22:53:59 +03:00
vitalyster
e64609387d
term: colors on Windows console
...
* isConsole moved to builtin is_atty function
* Windows console initialization moved to builtin.init
2019-10-10 20:08:36 +03:00
joe-conigliaro
f8fefd5a60
urllib: rem underscore methods from; add strings index_bytes
2019-10-10 20:04:11 +03:00
Delyan Angelov
f3abb9e682
fix 'v -debug examples/hello_world.v'
2019-10-10 20:02:32 +03:00
Alexander Medvednikov
9385ed27ae
fix v.js
2019-10-10 01:27:16 +03:00
Alexander Medvednikov
1f6535afb0
array/map: remove _get(), _push() etc
2019-10-10 01:15:19 +03:00
Alexander Medvednikov
2411b8d1e7
module cache fixes; do not allow function names starting with _
2019-10-10 00:44:26 +03:00
Alexander Medvednikov
b1da59845e
array: fix initialization of empty fixed size arrays
2019-10-09 15:26:30 +03:00
Don Alfons Nisnoni
fecf3f19c3
array: add filter() method
2019-10-08 13:23:17 +03:00
Alexander Medvednikov
f1923d454c
parser: make verbose mode less verbose
2019-10-07 01:25:53 +03:00
Alexander Medvednikov
b242e8d7ff
optimize `a in [1,2,3]` to `a == 1 || a == 2 || a == 3`
2019-10-06 06:07:38 +03:00
Alexander Medvednikov
65aafb3cf1
3d arrays are not supported yet
2019-10-06 04:18:55 +03:00
Alexander Medvednikov
6a0599b5f4
raw strings with r'raw'
2019-10-06 04:11:08 +03:00
Alexander Medvednikov
735336e569
array: 2d and 3d test
2019-10-05 16:03:19 +03:00
Alexander Medvednikov
e14861694c
another v.js fix
2019-10-05 08:03:26 +03:00
Don Alfons Nisnoni
68bcf6830c
array: add index() method
2019-10-04 23:07:19 +03:00
Alexander Medvednikov
52f4f4026b
compiler: cache modules
2019-10-04 15:48:09 +03:00
Alexander Medvednikov
f45d3f07ed
fix 3 last C warnings and make sure no new warnings are introduced
2019-10-04 05:49:41 +03:00
Swastik Baranwal
7d763e0776
fix js build
2019-10-02 15:46:08 +03:00
Alexander Medvednikov
5ba354fa2c
`if a := foo() {` syntax for handling optionals
2019-10-01 22:57:38 +03:00
hazohelet
56e4ed1e6b
compiler: float comparison uses machine epsilon by default
2019-10-01 22:38:36 +03:00
joe-conigliaro
7fd2ef975b
parser: add v error if assigning var to blank identifier `_`
...
also fix C warn & double semicolon
2019-10-01 15:40:11 +03:00
Delyan Angelov
2ac80485c0
C backend: fix a couple of C warnings on Linux
2019-10-01 14:35:59 +03:00
Alexander Medvednikov
841d824216
builtin: a very early version of the hashmap
2019-10-01 06:20:50 +03:00
hazohelet
6d483c0a56
parser: float1 == float2 uses machine epsilon by default
2019-09-29 18:27:53 +03:00
Delyan Angelov
366c50674c
tooling: add tools/compare_v_performance_between_commits
...
easily compare v performance/size across commits.
* fix eprintln on linux (it now uses stderr, and flushes it).
* flag: cleaner usage information.
2019-09-28 14:17:16 +03:00
hazohelet
fd2d9c214c
f64: fix .eq()
2019-09-28 14:04:03 +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
Don Alfons Nisnoni
fb4f14ba76
string: add repeat() method
2019-09-26 22:54:53 +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
8d52d877fb
compiler: free local_vars
2019-09-23 22:16:52 +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
Alexander Medvednikov
a232b215a7
double quotes for denoting strings
2019-09-21 17:18:02 +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
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
Alexander Medvednikov
d1500511e6
"none" keyword for optionals + more memory fixes
2019-09-18 14:15:10 +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
Alexander Medvednikov
c76d09f9a5
make V.js compile
2019-09-16 18:31:13 +03:00
hazohelet
9158ba4640
vlib: add Android checks to build V on Android
2019-09-16 18:23:11 +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
Alexander Medvednikov
5cc81b91cb
JavaSript backend (early stage)
2019-09-15 03:49:57 +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
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
Alexander Medvednikov
00687de43b
memory: clean up all arrays in the V compiler
2019-09-09 13:55:47 +03:00
Alexander Medvednikov
76a89c832e
parser: small optimizations
2019-08-26 01:19:39 +03:00
joe-conigliaro
79d4d56fe5
string: implement is_space in V & make trim_space use trim
2019-09-06 13:22:37 +03:00
vitalyster
38d26c8080
Travis: run msvc tests
2019-09-03 20:15:08 +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
Joe Conigliaro
1f67d9edd8
fix bugs breaking tests
2019-09-03 15:21:52 +03:00
Vitaly Takmazov
83d724fb70
print_backtrace: do not use printf directly
2019-09-03 11:09:55 +03:00
Alexander Medvednikov
1c6d51f271
remove u8 and i32 from tests and examples
2019-09-02 15:02:25 +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
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
72363ada84
array: make .set() private + format
2019-08-31 02:35:05 +03:00
kawa-yoiko
4f0f99e663
parser: fix mutability with chained fields
2019-08-30 20:19:06 +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
Delyan Angelov
c92654a044
fix building v on alpine with musl libc
2019-08-28 19:26:18 +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
857cf00caf
builtin.string: make trim_left/right() behave correctly
2019-08-26 14:18:58 +03:00
Swastik Baranwal
db525524ee
string: title() and small fixes
2019-08-26 13:32:53 +03:00
Henrixounez
f22d5c5624
vlib: remove negative checks on unsigned ( #1728 )
2019-08-25 01:48:38 +03:00
Alexander Medvednikov
cd10890258
minor tcc fixes
2019-07-08 03:44:47 +02:00
Alexander Medvednikov
7fd9827318
all: add missing includes
2019-08-24 02:48:47 +03:00
Alexander Medvednikov
dcfc9eb1a1
remove from the language
2019-08-22 23:19: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
Henrixounez
780ddaf22b
compiler: handles printing of structures and arrays of structures
2019-08-22 14:34:33 +03:00
Henrixounez
9b3b22d6b3
compiler: allows compound assignment operators on array
2019-08-22 04:57:43 +03:00
Delyan Angelov
49899c649c
orm: fix select .. limit 1 . This case now returns an ?Row.
2019-08-20 16:33:14 +03:00
Alexander Medvednikov
f9fb6f0be4
orm_test: remove pg import for now
2019-08-18 15:02:36 +03:00
Alexander Medvednikov
fe2d2bd2a3
fmt: remove trailing spaces
2019-08-17 22:21:43 +03:00
Alexander Medvednikov
60bf668281
string: fix trim_right
2019-08-17 20:07:40 +03:00