Use conformant API to iterate over environments#89
Use conformant API to iterate over environments#89lionel- wants to merge 3 commits intobugfix/env-iterationfrom
Conversation
|
Last commits also refactor construction of inspector node with a shared ctor. Introduction or formalisation of the notions of:
|
| #' | ||
| #' * "character" to show underlying entries in the global string pool. | ||
| #' * "environment" to show the underlying hashtables. | ||
| #' * "environment" to show binding components without any side effect (e.g. promise). |
There was a problem hiding this comment.
| #' * "environment" to show binding components without any side effect (e.g. promise). | |
| #' * "environment" to show binding components without any side effects (e.g. promises or active bindings). |
| "] ", | ||
| "<", | ||
| crayon::cyan(type), | ||
| length, |
There was a problem hiding this comment.
Just checking, but no length in the placeholder branch either?
| case R_ENV_BINDING_TYPE_forced: | ||
| out.push_back(obj_addr_(r_env_binding_forced_value(x, sym))); |
There was a problem hiding this comment.
I think it makes sense, but you've somewhat arbitrarily decided to pick the value over the expr for forced promises right?
| case EXTPTRSXP: return "EXTPTRSXP"; | ||
| case WEAKREFSXP: return "WEAKREFSXP"; | ||
| case RAWSXP: return "RAWSXP"; | ||
| case S4SXP: return "S4SXP"; |
There was a problem hiding this comment.
I'm uncertain of whether we should call this S4SXP or the newer OBJSXP which was added for R7
https://github.com/wch/r-source/blob/e996f331169fa4b255dd720e6778fe937230f0a2/src/include/Rinternals.h#L137-L138
| forced [14] <PROMSXP> | ||
| _value [14] <REALSXP[1]> () | ||
| _code [15] <LANGSXP> () |
There was a problem hiding this comment.
What do 14 and 15 mean? Is this right? Are all 3 supposed to be 14?
Branched from #88.
Follows same approach as #88.
Unfortunately this means we are less precise in terms of object properties (references etc) because we can no longer get our hands on the intermediate nodes such as promises.