1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
Commit Graph

14499 Commits

Author SHA1 Message Date
yuyi
1d04b71c91
cgen: fix generic sumtype auto str (#16355) 2022-11-08 10:49:09 +02:00
Taegon Kim
dc9997f58c
fmt: fix - v fmt transforms compile time options in some cases (#16351) 2022-11-08 08:05:48 +02:00
Delyan Angelov
5f33585edf
tools: add support for VSELF_SHOULD_FAIL to v self, in order to make testing all v up failure modes easier. 2022-11-07 12:36:30 +02:00
Roy Ivy III
c015f15d8d
make.bat: fix use of make.bat from v up (#16348)
* .editorconfig: fix EOL for BAT files

* make.bat: fix use of `make.bat` from `v up`

- use move semantics, instead of replace, for `v` executable updates
- fixes [#16184](https://github.com/vlang/v/issues/16184)

# [why]

`v up` updates the executable by directly calling `make.bat`, awaiting
the result, which keeps an open file handle to it's own executable file.
`make.bat` compiles and, crucially, attempts to directly replace that
`v` executable. But, in WinOS, files with open file handles cannot be
deleted/replaced, so the `make` then fails. The other key point is that,
although WinOS files with open file handles can't be deleted/replaced,
they _can be moved/renamed_.

Thus, the technique that most self-updating WinOS executables use is to
move the current executable to some alternate name (ie, *v_old.exe*) and
then move the newly updated executable to the original location (ie,
*v.exe*). The next invocation of the "original" executable will then run
the updated version.

Note, this technique also works correctly for direct invocations of `make.bat`.
2022-11-07 08:48:08 +02:00
pancake
407bb6641f
cgen: fix #16326 -cstrict with $embed_file (#16343) 2022-11-06 15:47:06 +02:00
Delyan Angelov
5638005b17
README: fix Termux instructions (add libexecinfo too) 2022-11-06 15:09:29 +02:00
Delyan Angelov
040bcd9141
README: add a section to clarify the installation process on Termux 2022-11-06 15:04:37 +02:00
yuyi
25b8ae2189
parser: minor cleanup in comptime.v (#16338) 2022-11-06 08:23:28 +03:00
pancake
e3fed4c3eb
v.pkgconfig: fix infinite recursion bug when parsing dependencies (#16342) 2022-11-06 08:22:50 +03:00
Swastik Baranwal
ca484430e0
checker: check int overflow for const vars (#16332) 2022-11-06 08:22:28 +03:00
yuyi
d701cf561c
scanner: fix new string interpolation: print('{n:10}') (fix #16321) (#16325) 2022-11-06 08:20:21 +03:00
Delyan Angelov
056f1b7c06
parser: improve error message for fn (a Foo<Foo<T>>) baz(){} 2022-11-05 19:58:22 +02:00
Delyan Angelov
27d8f2371d
ci: fix go->spawn in the examples in vlib/context/README.md too 2022-11-05 14:02:24 +02:00
Delyan Angelov
bf00e9bdb8
tests: fix vlib/v/fmt/tests/*_expected.vv files too 2022-11-05 11:30:49 +02:00
Alexander Medvednikov
02acb8433c tests: fix keep tests with spawn 2022-11-05 12:13:20 +03:00
Delyan Angelov
9f2ab9aad6
ci: fix long line in doc/docs.md 2022-11-05 10:57:13 +02:00
Delyan Angelov
3e02f3b2b1
docs: put the short installation instructions directly in doc/docs.md too 2022-11-05 10:54:26 +02:00
Alexander Medvednikov
5b44da5ddb doc: replace go with spawn 2022-11-05 10:50:37 +03:00
Alexander Medvednikov
e81e0ac708 fmt: replace go with spawn 2022-11-05 10:46:40 +03:00
Alexander Medvednikov
a082328e40 parser: make spawn behave like go 2022-11-05 10:41:30 +03:00
Alexander Medvednikov
141c404d45 all: new keyword "spawn" 2022-11-05 09:43:38 +03:00
Delyan Angelov
b52b8429d4
vfmt: implement support for // vfmt off and // vfmt on, with it, v fmt -w . now works. (#16335) 2022-11-05 09:08:01 +03:00
yuyi
131d07aede
parser: fix embed file to_string() in if guard (#16334) 2022-11-05 09:05:38 +03:00
Ted Stoychev
e1896ffd5b
tutorials: fix a broken link (#16333) 2022-11-05 08:13:00 +03:00
Ted Stoychev
5933ab7158
docs: add syntax highlighting to a code snippet in the tutorials (#16331) 2022-11-04 17:01:25 +02:00
Delyan Angelov
4cabf709e1
tools: add support for a |``v shared| markdown code tag, for illustrating code examples starting with module not_main` 2022-11-04 15:35:25 +02:00
Delyan Angelov
2dffb04650
ci: fix formatting of cmd/tools/vtest-cleancode.v after resolving conflicts 2022-11-04 15:12:46 +02:00
Delyan Angelov
7f91db695c
examples, tests: small formatting cleanup in cube_glsl.v , remove already fixed skips in v test-cleancode, before // vfmt off and // vfmt on 2022-11-04 14:48:20 +02:00
kahsa
fa7ff09370
doc: move Struct update syntax to the Struct section (#16305) 2022-11-04 09:01:51 +02:00
kahsa
3061859f25
doc: move the Parameter evaluation order section before References (#16306) 2022-11-04 08:57:40 +02:00
kahsa
cb5c6b605b
doc: fix match heading and add ref field link (#16316) 2022-11-04 08:31:24 +02:00
penguindark
eb0c46e13a
regex: fix for last group with OR inside (#16324) 2022-11-04 08:19:33 +02:00
yuyi
fd4045931a
scanner: fix the new string interpolation - println('{s == 'hello'}') (fix #16318) (#16319)
* scanner: fix the new string interpolation - println('{s == 'hello'}')

* fix vlib/v/eval/gen/infix_gen.v
2022-11-03 23:06:11 +02:00
shove
0e8d148fe7
checker: give a checker error message on print(1), print(2) (fix #16311) (#16314) 2022-11-03 17:28:59 +02:00
Taegon Kim
962d0babdc
js: fix match true {} in the js backend (#16317) 2022-11-03 17:25:45 +02:00
kahsa
4e02cd8721
doc: move match next to if (#16304) 2022-11-03 14:17:02 +02:00
yuyi
a979b3aab8
scanner: fix new string interpolation - print('{a}{{b}}') (#16309) 2022-11-03 14:04:41 +02:00
kahsa
9de92eb391
doc: add more links (#16303) 2022-11-03 13:36:39 +02:00
kahsa
fa3019195c
doc: improve toc (#16302) 2022-11-03 13:34:05 +02:00
shove
fa4a45d37f
all: make fmt support two kinds of interpolation at the same time. (#16308) 2022-11-03 13:32:07 +02:00
shove
5c7ceb16dd
checker: fix the check of types not implemented by interfaces in infix key_is and not_is (fix #16282 #16298) (#16284) 2022-11-03 12:18:30 +02:00
Taegon Kim
14f90b1196
cgen: fix compile time reflection for method types (.typ was always 0) (#16310) 2022-11-03 12:16:01 +02:00
Delyan Angelov
f427a5241a
os,tools: add os.vtmp_dir()
Use it to consistently place all temporary files created by tests in a overridable folder specific to the user, that is easy to cleanup later.

NOTE: os.temp_dir() on macos returns `/tmp`, and using `/tmp/v` is a problem when multiple unix users are trying to access/create/write to it.
2022-11-03 10:19:51 +02:00
kahsa
509f5c7db3
doc: fix links to attributes (#16301) 2022-11-03 07:02:01 +02:00
kahsa
1ecf7c6e41
doc: fix function heading (#16307) 2022-11-03 06:38:07 +02:00
shove
dddcf423db
all: replace x[x.len-1] with x.last() (#16296) 2022-11-02 21:08:33 +02:00
JalonSolov
d11baa691c
v: update the .gitattributes/.gitignore files generated by v init (#16292) 2022-11-02 20:41:12 +02:00
Taegon Kim
d4c83f62b2
doc: fix a broken example in json2's README.md (#16293) 2022-11-02 19:29:43 +02:00
shove
5fe4888874
parser: fix raw string as map keys (fix #16285) (#16289) 2022-11-02 16:04:22 +02:00
Spydr
075c025999
native: don't generate duplicate strings (#16281) 2022-11-02 15:48:25 +02:00