Commit Graph

478 Commits (a2efb5319db355ac40479c82c5ec4b713b5cb05d)

Author SHA1 Message Date
yuyi 9f4d498ff1
all: update`import ()` and `[]array` 2020-04-26 13:49:31 +02:00
Alexander Medvednikov 3ab8dc0092 parser: array init: `[]string` => `[]string{}` 2020-04-26 09:17:17 +02:00
Delyan Angelov 86ba1645b0 os: add os.input(prompt) 2020-04-25 22:04:12 +03:00
yuyi ec9566988a
cmdline: minor optimizaztion 2020-04-25 17:49:51 +02:00
Enzo Baldisserri 323ca2b3bb
checker: check duplicates on match with no else
Refactor match duplication test to work even if there is not else, and to include every expression.
Add tests for duplicate expressions in match.
2020-04-24 17:04:39 +03:00
Delyan Angelov ebc41375f1 os.executable: fix panic when os.executable_fallback fails (early in startup) 2020-04-23 21:53:18 +03:00
Alexander Medvednikov 1b6ae00966 os: rename os_nix.v to os_nix.c.v 2020-04-11 20:43:17 +02:00
lutherwenxu dc4db87be3
vlib: use new filename format 2020-04-11 19:51:32 +02:00
Delyan Angelov 3abbdd4a39 tests: fix vlib/os/environment.v 2020-04-08 18:01:19 +03:00
Delyan Angelov b9ec1479e4 checker: allow again fallthrough in or{} blocks of option calls without assignment 2020-04-08 02:56:24 +03:00
Daniel Däschle 0024ff848d
parser: check if the last or {} block expression is valid
These checks allows for:

a) `x := call() or { 'abc' }`
b) `x := call() or { panic('abc') }`
c) `x := call() or { exit(123) }`
d) `x := call() or { continue }`
e) `x := call() or { break }`
f) `x := call() or { return }`

... but produce errors for:

