• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
Issue Details (XML | Word | Printable)

Key: SVC-1406
Type: New Feature New Feature
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Argent Stonecutter
Votes: 110
Watchers: 36
Operations

If you were logged in you would be able to see more operations.
2. Second Life Service - SVC

Non-volatile storage for meta-information

Created: 01/Feb/08 08:51 AM   Updated: 13/Aug/09 05:03 PM
Return to search
Component/s: Scripts
Affects Version/s: None
Fix Version/s: None

Issue Links:
Relates


 Description  « Hide
This is a formal request for the extended version of extensible prim attributes*, which I'm opening as "major" because the quote-fix-unquote for SVC-674 makes the issue of non-volatile script- and user- editable configuration associated with objects even more critical.

Proposed design, (originally from the Wiki):

The root prim (or any prim) of an object would have an associated list of name-value pairs. The name would be a string and the value could be a string, or alternatively it could be a simple type (string, key, integer, float, vector, or rotation). This list would be saved and restored with the prim, and a client could register its interest in specific values that would be delivered to it. This is similar to MUCK attributes, UNIX environment variables, file metadata in BeFS and later file systems, Lisp property lists, and so on. It's a powerful, efficient, and easily generalized mechanism.
LSL API

llCreateProp(string name, integer perm);
llSetPropString(string name, string value);
string llGetPropString(string name);
llSetPropStringKey(string name,key object,string value);
// key must be an object in the same sim, and the object must be owned by the script owner or have appropriate permissions
string llgetPropStringKey(string name,key object);
// key must be an object in the same sim, and the object must be owned by the script owner or have appropriate permissions

Permissions:
1 ANY_READ
2 ANY_WRITE
4 GROUP_READ
8 GROUP_WRITE
16 READ_PROTECT
32 WRITE_PROTECT

READ_PROTECT and WRITE_PROTECT mean that scripts outside the prim can not read or write the attribute.

This means that the default 0 permission should do the right thing in most cases.

The total amount of space available for all attributes on the root prim of an object would be limited to 1024 bytes. This 1024 bytes would include the name, the permission byte, and the value. It could be stored as the permission byte value, a nul-terminated UTF name, and the nul-terminated value, followed immediately by the next value. Two consecutive nulls (zero-length name) would terminate the list. This implementation worked well for early UNIX on machines whose CPU power and available memory was of the same magnitude as an LSL script.

*https://wiki.secondlife.com/wiki/Extensible_Prim_Attributes_from_LSL which includes a more sophisticated version of this that includes client-server communication for open-source client extensions.



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Argent Stonecutter made changes - 01/Feb/08 08:52 AM
Field Original Value New Value
Link This issue is related to by SVC-674 [ SVC-674 ]
Argent Stonecutter made changes - 01/Feb/08 08:52 AM
Link This issue is related to by SVC-701 [ SVC-701 ]
Argent Stonecutter made changes - 01/Feb/08 08:55 AM
Link This issue is related to by MISC-907 [ MISC-907 ]
Argent Stonecutter made changes - 01/Feb/08 08:56 AM
Link This issue is related to by SVC-186 [ SVC-186 ]
Argent Stonecutter made changes - 01/Feb/08 08:56 AM
Link This issue is related to by SVC-1118 [ SVC-1118 ]
Argent Stonecutter made changes - 01/Feb/08 08:59 AM
Link This issue Relates to SVC-701 [ SVC-701 ]
Argent Stonecutter made changes - 01/Feb/08 08:59 AM
Link This issue Relates to SVC-1115 [ SVC-1115 ]
Argent Stonecutter made changes - 01/Feb/08 09:00 AM
Link This issue is related to by SVC-1394 [ SVC-1394 ]
Argent Stonecutter made changes - 01/Feb/08 09:02 AM
Description This is a formal request for the extended version of extensible prim attributes*, which I'm opening a "major" because the quote-fix-unquote for SVC-674 makes the issue of non-volatile script- and user- editable configuration associated with objects even more critical.

Proposed design, from the Wiki:

The root prim of an object would have an associates list of name-value pairs. The name would be a string and the value could be a string, or alternatively it could be a simple type (string, key, integer, float, vector, or rotation). This list would be saved and restored with the prim, and a client could register its interest in specific values that would be delivered to it. This is similar to MUCK attributes, UNIX environment variables, file metadata in BeFS and later file systems, Lisp property lists, and so on. It's a powerfule, efficient, and easily generalised mechanism.
LSL API

