gentclAPI.tcl

Clone Tools
  • last updated 4 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- gentclApi.tcl: added optimizer rule for single argument of type tclobj - improved speed of CompiledLocalsLookup slightly

  1. … 3 more files in changeset.
- added a few more small optimization. - code-generator: don't call argument parser, when no arguments are specified

  1. … 6 more files in changeset.
- removed bug-alert from nx.tcl (wrong false-positives for compiled locals in slots) - added a few small optimization. nsf appears to run on the shootout benchmark the same speed like a year ago (which much less functionality)

  1. … 5 more files in changeset.
- added functionality to show enumerated values in "info parametersyntax"

  1. … 5 more files in changeset.
- BRO continues: - overworked function prototype definitions in nsf.c - renamed some static definitions on the way to follow Tcl conventions (start with a capital character)

  1. … 7 more files in changeset.
- BRO continues: - changed all XOTCL_ into NSF_ - changed all XOTCLINLINE into NSF_INLINE - changed all XOTCLOBJ_TRACE into NSFOBJ_TRACE - changed all XOTcl_ into Nsf_ - changed all XOTcl([A-Z]) into Nsf\1 - changed all xotcl into nsf

- changed changeClass into ChangeClass

- changed XOTclpGetObject into GetObjectFromString

- changed XOTclpGetClass into GetClassFromString

- changed callDestroyMethod into DispatchDestroyMethod

  1. … 34 more files in changeset.
- new flag for configure: "nx::configure checkarguments on|off" - turn off argument-checking for non-converters, when checking is off (per default, it is on) - extended regression test for optional argument checking

  1. … 8 more files in changeset.
- removed "infoObjectMethod" and "infoClassMethod" - replaced ::nsf::cmd::ClassInfo2 by ::nsf::cmd::ClassInfo - replaced ::nsf::cmd::ObjectInfo2 by ::nsf::cmd::ObjectInfo

  1. … 7 more files in changeset.
- started new interface bundles, objectInfoMethod and classInfoMethod for using new infrastructure - added object info methods filterguard, filtermethods, vars to objectInfoMethod - added class info methods filterguard, filtermethods to classInfoMethod - built a temporary solution for dispatcher "filter", since forward mangles args - nx: we have now "obj info filter guard name" instead of "obj info filter -guard name" - nx: we have now "obj info filter methods ...." instead of "obj info filter ...."

  1. … 7 more files in changeset.
- made the "next scripting laguage" a own, loadable tcl package (currently named nx, name is subject of change) - predefined.tcl is now pretty minimal.

  1. … 32 more files in changeset.
- changed "require next" to "... nx" - changed "require next::test" to "... nx::test" - changed "require next::doc" to "... nx::doc"

  1. … 33 more files in changeset.
- namespace changes: mostly due to marketing reasons, the naming of the top-level namespace changed from "xotcl2" to "next". reasons: xotcl is hard to pronounce for beginners, sounds like "exotic" (but who wants to program in an exotic language) has a certain stigma of strange namings (e.g. "instproc"), is seen as a precursor of tcloo, the top-level namespace ::xotcl2:: is not very nice either, the separation of framework and language is not clear.

We have now:

::next (the new object system, former ::xotcl2)

::next::core (framework, primitives)

::xotcl (former xotcl1)

- "::xotcl::use" no longer needed, use Tcl standard mechanisms instead

(e.g. "package req next"; "package req XOTcl", "namespace import ::next*")

  1. … 48 more files in changeset.
- add check for optional match arguments in tcl stub generator - fix potential memory leaks all "definitely losts" from valgrind (except 24 bytes from Tcl_PkgRequire) gone

  1. … 3 more files in changeset.
- use "CONST char *" in generated interface and below

  1. … 5 more files in changeset.
- made error messages for failed conversions more consistent (note that tcl does not provide the parameter name in the error message, but user-defined converters do)

  1. … 13 more files in changeset.
- added argument for converter to return the converted tcl_obj, which should be passed on (currently only used for viaCmd); this way, we could remove the kludge of querying the converter after the conversion for special handling.

  1. … 3 more files in changeset.
- making methodDefinitions NULL terminated - passing optional arg to user-defined argument converter - refuse to redefine type converters for a single parameter - adding regression test for parameters

  1. … 9 more files in changeset.
- added ::xotcl::forward as cmd instead of method now, all method-defining-methods (alias, method, forward, setter) are defined as cmds (this should make life of serializer easier)

  1. … 6 more files in changeset.
