Bug 229636 - lang/crystal: update to 0.25.1 (& devel/shards 0.8.1) + add bootstrap for aarch64
Summary: lang/crystal: update to 0.25.1 (& devel/shards 0.8.1) + add bootstrap for aar...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Yuri Victorovich
URL:
Keywords:
Depends on:
Blocks: 201763
  Show dependency treegraph
 
Reported: 2018-07-09 11:39 UTC by Greg V
Modified: 2018-07-13 05:35 UTC (History)
1 user (show)

See Also:


Attachments
crystal0251.patch (26.39 KB, patch)
2018-07-09 11:39 UTC, Greg V
no flags Details | Diff
crystal0251.patch (+aarch64) (27.20 KB, patch)
2018-07-12 11:34 UTC, Greg V
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Greg V 2018-07-09 11:39:00 UTC
Created attachment 194989 [details]
crystal0251.patch

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
LLVM_VERSION=   50
. endif
.else
. 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
.endif
.if ${OSVERSION} < 1100000
IGNORE=         not supported on 10.x or older
.endif
.if ${OPSYS} != FreeBSD
IGNORE=         not supported on anything but FreeBSD
.endif


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

Log:
  lang/crystal: Update 0.24.1 -> 0.25.1

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

Changes:
  head/lang/crystal/Makefile
  head/lang/crystal/distinfo
  head/lang/crystal/files/
  head/lang/crystal/pkg-plist