llCreateProp(string name, integer perm);
llSetPropString(string name, string value);
string llGetPropString(string name);
llSetPropStringKey(string name,key object,string value);
// key must be an object in the same sim, and the object must be owned by the script owner or have appropriate permissions
string llgetPropStringKey(string name,key object);
// key must be an object in the same sim, and the object must be owned by the script owner or have appropriate permissions

Permissions:
1 ANY_READ
2 ANY_WRITE
4 GROUP_READ
8 GROUP_WRITE
16 READ_PROTECT
32 WRITE_PROTECT

READ_PROTECT and WRITE_PROTECT mean that scripts outside the prim can not read or write the attribute.

This means that the default 0 permission should DTRT in most cases.

The total amount of space available for all attributes on the root prim of an object would be limited to 1024 bytes. This 1024 bytes would include the name, the permission byte, and the value. It could be stored as the permission byte value, a nul-terminated UTF name, and the nul-terminated value, followed immediately by the next value. Two consecutive nulls (zero-length name) would terminate the list. This implementation worked well for early UNIX on machines whose CPU power and available memory was of the same magnitude as an LSL script.

*https://wiki.secondlife.com/wiki/Extensible_Prim_Attributes_from_LSL which includes a more sophisticated version of this that includes client-server communication for open-source client extensions.
This is a formal request for the extended version of extensible prim attributes*, which I'm opening a "major" because the quote-fix-unquote for SVC-674 makes the issue of non-volatile script- and user- editable configuration associated with objects even more critical.

Proposed design, from the Wiki:

The root prim of an object would have an associated list of name-value pairs. The name would be a string and the value could be a string, or alternatively it could be a simple type (string, key, integer, float, vector, or rotation). This list would be saved and restored with the prim, and a client could register its interest in specific values that would be delivered to it. This is similar to MUCK attributes, UNIX environment variables, file metadata in BeFS and later file systems, Lisp property lists, and so on. It's a powerful, efficient, and easily generalized mechanism.
LSL API

llCreateProp(string name, integer perm);
llSetPropString(string name, string value);
string llGetPropString(string name);
llSetPropStringKey(string name,key object,string value);
// key must be an object in the same sim, and the object must be owned by the script owner or have appropriate permissions
string llgetPropStringKey(string name,key object);
// key must be an object in the same sim, and the object must be owned by the script owner or have appropriate permissions

Permissions:
1 ANY_READ
2 ANY_WRITE
4 GROUP_READ
8 GROUP_WRITE
16 READ_PROTECT
32 WRITE_PROTECT

READ_PROTECT and WRITE_PROTECT mean that scripts outside the prim can not read or write the attribute.

This means that the default 0 permission should do the right thing in most cases.

The total amount of space available for all attributes on the root prim of an object would be limited to 1024 bytes. This 1024 bytes would include the name, the permission byte, and the value. It could be stored as the permission byte value, a nul-terminated UTF name, and the nul-terminated value, followed immediately by the next value. Two consecutive nulls (zero-length name) would terminate the list. This implementation worked well for early UNIX on machines whose CPU power and available memory was of the same magnitude as an LSL script.

*https://wiki.secondlife.com/wiki/Extensible_Prim_Attributes_from_LSL which includes a more sophisticated version of this that includes client-server communication for open-source client extensions.
Argent Stonecutter made changes - 01/Feb/08 09:03 AM
Description This is a formal request for the extended version of extensible prim attributes*, which I'm opening a "major" because the quote-fix-unquote for SVC-674 makes the issue of non-volatile script- and user- editable configuration associated with objects even more critical.

Proposed design, from the Wiki:

The root prim of an object would have an associated list of name-value pairs. The name would be a string and the value could be a string, or alternatively it could be a simple type (string, key, integer, float, vector, or rotation). This list would be saved and restored with the prim, and a client could register its interest in specific values that would be delivered to it. This is similar to MUCK attributes, UNIX environment variables, file metadata in BeFS and later file systems, Lisp property lists, and so on. It's a powerful, efficient, and easily generalized mechanism.
LSL API

llCreateProp(string name, integer perm);
llSetPropString(string name, string value);
string llGetPropString(string name);
llSetPropStringKey(string name,key object,string value);
// key must be an object in the same sim, and the object must be owned by the script owner or have appropriate permissions
string llgetPropStringKey(string name,key object);
// key must be an object in the same sim, and the object must be owned by the script owner or have appropriate permissions

