Opened 14 years ago

Closed 14 years ago

#6622 closed defect (fixed)

[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: Merged in: Sage 4.1.1.rc1
Authors: Bill Cauchois Reviewers: Burcin Erocal
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by mvngu)

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 (1)

trac_6622.patch (1.3 KB) - added by wcauchois 14 years ago.
based on sage 4.1.1.alpha1

Download all attachments as: .zip

Change History (6)

comment:1 Changed 14 years 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}

comment:2 Changed 14 years ago by mvngu

Description: modified (diff)

Changed 14 years ago by wcauchois

Attachment: trac_6622.patch added

based on sage 4.1.1.alpha1

comment:3 Changed 14 years ago by wcauchois

Summary: substitution of a dict into a symbolic expression modifies the dict[with patch, needs review] substitution of a dict into a symbolic expression modifies the dict

This was a simple fix.

comment:4 Changed 14 years ago by burcin

Authors: Bill Cauchois
Reviewers: Burcin Erocal
Summary: [with patch, needs review] substitution of a dict into a symbolic expression modifies the dict[with patch, positive review] substitution of a dict into a symbolic expression modifies the dict

comment:5 Changed 14 years ago by mvngu

Merged in: Sage 4.1.1.rc1
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.