-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Does not build with current crystal #37
Comments
I guess the best scenario would be @ffwff merging ffwff/crystal(branch lilin) with crystal-lang/crystal (master or tag 0.35.1) For the time being you can go to I've compiled the patched crystal compiler, but am not in the perfect condition to share this :( Wish you luck and I'll get back as soon as I have the chance. |
Oof never mind, the built compiler fails spectacularly... |
FWIW for the next person working on this, here's the patch I made by merging: git clone https://github.com/crystal-lang/crystal
cd crystal
git checkout 0.35.1
wget -O - https://gist.githubusercontent.com/Scorbie/62597e651fbb09a6be7bcf1d614cc3d4/raw/f310c8cdc72673f43dc2c0407e438d0e54b7e866/lilith-crystal-0.35.1.patch | patch -p1
make I think the patch is okay, the patched compiler builds okay, it's just that the compiler complains when I try to build the kernel. BUG: unhandled primitive in codegen: cast (Exception)
from toolchain/crystal/src/compiler/crystal/codegen/primitives.cr:81:15 in 'codegen_primitive'
from toolchain/crystal/src/compiler/crystal/codegen/call.cr:419:7 in 'codegen_call'
from toolchain/crystal/src/compiler/crystal/codegen/call.cr:35:7 in 'visit'
from toolchain/crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:2324:7 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/call.cr:100:7 in 'prepare_call_args_non_external'
from toolchain/crystal/src/compiler/crystal/codegen/call.cr:57:7 in 'prepare_call_args'
from toolchain/crystal/src/compiler/crystal/codegen/call.cr:21:26 in 'visit'
from toolchain/crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:2324:7 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/call.cr:73:7 in 'prepare_call_args_non_external'
from toolchain/crystal/src/compiler/crystal/codegen/call.cr:57:7 in 'prepare_call_args'
from toolchain/crystal/src/compiler/crystal/codegen/call.cr:21:26 in 'visit'
from toolchain/crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:2324:7 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/fun.cr:162:11 in 'codegen_fun'
from toolchain/crystal/src/compiler/crystal/codegen/fun.cr:51:3 in 'codegen_fun'
from toolchain/crystal/src/compiler/crystal/codegen/fun.cr:8:54 in 'target_def_fun'
from toolchain/crystal/src/compiler/crystal/codegen/call.cr:424:12 in 'codegen_call'
from toolchain/crystal/src/compiler/crystal/codegen/call.cr:35:7 in 'visit'
from toolchain/crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:2324:7 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:751:9 in 'visit'
from toolchain/crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:2324:7 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/const.cr:135:13 in 'create_initialize_const_function'
from toolchain/crystal/src/compiler/crystal/codegen/const.cr:112:56 in 'initialize_const'
... Adding $ toolchain/crystal/bin/crystal build -Dkernel --cross-compile --target x86_64-elf --prelude ./prelude.cr --error-trace --mcmodel kernel --mno-red-zone -Ddisable_overflow --freestanding --no-finalizers --debug src/main.cr -o build/main
Using compiled compiler at toolchain/crystal/.build/crystal
Nil assertion failed (NilAssertionError)
from toolchain/crystal/src/nil.cr:106:5 in 'not_nil!'
from toolchain/crystal/src/compiler/crystal/codegen/debug.cr:172:59 in 'create_debug_type'
from toolchain/crystal/src/compiler/crystal/codegen/debug.cr:68:43 in 'get_debug_type'
from toolchain/crystal/src/compiler/crystal/codegen/debug.cr:292:7 in 'get_debug_type'
from toolchain/crystal/src/compiler/crystal/codegen/debug.cr:123:59 in 'create_debug_type'
from toolchain/crystal/src/compiler/crystal/codegen/debug.cr:68:43 in 'get_debug_type'
from toolchain/crystal/src/compiler/crystal/codegen/debug.cr:292:7 in 'get_debug_type'
from toolchain/crystal/src/compiler/crystal/codegen/fun.cr:292:37 in 'codegen_fun_signature_non_external'
from toolchain/crystal/src/compiler/crystal/codegen/fun.cr:231:7 in 'codegen_fun_signature'
from toolchain/crystal/src/compiler/crystal/codegen/fun.cr:82:7 in 'codegen_fun'
from toolchain/crystal/src/compiler/crystal/codegen/fun.cr:51:3 in 'codegen_fun'
from toolchain/crystal/src/compiler/crystal/codegen/fun.cr:8:54 in 'target_def_fun'
from toolchain/crystal/src/compiler/crystal/codegen/call.cr:424:12 in 'codegen_call'
from toolchain/crystal/src/compiler/crystal/codegen/call.cr:35:7 in 'visit'
from toolchain/crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:2324:7 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/class_var.cr:135:15 in 'create_initialize_class_var_function'
from toolchain/crystal/src/compiler/crystal/codegen/class_var.cr:87:17 in 'initialize_class_var'
from toolchain/crystal/src/compiler/crystal/codegen/class_var.cr:82:7 in 'initialize_class_var'
from toolchain/crystal/src/compiler/crystal/codegen/class_var.cr:75:5 in 'initialize_class_var'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:1076:11 in 'codegen_assign'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:1051:7 in 'visit'
from toolchain/crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:2324:7 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:751:9 in 'visit'
from toolchain/crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:2324:7 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:810:7 in 'visit'
from toolchain/crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'
from toolchain/crystal/src/compiler/crystal/syntax/ast.cr:1121:7 in 'accept_children'
from toolchain/crystal/src/compiler/crystal/syntax/visitor.cr:28:11 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:2324:7 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:751:9 in 'visit'
from toolchain/crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:2324:7 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:810:7 in 'visit'
from toolchain/crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:2324:7 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:751:9 in 'visit'
from toolchain/crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:2324:7 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:537:9 in 'visit'
from toolchain/crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:2324:7 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:751:9 in 'visit'
from toolchain/crystal/src/compiler/crystal/syntax/visitor.cr:27:12 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:2324:7 in 'accept'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:71:7 in 'codegen'
from toolchain/crystal/src/compiler/crystal/codegen/codegen.cr:69:5 in 'codegen:debug:single_module'
from toolchain/crystal/src/compiler/crystal/progress_tracker.cr:22:7 in 'codegen'
from toolchain/crystal/src/compiler/crystal/compiler.cr:184:16 in 'compile'
from toolchain/crystal/src/compiler/crystal/command.cr:295:3 in 'compile'
from toolchain/crystal/src/compiler/crystal/command.cr:293:5 in 'compile'
from toolchain/crystal/src/compiler/crystal/command.cr:186:5 in 'build'
from toolchain/crystal/src/compiler/crystal/command.cr:73:7 in 'run'
from toolchain/crystal/src/compiler/crystal/command.cr:49:5 in 'run'
from toolchain/crystal/src/compiler/crystal/command.cr:48:3 in 'run'
from toolchain/crystal/src/compiler/crystal.cr:11:1 in '__crystal_main'
from toolchain/crystal/src/crystal/main.cr:105:5 in 'main_user_code'
from toolchain/crystal/src/crystal/main.cr:91:7 in 'main'
from toolchain/crystal/src/crystal/main.cr:114:3 in 'main'
from __libc_start_main
from _start
from ???
Error: you've found a bug in the Crystal compiler. Please open an issue, including source code that will allow us to reproduce the bug: https://github.com/crystal-lang/crystal/issues
# Scorbie: I decided not to bother the crystal devs with a patched version of a previous version of the compiler. |
Tried to build this amazing project but unfortunately just get an error when running "make toolchain/crystal/.build/crystal" and I currently lack the knowledge to fix it..
cd toolchain/crystal && make release=1
make[1]: Entering directory '/home/nix/Source/9-OS/lilith/toolchain/crystal'
Using /usr/bin/llvm-config [version=10.0.1]
CRYSTAL_CONFIG_LIBRARY_PATH="" CRYSTAL_CONFIG_BUILD_COMMIT="ad3fae661" ./bin/crystal build --release -o .build/crystal src/compiler/crystal.cr -D without_openssl -D without_zlib
In src/gc/boehm.cr:9:1
9 | {% if flag?(:freebsd) %}
^
Warning: expanding macro
""
There was a problem expanding macro 'macro_140249756127904'
Called macro defined in src/gc/boehm.cr:9:1
9 | {% if flag?(:freebsd) %}
Which expanded to:
1 |
A total of 1 warnings were found.
In src/time.cr:1322:7
1322 | in(Location.local)
^
Error: expecting identifier 'end', not 'in'
make[1]: *** [Makefile:133: .build/crystal] Error 1
make[1]: Leaving directory '/home/nix/Source/9-OS/lilith/toolchain/crystal'
make: *** [Makefile:205: toolchain/crystal/.build/crystal] Error 2
""
Used crystal from Arch Linux.
Thanks for response!
The text was updated successfully, but these errors were encountered: