Dispatcher fungsi Solidity adalah pohon di mana:
- Node internal melakukan pemisahan biner.
- Simpul daun berisi hingga 4 pemilih fungsi, diuji secara linier.
Protip 1: bytecode fungsi 'fallback' dihasilkan dua kali dalam bytecode. Untuk mengurangi ukuran bytecode, bungkus logika penggantian dalam fungsi internal.
Protip 2: jika Anda memiliki fungsi yang sangat sering digunakan, buat alias dengan pemilih fungsi '0x00000000', yang menjadikannya yang paling murah untuk dicari.
- Salah satu tantangan dalam mendesain perpustakaan adalah algo apa yang harus digunakan. Cari tahu mengapa peta C++ adalah pohon, unordered_map baru datang 15 tahun kemudian.
- Perpustakaan dengan generik sangat bergantung pada kemampuan kompiler untuk abstrak tanpa biaya dengan dorongan minimal. Di Solady, terkadang kita melakukan hal-hal yang sangat menjijikkan untuk mendorong kompiler. Mengapa menulis Rust dan C++ terasa enak karena kompiler cukup pintar untuk tidak membutuhkan semua dorongan ini. Jadi inti Solidity akan membutuhkan pengoptimal yang sangat bagus untuk melampaui kebaikan generik gula sintaks.
- Berhati-hati pada kemungkinan situasi Python 2 vs 3. Berharap pembelajaran dalam inti dapat dan akan menetes kembali ke klasik.
- Di dunia Solidity klasik dan inti, Solady berencana untuk mempertahankan dan mengembangkan keduanya. Bahasa dengan perpustakaan standar yang gila, masih memiliki perpustakaan pihak ketiga (misalnya Eigen), untuk pengetahuan khusus domain.
Menyajikan 'The Road to Core Solidity', serangkaian posting blog di mana kami akan berbagi ke mana arah kami dengan bahasa tersebut.
Mari kita lihat ikhtisarnya!