No registered users in community xowiki
in last 10 minutes
in last 10 minutes
Re: [Xotcl] instprocs in C
From: Gustaf Neumann <neumann_at_wu-wien.ac.at>
Date: Thu, 16 Feb 2006 22:24:39 +0100
Aamer Akhter schrieb:
>Critcl allows us to easily create tcl callable C procs. Is there
>something similar avaliable for xotcl?
>
>Is there any C api documentation?
>
>
There is as well a simpler way, defining e.g. a cinstproc similar to the
cproc:
===============================================================
lappend auto_path .
package require critcl
Class instproc cinstproc {name arglist returntype body} {
critcl::cproc $name $arglist $returntype $body
catch {$name} ;# there must be a better way forcing the compile!
rename $name ::xotcl::classes[self]::$name
}
===============================================================
now one can define a Class and a cinstproc and use it.
===============================================================
Class C
C cinstproc triple {int i} int {
return i * 3; /* this is C code */
}
C c1
puts "three times 123 is [c1 triple 123]"
===============================================================
this might be already sufficient for you. Two things should be done
more beautiful:
a) the compilation in criticl seems to be forced through unknown.
my approach with the catch is rather crude. but i am sure, there must
be an option.
b) It would be nice to generate the command in the right namespace.
i found as well no nice approach to do this.
Aamer, if you have some experience here, feedback would be welcome,
-gustaf
>
>
>--
>Aamer Akhter / aakhter_at_gmail.com
>
>_______________________________________________
>Xotcl mailing list
>Xotcl_at_alice.wu-wien.ac.at
>http://alice.wu-wien.ac.at/mailman/listinfo/xotcl
>
>
Date: Thu, 16 Feb 2006 22:24:39 +0100
Aamer Akhter schrieb:
>Critcl allows us to easily create tcl callable C procs. Is there
>something similar avaliable for xotcl?
>
>Is there any C api documentation?
>
>
There is as well a simpler way, defining e.g. a cinstproc similar to the
cproc:
===============================================================
lappend auto_path .
package require critcl
Class instproc cinstproc {name arglist returntype body} {
critcl::cproc $name $arglist $returntype $body
catch {$name} ;# there must be a better way forcing the compile!
rename $name ::xotcl::classes[self]::$name
}
===============================================================
now one can define a Class and a cinstproc and use it.
===============================================================
Class C
C cinstproc triple {int i} int {
return i * 3; /* this is C code */
}
C c1
puts "three times 123 is [c1 triple 123]"
===============================================================
this might be already sufficient for you. Two things should be done
more beautiful:
a) the compilation in criticl seems to be forced through unknown.
my approach with the catch is rather crude. but i am sure, there must
be an option.
b) It would be nice to generate the command in the right namespace.
i found as well no nice approach to do this.
Aamer, if you have some experience here, feedback would be welcome,
-gustaf
>
>
>--
>Aamer Akhter / aakhter_at_gmail.com
>
>_______________________________________________
>Xotcl mailing list
>Xotcl_at_alice.wu-wien.ac.at
>http://alice.wu-wien.ac.at/mailman/listinfo/xotcl
>
>