Candid: the interface description language of the Internet Computer smart contracts - 陈研第三届中国Rust开发者大会 Candid: the interface description language of the Internet Computer smart contracts Yan Chen DFINITY Foundation Rust China Conf 2023 −− How DFINITY uses procedure macro to extend Rust Send (42 : nat) Decode as () Decode as (record { name : text }) Candid: a strongly typed interface description language • Primitive types • nat, int, nat{8-64}, int{8-64}, float{32,64}, bool implement type reflection in Rust • Export interface description • How to simulate monomorphization and share states across procedure macro • Import interface description • How to control generated code0 码力 | 35 页 | 1.35 MB | 1 年前3
Dynamically Loaded Libraries Outside the StandardLoadModule directive • C extension for CPython (.pyd on Windows) – import module_name • Java Native Interface (JNI) – System.loadLibrary(name) Customized file formats for dynamic loading9 CppCon 2021 | #include | • Loadable module being used in a different language • Accessed through a Foreign Function Interface (FFI) How foreign is foreign?40 CppCon 2021 | from ctypes import CDLL, c_double x = (c_double programmatically get extra functionality?47 CppCon 2021 | • Generic Graphics Library (GEGL) from GIMP • Adding-removing functionalities by dragging & dropping files Case: GEGL48 CppCon 2021 | PLUGINAPP_API0 码力 | 100 页 | 3.98 MB | 6 月前3
Linux Docker Messsearch and find files Fontutils: to convert fonts from one format to another or make new fonts The Gimp: GNU Image Manipulation Program Gnome: the GNU desktop environment Emacs: a very powerful editor Ghostscript0 码力 | 77 页 | 7.40 MB | 1 年前3
Computer Programming with the Nim Programming Language
Introduction What is a computer? Analogue and digital What is an operating system? What is a user interface? What is computer programming? What is a computer program? What is an algorithm? What is a programming Minimum spanning tree Part V: External Packages Parsing expression grammars Cligen command line interface generator Part VI: Advanced Nim Macros and meta-programming Process execution Code execution support, the use of Nim package managers such as Nimble and Nimph, the use of the foreign function interface (FFI) to create bindings to C libraries, and internal compiler details like the various memory0 码力 | 865 页 | 7.45 MB | 1 年前3
Computer Programming with the Nim Programming Language
Introduction What is a computer? Analogue and digital What is an operating system? What is a user interface? What is computer programming? What is a computer program? What is an algorithm? What is a programming Minimum spanning tree Part V: External Packages Parsing expression grammars Cligen command line interface generator Part VI: Advanced Nim Macros and meta-programming Process execution Code execution support, the use of Nim package managers such as Nimble and Nimph, the use of the foreign function interface (FFI) to create bindings to C libraries, and internal compiler details like the various memory0 码力 | 784 页 | 2.13 MB | 1 年前3
Computer Programming with the Nim Programming Language. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 What is a user interface? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 Cligen command line interface generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . support, the use of Nim package managers such as Nimble and Nimph, the use of the foreign function interface (FFI) to create bindings to C libraries, and internal compiler details like the various memory0 码力 | 512 页 | 3.54 MB | 1 年前3
Computer Programming with the Nim Programming Language. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 What is a user interface? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 Cligen command line interface generator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . support, the use of Nim pack age managers such as Nimble and Nimph, the use of the foreign function interface (FFI) to create bindings to C libraries, and internal compiler details like the various memory0 码力 | 508 页 | 3.50 MB | 1 年前3
Computer Programming with the Nim Programming Language. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 What is a user interface? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 Cligen command line interface generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . support, the use of Nim package managers such as Nimble and Nimph, the use of the foreign function interface (FFI) to create bindings to C libraries, and internal compiler details like the various memory0 码力 | 512 页 | 3.53 MB | 1 年前3
Computer Programming with the Nim Programming Language. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 What is a user interface? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 Cligen command line interface generator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . support, the use of Nim pack age managers such as Nimble and Nimph, the use of the foreign function interface (FFI) to create bindings to C libraries, and internal compiler details like the various memory0 码力 | 508 页 | 3.54 MB | 1 年前3
Computer Programming with the Nim Programming Language. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 What is a user interface? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 Cligen command line interface generator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . support, the use of Nim pack age managers such as Nimble and Nimph, the use of the foreign function interface (FFI) to create bindings to C libraries, and internal compiler details like the various memory0 码力 | 508 页 | 3.50 MB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













