August 26, 2020
On Wednesday, 26 August 2020 at 16:08:15 UTC, MrSmith wrote:
> https://github.com/MrSmith33/tiny_jit

What kinds of memory management are supported/planned and how does this interact with slices?

I can't find any code examples in Vox. Are they represented as strings inside the .d-files?
August 26, 2020
On Wednesday, 26 August 2020 at 16:34:39 UTC, Per Nordlöw wrote:
> On Wednesday, 26 August 2020 at 16:08:15 UTC, MrSmith wrote:
>> https://github.com/MrSmith33/tiny_jit
>
> What kinds of memory management are supported/planned and how does this interact with slices?
>
> I can't find any code examples in Vox. Are they represented as strings inside the .d-files?

Currently only manual MM. Check source/tests for small examples and https://github.com/MrSmith33/rltut_2019 for bigger project. Also see spec/index.md for some docs.
August 26, 2020
On Wednesday, 26 August 2020 at 16:34:39 UTC, Per Nordlöw wrote:
> On Wednesday, 26 August 2020 at 16:08:15 UTC, MrSmith wrote:
>> https://github.com/MrSmith33/tiny_jit
>
> What kinds of memory management are supported/planned and how does this interact with slices?
>
> I can't find any code examples in Vox. Are they represented as strings inside the .d-files?

I run benchmark myself and here is what Vox code should look like based on D code:
i64 add_long_n0_h0[T](i64 x) { return x + 87734; }
i64 add_long_n0[T](i64 x) { return x + add_long_n0_h0[i64](x) + 40209; }
i64 main() {
    i64 long_sum = 0;
    long_sum += add_long_n0[i64](0);
    return long_sum;
}
August 26, 2020
On Wednesday, 26 August 2020 at 17:27:48 UTC, MrSmith wrote:
> I run benchmark myself and here is what Vox code should look like based on D code:

Ok, thanks.

How should I best build vox for maximum performance?

These alternatives correctly produce a binary:

    dmd -i main.d
    ldmd2 -i main.d
    ldmd2 -O -release -i main.d

but running the binary produced

    ldmd2 -O -release -i main.d

prints

    Running 218 tests

but never completes...
August 26, 2020
On Wednesday, 26 August 2020 at 19:26:17 UTC, Per Nordlöw wrote:
> How should I best build vox for maximum performance?

It needs cli version passed:
ldc2 -d-version=cli -m64 -O3 -release -boundscheck=off -enable-inlining -flto=full -i main.d -of=./tjc


August 26, 2020
On Wednesday, 26 August 2020 at 20:10:09 UTC, MrSmith wrote:
> It needs cli version passed:
> ldc2 -d-version=cli -m64 -O3 -release -boundscheck=off -enable-inlining -flto=full -i main.d -of=./tjc

Ahh, nice.
August 26, 2020
On Wednesday, 26 August 2020 at 17:01:44 UTC, MrSmith wrote:
> Currently only manual MM. Check source/tests for small examples and https://github.com/MrSmith33/rltut_2019 for bigger project. Also see spec/index.md for some docs.

Can you elaborate on what you mean manual MM? Refcounted? I'm very curious.
August 26, 2020
On Wednesday, 26 August 2020 at 20:13:55 UTC, Per Nordlöw wrote:
> Can you elaborate on what you mean manual MM? Refcounted? I'm very curious.

Currently you can either do static/stack allocation and use host provided functions or OS API to dynamically allocate memory (alloc/free, mmap/VirtualAlloc/HeapAlloc etc). No GC or RC is planned.
Probably I will add more first class support for allocators like in Jai/Zig/Odin.
August 26, 2020
On Wednesday, 26 August 2020 at 20:10:09 UTC, MrSmith wrote:
> It needs cli version passed:
> ldc2 -d-version=cli -m64 -O3 -release -boundscheck=off -enable-inlining -flto=full -i main.d -of=./tjc

Can `vox` only output Windows binaries?
August 26, 2020
On Wednesday, 26 August 2020 at 22:05:51 UTC, Per Nordlöw wrote:
> Can `vox` only output Windows binaries?

Yes. ELF and SytemV ABI is WIP