Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Dec 07 22:45
    straight-shoota milestoned #11229
  • Dec 07 22:43
    straight-shoota demilestoned #11343
  • Dec 07 19:54
    Blacksmoke16 labeled #11549
  • Dec 07 19:47
    kalinon labeled #11549
  • Dec 07 19:47
    kalinon opened #11549
  • Dec 07 18:14
    straight-shoota labeled #11532
  • Dec 07 18:13
    straight-shoota edited #11532
  • Dec 07 18:11
    straight-shoota synchronize #11532
  • Dec 07 17:58
    straight-shoota milestoned #11545
  • Dec 07 17:58
    straight-shoota milestoned #11379
  • Dec 07 17:56
    neatorobito synchronize #11543
  • Dec 07 17:22
    oprypin milestoned #11534
  • Dec 07 16:18
    straight-shoota edited #11177
  • Dec 07 16:17
    straight-shoota milestoned #11475
  • Dec 07 15:06
    straight-shoota review_requested #11475
  • Dec 07 15:04
    straight-shoota synchronize #11475
  • Dec 07 15:03
    straight-shoota synchronize #11475
  • Dec 07 14:01
    straight-shoota closed #11523
  • Dec 07 13:35
    straight-shoota demilestoned #11515
  • Dec 07 13:24
    beta-ziliani unlabeled #11529
George Dietrich
@Blacksmoke16
is suggested to group things by namespace
i.e. exceptions live in Athena::Routing::Exceptions namespace
etc
mfiano
@mjfiano:matrix.org
[m]
and that maps to src/athena/routing/exceptions/?
George Dietrich
@Blacksmoke16
technically src/exceptions
i dont use that extra directory, but otherwise would be like src/athena/exceptions
i guess i kinda use the org/repo name as the first two components to that
mfiano
@mjfiano:matrix.org
[m]
Ok, well it works explicitly listing each file in toposorted order. I'll work on organizing by concept next.
Unrelated:
What is an easy way to test the expansion of a macro you're in the process of writing? The crystal vim plugin has a function for this but it is bugged half the time. So I guess, what is the builtin way, and is there any 3rd party improvement, or utilities for writing macros in general?
George Dietrich
@Blacksmoke16
wouldn't that just be testing the functionality it generates?
dont really need to test the macro part of it specifically
mfiano
@mjfiano:matrix.org
[m]
I would like to see the generated code is what it is supposed to be before testing functionality. I've caught subtle errors that way in my years of macro writing.
George Dietrich
@Blacksmoke16
ohh i see
add a {{debug}} to the end of the macro
mfiano
@mjfiano:matrix.org
[m]
I see. Not sure how I missed that in the api docs. Would have been nice when I wrote the macros earlier.
Very nice
Are there any common general utility libraries for Crystal?
Things that got rejected for the stdlib, or things useful for everyday programming that didn't make it into the language yet for some reason or other?
George Dietrich
@Blacksmoke16
Like what?
There are some, but depends on what you are doing exactly
I'd definitely suggest using https://github.com/crystal-ameba/ameba tho
mfiano
@mjfiano:matrix.org
[m]
I have that and debug.cr so far. I meant like general purpose utilities. Lisp has "alexandria", which includes necessities like correct macro writing macros such as once_only I discussed before, pattern matching stuff, etc etc
George Dietrich
@Blacksmoke16
Can't say I've heard of debug.cr. I also use Athena's spec component sometimes, but other than that nothing comes to mind stdlib usually has everything I need.
mfiano
@mjfiano:matrix.org
[m]
debug.cr is basically pp! but with color, line numbers, etc, and can use in the middle of expressions
George Dietrich
@Blacksmoke16
Fair enough
mfiano
@mjfiano:matrix.org
[m]
Ok so
In my main src/origin.cr file I have this and only this:
require "./origin/scalar"
require "./origin/shared"
require "./origin/vector"
In vector.cr it starts out like this:
module Origin::Vector(T)
  forward_missing_to @data

  include Origin::Shared(Float64) # Error: undefined constant Origin::Shared

  ...
end
The include compiles if I put it in a macro included though
These are the errors that drive me crazy because I don't see where they are coming from.
I only have 3 files, and this is the last file parsed
shared.cr should have already been loaded and the module defined...
George Dietrich
@Blacksmoke16
Do you have this all pushed up atm?
mfiano
@mjfiano:matrix.org
[m]
No but I could
Give me a minute
mfiano
@mjfiano:matrix.org
[m]
Hey Mr. Grant, my stalker :)
George Dietrich
@Blacksmoke16
what were you running to get that?
mfiano
@mjfiano:matrix.org
[m]
I didn't think to run that, because the semantic analyzer in nim showed the aforementioned error in my buffer upon saving
s/vim/vim/
err nim -> vim. must be almost that time :/
The test code I have under those 3 requires is:
alias V2 = Origin::Vector2
x = V2.new(2.0, 8.123)
pp! x + x
pp! x == V2.new(2.0, 8.123_001)
pp! V2.rand(V2::ZERO, V2::ONES)
pp! V2.rand
pp! V2::ZERO.zero?
pp! x.clamp
pp! x.same_direction?(x)
pp! V2::LEFT
George Dietrich
@Blacksmoke16
thz
worked fine for me?
mfiano
@mjfiano:matrix.org
[m]
:/
George Dietrich
@Blacksmoke16
sure you dont have anything else going on?
mfiano
@mjfiano:matrix.org
[m]
I'm positive. everything else is checked in