Bug 229636

Summary: lang/crystal: update to 0.25.1 (& devel/shards 0.8.1) + add bootstrap for aarch64
Product: Ports & Packages Reporter: Greg V <greg>
Component: Individual Port(s)Assignee: Yuri Victorovich <yuri>
Status: Closed FIXED    
Severity: Affects Only Me CC: yuri
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
Bug Depends on:    
Bug Blocks: 201763    
Description Flags
crystal0251.patch (+aarch64) none

Description Greg V 2018-07-09 11:39:00 UTC
Created attachment 194989 [details]

I hope the 11.2 bootstrap works for 11.1... Though 11.1 will be EoL soon-ish anyway, so whatever.

Switched to LLVM 6 now (requires LLVM 6.0.1 actually).
Comment 1 Greg V 2018-07-12 11:34:12 UTC
Created attachment 195072 [details]
crystal0251.patch (+aarch64)

Added AArch64 support!!

Using LLVM 5 there — LLVM 6 results in assertion failures on aarch64: https://github.com/crystal-lang/crystal/pull/6373
Comment 2 Yuri Victorovich freebsd_committer 2018-07-12 21:50:15 UTC
Fails in patch: 

===>  Applying FreeBSD patches for crystal-0.25.1
  I can't seem to find a patch in there anywhere.
=> FreeBSD patch patch-src_lib__c_x86__64-portbld-freebsd_c_dirent.cr failed to apply cleanly.
*** Error code 1
Comment 3 Greg V 2018-07-12 22:20:06 UTC
(In reply to Yuri Victorovich from comment #2)
There's no patches now, I guess with the way you applied the patch (not with git,  I guess) you ended up with empty files instead of deleted files. Do rm -rf files.
Comment 4 Yuri Victorovich freebsd_committer 2018-07-12 23:14:31 UTC
I think this part will cause questions:
.if ${OSVERSION} >= 1200000
. if ${ARCH} == amd64
BOOTSTRAP_PATH= crystal-0.25.0-freebsd12.0
. elif ${ARCH} == aarch64
BOOTSTRAP_PATH= crystal-0.25.1-freebsd12.0-aarch64
. endif
. if ${ARCH} == amd64
BOOTSTRAP_PATH= crystal-0.25.0-freebsd11.2
. elif ${ARCH} == aarch64
IGNORE=         prebuilt bootstrap for aarch64 only exists for 12-CURRENT
. endif
.if ${OSVERSION} < 1100000
IGNORE=         not supported on 10.x or older
.if ${OPSYS} != FreeBSD
IGNORE=         not supported on anything but FreeBSD

11.2: What if the OS version is still 11.1? Isn't it better to compute 11.2 from OSVERSION? Then, you set LLVM_VERSION=50 only for 12aarch64 and not for 11aarch64. Is this intended?
Comment 5 Greg V 2018-07-12 23:54:36 UTC
(In reply to Yuri Victorovich from comment #4)
See comment above:

> Using LLVM 5 there — LLVM 6 results in assertion failures on aarch64

And the first post:

> I hope the 11.2 bootstrap works for 11.1

I called the bootstrap binary "…-11.2" because I compiled it on 11.2.

It will *likely* work on 11.1 — I don't think there were any actual ABI breaks?

(Related: before ino64, I could build haskell binaries on 12 and run them on 11 without any problems :D)
Comment 6 Yuri Victorovich freebsd_committer 2018-07-13 05:35:13 UTC
Committed, thanks!
Comment 7 commit-hook freebsd_committer 2018-07-13 05:35:35 UTC
A commit references this bug:

Author: yuri
Date: Fri Jul 13 05:35:10 UTC 2018
New revision: 474550
URL: https://svnweb.freebsd.org/changeset/ports/474550

  lang/crystal: Update 0.24.1 -> 0.25.1

  PR:		229636
  Submitted by:	Greg V <greg@unrelenting.technology> (maintainer)