close
Skip to main content
Meatack u/Meatack avatar

Meatack

u/Meatack

Feed options
Hot
New
Top
View
Card
Compact

Crystal 1.20.2 released
Image
r/crystal_programming
Crystal 1.20.2 released

Small one today (May 15). Just 2 bug fixes from 1 contributor, but worth pulling if you're on the 1.20 line:

  • Backport of the Range#sample randomness fix (#16909) - under certain conditions it could lose randomness over time. Already shipped to 1.19 back in 1.19.2; now landing on 1.20 too.

That's the whole release. No new features, no API changes - see the 1.20.0 notes if you missed the big stuff (new Process API preview, io_uring event loop, mold/lld defaults).

Shoutout to u/ysbaddaden for the fix.

Release notes: crystal-lang.org/2026/05/15/1.20.2-released/


Hey, interested. Quick questions before we go deeper: 1. Gross or net revenue (after Apple/Google cut)?
2. Monthly revenue for all 8 months?
3. Sub vs one-time split, and churn?
4. Why did revenue drop from $2.5k to $1.1k?
5. Asking price?
Thanks!


Hey, interested in the bot. Could you share:

  1. Asking price

  2. How revenue is generated (subscriptions, one-time, etc.) and rough customer count

  3. Tech stack and hosting setup

  4. Proof of the Feb–Apr revenue (Stripe/PayPal screenshots) Thanks!


Hey, interested in Brio. Before I put an offer together, could you share:

Current MRR and number of paying subscribers (vs. the free lifetime users) Trailing 3-6 month revenue trend Asking price or range you'd consider Monthly costs (Mixpanel, Firebase, Superwall, RevenueCat) Reason for selling Happy to move to DM. Thanks!



Crystal 1.19.0 Released!
Image
r/crystal_programming
Crystal 1.19.0 Released!

Crystal 1.19.0 just dropped! Here are the highlights:

Breaking Changes

  • OpenSSL 1.1.1+ or LibreSSL 3+ now required

  • Monotonic clocks now include suspended time

  • WebSocket#stream flush is now a no-op

Key Features

  • Execution Context is here! Compiler now built with -Dexecution_context – the new concurrency model is becoming default

  • New Sync moduleSync::Mutex, Sync::RWLock, and Sync::ConditionVariable for proper synchronization primitives

  • Time::Instant – new type for monotonic time measurements

  • SNI support via OpenSSL::SSL::Context::Server#on_server_name

  • Large JSON file support – finally!

  • Int.from_digits – inverse of Int#digits

  • NamedTuple#reverse_merge, Set#map!, Hash#transform_keys!

  • Path#relative?

  • Process.debugger_present? for Windows/Linux

Macro Improvements

  • Compiler flag values via flag?

  • StringLiteral#gsub with block, #match, #split(Regex)

Bug Fixes

  • Multiple XML memory leaks fixed

  • Several interpreter fixes

  • Thread safety improvements across the board

Full changelog: https://github.com/crystal-lang/crystal/releases/tag/1.19.0


Happy coding! 💎


Thanks, I will delete my post for now.


Something like this

abstract class Human; end
class Person < Human; end
class Employee < Person; end

def get_class(name) : Array(Human)
  return [Person.new] of Human if name == “person”
  [Employee.new] of Human
end

puts get_class("person")

or

class Person
end

class Employee < Person
end

def get_class(name) : Array(Person)
  return [Person.new] if name == "person"
  [Employee.new] of Person
end

puts get_class("person")

https://play.crystal-lang.org/#/r/eaev/edit