Solidity Derleyicisini Yükleme
Sürüm
Solidity sürümleri Semantic Sürümlemeyi takip eder. Ek olarak, ana sürüm 0’a (yani 0.x.y) sahip yama düzeyindeki sürümler, kırılma değişiklikleri(breaking changes) içermeyecektir. Bu, 0.x.y sürümü ile derlenen kodun z > y olduğu durumlarda 0.x.z ile derlenmesinin umulabileceği anlamına gelir.
Sürümlere ek olarak, geliştiricilerin gelecek özellikleri denemelerini ve erken geri bildirim sağlamalarını kolaylaştırmak amacıyla gece geliştirme yapıları (Nightly Development Builds diye de bilinir) sağlıyoruz. Bununla birlikte, nightly yapılar genellikle çok kararlı olsalar da, geliştirme kolundaki (branch) en yeni kodları içerdiklerini ve her zaman çalışacaklarının garanti edilmediğini unutmayın. Tüm emeklerimize karşın, hala gerçek sürümün bir parçası olmayacak belgelenmemiş ve/veya arızalı değişiklikler içerebilirler. Bunlar üretim amaçlı kullanım için uygun değillerdir.
Sözleşmeleri derleyip yüklerken Solidity’nin yayınlanan en son sürümünü kullanmalısınız. Bunun nedeni, kırılma değişikliklerinin yanı sıra yeni özelliklerin tanıtılması ve eski sürümlerdeki hataların düzenli olarak düzeltilmesinden kaynaklanmaktadır. Bu hızlı sürüm değişikliklerini belirtmek için şu anda 0.x sürüm numarası kullanıyoruz.
Remix
Solidity’i hızlı bir şekilde öğrenmek ve küçük akıllı sözleşmeler geliştirmek için Remix’i kullanmanızı tavsiye ediyoruz.
Remix’i online bir şekilde kullanabilirsiniz, bunun için herhangi bir şey indirip kurmanıza gerek yoktur.
Remix’i internet bağlantısı olmadan da kullanmak istiyorsanız, https://github.com/ethereum/remix-live/tree/gh-pages adresine gidip
sayfada açıklandığı gibi .zip
dosyasını indirebilirsiniz. Remix, birden fazla Solidity sürümü yüklemenize gerek kalmadan gece
yapılarını da test etmek için uygun bir seçenektir.
Bu sayfada bulunan diğer seçenekler de komut satırı için Solidity derleyicisini bilgisayarınıza nasıl kuracağınızı detaylı bir şekilde anlatmaktadır. Eğer daha büyük bir sözleşme üzerinde çalışıyorsanız veya daha fazla derleme seçeneğine ihtiyacınız varsa lütfen bir komut satırı derleyicisi seçin.
npm / Node.js
Solidity derleyicisi olan solcjs
programını kurmanın kullanışlı ve taşınabilir bir yolu
için npm
programını kullanabilirsiniz. solcjs programı, bu sayfanın ilerleyen kısımlarında
açıklanacak olan derleyiciye erişim yollarından daha az özelliğe sahiptir. solc
.ref:commandline-compiler`(komut satırı derleyicisi) dokümantasyonu
tam özellikli derleyici olan ``solc` kullandığınızı varsayar. solcjs
kullanımı için oluşturulan
belgeler kendi deposu içinde bulunmaktadır.
Not: solc-js projesi, Emscripten kullanılarak oluşturulan C++ solc projesinden türetilmiştir, bu da her ikisinin de aynı derleyici kaynak kodunu kullandığı anlamına gelir. Aynı zamanda solc-js doğrudan JavaScript projelerinde (Remix gibi) kullanılabilmektedir. Talimatlar için lütfen solc-js deposuna göz atın.
npm install -g solc
Not
Komut satırında çalışabilen kod``solcjs`` olarak adlandırılmıştır (Komut satırına “solcjs” yazarak çalıştırabilirsiniz).
solcjs
komut satırı seçenekleri solc
ile uyumlu değildir. Aynı zamanda çalışmak için solc
komutuna ihtiyaç
duyan araçlar (örneğin geth
gibi) solcjs
ile çalışmayacaktır.
Docker
Solidity yapılarında bulunan Docker imajları, ethereum
kuruluşundaki solc
imajlarını da kullanarak elde edilebilir.
Yayınlanan en son sürüm için stable
etiketini ve geliştirme kolundaki (branch) sağlam olmayabilecek stabil olmayan değişiklikler
için nightly
etiketini kullanabilirsiniz.
Docker imajı derleyicinin yürütülebilir dosyasını çalıştırır, bu sayede tüm değişkenleri derleyiciye iletebilirsiniz.
Örneğin, aşağıdaki komut solc
imajının (elinizde mevcut değilse) kararlı bir sürümünü çeker ve --help
parametresini ileterek
yeni bir konteynerde çalıştırır.
docker run ethereum/solc:stable --help
Etikette derleme sürümlerini de belirtebilirsiniz, örneğin 0.5.4 sürümü için:
docker run ethereum/solc:0.5.4 --help
Docker imajını kullanarak Solidity dosyalarını ana makinede derlemek istiyorsanız, girdi ve çıktı için yerel bir klasör bağladıktan sonra derlenecek olan sözleşmeyi belirtin. Örnek vermek gerekirse:
docker run -v /local/path:/sources ethereum/solc:stable -o /sources/output --abi --bin /sources/Contract.sol
Ayrıca spesifik bir JSON arayüzünü de kullanabilirsiniz (Hardhat,Truffle gibi derleyiciyi araçlarıyla birlikte kullanırken tavsiye edilir). Bu arayüzü kullanırken, JSON girdisi bağımsız olduğu sürece herhangi bir dizini bağlamak gerekli değildir (yani içeri aktarılan(import) geri çağrısı (callback) tarafından yüklenmesi gereken herhangi bir harici dosyaya referans göstermez).
docker run ethereum/solc:stable --standard-json < input.json > output.json
Linux Paketleri
Solidity’nin binary paketleri solidity/releases adresinde mevcuttur.
Ayrıca Ubuntu için PPA’larımız da bulunmaktadır, aşağıdaki komutları kullanarak en son kararlı sürümü edinebilirsiniz:
sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc
Gece sürümü de bu komutlar kullanılarak kurulabilir:
sudo add-apt-repository ppa:ethereum/ethereum
sudo add-apt-repository ppa:ethereum/ethereum-dev
sudo apt-get update
sudo apt-get install solc
Ayrıca, bazı Linux dağıtımları kendi paketlerini sağlamaktadırlar. Fakat bu paketlerin bakımı doğrudan bizim tarafımızdan yapılmamaktadır. Bu paketler genellikle ilgili paket sorumluları tarafından güncel tutulmaktadır.
Örnek vermek gerekirse, Arch Linux en son geliştirme sürümü için paketlere sahiptir:
pacman -S solidity
Ayrıca bir snap paketi vardır, ancak şu anda bakımı yapılmamaktadır. Bu paket desteklenen tüm Linux dağıtımlarına yüklenebilir. Solc’un en son çıkan kararlı sürümünü yüklemek için:
sudo snap install solc
Solidity’nin en son değişiklikleri içeren son çıkan geliştirme sürümünün test edilmesine yardımcı olmak istiyorsanız, lütfen aşağıdaki komutları kullanın:
sudo snap install solc --edge
Not
solc
snap`i katı bir sınırlama sistemine sahiptir. Bu snap paketleri için uygulanabilecek
en güvenli moddur, tabi bu modda yalnızca /home
ve /media
dizinlerinizdeki dosyalara
erişmek gibi sınırlamalarla birlikte gelmektedir. Daha fazla bilgi için lütfen Sıkı Snap Sınırlaması
Sistemini Açıklamak bölümüne gidin.
macOS Paketleri
Solidity derleyicisini, kaynaktan oluşturulmuş bir sürüm olarak Homebrew aracılığıyla dağıtıyoruz. Önceden oluşturulmuş olan “bottles”lar(binary paketleri) şu anda desteklenmemektedir.
brew update
brew upgrade
brew tap ethereum/ethereum
brew install solidity
Solidity’nin en son 0.4.x / 0.5.x sürümünü yüklemek için sırasıyla brew install solidity@4
ve brew install solidity@5
de kullanabilirsiniz.
Solidity’nin belirli bir sürümüne ihtiyacınız varsa, doğrudan Github’dan bir Homebrew “formula”sını (Formula, paket tanımı için kullanılan bir ifadedir) yükleyebilirsiniz.
Github’daki solidity.rb “commit”lerini görüntüleyin.
İstediğiniz bir sürümün commit hash’ini kopyalayabilir ve kendi makinenizde kontrol edebilirsiniz.
git clone https://github.com/ethereum/homebrew-ethereum.git
cd homebrew-ethereum
git checkout <your-hash-goes-here>
Bunu brew
kullanarak yükleyin:
brew unlink solidity
# eg. Install 0.4.8
brew install solidity.rb
Statik Binaryler
Desteklenen tüm platformlar için geçmiş ve güncel derleyici sürümlerinin statik yapılarını içeren bir depoyu solc-bin adresinde tutuyoruz. Bu adreste aynı zamanda nightly yapıları da bulabilirsiniz.
Bu depo, son kullanıcıların ikili dosya sistemlerini kullanıma hazır hale getirmeleri için hızlı ve kolay bir yol olmasının yanı sıra üçüncü taraf araçlarla da dost olmayı (kolay bir şekilde etkileşimde bulunmayı) amaçlamaktadır:
https://binaries.soliditylang.org adresine yansıtılan bu içerik herhangi bir kimlik doğrulama, hız sınırlaması veya git kullanma ihtiyacı olmadan HTTPS üzerinden kolayca indirilebilir.
İçerik, tarayıcıda çalışan araçlar tarafından doğrudan yüklenebilmesi için doğru Content-Type başlıklarıyla ve serbest CORS yapılandırmasıyla sunulur.
Binaryler için herhangi bir kurulum veya paketten çıkarma işlemi gerekmez (gerekli DLL’lerle birlikte gelen eski Windows yapıları hariç).
Biz yüksek düzeyde geriye dönük uyumluluk için çabalamaktayız. Dosyalar eklendikten sonra, eski konumunda bulunan bir kısayol bağlantısı veya yönlendirme sağlanmadan kaldırılmaz veya taşınmaz. Ayrıca bu dosyalar hiçbir zaman değiştirilmez ve her zaman orijinal sağlama toplamı ile eşleşmelidirler. Buradaki tek istisna, olduğu gibi bırakıldığında yarardan çok zarar verme potansiyeli olan bozuk veya kullanılamaz dosyalar için geçerlidir.
Dosyalar hem HTTP hem de HTTPS protokolleri üzerinden sunulur. Dosya listesini güvenli bir şekilde aldığınız (git, HTTPS, IPFS aracılığıyla veya yerel olarak önbelleğe aldığınız) ve indirdikten sonra ikili sayı sistemi dosyalarının hash’lerini doğruladığınız sürece, ikili dosyalar için HTTPS protokolünü kullanmanız gerekmez.
Aynı ikili sayı sistemi dosyaları genellikle Github üzerindeki Solidity sürüm sayfası nda bulunmaktadır.
Aradaki fark, Github sürüm sayfasındaki eski sürümleri genellikle güncellemiyor olmamızdır. Bu, adlandırma
kuralı değişirse onları yeniden adlandırmadığımız ve yayınlandığı sırada desteklenmeyen platformlar için
derlemeler eklemediğimiz anlamına gelir. Bu sadece solc-bin
içinde gerçekleşir.
solc-bin
deposu, her biri tek bir platformu temsil eden birkaç üst düzey dizin içerir. Her biri mevcut
ikili sayı sistemi dosyalarını listeleyen bir list.json
dosyası içerir. Örneğin emscripten-wasm32/list.json
dosyasında bulunan 0.7.4 sürümü hakkındaki bilgileri aşağıda bulabilirsiniz:
{
"path": "solc-emscripten-wasm32-v0.7.4+commit.3f05b770.js",
"version": "0.7.4",
"build": "commit.3f05b770",
"longVersion": "0.7.4+commit.3f05b770",
"keccak256": "0x300330ecd127756b824aa13e843cb1f43c473cb22eaf3750d5fb9c99279af8c3",
"sha256": "0x2b55ed5fec4d9625b6c7b3ab1abd2b7fb7dd2a9c68543bf0323db2c7e2d55af2",
"urls": [
"bzzr://16c5f09109c793db99fe35f037c6092b061bd39260ee7a677c8a97f18c955ab1",
"dweb:/ipfs/QmTLs5MuLEWXQkths41HiACoXDiH8zxyqBHGFDRSzVE5CS"
]
}
Bu şu anlama gelmektedir:
Binary dosyasını aynı dizinde solc-emscripten-wasm32-v0.7.4+commit.3f05b770.js adı altında bulabilirsiniz. Dosyanın bir kısayol bağlantısı olabileceğini ve dosyayı indirmek için eğer git kullanmıyorsanız veya dosya sisteminiz kısayol bağlantılarını desteklemiyorsa bu dosyayı kendiniz çözümlemeniz gerekebileceğini unutmayın.
Binary dosyası ayrıca https://binaries.soliditylang.org/emscripten-wasm32/solc-emscripten-wasm32-v0.7.4+commit.3f05b770.js adresine de yansıtılır. Bu durumda git kullanımı gerekli değildir ve kısayol bağlantıları ya dosyanın bir kopyasını sunarak ya da bir HTTP yönlendirmesi döndürerek dosyanın şeffaf bir şekilde çözümlenmesini sağlar.
Dosya ayrıca IPFS üzerinde QmTLs5MuLEWXQkths41HiACoXDiH8zxyqBHGFDRSzVE5CS adresinde de mevcuttur.
Dosya, gelecekte Swarm’da bulunan 16c5f09109c793db99fe35f037c6092b061bd39260ee7a677c8a97f18c955ab1 adresinde mevcut olabilir.
Binary’nin bütünlüğünü keccak256 hash değerini
0x300330ecd127756b824aa13e843cb1f43c473cb22eaf3750d5fb9c99279af8c3
ile karşılaştırarak da doğrulayabilirsiniz. Hash, komut satırında sha3sum tarafından sağlanankeccak256sum
yardımcı programı veya JavaScript’te ethereumjs-util’de bulunan keccak256() fonksiyonu kullanılarak da hesaplanabilir.Binary’nin bütünlüğünü sha256 hash değerini
0x2b55ed5fec4d9625b6c7b3ab1abd2b7fb7dd2a9c68543bf0323db2c7e2d55af2
ile karşılaştırarak da doğrulayabilirsiniz.
Uyarı
Güçlü bir şekilde geriye dönük uyumluluk gereksinimi sebebiyle depo bazı eski öğeler içerir, ancak yeni araçlar yazarken bunları kullanmaktan kaçınmalısınız:
En iyi performansı istiyorsanız
bin/
yerineemscripten-wasm32/
son çare (fallback) (emscripten-asmjs/
geri dönüşü ile) kullanın. Biz 0.6.1 sürümüne kadar sadece asm.js ikili sayı sistemi dosyalarını sağlamıştık. 0.6.2`den itibaren çok daha iyi performans sağlayan WebAssembly derlemeleri`_ne geçtik. Eski sürümleri wasm için yeniden oluşturduk ancak orijinal asm.js dosyaları ``bin/` içinde kaldı. Çünkü isim çakışmalarını önlemek amacıyla yenilerinin ayrı bir dizine yerleştirilmesi gerekiyordu.Bir wasm veya asm.js ikili sayı sistemi dosyasını indirdiğinizden emin olmak istiyorsanız
bin/
vewasm/
dizinleri yerineemscripten-asmjs/
veemscripten-wasm32/
dizinlerini kullanın.list.js
velist.txt
yerinelist.json
kullanın. JSON liste formatı eskilerde bulunan tüm bilgileri ve daha fazlasını içerir.https://solc-bin.ethereum.org yerine https://binaries.soliditylang.org kullanın. İşleri basit tutmak için derleyiciyle ilgili neredeyse her şeyi yeni
soliditylang.org
alan adı altına taşıdık ve bu durumsolc-bin
için de geçerlidir. Yeni alan adı önerilse de, eski alan adı hala tam olarak desteklenmekte ve aynı konuma işaret etmesi garanti edilmektedir.
Uyarı
Binary dosyaları https://ethereum.github.io/solc-bin/ adresinde de mevcuttur, fakat bu sayfanın güncellenmesi 0.7.2 sürümünün yayınlanmasından hemen sonra durdurulmuştur. Aynı zamanda bu adres herhangi bir platform için yeni sürümler veya nightly yapılar almayacak ve emscripten olmayan yapılar da dahil olmak üzere yeni dizin yapısını sunmayacaktır.
Eğer hala bu adresi kullanıyorsanız, lütfen bunun yerine https://binaries.soliditylang.org
adresine kullanmaya devam edin. Bu, temeldeki barındırma hizmeti(hosting) üzerinde şeffaf bir şekilde
değişiklik yapmamıza ve kesintiyi en aza indirmemize olanak tanır. Herhangi bir kontrole sahip
olmadığımız ethereum.github.io
alan adının aksine, binaries.soliditylang.org
alan adının
uzun vadede aynı URL yapısını koruyacağını ve çalışacağını garanti ediyoruz.
Kaynağından Kurulum
Ön Koşullar - Tüm İşletim Sistemleri
Aşağıda Solidity’nin tüm geliştirmeleri için bağımlılıklar verilmiştir:
Yazılım |
Notlar |
---|---|
CMake (sürüm 3.13+) |
Platformlar arası derleme dosyası oluşturucusu. |
Boost (Windows ‘ta 1.77+ sürümü, aksi takdirde 1.65+) |
C++ kütüphaneleri. |
Kaynak kodu almak için komut satırı aracı. |
|
z3 (sürüm 4.8+, Opsiyonel) |
SMT denetleyicisi ile kullanım için. |
cvc4 (Opsiyonel) |
SMT denetleyicisi ile kullanım için. |
Not
Solidity’nin 0.5.10’dan önceki sürümleri Boost’un 1.70+ olan sürümlerine doğru bir şekilde
bağlanamayabilir. Olası bir geçici çözüm, solidity’yi yapılandırmak için cmake komutunu çalıştırmadan
önce <Boost yükleme yolu>/lib/cmake/Boost-1.70.0
adını geçici olarak yeniden adlandırmaktır.
0.5.10’dan başlayarak Boost 1.70+ kadar olan sürümlerle bağlantı kurmak(linking) manuel müdahale olmadan çalışmalıdır.
Not
Varsayılan derleme yapılandırması belirli bir Z3 sürümü (kodun en son güncellendiği zamandaki en son sürüm)
gerektirir. Z3 sürümleri arasında yapılan değişiklikler genellikle biraz farklı (ancak yine de geçerli olan)
sonuçların döndürülmesine neden olur. SMT testlerimiz bu farklılıkları hesaba katmaz ve muhtemelen yazıldıkları
sürümden farklı olan bir sürümde başarısız olacaklardır. Bu, farklı bir sürüm kullanan bir derlemenin hatalı
olduğu anlamına gelmez. CMake’e -DSTRICT_Z3_VERSION=OFF
seçeneğini iletirseniz, yukarıdaki tabloda verilen
gereksinimi karşılayan herhangi bir sürümle derleme yapabilirsiniz. Ancak bunu yaparsanız, SMT testlerini atlamak
için lütfen scripts/tests.sh
dosyasına --no-smt
seçeneğini de eklemeyi unutmayın.
Minimum Derleyici Sürümleri
Aşağıdaki C++ derleyicileri ve minimum sürümleri Solidity kod tabanını derleyebilir:
Ön Koşullar - macOS
macOS derlemeleri için, Xcode`un en son sürümünün yüklü olduğundan emin olun. Bu, Clang C++ derleyicisi, Xcode IDE ve OS X üzerinde C++ uygulamaları oluşturmak için gerekli olan diğer Apple geliştirme araçlarını içerir. Xcode’u ilk kez yüklüyorsanız veya yeni bir sürüm yüklediyseniz, komut satırı derlemeleri yapmadan önce lisansı kabul etmeniz gerekecektir:
sudo xcodebuild -license accept
OS X derleme betiğimiz, harici bağımlılıkları yüklemek için Homebrew paket yöneticisini kullanır. Eğer sıfırdan başlamak isterseniz, Homebrew <https://docs.brew.sh/FAQ#how-do-i-uninstall-homebrew>`_’i nasıl kaldıracağınız aşağıda açıklanmıştır.
Ön Koşullar - Windows
Solidity’nin Windows derlemeleri için aşağıdaki bağımlılıkları yüklemeniz gerekir:
Yazılım |
Notlar |
---|---|
C++ derleyicisi |
|
Visual Studio 2019 (Opsiyonel) |
C++ derleyicisi ve geliştirme ortamı |
Boost (sürüm 1.77+) |
C++ kütüphaneleri. |
Eğer zaten bir IDE’niz varsa ve yalnızca derleyici ve kütüphanelere ihtiyaç duyuyorsanız, Visual Studio 2019 Build Tools’u yükleyebilirsiniz.
Visual Studio 2019 hem IDE hem de gerekli derleyici ve kütüphaneleri sağlar. Dolayısıyla, bir IDE’niz yoksa ve Solidity geliştirmeyi tercih ediyorsanız, Visual Studio 2019 her şeyi kolayca kurmanız için iyi bir tercih olabilir.
Visual Studio 2019 Build Tools veya Visual Studio 2019’da yüklenmesi gereken bileşenlerin listesi aşağıda verilmiştir:
Visual Studio C++ core features
VC++ 2019 v141 toolset (x86,x64)
Windows Universal CRT SDK
Windows 8.1 SDK
C++/CLI support
Gerekli tüm harici bağımlılıkları yüklemek için kullanabileceğiniz bir yardımcı betiğimiz var:
scripts\install_deps.ps1
Bu boost
ve cmake
’i deps
alt dizinine yükleyecektir.
Depoyu Klonlamak
Kaynak kodunu klonlamak için aşağıdaki komutu çalıştırın:
git clone --recursive https://github.com/ethereum/solidity.git
cd solidity
Solidity’nin geliştirilmesine yardımcı olmak istiyorsanız, Solidity’yi çatallamalı(fork) ve kişisel çatalınızı(fork) ikinci bir remote olarak eklemelisiniz:
git remote add personal git@github.com:[username]/solidity.git
Not
Bu yöntem, örneğin böyle bir derleyici tarafından üretilen her bayt kodunda bir bayrağın ayarlanmasına yol açan bir ön sürüm derlemesiyle sonuçlanacaktır. Yayınlanmış bir Solidity derleyicisini yeniden derlemek istiyorsanız, lütfen github sürüm sayfasındaki kaynak tarball’u kullanın:
https://github.com/ethereum/solidity/releases/download/v0.X.Y/solidity_0.X.Y.tar.gz
(github tarafından sağlanan “Kaynak kodu” değil).
Komut Satırı Kullanarak Derlemek
Derlemeden önce Harici Bağımlılıkları(yukarıda bulunan) yüklediğinizden emin olun.
Solidity projesi derlemeyi yapılandırmak için CMake kullanır. Tekrarlanan derlemeleri hızlandırmak için ccache yüklemek isteyebilirsiniz. CMake bunu otomatik olarak alacaktır. Solidity’yi derlemek Linux, macOS ve diğer Unix’lerde de oldukça benzerdir:
mkdir build
cd build
cmake .. && make
veya Linux ve macOS’ta daha da kolay çalıştırabilirsiniz:
#note: this will install binaries solc and soltest at usr/local/bin
./scripts/build.sh
Uyarı
BSD derlemeleri çalışmalıdır, fakat Solidity ekibi tarafından test edilmemiştir.
Ve Windows İçin:
mkdir build
cd build
cmake -G "Visual Studio 16 2019" ..
Eğer scripts\install_deps.ps1
tarafından yüklenen boost sürümünü kullanmak isterseniz,
-DBoost_DIR="deps\boost\lib\cmake\Boost-*"
ve -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
seçeneklerini cmake
çağrısına argüman olarak iletmeniz gerekecektir.
Bunun sonucunda bu yapı dizininde solidity.sln dosyası oluşturulmalıdır. Ayrıca bu dosyaya çift tıklandığında Visual Studio nun açılması gerekir. Biz Yayın yapılandırmasını oluşturmanızı öneririz, ancak diğerleri de çalışır.
Alternatif olarak, Windows için komut satırında aşağıdaki gibi bir derleme de yapabilirsiniz:
cmake --build . --config Release
CMake Ayarları
CMake ayarlarının ne olduğunu merak ediyorsanız cmake .. -LH
komutunu çalıştırın.
SMT Çözücüleri
Solidity, SMT çözücülerine karşı derlenebilir ve sistemde bulunurlarsa default(varsayılan) olarak bunu yapacaklardır. Her çözücü bir cmake seçeneği ile devre dışı bırakılabilir.
Not: Bazı durumlarda bu, derleme hataları için potansiyel olarak geçici bir çözüm de olabilir.
Yapı klasörünün içinde bunları devre dışı bırakabilirsiniz, çünkü varsayılan olarak etkin durumdadırlar:
# disables only Z3 SMT Solver.
cmake .. -DUSE_Z3=OFF
# disables only CVC4 SMT Solver.
cmake .. -DUSE_CVC4=OFF
# disables both Z3 and CVC4
cmake .. -DUSE_CVC4=OFF -DUSE_Z3=OFF
Sürüm Dizgisi (String) Detayları
Solidity sürüm dizgisi dört bölümden oluşur:
Sürüm numarası
Sürüm öncesi etiketi (genellikle develop.YYYY.MM.DD veya night..YYYY.MM.DD olarak ayarlanır)
commit.GITHASH
biçiminde ilgili commitPlatform ve derleyici ile ilgili ayrıntıları içeren, rasgele sayıda öğeye sahip platform
Yerel değişiklikler varsa commit’in sonuna .mod
diye eklenir.
Tüm değişiklikler, Semver’in gerektirdiği şekilde, Solidity yayınlanma öncesi sürümün Semver yayınlanma öncesi sürümüne eşit olduğu ve Solidity’de bir işlem yapıldığında Semver’deki meta verilerinin de değiştiği bir şekilde gerçekleşir.
Bir yayın örneği: 0.4.8+commit.60cc1668.Emscripten.clang
.
Bir ön yayın örneği: 0.4.9-nightly.2017.1.17+commit.6ecb4aa3.Emscripten.clang
Sürümleme Hakkında Önemli Bilgi
Bir sürüm yapıldıktan sonra, yama sürüm seviyesi yükseltilir, çünkü sadece yama
seviyesindeki değişikliklerin takip edildiğini varsayıyoruz. Değişiklikler birleştirildiğinde
(merge) , SemVer’e ve değişikliğin ciddiyetine göre sürüm yükseltilmelidir. Son olarak, bir
sürüm her zaman mevcut nightly derlemenin sürümüyle, ancak prerelease
belirteci olmadan yapılır.
Örnek:
0.4.0 sürümü çıktı.
Nightly yapı şu andan itibaren 0.4.1 sürümüne sahiptir.
İşleyişi bozmayan değişikliler tanıtıldı –> sürümde değişiklik yok.
İşleyişi bozan değişiklikler tanıtıldı –> version 0.5.0’a yükseltildi.
0.5.0 sürümü çıktı.
Bu davranış version pragma ile iyi çalışır.