Quinton Miller
Quinton Miller
On non-Windows platforms, `Float64#**(Int32)` and `Float64#**(Float64)` are backed by `llvm.powi` and `llvm.pow` respectively. The two can sometimes return different results, in particular when dealing with certain subnormal results: ```crystal 2.0...
`Int::Primitive#==(Float::Primitive)` and `Float::Primitive#==(Int::Primitive)`, as well as the other relational operators, all convert the integer argument to the same type as the float argument before doing the comparison. This leads to...
From #13567 we know that `Process.quote_windows`, which only performs the opposite of [`CommandLineToArgvW`](https://learn.microsoft.com/en-gb/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw), does not handle metacharacter escaping for the command prompt. We also need both kinds of escaping, and...
If you install Crystal on Windows using the GUI installer but don't have the MSVC build tools or the Windows SDK, a message like this will show up right before...
Similar to #13250, `LibLLVM.dispose_target_data` is a binding for `LLVMDisposeTargetData`, but `LLVM::TargetData` cannot use it for finalization because it is a struct.
Consider the following: ```crystal @[Extern] struct Foo @x = 0_i64 @y = 0_i128 end foo = Foo.new pointerof(foo.@x) # => Pointer(Int128)@0x7fffd4e08e60 pointerof(foo.@y) # => Pointer(Int128)@0x7fffd4e08e68 offsetof(Foo, @y) # => 8...
Follow-up to #14170. This includes the global variables inside `Spec::RootContext`.
Despite [what the NixOS website says](https://search.nixos.org/packages?channel=23.11&from=0&size=50&sort=relevance&type=packages&query=llvm), LLVM 17 is not present in the new packages download.
There should be a way to enable Intel syntax for the assembly file emitted by LLVM when building an x86-64 program, regardless of whether `asm` accepts AT&T or Intel syntax...
This works: ```crystal {% for x in [1] %} {% p x if true %} # => 1 {% end %} ``` This doesn't: ```crystal {% for x in [1]...