kettle11 / kapp

A pure Rust window and input library for Windows, Mac, and Web. (Work in progress)
Apache License 2.0
56 stars 4 forks source link

Segfault running helloworld #23

Closed waylandc closed 4 years ago

waylandc commented 4 years ago

rustc 1.45.0-nightly kApp 0.1.0

    Finished dev [unoptimized + debuginfo] target(s) in 0.15s
     Running `target/debug/examples/hello`
[1]    24666 segmentation fault  cargo run --example hello
kettle11 commented 4 years ago

Thanks for the report! Which platform are you running this on?

waylandc commented 4 years ago

Thanks for the report! Which platform are you running this on?

macOS Mojave 10.14.6

Cargo.lock in case it helps

# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "bumpalo"
version = "3.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "cfg-if"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "console_error_panic_hook"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
 "wasm-bindgen 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "gl_generator"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "khronos_api 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
 "xml-rs 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "glow"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "gl_generator 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
 "js-sys 0.3.39 (registry+https://github.com/rust-lang/crates.io-index)",
 "slotmap 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
 "wasm-bindgen 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)",
 "web-sys 0.3.39 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "js-sys"
version = "0.3.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "wasm-bindgen 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "kapp"
version = "0.1.0"
dependencies = [
 "glow 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 "kapp_gl_context 0.1.0",
 "kapp_platform_macos 0.1.0",
 "kapp_platform_web 0.1.0",
 "kapp_platform_windows 0.1.0",
]

[[package]]
name = "kapp_gl_context"
version = "0.1.0"
dependencies = [
 "kapp_platform_common 0.1.0",
 "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
 "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
 "wasm-bindgen 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)",
 "web-sys 0.3.39 (registry+https://github.com/rust-lang/crates.io-index)",
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "kapp_platform_common"
version = "0.1.0"
dependencies = [
 "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "kapp_platform_macos"
version = "0.1.0"
dependencies = [
 "kapp_platform_common 0.1.0",
 "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "kapp_platform_web"
version = "0.1.0"
dependencies = [
 "console_error_panic_hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
 "kapp_platform_common 0.1.0",
 "wasm-bindgen 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)",
 "web-sys 0.3.39 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "kapp_platform_windows"
version = "0.1.0"
dependencies = [
 "kapp_platform_common 0.1.0",
]

[[package]]
name = "khronos_api"
version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "libc"
version = "0.2.69"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "log"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "malloc_buf"
version = "0.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "objc"
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "malloc_buf 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "proc-macro2"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "quote"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "raw-window-handle"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "slotmap"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "syn"
version = "1.0.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
 "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "unicode-xid"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "wasm-bindgen"
version = "0.2.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
 "wasm-bindgen-macro 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "wasm-bindgen-backend"
version = "0.2.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "bumpalo 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
 "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
 "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
 "wasm-bindgen-shared 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "wasm-bindgen-macro"
version = "0.2.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 "wasm-bindgen-macro-support 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
 "quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 "syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
 "wasm-bindgen-backend 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)",
 "wasm-bindgen-shared 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "wasm-bindgen-shared"
version = "0.2.64"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "web-sys"
version = "0.3.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "js-sys 0.3.39 (registry+https://github.com/rust-lang/crates.io-index)",
 "wasm-bindgen 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "winapi"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
 "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
]

[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"

[[package]]
name = "xml-rs"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"

[metadata]
"checksum bumpalo 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "12ae9db68ad7fac5fe51304d20f016c911539251075a214f8e663babefa35187"
"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
"checksum console_error_panic_hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211"
"checksum gl_generator 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ca98bbde17256e02d17336a6bdb5a50f7d0ccacee502e191d3e3d0ec2f96f84a"
"checksum glow 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "31aed196700daf16e1241d819ff4a4855a78ee0cddb051948d50b9213deec82f"
"checksum js-sys 0.3.39 (registry+https://github.com/rust-lang/crates.io-index)" = "fa5a448de267e7358beaf4a5d849518fe9a0c13fce7afd44b06e68550e5562a7"
"checksum khronos_api 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
"checksum libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)" = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005"
"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
"checksum malloc_buf 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
"checksum objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
"checksum proc-macro2 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
"checksum quote 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4c1f4b0efa5fc5e8ceb705136bfee52cfdb6a4e3509f770b478cd6ed434232a7"
"checksum raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0a441a7a6c80ad6473bd4b74ec1c9a4c951794285bf941c2126f607c72e48211"
"checksum slotmap 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "759fd553261805f128e2900bf69ab3d034260bc338caf7f0ee54dbf035c85acd"
"checksum syn 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "e8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cd"
"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
"checksum wasm-bindgen 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)" = "6a634620115e4a229108b71bde263bb4220c483b3f07f5ba514ee8d15064c4c2"
"checksum wasm-bindgen-backend 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)" = "3e53963b583d18a5aa3aaae4b4c1cb535218246131ba22a71f05b518098571df"
"checksum wasm-bindgen-macro 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)" = "3fcfd5ef6eec85623b4c6e844293d4516470d8f19cd72d0d12246017eb9060b8"
"checksum wasm-bindgen-macro-support 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)" = "9adff9ee0e94b926ca81b57f57f86d5545cdcb1d259e21ec9bdd95b901754c75"
"checksum wasm-bindgen-shared 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)" = "7f7b90ea6c632dd06fd765d44542e234d5e63d9bb917ecd64d79778a13bd79ae"
"checksum web-sys 0.3.39 (registry+https://github.com/rust-lang/crates.io-index)" = "8bc359e5dd3b46cb9687a051d50a2fdd228e4ba7cf6fcf861a5365c3d671a642"
"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
"checksum xml-rs 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a"
kettle11 commented 4 years ago

Thanks for the additional info. Hmm.. I'm running on Catalina 10.15.5. I wonder if somehow I've introduced code that only works on Catalina? I'll have to think about and research what could be going wrong here.

waylandc commented 4 years ago

I could update to Catalina but I've been quite disappointed with recent OSX releases (there's nothing new worthy of the time/risk to upgrade).

kettle11 commented 4 years ago

Catalina has been frustrating. I haven't hit any major bugs, but in general the security model gets in the way of much of what I want to do. I updated out of curiosity, but it is probably the wiser choice to stay behind for now.

My goal with kApp is that it will get more stable as time goes on so it's ok to aim for stability on the most recent release today, but a crash on Mojave feels a bit too recent for my tastes. I'll see if I can get a VM setup to replicate it.

kettle11 commented 4 years ago

@waylandc I believe I've fixed the issue. The NSView for the window was being allocated but not initialized. Definitely a real bug and not just a discrepancy between versions, just for some reason it wouldn't crash on Catalina. Thanks for reporting!

Here's the fix: https://github.com/kettle11/kApp/commit/bbd0db376529145cde1b9e830c8dc6d43ccd400f

If you have time would you mind pulling the main branch again and seeing if the issue is fixed for you?

waylandc commented 4 years ago

works now, thanks for looking at this quickly. I'll definitely be watching this interesting project.