Ticket #1561 (closed deprecation: done)

Opened 4 years ago

Last modified 3 years ago

Auto-vivification of nested aggregates is deprecated.

Reported by: bacek Owned by: Yuki`N
Priority: normal Milestone: 2.11
Component: core Version: branch
Severity: medium Keywords: gci
Cc: Language:
Patch status: Platform:

Description

E.g.

$P0 = new ['Hash']
$S0 = $P0['foo';'bar';'baz']

will not auto-vivify nested Hashes and return NULL early.

Change History

Changed 4 years ago by gerd

  • milestone changed from 2.4 to 2.5

Changed 4 years ago by jkeenan

  • component changed from none to core

We're approaching 2.9. Can we get an update on the status of this deprecation?

Thank you very much.

kid51

Changed 4 years ago by whiteknight

  • owner set to whiteknight
  • status changed from new to assigned

As far as I can see, this is already done. I did a quick skim through all the array types and through Hash, and I didn't see any types that were autovivifying nested aggregates. I think we can close this ticket, unless there is a type that I am missing.

Changed 4 years ago by whiteknight

Actually, my quick analysis was wrong. Hashes were still autovivifying, and it looks like RPA is too. I just fixed Hash (no tests broke), and will look at RPA later.

Changed 4 years ago by whiteknight

  • status changed from assigned to new

Changed 4 years ago by whiteknight

I've turned this into a GCI task.

Changed 4 years ago by Yuki`N

  • owner changed from whiteknight to Yuki`N
  • status changed from new to assigned

I'm going to take care of this; traced the autovivification behavior back to FixedPMCArray and will write up tests soon.

Changed 4 years ago by Yuki`N

  • keywords gci added
  • version changed from 2.2.0 to branch
  • milestone changed from 2.5 to 2.11

This is fixed by  a commit in my fork. Added a test to FixedPMCArray to prove autovivification is dead. Hopefully then we can set this ticket to rest.

Changed 4 years ago by Yuki`N

Requested my fork be pulled  here.

Changed 3 years ago by bacek

  • status changed from assigned to closed
  • resolution set to done

Auto-vivification was removed. Closing ticket.

Note: See TracTickets for help on using tickets.