- use INT2PTR and PTR2INT macros in generated stubs

  1. … 1 more file in changeset.
- Methods defined via "method" are now per default "protected" - new switch "-public" for "method" to define public methods - new flag for "info callable": -callprotection", values "all|protected|public" - new flag for "info methods": -callprotection", values "all|protected|public" - converted part of regression test

  1. … 9 more files in changeset.
- gentTclAPI: create every converter only once.

- new method named "setter" * <Object> setter <varName> * <|Class> setter ?-per-object? <varName>

- new info method named "method"

* <Object|Class> info method ?-per-object? definition|name|type <methodName>"

* "info method definition" returns full cmds

(e.g. for scripted methods parameters, body, pre- and postconditions)

* fixed proper list handling in AssertionList()

* added tests for "info method" (infomethodtest.xotcl)

- changed method "alias" in xotcl2:

* removed the long list of arguments

".... -cmd -source-object -source-method -source-per-object:switch"

* determine method cmdname via "... info method name <methodName>"

and pass it to alias

- method "parametercmd" and "instparametercmd" are gone (for xotcl2)

we have now

"<Object> setter <name>"

"<Class> setter ?-per-object? <name>"

- added emulation for old "parametercmd" and "instparametercmd" in xotcl1

- method "instforward" is gone (for xotcl2),

we have now

"<Object> forward <name> ... "

"<Class> forward ?-per-object? <name> ... "

- added emulation for old "forward" and "instforward" in xotcl1

- "info body" gone, added emulation in xotcl1

- "info instbody" gone, added emulation in xotcl1

- "info commands" gone, added emulation in xotcl1

- "info instcommands" gone, added emulation in xotcl1

- "info parametercmd" gone, added emulation in xotcl1

- "info instparametercmd" gone, added emulation in xotcl1

  1. … 15 more files in changeset.
- extended genrclAPI to allow enumeration type for nonpos args - changed api of "info methods": added nonpos arg "methodType" possible values: "all", "scripted", "compiled", "alias", "forwarder", "object", "setter" - added compatible scripted "info methods" interface for xotcl1 - "info methods -methodtype alias" not tested and not working

  1. … 6 more files in changeset.
- allow to distinguish for enumeration values between missing value and given first value (numerically 0) - generated stub for selfCmd

  1. … 4 more files in changeset.
- implementing "method" instead of "proc" and "instproc" on the C level

  1. … 6 more files in changeset.
- first implementation of application specific checkers - changed XOTclDispatchCmd to parameter interface (testing and adjustment outstanding) - reactivated XOTclOSetMethod, since one test in regression test caused troubles for still unknown reasons

  1. … 8 more files in changeset.
- some cleanup of visibility of symbols

  1. … 4 more files in changeset.
- shortend some function/type names (e.g. use everywhere "Param" instead of "Parameter") - delayed parseContextRelease() in InvokeProc() until end if proc - process all argumens of proc/instpoc; before, this happend only, when nonpos parameters were used; - use parameter definitions only when they provide a value-add - finish freeing of parameter definitions

  1. … 7 more files in changeset.
- passing obj to ArgumentParse() to get the object-context and to be able to produce nicer error messages - pass pushFrame to ProcessMethodArguments() to signal, whether stack frame was already pushed or not - deactivated check for {$} in objectparameter (for activating substdefault) - fixed class converter, which was to liberal - extended objparametertest for substdefault and some types

  1. … 5 more files in changeset.
- renamed parseObjv() -> ArgumentParse() - renamed ifdSize -> nrParameters - argDefinitionsFree() -> ParameterDefinitionsFree() - renamed argDefinitionsNew() -> ParameterDefinitionsNew() - renamed struct XOTclParsedInterfaceDefinition -> XOTclParsedParameterDefinition - renamed ParsedInterfaceDefinitionFree() -> ParsedParameterDefinitionFree() - renamed struct argDefinition -> parameterDefinition - renamed struct XOTclNonposArgs ->XOTclParamDefs - renamed GeneratIfd() -> ParsedParameterDefinitionGet() - renamed parseNonposArgs() -> ParseParameterDefinitions() - renamed parseArgDefinition() -> ParseParamDefintion()

- new function ArgumentDefaults()

- new functions ArgumentError()

- ArgumentParse() handles now defaults as well (could be optimized)

- made varargs passing explicit

  1. … 4 more files in changeset.