L'opérateur label ne retourne plus de symbole à lecture destructive
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:
- abstrasy-1.0.6336.0
- Started by
- Luc Bruninx
- Completed by
- Luc Bruninx
Related branches
Related bugs
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(
+ Node tmpn = Node.createNoth
+ Heap.defv(
+ 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=
+ //dépréciation 2012-05-31 : register=
@@ -108 +110 @@
- * - newRef : 0
+ * dépréciation de deRef : 0
@@ -133,2 +135,12 @@
- Heap.defv(
- break;
+ /*
+ * Heap.defv(
+ *
+ * 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(
+ // dépréciation : Heap.defv(
+ // 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