Page MenuHomeSolus

crystal
Closed, ResolvedPublic

Description

Name: crystal
Homepage: https://crystal-lang.org/
Open Source: yes
Licence: Apache License 2.0 https://github.com/crystal-lang/crystal/blob/master/LICENSE
Link to source tarball: https://github.com/crystal-lang/crystal/archive/0.20.4.tar.gz
Description:
Crystal is a programming language with the following goals:

  • Have a syntax similar to Ruby (but compatibility with it is not a goal)
  • Statically type-checked but without having to specify the type of variables or method arguments.
  • Be able to call C code by writing bindings to it in Crystal.
  • Have compile-time evaluation and generation of code, to avoid boilerplate code.
  • Compile to efficient native code.

Thank you. :)

Revisions and Commits

Related Objects

StatusAssignedTask
OpenAzphreal
ResolvedAzphreal

Event Timeline

JoshStrobl triaged this task as Normal priority.Jan 16 2017, 5:58 AM
JoshStrobl moved this task from Backlog to Accepted For Inclusion on the Package Requests board.

I'm sure whoever ends up packaging this would check out the latest release, but just in case, the latest release as of today is 0.23.1.

The problem with packaging Crystal is that it doesn't have a bootstrap; Crystal requires Crystal to compile. The solution to this, I guess, is to fetch the distributed binary for use in building, but I don't know if we encourage that in situations like this. Do we have a precedence?

Go is the closest I can find, and it correctly has golang as a build dep. Do we just fudge the very first build and leave it for the build bot to figure it out?

edit: Attempting to package it, and it seems that llvm-config --cxxflags generates flags that aren't recognised by our version of g++:

x86_64-solus-linux-g++ -c -mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -fno-omit-frame-pointer -fexceptions -D_FORTIFY_SOURCE=2 -fstack-protector --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT  -o src/llvm/ext/llvm_ext.o src/llvm/ext/llvm_ext.cc `/usr/bin/llvm-config --cxxflags`
x86_64-solus-linux-g++: error: unrecognized command line option '-Wcovered-switch-default'; did you mean '-Wno-switch-default'?
x86_64-solus-linux-g++: error: unrecognized command line option '-Wstring-conversion'; did you mean '-Wint-conversion'
DataDrake added a subscriber: DataDrake.

Closing due to lack of activity in over 30 days. Still eligible for inclusion.

It's pretty common for languages to self-host. It's really convenient for the language developers but it can be pretty annoying for everyone else if there's no provided bootstrap or when trying to build for a new target triple.

Is there anything I can help with?

They figured it out eventually, just never fixed their patches. This is waiting for a maintainer to step forward.

DataDrake changed the task status from Wontfix to Frozen.Feb 21 2022, 6:37 AM