dl: add comments for the dl/example

pull/7398/head^2
Delyan Angelov 2020-12-18 19:41:01 +02:00
parent c32547f382
commit 05f6e8b5aa
No known key found for this signature in database
GPG Key ID: 66886C0F12D595ED
2 changed files with 11 additions and 0 deletions

View File

@ -5,6 +5,8 @@ pub const (
dl_ext = get_shared_library_extension() dl_ext = get_shared_library_extension()
) )
// get_shared_library_extension returns the platform dependent shared library extension
// i.e. .dll on windows, .so on most unixes, .dylib on macos.
pub fn get_shared_library_extension() string { pub fn get_shared_library_extension() string {
mut res := '.so' mut res := '.so'
$if macos { $if macos {

View File

@ -1,10 +1,19 @@
module library module library
// add_1 is exported with the C name `add_1`.
// It can be called by external programs, when the module is compiled
// as a shared library.
// It is exported, because the function is declared as public with `pub`.
// The exported C name is `add_1`, because of the export: tag.
// (Normally, the exported name is a V mangled version based on the module
// name followed by __, followed by the fn name, i.e. it would have been
// `library__add_1`, if not for the export: tag).
[export: 'add_1'] [export: 'add_1']
pub fn add_1(x int, y int) int { pub fn add_1(x int, y int) int {
return my_private_function(x + y) return my_private_function(x + y)
} }
// this function is not exported and will not be visible to external programs.
fn my_private_function(x int) int { fn my_private_function(x int) int {
return 1 + x return 1 + x
} }