Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 03:11
    HertzDevil labeled #11556
  • 03:11
    HertzDevil labeled #11556
  • 03:11
    HertzDevil opened #11556
  • 02:34
    HertzDevil ready_for_review #11524
  • 02:34
    HertzDevil synchronize #11524
  • 02:33
    HertzDevil edited #11524
  • Dec 08 21:58
    straight-shoota labeled #11555
  • Dec 08 21:58
    straight-shoota labeled #11555
  • Dec 08 21:58
    straight-shoota opened #11555
  • Dec 08 21:51
    BlobCodes synchronize #11211
  • Dec 08 21:50
    straight-shoota demilestoned #11211
  • Dec 08 21:50
    BlobCodes synchronize #11211
  • Dec 08 21:47
    straight-shoota closed #11545
  • Dec 08 21:47
    straight-shoota closed #11414
  • Dec 08 21:45
    BlobCodes synchronize #11211
  • Dec 08 21:33
    straight-shoota synchronize #11159
  • Dec 08 20:13
    BlobCodes synchronize #11211
  • Dec 08 17:12
    straight-shoota milestoned #11554
  • Dec 08 17:11
    straight-shoota milestoned #11552
  • Dec 08 17:11
    straight-shoota milestoned #11553
mfiano
@mjfiano:matrix.org
[m]
Any Crystal books published yet?
George Dietrich
@Blacksmoke16
one, but it's pre 1.0
mfiano
@mjfiano:matrix.org
[m]
(or WIP)
George Dietrich
@Blacksmoke16
is one that i know of that it's the works at least
mfiano
@mjfiano:matrix.org
[m]
Ah is that mentioned on the homepage somewhere?
George Dietrich
@Blacksmoke16
dont think so
mfiano
@mjfiano:matrix.org
[m]
Ah "Programming Crystal" I take it
George Dietrich
@Blacksmoke16
yea, id prob just wait for the other to come out, as it'll be more up to date and such
mfiano
@mjfiano:matrix.org
[m]
What's this other one?
George Dietrich
@Blacksmoke16
it's WIP atm, but should be out later this year
mfiano
@mjfiano:matrix.org
[m]
Is the name or link still WIP?
George Dietrich
@Blacksmoke16
its still being written so both?
mfiano
@mjfiano:matrix.org
[m]
Ah I see. I suppose it was just mentioned in passing here or the forums then.
George Dietrich
@Blacksmoke16
https://crystal-lang.org/reference/syntax_and_semantics/index.html is also very good if you haven't read thru it yet
mfiano
@mjfiano:matrix.org
[m]
I read the whole thing yesterday.
George Dietrich
@Blacksmoke16
:thumbsup: nice
mfiano
@mjfiano:matrix.org
[m]
Working my way through the stdlib api docs now
(while writing code, because no book will teach you to do :))
Benjamin Wade
@RespiteSage
Advent of Code is also a very good source for exercises, especially if you want to learn the standard library. There's a lot of opportunity to use the very useful methods on Iterable/Enumerable/Indexable/Array.
mfiano
@mjfiano:matrix.org
[m]
I have a problem with AoC even with the language I've been using for ~20 years...not very good at human descriptions of problems with tons red herrings
Benjamin Wade
@RespiteSage
That's fair.
I tend to use Crystal pretty often to implement math routines that I find interesting (e.g. I've recently been interested in Lucas Sequences for estimating roots), so that could also be another way to practice, if you find that interesting.
mfiano
@mjfiano:matrix.org
[m]
Yes, I am writing a little linear algebra library to practice, actually.
Benjamin Wade
@RespiteSage
:thumbsup:
mfiano
@mjfiano:matrix.org
[m]
Does Crystal have the distinction of shallow vs deep copying builtin?
clone vs dup i take it?
George Dietrich
@Blacksmoke16
yes
mfiano
@mjfiano:matrix.org
[m]
Thanks, and the last question before lunch: Is there any way to emit the disassembly, or at the very least, the IR, of a given method (preferably the former)?
George Dietrich
@Blacksmoke16
IR meaning LLVM IR yea?
mfiano
@mjfiano:matrix.org
[m]
Yes, though that is foreign to me so preferably the machine code (asm)
George Dietrich
@Blacksmoke16
--emit [asm|obj|llvm-bc|llvm-ir] Comma separated list of types of output for the compiler to emit
mfiano
@mjfiano:matrix.org
[m]
? I want to inspect a single function.
George Dietrich
@Blacksmoke16
the compiler explorer allows going to a specific def, but you'd prob need to include prelude for your code to work
otherwise there isn't a way to output specific IR, other than the whole file afaik
so would need to output all the IR and find the method you want in it
mfiano
@mjfiano:matrix.org
[m]
Ok thanks. Nothing will beat (disassemble name) at runtime I suppose :)
manveru
@manveru:matrix.org
[m]
so... method overloading on works for argument and not return types?
George Dietrich
@Blacksmoke16
yes
why?
manveru
@manveru:matrix.org
[m]
well, would've been a bit nicer to write the other way :)
George Dietrich
@Blacksmoke16
got some example code?
manveru
@manveru:matrix.org
[m]
def convert(value : String) : Array(String) instead of def convert(value : String, kind : Array(String).class)
George Dietrich
@Blacksmoke16
how would it know which one to use
i guess it could look at each overload's return type and compare that to something? :shrug:
manveru
@manveru:matrix.org
[m]
well, i have a bunch of those that take a string and return some other type
George Dietrich
@Blacksmoke16
could you monkey patch constructors onto various other types instead?
manveru
@manveru:matrix.org
[m]
given that crystal already infers the return type, and it knows what type i want to assign to a given instance variable, i was hoping there was a way to elide that annoation
George Dietrich
@Blacksmoke16
def Array.convert(value : String)
  # ...
end

kind.convert value
manveru
@manveru:matrix.org
[m]
yeah... not a big fan of messing with existing classes :)