From 223032f0ce17107a1e3927f3c3239ce49e359d31 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Mon, 30 Sep 2019 22:39:52 +0300 Subject: [PATCH] V 0.1.21 --- CHANGELOG.md | 16 +++++++++++++--- compiler/main.v | 8 +++----- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc53b9c497..5528827455 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,24 @@ ## V 0.1.21 -*XX Sep 2019* +*30 Sep 2019* - `none` keyword for optionals. +- Solaris support. - All table lookup functions now use `none`. +- varargs: `fn foo(bar int, params ...string) {` - Double quotes (`"`) can now also be used to denote strings. - GitHub Actions CI in addition to Travis. - `-compress` option. The V binary built with `-compress` is only ~90 KB! - More memory management. -- "Unused variable" error is now a warning in non-production builds. - +- Unused modules result in an error. +- "Unused variable/module" errors are now warnings in non-production builds. +- Duplicate methods with the same name can no longer be defined. +- Struct names must be capitalized, variable/function names must use snake_case. +- Error messages are now even nicer! +- Lots of fixes in automatic `.str()` method generation for structs and arrays. +- ~30% faster parser (files are no longer parsed separately for each pass). +- `_` is no longer a variable, but an actual syntax construct to skip unused values, like in Go. +- Multiple returns (`fn foo() (int, strnig) {`). +- `!` can now only be used with booleans. ## V 0.1.20 diff --git a/compiler/main.v b/compiler/main.v index 5c94ac0f8c..6d932d671b 100644 --- a/compiler/main.v +++ b/compiler/main.v @@ -11,7 +11,7 @@ import ( ) const ( - Version = '0.1.20' + Version = '0.1.21' ) enum BuildMode { @@ -1066,7 +1066,7 @@ fn (v &V) test_v() { vexe := os.executable() parent_dir := os.dir(vexe) if !os.dir_exists(parent_dir + '/vlib') { - println('run vlib/ is missing, it must be next to the V executable') + println('vlib/ is missing, it must be next to the V executable') exit(1) } // Emily: pass args from the invocation to the test @@ -1108,7 +1108,7 @@ fn (v &V) test_v() { println( tmark.total_message('running V tests') ) println('\nBuilding examples...') - examples := os.walk_ext('examples', '.v') + examples := os.walk_ext(parent_dir + '/examples', '.v') mut bmark := benchmark.new_benchmark() for relative_file in examples { if relative_file.contains('vweb') { @@ -1137,9 +1137,7 @@ fn (v &V) test_v() { } bmark.stop() println( bmark.total_message('building examples') ) - v.test_vget() - if failed { exit(1) }