Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Comment: | Modified the names of several methods to make it clearer
what is going on in the notation
generate-cmethod -> generate-tcl_c_api cmethod -> c_tcloomethod c_tclproc_raw > c_tclcmd Aliases for cmethod and c_tcl_proc raw have been kept to allow old practcl build to continue to work |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | practcl |
Files: | files | file ages | folders |
SHA1: |
ee4fe788b9a40da6cffa7bac0c3df79d |
User & Date: | hypnotoad 2017-06-23 11:13:19 |
2017-07-16
| ||
10:54 | Pulling fixes from trunk check-in: 4d56606632 user: hypnotoad tags: practcl | |
2017-06-23
| ||
11:13 |
Modified the names of several methods to make it clearer
what is going on in the notation
generate-cmethod -> generate-tcl_c_api cmethod -> c_tcloomethod c_tclproc_raw > c_tclcmd Aliases for cmethod and c_tcl_proc raw have been kept to allow old practcl build to continue to work check-in: ee4fe788b9 user: hypnotoad tags: practcl | |
2017-06-03
| ||
11:54 |
More enhancements for debugging builds
Added names to practcl managed TclObjTypes Each sub-project gets the name of the Tcl interpreter that called practcl as a --with-tclsh option Added "clean" mechanisms for practcl managed builds Created a seperate code checkout sandbox for Tcl and Tk when So that the switch between dubbing and normal builds is seemless Added an additional pattern match for static compiled Tcl shells on Windows under MSYS/MinGW check-in: 7ca9d650cb user: hypnotoad tags: practcl | |
Changes to practcl.tcl.
︙ | ︙ | |||
2573 2574 2575 2576 2577 2578 2579 | foreach {method} { generate-cheader generate-private-typedef generate-private-structure generate-cstruct generate-constant generate-cfunct | | | 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 | foreach {method} { generate-cheader generate-private-typedef generate-private-structure generate-cstruct generate-constant generate-cfunct generate-tcl_c_api } { set dat [my $method] if {[string length [string trim $dat]]} { ::practcl::cputs result "/* BEGIN $method [my define get filename] */" ::practcl::cputs result $dat ::practcl::cputs result "/* END $method [my define get filename] */" } |
︙ | ︙ | |||
2940 2941 2942 2943 2944 2945 2946 | return $result } ### # Generate code that provides implements Tcl API # calls ### | | | 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 | return $result } ### # Generate code that provides implements Tcl API # calls ### method generate-tcl_c_api {} { ::practcl::debug [list [self] [self method] [self class] -- [my define get filename] [info object class [self]]] my variable code methods tclprocs set result {} if {[info exists code(method)]} { ::practcl::cputs result $code(method) } |
︙ | ︙ | |||
3025 3026 3027 3028 3029 3030 3031 | } } ::practcl::cputs result " return TCL_OK\;\n\}\n" } foreach obj [my link list dynamic] { # Exclude products that will generate their own C files if {[$obj define get output_c] ne {}} continue | | | 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 | } } ::practcl::cputs result " return TCL_OK\;\n\}\n" } foreach obj [my link list dynamic] { # Exclude products that will generate their own C files if {[$obj define get output_c] ne {}} continue ::practcl::cputs result [$obj generate-tcl_c_api] } return $result } method generate-cinit-external {} { if {[my define get initfunc] eq {}} { return "/* [my define get filename] declared not initfunc */" |
︙ | ︙ | |||
3162 3163 3164 3165 3166 3167 3168 | puts "WARNING: NON CONFORMING FUNCTION DEFINITION: $headers $body" ::practcl::cputs code(header) "$header\;" # Could not parse that block as a function # append it verbatim to our c_implementation ::practcl::cputs code(funct) "$header [list $body]" } | > > > > | > > > > > > > > > > > > > > > | 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 | puts "WARNING: NON CONFORMING FUNCTION DEFINITION: $headers $body" ::practcl::cputs code(header) "$header\;" # Could not parse that block as a function # append it verbatim to our c_implementation ::practcl::cputs code(funct) "$header [list $body]" } method c_tcloomethod {name body {arginfo {}}} { my variable methods code foreach {f v} $arginfo { dict set methods $name $f $v } dict set methods $name body "Tcl_Object thisObject = Tcl_ObjectContextObject(objectContext); /* The current connection object */ $body" } # Alias to classic name method cmethod {name body {arginfo {}}} { my variable methods code foreach {f v} $arginfo { dict set methods $name $f $v } dict set methods $name body "Tcl_Object thisObject = Tcl_ObjectContextObject(objectContext); /* The current connection object */ $body" } method c_tclproc_nspace nspace { my variable code if {![info exists code(nspace)]} { set code(nspace) {} } if {$nspace ni $code(nspace)} { lappend code(nspace) $nspace } } method c_tclcmd {name body {arginfo {}}} { my variable tclprocs code foreach {f v} $arginfo { dict set tclprocs $name $f $v } dict set tclprocs $name body $body } # Alias to classic name method c_tclproc_raw {name body {arginfo {}}} { my variable tclprocs code foreach {f v} $arginfo { dict set tclprocs $name $f $v } dict set tclprocs $name body $body |
︙ | ︙ |