g) `x := call() or { println('an error') }` , etc.
2020-04-07 17:36:00 +03:00
Delyan Angelov 206c1f4ca1 os: implement os.is_writable_folder/1 2020-04-05 16:56:54 +03:00
Daniel Däschle e077cce103
vlib: add inode/mode information functionality (#4242)
* vlib: add inode/mode information functionality

* vlib: add docs to inode
2020-04-05 00:37:13 +03:00
yuyi 0796eb4149
os: optimize os_windows.v 2020-04-04 11:59:25 +02:00
Alexander Medvednikov 1d52847924 checker: error on an unknown ident 2020-04-03 10:52:48 +02:00
Alexander Medvednikov 5b53b3d7e3 cgen/os: minor fixes 2020-04-02 14:00:28 +02:00
Alexander Medvednikov 5b835d294c more windows fixes + bring back windows ci 2020-04-02 13:44:46 +02:00
Alexander Medvednikov 1178bfa578 windows: a temp SUCCESS fix 2020-04-02 13:31:37 +02:00
Alexander Medvednikov d9c7253836 windows: "".to_wide() fixes 2020-04-02 13:24:23 +02:00
Alexey cedf185b41
v2: fix Windows errors 2020-03-28 10:19:38 +01:00
Alexander Medvednikov 473d9fef55 checker: do not allow extra () in if conditions 2020-03-27 14:57:19 +01:00
yuyi 9c5de77f12
os: ext => file_ext 2020-03-26 14:18:08 +01:00
Delyan Angelov d54843275f
os_test.v: simplify cleanup 2020-03-26 00:09:30 +01:00
Alexander Medvednikov 7070b1cda9 cgen: GotoStmt, err variable 2020-03-25 17:24:55 +01:00
Delyan Angelov 2a7bc63919
vmft2: support for multiline comments, CompIf, AssertStmt, octal literals 2020-03-24 22:18:58 +01:00
Alexander Medvednikov 0e240458d3 os: fix os_test 2020-03-24 17:16:00 +01:00
Alexander Medvednikov 32c8eb6490 os: vfmt os_test.v 2020-03-24 16:18:37 +01:00
Alexander Medvednikov f101e9b9e2 v2: string fixes, is_dir fix 2020-03-24 11:14:11 +01:00
Alexander Medvednikov b69ebd73b2 cgen: minor fixes. v2 can now compile itself! 2020-03-22 16:55:42 +01:00
Alexander Medvednikov 2738a0c776 cgen: backtrace and sigaction fixes 2020-03-22 14:47:45 +01:00
Alexander Medvednikov ab3f6d9202 cgen: generate indents for more readable C code 2020-03-22 10:12:45 +01:00
Naheel c50c6812ce
os: fix cp() spaces in files names 2020-03-22 08:43:24 +01:00
Alexander Medvednikov e5f6a0949f cgen: autofree: first step 2020-03-21 19:52:19 +01:00
Delyan Angelov ba088056ed
solaris: make 'v test-compiler' pass (stage 2) 2020-03-21 09:48:02 +01:00
yuyi 2f27758a4b
os: realpath => real_path 2020-03-20 16:41:18 +01:00
yuyi 010f3efcf0
os: filename => file_name 2020-03-19 15:49:07 +01:00
Joe Conigliaro 126ef0f5c2 checker/gen: add unchecked exprs & small fixes 2020-03-18 19:56:19 +11:00
Delyan Angelov 19f9c18305
os: make executable() more robust 2020-03-13 22:19:02 +01:00
Alexander Medvednikov 973b5c226a cgen: optionals fixes 2020-03-13 12:22:36 +01:00
yuyi 8ff86dbee6
os: is_abs => is_abs_path 2020-03-10 16:09:37 +01:00
yuyi 57b1b12ab6
os: tmpdir => temp_dir 2020-03-10 15:02:09 +01:00
Delyan Angelov 7036ca55e6
os: implement os.environ() (part 2/2) (#3971) 2020-03-10 14:25:16 +01:00
yuyi 876b73f92c
os: join => join_path 2020-03-09 02:23:34 +01:00
yuyi a569959fb8
os api: cachedir => cache_dir 2020-03-08 15:57:47 +01:00
yuyi 23b11c84b1
os api: basedir => base_dir 2020-03-08 15:43:56 +01:00
yuyi 783dee1f48
os: merge with filepath 2020-03-07 22:26:26 +01:00
Alexander Medvednikov b7e2af8151
os: better deprecated message 2020-03-04 20:29:17 +01:00
Alexander Medvednikov f27f832ede cgen: definitions + other fixes; calloc fix 2020-03-04 17:08:28 +01:00
yuyi 448ed41562
os api: rmdir_recursive => rmdir_all 2020-03-03 15:02:50 +01:00
yuyi ea10f44fe6
os api: flush_stdout => flush 2020-03-03 00:00:30 +01:00
yuyi 8ac0739858
os api: cp_r => cp_all 2020-03-02 19:30:04 +01:00
Alexander Medvednikov 7f5a15372f os: fix get_raw_line() + minor v2 fixes 2020-02-28 14:05:20 +01:00
Nicolas Sauzede f5fdbfd004
os: fix getline warning for linux 2020-02-28 02:43:42 +01:00
Alexander Medvednikov a5db9c3519 os: bring back write_bytes_at() 2020-02-27 00:41:05 +01:00
spaceface777 ef8c1203b4
cleanup: replace C for loops with range 2020-02-24 17:55:16 +01:00
SleepyRoy 7d2eb4f604
scanner: make `0o` prefix the only way to define octals 2020-02-23 23:43:04 +01:00
yuyi 9d2a60bb11
os: optimize os_windows.v 2020-02-23 20:46:13 +01:00
yuyi 1a1aa267b7
vlib: remove malloc unsafe warning 2020-02-22 12:41:24 +01:00
yuyi b325320f29
os: minor fixes 2020-02-21 20:14:01 +01:00
Alexander Medvednikov b309e7d0e5 type_to_str() 2020-02-21 14:47:42 +01:00
yuyi 527377dc86
fix os_test.v 2020-02-21 12:24:13 +01:00
Alexey 8677a5981c
os: use unified way to deprecate functions 2020-02-20 23:00:02 +01:00
vitalyster 2e1dbd9f5a
windows: use %USERPROFILE% for os.home_dir() 2020-02-18 02:12:10 +01:00
yuyi 6849a4e770
filepath: path separator (#3756) 2020-02-17 20:31:23 +01:00
yuyi e272a10bda
vfmt fixes 2020-02-16 12:42:28 +01:00
Alexander Medvednikov 9610821884 v2: defer; match a,b; if x := 2020-02-11 10:26:46 +01:00
yuyi c1c2b648ab
os: typo in wait 2020-02-10 18:48:01 +01:00
joe-conigliaro 94537c5901
compiler: scope type alias to module 2020-02-09 15:40:31 +01:00
Delyan Angelov 1618596218
os: fix compiler warnings when just importing os 2020-02-05 11:23:49 +01:00
Delyan Angelov da21b50750
gg,os: minimize memory allocation 2020-02-03 04:01:39 +01:00
Alexander Medvednikov 9f4661391d v2: simplify the type system; an initial version of the V interpreter 2020-02-02 07:56:18 +01:00
radare 2fbfbf45c7
os: simplify read_lines( 2020-01-31 15:59:23 +01:00
Shun Sakai c8c43a2475 update copyright year 2020-01-23 21:04:46 +01:00
KJ Lawrence ae3d84df6b os: add open_file function 2020-01-21 16:58:47 +01:00
Delyan Angelov f317b65808 ui: fixes so that the ui demo works on linux too
* Implement os.resource_abs_path/1 .
* Implement glfw.get_window_size and glfw.get_framebuffer_size .
2020-01-12 19:35:06 +01:00
Alexander Medvednikov b6c0b22742 interfaces fixes; freetype.text_width(); gl and stbi fixes 2020-01-12 16:11:28 +01:00
vitalyster 66a6fa163e windows: read console using ReadFile/ReadConsole (#3387) 2020-01-10 14:06:40 +01:00
r00ster 025efcb731 os: add is_executable, is_writable and is_readable 2020-01-06 09:15:06 +01:00
Delyan Angelov 4c3df963fa v repl: fix println regression on linux 2020-01-05 22:49:09 +01:00
Delyan Angelov 8053175ead android: fix os.create and builtin 2020-01-05 20:13:35 +01:00
Delyan Angelov 67f397f888 os: implement os.cachedir() . Use it inside os.tmpdir() too 2020-01-03 19:46:23 +01:00
Alexander Medvednikov b7663848ef os: fix create() 2020-01-01 12:57:27 +01:00
Alexander Medvednikov 47908c22df cgen_test: skip empty lines; os: make vc_gen compile 2020-01-01 12:50:25 +01:00
Alexander Medvednikov 78c706ab71 Revert "enable macos syscalls"
This reverts commit d226fa7b17.
2020-01-01 12:24:50 +01:00
Alexander Medvednikov d226fa7b17 enable macos syscalls 2020-01-01 12:10:39 +01:00
Alexander Medvednikov 96d02849aa parser: parse_file(path) 2020-01-01 10:15:05 +01:00
Alexander Medvednikov 87cff0386c time: gmt offset; macos syscalls 2020-01-01 10:09:19 +01:00
Alexander Medvednikov 4424f83470 os: disable write_bytes_at() and read_bytes_at() for now 2019-12-31 11:43:10 +00:00
Alexander Medvednikov f9cc419dba os: syscalls 2019-12-31 10:16:34 +00:00
mY9Yd2 6cee50afda os: fix tmpdir on unix 2019-12-30 05:25:26 +01:00
Delyan Angelov a0f32f5c29 tests: improved test output formatting 2019-12-30 05:23:54 +01:00
Abdullah Atta 4f173c8900 vpm: implement & improve install, search, update, remove 2019-12-30 05:22:28 +01:00
Nicolas Sauzede 4925aa594b os: fix deprecated os.dir to work as advertised 2019-12-28 08:49:27 +01:00
Don Alfons Nisnoni 06fba73ab9 os: add os.symlink() function 2019-12-27 19:10:06 +01:00
vitalyster 2f23ee4818 windows: cleanup after bootstrapping with unicode entrypoint 2019-12-27 19:07:31 +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
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
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
Alexander Medvednikov 848cd3cb3e run vfmt on http, net, sync, strconv 2019-12-22 01:57:50 +03:00
Alexander Medvednikov 6210984c97 run vfmt 2019-12-20 02:09:56 +03:00
Alexander Medvednikov 519f2990f2 vfmt: minor fixes 2019-12-19 10:02:47 +03:00
Delyan Angelov 4b7aa4ec09 freebsd: fix compilation 2019-12-18 13:21:20 +03:00
Abdullah Atta 20e73ff69a os: fix nreadelements naming 2019-12-18 08:22:52 +03:00
prime31 f00f9fbf5a os: fix bug where read_bytes would return only the first byte 2019-12-18 00:16:56 +03:00
Alexander Medvednikov b8f728590b string: last_index ?int 2019-12-12 21:54:48 +03:00
Delyan Angelov 1bb38a38bb tooling: add tools/oldv , for use with 'git bisect', or for testing with older V 2019-12-08 20:21:17 +03:00
Alexander Medvednikov 49f960aea5 fix some windows cast warnings 2019-12-07 22:42:20 +03:00
Alexander Medvednikov 9cba3bdf78 windows: WideCharToMultiByte() returns an int 2019-12-07 17:31:07 +03:00
Alexander Medvednikov 2fb7fba856 require `else` in `match` statements 2019-12-07 17:01:44 +03:00
Alexander Medvednikov f51784ee01 remove unnecessary casts everywhere 2019-12-07 15:51:00 +03:00
Delyan Angelov 353805e170 os: test is_link() 2019-12-06 12:09:35 +03:00
BilligsterUser 0a38b307cd os_test: use rmdir() to del dirs 2019-12-05 17:08:55 +03:00
Nicolas Sauzede 9d854c5df0 vlib: sdl module + tVintris example 2019-12-05 11:25:55 +03:00
Alexander Medvednikov e707ac4f28 test v -live message.v 2019-12-05 00:17:38 +03:00
Alexander Medvednikov 2144c162c4 os: is_link() 2019-12-04 23:53:11 +03:00
Alexander Medvednikov a57e29dfc5 os: replace dir_exists with is_dir; file_exists() => exists() 2019-12-04 23:17:45 +03:00
Alexander Medvednikov b2b34e18e4 use the new &C.Foo(0) cast 2019-12-04 12:19:32 +03:00
Alexander Medvednikov 2bafd41183 `&C.Foo(0)` cast to replace `&C.Foo{!}` hack 2019-12-04 12:13:17 +03:00
bogen85 a9aaa13a09 freestanding: sys_getuid, sys_waitid; minimal fork check; remove bare.S 2019-12-04 11:46:09 +03:00
Delyan Angelov eb20dd39b1 freestanding: init consts 2019-12-04 01:40:26 +03:00
Alexander Medvednikov 66f271f100 fix a string interpolation bug 2019-12-03 20:41:49 +03:00
Alexander Medvednikov f192429c8a $if mac => $if macos 2019-12-03 16:29:37 +03:00
Enrico Lefass 6d28a80bf8 haiku support (part 2) 2019-12-03 11:26:47 +03:00
Delyan Angelov ec15bfb7d1 v test v => v test-compiler 2019-12-01 12:50:13 +03:00
Alexander Medvednikov 3fea8f3de5 *char => charptr everywhere 2019-12-01 10:33:26 +03:00
Alexander Medvednikov 7e4799334f array: make left/right/slice private 2019-11-30 12:37:34 +03:00
Alexander Medvednikov 1bfcdaa2cc ci: test the new prebuilt packages 2019-11-29 19:14:26 +03:00
Delyan Angelov 7545ea709a enable alpine/musl CI tests 2019-11-28 11:46:52 +03:00
Unknown User 268a6dc6d9 add missing cfns 2019-11-25 04:35:41 +03:00
Alexander Medvednikov 24b40be548 default struct vals 2019-11-24 13:53:59 +03:00
Alexander Medvednikov 7cc21be7de clipboard: make compile on Linux 2019-11-24 13:22:57 +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
Alexander Medvednikov 1f93bb5a9a os: windows fixes 2019-11-23 21:40:32 +03:00
Alexander Medvednikov cfd4f0c69c os: fix fullpath call on windows 2019-11-23 21:05:49 +03:00
Alexander Medvednikov ccb261f00d os: fix unreachable code 2019-11-23 21:00:20 +03:00
Alexander Medvednikov 0aa2196eec os: fix realpath on windows 2019-11-23 20:56:22 +03:00
Don Alfons Nisnoni 3a6ccf7f31 os: mkdir() error handling 2019-11-23 19:55:18 +03:00
Alexander Medvednikov 9712213f50 x64 machine code generation (ELF) 2019-11-22 14:33:22 +03:00
Delyan Angelov a620e66af5 compiler: add os.mv_by_cp and use it for the temporary files 2019-11-19 12:55:02 +03:00
Alexander Medvednikov 20d6492775 os: make read_lines() return ?[]string 2019-11-19 02:25:55 +03:00
Alexander Medvednikov 52e3586be3 os: use mkdir() on Linux for now 2019-11-19 00:33:43 +03:00
joe-conigliaro 6d7fe1f83c fix vtool used with paths w/spaces (win/nix) 2019-11-17 14:36:05 +03:00
Delyan Angelov be7cf3e812 compiler: support storing temporary files under TMPDIR/v/
Fix for filepath.join not \0 terminating its result
2019-11-17 06:45:20 +03:00
Alexander Medvednikov 5a1de13e10 bare: fix str[idx] 2019-11-16 23:22:40 +03:00
Alexander Medvednikov a545ccb740 bare: stdint.h 2019-11-16 11:24:25 +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
Delyan Angelov e577b40743 compiler: add support for $if x32, x64, big_endian, little_endian 2019-11-15 16:14:28 +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 9499275180 os: mkdir syscall on linux 2019-11-15 00:15:23 +03:00
Alexander Medvednikov 34c4565f7c wrap up -bare 2019-11-14 11:11:52 +03:00
Alexander Medvednikov 4a833d8151 parser: clean up all [] 2019-11-14 09:21:20 +03:00
Alexander Medvednikov 8d4ef822b6 1 2019-11-14 07:08:11 +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
Delyan Angelov cc81e9adfa v test v: cleanup more temporary files 2019-11-11 18:45:11 +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
Alexander Medvednikov c7f3413d70 more vfmt fixes 2019-11-10 19:49:19 +03:00
Steven Gay d1e7a54f3a print_backtrace_skipping_top_frames: Implementation for MSVC 2019-11-10 19:34:53 +03:00
Alexander Medvednikov 3d4f85069f more vfmt fixes 2019-11-10 02:44:26 +03:00
Toby Webb ab37081f02 add production mode tests
Due to the inability to detect warnings in REPL tests, I implemented running something very similar, but with the -prod flag enabled.
(See https://github.com/vlang/v/pull/2536)

There is also a minor change in os.walk_ext to not add duplicated path separators:
/path//file.ext -> /path/file.ext
2019-11-09 19:35:26 +03:00
Nicolas Sauzede 5a8c3daba3 os: fix stat mode signedness warning 2019-11-08 03:02:02 +03:00
Delyan Angelov a44ba0b8a2 bignum module wrapper for kokke/tiny-bignum-c 2019-11-07 22:04:18 +03:00
Alexander Medvednikov fbd71e1539 expression.v 2019-11-07 17:48:48 +03:00
vitalyster 86447c1301 windows: use CreateProcess for os.exec 2019-11-07 16:01:17 +03:00
Nicolas Sauzede c8de2c0bd4 fix i64 overflow warning 2019-11-07 06:00:00 +03:00
lorenzo pirro bd18f50c8a os: cp_r fn to copy files recursively 2019-11-06 23:05:35 +03:00
vitalyster 8dbeab9a7b make V work on Windows 7 2019-11-06 23:04:40 +03:00
Alexander Medvednikov c5d868c928 start the C header removal process 2019-11-05 19:24:00 +03:00
Alexander Medvednikov 883041fbcc os: replace FILE with voidptr to remove stdlib.h dep 2019-11-05 18:42:10 +03:00
Daren Liang e3d8ab5849 os: do not allow || and \n in system/exec 2019-11-04 02:41:15 +03:00
Alexander Medvednikov 3449a8bc4d os: do not allow ; and && in system/exec 2019-11-03 23:13:56 +03:00
Trivaxy 8de2f00294 os: add windows cp 2019-11-02 22:37:29 +03:00
joe-conigliaro 7b1993b1e4 vlib: filepath module 2019-11-01 19:29:51 +03:00
Alexander Medvednikov f8f7881f89 thirdparty/ui for macOS (temporary) 2019-11-01 01:14:08 +03:00
Nicolas Sauzede 71450828bd fix missing protos for popen and backtrace_symbols 2019-11-01 00:52:08 +03:00
Alexander Medvednikov 128d37c671 vh fixes for the UI module 2019-10-31 21:26:12 +03:00
joe-conigliaro 59378dce46 compiler/vlib: replace substr/left/right with `[start..end]` everywhere 2019-10-27 10:03:15 +03:00
Nicolas Sauzede 7ba5248e56 os_win.v: switch => match 2019-10-27 09:36:40 +03:00
Don Alfons Nisnoni 678ce54e70 os: document functions 2019-10-26 20:21:07 +03:00
vitalyster 272b0aec82 os: fix os.get_error_msg on Windows 2019-10-26 14:58:05 +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
Simon Ernst 2032da7fe2 os: make Result public 2019-10-24 21:58:28 +03:00
Alexander Medvednikov 36eb1b77d0 compiler: remove remaining switch statements and show a warning 2019-10-24 19:26:51 +03:00
Larpon 98c016b41d os: walk() function 2019-10-24 15:17:09 +03:00
Alexander Medvednikov 4a88a28a3b make all necessary structs public 2019-10-24 12:51:00 +03:00
Alexander Medvednikov dce3275df4 make necessary consts public 2019-10-24 12:36:57 +03:00
Alexander Medvednikov 27e254c738 now bring _windows.v back 2019-10-23 12:54:45 +03:00
Alexander Medvednikov 1752f6879c os: remove duplicate consts 2019-10-23 12:45:52 +03:00
Alexander Medvednikov 8021a01365 rename windows files for now 2019-10-23 12:37:42 +03:00
Alexander Medvednikov 92185a1a6f os: move windows consts to a separate file 2019-10-23 12:28:48 +03:00
Alexander Medvednikov 5ef4b2064f windows: _win.v => windows.v 2019-10-23 12:21:33 +03:00
Emily Hudson 2829298de7 live: Fix MSVC hot code reloading (#2460) 2019-10-21 12:15:43 +11:00
Enrico Lefass c23155790a os: add pub fn read_bytes and pub fn read_bytes_at 2019-10-20 20:45:16 +03:00