Quinton Miller

Results 227 issues of 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...

kind:bug
topic:stdlib:numeric
platform:unix

`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...

kind:bug
topic:stdlib:numeric

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...

kind:feature
platform:windows
topic:stdlib:system

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...

kind:feature
topic:infrastructure
platform:windows

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.

status:discussion
topic:stdlib:llvm

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...

kind:bug
topic:stdlib:numeric
topic:compiler:codegen
platform:x86

Follow-up to #14170. This includes the global variables inside `Spec::RootContext`.

kind:refactor
topic:stdlib:specs

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...

kind:feature
topic:compiler
platform:x86

This works: ```crystal {% for x in [1] %} {% p x if true %} # => 1 {% end %} ``` This doesn't: ```crystal {% for x in [1]...

kind:bug
topic:compiler:parser
topic:lang:macros