Commit Graph

4896 Commits (5c93f942be81a0cbb4fcd76b241d754caccbfb8e)

Author SHA1 Message Date
Uwe Krüger 4d2c8a40d6
sync/atomic2: support 32 bit platforms (#6308) 2020-09-05 14:44:16 +02:00
Alexander Medvednikov 3410705974 autofree: lots of fixes 2020-09-05 12:00:35 +02:00
Uwe Krüger b015033c53
builtin: add methods to builtin channels (#6303) 2020-09-05 01:36:20 +02:00
Pavel Kolesnikov 246fe3bfb7
builder: cc_linux_cross() fixes (#6287) 2020-09-05 01:35:35 +02:00
Xavier B 8ef55bd8c9
checker: add checks for map key/value types (#6283) 2020-09-04 23:59:54 +02:00
Larpon 81778e507f
os: is_file() (#6301) 2020-09-04 22:27:52 +02:00
Larpon efa49bfbb7
os: make behave more like Unix "mv" command (#6300) 2020-09-04 13:08:47 +02:00
Alexander Medvednikov 333f355e23 Revert "cgen: handle variables called "array""
This reverts commit cc714ca5cc.
2020-09-03 02:43:26 +02:00
Uwe Krüger b8617ace53
checker: do not allow aliases of `chan` types (#6294) 2020-09-03 02:03:31 +02:00
Alexander Medvednikov cc714ca5cc cgen: handle variables called "array" 2020-09-03 02:01:21 +02:00
Pavel Kolesnikov a3ee217537
builder: use tar instead of unzip in cc_linux_cross() (#6286) 2020-09-02 10:09:06 +02:00
spaceface777 35cbca96e1
checker: implement `[required]` struct field attribute (#6276) 2020-08-31 23:15:40 +02:00
spaceface777 bd304f1141
checker: check number of fields in short struct inits (#6280) 2020-08-31 22:17:59 +02:00
spaceface777 60a9d49382
cgen: implement `[export: 'FooBar']` attribute (#6278) 2020-08-31 21:52:25 +02:00
Sandro Martini 39da5eca89
vweb: hide debug prints 2020-08-31 19:39:46 +02:00
Uwe Krüger cbcba2e4cf
parser: enable module auto import (of `sync`) (#6271) 2020-08-31 10:44:39 +02:00
florin b1a8e1e5b2
vweb: escape form key, not only value. (#6269) 2020-08-30 19:09:12 +02:00
Xavier B d33f68ff54
x.websocket: remove debuging leftover (#6264) 2020-08-30 19:35:47 +03:00
Nick Treleaven 5d3d14da53
cgen: support `typeof(expr).name` (#6253) 2020-08-30 08:56:18 +02:00
Uwe Krüger c351f8fa47
checker, builtin: prepage for builtin channels (#6262) 2020-08-30 08:55:31 +02:00
Delyan Angelov 718a4692dd os: enable test_write_and_read_bytes again 2020-08-29 07:43:31 +03:00
Uwe Krüger fe8286c53c
checker: implement implicit conversions/promotions to `rune` (#6249) 2020-08-29 01:59:07 +02:00
Maciej Obarski 7bd2804ce9
all: automatic error propagation in place of "or { return(err) }" 2020-08-29 01:58:03 +02:00
Uwe Krüger 4d425b0e6d
fmt: insert space in front of `?` for propagation (#6250) 2020-08-29 01:56:43 +02:00
Delyan Angelov 30fc374fc5 os.args: fix os.args[0] when compiling graphical apps on windows 2020-08-28 22:39:52 +03:00
Nick Treleaven 7dbae14e19
checker: error on `mut name =` (#6247) 2020-08-28 20:07:32 +03:00
Delyan Angelov 5d18ece661 ci: fix msvc finding (3) 2020-08-28 20:06:41 +03:00
Delyan Angelov 68864d0703 ci: fix msvc finding (2) 2020-08-28 19:58:17 +03:00
Delyan Angelov 317d15dbe9 ci: fix finding the msvc compiler on windows 2020-08-28 19:48:18 +03:00
Delyan Angelov 3d8a35ced6 ci: fix compiler error tests on windows 2020-08-28 19:27:41 +03:00
Delyan Angelov dde1b89c5e vup: remove empty new line on unix 2020-08-28 19:09:47 +03:00
Maciej Obarski 2ce5797ec2
os: vfopen returns option now (#6244) 2020-08-28 14:24:00 +02:00
Alexander Medvednikov 789674bd5a tests: autofree: use -experimental flag 2020-08-28 10:22:28 +02:00
Alexander Medvednikov 0890562663 tests: autofree tmp expr test 2020-08-28 10:08:32 +02:00
Swastik Baranwal 39bf02ea68
checker: add error for arr1 <,>,>=,<= arr2 (#6243) 2020-08-28 11:08:07 +03:00
Delyan Angelov 88f75fc1d6 builder: cleanup cc.v; log build_thirdparty_obj_files with `-v` 2020-08-28 09:38:52 +03:00
spaceface777 d663f57d43
parser: move flag logic to checker (#6239) 2020-08-28 09:24:04 +03:00
Delyan Angelov 5526954fdc vdoc: cleanup warnings on `./v doc -s vlib` 2020-08-28 09:03:22 +03:00
Delyan Angelov d80843bf53 vdoc: parse with `enable_globals: true` 2020-08-28 08:53:12 +03:00
Delyan Angelov 0975f3bd4c vfmt: support `x chan Name` in fn args 2020-08-28 01:54:16 +03:00
Delyan Angelov 8f5ca29fcd vfmt: support `x := chan Name{cap: 123}` 2020-08-27 23:37:39 +03:00
Alexander Medvednikov 27702b5a5d fast: update V with v up instead of git pull 2020-08-27 18:07:28 +02:00
Alexander Medvednikov a14c6c1ffe autofree: another tmp arg fix 2020-08-27 17:54:36 +02:00
Larpon d982aa54e8
os: add missing documentation (#6234) 2020-08-27 16:57:01 +02:00
spaceface777 eff319f869
comp_for: allow checking full mehod and arg types (#5997) 2020-08-27 15:00:44 +02:00
Delyan Angelov 7476428def vfmt: handle comments after last const field 2020-08-27 15:07:49 +03:00
Delyan Angelov 8f5cefb116 strconv: fix f64_to_str_lnd and f64_to_str_l after 6921d46 2020-08-27 14:22:04 +03:00
Alexander Medvednikov c01d17fcc4 tests: fix array_test.v 2020-08-27 13:12:04 +02:00
Alexander Medvednikov 15bdb8f7cd autofree: tmp arg var frees fixes 2020-08-27 11:30:35 +02:00
Delyan Angelov 3b03edd7cb repl: fix compilation after 6921d46 2020-08-27 12:20:31 +03:00
Delyan Angelov 8b3990225a v.checker: run vfmt over vlib/v/checker/checker.v 2020-08-27 12:09:08 +03:00
Delyan Angelov f73506be49 tests: fix some byte->rune errors 2020-08-27 12:08:05 +03:00
Stunx fa3e95222e
doc: ignore sokol.sapp (#6228) 2020-08-27 08:35:04 +02:00
Xavier B 3e9dc578de
checker: disallow interfaces inside sum types (#6232) 2020-08-27 08:33:59 +02:00
Alexander Medvednikov 8dcc73993e net: remove old websocket module 2020-08-27 07:33:59 +02:00
Alexander Medvednikov 6921d46185 all: rune type for `` literals 2020-08-27 06:46:37 +02:00
Delyan Angelov 99dd72efea tests: add another test for 47f59d3 2020-08-26 11:46:29 +03:00
Delyan Angelov 47f59d3fb6 v.scanner: fix error line numbers when comments end with CRLF 2020-08-26 11:39:32 +03:00
Alexander Medvednikov 84b8e0a7e4 tests: enable live tests on macos 2020-08-26 06:50:32 +02:00
Uwe Krüger 393b46a6dd
channels: make `ch.len` and `ch.cap` available as properties (#6221) 2020-08-26 06:41:51 +02:00
Delyan Angelov 7879510ef5 live: fix hot code reloading on macos (use .dylib, not .so) 2020-08-25 21:40:45 +03:00
Alexander Medvednikov a55bea44da table: register rune type 2020-08-25 18:15:24 +02:00
Delyan Angelov cc82ed28f8 tests: enable running fmt_vlib_test.v on != freebsd platforms again 2020-08-25 19:09:47 +03:00
Delyan Angelov e3f79df3ac tests: support .vv in compiler_test.v too 2020-08-25 18:52:28 +03:00
Delyan Angelov 55fdae77d5 tests: add .vv support for `v vet` too, and simplify vet_test.v 2020-08-25 18:46:33 +03:00
Delyan Angelov 86dfd3902f tests: use .vv files directly in compiler_errors_test.v 2020-08-25 18:14:06 +03:00
Delyan Angelov f259d275fc tests: bump simple_tcp_client retries to 20 2020-08-25 17:52:44 +03:00
Delyan Angelov 7b7ab580ab tests: add retry logic in simple_tcp_client in vweb_test.v 2020-08-25 17:05:40 +03:00
Delyan Angelov 1619beda91 tests: fix repl_test.v 2020-08-25 15:59:07 +03:00
Delyan Angelov ceca1547fb valgrind: fix valgrind_test.v 2020-08-25 15:48:11 +03:00
Alexander Medvednikov c8b3cd2957 tests: simplify valgrind tests, remove .vv 2020-08-25 13:58:21 +02:00
Alexander Medvednikov 33b4ff75d0 builder: handle bad extensions and support .vv 2020-08-25 13:32:27 +02:00
Nick Treleaven 818db91a9e
parser: warn if PostfixExpr followed by `]` or `)` token (#6214) 2020-08-25 08:50:06 +02:00
Nick Treleaven 479bfa28de
cgen: implement fixed array `.len` property (#6212) 2020-08-25 08:48:28 +02:00
Nick Treleaven 8e4ee54070
glm: fix pointer indexing warnings (#6215) 2020-08-25 08:48:05 +02:00
Delyan Angelov 995a5fed1f v.builder: add -DNDEBUG for non debug -prod builds (affects sokol performance) 2020-08-24 23:10:22 +03:00
Delyan Angelov 3efa670d6a sokol: add new mouse_dx and mouse_dy fields (fix for Android multitouch) 2020-08-24 23:01:14 +03:00
Xavier B 32a894719e
x.openssl: remove printlns (#6205) 2020-08-24 17:20:03 +02:00
Nick Treleaven acc5c95f0d
checker: error with `*expr` if not a pointer (#6211) 2020-08-24 17:19:17 +02:00
Alexander Medvednikov d547f74cb0 checker/cgen: interface smart casts 2020-08-24 11:10:26 +02:00
Maciej Obarski e8e0d9fa42
all: [direct_array_access] tag (#6203) 2020-08-24 09:04:50 +02:00
Alexander Medvednikov 702a80fc5a x.net: fix new_tcp_socket() 2020-08-24 03:24:00 +02:00
Delyan Angelov fa8f5df817 sokol: fix compilation of 2048 on some linux distros (undefined XIQueryVersion and XcursorImageCreate) 2020-08-23 22:17:05 +03:00
Delyan Angelov 2e589a5b0b sokol.audio: add proper #flag for windows (-lole32) 2020-08-23 21:15:59 +03:00
Delyan Angelov e71aff71ce sokol.audio: fix compilation on macos (link with -framework AudioToolbox) 2020-08-23 20:55:01 +03:00
Delyan Angelov dad2c6608e examples: implement examples/sokol/sounds/wav_player.v 2020-08-23 20:49:37 +03:00
Delyan Angelov 1c9e02094c sokol.audio: add simple_sin_tones.v example 2020-08-23 15:28:07 +03:00
Alexander Medvednikov 542b149290 sokol: fix examples and remove copy pasta 2020-08-23 07:47:50 +02:00
Alexander Medvednikov 94c3a912ba gg: update sokol and stb_truetype 2020-08-23 07:25:30 +02:00
Alexander Medvednikov 5407d9b062 gg: fix draw_line on hi dpi screens 2020-08-23 04:57:12 +02:00
Swastik Baranwal b2e79dbebd
parser: add an error for `import mod.sub as mod` and `import mod as mod` (#6194) 2020-08-23 02:12:25 +02:00
Uwe Krüger 61df70fdf5
all: enable `x = <-ch or {...}` (#6195) 2020-08-23 02:12:05 +02:00
Alexander Medvednikov 7dfae2384b builtin: remove asl.h include 2020-08-22 17:22:14 +02:00
Alexander Medvednikov 9e12095111 gg: image: return an optional instead of panic(); darwin: fix nsstring() 2020-08-22 17:09:30 +02:00
Delyan Angelov 0bdb096bfa x.net: use port 45123 in tcp_test.v, preventing sporadic `socket error 98` conflicts with websocket_test.v 2020-08-22 15:29:29 +03:00
Delyan Angelov 94ced907d2 sort: fix C compilation error for `fn abc(mut a []int) { a.sort() }` 2020-08-22 15:20:49 +03:00
Yarila682 7dde82322a
cgen: fix dereferencing a mutable array (#6191) 2020-08-22 12:48:09 +02:00
Daniel Däschle fcc61a981d
all: TypeSymbol.source_name (#6187) 2020-08-22 12:29:15 +02:00
Delyan Angelov b5ca114a96 ui: fix compiling the calculator ui example with tcc 2020-08-22 12:58:48 +03:00
Nick Treleaven 98c39a37c0
scanner: warn about interpolation for `$f(expr)` (#6179) 2020-08-22 05:48:06 +02:00
Alexander Medvednikov 793d2ce6dc stbi: more clear panic message 2020-08-22 00:51:16 +02:00
Tomas Hellström fb148e0b61
x.websockets: new websockets module on top of x.net (#6189) 2020-08-22 00:50:38 +02:00
Nick Treleaven 1b914d217e
fmt: don't remove `mut` from `if mut` smart cast (#6188) 2020-08-22 00:00:02 +02:00
Delyan Angelov 06967d9297 sort: require a mutable receiver 2020-08-21 21:19:37 +03:00
Lukas Neubert 93e6c3df6a
cli: various improvements (#6180) 2020-08-20 23:14:53 +02:00
Emily Hudson b88569c845
x.net: new net module (#6130) 2020-08-20 23:01:37 +02:00
Delyan Angelov 9b171b76e0 os: call os.real_path/1 before returning in os.find_abs_path_of_executable/1 2020-08-20 19:23:19 +03:00
Daniel Däschle 0c183da116
checker: fix sort return type (#6182) 2020-08-20 17:29:40 +03:00
Delyan Angelov e8ff94fb8b net.html: simplify map setting (fixes compilation with tcc on aarch64) 2020-08-20 16:45:54 +03:00
Delyan Angelov dfc4298125 tests: return early in x64_test.v on non AMD64 machines 2020-08-20 15:42:26 +03:00
Delyan Angelov 8c7bcad6b1 cgen: support for `$if amd64 {}` and `$if aarch64 {}` 2020-08-20 15:28:37 +03:00
Lukas Neubert 6eea13ecc2
clipboard: wrap pointer indexing in unsafe block (#6178) 2020-08-20 10:33:12 +02:00
Alexander Medvednikov 9da7349f63 gg: minor fixes 2020-08-20 08:32:05 +02:00
Lukas Neubert 88bca9d17a
clipboard: wrap vstring call in unsafe (#6170) 2020-08-19 16:06:23 +02:00
Nick Treleaven 217f04e311
checker: disallow casting to bool, use `some_int != 0` instead (#6138) 2020-08-19 14:37:55 +02:00
Alexander Medvednikov 55b025413d fmt: temporary struct attr fix 2020-08-19 14:33:45 +02:00
Larpon d9aae023b1
android: initial support for C output using sokol_main (#6164) 2020-08-19 11:00:15 +02:00
spaceface777 c1651bd271
gg: fixes and Android support (#6161) 2020-08-19 07:10:42 +02:00
jhuntos c42ca84850
pg: fix array init warnings (#6163) 2020-08-19 07:10:09 +02:00
Nick Treleaven e69f091bbd
parser: require `(` on same line as name token for fn call or cast (#6160) 2020-08-19 02:37:17 +02:00
Alexander Medvednikov 51bd69cdd8 cgen: fix u64 in struct str() 2020-08-18 16:05:11 +02:00
Delyan Angelov 7727aad90f net.http: fix windows compilation warning 2020-08-18 12:14:21 +03:00
Delyan Angelov 2f6757a56a Revert "cgen: fix all -Wmissing-variable-declarations (#5802)"
This reverts commit ae349ca6ba.

Fixing these warnings, unfortunately also means, that hot code
(which reloads a shared library during runtime) can not use V
constants, because the private static C variables in the shared
library will not be initialized by _vinit(), which is only called
by the main V program.

For example in examples/hot_reload/bounce.v, using `gx.blue`,
defined as:
`    blue   = Color { r:   0, g:   0, b: 255 }`
... will instead use a const with all 0 fields (i.e. a black color).
2020-08-18 11:55:55 +03:00
Delyan Angelov 937a3e14c5 cgen: add g.options_typedefs, g.shared_types, g.channel_definitions 2020-08-18 11:45:36 +03:00
Alexander Medvednikov 40d91cc23b gg: handle bad image index 2020-08-18 01:08:58 +02:00
joe-conigliaro c599a4c7de
checker: remove pos+1 on innermost call 2020-08-18 07:39:40 +10:00
Uwe Krüger 0d7cc8829a
cgen: implement channel `push()`/`pop()` using `<-` operator (#6154) 2020-08-17 23:35:36 +02:00
JalonSolov 5c98c0760b
gg: use OpenGL on Windows until D3D issues resolved (#6155) 2020-08-17 23:34:51 +02:00
Daniel Däschle b5c1ea44dc
all: fix mutability after if-smartcast (#6129) 2020-08-17 21:11:11 +02:00
Nick Treleaven 36c98b3e5d
cgen: implement fixed array 'for in' for lvalue condition (#6151) 2020-08-17 21:10:47 +02:00
Swastik Baranwal 46b4e2a0cd
checker: check`match` types (#6149) 2020-08-17 20:19:21 +02:00
Sandro Martini dab639662f
http: fix new warnings (#6153) 2020-08-17 20:17:17 +02:00
Irabaruta Freeman fa11e124dd
term: add documentation (#6097) 2020-08-17 20:16:18 +02:00
Uwe Krüger 9a5f040f72
all: handle `<-` arrow token for channel operations (#6152) 2020-08-17 20:12:00 +02:00
joe-conigliaro c01fd4ac58
parser: remove extra scopes from if & match & fix scope end_pos 2020-08-18 01:51:25 +10:00
Nick Treleaven 6ba6a22a77
checker: prevent from casting non-struct to struct (#6143) 2020-08-17 11:19:44 +02:00
Uwe Krüger 0c7d73c8b0
sync/channels: use references for `chan mut X` testcase (#6145) 2020-08-16 23:01:49 +02:00
Alexander Medvednikov b2059c481a checker: fix an incorrect name test 2020-08-16 19:24:00 +02:00
Alexander Medvednikov f965ddae49 parser: handle several errors in types; cgen: objC includes 2020-08-16 19:16:59 +02:00
Delyan Angelov 191c908f3a tests/valgrind: vfmt fn_with_return_should_free_local_vars.vv 2020-08-16 13:22:32 +03:00
Delyan Angelov fbe02c5ae1 tests/valgrind: add skipped fn_with_return_should_free_local_vars.vv (-autofree) 2020-08-16 13:20:02 +03:00
Delyan Angelov fc7a108366 v.builder: fix quoting when building thirdparty source files 2020-08-16 10:18:14 +03:00
Yarila682 29528196f2
os: close opened file descriptors in `cp()` (#6142) 2020-08-16 04:55:10 +02:00
Nick Treleaven bab5c21224
parser: warn when fixed-size ArrayInit doesn't have trailing `{}`. (#6137) 2020-08-16 04:54:05 +02:00
Enzo a02593204f
checker: forbid aliasing an alias (#6118) 2020-08-16 04:53:16 +02:00
Vinicius Rangel bf065674cc
json: maps, memory leak, and error forwarding (#6116) 2020-08-16 02:30:37 +02:00
Delyan Angelov e7b2aefd36 v.pref: handle `|` as separators in -path option parsing again (as documented in the help) 2020-08-15 22:09:40 +03:00
Uwe Krüger c2b4c645a1
sync/channels: document more benchmark results (#6135) 2020-08-15 11:20:51 +02:00
Nick Treleaven 0f0a91fc9e
parser: support custom fixed size ArrayInit: `[3]int{init: -1}` (#6114) 2020-08-15 11:01:54 +02:00
spaceface777 5f3ced7213
builder: only include `os` when building `.vsh` files (#6134) 2020-08-14 21:57:32 +02:00
Uwe Krüger 9602a25a0b
all: add builtin channel type `chan elem_type` (#6126) 2020-08-14 21:18:42 +02:00
Nick Treleaven 75212f9fab
cgen: error if ForInStmt is not handled (#6131) 2020-08-14 21:01:43 +02:00
Daniel Däschle b2fee21ef3
checker: check struct casting (#5864) 2020-08-14 14:57:08 +02:00
Nick Treleaven 6016f28171
cgen: fix assigning ArrayInit to fixed array: `a = [3]int` (#6115) 2020-08-14 13:57:00 +02:00
Nick Treleaven 078ab47a9a
cgen: support `==`, `!=` on FixedArray (#6119) 2020-08-14 02:03:38 +02:00
Delyan Angelov 2ad2b4c5ba vweb: add more tests. Fix missing Content-Length: header bug on 404. 2020-08-14 02:49:15 +03:00
Delyan Angelov 712f4bd7f8 vweb: add tests 2020-08-14 00:52:02 +03:00
Alexander Medvednikov fc1f41fc84 checker: fix a string error test 2020-08-13 23:33:18 +02:00
Alexander Medvednikov 88cde776e7 checker: more clear string error 2020-08-13 23:21:15 +02:00
Delyan Angelov 8580a0bcd7 cgen: run vfmt to silence `./v fmt -verify` 2020-08-13 21:22:52 +03:00
Delyan Angelov a62307f711 vweb: fix body appending (missing closing json bracket) 2020-08-13 21:07:31 +03:00
Daniel Däschle 64e8125807
cgen: fixe calling anon fn asynchronously (closes #6088) (#6121) 2020-08-13 20:06:56 +02:00
Daniel Däschle 34b28cb68a
fmt: fix anon fn call (#6120) 2020-08-13 20:05:59 +02:00
Delyan Angelov 1135dffe2d cgen: prevent generation of duplicate interface method wrappers 2020-08-13 20:56:58 +03:00
spaceface777 2353814821
vweb: fix body size calculation (#6122) 2020-08-13 20:55:33 +03:00
Delyan Angelov da7adb5b1b ci: fix failing tests for compiler_errors_test.v 2020-08-13 13:16:41 +03:00
Delyan Angelov fd5a76a8ad ci: fail compiler_errors_test.v, when at least one of all the parser/checker tests failed 2020-08-13 12:57:16 +03:00
Delyan Angelov 1a96bcf405 ci: fix `v vet` filtering 2020-08-12 20:34:13 +03:00
Alexander Medvednikov f8be2110ec sort: fix sorting by struct fields 2020-08-12 18:43:41 +02:00
Alexander Medvednikov e5e31f7210 sort: handle `.sort(a.field > b.field)` 2020-08-12 06:11:40 +02:00
Alexander Medvednikov 4bc0dde413 all: new `.sort(a < b)` syntax 2020-08-12 05:54:51 +02:00
Alexander Medvednikov 9800cf1e7b checker: improve array errors; gg: remove unused imports 2020-08-12 03:54:17 +02:00
Uwe Krüger bb93bf34ec
sync/semaphores: use dispatch semaphores on MacOS (#6110) 2020-08-12 03:45:09 +02:00
Delyan Angelov ca7a64a451 cgen: add support for -g again 2020-08-12 02:05:45 +03:00
Uwe Krüger 433610b5c0
sync/channels: provide `.cap` and `.len()` (#6104) 2020-08-11 17:52:13 +02:00
Swastik Baranwal 9fdb1701e0
checker: add a check for str[i] = `a` (#6107) 2020-08-11 17:41:54 +02:00
Alexander Medvednikov 99798b83b4 parser: fix match/else check 2020-08-11 17:30:37 +02:00
Alexander Medvednikov c5aa2bfa51 tests: fix a match test 2020-08-11 16:26:52 +02:00
Alexander Medvednikov 1a9dba0005 checker: make << shifts work with custom number types 2020-08-11 01:05:34 +02:00
Alexander Medvednikov 2dd82748e0 checker: simplify << error message 2020-08-11 01:01:33 +02:00
Alexander Medvednikov 6d72209363 checker: minor c2v fixes 2020-08-11 00:51:15 +02:00
Alexander Medvednikov 11113e43e7 checker: a minor perf fix 2020-08-10 23:59:42 +02:00
Nick Treleaven d8d82a0be4
checker: make `has_return` fn more efficient (#6103) 2020-08-10 23:59:08 +02:00
Alexander Medvednikov 88988817d0 parser: minor `match` simplification 2020-08-10 19:54:38 +02:00
Uwe Krüger c3cdfa1c96
sync/channels: provide `try_push(), try_pop() as public methods (#6101) 2020-08-10 18:06:42 +02:00
Delyan Angelov 36eae1c175
builtin: x.vstring() instead of string(x) (#6102) 2020-08-10 18:05:26 +02:00
Delyan Angelov eba413853f compiler_errors_test.v: use work.close() instead of sentinel tasks 2020-08-10 15:26:54 +03:00
Nick Treleaven 5e2824e2f2
vfmt: align field attributes (when no inline comment after type) (#6089) 2020-08-10 13:13:42 +03:00
Delyan Angelov bd32f0969f parser: enable CamelCase named method names for JS. objects 2020-08-10 10:39:14 +03:00
Uwe Krüger 20a65cf9c8
sync/channels: implement `close()` method (#6098) 2020-08-10 06:22:20 +02:00
Nick Treleaven fce106cf83
parser: use Attr.arg field for `[name: arg]` (#6084) 2020-08-10 02:00:14 +02:00
Sandro Martini c7fae4dd6f
vweb: add set_status() (#6087) 2020-08-09 18:05:06 +02:00
Nick Treleaven 2dd90de993
parser: error on `[unsafe_fn]` (#6090) 2020-08-09 12:22:11 +03:00
Alexander Medvednikov 200f8dacb7 []byte.str2() => bytestr() 2020-08-09 04:22:42 +02:00
Alexander Medvednikov 94f4dfe85b builtin: a temporary []byte.str2() (until runes are implemented) 2020-08-09 04:20:43 +02:00
João Victor Oliveira Couto f6a85d5305
net.html: create html parser module (#6076) 2020-08-09 04:13:34 +02:00
Louis Schmieder 97fec78b40
io: input/output streams (#6078) 2020-08-09 04:12:29 +02:00
Alexander Medvednikov 64f218e943 string: fix all cap .title() test 2020-08-09 04:09:48 +02:00
Alexander Medvednikov c65dbe51d6 parser: c2v fixes 2020-08-09 03:58:14 +02:00
Nick Treleaven 6cc8815931
parser: support [unsafe] instead of [unsafe_fn] (#6066) 2020-08-08 16:24:05 +02:00
Maciej Obarski 2a4ef2acbd
regex: new options returning interface to the regex module (#6062) 2020-08-08 09:04:12 +03:00
Delyan Angelov 55b8cc1bb2 tests: parallelize compiler_errors_test.v using channels & threads 2020-08-07 16:44:49 +03:00
Delyan Angelov 34d03801de tests: run ws_test.v only with -d network 2020-08-07 10:14:40 +03:00
Alexander Medvednikov ce4ee2b247 v0.1.29 2020-08-06 19:36:52 +02:00
Delyan Angelov 4568ce8f00 builtin: add sanity check on the number of returned frames by C.backtrace 2020-08-06 19:50:29 +03:00
Uwe Krüger d63daa0798
sync: use `mfence` on windows-tcc (#6079) 2020-08-06 17:31:05 +02:00
Alexander Medvednikov ea76a33b43 remove freetype references everywhere 2020-08-06 17:23:57 +02:00
Uwe Krüger 863cf8af60
sync: channel implementation (#6074) 2020-08-06 15:28:19 +02:00
Larpon 09f1362305
os: let temp_dir adhere to posix/fhs version 3.0 on linux and mac (#6069) 2020-08-05 19:02:57 +02:00
Delyan Angelov d1257f5590 tests/valgrind: add skipped fn_returning_string_param.vv (-autofree) 2020-08-05 19:35:18 +03:00
Delyan Angelov 6c27ce58ed v.util.vtest: extract the common code for VTEST_ONLY in a single place 2020-08-05 19:34:27 +03:00
Alexander Medvednikov ecaccafd31 gg: image cache 2020-08-05 16:00:24 +02:00
Alexander Medvednikov 67aafd03c6 gg: fix image rendering 2020-08-05 14:34:28 +02:00
spaceface777 bf20d6d3db
builder: don't panic if msvc rootdir isn't found (#6068) 2020-08-05 13:22:10 +03:00
Delyan Angelov f331f63f53 ci: fix windows build 2020-08-05 09:09:18 +03:00
Delyan Angelov 5874d7c5ab os: add os.getpid(), use it in os.is_writable_folder on windows 2020-08-05 09:04:40 +03:00
Delyan Angelov 7b1944c2da gg: simplify the image_cache 2020-08-05 08:46:20 +03:00
Delyan Angelov 221a777a80 gg: cache sokol C.sg_image handles 2020-08-05 08:09:25 +03:00
Delyan Angelov ab7936f514 os.exec: on unix return error, when the command was not found, instead of os.Result 2020-08-05 07:11:51 +03:00
Maciej Michalec 449c98e861
scanner: floats without fraction (fix #5262) (#6064) 2020-08-05 05:11:29 +02:00
Alexander Medvednikov f3ebd3a6e7 gg: fix image rendering 2020-08-05 03:15:40 +02:00
Enzo f238890fe9
compiler: move attributes to declarations (#6026) 2020-08-04 20:10:22 +02:00
Nick Treleaven 3ce6dd6cbc
hash: use match expression with ranges (#6046) 2020-08-04 20:09:58 +02:00
Delyan Angelov 3dfe242dbb vfmt: add a regression test for `type SocketMessageFn = fn (mut c Client, msg &Message) ? 2020-08-04 16:13:04 +03:00
Delyan Angelov cd9bb51af2 vfmt: fix 6040 (part 2) 2020-08-04 16:08:47 +03:00
Delyan Angelov f9d241ae27 gg,stbi: implement gg.create_image_from_memory/2 2020-08-04 13:18:08 +03:00
Delyan Angelov 216b6bf285 gg: remove tracing println in draw_image 2020-08-04 12:57:54 +03:00
Delyan Angelov 9ce75e10d5 gg: free gg.create_image from having to be called by sokols init_fn callback 2020-08-04 12:37:28 +03:00
Swastik Baranwal f3817c47f9
token: remove switch keyword (#6056) 2020-08-04 11:04:07 +02:00
Delyan Angelov f7a0d0a02f ci: fix -autofree compilation of vlib/v/tests/valgrind/strings_and_arrays.vv 2020-08-04 11:30:02 +03:00
Alexander Medvednikov 60c642f42d gg: clean up draw_image() 2020-08-04 01:26:56 +02:00
Alexander Medvednikov 7a7572e478 autofree: free temp string exprs 2020-08-04 01:26:34 +02:00
Nick Treleaven c33dbbc216
fmt: don't add newlines for UnsafeExpr (#6048) 2020-08-04 00:29:10 +02:00
Delyan Angelov e291c38119 ast: add use case comment for MatchExpr.var_name 2020-08-03 22:10:59 +03:00
Swastik Baranwal c547e8b191
v/fmt: fix formatting of `type Foo = fn (a int)?` (#6047) 2020-08-03 19:28:48 +03:00
dils2k 8dede3b535
builder: add a verror, when the output folder is not existing and writable (#5966) 2020-08-03 18:19:36 +03:00
Nick Treleaven 3e4df7f140
v/fmt: fix dropping `as ident` from `if sum is T` statement (#6049) 2020-08-03 18:16:06 +03:00
Carlos Esquerdo Bernat 66b3fabeef
log: avoid the deprecated .is_opened() method (#6039) 2020-08-03 02:35:08 +03:00
Delyan Angelov 0ac30a8d9c gg: enable image transparency in gg.draw_image2 too 2020-08-03 00:30:08 +03:00
Delyan Angelov a7ca1682c4 gg: fix gg.draw_image2 (image drawn, but without transparency for now) 2020-08-02 23:47:37 +03:00
Delyan Angelov 0b6b0aca09 parser: fix infinite loop on unexpected $ between statements 2020-08-02 18:17:38 +03:00
Alexander Medvednikov 79b70006e6 examples: simplify gg/rectangles.v 2020-08-02 17:01:10 +02:00
Delyan Angelov c6ae322f85 parser: add hard limit to the number of statements in a fn 2020-08-02 17:58:05 +03:00
Nick Treleaven 8dcc3cda97
os.cp: fix returning false error on Windows (#6037) 2020-08-02 14:08:45 +03:00
Nick Treleaven 7f447bb82f
ast: use Block instead of UnsafeStmt (#5981) 2020-08-02 14:06:44 +03:00
Alexander Medvednikov cc57b52773 gg: fix typo 2020-08-01 23:52:15 +02:00
Alexander Medvednikov 149de958f3 gg: fix compilation 2020-08-01 23:45:36 +02:00
Alexander Medvednikov a1593e7db8 checker: 1 line v fmt fix 2020-08-01 23:41:32 +02:00
Alexander Medvednikov fb4550e582 gg: new create_image() (part 1) 2020-08-01 23:40:28 +02:00
Swastik Baranwal d56d622a43
checker: add checks for byte casting (#5917) 2020-08-01 23:17:00 +02:00
Carlos Esquerdo Bernat d71c11577a
os: move file logic to file.v (#6013) 2020-08-01 23:07:37 +02:00
Duarte Roso 055117dc5f
builtin: make byte.hex() two digits format (#5886) 2020-08-01 23:06:08 +02:00
spaceface777 4f37202b72
checker: allow struct fields starting with capitals in builtin (#5998) 2020-08-01 23:01:40 +02:00
spaceface777 1feca22e28
jsgen: don't generate `JS.` struct decls (#6035) 2020-08-01 22:27:25 +02:00
Alexander Medvednikov adafd24819 gen: auto_str_methods.v 2020-08-01 16:36:12 +02:00
Delyan Angelov 0fb8074353 cgen: add support for `$if gcc {}` too 2020-07-31 21:25:37 +03:00
joe-conigliaro 1ea511b530
builder/cgen: get -usecache working for self cimpilation 2020-07-31 20:10:19 +10:00
Nick Treleaven eb47ce1e83
ast: fix ParExpr.str(), RangeExpr.str(), SizeOf.str() (#6023) 2020-07-31 02:31:01 +02:00
Louis Schmieder 1fd499ed4a
vweb: fix request checking (#6027) 2020-07-31 01:26:56 +02:00
Delyan Angelov 91c9c0c917 checker: fix unknown_method_suggest_name.out test result too 2020-07-30 19:37:36 +03:00
Delyan Angelov 65891f54ed v.util.suggestions: fix hash.crc32.Crc32 case 2020-07-30 19:35:16 +03:00
Delyan Angelov f300f787f3 checker: add suggestions for method mispellings and unknown types 2020-07-30 18:48:16 +03:00
Delyan Angelov 2c45e601ef builder: increase backtrace size with tcc to 25 frames 2020-07-30 16:56:58 +03:00
Delyan Angelov 3883c34b8c vfmt: fix eating of `n` in `string(x,n)` 2020-07-30 12:15:04 +03:00
Lukas Neubert f2c639c869
builtin: add string.contains_any() (#5963) 2020-07-29 21:48:50 +02:00
Alexander Medvednikov f269cbdc94 Revert "parser: Support `unsafe(expr)` (#5973)"
This reverts commit 19c226fcf8.
2020-07-29 21:41:47 +02:00
Delyan Angelov 9c9533dad9
checker: add error for `fn f() Struct { return &Struct{} }` (#6019) 2020-07-29 21:40:43 +02:00
Delyan Angelov 81f8e910e6 compiler: remove space at the end of warn/error messages to minimize diff churn 2020-07-29 20:37:55 +03:00
Swastik Baranwal 4500e7131e
checker: add a checker error for fn calls on left side of an assignment (#5993) 2020-07-29 18:33:00 +03:00
Carlos Esquerdo Bernat 7b630f0350
ws: send unsolicited pong control frame on connect in ws_test.v (#6010) 2020-07-29 18:11:24 +03:00
Carlos Esquerdo Bernat 2f2463a04c
ws: make Client.state `pub mut` (#6009) 2020-07-29 17:52:33 +03:00
Alexander Medvednikov 280afb2282 builder: rename `a` to `args` 2020-07-28 22:33:33 +02:00
Leah Lundqvist 51c9b49d3f
iOS: basic building and running (#5999) 2020-07-28 22:27:38 +02:00
Ruofan XU 1d59d35129
cgen: fix sum type match (#5978) 2020-07-28 22:17:25 +02:00
Delyan Angelov e06448b616 eventbus: update test and docs too 2020-07-28 19:08:16 +03:00
Carlos Esquerdo Bernat 0539b2a7ea
eventbus: removed check on publish, always use receiver, args, sender order for callbacks (#5940) 2020-07-28 18:48:25 +03:00
Delyan Angelov 9c028bb299 checker: fix passing enum to a method expecting string 2020-07-28 13:50:40 +03:00
Delyan Angelov 228486555c http: add pub to Method.str() 2020-07-28 12:34:29 +03:00
Delyan Angelov 5bf3b6eda3 gg: fix running tetris and ui examples on linux 2020-07-28 12:12:44 +03:00
Carlos Esquerdo Bernat 49a7a835c7
ws: update README.md (#5983) 2020-07-28 11:22:03 +03:00
Nick Treleaven 19c226fcf8
parser: Support `unsafe(expr)` (#5973) 2020-07-28 11:20:52 +03:00
Enzo d7ed3cd8b7
fmt: fix SQL formatting in ORM expressions - remove trailing spaces (#5996) 2020-07-28 11:09:42 +03:00
Carlos Esquerdo Bernat 28657fe7cb
http: handle all of the http.Method values in .str() (#6002) 2020-07-28 10:39:10 +03:00
Swastik Baranwal 8b66816bdc
scanner: more checks for `_` as num_sep (#5992) 2020-07-28 16:09:19 +10:00
joe-conigliaro 5d49034c31
http: backend_windows - use Method enum in ssl_do() 2020-07-28 14:35:21 +10:00
joe-conigliaro 395e886b2e
http/vweb: use Method enum & add helpers 2020-07-28 14:13:19 +10:00
Alexander Medvednikov fec9920b1a http: replace method string with an enum 2020-07-27 21:20:23 +02:00
Alexander Medvednikov 65159b8070 gg: bold/mono/italic fonts 2020-07-27 21:20:23 +02:00
joe-conigliaro 61c1c4a690
checker: add error for invalid sum type cast `MySt{1}` 2020-07-28 01:04:04 +10:00
Enzo 2de1437a1e
ci: vet all files from the compiler (#5994) 2020-07-27 12:15:29 +02:00
joe-conigliaro 1086150ab9
builder: add comment to parse_imports `re: dup file parsing` 2020-07-27 12:06:48 +10:00
Alexander Medvednikov 3d19167628 http: fix cookies (part 2) 2020-07-26 22:01:25 +02:00
Alexander Medvednikov cf4235ab65 http: fix cookies 2020-07-26 15:54:21 +02:00
Delyan Angelov 88345d759a tests: add support for skipping to valgrind_test.v 2020-07-26 16:09:58 +03:00
Ruofan XU 7027b2354b
cgen: fix array and map with fns (#5938) 2020-07-26 14:22:02 +02:00
Delyan Angelov dfa01d8877 rand: add rand.ulid_at_millisecond/1, use it in rand.ulid/0 2020-07-26 14:17:29 +03:00
penguindark 7d52d612ce
rand: add rand.ulid() (#5979)
* removed debug println

* added newline to the end of the file

* time: add .unix_time_milli() method; rand,time: add tests

* rand: add more ulid tests; move tests to a separate file random_identifiers_test.v

* run vfmt over vlib/rand/random_identifiers_test.v

* speed up time.unix_time_milli

* simplify and speedup time.unix_time/0 and time.new_time/1

* update comment about rand.ulid()

* fix terminating 0 off by 1 issue in rand.ulid()

* optimize time.new_time()

* restore the master version of vlib/time/parse.v

* make test_unix_time more robust

Co-authored-by: Delyan Angelov <delian66@gmail.com>
2020-07-26 13:10:56 +03:00
Delyan Angelov 9e652c4f40 ci: fix remaining failing tests. Do mut ptr check only outside unsafe{} blocks. 2020-07-26 10:59:07 +03:00
Delyan Angelov 9d056168ae ci: fix failing tests 2020-07-26 10:48:24 +03:00
Delyan Angelov a7f484d9a7 tests: make output of vlib/v/compiler_errors_test.v more readable 2020-07-26 10:47:55 +03:00
Carlos Esquerdo Bernat 1f8ae5d12c
websocket: add tests (#5967) 2020-07-25 22:25:31 +02:00
Alexander Medvednikov 6796b93abd tests: fix compiler_errors_test.v 2020-07-25 22:20:10 +02:00
Delyan Angelov 6fcc6cdc75 rand: add comments for rand.uuid_v4, apply some more perf tweaks 2020-07-25 21:39:54 +03:00
Delyan Angelov ee3ebed23c rand: further speed up of rand.uuid_v4 2020-07-25 20:21:44 +03:00
Delyan Angelov 3d2fd471b6 ci: prepare for enabling compilation with g++ again 2020-07-25 20:20:49 +03:00
Alexander Medvednikov 7c86156be5 checker: fix unsafe tests 2020-07-25 18:58:23 +02:00
Alexander Medvednikov 34907f7605 checker: do not allow assigning immutable refs to mutable vars 2020-07-25 18:32:36 +02:00
Delyan Angelov a552674254 vvet: fix segfault on `v vet .` 2020-07-25 15:57:57 +03:00
Delyan Angelov d5b837e808 rand: speed up rand.uuid_v4() ~7x, with -prod 2020-07-25 13:09:05 +03:00
Delyan Angelov c1e14b451e builder: show timing info in bold; also add a `checker summary:` line with -stats 2020-07-25 10:32:29 +03:00
Alexander Medvednikov 3c1427a4e8 all: fix current module in build-module mode 2020-07-25 01:37:54 +02:00
Louis Schmieder b58b15993c
gen: compile time for (methods and fields) (#5957) 2020-07-25 00:02:44 +02:00
Lukas Neubert 2ccb28a93e
checker: run vfmt over checker.v (#5965) 2020-07-24 20:12:01 +03:00
Delyan Angelov 289974dd15 rand: use time microseconds too in default rand initialization; generate proper uuid_v4 2020-07-24 14:33:58 +03:00
Delyan Angelov c429fa7e27 rand: add test for rand.uuid_v4() 2020-07-24 14:01:48 +03:00
Delyan Angelov bba0edf9a3 rand: add rand.uuid_v4() 2020-07-24 13:59:24 +03:00
Delyan Angelov bfca55b87a examples: fix `v build-examples` 2020-07-24 13:29:47 +03:00
Delyan Angelov 8c4429c875 parser: fix passing the is_mut flag of anon fn arguments 2020-07-24 11:27:56 +03:00
Delyan Angelov d204c926a8 tests: fix compilation of if_smartcast_test.v 2020-07-24 10:30:22 +03:00
pancake 04ef2a2671
os: implement os.system for iOS and uncomment the `$if ios` blocks (#5947) 2020-07-24 10:17:32 +03:00
Delyan Angelov 921b5cddd0 live: fix compilation 2020-07-24 08:45:28 +03:00
Delyan Angelov d31142ac3e vfmt: fix compilation after the more strict mutability check 2020-07-24 08:43:18 +03:00
Delyan Angelov d83e2ee330 websocket: fix compilation after the more strict mutability check 2020-07-24 08:41:14 +03:00
Delyan Angelov 346cc5ca2c term: fix panic in term.header, when cols,rows from get_terminal_size are < 2 2020-07-24 08:34:39 +03:00
Delyan Angelov c2083203b3 v.util: fix util.emanager.set_support_color 2020-07-24 08:31:05 +03:00
Alexander Medvednikov ec443c65a8 tests: fix some tests 2020-07-24 01:55:55 +02:00
Alexander Medvednikov d2675b89c0 builtin: fix a mutable var on windows 2020-07-23 23:18:45 +02:00
Alexander Medvednikov 632e27a4a9 all: fix a big mutability bug and update all mutable vars 2020-07-23 23:16:36 +02:00
Alexander Medvednikov 32c1042ac6 parser: disable the duplicate import check for now 2020-07-23 22:20:00 +02:00
Alexander Medvednikov 653d40bfe8 parser: do not duplicate table imports 2020-07-23 21:59:48 +02:00
pancake b7bdb97f7d
term: fix crash in `header` when divider.len < 2 (#5956) 2020-07-23 18:54:29 +02:00
Louis Schmieder b537d8e23e
parser: comp `for` attrs array (#5903) 2020-07-23 17:19:37 +02:00
Carlos Esquerdo Bernat 7a4c27bd08
log: add flush to log file (#5942) 2020-07-23 08:02:53 +03:00
pancake 36352085ae
v: add support for iOS crosscompilation (#5943) 2020-07-23 07:58:44 +03:00
Emily Hudson 0f98445f7f
cgen: properly handle more multi-return edge cases (#5933) 2020-07-23 00:39:19 +02:00
Uwe Krüger 6586a9a657
fmt: give braced sub expressions a higher priority (#5941) 2020-07-23 00:32:34 +02:00
Delyan Angelov 37c6f6ab1b vfmt: fix compilation with -prod 2020-07-22 21:43:20 +03:00
Delyan Angelov 276c1de190 unsafe: tag with unsafe{} some more pointer manipulations 2020-07-22 21:42:51 +03:00
Delyan Angelov 949ed90b51 utf8: fix a panic in utf8.len("pippo"), mark with `unsafe{}` direct pointer manipulations 2020-07-22 21:15:27 +03:00
Lukas Neubert 4096432a1d
cli: prevent need for unsafe block (#5937) 2020-07-22 20:53:49 +03:00
Ryan Willis 938e71b468
v: fix for `import cli { Command }` 2020-07-22 20:33:43 +03:00
Nick Treleaven ee349691f9
v/checker: Warn about pointer indexing outside unsafe {} (#5918) 2020-07-22 20:28:53 +03:00
joe-conigliaro d46a89b90d
parser/checker/fmt: optimize scope lookups by storing object with ident & add if expr smartcast support to vfmt (#5935) 2020-07-23 02:10:31 +10:00
Delyan Angelov ebbc7bd471 examples: fix crash when running examples/ws/client.v outside of valgrind 2020-07-22 18:42:57 +03:00
Carlos Esquerdo Bernat b0d76c59f7
websocket utf8: move utf8 functions from websocket to encoding.utf8, add utf8_test.v (4/4) (#5924) 2020-07-22 18:36:24 +03:00
Carlos Esquerdo Bernat 635c99e2ed
ws: obtain port when not specified (#5922) 2020-07-22 17:35:30 +03:00
Carlos Esquerdo Bernat 0d8ebf5845
websocket: use log instead submodule logger (1/4) (#5921) 2020-07-22 17:31:22 +03:00
Ruofan XU 0f72328d1f
cgen: minor generated C source format fix 2020-07-22 17:27:37 +03:00
Carlos Esquerdo Bernat f09e14a2b9
csv: cleanup reader_test.v 2020-07-22 17:26:26 +03:00
Emily Hudson 1476602f99
builder: pass define flags to msvc (#5931) 2020-07-22 17:24:12 +03:00