On Sunday, 7 June 2026 at 21:38:23 UTC, monkyyy wrote:
On Saturday, 6 June 2026 at 00:11:39 UTC, monkyyy wrote:
I have not yet written it but I should be able to avoid ctfe-gc landmines to produce an appendable enum-ish string[];

my current progress on improving my ct utilities, this alone was a nightmere

```d
import std;

enum pointer=cast(immutable(void)*)[0].ptr;
template changepointer(alias p){
    enum changepointer=(){
        *(cast(int*)pointer)+=*cast(int*)p;
        return 1;
    }();
}
unittest{
    (*(cast(int*)pointer)).writeln;
enum immutable(void)* newpointer=cast(immutable(void)*)[5].ptr;
    enum _=changepointer!(newpointer);
}
```

the ctfe gc is even more fickle then I remember, I think int and void is the special case

I think I can make a reverse linked list given only mutable void* pointers but Im more open to suggestions

if that fails then I would have to resort to appendable aliasseq of aliased strings and that **doesnt** have a clean way to communcate to post-compiletime that I know of

I want void*[] to be my hotloading primitive type

The if you manage to dodge all the safetys on the ctfe gc, you get segfualts or maybe the compiler gets confused and cant link a linked list of enums, idk; either way that direction was a dead end as far as I can tell, I believe static this spam maybe the lowest cost option for value

```d
import std;

int[] hi;

template foo(alias a){
    static this(){
        hi~=a;
    }
    enum foo=0;
}
enum _1=foo!1;
enum _2=foo!2;
unittest{
    hi.writeln;
}
```
  • pathologically s... monkyyy via Digitalmars-d-learn
    • Re: patholo... H. S. Teoh via Digitalmars-d-learn
    • Re: patholo... monkyyy via Digitalmars-d-learn
      • Re: pat... monkyyy via Digitalmars-d-learn
        • Re:... monkyyy via Digitalmars-d-learn
          • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
            • ... monkyyy via Digitalmars-d-learn

Reply via email to