Ticket #6622 (closed defect: fixed)

Opened 13 months ago

Last modified 13 months ago

[with patch, positive review] substitution of a dict into a symbolic expression modifies the dict

Reported by: was Owned by: burcin
Priority: major Milestone: sage-4.1.1
Component: calculus Keywords:
Cc: Author(s): Bill Cauchois
Report Upstream: Reviewer(s): Burcin Erocal
Merged in: Sage 4.1.1.rc1 Work issues:

Description (last modified by mvngu) (diff)

sage: var('v t')
sage: f = v*t
sage: D = {v: 2}
sage: f(D, t=3)
6
sage: D
{v: 2, t: 3}

After the call above, D should *not* be changed. This issue was raised at this  sage-support thread.

Attachments

trac_6622.patch Download (1.3 KB) - added by wcauchois 13 months ago.
based on sage 4.1.1.alpha1

Change History

Changed 13 months ago by was

Here's how to workaround it (namely, put "dict(constants)" instead of "constants"). In the code for call or subs, something similar should be done.

sage: var('v t')
sage: f = v*t
sage: s = {v: 2}
sage: f(dict(s), t=3)
6
sage: s
{v: 2}

Changed 13 months ago by mvngu

  • description modified (diff)

Changed 13 months ago by wcauchois

based on sage 4.1.1.alpha1

Changed 13 months ago by wcauchois

  • summary changed from substitution of a dict into a symbolic expression modifies the dict to [with patch, needs review] substitution of a dict into a symbolic expression modifies the dict

This was a simple fix.

Changed 13 months ago by burcin

  • reviewer set to Burcin Erocal
  • summary changed from [with patch, needs review] substitution of a dict into a symbolic expression modifies the dict to [with patch, positive review] substitution of a dict into a symbolic expression modifies the dict
  • author set to Bill Cauchois

Changed 13 months ago by mvngu

  • status changed from new to closed
  • resolution set to fixed
  • merged set to Sage 4.1.1.rc1
Note: See TracTickets for help on using tickets.