Overview
Comment: | Added a test using "curl" as a baseline for linking in external functions and libraries |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
2bc3e54e9e9b17bac2f8af52889267d0 |
User & Date: | rkeene on 2014-06-22 23:40:15 |
Other Links: | manifest | tags |
Context
2014-06-23
| ||
00:54 | Added Tcl_WideInt support check-in: 60d4d528a0 user: rkeene tags: trunk | |
2014-06-22
| ||
23:40 | Added a test using "curl" as a baseline for linking in external functions and libraries check-in: 2bc3e54e9e user: rkeene tags: trunk | |
23:23 | Fixed issues with several subcommands check-in: 05cac27666 user: rkeene tags: trunk | |
Changes
Modified tcc4tcl.tcl from [f5126bcd41] to [64ae92f63e].
︙ | ︙ | |||
83 84 85 86 87 88 89 | lappend state(add_lib) {*}$args } proc _cproc {handle name adefs rtype {body "#"}} { upvar #0 $handle state | | | 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | lappend state(add_lib) {*}$args } proc _cproc {handle name adefs rtype {body "#"}} { upvar #0 $handle state set wrap [uplevel 1 [list ::tcc4tcl::wrap $name $adefs $rtype $body]] set wrapped [lindex $wrap 0] set wrapper [lindex $wrap 1] set tclname [lindex $wrap 2] append state(code) $wrapped "\n" append state(code) $wrapper "\n" |
︙ | ︙ | |||
321 322 323 324 325 326 327 | # Create wrapped function if {$body ne "#"} { append code "static $rtype2 ${cname}([join $cargs {, }]) \{\n" append code $body append code "\}\n" } else { | | | 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 | # Create wrapped function if {$body ne "#"} { append code "static $rtype2 ${cname}([join $cargs {, }]) \{\n" append code $body append code "\}\n" } else { append code "#define $cname [namespace tail $name]" "\n" } # Create wrapper function ## Supported input types ## Tcl_Interp* ## int ## long |
︙ | ︙ |
Modified test.tcl from [271d570bc1] to [cd217a385a].
︙ | ︙ | |||
65 66 67 68 69 70 71 | # New API set handle [tcc4tcl::new] $handle cproc test5 {int i} int { return(i + 42); } if {[$handle code] == ""} { error "[list $handle code] did not give code output" } $handle cproc test6 {int i} int { return(i + 42); } | < > > > > > > > > > > > > | 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | # New API set handle [tcc4tcl::new] $handle cproc test5 {int i} int { return(i + 42); } if {[$handle code] == ""} { error "[list $handle code] did not give code output" } $handle cproc test6 {int i} int { return(i + 42); } $handle go puts [test5 1] puts [test6 1] set handle [tcc4tcl::new] $handle ccode {const char *curl_version(void);} $handle cproc curl_version {} char* $handle add_library_path /usr/lib64 $handle add_library_path /usr/lib $handle add_library curl $handle go puts [curl_version] set handle [tcc4tcl::new] $handle delete |