adam12 changed the topic of #ruby to: Rules: https://ruby-community.com | Ruby 3.1.3, 3.0.5, 2.7.7: https://www.ruby-lang.org | Paste 4+ lines to: https://gist.github.com | Books: https://goo.gl/wpGhoQ | Logs: https://libera.irclog.whitequark.org/ruby/
grokify has joined #ruby
moldorcoder7 has quit [Ping timeout: 256 seconds]
fowl has quit [Quit: The Lounge - https://thelounge.chat]
fowl has joined #ruby
grokify has quit [Remote host closed the connection]
helveticamono_ is now known as helveticamono
Y05hito__ has joined #ruby
grokify has joined #ruby
crax23 has quit [Ping timeout: 260 seconds]
grokify has quit [Ping timeout: 255 seconds]
Milos has quit [Quit: ZNC 1.8.2 - https://znc.in]
Milos has joined #ruby
crankharder has joined #ruby
grokify has joined #ruby
FullMetalStacker has quit [Remote host closed the connection]
crankharder has quit [Ping timeout: 256 seconds]
perrierjouet has quit [Quit: WeeChat 3.7.1]
grokify has quit [Remote host closed the connection]
_73 has joined #ruby
markong has quit [Ping timeout: 260 seconds]
grokify has joined #ruby
perrierjouet has joined #ruby
grokify has quit [Ping timeout: 260 seconds]
Rounin has quit [Ping timeout: 256 seconds]
caedmon has joined #ruby
reset has joined #ruby
grokify has joined #ruby
grokify has quit [Ping timeout: 256 seconds]
caedmon has quit [Ping timeout: 260 seconds]
grokify has joined #ruby
grokify has quit [Ping timeout: 255 seconds]
caedmon has joined #ruby
caedmon has quit [Ping timeout: 256 seconds]
caedmon has joined #ruby
grokify has joined #ruby
grokify has quit [Ping timeout: 256 seconds]
crankharder has joined #ruby
crankharder has quit [Ping timeout: 268 seconds]
crax23 has joined #ruby
Y05hito__ has quit [Ping timeout: 256 seconds]
grokify has joined #ruby
grokify has quit [Ping timeout: 260 seconds]
caedmon has quit [Ping timeout: 268 seconds]
caedmon has joined #ruby
cartdrige has joined #ruby
crax23 has quit [Ping timeout: 256 seconds]
caedmon has quit [Ping timeout: 260 seconds]
ur5us has quit [Ping timeout: 252 seconds]
white_magic has joined #ruby
victori has quit [Quit: ZNC 1.8.2 - https://znc.in]
caedmon has joined #ruby
victori has joined #ruby
Linux_Kerio has joined #ruby
aeris has quit [Remote host closed the connection]
caedmon has quit [Ping timeout: 260 seconds]
_73 has quit [Killed (silver.libera.chat (Nickname regained by services))]
aeris has joined #ruby
tumdum has joined #ruby
white_magic has quit [Quit: Client closed]
crax23 has joined #ruby
cartdrige has quit [Ping timeout: 256 seconds]
hrberg has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
hrberg has joined #ruby
crankharder has joined #ruby
grokify has joined #ruby
crankharder has quit [Ping timeout: 268 seconds]
moldorcoder7 has joined #ruby
grokify has quit [Ping timeout: 252 seconds]
ur5us has joined #ruby
gonix has joined #ruby
FullMetalStacker has joined #ruby
ur5us has quit [Ping timeout: 260 seconds]
crax23 has quit [Read error: Connection reset by peer]
otisolsen70 has joined #ruby
gonix has quit [Ping timeout: 252 seconds]
crankharder has joined #ruby
Rounin has joined #ruby
Rounin has quit [Changing host]
Rounin has joined #ruby
grokify has joined #ruby
crankharder has quit [Ping timeout: 256 seconds]
grokify has quit [Ping timeout: 256 seconds]
crankharder has joined #ruby
CrazyEddy has quit [Ping timeout: 252 seconds]
crankharder has quit [Ping timeout: 252 seconds]
CrazyEddy has joined #ruby
sympt has quit [Ping timeout: 268 seconds]
ur5us has joined #ruby
sympt has joined #ruby
Linux_Kerio has quit [Ping timeout: 260 seconds]
infernix has quit [Ping timeout: 256 seconds]
infernix has joined #ruby
gonix has joined #ruby
dionysus69 has joined #ruby
jvalleroy has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
jvalleroy has joined #ruby
FullMetalStacker has quit [Remote host closed the connection]
FullMetalStacker has joined #ruby
soknte5 has joined #ruby
gonix has quit [Ping timeout: 248 seconds]
soknte5 has quit [Ping timeout: 246 seconds]
grokify has joined #ruby
ur5us has quit [Ping timeout: 256 seconds]
grokify has quit [Ping timeout: 256 seconds]
grokify has joined #ruby
grokify has quit [Ping timeout: 252 seconds]
grokify has joined #ruby
Sankalp has quit [Ping timeout: 256 seconds]
grokify has quit [Ping timeout: 255 seconds]
Sankalp has joined #ruby
FullMetalStacker has quit [Remote host closed the connection]
FullMetalStacker has joined #ruby
otisolsen70_ has joined #ruby
cartdrige has joined #ruby
gonix has joined #ruby
otisolsen70_ has quit [Remote host closed the connection]
otisolsen70 has quit [Ping timeout: 265 seconds]
gonix has quit [Ping timeout: 260 seconds]
otisolsen70 has joined #ruby
markong has joined #ruby
cartdrige has quit [Ping timeout: 268 seconds]
smp_ has joined #ruby
crankharder has joined #ruby
smp has quit [Ping timeout: 264 seconds]
smp_ is now known as smp
crankharder has quit [Ping timeout: 248 seconds]
crankharder has joined #ruby
crankharder has quit [Ping timeout: 260 seconds]
gonix has joined #ruby
caedmon has joined #ruby
dionysus69 has quit [Ping timeout: 260 seconds]
dionysus69 has joined #ruby
crankharder has joined #ruby
caedmon has quit [Ping timeout: 265 seconds]
FullMetalStacker has quit [Remote host closed the connection]
Linux_Kerio has joined #ruby
havenwood changed the topic of #ruby to: Rules: https://ruby-community.com | Ruby 3.1.3, 3.0.5, 2.7.7, 3.2.0-rc1: https://www.ruby-lang.org | Paste 4+ lines to: https://gist.github.com | Books: https://goo.gl/wpGhoQ | Logs: https://libera.irclog.whitequark.org/ruby/
FullMetalStacker has joined #ruby
crankharder has quit [Quit: leaving]
grokify has joined #ruby
caedmon has joined #ruby
grokify has quit [Remote host closed the connection]
grokify has joined #ruby
grokify has quit [Remote host closed the connection]
In0perable has quit [Excess Flood]
Inoperable has joined #ruby
grokify has joined #ruby
grokify has quit [Ping timeout: 246 seconds]
caedmon has quit [Ping timeout: 265 seconds]
some14u has joined #ruby
some14u has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
grokify has joined #ruby
<isene> How do I find the path of a specific gem from within a ruby script?
gonix has quit [Read error: Connection reset by peer]
mdemo has joined #ruby
<ox1eef_> isene: Gem.latest_spec_for("foo").gem_dir - seems to be extremely slow, though.
<ox1eef_> Gem.loaded_specs.find { _2.name == "foo" }.gem_dir is considerably faster, but that's assuming you have loaded the gem into the Ruby process already.
<ox1eef_> Gem.loaded_specs.find { _2.name == "foo" }[1].gem_dir *
grokify has quit [Remote host closed the connection]
grokify has joined #ruby
grokify has quit [Ping timeout: 246 seconds]
cartdrige has joined #ruby
grokify has joined #ruby
grokify has quit [Remote host closed the connection]
grokify has joined #ruby
some14u has joined #ruby
grokify has quit [Remote host closed the connection]
grokify has joined #ruby
grokify has quit [Remote host closed the connection]
grokify has joined #ruby
some14u has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
_ht has joined #ruby
dionysus69 has quit [Ping timeout: 265 seconds]
grokify has quit [Remote host closed the connection]
grokify has joined #ruby
grokify has quit [Remote host closed the connection]
grokify has joined #ruby
grokify has quit [Remote host closed the connection]
some14u has joined #ruby
grokify has joined #ruby
some14u has quit [Client Quit]
<isene> ox1eef_: To specify, what I need is for the main executable to load all the functionality that is located as separate scripts under the "lib" folder where the gem is installed
grokify has quit [Remote host closed the connection]
grokify has joined #ruby
grokify has quit [Remote host closed the connection]
grokify has joined #ruby
grokify has quit [Ping timeout: 256 seconds]
<ox1eef_> isene: Dir.glob(File.join(Gem.latest_spec_for("foo").gem_dir, "lib", "**/*.rb")).each do { require(_1) } - I don't quite get it though. Why are you doing this?
<ox1eef_> If you want to load 'lib/foo.rb' from 'bin/foo.rb', then you could use __dir__ but there's no need since rubygems should take care of that for you.
markong has quit [Ping timeout: 260 seconds]
dviola has quit [Ping timeout: 264 seconds]
dviola has joined #ruby
grokify has joined #ruby
grokify has quit [Ping timeout: 256 seconds]
FullMetalStacker has quit [Remote host closed the connection]
FullMetalStacker has joined #ruby
caedmon has joined #ruby
crax23 has joined #ruby
caedmon has quit [Ping timeout: 260 seconds]
cartdrige has quit [Ping timeout: 268 seconds]
grokify has joined #ruby
FullMetalStacker has quit [Remote host closed the connection]
grokify has quit [Ping timeout: 260 seconds]
FullMetalStacker has joined #ruby
ur5us has joined #ruby
some14u has joined #ruby
some14u has quit [Client Quit]
grokify has joined #ruby
grokify has quit [Ping timeout: 246 seconds]
goldfish has joined #ruby
caedmon has joined #ruby
ur5us has quit [Ping timeout: 260 seconds]
caedmon has quit [Client Quit]
caedmon has joined #ruby
grokify has joined #ruby
caedmon has quit [Client Quit]
caedmon has joined #ruby
grokify has quit [Ping timeout: 260 seconds]
caedmon has quit [Ping timeout: 260 seconds]
ur5us has joined #ruby
neshpion has joined #ruby
<neshpion> what is jruby and mruby and picoruby and truffleruby
<adam12> neshpion: Different versions of a Ruby interpreter.
_ht has quit [Quit: _ht]
<neshpion> what sets them apart from each other?
<havenwood> neshpion: JRuby is a full featured implementation of Ruby on the JVM. It's an alternative JVM language to others like Scala, Clojure and Kotlin.
<neshpion> it's more portable?
<havenwood> TruffleRuby can also run on the JVM but also can be backed by GraalVM/SubatrateVM. It's more experimental than JRuby but runs C-extenions, unlike JRuby which uses Java extensions that are broadly available for popular gems. The big TruffleRuby wins are performance due a JIT more advanced than most all out there and language interop.
<havenwood> neshpion: It runs where JRuby runs, so very portable and runs on Android, etc.
<havenwood> I mean, runs where Java runs*
<havenwood> MRuby is not an alternative implementation of CRuby, but a subset of the language targeting embedding. PicoRuby is MRuby with a smaller footprint for devices wiht extremely limited resources.
<havenwood> You can embed MRuby inside C code, or inside other compiled languages like Crystal, Nim, Zig, whatever.
<havenwood> MRuby can run on a toaster.
<neshpion> MRuby in the kernel when
<havenwood> It backs portable projects like DragonRuby for games, since it can run on many platforms.
goldfish has quit [Read error: Connection reset by peer]
<havenwood> neshpion: You can already include MRuby in kernel C or Rust code, FWIW.
<havenwood> I mean, they might reject the PR, but there's no technical limitation.
<neshpion> also by CRuby do you mean the default ruby implementation e.g. that rbenv lists as simply 'ruby'?
<havenwood> Yes, CRuby is another name for the Reference C implementation of Ruby.
<neshpion> or simply by its verison number*
<neshpion> ok
grokify has joined #ruby
some14u has joined #ruby
<havenwood> Most folk run CRuby in production. MRuby has growing popularity for embedded devices and portability but most folk aren't writing web apps in it and it certainly can't run Rails.
<havenwood> JRuby can run Rails well and TruffleRuby can run it as well.
<neshpion> what's rbx
<havenwood> There are also up-and-coming implementations like Artichoke Ruby (in Rust, aims to be able to target small WASM binaries) and Natalie (compiles to C++, so small binary executables).
<havenwood> Rubinius (rbx) was a largely Ruby (and C++) implementation of Ruby that is no longer being developed.
<havenwood> It's now a "language platform" but I don't know anyone using it anymore.
<havenwood> TruffleRuby is now the "mostly Ruby" implementation and was able to harness a fair bit of rbx code.
<havenwood> Ignore rbx.
dionysus69 has joined #ruby
grokify has quit [Ping timeout: 255 seconds]
<havenwood> In Ruby 3.2 you can create a WASM+WASI Ruby VM and ship your code with it for serverside stuff but it's not very appealing to send 10+ MB to the browser.
<havenwood> It's interesting how most Ruby VMs now have some sorta WASM options at least on the roadmap.
<adam12> I'll be curious what happens with TruffleRuby now that Chris is stepping out.
<havenwood> Tom Stuart has a nifty series on an exploratory spike implementing a WAT interpreter in pure Ruby without deps: https://www.youtube.com/playlist?list=PLGinoXCc3xS24Zy-Nj-5PjdFgbOctcHjH
<havenwood> adam12: It's well maintained at the moment. Chris had been working at Shopify on various other Ruby projects.
<havenwood> adam12: A few years back Willem from Shopify reached out to Square asking about promising Ruby research and was forwarded to me. I recommended they hire Seaton, who oddly didn't seem to be on their VM research radar, and they did.
<adam12> havenwood: Interesting.
<havenwood> adam12: eregon and andrykonchin are pushing TruffleRuby forward pretty nicely, for now
<havenwood> They're fantastic maintainers, so as long as Oracle stewards the project it should be in good shape.
<havenwood> Nirvdum and others are still around too.
neshpion has quit [Quit: neshpion]
some14u has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
some14u has joined #ruby
some14u has quit [Client Quit]
some14u has joined #ruby
some14u has quit [Client Quit]
<caleb> havenwood: is Seaton ok? His last tweet is kind of worrying
<caleb> with the wording permanent rest and all
grokify has joined #ruby
<isene> ox1eef_: Here's the full reason. My programming language written i Ruby; XRPN (https://github.com/isene/xrpn) is similar to Forth in that all the functionality is comprised of specific words. Each word is a separate ruby file that is loaded during runtime. The basic set of functions - some 260 are residing in a subdir called "cmd". But the user can add his own functions - on the fly, while an XRPN
<isene> program is running - by dropping it into ~/.xrpn/cmd. So, the XRPN executable must read both the files in the "cmd" subdir under where the gem is installed and the files in ~/.xrpn/cmd. And there is a similar "global" and "local" directory called "lib" that reads more core stuff needed by XRPN.
<adam12> Gems support "data" directories, so it's an option you can explore too. http://docs.seattlerb.org/rubygems/Gem.html#method-c-datadir
grokify has quit [Ping timeout: 256 seconds]
<adam12> Actually, I wonder if they are deprecating datadir? Hm.
<adam12> Nevermind, just Gem.datadir is being deprecated.
neshpion has joined #ruby
legahc has quit [Quit: %bye%]
cnsvc- has quit [Quit: %bye%]
legahc has joined #ruby
cnsvc has joined #ruby
<ox1eef_> isene: I don't understand why you have to bypass Rubygem's require method for that. Avoid 'Gem.latest_spec_for', it is incredibly slow.
<ox1eef_> If you want to do hot reloads, have you thought of Kernel#load instead?
<ox1eef_> But yeah, I don't get the bigger picture. I don't see why you couldn't require the base of your language, and then load ~/.xrpn/cmd on demand.
<ox1eef_> The 'listen' gem might be useful for your usecase, it can detect changes in a diectory and fire a callback when it does. It leverages what's native to the OS, so the performance is usually good.
grokify has joined #ruby
grokify has quit [Ping timeout: 265 seconds]
caleb has left #ruby [Textual IRC Client: www.textualapp.com]
<neshpion> oh man i wrote a horrid bash script to do that by polling stat repeatedly
caleb has joined #ruby
cartdrige has joined #ruby
cartdrige has quit [Remote host closed the connection]
cartdrige has joined #ruby
crax23 has quit [Ping timeout: 252 seconds]
otisolsen70 has quit [Quit: Leaving]
grokify has joined #ruby
grokify has quit [Remote host closed the connection]
grokify has joined #ruby
grokify has quit [Ping timeout: 260 seconds]
some14u has joined #ruby
some14u has quit [Client Quit]
grokify has joined #ruby
grokify has quit [Ping timeout: 260 seconds]
grokify has joined #ruby
ruby[bot] has quit [Remote host closed the connection]
ruby[bot] has joined #ruby
grokify has quit [Remote host closed the connection]
grokify has joined #ruby
markong has joined #ruby
grokify has quit [Ping timeout: 256 seconds]
ur5us has quit [Ping timeout: 260 seconds]
dionysus69 has quit [Ping timeout: 246 seconds]
moldorcoder7 has quit [Ping timeout: 268 seconds]
reset has quit [Quit: reset]
grokify has joined #ruby
grokify has quit [Ping timeout: 260 seconds]
<havenwood> caleb: I certainly hope so but don't have any insight. On initial read I assumed Chris was simply stepping back from Ruby after many years of intense focus.
<havenwood> I don't know anything else. His impact has been huge for TruffleRuby and Ruby generally. Amazing maintainer, teacher, researcher, contributor to medical science, etc.
reset has joined #ruby