[29:30][Step in to test_va_list() to demo Ion's varargs][:language :run]
[30:44][Explain the implementation of Ion's varargs][:language]
[34:28][Q&A][:speech]
[35:00][@nothings2][If you have "foo.ion" and "foo_linux.ion" does it compile both on linux, or only the most specific?][:"file io"]
[36:46][@nothings2][@pervognsen We found it useful in cdep to have the ability to have a common file (e.g. for all POSIX systems) and then override only for some platforms, but I don't think you have that ability with your exclude system, which will use all files that match so you can't have a fallback?]
[38:48][Demo Ion's ability to temporarily exclude files][:language :run]
[40:47][@cmdrkroz][@pervognsen What about static constant booleans that cause conditional compilation (a la java, which doesn't compile bytecode for conditionals that are always false)][:language]
[43:21][Set up to start work on RISC-V stuff,[ref
author="Andrew Waterman and Krste Asanović"
title="The RISC-V Instruction Set Manual - Volume 1: User-Level ISA"
url=https://github.com/riscv/riscv-isa-manual/blob/master/release/riscv-spec-v2.2.pdf] adding a "riscv" project to Visual Studio][:admin :isa]
[56:28][2.2 Base Instruction Formats[ref
author="Andrew Waterman and Krste Asanović"
title="The RISC-V Instruction Set Manual - Volume 1: User-Level ISA"
url=https://github.com/riscv/riscv-isa-manual/blob/master/release/riscv-spec-v2.2.pdf] of RISC-V vs x86][:isa]
[1:07:31][Why are the function bits split across multiple positions?[ref
author="Andrew Waterman and Krste Asanović"
title="The RISC-V Instruction Set Manual - Volume 1: User-Level ISA"
[1:14:22][@rygorous][It's usually "sign extend and then do something else" or "do something else then sign extend", so the sign extend is on the critical path][:isa]
[1:14:30][@nothings2][It probably does get sign extended in 64-bit?][:isa]
[1:15:12][2.3 Immediate Encoding Variants[ref
author="Andrew Waterman and Krste Asanović"
title="The RISC-V Instruction Set Manual - Volume 1: User-Level ISA"
title="The RISC-V Instruction Set Manual - Volume 1: User-Level ISA"
url=https://github.com/riscv/riscv-isa-manual/blob/master/release/riscv-spec-v2.2.pdf] with a look at arithmetic right-shift of negative values in C[ref
author=ANSI
title="ISO/IEC 9899: Information technology – Programming languages – C"
title="The RISC-V Instruction Set Manual - Volume 1: User-Level ISA"
url=https://github.com/riscv/riscv-isa-manual/blob/master/release/riscv-spec-v2.2.pdf], with a specific example of its use in conjunction with an addi][:isa]
[1:34:29][@rygorous][The lo / hi stuff needs to account for the signedness of lo][:isa]
[1:34:46][@rygorous][i.e. if the %lo bits end up with the top bit (sign) set, you need to increment %hi by 1][:isa]
[1:35:00][Continued example of LUI, and AUIPC (add upper immediate to pc)[ref
author="Andrew Waterman and Krste Asanović"
title="The RISC-V Instruction Set Manual - Volume 1: User-Level ISA"
[2:10:39][Wind it down with the determination to look further into the LUI and sign-extension stuff][:speech]
[2:11:23][Q&A][:speech]
[2:12:06][@elventhief][What's your coding approach going to start as?]
[2:14:19][@miotatsu][@pervognsen You do just do lui followed by addi. I didn't know about the fix-up stuff [@rygorous Fabien] mentioned but I am looking at binutils source right now and it looks like it %hi is doing the fix-up like what @rygorous suggested earlier]