-
-
Notifications
You must be signed in to change notification settings - Fork 416
Conversation
I still have the same objections I raised in #668. This doesn't answer any of them. I strongly recommend rolling back the AA druntime implementation until these issues are solved. The current state of associative arrays has been caused by half-implementing a transition to druntime. To prevent the same mistake, none of this should be merged until a 100% complete replacement has been constructed. |
@yebblies That's what I need to integrate this pull:
At the first stage
|
I understand your plan, I just think it needs to be completely implemented and tested before any of the parts start getting merged into the compiler. I'm especially concerned with the impact this will have on ctfe, in terms of introducing regressions. eg The signature Also, will all error messages show the correct V[K] type? |
I'm in some agreement. UFCs seem like a more natural route to go down for CTFE-able AAs. |
add aa.d allow const and immutable aa add aaLiteral and aaInit purity fix
I don't replace AA-front side now. We can remove object.AssociativeArray, create UFCS methods and work with my implementation through this UFCS methods and
User will not see my type (in this stage), like he doesn't see
Yes, I've full reworked dmd part and now it passes all dmd, druntime and phobos tests with old implementation. I've replace initializer in
Like other AA-to-compiler interface. BTW, I don't do any casts, I do toElem and toDt for call expressions of aaInit/aaLiteral at the last stage. |
I'm having quite a lot of trouble to get this working. |
@MartinNowak, What's the status on this? It is identified as a 2.066 candidate but to date has failed all auto-tests. |
Ping @IgorStepanov |
Dunno why this was milestoned. |
@AndrewEdwards Hello. I was busy last half of year, sorry. Now, I'm fixing those patches (this PR and dmd changes) to work with new dmd/druntime (without object.AssociativeArray). I hope, I'll introduce new pack of patches at this/next week. |
@IgorStepanov, thanks for the swift response. |
This/next week is still too late for 2.066. :) I still don't understand the reasoning for this when (thanks to @yebblies) AssociativeArray and all its horrible compiler bugs were removed. |
Yes. Anyway, big changes should't be merged shortly before release.
The first stage is not intended to give a special status for internal.AssociativeArray. First stage is a reimplementation of runtime AA using modern D style. However, this stage will give us some advantages:
After that (at second stage), we can try to provide AssociativeArray behaivour, similar to D AA. This work need some discussions and language changes. |
I've closed this. See #934 |
This PR is the next step to creating AA as full library type.
Next step is replacing object.AssociativeArray with this AssociativeArray.
After that we should provide our AssociativeArray all functions which have builtin AA. (There are some language changes needed).
At the end of this way we'll able to replace V[K] type with AssociativeArray!(K, V) automatically during semantic and remove most of special AA cases/hacks from compiler.