Permissions:
1 ANY_READ
2 ANY_WRITE
4 GROUP_READ
8 GROUP_WRITE
16 READ_PROTECT
32 WRITE_PROTECT

READ_PROTECT and WRITE_PROTECT mean that scripts outside the prim can not read or write the attribute.

This means that the default 0 permission should do the right thing in most cases.

The total amount of space available for all attributes on the root prim of an object would be limited to 1024 bytes. This 1024 bytes would include the name, the permission byte, and the value. It could be stored as the permission byte value, a nul-terminated UTF name, and the nul-terminated value, followed immediately by the next value. Two consecutive nulls (zero-length name) would terminate the list. This implementation worked well for early UNIX on machines whose CPU power and available memory was of the same magnitude as an LSL script.

*https://wiki.secondlife.com/wiki/Extensible_Prim_Attributes_from_LSL which includes a more sophisticated version of this that includes client-server communication for open-source client extensions.
This is a formal request for the extended version of extensible prim attributes*, which I'm opening as "major" because the quote-fix-unquote for SVC-674 makes the issue of non-volatile script- and user- editable configuration associated with objects even more critical.

Proposed design, from the Wiki:

The root prim of an object would have an associated list of name-value pairs. The name would be a string and the value could be a string, or alternatively it could be a simple type (string, key, integer, float, vector, or rotation). This list would be saved and restored with the prim, and a client could register its interest in specific values that would be delivered to it. This is similar to MUCK attributes, UNIX environment variables, file metadata in BeFS and later file systems, Lisp property lists, and so on. It's a powerful, efficient, and easily generalized mechanism.
LSL API

llCreateProp(string name, integer perm);
llSetPropString(string name, string value);
string llGetPropString(string name);
llSetPropStringKey(string name,key object,string value);
// key must be an object in the same sim, and the object must be owned by the script owner or have appropriate permissions
string llgetPropStringKey(string name,key object);
// key must be an object in the same sim, and the object must be owned by the script owner or have appropriate permissions

Permissions:
1 ANY_READ
2 ANY_WRITE
4 GROUP_READ
8 GROUP_WRITE
16 READ_PROTECT
32 WRITE_PROTECT

READ_PROTECT and WRITE_PROTECT mean that scripts outside the prim can not read or write the attribute.

This means that the default 0 permission should do the right thing in most cases.

The total amount of space available for all attributes on the root prim of an object would be limited to 1024 bytes. This 1024 bytes would include the name, the permission byte, and the value. It could be stored as the permission byte value, a nul-terminated UTF name, and the nul-terminated value, followed immediately by the next value. Two consecutive nulls (zero-length name) would terminate the list. This implementation worked well for early UNIX on machines whose CPU power and available memory was of the same magnitude as an LSL script.

*https://wiki.secondlife.com/wiki/Extensible_Prim_Attributes_from_LSL which includes a more sophisticated version of this that includes client-server communication for open-source client extensions.
Harleen Gretzky made changes - 05/Feb/08 06:33 AM
Link This issue is related to by SVC-1444 [ SVC-1444 ]
Argent Stonecutter made changes - 08/Jun/08 11:46 AM
Link This issue Relates to SVC-2508 [ SVC-2508 ]
Sue Linden made changes - 13/Nov/08 12:04 PM
Workflow jira-2007-12-22a [ 51677 ] jira-2008-11-14 [ 80653 ]
Sue Linden made changes - 13/Nov/08 04:29 PM
Workflow jira-2008-11-14 [ 80653 ] jira-2008-11-14a [ 86702 ]
Sue Linden made changes - 13/Nov/08 04:45 PM
Workflow jira-2008-11-14 [ 86702 ] jira-2008-11-14a [ 91781 ]
Sue Linden made changes - 13/Nov/08 04:55 PM
Workflow jira-2008-11-14 [ 91781 ] jira-2008-11-14a [ 95280 ]
Fake Fitzgerald made changes - 11/Dec/08 10:55 PM
Link This issue is related to by SVC-3515 [ SVC-3515 ]
Stephen Psaltery made changes - 28/Mar/09 11:43 AM
Link This issue is related to by SVC-4048 [ SVC-4048 ]
Argent Stonecutter made changes - 20/May/09 05:38 AM
Description This is a formal request for the extended version of extensible prim attributes*, which I'm opening as "major" because the quote-fix-unquote for SVC-674 makes the issue of non-volatile script- and user- editable configuration associated with objects even more critical.

Proposed design, from the Wiki:

The root prim of an object would have an associated list of name-value pairs. The name would be a string and the value could be a string, or alternatively it could be a simple type (string, key, integer, float, vector, or rotation). This list would be saved and restored with the prim, and a client could register its interest in specific values that would be delivered to it. This is similar to MUCK attributes, UNIX environment variables, file metadata in BeFS and later file systems, Lisp property lists, and so on. It's a powerful, efficient, and easily generalized mechanism.
LSL API

llCreateProp(string name, integer perm);
llSetPropString(string name, string value);
string llGetPropString(string name);
llSetPropStringKey(string name,key object,string value);
// key must be an object in the same sim, and the object must be owned by the script owner or have appropriate permissions
string llgetPropStringKey(string name,key object);
// key must be an object in the same sim, and the object must be owned by the script owner or have appropriate permissions

Permissions:
1 ANY_READ
2 ANY_WRITE
4 GROUP_READ
8 GROUP_WRITE
16 READ_PROTECT
32 WRITE_PROTECT

READ_PROTECT and WRITE_PROTECT mean that scripts outside the prim can not read or write the attribute.

This means that the default 0 permission should do the right thing in most cases.

The total amount of space available for all attributes on the root prim of an object would be limited to 1024 bytes. This 1024 bytes would include the name, the permission byte, and the value. It could be stored as the permission byte value, a nul-terminated UTF name, and the nul-terminated value, followed immediately by the next value. Two consecutive nulls (zero-length name) would terminate the list. This implementation worked well for early UNIX on machines whose CPU power and available memory was of the same magnitude as an LSL script.

*https://wiki.secondlife.com/wiki/Extensible_Prim_Attributes_from_LSL which includes a more sophisticated version of this that includes client-server communication for open-source client extensions.
This is a formal request for the extended version of extensible prim attributes*, which I'm opening as "major" because the quote-fix-unquote for SVC-674 makes the issue of non-volatile script- and user- editable configuration associated with objects even more critical.

Proposed design, (originally from the Wiki):

The root prim (or any prim) of an object would have an associated list of name-value pairs. The name would be a string and the value could be a string, or alternatively it could be a simple type (string, key, integer, float, vector, or rotation). This list would be saved and restored with the prim, and a client could register its interest in specific values that would be delivered to it. This is similar to MUCK attributes, UNIX environment variables, file metadata in BeFS and later file systems, Lisp property lists, and so on. It's a powerful, efficient, and easily generalized mechanism.
LSL API

llCreateProp(string name, integer perm);
llSetPropString(string name, string value);
string llGetPropString(string name);
llSetPropStringKey(string name,key object,string value);
// key must be an object in the same sim, and the object must be owned by the script owner or have appropriate permissions
string llgetPropStringKey(string name,key object);
// key must be an object in the same sim, and the object must be owned by the script owner or have appropriate permissions

Permissions:
1 ANY_READ
2 ANY_WRITE
4 GROUP_READ
8 GROUP_WRITE
16 READ_PROTECT
32 WRITE_PROTECT

READ_PROTECT and WRITE_PROTECT mean that scripts outside the prim can not read or write the attribute.

This means that the default 0 permission should do the right thing in most cases.

The total amount of space available for all attributes on the root prim of an object would be limited to 1024 bytes. This 1024 bytes would include the name, the permission byte, and the value. It could be stored as the permission byte value, a nul-terminated UTF name, and the nul-terminated value, followed immediately by the next value. Two consecutive nulls (zero-length name) would terminate the list. This implementation worked well for early UNIX on machines whose CPU power and available memory was of the same magnitude as an LSL script.

*https://wiki.secondlife.com/wiki/Extensible_Prim_Attributes_from_LSL which includes a more sophisticated version of this that includes client-server communication for open-source client extensions.
Dzonatas Sol made changes - 13/Jun/09 08:26 PM
Link This issue Relates to SVC-98 [ SVC-98 ]
Sebastean Steamweaver made changes - 11/Aug/09 12:08 PM
Link This issue is related to by MISC-3077 [ MISC-3077 ]
Sebastean Steamweaver made changes - 13/Aug/09 05:03 PM
Link This issue is related to by MISC-3077 [ MISC-3077 ]