| |
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. ...? |