Gleam v1.17.0

128 points by figbert 15 days ago on hackernews | 18 comments

J7jKW2AAsgXhWm | 15 days ago

amazing!

sunjester | 15 days ago

None of the links on your website footer work?
Hmm they all seem to be working for me

__jonas | 15 days ago

Lovely to see support for building escripts in the compiler. I’d be excited to see that go one step further and provide something like the deno/bun/node compile feature, allowing one to export a binary that includes the BEAM and compiled code in a single file. I know some people are working on tools like that already and it’s not trivial, but having it in the compiler would be really neat.

trescenzi | 15 days ago

Every time I read one of these I’m impressed by the language server work. Gleam’s DX is so good.

3stacks | 14 days ago

but do they oppose nazism? This is a key factor in choosing a programming language

batisteo | 14 days ago

I don’t know how it relate to the responded comment, nor what’s the level a sarcasm used, but they do, it’s on the footer of every pages.

> Black lives matter. Trans rights are human rights. No nazi bullsh*t.

Is it enforced? I just hope so.

every time I use Gleam I feel happy

Defletter | 15 days ago

Huh, I didn't know how much I needed a "todo" type until now. So often I'll be defining a packet sumtype, or a collection, and not have created the type yet, so just use ubyte, or Object, or whatever. Having an explicit "todo" type would be amazing in other languages.

adamdecaf | 15 days ago

Scala has had a function called ??? which fills the same role and it’s really useful.

https://scala-lang.org/api/3.3.1/scala/Predef$.html#???-0

packetlost | 14 days ago

Rust has the todo!() macro but no todo type. I use todo! constantly and would probably make heavy use of a todo type as well...

0xdeafbeef | 14 days ago

Todo type in rust will be a never type. Eg thing which exit or panic returns

packetlost | 14 days ago

Oh I hadn't thought about that!

stevefan1999 | 15 days ago

Is there any AOT solution for running BEAM?

toast0 | 15 days ago

The BEAM JIT is all done when .beam files are loaded. It's a runtime JIT, because you can always load new code, but it's not a tracing JIT and it's designed to be pretty fast to do it while loading. For most applications of BEAM, I think the time spent loading code, including JIT, is probably immaterial.

If you have a special need, I haven't seen anyone do it, but I would expect it wouldn't be that hard to run the jit ahead of time. I haven't fully studied it, but I think the expectation is the output from jit should be pretty much the same every run, so it seems doable to generate it once and load many times.

cdaringe | 14 days ago

Compile to js target and leverage v8 compiler cache? I dunno, just riffing. You’re probably BEAMing vs js runtime-ing for server workloads, but periodically i compile to node and do stuff

ofrzeta | 15 days ago

Stupid question but does the Gleam website run on Gleam?

okkdev | 15 days ago

Yes! It's statically built. https://github.com/gleam-lang/website