Opened 17 years ago
Last modified 2 years ago
#55 assigned enhancement
Clearing LispThread.currentThread()._values more efficiently
| Reported by: | ehuelsmann | Owned by: | ehuelsmann |
|---|---|---|---|
| Priority: | blocker | Milestone: | 1.9.3 |
| Component: | compiler | Version: | 1.2.0-dev |
| Keywords: | performance | Cc: | |
| Parent Tickets: |
Description
We currently clear _values all over the place; we could be more efficient some times.
Change History (26)
comment:1 Changed 16 years ago by
| Keywords: | performance added |
|---|
comment:2 Changed 16 years ago by
| Milestone: | → too-vague |
|---|
comment:3 Changed 16 years ago by
| Milestone: | too-vague → 1.0 |
|---|
comment:4 Changed 15 years ago by
Some work has been done in this department (on the unsafe-p-removal branch): specifically, all block types are now explicitly handled, while only TAGBODY was before - and incorrectly at that.
However, the main issue still stands.
comment:5 Changed 15 years ago by
One of the factors determining single-valued-ness of self-compiled functions is the %SINGLE-VALUED-P field in the compiland structure.
This field gets set to T during pass1 whenever any function call within that function returns T for the call to SINGLE-VALUED-P (which itself is located in pass2???).
comment:7 Changed 14 years ago by
| Milestone: | 1.0 → 1.1.0 |
|---|
comment:8 Changed 13 years ago by
| Milestone: | 1.1.0 → 1.2.0 |
|---|
comment:9 Changed 12 years ago by
| Priority: | major → blocker |
|---|---|
| Status: | new → assigned |
| Version: | → 1.2.0-dev |
Verify that the minimum api exists. Document it.
comment:10 Changed 12 years ago by
| Milestone: | 1.2.0 → 1.3.0 |
|---|
comment:13 Changed 12 years ago by
| Milestone: | 2.0.0 → 1.4.0 |
|---|
comment:18 Changed 5 years ago by
| Milestone: | 1.6.2 → 1.7.0 |
|---|
comment:23 Changed 4 years ago by
| Milestone: | 1.8.1 → 1.9.0 |
|---|
comment:24 Changed 3 years ago by
| Milestone: | 1.9.0 → 1.9.1 |
|---|
comment:25 Changed 3 years ago by
| Milestone: | 1.9.1 → 1.9.2 |
|---|
comment:26 Changed 2 years ago by
| Milestone: | 1.9.2 → 1.9.3 |
|---|
Operations like these:
(and possibly some others)
can be found enclosed in CLEAR-VALUES instructions, however, by nature, they can't be causing currentThread()._values to be set: only (lisp) function calls do that.