Quinton Miller

Results 151 issues of Quinton Miller

You can do this since https://github.com/crystal-lang/crystal/commit/a8dc4fb81ddb0881281fa4617c4237a5a5e908ad: ```crystal lib Lib struct Foo x : Int32 y : Int16 end struct Bar include Foo z : Int8 end end Lib::Bar.new # =>...

[The docs say](https://crystal-lang.org/reference/1.7/syntax_and_semantics/c_bindings/fun.html): > Note that there are no implicit conversions (except `to_unsafe`, which is explained later) when invoking a C function: you must pass the exact type that is...

This example: https://github.com/crystal-lang/crystal-book/blob/867b2c8c2e71b4cdda91698a3e898cfc93c9f683/docs/syntax_and_semantics/c_bindings/enum.md?plain=1#L48-L56 fails with `Error: enum value must be an Int32` due to crystal-lang/crystal#2703. (It also fails if `SomeEnum` is explicitly marked as an `Int32` enum: crystal-lang/crystal#13292)

Ideally we could replace the type of `fd` on Windows entirely, similar to how `Socket#fd` returns a `LibC::HANDLE`, in which case we could also drop `_close` / `_dup2` / `_get_osfhandle`...

kind:refactor
platform:windows
topic:stdlib:files

Tested on d44530d88 with LLVM 10.0.0 and `x86_64-unknown-linux-gnu` target. This only happens to structs that would have contained padding between members if `@[Packed]` were absent. ```crystal lib L @[Packed] struct...

kind:bug
topic:compiler:codegen

Implements the original reduction relation for `BigInt`, `BigFloat`, `BigDecimal`, and `BigRational`, once and for all. In particular, `BigDecimal` is now compatible with other number types as it previously used `#to_s`...

kind:bug
topic:stdlib:numeric
topic:stdlib:collection

Currently, the Crystal runtime links against `msvcrt` / `ucrt` / `vcruntime` for dynamic builds on Windows, and `libcmt` / `libucrt` / `libvcruntime` for static builds. It would be great if...

kind:feature
platform:windows
topic:stdlib:runtime

```mermaid flowchart BT File --> IO::FileDescriptor File --> Crystal::System::File IO::FileDescriptor --> Crystal::System::FileDescriptor ``` These methods of `IO::FileDescriptor` are implemented in `Crystal::System::File` instead of `Crystal::System::FileDescriptor`: * `#fsync` -> `#system_fsync` * `#flock_shared`...

kind:bug
topic:stdlib:files

Closes #13609

breaking-change
topic:compiler:codegen
platform:x86