|
Re: analogy pmc/content with inode/file: msg#00553lang.perl.perl6.internals
Stéphane Payrard <stef@xxxxxxxxxxx> wrote: > I want to make an loose analogy between pmc/their_content and > Unix inodes/files which I use as a mnemonic. > PMCs are the equivalent of inodes, each one > reference some content which is the equivalent of a file. > C<set_pmc>, when the source and the destination pmcs are of the same type, > is like creating a hard_link to a file. The two pmcs share the > same content. ,--[ pdd02_vtables.pod ]------------------------------------------ | void set_pmc(INTERP, PMC* self, PMC* value) | Sets the value of the PMC in self to the value of the | PMC in value. | | void assign_pmc(INTERP, PMC* self, PMC* value) | Sets the value of the PMC in self to the value of the | PMC in value by copying the value. `----------------------------------------------------------------- So probably yes. OTOH having e.g. two array PMCs pointing to the same array structure could be rather error prone. I think, we have to consider first variables vs values. Variables have a name and hold values (the PMCs). It depends on the HLL, what e.g. an assignment is doing: i = j # Python - both variables refer to the same value i += k # mutable objects are changed in place # immutable objects are rebound to hold the new value @a = @b # Perl - copy array So normally setting a value happens one level higher. But in leaf functions and in the absence of introspection, I can imagine that the optimizer converts lexical opcodes to PMC-only operations, depending on the semantics of the HLL. leo |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: pmc_type: 00553, Leopold Toetsch |
|---|---|
| Next by Date: | Install-Problem: 00553, Vijay D. |
| Previous by Thread: | analogy pmc/content with inode/filei: 00553, Stéphane Payrard |
| Next by Thread: | Re: analogy pmc/content with inode/file: 00553, Dan Sugalski |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |