L'opérateur label ne retourne plus de symbole à lecture destructive

Registered by Luc Bruninx

L'opérateur retournait un symbole à lecture destructive pour s'assurer que le contenant de la donnée assignée (à l'étiquette) puisse être également assignée telle une variable référence. Ceci n'est plus nécessaire puisque la référence en question est le contenant de la donnée. Il suffit donc de retourner le contenant de la donnée que l'on assigne (à l'étiquette). Cette façon de procéder est de loin plus rapide et nécessite moins de ressources.

Blueprint information

Status:
Complete
Approver:
Luc Bruninx
Priority:
Medium
Drafter:
Luc Bruninx
Direction:
Approved
Assignee:
Luc Bruninx
Definition:
Approved
Series goal:
Accepted for 1.0
Implementation:
Implemented
Milestone target:
milestone icon abstrasy-1.0.6336.0
Started by
Luc Bruninx
Completed by
Luc Bruninx

Related branches

Sprints

Whiteboard

--- PCFx_label.java Thu May 31 14:36:52 2012
+++ PCFx_label.java Thu May 31 14:36:52 2012
@@ -51,2 +51,2 @@
- * formes: (define 'symbole)
- * (define 'symbole valuable)
+ * formes: (label 'symbole) -> NOTHING
+ * (label 'symbole valuable) -> valuable
@@ -62 +62 @@
- Node register = null;
+ //dépréciation 2012-05-31 : Node register = null;
@@ -72 +72,3 @@
- Heap.defv(symbole_n, Node.createNothing());
+ Node tmpn = Node.createNothing();
+ Heap.defv(symbole_n, tmpn);
+ return tmpn;
@@ -97 +99 @@
- * 0 | 0 | 0 | 0 | newRef (16/12/20010)
+ * 0 | 0 | 0 | 0 | // dépréciationnewRef (16/12/20010)
@@ -103 +105 @@
- register=Heap.createUseOnceRegisterGlobalSymbol(isImmutable);
+ //dépréciation 2012-05-31 : register=Heap.createUseOnceRegisterGlobalSymbol(isImmutable);
@@ -108 +110 @@
- * - newRef : 0
+ * dépréciation de deRef : 0
@@ -133,2 +135,12 @@
- Heap.defv(register.getString(), tmpn);
- break;
+ /*
+ * Heap.defv(register.getString(), tmpn);
+ *
+ * Dépréciation : Il suffit de retourner directement le contenant de la donnée.
+ * ------------- Ceci constitue une optimisation puisqu'elle évite 2 étapes:
+ * 1) la création d'un symbole à lecture destructive
+ * 2) sa lecture et sa destruction.
+ *
+ * l.bruninx, 2012-05-31.
+ *
+ */
+ return tmpn;
@@ -138 +150,3 @@
- Heap.defv(register.getString(), rnode);
+ // dépréciation : Heap.defv(register.getString(), rnode);
+ // l.bruninx, 2012-05-31.
+ return rnode;
@@ -143,4 +156,0 @@
- /**
- * seule différence avec (define ...), (label ... ...) retourne le symbole.
- */
- return register;

(?)

Work Items

Work items:
patch : DONE

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.