Stream: beginners

Topic: announcements


view this post on Zulip Anton (Sep 19 2022 at 13:50):

For macos apple silicon devices:
Nightlies created from tomorrow on will require you to have llvm installed using brew install llvm@13. This is still required if you previously installed llvm 13 through brew install llvm.

view this post on Zulip Anton (Sep 19 2022 at 13:54):

This will make install instructions simpler in the future.

view this post on Zulip Richard Feldman (Sep 19 2022 at 13:59):

huh, llvm doesn't get bundled in the binary? :astonished:

view this post on Zulip Anton (Sep 19 2022 at 14:12):

I'll make an issue to look into static linking

view this post on Zulip Richard Feldman (Sep 19 2022 at 14:16):

awesome, thank you!

view this post on Zulip Anton (Sep 19 2022 at 14:17):

Specifically we are missing llvm/lib/libc++abi.1.dylib when executing the c hello world. This may be the only "part of llvm" that is dyn linked. I'm also not sure what code relies on libc++abi.1

view this post on Zulip Brendan Hansknecht (Sep 19 2022 at 14:51):

When does that error message pop up? Is this just due to us tryin to build a c host with. clang and libc++, or is this a roc app building issue?

view this post on Zulip Anton (Sep 19 2022 at 15:02):

I don't know yet, this was an error encountered by @doubledup. Probably the easiest way to reproduce this would be to temporarily move libc++abi.1.dylib from /opt/homebrew/opt/llvm/lib on an apple silicon device.

view this post on Zulip Richard Feldman (Sep 19 2022 at 15:11):

I wonder if that happens on all hosts, or only on some

view this post on Zulip Ayaz Hafiz (Sep 21 2022 at 16:18):

:magnifying_glass: FYI :magnifying_glass: Opaque booleans have landed! If you have programs using True or False for booleans, the only changes you should need to make are:

Thanks to @Kilian Vounckx for landing this! And let us know if you have any trouble with the new booleans.

view this post on Zulip Richard Feldman (Sep 21 2022 at 16:25):

looks like the repl hasn't been updated yet :big_smile:

Screen-Shot-2022-09-21-at-12.25.45-PM.png

I bet that would be a nice first issue if anyone wants to contribute it!

view this post on Zulip Ayaz Hafiz (Jan 17 2023 at 19:43):

FYI, a restriction in what kinds of values are allowed to be polymorphic has been added to Roc, as described in this thread: https://roc.zulipchat.com/#narrow/stream/304641-ideas/topic/Let-generalization.20-.20let's.20not.3F

TL;DR only the following assignments can now be used polymorphically:

If you have an assignment that you'd like to use polymorphically but is not a function or number literal, you can always transform it to a thunk that can be then used polymorphically. For example,

emptyState = { list : [] }

emptyStrState : { list : List Str }
emptyStrState = emptyState

emptyNatState : { list : List Nat }
emptyNatState = emptyState # ❌ type error today!

can be written as

emptyState = \{} -> { list : [] }

emptyStrState : { list : List Str }
emptyStrState = emptyState {}

emptyNatState : { list : List Nat }
emptyNatState = emptyState {} # ✅ okay!

Builtin API changes:

view this post on Zulip Ayaz Hafiz (Jan 17 2023 at 19:44):

If you suspect you've run into a bug related to the above behavior, please file an issue or let me know.

We are working on better error messages for the kind of type errors that happen in the first example presented above.


Last updated: Jul 06 2025 at 12:14 UTC