Clone
Stefan Sobernig <stefan.sobernig@wu.ac.at>
committed
on 28 Mar 19
Complete caching by testing for kits
2.3 + 12 more
TODO (+16 -2)
3066 3066
3067 3067 - library/mongodb:
3068 3068    * updated to current interface in git HEAD
3069 3069
3070 3070 - nx.tcl: added switch "incremental" to "variable" and "attribute"
3071 3071 - added regression test
3072 3072
3073 3073 - nsf.c: improve performance (branch prediction) by using
3074 3074   likely/unlikely macros for gcc
3075 3075
3076 3076 - nx.tcl:
3077 3077   * added support for "variable" on the class-level
3078 3078   * added flag "noconfig" to object parameter options
3079 3079   * parameters with "noconfig" are omitted in
3080 3080     "info parameter syntax" and "info parameter list"
3081 3081   * used switches for all configurable boolean options for
3082 3082     "variable" and "attribute"
3083 3083   * regularized the interface of "variable" and "attribute"
3084 3084   * extended regression test
3085 3085
3086    - FIXED: The following leads to a crash in the ExitHandler:
3087     
  3086  - fixed a possible crash in the ExitHandler:
3088 3087    Object create o {exit -1}
3089 3088
  3089 - nsf.c:
  3090   * added flag "-array" to nsf::var::set such we have
  3091     now "::nsf::var::set ?-array? object varName ?value?"
  3092     With "-array", nsf::var::set behaves like "array get"
  3093     or "array set" (on instance variables)
  3094   * use "::nsf::var::set -array" in serializer symmetrically
  3095     to scalar case
  3096   * extended regression test
  3097
3090 3098 TODO:
3091 3099  - add "delete variable" analogous to "delete attribute"
3092 3100  - interface of "variable" and "attribute":
3093 3101    * add switch -array for "variable"?
3094 3102    * should we switch from "-class" to "-slotclass"?
3095 3103    * should we change interface for default value in attribute?
3096 3104      probably not, same interface is used in methodparameters as well
3097 3105
3098 3106  - Should we leave "variable" and "attribute" as it is, or
3099 3107    switch the names to something better? Some options:
3100 3108
3101 3109  - [obj/cls info method handle "FOO foo"] does neither return a proper
3102 3110    submethod handle nor any valid handle ... needs a fix.
3103 3111
3104 3112  - NsfObjWrongArgs() & friends is not aware of submethods. Error
3105 3113    messages print with the leaf method names only, e.g.: "anObj method
3106 3114    ..." instead of " anObj info method ..." etc.
3107 3115
3108 3116  - variable and incremental, test for user-defined types
3109 3117  - should we change interface for default value in attribute?
3110 3118    probably not, same interface is used in methodparameters as well
3111 3119  - Should we leave "variable" and "attribute" as it ist?
3112 3120    options:
3113 3121      (a) leave it as it is
3114 3122      (b) use "property" instead of "attribute"
3115 3123          ("a property is a variable with accessors"),
3116 3124          some tribute to beans terminology
3117 3125      (c) use "parameter" instead of "attribute",
3118 3126          since providing accessors means make the
3119 3127          variable an object parameter
3120 3128      (d) use "attribute" instead of "variable"
3121 3129          Variable is the tcl term, attribute is the UML term
3122 3130      (e) others?
3123 3131  - call user defined setter in object parameters?
3124 3132
3125   #::nsf::var::exists ?-array? object varName
3126   #::nsf::var::import object ?arg ...?
3127   #::nsf::var::set ?-array? object varName ?value?
3128   #::nsf::var::unset ?-array? object varName
3129  
3130 3133 - Revise callstack introspection/intercession, i.e., [current
3131 3134   activelevel] vs. [current callinglevel] vs. uplevel()/upvar():
3132 3135  
3133 3136   Currently, there are some inconsistencies when comparing activelevel
3134 3137   and callinglevel:
3135 3138  
3136 3139   1. Both skip INACTIVE frames: This has implications for the notion
3137 3140   of an "activelevel" introspection as such (especially when comparing
3138 3141   with their semantics in XOTcl 1.*); also, we cannot access INACTIVE
3139 3142   (mixin, filter) frames anymore using uplevel|upvar (whether this is
3140 3143   needed is another issue, but at least, this breaks XOTcl 1.*
3141 3144   semantics, as callinglevel resolved to such INACTIVE frame contexts).
3142 3145   2. The uplevel()/upvar() methods default to uplevel+callinglevel
3143 3146   semantics, so they borrow their issues from 1)
3144 3147   3. For now, we do not support callstack-transparent upleveling into
3145 3148   non-NSF frames, such as Tcl namespace + proc (apply) frames.
3146 3149
3147 3150   Approaches:
3148 3151   a) Revise the current [current] subcmd scheme: callinglevel
3149 3152   vs. activelevel vs. ...?