v - 保守可能なソフトウェアを開発するためのシンプル、高速、安全なコンパイル言語。ライブラリの依存関係がゼロの <1 で自身をコンパイルします。自動C = > V変換をサポートします。https://vlang.io

(Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io)

Created at: 2019-02-08 10:57:06
Language: V
License: MIT

スポンサー パトレオン 不和 囀る モジュール

Vの主な機能

  • シンプルさ:言語は週末に学ぶことができます
  • 高速コンパイル:Clangバックエンドで≈110k loc / s、 ≈ネイティブおよびTCCバックエンドを備えた500k loc / s(インテルi5-7500、SSD、いいえ) 最適化)(デモビデオ)
  • 開発が簡単:Vは1秒未満でコンパイルされます
  • パフォーマンス:Cと同じくらい高速(Vのメインバックエンドは人間が読めるCにコンパイルされます)
  • 安全性: null、グローバル、未定義の動作 (wip)、既定では不変性なし
  • CからVへの翻訳(『DOOM』のデモ動画の翻訳)
  • ホットコードリロード
  • 柔軟なメモリ管理。GC はデフォルトで、手動経由 , アリーナの割り当て経由、自動無料経由(自動無料デモビデオ)。
    v -gc none
    v -prealloc
    v -autofree
  • クロスプラットフォーム UI ライブラリ
  • 組み込みのグラフィックライブラリ
  • 簡単なクロスコンパイル
  • レップ
  • 組み込みのORM
  • 組み込みのウェブフレームワーク
  • C および JavaScript バックエンド
  • 低レベルのソフトウェア(Vinix OS)の作成に最適)

安定性の保証と将来の変更

開発の初期段階にあるにもかかわらず、V言語は比較的安定しており、 下位互換性の保証、つまり、今日記述するコードが保証されます 今から1か月、1年、または5年後に働くこと。

1.0リリースより前にまだマイナーな構文変更があるかもしれませんが、それらは処理されます 過去に行われたように、を介して自動的に。

vfmt

VコアAPI(主にモジュール)には、 それらはV1.0で安定しています。もちろん、APIはその後成長しますが、壊れることはありません 既存のコード。

os

他の多くの言語とは異なり、Vは常に変化するわけではなく、新しい機能を備えています 導入され、古い機能が変更されています。それは常に小さくてシンプルになるでしょう 言語、現在の方法と非常によく似ています。

ソースからの V のインストール

--> (これが推奨される方法です)

Linux、macOS、Windows、*BSD、Solaris、WSLなど

通常、Vのインストールは、すでに 機能的なインストール。

git

開始するには、ターミナル/シェルで以下を実行してみてください。

git clone https://github.com/vlang/v
cd v
make
# HINT: Using Windows? run make.bat in a cmd shell, or ./make.bat in PowerShell

それはそれであるべきであり、あなたはあなたのV実行可能ファイルを見つけるべきです。 どこにでも構いません。

[path to V repo]/v
[path to V repo]

