Commit Graph

359 Commits (f4486d79c334f79adbca86928a6fcc84cd0a6d3a)

Author SHA1 Message Date
Andréas Livet f66569ee1a
doc: add more enum examples (#7510) 2020-12-23 20:14:55 +02:00
Daniel Däschle b27f5c378c
all: reimplement struct embedding with methods (#7506) 2020-12-23 19:12:49 +01:00
0xflotus f505f5e333
doc: fix several typos (#7509) 2020-12-23 19:03:56 +02:00
Lukas Neubert a2cd1b163c
fmt: keep empty curlies and parenthesis as they are (#7329) 2020-12-22 23:43:48 +01:00
Alexander Medvednikov f09180224f
Update docs.md 2020-12-22 16:19:55 +01:00
Alexander Medvednikov e3521555a3
Update docs.md 2020-12-22 16:19:32 +01:00
Lukas Neubert 304aafdc50
fmt: add a space after + operator/method overload (#7453) 2020-12-21 21:20:00 +02:00
Alexander Medvednikov 3eb835c630 doc: fix a long line 2020-12-19 08:34:13 +01:00
Alexander Medvednikov c0f4c525d2
doc: update memory management 2020-12-19 06:34:07 +01:00
Delyan Angelov b61a936fb8
doc: update the sqlite C interoperation example 2020-12-18 22:31:49 +02:00
Delyan Angelov 3915d13b8d
doc: update obsolete string(x)/string(x,len) to .vstring() and .vstring_with_len(len) 2020-12-18 18:18:16 +02:00
Alexander Medvednikov b9edbf7b4b
doc: half an hour => an hour 2020-12-17 12:28:29 +01:00
Alexander Medvednikov 7439ed7e2b
doc: document C2V wrapper generator 2020-12-17 12:25:31 +01:00
Nacho Verdón 75d7ed92b0
doc: add a missing word "type" in array.clone() docs (#7362) 2020-12-16 18:23:00 +01:00
Alexander Medvednikov b9bf7a6583 doc: document array.clone() 2020-12-14 00:37:09 +01:00
Nick Treleaven cf755d40b7
checker: allow ++, -- on byteptr, charptr (#7218) 2020-12-09 19:58:02 +01:00
Alexander Medvednikov 6a58b566a7
doc: document eprintln 2020-12-06 21:34:29 +01:00
Lukas Neubert 8adb1acf31
check-md: verify code example formatting (#7143) 2020-12-05 22:54:41 +01:00
Daniel Däschle 47d0ed308d
parser: prepare for better VLS integration, more accurate parser errors (#7119) 2020-12-04 20:34:05 +02:00
Andréas Livet 93fe2ce22d
doc: add anonymous function exemples on filter/map (#7089) 2020-12-02 14:41:31 +01:00
Andréas Livet ff26f0539c
doc : array slicing examples (#7069) 2020-12-02 04:06:43 +01:00
Lukas Neubert 4f540e6ac3
doc: mention module shadowing (#7051) 2020-12-01 16:09:33 +01:00
Larpon 0c72c9d2f1
doc: mention present tense convention, explain long comments (#7036) 2020-11-30 18:49:57 +01:00
Daniel Däschle 04ecc4737c
docs: extend the sum type docs (#6982) 2020-11-27 22:24:35 +02:00
spaceface777 bbea7fb91f
docs: document the `[required]` struct attribute (#6956) 2020-11-27 15:37:12 +02:00
Delyan Angelov 5ba5a53b77 ci: temporarily ignore failing `x as y` examples for now 2020-11-27 15:28:40 +02:00
Nick Treleaven 09090bd29f
doc: explain labelled break and continue (#6890) 2020-11-20 14:11:56 +01:00
Delyan Angelov b96a0246b5 ci/tools: check-md.v: add support for "```v live" 2020-11-14 20:02:10 +02:00
Nick Treleaven 50163508f8
gen: implement type_name method for sum type instances (#6802) 2020-11-14 13:59:03 +02:00
Nick Treleaven 680ac411d7
doc: document sum type smart cast (#6803) 2020-11-12 20:13:37 +01:00
Nick Treleaven c9997fb919
doc: split out `perform` from interface example (#6805) 2020-11-12 20:10:09 +01:00
Nick Treleaven 21af7004ff
doc: fix embedding example (#6804) 2020-11-12 13:50:37 +01:00
Alexander Medvednikov 518da92a7e
doc: embedded structs are no longer TODO 2020-11-03 23:08:03 +01:00
Delyan Angelov f32c6784e7
ci/tools: check-md.v: extract examples and check they are compilable (#6719) 2020-11-03 01:04:14 +01:00
pancake fbd193b27c
doc: document pkgconfig (#6687) 2020-10-29 08:02:49 +01:00
Mark 8e478e8909
doc: minor typo/English improvements (#6678) 2020-10-25 13:55:57 +01:00
Nick Treleaven 6c267f1c74
doc: explain current limitations of generics (#6674) 2020-10-24 19:37:14 +02:00
Delyan Angelov 28d7532fe8 docs: make the users.sort example directly runnable 2020-10-21 12:57:58 +03:00
Lukas Neubert d881185d79
ci: separate workflow for docs line len check (#6653) 2020-10-20 20:14:56 +02:00
Delyan Angelov 5c93f942be docs,tests: add project_with_c_code_2 (passing structs from C to V to C) 2020-10-20 17:59:48 +03:00
Alexander Medvednikov 7da1afa140 all: switch to the new fn arg syntax everywhere; add lots of vfmt -verify tests 2020-10-15 12:32:28 +02:00
Nick Treleaven 230e9868d1
doc: improve module imports and tweak module docs (#6591) 2020-10-11 20:36:41 +02:00
Nick Treleaven d76b55a9c6
doc: Improve string section (#6599) 2020-10-11 20:36:01 +02:00
Swastik Baranwal 7e13518cc2
parser: disallow match expr at certain places (#6490) 2020-10-03 16:30:58 +03:00
Delyan Angelov 5aea0d024f docs: add bitwise not (~) to the list of int operators 2020-10-03 15:07:56 +03:00
igrekus 417b1450b5
doc: fix phrasing and whitespace (#6520) 2020-10-01 23:41:17 +03:00
Andrei Kurhan 763ddf78f3
doc: fix Interfaces example (#6499) 2020-09-30 07:42:23 +02:00
Delyan Angelov 96102613f3 doc: improve testing section 2020-09-29 23:48:56 +03:00
Daniel Däschle 06cade6c31
all: change .ReturnType and .Type to .return_type and .typ (#6494) 2020-09-28 06:13:38 +02:00
Delyan Angelov 914c1a527d doc: add `json.decode([]Foo, sfoos)? example 2020-09-26 12:34:26 +03:00
Nick Treleaven acbfc11eef
doc: tweak Modules section (#6480) 2020-09-25 20:34:58 +02:00
Nick Treleaven ffee3791e8
doc: improve Testing section (#6479) 2020-09-25 19:25:14 +03:00
Daniel Däschle abc98c273c
parser: require assign on type alias (#6477) 2020-09-25 12:02:32 +02:00
Nick Treleaven bf8592fe93
doc: tweak Testing section (#6465) 2020-09-25 11:51:39 +02:00
Sanath Kumar U f159163856
docs: update the module import example (#6439) 2020-09-21 17:31:11 +03:00
Uwe Krüger 0f1c484ad1
parser/checker: `if select { ... } {` (#6434) 2020-09-21 07:34:04 +02:00
Uwe Krüger 3454677eb9
doc: update channel documentation (#6432) 2020-09-20 16:20:56 +02:00
Nick Treleaven 9958881cbe
parser: support parsing unsafe (as first token) as UnsafeExpr (#6032) 2020-09-19 19:18:36 +03:00
Lukas Neubert 5782f562ae
doc: update condif section (#6418) 2020-09-18 23:48:59 +02:00
igrekus 4dda06f9bb
doc: fix typos (#6405) 2020-09-18 01:15:25 +02:00
Delyan Angelov bb20586a5e docs: update type redeclaration example 2020-09-16 23:21:27 +03:00
spaceface777 96b7cce810
doc: simplify string mutability section (#6369) 2020-09-16 17:40:52 +03:00
igrekus 4b1e330219
doc: fix typo (#6370) 2020-09-15 15:50:35 +02:00
Swastik Baranwal 01b28ef1a5
doc: string immutability example 2020-09-14 16:18:10 +02:00
Alexander Medvednikov f7a77f4041
doc: document snake_case/PascalCase requirement 2020-09-14 16:06:32 +02:00
Maciej Obarski f162e61748
doc: reserved keywords update based on token.v (#6050) 2020-09-12 14:10:27 +03:00
Delyan Angelov 60ecb7e4b6 os: change f.write and f.writeln to return options too 2020-09-12 08:39:28 +03:00
Yahyaa Masood 5c656899e5
doc: add a missing period (#6199) 2020-09-07 13:50:12 +02:00
Lukas Neubert 95ce9f33a9
doc: fix a typo (#6257) 2020-08-30 08:55:53 +02:00
Alexander Medvednikov d88e8bb9ea
doc: document comma in match 2020-08-29 11:03:16 +02:00
Uwe Krüger 4d425b0e6d
fmt: insert space in front of `?` for propagation (#6250) 2020-08-29 01:56:43 +02:00
Alexander Medvednikov 35aeb308c6
doc: exit(), panic() 2020-08-24 11:45:40 +02:00
Alexander Medvednikov 55e75d57ae
docs: smart casts 2020-08-24 11:14:35 +02:00
Maciej Obarski e8e0d9fa42
all: [direct_array_access] tag (#6203) 2020-08-24 09:04:50 +02:00
Lukas Neubert d8d707b4fe
doc: $else (#6174) 2020-08-20 08:33:08 +02:00
Alexander Medvednikov f965ddae49 parser: handle several errors in types; cgen: objC includes 2020-08-16 19:16:59 +02:00
Alexander Medvednikov 9478ff472f doc: sorting arrays 2020-08-12 19:14:13 +02:00
Nick Treleaven 6a8a589adb
doc: `Compile-time reflection` section with *new features* (#5962) 2020-08-11 17:57:39 +02:00
Nick Treleaven fce106cf83
parser: use Attr.arg field for `[name: arg]` (#6084) 2020-08-10 02:00:14 +02:00
Maciej Obarski 4e8fe9b1a8
doc: variadic function example (#6093) 2020-08-09 04:12:08 +02:00
Maciej Obarski 8d9f38f670
doc: 2d array example (#6058) 2020-08-05 01:46:04 +02:00
Maciej Obarski 4b8652755d
doc: concurency example with WaitGroup (#6034) 2020-08-01 23:08:57 +02:00
Maciej Obarski 2c6286b381
doc: another generics example (#6031) 2020-08-01 15:34:23 +02:00
Maciej Obarski fbb260159b
doc: add section with examples for `for k,v in map{}` (#6025) 2020-07-31 19:08:12 +03:00
Alexander Medvednikov f269cbdc94 Revert "parser: Support `unsafe(expr)` (#5973)"
This reverts commit 19c226fcf8.
2020-07-29 21:41:47 +02:00
Nick Treleaven 19c226fcf8
parser: Support `unsafe(expr)` (#5973) 2020-07-28 11:20:52 +03:00
Nick Treleaven 9f6e4a86e9
doc: improve array docs (#5950) 2020-07-26 20:29:51 +02:00
Alexander Medvednikov 2eee274d6d
doc: document C string literals 2020-07-23 22:49:56 +02:00
Nick Treleaven 75aa92b907
doc: add more subheadings & tweaks (#5752) 2020-07-23 18:55:54 +02:00
Nick Treleaven 582338ab79
docs: document `for v in low..high {` (#5949) 2020-07-23 18:55:35 +02:00
Nick Treleaven 76c8e28e86
doc: reinstate the 'Short struct literal syntax' section + tweaks (#5762) 2020-07-23 00:37:37 +02:00
Nick Treleaven 95b7fcadca
doc: add memory safety section & unsafe {...} example (#5804) 2020-07-23 00:36:23 +02:00
Iman b64ccb153a
doc: minor fixes (#5878) 2020-07-23 00:35:42 +02:00
Koki Nishihara ae4a9aca18
doc: edit comment in array example (#5936) 2020-07-23 00:33:50 +02:00
Koki Nishihara 44c280e522
doc: fix example program for array (#5926) 2020-07-22 17:28:09 +03:00
spaceface777 6d09842852
doc: document range match branch syntax (#5913) 2020-07-22 02:31:32 +02:00
Ryan Willis 1114fd28d0
all: import individual symbols feature (#5872) 2020-07-18 21:34:38 +02:00
Ryan Willis e804ba5294
vfmt: add support for VDIFF_TOOL, detect more diffing tools (#5857) 2020-07-17 14:03:07 +03:00
Nick Treleaven 2492066041
doc: document optional `if val := opt {` (#5838) 2020-07-15 21:57:41 +02:00
spaceface777 6a260ad974
doc: make int base section more concise (#5827) 2020-07-14 20:26:14 +03:00
Nick Treleaven f5579525c4
doc: enhance the Option example, tweak the Calling C section (#5830) 2020-07-14 20:24:59 +03:00
Swastik Baranwal c3bdacbf04
doc: add info about _ separator in literals (#5823) 2020-07-14 15:46:13 +02:00
Delyan Angelov c363c11e20 doc: fix `type of int` => `type int` 2020-07-14 11:38:40 +03:00
Delyan Angelov 3703ade9f1 doc: add a Numbers section. Add tests for `0b` prefixed integer literals too 2020-07-14 11:10:43 +03:00
spaceface777 8273e021db
doc: clarify that an `or` block may end with a default value (#5814) 2020-07-12 20:27:41 +03:00
Delyan Angelov 87a0765ce4 doc: add that `or` blocks may end with default values 2020-07-12 19:47:09 +03:00
Tom Leen e747dfd50f
doc: fix module init signature (#5809) 2020-07-11 21:20:28 +02:00
Swastik Baranwal 839bd0e150
doc: fix array init (#5801) 2020-07-11 15:37:55 +02:00
Delyan Angelov 2ea187fb85 doc: mention throw/try/catch in the Option section, so people can find it easier 2020-07-11 11:26:22 +03:00
Delyan Angelov d44fe50953 doc: update the SQLite C interoperability example 2020-07-11 10:49:42 +03:00
vitalyster 1a9690cc62
doc: better [windows_stdcall] info (#5780) 2020-07-10 13:14:08 +02:00
Daniel Däschle c5dc1a33b6
all: remove `it` smartcast and replace with original variable name (#5764) 2020-07-09 17:14:14 +02:00
Nick Treleaven f834276803
doc: struct literals (#5726) 2020-07-08 16:02:35 +02:00
Nick Treleaven ec82fa77c5
doc: update `match` docs (#5753) 2020-07-08 15:56:49 +02:00
Nick Treleaven 97ef860acb
[doc] add `assert`, `false`, `true`, `unsafe` to the keywords (#5700) 2020-07-08 09:50:32 +03:00
Matheus Salmi b3ed2a4dcc
doc: update keywords (#5724) 2020-07-07 16:57:39 +02:00
Alexander Medvednikov 1307cfc97c
doc: document array init syntax 2020-07-07 11:55:22 +02:00
Nick Treleaven 9e7ba5f138
doc: update sum type docs (#5702) 2020-07-06 18:09:38 +02:00
Delyan Angelov 25771a1afe compiler: remove -keepc option (it is now always on) 2020-07-06 13:42:18 +03:00
Uwe Krüger 3b067f5f85
all: experimental locked concurrency support, part 1 (#5637) 2020-07-04 12:44:25 +02:00
Nick Treleaven 55989b3c2c
doc: split array example & some tweaks (#5564) 2020-06-30 14:37:02 +02:00
Nick Treleaven d091f4e5b2
doc: general tweaks (#5566) 2020-06-30 14:29:55 +02:00
Swastik Baranwal b17ed79773
doc: add `as` and `is` keywords 2020-06-29 17:59:31 +02:00
0xflotus 03829d9935
doc: fix typos 2020-06-28 02:19:52 +02:00
Swastik Baranwal 8e2a8cc7f3
doc: add `%` in op overloading section 2020-06-27 19:26:21 +02:00
Uwe Krüger 288ea182a8
doc: describe coroutines and how to exchange data 2020-06-26 23:55:34 +02:00
Alexander Medvednikov d2a4762c6a
doc: fix layout 2020-06-26 20:12:52 +02:00
Alexander Medvednikov 195f4d0911
doc: valign=top 2020-06-26 20:01:30 +02:00
Nick Treleaven b8d2208c7a
doc: fix ToC alignment 2020-06-26 20:00:52 +02:00
Nick Treleaven 6b1b5e001d
doc: use nested list for Table of Contents
A nested list is much easier to browse than a table.
Move Imports section below Arrays and Maps for Types grouping.
Move Defer section to Statements group.
Move vfmt section next to Profiling for Tools group.
2020-06-26 19:36:40 +02:00
sudo-nice f703ddfb66
doc: short map syntax doesn't need a comma 2020-06-26 13:07:57 +02:00
Alexander Medvednikov 9c6b772395
doc: update match syntax 2020-06-21 20:02:35 +02:00
Alexander Medvednikov 81d17a63e3
doc: add a link to ORM examples 2020-06-21 16:12:16 +02:00
Alexander Medvednikov 9d7afa4e30
doc: update ORM syntax 2020-06-21 16:09:35 +02:00
joe-conigliaro f526754535
docs: update wording & fix typo 2020-06-19 01:52:21 +10:00
joe-conigliaro 98a48ecfb9
docs: add sum type cast & match information 2020-06-19 01:37:41 +10:00
sudo-nice 5749add670
doc: helping V to determine an array type 2020-06-17 12:03:09 +02:00
Delyan Angelov c874a22b3b doc: use `v new` instead of `v create` 2020-06-14 21:20:31 +03:00
Delyan Angelov b01709e502 doc: fix formatting 2020-06-11 08:00:14 +03:00
Delyan Angelov 6c087de837 doc: mention charptr in the primitives section too 2020-06-11 07:58:52 +03:00
Alexander Medvednikov 4fdb33bb0a
doc: make attrs more clear 2020-06-09 23:04:46 +02:00
Alexander Medvednikov 66696e1329
doc: [inline] 2020-06-09 22:49:40 +02:00
Alexander Medvednikov 3f6c3edd19
doc: minor fixes 2020-06-09 22:47:41 +02:00
Alexander Medvednikov b9bd296adc
doc: attributes 2020-06-09 22:40:36 +02:00
Delyan Angelov e8e205284c
doc: update performance tuning section 2020-06-09 19:09:41 +03:00
Delyan Angelov 4fc41c4bc4 v: add compiler support for _unlikely_(x) too 2020-06-09 18:11:03 +03:00
Delyan Angelov c7d4360931 v: add full compiler support for _likely_(x) 2020-06-09 17:42:43 +03:00
Lukas Neubert 0c1d3ffbfe
doc: add missing links to ToC 2020-06-08 15:39:35 +02:00
sandrochuber 073d9f3179
docs: fix small typo 2020-06-05 16:23:24 +02:00
Eric Crook 9aa9ea7e2e
doc: use vfmt -w 2020-06-02 19:26:16 +02:00
Uwe Krüger b0f66a4e05
checker: permit int -> f32, int64 -> f64 and similar promotions again 2020-06-02 17:00:14 +02:00
Alexander Medvednikov bfb926a544
doc: minor clean up 2020-05-31 11:12:37 +02:00
Delyan Angelov b17e10c72e docs: mention `v run` and `v symlink` earlier 2020-05-31 08:56:50 +03:00
JalonSolov b7dc5b2f7b
stopwatch: auto_start option, make pause cumulative 2020-05-30 10:20:54 +03:00
Uwe Krüger 013fdb8a4b
checker: restrict numeric promotions to cases where no data is lost 2020-05-27 05:42:48 +02:00
Delyan Angelov 3cfdd2a4cd scanner: add support for @VMOD_FILE 2020-05-26 23:39:15 +03:00
Delyan Angelov 1cc52b0fae docs: update obsolete references to the compiler/ folder 2020-05-22 10:11:12 +03:00
Alexander Medvednikov 7e55261c17
doc: remove snake_case consts for now 2020-05-21 16:34:57 +02:00
yuyi ebdfe9a9c5
doc: correct an example 2020-05-18 14:35:51 +02:00
yuyi 1a990407c7
doc: fix minor typo 2020-05-17 19:24:04 +02:00
Alexander Medvednikov a66eebc651
doc: clarify the short struct syntax 2020-05-17 16:15:02 +02:00
Alexander Medvednikov 89d7d937ae
doc: short struct init syntax 2020-05-17 16:11:48 +02:00
Alexander Medvednikov 2de127f045
docs: structs: more info on default field values 2020-05-17 16:01:02 +02:00
Alexander Medvednikov 3bd88a3cc2
docs: public readonly fields 2020-05-16 15:36:19 +02:00
Alexander Medvednikov 5767576deb
docs: structs: clean up 2020-05-16 15:19:48 +02:00
Alexander Medvednikov cd43258f41
docs: structs: custom default values 2020-05-16 15:17:27 +02:00
Swastik Baranwal 74d2ae518a
docs: fix typo 2020-05-15 13:35:33 +02:00
Alexander Medvednikov ab8264f8be
docs: interfaces: is 2020-05-14 17:50:48 +02:00
sudo-nice b233c24d19
doc: rename field `default` to `init` for array 2020-05-14 11:00:13 +03:00
Don Alfons Nisnoni daca6df41a
docs: fix TOC navigation links 2020-05-11 23:56:16 +02:00
Alexander Medvednikov fd71093a28
docs: more styling fixes 2020-05-11 20:25:48 +02:00
Alexander Medvednikov 0a89aa0044
docs: minor fixes 2020-05-11 20:21:41 +02:00
Alexander Medvednikov dae3907c5f
docs: clean up toc 2020-05-10 16:55:38 +02:00
Louis Schmieder 3ec2608d6b
glm: matrix multiplication; docs: toc 2020-05-10 16:49:29 +02:00
Alexander Medvednikov 0af939c30d
docs: table of contents 2020-05-10 15:49:43 +02:00
Teymour Aldridge 1991220797
docs: update documentation on iterators 2020-05-07 18:01:09 +02:00
yuyi ab30e81ab5
docs: fix minor typo 2020-05-07 15:36:34 +02:00
Teymour Aldridge 9b0b6ec2db
docs: improve the clarity, fix grammar 2020-05-07 12:30:41 +02:00
ytakahashi 24aff9e511
doc: fix wrong syntax 2020-05-06 02:56:46 +02:00
dumblob 36760f0982
doc: fix wording for "return none" 2020-05-05 16:26:22 +02:00
Alexander Medvednikov 4de48e86d2
doc: sum types 2020-05-05 15:42:53 +02:00
dumblob 869444cec6
doc: fix wording for "return none" 2020-05-05 11:37:44 +02:00
Delyan Angelov dbbfb04e7c docs: change obsolete -show_c_cmd to -showcc and -keepc 2020-05-02 19:01:53 +03:00
Uwe Krüger 170ee4312f
cgen: string interpolation field width support for large integers and utf8 strings 2020-05-02 00:43:59 +02:00
Alexander Medvednikov 666801f9f9
docs: v doc 2020-05-01 10:55:48 +02:00
Delyan Angelov 66f4c881ec docs.md: add profiling section 2020-05-01 11:04:00 +03:00
Alexander Medvednikov cd45e9ea48
docs: update array docs 2020-04-26 17:19:08 +02:00
Tin Le 7bcca827b6
docs: replace remaining `var` with `mut` 2020-04-23 19:05:27 +02:00
dumblob d5eafe79bd
doc: fix misleading description of optionals 2020-04-23 05:35:33 +02:00
Alexander Medvednikov aef756a3fd
docs: high order functions 2020-04-22 07:23:05 +02:00
Alexander Medvednikov ee2e83fef0 go back to `mut`. decisions, decisions... 2020-04-21 05:11:50 +02:00
Dimitri Merejkowsky 4fe4709b56
docs: fix typo 2020-04-18 21:28:05 +02:00
axinli 5e4c5f189f
docs: fix remaining `mut`s 2020-04-16 05:52:35 +02:00
Alexander Medvednikov e1a2a4f362
docs: imports and a simple os.get_line() example 2020-04-16 02:01:55 +02:00
Alexander Medvednikov 8e8f543013
docs: mut => var 2020-04-16 01:49:16 +02:00
Alexander Medvednikov 2006995020 cmd/v: remove clang-format (the generated code is pretty from the start) 2020-04-06 17:11:01 +02:00
Hugo Locurcio baf25fe649
doc: improve the cross-platform shell scripts documentation 2020-03-10 14:23:55 +01:00
Delyan Angelov 1066ec5cd9
compiler: import modules relative to v.mod 2020-03-01 15:49:39 +01:00
Delyan Angelov f9d5c0110f
compiler: @VMODULE 2020-02-29 14:23:45 +01:00
spaceface777 ef8c1203b4
cleanup: replace C for loops with range 2020-02-24 17:55:16 +01:00