Re: lang/elixir | v1.13.3

From: Dave Cottlehuber <dch_at_freebsd.org>
Date: Thu, 17 Feb 2022 08:05:25 UTC
On Wed, 16 Feb 2022, at 22:10, Mike Jakubik wrote:
> Hi,
>
> For us the difference is that the runtime does not come erl or the 
> erlang compiler. We run a custom developed app written in Elixir but 
> there are some erlang modules as well, recompiling said app requires 
> the files found in the "erland24" pot but not in "erlang-runtime24". I 
> Hope that makes things a bit clearer. Basically the way the non -devel 
> elixir port works.

Hi Mike,

You misunderstand me. Your error is a little unclear, but I suspect
all you need is `export PATH=/usr/local/lib/erlang24/bin:$PATH` and
you should be fine, without modifying the port.

TLDR:

- lang/erlang-runtime24 is *identical* to lang/erlang. We build them
the same way. diff erlang/Makefile erlang-runtime24/Makefile, or 
  run sha256 over the stdlib + beam files
- if you have a specific error or bug let's see it with source code
  rather than try to guess from error messages. PM email is fine if that
  helps.
- elixir 13 needs OTP22+ per https://hexdocs.pm/elixir/compatibility-and-deprecations.html
  and previously the lang/erlang port was OTP21.

What OTP apps are you missing, or what other erlang packages do you depend on?
Are you building from ports, or using packages? Which specific packages are you
missing?

The ports framework provides options, enabled by default:

- chunks
- corba
- dtrace
- java (off by default)
- kqueue
- odbc (off by default)
- openssl
- sctp
- term sharing
- wx (off by default)

only in lang/erlang are:

- dirty schedulers (this will be on permanently soon anyway)
- fop (docs generation, off by default)
- manpages (docs generation, off by default)
- pdf (docs generation, off by default)

and all of these options are provided as separate individual ports:

- erlang-wx (wx)
- erlang-java (java)
- erlang-man (docs)
- ODBC is the only option you can't get by installing an extra port

What I'm saying is that if you're running today on latest ports branch,
then AFAICT lang/erlang is identical to lang/erlang-runtime24 in every
respect, unless you build with port options yourself.

And if you install erlang-wx, erlang-java, and erlang-man, then you can
share those extra plugins with lang/erlang-runtime24 as well easily.

The point of the elixir-devel port is that people who want the latest
shiny things can have them (JIT compiler from OTP24, and when OTP25 comes
arm64 JIT as well), while ports that don't get updated upstream often, can
sit on lang/erlang-runtime21 or whatever as required.

I suspect in your case, all you need is to use the elixir-devel port, and
prepend the path.

A+
Dave 
-
O for a muse of fire, that would ascend the brightest heaven of invention!