(上記のヒントのように、Windowsでは実行を意味します。

make
make.bat

今、あなたは(またはcmdシェルで)試すことができます。

./v run examples/hello_world.v
v run examples/hello_world.v

Vは常に更新されています。Vを更新するには、次のコマンドを実行します。

v up

手記問題が発生した場合、または別の操作がある場合 すぐにインストールまたは動作しないシステムまたはLinuxディストリビューションは、「インストールの問題」を参照して、OSと問題を検索してください。

問題が見つからない場合は、既存のディスカッションに追加してください。 OSを使用するか、OSのメインディスカッションがまだ存在しない場合は新しいOSを作成します。

C コンパイラ

Tiny Cコンパイラ(tcc)は、ifによってダウンロードされます お使いのシステムと互換性のあるバージョンがあり、Vディレクトリの下にインストールされています。

make
thirdparty

このコンパイラは非常に高速ですが、最適化はほとんど行われません。開発ビルドに最適です。

プロダクションビルド(Vのオプションを使用)の場合は、clang、gcc、または Microsoft Visual C++.あなたが開発をしているなら、あなたはおそらくすでにそれらのうちの1つを持っています インストール。

-prod

それ以外の場合は、次の手順に従います。

シンボリックリンク

手記PATHにVを付けることを強くお勧めします。それは節約します 毎回V実行可能ファイルへのフルパスを入力する努力があります。 Vは、それをより簡単に行うための便利なコマンドを提供します。

v symlink

Unixシステムでは、 実行可能。これを行うには、次のコマンドを実行します。

/usr/local/bin/v

sudo ./v symlink

Windows では、たとえば を押して、 を押して、次のように入力し、 メニューエントリを右クリックして、 を選択します。新しい管理シェルで、Vをコンパイルしたパスにcdし、 種類:Windows Key

cmd.exe
Run as administrator

v symlink

(またはパワーシェルで)

./v symlink

これにより、VをPATHに追加することで、どこでもVを使用できるようになります。再起動してください その後、シェル/エディタを使用して、新しいPATH変数を取得できるようにします。

手記複数回実行する必要はありません - vは、再起動後などでも引き続き使用できます。Vリポジトリを移動することにした場合にのみ、再度実行する必要があります 別の場所のフォルダ。

v symlink
v up

ボイドリックス

[無効な Linux 命令] を展開します。
# xbps-install -Su base-devel
# xbps-install libatomic-devel
$ git clone https://github.com/vlang/v
$ cd v
$ make

港湾労働者

ドッカーの指示を展開します
git clone https://github.com/vlang/v
cd v
docker build -t vlang .
docker run --rm -it vlang:latest

アルパイン/ムスルを備えたドッカー

git clone https://github.com/vlang/v
cd v
docker build -t vlang --file=Dockerfile.alpine .
docker run --rm -it vlang:latest

テルマックス/アンドロイド

Termuxでは、Vにはいくつかのパッケージがプリインストールされている必要があります-動作するCコンパイラ、また、および.それらをインストールした後、あなたは同じスクリプトを使うことができます。 Linux/macos:

libexecinfo
libgc
libgc-static

pkg install clang libexecinfo libgc libgc-static make git
git clone https://github.com/vlang/v
cd v
make

例のテストと実行

Vがそれ自体をコンパイルできることを確認してください:

$ v self
$ v
V 0.3.x
Use Ctrl-C or `exit` to exit

>>> println('hello world')
hello world
>>>
cd examples
v hello_world.v && ./hello_world    # or simply
v run hello_world.v                 # this builds the program and runs it right away

v run word_counter/word_counter.v word_counter/cinderella.txt
v run news_fetcher.v
v run tetris/tetris.v

テトリスのスクリーンショット

テトリスまたは2048(またはグラフィックモジュールを使用する他のもの)を構築するには、 システム用に追加の開発ライブラリが必要になります。

sokol
gg

インストール方法
Debian/Ubuntu ベース
sudo apt install libxi-dev libxcursor-dev libgl-dev
Fedora/RH/CentOS
sudo dnf install libXcursor-devel libXi-devel libX11-devel libglvnd-devel
ニクスOS
xorg.libX11.dev xorg.libXcursor.dev xorg.libXi.dev libGL.dev
environment.systemPackages

V net.http, net.websocket,
v install

net.http モジュール、net.websocket モジュール、およびコマンドはすべて SSL を使用できます。 Vには、すべてのシステムで動作するバージョンのmbedtlsが付属しています。あなたが必要性を見つけたら 代わりにOpenSSLを使用して、それがシステムにインストールされていることを確認する必要があります。 コンパイル時にスイッチを使用します。

v install
-d use_openssl

Windows 以外のシステムに OpenSSL をインストールするには、次の手順を実行します。

インストールコマンド
マック
brew install openssl
Debian/Ubuntu ベース
sudo apt install libssl-dev
アーチ/マンジャロ OpenSSL はデフォルトでインストールされます
Fedora/CentOS/RH
sudo dnf install openssl-devel

Windowsでは、OpenSSLを正しく機能させるのは単に困難です。ここでの手順は役立つかもしれません(または役に立たない場合があります)。

V同期

Vのモジュールとチャネルの実装はlibatomicを使用します。 システムにすでにインストールされている可能性がありますが、インストールされていない場合は、 次の手順でインストールできます。

sync

インストールコマンド
マック インストール済み
Debian/Ubuntu ベース
sudo apt install libatomic1
Fedora/CentOS/RH
sudo dnf install libatomic-static

V UI

V UI サンプルのスクリーンショット

https://github.com/vlang/ui

Android graphical apps

With V's tool, building V UI and graphical apps for Android can become as easy as:

vab

./vab /path/to/v/examples/2048

https://github.com/vlang/vab. vab examples screenshot

Web アプリケーションの開発

シンプルなウェブブログの構築チュートリアルと、GitHub / GitLabの軽量で高速な代替手段であるGitlyをチェックしてください。

https://github.com/vlang/gitly

ギトリースクリーンショット

Vinix、Vで書かれたOS /カーネル

Vは、ドライバーやカーネルなどの低レベルのソフトウェアを作成するのに最適です。 Vinixは、すでにbash、GCC、V、およびnanoを実行しているOS /カーネルです。

https://github.com/vlang/vinix

ヴィニックスのスクリーンショット1

ヴィニックスのスクリーンショット2

承認

V は Fabrice Bellard 氏の TCC - Tiny C コンパイラに関するオリジナルの研究に感謝します。 TCCのウェブサイトは古いことに注意してください。現在のTCCリポジトリはここにあります。 Vは、https://github.com/vlang/tccbin/ にあるビルド済みのTCCバイナリを利用します

トラブルシューティング

ウィキページのトラブルシューティングセクションを参照してください