sz0 has quit [Quit: Connection closed for inactivity]
aroaminggeek[awa is now known as aroaminggeek
aroaminggeek has left #crystal-lang ["Textual IRC Client: www.textualapp.com"]
ashirase has quit [Ping timeout: 255 seconds]
ashirase has joined #crystal-lang
vivus has quit [Quit: Leaving]
woodruffw has quit [Ping timeout: 246 seconds]
woodruffw has joined #crystal-lang
woodruffw has quit [Changing host]
woodruffw has joined #crystal-lang
chrisarc1nd is now known as chrisarcand
astronavt has quit [Remote host closed the connection]
astronavt has joined #crystal-lang
woodruffw has quit [Quit: And then he took off.]
woodruffw has joined #crystal-lang
woodruffw has quit [Changing host]
woodruffw has joined #crystal-lang
snsei has joined #crystal-lang
woodruffw has quit [Remote host closed the connection]
woodruffw has joined #crystal-lang
woodruffw has joined #crystal-lang
woodruffw has quit [Changing host]
rohitpaulk has joined #crystal-lang
<FromGitter>
<jwaldrip> is there a way around this without using captured blocks? recursive block expansion: blocks that yield are always inlined, and this call leads to an infinite inlining
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
<FromGitter>
<marksiemers> The presentation is about 30 minutes, and a second video has the Q&A portion. ⏎ I made some statements and claims that I want to double-check and either confirm or clarify. These points in particular: ⏎ ⏎ 1) Crystal is mostly implemented high-level, with Crystal. It uses something called LLVM to get it to low-level…Crystal goes to LLVM byte code and that gets compiled. ⏎ 2) Crystal is much
snsei has quit [Remote host closed the connection]
<FromGitter>
<marksiemers> If anyone can confirm or correct those statements, LMK.
snsei has joined #crystal-lang
<FromGitter>
<jwaldrip> there is a caveat, there are some dynamically linked libraries
snsei has quit [Remote host closed the connection]
<FromGitter>
<jwaldrip> i.e. Bohem GC, LibreSSL, LibYAML
snsei has joined #crystal-lang
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Remote host closed the connection]
<FromGitter>
<marksiemers> For each app that you build, those are dynamically linked?
<FromGitter>
<jwaldrip> yep
snsei has joined #crystal-lang
<FromGitter>
<marksiemers> ok, thanks
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Remote host closed the connection]
snsei has joined #crystal-lang
snsei has quit [Remote host closed the connection]
<FromGitter>
<drosehn> [ @mjago & rx14 ] After my post 22 hours ago, I got caught up unrelated issues at work, so I haven't had time to catch up on gitter until just now. And I need to head home soon to catch up on sleep, but I'll check the page at stackoverflow and see if that helps me.
<FromGitter>
<drosehn> Note, however, that I was *already* using `Process.run()`, but I'm obviously missing some important details. I have something which seems to work well enough for my purposes, but *it* always ends by raising * kill: No such process (Errno)*. I am not calling `kill`. I'm not quite that stupid, not even when I'm really tired.
<FromGitter>
<drosehn> I got my code to work by putting a rescue around my call to `Process.run()`, so I can capture that `kill`-related error. But I can't believe that is how it's supposed to work. I'm sure I'm missing something which is super-obvious to anyone who understands the `IO::FileDescriptor` stuff. I'm going to be heading home soon, but hopefully that page at stackoverflow will point me in the right direction. Thanks!
<FromGitter>
<bararchy> Oh, I just understood that IO is IO, so eventloop "non_blocking which is actually blocking but Crystal has your back" thingy is working for Files too and not just Sockets
<FromGitter>
<bararchy> so, NVM
rohitpaulk has quit [Ping timeout: 268 seconds]
dhk has joined #crystal-lang
csk157 has joined #crystal-lang
csk157 has quit [Ping timeout: 250 seconds]
snsei has joined #crystal-lang
dhk has quit [Quit: Leaving]
snsei has quit [Ping timeout: 240 seconds]
<jokke>
where can i read about the current state of "real" concurrency for crystal?
<FromGitter>
<bararchy> There is no "real" state, there is a. Dead fork, and no one is working on this feature right now
<jokke>
oh really?
<jokke>
i thought this was a major priority for 1.0 release
<FromGitter>
<bararchy> It is, but 1.0 is not here anytime soon
<jokke>
:/
<jokke>
how come?
<jokke>
is manas pulling off resources?
<FromGitter>
<bararchy> jokke, manas resources for Crystal are really minimal to begin with, moreonver, there lack of comunication makes following what they actually do really hard, right now as far as I can tell, non-manas core team is the most Active, which is essentilly....RX14 XD
<jokke>
what's up with jhass? isn't he active any more?
<FromGitter>
<bararchy> he isn't Manas employee as far as I know
<jokke>
but he's not doing any work on the compiler afair
<jokke>
no he's not
<jokke>
but RX14 isn't either
<FromGitter>
<bararchy> that was my point :)
<jokke>
yeah
<jokke>
well i'm doing what i can to promote crystal in my circle
<FromGitter>
<bararchy> The only manas I see is @mgarciaisaia , who is the comunnity manager
<FromGitter>
<bararchy> he closes releases
<jokke>
hm ok
<RX14>
You forgot about ysbaddaden
<FromGitter>
<bararchy> Oh, true
<FromGitter>
<bararchy> he is manas
<RX14>
No
<RX14>
No he's not
<jokke>
that's a shame :/ I really wish there was an alternative for go with a solid language design...
<RX14>
There is, crystal
<jokke>
not without proper concurrency
<jokke>
non blocking io is great, but it's not much better than node in that sense (except that it has much better single thread performance of course)
<RX14>
We have concurrency
<RX14>
Just not parallelism
<jokke>
yes okay. Sorry
<RX14>
Please don't get them mixed up
<FromGitter>
<bararchy> yasbaddaden isn't manas? wow... so this means no one from manas has been activly working on code for the last 3 months or so
<RX14>
But manas is going through a tough spot right now
<FromGitter>
<bararchy> looking at the whole year
<FromGitter>
<bararchy> bcrdiff was the on;y manas working on Crystal
rohitpaulk has joined #crystal-lang
<jokke>
asterite is manas
<FromGitter>
<bararchy> no he isn't
<jokke>
what?!
<jokke>
really? :D
<FromGitter>
<bararchy> he left manas long time ago
<jokke>
he's invested as hell then!
<FromGitter>
<bararchy> don't really remember when
<jokke>
aah ok
<FromGitter>
<bararchy> yeha @asterite does great work :)
<jokke>
no wonder manas is in a tight spot if he left ;)
<RX14>
Ary left earlier this year
<FromGitter>
<bararchy> RX14 - I'm sure manas are doing there best, It's not that I'm blaming, it's just the notation of Crystal == Manas is kinda false now days
<RX14>
But he's still very much friends with the manas lot
<RX14>
And that's a good thing @bararchy
<FromGitter>
<bararchy> well, in that case they shouldn't be getting payed for it no?
<FromGitter>
<bararchy> and you. and jhass and yasbad should be
<jokke>
you mean by donations?
<RX14>
That's not how open source works
<RX14>
Lol
<RX14>
I do it because I love it
<FromGitter>
<bararchy> it's not, but taking donations while not doing work is kinda ....
<FromGitter>
<bararchy> I know dude
<RX14>
If someone wants to employ me to work on crystal I would say yes any day
<jokke>
well i guess they're paying for the server infrastructure
<RX14>
But that doesn't seem likely
<FromGitter>
<bararchy> I still think that if donations are given in false pretence that Manas are having 2 half time devs on Crystal
<jokke>
^
<jokke>
well.. they've raised 8.5k with bounty source... that's nothing
<FromGitter>
<bararchy> It's not much, that's true, but if this money can go dynamiclly to the biggest contrubuter each month, that would be more fair
<FromGitter>
<bararchy> anyway, back to topic, RX14, is there a way to timeout on File.gets ? it seems that `f = File.open; f.read_timeout = 0.5` doest not timeout
<jokke>
as soon as you start rewarding people for commits things go to shit
<FromGitter>
<bararchy> jokke, could be, I didn't really thought this thouru, just saying that it feels wierd right now
<faustinoaq>
How is possible crystal package size is only 3MB but installation uses 60MB storage?
<faustinoaq>
Is crystal package so well compressed?
<FromGitter>
<bararchy> packed as sources?
<faustinoaq>
No, is binary, I tested it, I just need to download 3MB using `sudo pacman -S crystal`
<faustinoaq>
Is insane, way smaller that other languages...
<faustinoaq>
except Lua, Lua is impressive small
<faustinoaq>
Crystal package (3.1MB) is even smaller than Ruby (3.7MB) and Python(60MB+). Also compared with other compiled languages crystal is very tiny, by example Julia (10MB+), Nim (17MB), Rust (60MB+) and Go(60MB+). Just elixir is smaller(2.9MB) but needs OTP VM
<faustinoaq>
We still have the Clang dependency (50MB), or GCC(30MB+)
<faustinoaq>
RX14 Do you think would be possible to use tinyc or some other small c compiler, instead of clang/gcc?
<RX14>
We don't need a compiler
<RX14>
We just need a linker
<RX14>
Its something to be fixed
<RX14>
But its nowhere near a priority
<FromGitter>
<alehander42> for a lot of those languages packages are not the recommended way to install tho
<faustinoaq>
Oh, I understand +1
<RX14>
Please use packages
<FromGitter>
<alehander42> but 3 mb is impressive
<RX14>
Distro packages are the best
<FromGitter>
<alehander42> depends on the project RX14
<RX14>
Why?
<FromGitter>
<alehander42> I've seen some young languages recommending prebuilt binaries, some of them can be upgraded using their own packaga managers or tools
<faustinoaq>
Like Rust?
<FromGitter>
<alehander42> e.g. I update Julia using binaries
<FromGitter>
<alehander42> yeah rust like that
<FromGitter>
<alehander42> for Nim, I directly pull devel and compile, as its exctremely quick to compile
<FromGitter>
<alehander42> etc
<RX14>
Well I don't mind rustup
<RX14>
Rustup is pretty much the only good way to do a version manager
<RX14>
And you should install rustup as a system package
<FromGitter>
<alehander42> yeah, packages especially after v1.0 are best ofc, but people still do a lot of different things
<faustinoaq>
@alehander42, Well, crystal is not too fast to compile, but is acceptable, I can compile crystal-master in less than one minute without --release flag
<FromGitter>
<alehander42> maybe, I haven't analyzed a lot rustup itself, what is it doing better
<RX14>
It doesn't mess with the shell
<FromGitter>
<alehander42> nah, I compile nim in release in 10 seconds, but that's not too important, just showcasing different approaches
<RX14>
It has wrapper binaries in /usr/bin which call the real binaries
<FromGitter>
<alehander42> nice, is it easy to use several versions of rust with it? I used only one
<faustinoaq>
Yeah, I used to use crenv but have some issues with LLVM
<faustinoaq>
s/have/had/
<faustinoaq>
Nim compile times are very impressive +1
<FromGitter>
<alehander42> yeah, that's one of it major plus-es I guess, but afaik it's harder with llvm
<faustinoaq>
Yeah, LLVM is a great tool, but it has some downsides
<faustinoaq>
like slow compilation
<faustinoaq>
I guess why go/nim don't use it
<FromGitter>
<alehander42> at least nim has a lot of different garb collectors and eventually a gcless mode, go has very special light threads, so I guess that too
<FromGitter>
<alehander42> btw what is the reason there is no windows version?
<FromGitter>
<alehander42> I thought the same llvm code can map easily different os-es
<RX14>
It can compile code for windows but that doesn't help if the apis are different
<RX14>
Think about it: using clang doesn't magically make Linux programs magically work on windows
<RX14>
Otherwise we'd all be doing that
<FromGitter>
<alehander42> of course, just it seems supporting at least most of the correct windows api-s shouldn't be too difficult
<FromGitter>
<alehander42> but it might be harder than I think
<FromGitter>
<bitmappergit> wait, i can use C libraries with crystal or am I misunderstanding
<RX14>
You can
<RX14>
We use libc and libevent and all sorts in the stdlib
<FromGitter>
<bitmappergit> that makes things a lot easier for me
<FromGitter>
<bitmappergit> is there any bugs/issues with using c libraries
<faustinoaq>
The post is written in Japanese, but you can translate to English, sometimes google translator is very good
<FromGitter>
<bew> who wrote this?
<FromGitter>
<bararchy> @yahhonob apparently
<FromGitter>
<bararchy> Not sure who it is thogu
<FromGitter>
<marksiemers> @faustinoaq and @RX14 - I followed up and the guy can't find the post anymore (go figure). The person who asked the question is pretty reputable. I don't think there was any malice in his question. If it turns up, I'll post it here.
<RX14>
hmm
<faustinoaq>
@bew @yahhonob is part of Crystal Japan the same team of @at-grandpa and @MakeNowJust :-)
<FromGitter>
<Sija> but that code doesn’t seem to work, in this case removing `::` fixes it
<FromGitter>
<Sija> `::` is used in case you’d have `Foo::Bar` which might get referenced instead
<sauer2>
@Sija But doesn't that only change Bar? I should probably more specific...
<FromGitter>
<Sija> depends on what’cha wanna do
<FromGitter>
<Sija> example I’ve given reopens `Bar` class adding new method to it
<FromGitter>
<Sija> what are *two different places* you’ve mentioned about?
<sauer2>
@Sija: Non-hypothetical example: I have an interpreter that has a class hierachy for registered functions. One subclass is functions defined in the script and another is for foreign functions written in Crystal... [cont]
<sauer2>
In order to add functions, you need to subclass this second one and create an instance of your custom subclass to inject it into the interpreter.
<sauer2>
Now, that involves two steps, because anonymous classes don't exist, apparently:
<sauer2>
1. Creating a custom function subclass and 2. creating and adding an instance to the interpreter object.
<FromGitter>
<Sija> ad #1: it’s possible to define classes through macros
<FromGitter>
<Sija> ad #2: it’s possible to use for example `Hash` constant to keep track of defined instances
<sauer2>
In the top-level scope I could probably use a macro to do this all in once, but in the standard library modules where I want to do this I can't declare a class and at the same time call methods on objects that don't exist yet...
flaviodesousa has quit [Ping timeout: 240 seconds]
<FromGitter>
<Sija> maybe adding another compiler pass would be a way to go?
<sauer2>
@Sija: What do you mean? Should I somehow nest macros into macros?
<sauer2>
Is there a guaranteed order of expansion?
<sauer2>
Nvm, documentation says it's possible.
<sauer2>
@Sija: Thanks a lot.
<FromGitter>
<Sija> yw!
snsei has joined #crystal-lang
sauer2 has quit [Quit: Page closed]
snsei has quit [Ping timeout: 255 seconds]
<jokke>
any idea what this means: crystal: /var/cache/omnibus/src/llvm/llvm-3.8.1.src/lib/CodeGen/LexicalScopes.cpp:160: llvm::LexicalScope* llvm::LexicalScopes::getOrCreateRegularScope(const llvm::DILocalScope*): Assertion `cast<DISubprogram>(Scope)->describes(MF->getFunction())' failed.
<jokke>
/usr/bin/crystal: line 102: 33 Aborted (core dumped) "$INSTALL_DIR/embedded/bin/crystal" "$@"
<FromGitter>
<sdogruyol> are you using --release with --no-debug ?
<jokke>
no
<jokke>
only --release
Ven`` has joined #crystal-lang
<jokke>
should i use --no-debug?
<oprypin>
yes
<jokke>
ok
<jokke>
great!
sauer2 has joined #crystal-lang
<jokke>
now it fails with something different though
<jokke>
/usr/bin/ld: /opt/crystal/embedded/lib/../lib/libgc.a(os_dep.o): undefined reference to symbol '_end'
<jokke>
/usr/lib/x86_64-linux-gnu/libsodium.so.18: error adding symbols: DSO missing from command line
<jokke>
collect2: error: ld returned 1 exit status
<FromGitter>
<sdogruyol> do you have openssl installed?
<jokke>
i'm running the build in a docker container FROM crystallang/crystal
<oprypin>
ugh
<sauer2>
@Sija: What I can't find in the docs -> Is it possible to create and manipulate variables that exist at compile time only? For example, if I were to create a macro that creates a class and registers the class name at a compile time variable and use this information in a second macro pass somewhere else?
<oprypin>
you can do that but please don't
<oprypin>
ABC = [] of nil; {% ABC << "def" %}
<FromGitter>
<Sija> @sauer2: you could use constants for that
<FromGitter>
<Sija> exactly
rohitpaulk has quit [Ping timeout: 248 seconds]
<sauer2>
Thanks guys!
<FromGitter>
<ondreian> on Ubuntu 16.04, I have a system `pcre` which does not have utf-8 support, however the embeded pcre version of Crystal is compiled with pcre support, but when I compile using `crystal build` it does not seem to be using the utils in `/opt/crystal/embedded/bin`
rohitpaulk has joined #crystal-lang
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Ven`` has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 268 seconds]
sauer2 has quit [Quit: Page closed]
Ven`` has quit [Read error: Connection reset by peer]
Ven`` has joined #crystal-lang
claudiuinberlin has joined #crystal-lang
<jokke>
i'm still trying to compile a statically linked binary (i have done this successfully before), but it fails with: https://p.jreinert.com/6uA/
<jokke>
i wonder why, because i'm passing -lsodium to the linker
sauer2 has joined #crystal-lang
<sauer2>
@oprypin Remember when you said, please don't do that? Don't worry, it apparently isn't possible right now, because of Error in line X: can't use Class as generic type argument yet, use a more specific type
<sauer2>
And if that worked, instanciation and passing methods would probably have been the next showstoppers.
csk157 has joined #crystal-lang
csk157_1 has joined #crystal-lang
csk157 has quit [Ping timeout: 255 seconds]
<hightower2>
I would like to do something like: class X; @@var; macro x() class MyCreatedClass; @@var.push something end end end. So the question in essence is, how do I access @@var from the macro? And I can't use X.var because I need "X" to always refer to the parent class, not be fixed.
<hightower2>
Let me know if I should clarify the question better
rohitpaulk has joined #crystal-lang
<FromGitter>
<drosehn> (a guess) Could you do the `macro` part of that as a module that you would include in other classes where you want this?
snsei has joined #crystal-lang
<FromGitter>
<bew> Use a constant instead of a class variable?
<FromGitter>
<bew> What kind of thing are you trying to push in that var?
snsei has quit [Ping timeout: 255 seconds]
Liothen has quit [Ping timeout: 260 seconds]
_whitelogger_ has joined #crystal-lang
lacour has joined #crystal-lang
_whitelogger has quit [Remote host closed the connection]
<hightower2>
drosehn, bew: I managed to somehow do what I want, by passing "self" to the macro, and then using it. But it looks silly because now I write like: class X; my_macro X, the_rest(of, stuff); end. If there is a method accessible within macros that expands to name of current class, that'd solve my problem
dostoyevsky has joined #crystal-lang
<FromGitter>
<bew> Yes, `@type`
<FromGitter>
<bew> Which is the TypeNode of the current type
<FromGitter>
<bew> But it's not usable everywhere iirc
<hightower2>
Fabulous, got it. Thanks!
rohitpaulk has quit [Ping timeout: 248 seconds]
thews has quit [*.net *.split]
thews has joined #crystal-lang
thews has quit [Changing host]
thews has joined #crystal-lang
foxxx0 is now known as bsd
bsd is now known as foxxx0
DTZUZU has joined #crystal-lang
<FromGitter>
<unreadable> 2 days ago etherum was around $300 and now it's $600, wth cryptocurrencies oO
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 246 seconds]
<FromGitter>
<HCLarsen> Is there a time frame for 0.24.0?
<oprypin>
HCLarsen, assuming you mean 0.24.1. no but it could be even this week from what i've heard
<oprypin>
could be never for all i know. nothing official
<FromGitter>
<HCLarsen> That's how version usually works.
<FromGitter>
<HCLarsen> But if you guys want to break convention, that's up to you.
<oprypin>
i'm not affiliated btw
<oprypin>
this was a botched release, the "pre-release" thing is just a bad cover-up
<FromGitter>
<HCLarsen> Ohh, ok. That explains it.
<oprypin>
the convention is, if it's a normal version without a -suffix, then it can't be a pre-release
<oprypin>
so the only thing breaking convention is calling it one
Ven`` has quit [Ping timeout: 248 seconds]
Ven`` has joined #crystal-lang
<RX14>
@HCLarsen if it was 0.24.0-pre1 then yes we would release 0.24.0
<RX14>
it's not
<RX14>
it's 0.24.0 with no prerelease designation
<RX14>
so we must release 0.24.1
<FromGitter>
<HCLarsen> Right, got it.
<FromGitter>
<HCLarsen> @RX14, is there an expected release for 0.24.1?
<RX14>
a date? no
<FromGitter>
<HCLarsen> Ok.
Ven`` has quit [Ping timeout: 256 seconds]
Ven`` has joined #crystal-lang
Ven`` has quit [Ping timeout: 248 seconds]
Ven`` has joined #crystal-lang
<FromGitter>
<HCLarsen> Has anyone here worked with ysbadden's minitest shard?
<FromGitter>
<JonnyCodewalker> ah...i was wondering what was going on with 0.24 xD
<FromGitter>
<HCLarsen> Is your name a play on the whisky brand?
pabs has quit [Quit: leaving]
alex`` has quit [Ping timeout: 255 seconds]
pabs has joined #crystal-lang
<crystal-gh>
[crystal] luislavena opened pull request #5380: Execute 128bits Hasher specs that are now passing (master...execute-128bits-hasher-specs) https://git.io/vbgJI
<FromGitter>
<JonnyCodewalker> mine? no, i thought about Shmi Skywalker (anakins mum) or rather the skywalkers in general
faustinoaq has quit [Quit: IRC client terminated!]
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 255 seconds]
<FromGitter>
<HCLarsen> @JonnyCodewalker ok, I just instantly thought of Johnnie Walker whisky when I saw your name.
<FromGitter>
<HCLarsen> hightower, I think I'll try figuring out this shard before I start worrying about formatters and other stuff.
<FromGitter>
<HCLarsen> Especially considering that he just told me that I need Crystal 0.24.0 in order to use it.
<FromGitter>
<drosehn> FWIW, here's another web site which let's anyone paste in snippets of code, and gives the user a link which they can pass along to others to see. And you can select what language the code is, for formatting and helpful coloring of keywords: https://paste.ofcode.org
<FromGitter>
<marksiemers> @hightower2 - On line 19, you are passing a block that takes an argument - the `{ |x|`
<hightower2>
marksiemers: no, my problem is that I do want to pass a block which takes an argument. But for some reason it doesn't work when I want to do it "indirectly" via add_to_blocks and without specifying the block signature there
<hightower2>
I was hoping that passing the blocks as-is through add_to_blocks would work, but it doesn't
<FromGitter>
<marksiemers> With blocks, the return value can be generic, but the number and type of args cannot, unfortunately.