CLONE - LeFreq/Singularity GitHub Wiki

CLONE [node] overwrite | rename | drop (any duplicate names)

If you're not the owner of the node, this command clones the inheritance graph of the node. Otherwise, you also get the code within the objects. It is a graph, because there's no need to copy an object twice, so the leaves, which may all be simple basic objects, ... If an object is named the same as an object on your own machine/node, then it is dropped by default (rather than overwriting your own. These objects were dupblicately named: { Object234 , Object6}

The issue of shallow vs. deep copy of an object is covered through permissions or a trust network. To get a deep copy, you must be completely trusted by the object's owner or the owner yourself. [Otherwise]

Inheritance graphs bottom out at simple primitive types, which are generally common on every system.


If given without a node, will clone your machine to who's listening? Or perhaps, the user has to provide a node name (after the singularity user checks to see if the name is available) and then it self-configures the machine once software is copied. If they want to avoid this seeming "take-over" of their device, they can buy the software, because otherwise this free software is truly viral.

Example:

object MyClass(inherits ObA, ObB):

    def operator_>>:
        in >> ObA >> ObB >> out
    def operator_<<:
        out
    def getstate:
        return ?ObA + ?ObB

Clone will copy the basic outline of the class (not internal methods code unless trusted by the objects owner) and the names of the inherited objevts (but not the inherited objects themselves unless you as listed as trusted by those owners).


⚠️ **GitHub.com Fallback** ⚠️