joe-conigliaro
a214778b74
fix bug with sum type
2019-12-28 08:48:55 +01:00
vitalyster
2f23ee4818
windows: cleanup after bootstrapping with unicode entrypoint
2019-12-27 19:07:31 +01:00
Alexander Medvednikov
66a07d7fe0
FnDecl, Return, statement block
2019-12-27 18:39:19 +01:00
Delyan Angelov
6c16bac908
vfmt: it can now be used for _platform.v files too, no matter the host os
2019-12-27 17:59:04 +01:00
Alexander Medvednikov
4da21d80e3
fix () warning
2019-12-27 10:16:00 +01:00
Alexander Medvednikov
fc5f4ff326
make types.check public
2019-12-27 10:12:40 +01:00
vitalyster
3f0f8bac49
windows: do not link gdi32/shell32 to console applications
...
* read os.args from argv when we have console
* dynamically load CommandLineToArgvW when we are GUI app
* link gdi32/shell32 in glfw module
2019-12-27 11:27:19 +03:00
Alexander Medvednikov
e20ca28d5c
fix v prod build
2019-12-27 07:04:41 +03:00
Alexander Medvednikov
0a3adb5de8
ast: return types, variable declaration
2019-12-27 07:01:22 +03:00
BigBlack
320174bd5b
fix #3202
2019-12-27 06:09:09 +03:00
Alexander Medvednikov
9b37fc7310
clean up parser_test.v
2019-12-26 13:05:06 +03:00
Alexander Medvednikov
8d9f89e728
compiler2: proof of concept cgen
2019-12-26 07:47:33 +03:00
Delyan Angelov
ae4c8af674
fmt: fixes for option syntax formatting
2019-12-25 16:08:52 +03:00
Alexander Medvednikov
ca284482cb
new AST built with sum types
2019-12-24 16:04:49 +03:00
Alexander Medvednikov
803ded3dec
sum type `type Foo = Bar | Baz`
2019-12-24 16:04:49 +03:00
Delyan Angelov
96fa15c125
v fmt: process .v files from a module too
2019-12-24 05:43:31 +03:00
Alexey
dced76d1a4
os, filepath: reorganize functions
2019-12-23 13:09:22 +03:00
Delyan Angelov
6e130cd446
compiler: support for custom flags
...
[if custom]fn..{} , #flag custom, $if custom {}
2019-12-23 13:09:00 +03:00
Delyan Angelov
42b1660c7e
move vfmt frontend program to tools/vfmt.v
2019-12-23 13:02:50 +03:00
Alexander Medvednikov
28594a65a8
fix enum bitfield
2019-12-23 07:05:52 +03:00
Alexander Medvednikov
7ab993c218
sum types
2019-12-23 06:14:31 +03:00
Alexander Medvednikov
a251db068f
run vfmt on math and sha; add vfmt check to test-compiler
2019-12-22 02:50:20 +03:00
Alexander Medvednikov
848cd3cb3e
run vfmt on http, net, sync, strconv
2019-12-22 01:57:50 +03:00
れもん
28ecfb231d
compiler: map[string]pointer, ?pointer, fix []pointer
2019-12-22 01:44:16 +03:00
Alexander Medvednikov
b76227b781
small vfmt fixes
2019-12-22 01:39:04 +03:00
Alexander Medvednikov
749d3ec14d
do not define __offsetof twice
2019-12-22 01:39:04 +03:00
Alexander Medvednikov
ef28a6b872
final vfmt run before CI check
2019-12-22 00:58:57 +03:00
Alexander Medvednikov
2b9392c46c
move hashmap to its own module for now
2019-12-22 00:54:25 +03:00
Emily Hudson
8512c9fc9d
compiler: __offsetof keyword for C offsetof() macro
2019-12-22 00:46:09 +03:00
Alexander Medvednikov
31b7991a93
negative enum vals + `[10]C.Foo` fix
2019-12-22 00:17:13 +03:00
joe-conigliaro
6763a92834
fix multiple type parameters
2019-12-21 09:54:43 +03:00
joe-conigliaro
f7c1b78ec2
clean up generic structs
2019-12-21 05:33:59 +03:00
Alexander Medvednikov
61bfecfa09
vweb: minor fixes
2019-12-21 05:19:26 +03:00
joe-conigliaro
fbd9fedbfb
implement generic structs
2019-12-21 03:53:57 +03:00
Don Alfons Nisnoni
090f444d8f
scanner: small DRY
2019-12-20 23:15:16 +03:00
Delyan Angelov
b62e28dba5
compiler: fix interface generation for unused interfaces
2019-12-20 23:06:11 +03:00
Alexander Medvednikov
00b8a5d3e4
vfmt: enum fix
2019-12-20 02:38:11 +03:00
Alexander Medvednikov
6af54d0207
fix windows build
2019-12-20 02:20:03 +03:00
Alexander Medvednikov
6210984c97
run vfmt
2019-12-20 02:09:56 +03:00
Alexander Medvednikov
b6fe2ebc0b
fix tools test
2019-12-20 00:20:22 +03:00
Alexander Medvednikov
d082b3f4b9
run vfmt on vlib/builtin
2019-12-20 00:12:29 +03:00
Alexander Medvednikov
d38687f893
run vfmt on cc, cgen, comptime, if_match
2019-12-19 23:43:23 +03:00
Alexander Medvednikov
ce86626ec2
run vfmt on table.v
2019-12-19 23:26:23 +03:00
BigBlack
a38a0f4fb7
parser: fix x.function_pointer()
2019-12-19 21:23:29 +03:00
Alexander Medvednikov
519f2990f2
vfmt: minor fixes
2019-12-19 10:02:47 +03:00
Alexander Medvednikov
df2f98e276
run vfmt on more files
2019-12-19 02:38:54 +03:00
Alexander Medvednikov
1cef83aea4
run vfmt on array.v
2019-12-18 21:20:41 +03:00
BigBlack
2f218b878b
fix fn type call
2019-12-18 13:21:49 +03:00
Delyan Angelov
4b7aa4ec09
freebsd: fix compilation
2019-12-18 13:21:20 +03:00
Alexander Medvednikov
67bdc2c7a9
vfmt: fn args fixes
2019-12-18 11:11:47 +03:00
Alexander Medvednikov
569b32bd1e
run vfmt on fn.v
2019-12-18 10:07:30 +03:00
Alexander Medvednikov
81045023c4
run vfmt on scanner.v
2019-12-18 08:26:51 +03:00
Alexander Medvednikov
02939d776b
vfmt: fix in, |, or {}
2019-12-18 08:01:29 +03:00
Alexander Medvednikov
3d1db3519d
test enum printing
2019-12-18 05:45:48 +03:00
Alexander Medvednikov
7456d556e1
fix 2 repl tests
2019-12-18 05:02:23 +03:00
Alexander Medvednikov
a46a2e4715
run vfmt on parser.v
2019-12-18 04:43:41 +03:00
Alexander Medvednikov
ad211a86a6
vfmt: re-write V files + fix {}
2019-12-18 04:33:02 +03:00
Alexander Medvednikov
53b334145b
lots of vfmt fixes
2019-12-18 04:15:41 +03:00
BigBlack
67cf7f18e6
array of pointers support
2019-12-18 03:26:04 +03:00
BigBlack
e68200538a
parser: call struct field fns
2019-12-17 22:00:08 +03:00
Delyan Angelov
ba519f105a
compiler: option/command parsing bugfix
2019-12-17 16:00:10 +03:00
Alexander Medvednikov
37add98043
fix programs without fn main
2019-12-17 05:05:10 +03:00
Johan Hillerström
6008fa44c6
parser: fix generic function call in `for in` expression
2019-12-17 01:08:30 +03:00
Alexander Medvednikov
5a56ca0892
parser: handle operator overloading type errors
2019-12-17 00:50:41 +03:00
Alexander Medvednikov
560d1383d1
fix optional struct field assignment
2019-12-17 00:36:28 +03:00
Alexander Medvednikov
54707ff81d
do not allow calloc(0)
2019-12-16 22:48:55 +03:00
Alexander Medvednikov
10718557a2
increase the name limit to 15
2019-12-16 19:36:29 +03:00
Alexander Medvednikov
bcde155da7
test the recent type alias string; print vweb templates in verbose mode
2019-12-16 19:34:04 +03:00
BigBlack
8c0e0f8ab7
parser: fix type alias type check
2019-12-16 19:06:40 +03:00
Delyan Angelov
b7c477cc18
freestanding: ptr_str, string concat, struct declaration
...
* compiler: extract c_common_macros from c_headers, and use it in bare_c_headers too. Support for ptr_str and string concatenation in -freestanding mode.
* Add tests for structs and string concatenation in -freestanding mode .
* Move check_string_add_works to string/string.v .
2019-12-16 19:05:33 +03:00
vitalyster
d1714c4a2a
cc.v: build thirdparty objfiles with msvc when no cc installed
2019-12-16 18:56:37 +03:00
Delyan Angelov
7e0a9fb83a
compiler: fix regression for -d option flag
2019-12-16 18:55:10 +03:00
Delyan Angelov
faa04c586f
compiler: restore ability to pass -prod option to run and runrepl. ( #3095 )
2019-12-15 21:21:37 +11:00
joe-conigliaro
f2c40bf49d
compiler: fix for -Wl -Wa -Wp dont like spaces ( #3091 )
2019-12-15 16:24:12 +11:00
joe-conigliaro
717740cfcf
simplify cflag parsing
2019-12-15 06:18:14 +03:00
joe-conigliaro
be60193588
workaround for -g with default optional value
2019-12-15 06:11:02 +03:00
Alexander Medvednikov
54b0097cee
fix repl_test.v
2019-12-15 05:51:00 +03:00
Alexander Medvednikov
68357876ca
fix v_command()
2019-12-15 05:44:34 +03:00
Alexander Medvednikov
12ebed0589
error on an incorrect V command
2019-12-15 05:35:17 +03:00
Alexander Medvednikov
48ea136a9a
tutorials: vweb: add an article
2019-12-15 00:56:08 +03:00
BigBlack
fc33f9d49c
type alias check
2019-12-14 22:01:20 +03:00
Alexander Medvednikov
2e23592264
for: check for redefinitions
2019-12-14 20:00:03 +03:00
Delyan Angelov
1cd5fab21d
testing: support for internal module testing
2019-12-14 15:57:28 +03:00
joe-conigliaro
cb9e9286ef
compiler: fixes issue #3074 - can't call a generic function twice with the same data type
2019-12-14 17:54:34 +11:00
Alexander Medvednikov
8581c11900
update malloc
2019-12-14 02:46:55 +03:00
Alexander Medvednikov
962109e855
parser: verify async functions
2019-12-14 02:33:19 +03:00
Alexander Medvednikov
ef562413cd
-prealloc
2019-12-14 02:28:15 +03:00
Alexander Medvednikov
88cde6e4e6
orm: skip fields
2019-12-14 02:07:06 +03:00
Alexander Medvednikov
c72bf0e1b1
global access modifier
2019-12-13 20:28:28 +03:00
Alexander Medvednikov
dc83e30a44
access modifiers: update tests/examples
2019-12-13 20:09:11 +03:00
Alexander Medvednikov
78131e78bc
fix sruct access modifiers (pub, pub mut, mut)
2019-12-13 20:00:38 +03:00
Delyan Angelov
fc64238a39
testing: allow tests to import the same module with no custom options
2019-12-13 19:28:39 +03:00
Alexander Medvednikov
569a64068a
ui/examples: users: fix button click
2019-12-12 23:42:51 +03:00
Alexander Medvednikov
cddfbf7395
parser: allow public types `pub type Foo Bar`
2019-12-12 22:57:47 +03:00
Alexander Medvednikov
b8f728590b
string: last_index ?int
2019-12-12 21:54:48 +03:00
Alexander Medvednikov
bd833deef3
assoc: verify the field exists and verify the type
2019-12-12 20:38:49 +03:00
Alexander Medvednikov
6982f4a5a2
parser: force {} blocks on new lines
2019-12-12 20:27:05 +03:00
Alexander Medvednikov
8ba29f968a
cc.v: hide "mingw" not found message
2019-12-12 14:27:47 +03:00
Alexander Medvednikov
88ec9c235d
sort structs: handle fixed size arrays
2019-12-12 14:21:22 +03:00
Alexander Medvednikov
576618d8cc
string cloning; fix `foo.str += 's'`
2019-12-12 05:20:52 +03:00
Alexander Medvednikov
e182274fe7
free memory block
2019-12-11 23:58:51 +03:00
Alexander Medvednikov
ad250523cd
fix parser.fileis()
2019-12-11 21:42:22 +03:00
Alexander Medvednikov
6ffed854cc
cgen.prepend_to_statement()
2019-12-11 20:51:58 +03:00
Alexander Medvednikov
47f9c02331
Revert "cgen.prepend_to_statement()"
...
This reverts commit 507c71ad80
.
2019-12-11 20:37:39 +03:00
Alexander Medvednikov
507c71ad80
cgen.prepend_to_statement()
2019-12-11 19:33:54 +03:00
Alexander Medvednikov
7dcd47369b
option to pre-allocate a memory block
2019-12-11 18:41:25 +03:00
Delyan Angelov
13769f440f
vweb: continue after bad http client connection; performance fixes
...
* Enable compiling vweb with -prod (by supressing 'declared and not used' warning about 'reset') .
* Fix http responses (now wrk is happy and shows no errors) by adding a Content-Length header.
* Fix -g compilation for urllib.v .
* vweb: println action= only in debug mode.
* vweb: max request headers counting fix.
* Make vweb.html get a 'ctx mut Context' param, just like the other methods.
* vweb: simplify add_header.
* Use a string builder for the most common html case so that the response http text can be send in one go.
* vweb: reduce _STR/string interpolation usage in the most common html response case.
* vweb: refactor common http response formatting into Context.send_response_to_client/2 method.
2019-12-11 17:32:54 +03:00
Alexander Medvednikov
cfeec92826
use -Wunused-function for now
2019-12-11 15:51:12 +03:00
joe-conigliaro
3486118ab7
compiler: force custom struct .str() methods to be defined public
2019-12-11 03:24:26 +03:00
Alexander Medvednikov
cdfbb2978d
strings: replace_each([]); orm: update
2019-12-10 23:57:49 +03:00
joe-conigliaro
4e69c40e12
parser: fix use blank ident as value
2019-12-10 21:35:59 +03:00
joe-conigliaro
6d5e9f88f8
parser: allow enums to be used as bitfield flags
2019-12-10 06:16:47 +03:00
Alexander Medvednikov
6f49d4c1d2
orm: bool support; vweb fixes
2019-12-09 23:20:29 +03:00
Alexander Medvednikov
8082a5e7f4
fix benchmarking stats
2019-12-09 17:25:56 +03:00
Delyan Angelov
f68d9d1a16
live: always add os and time when compiling -live programs
...
Fixes fail when -live user programs do not use os and time.
2019-12-09 13:48:41 +03:00
Alexander Medvednikov
b2207c3d28
do not prepend module to external fn name
2019-12-09 00:24:50 +03:00
Alexander Medvednikov
4ebf53c6e9
allow non snake_case fn names in imported fns
2019-12-08 23:56:31 +03:00
Alexander Medvednikov
8f9b6ac248
'$foo()' string interpolation
2019-12-08 23:18:11 +03:00
Alexander Medvednikov
874ff42687
temporary fix of "v -g v.v"
2019-12-08 20:58:16 +03:00
Alexander Medvednikov
4d1f721558
fix "" string interpolation bug
2019-12-08 20:06:00 +03:00
Alexander Medvednikov
02eee49d25
fix defer_test
2019-12-08 15:30:14 +03:00
Alexander Medvednikov
c9886e6f42
use ++ everywhere
2019-12-08 14:34:51 +03:00
Alexander Medvednikov
cc682eafe1
require ++ instead of += 1
2019-12-08 14:11:25 +03:00
bogen85
8178e1f7da
freestanding: malloc/free with mm_alloc an mm_free
...
Added more array support that depends on malloc. Added string clone (that uses malloc). Added test for it. Eliminated stack allocated buffers from most of the unit checks.
2019-12-08 13:44:52 +03:00
Alexander Medvednikov
6ec626c5e9
improve invalid character errorrs
2019-12-08 12:57:40 +03:00
Alexander Medvednikov
8b0de95c0a
improve the C struct check
2019-12-08 04:23:22 +03:00
Alexander Medvednikov
6ae51b2cbf
handle unknown C types
2019-12-08 04:10:56 +03:00
Alexander Medvednikov
7069cd6ab5
a separate scope for x := opt, part 2
2019-12-08 00:45:42 +03:00
Alexander Medvednikov
b26a0bde38
a separate scope for x := opt, part 1
2019-12-08 00:34:04 +03:00
Alexander Medvednikov
06a0f39f7b
a separate scope for
2019-12-08 00:30:06 +03:00
Alexander Medvednikov
dc2da1de98
fix V build
2019-12-08 00:27:24 +03:00
Alexander Medvednikov
8ebc2fe601
do not allow redefinition in `x := opt() {`
2019-12-07 23:09:48 +03:00
Alexander Medvednikov
b79588dc69
handle bad value in `if x := opt() {`
2019-12-07 23:05:54 +03:00
Alexander Medvednikov
c019dd6f98
test assert in functions that return values
2019-12-07 22:42:20 +03:00
bogen85
751ba48bf5
freestanding improvements (exit, function checks)
...
Fixed exit for freestanding (as assert now uses it).
Running each function check now in a forked process so they can be killed or return other exit codes (and so each function runs, even if others crash)
2019-12-07 22:25:19 +03:00
Alexander Medvednikov
d73586743b
fix assert in functions that return values
2019-12-07 19:33:59 +03:00
Alexander Medvednikov
b9a24e3b51
Revert "use stdint.h with msvc"
...
This reverts commit 93529031de
.
2019-12-07 19:25:17 +03:00
Alexander Medvednikov
93529031de
use stdint.h with msvc
2019-12-07 19:20:53 +03:00
Alexander Medvednikov
63ec3c0486
fix a wrong "0 character in a string literal" error
2019-12-07 18:19:48 +03:00
Alexander Medvednikov
9cba3bdf78
windows: WideCharToMultiByte() returns an int
2019-12-07 17:31:07 +03:00
Alexander Medvednikov
ad6adf327e
vlib: fix missing `else{}` in match statements
2019-12-07 17:23:37 +03:00
Alexander Medvednikov
2fb7fba856
require `else` in `match` statements
2019-12-07 17:01:44 +03:00
Alexander Medvednikov
a594e009f2
test high order function
2019-12-07 16:13:25 +03:00
Alexander Medvednikov
f51784ee01
remove unnecessary casts everywhere
2019-12-07 15:51:00 +03:00
Alexander Medvednikov
d7ccbba2c9
do not allow casting a type to itself
2019-12-07 15:31:56 +03:00
Alexander Medvednikov
cc834dd7a7
parser: `x in []` is always false
2019-12-07 03:05:19 +03:00
Alexander Medvednikov
55f32fc413
more mutability fixes
2019-12-06 19:23:24 +03:00
Alexander Medvednikov
e3b5d7fd7c
rename if_st to if_statement
2019-12-06 19:21:26 +03:00
Alexander Medvednikov
c8d111924d
check unused and unmodified vars in all modules, not just main
2019-12-06 18:43:56 +03:00
Alexander Medvednikov
aed22a57e3
fixed size array with const length (`[N]int`)
2019-12-06 02:41:03 +03:00