Ticket #6622 (closed defect: fixed)

Opened 8 months ago

Last modified 8 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 8 months ago.
based on sage 4.1.1.alpha1

Change History

Changed 8 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 8 months ago by mvngu

  • description modified (diff)

Changed 8 months ago by wcauchois

based on sage 4.1.1.alpha1

Changed 8 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 8 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 8 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.