00:13
ragmaanir has quit [Quit: Leaving]
00:15
elia has quit [Quit: Computer has gone to sleep.]
00:19
marcosdsanchez has quit [Quit: leaving]
00:20
marcosdsanchez has joined #crystal-lang
00:20
marcosdsanchez has quit [Client Quit]
00:21
marcosdsanchez has joined #crystal-lang
00:21
marcosdsanchez has quit [Client Quit]
00:22
Philpax has quit [Ping timeout: 260 seconds]
00:22
marcosdsanchez has joined #crystal-lang
00:36
marcosdsanchez has quit [Quit: leaving]
00:36
marcosdsanchez has joined #crystal-lang
00:38
marcosdsanchez has quit [Client Quit]
00:40
marcosdsanchez has joined #crystal-lang
00:41
marcosdsanchez has quit [Client Quit]
00:42
marcosdsanchez has joined #crystal-lang
00:43
marcosdsanchez has quit [Client Quit]
00:44
marcosdsanchez has joined #crystal-lang
00:46
marcosdsanchez has quit [Client Quit]
00:54
marcosdsanchez has joined #crystal-lang
01:20
pawnbox has joined #crystal-lang
01:24
pawnbox has quit [Ping timeout: 240 seconds]
01:24
sp4rrow has quit [Quit: The Internet needs a break and I need a cookie]
01:25
Philpax has joined #crystal-lang
01:35
sp4rrow has joined #crystal-lang
01:39
Philpax has quit [Ping timeout: 260 seconds]
01:49
sp4rrow has quit [Quit: The Internet needs a break and I need a cookie]
01:57
marcosdsanchez has quit [Quit: leaving]
02:14
sorbo_ has joined #crystal-lang
02:14
sorbo_ has left #crystal-lang [#crystal-lang]
02:37
ozra_ has quit [Ping timeout: 244 seconds]
02:49
pawnbox has joined #crystal-lang
02:53
<
crystal-gh >
[crystal] marceloboeira opened pull request #2386: Fix typo at time.cr (master...docs-fix)
https://git.io/vVkbx
02:54
pawnbox has quit [Ping timeout: 276 seconds]
03:19
pawnbox has joined #crystal-lang
03:24
pawnbox has quit [Ping timeout: 276 seconds]
03:49
pawnbox has joined #crystal-lang
03:54
pawnbox has quit [Ping timeout: 244 seconds]
04:06
mgarciaisaia has joined #crystal-lang
04:09
mgarciaisaia has left #crystal-lang [#crystal-lang]
04:20
pawnbox has joined #crystal-lang
04:24
Philpax has joined #crystal-lang
04:30
sorbo_ has joined #crystal-lang
04:41
pawnbox has quit [Remote host closed the connection]
04:43
pawnbox has joined #crystal-lang
04:52
hangyas has joined #crystal-lang
05:08
triangles has quit [Quit: Leaving]
05:14
pawnbox_ has joined #crystal-lang
05:17
pawnbox has quit [Ping timeout: 260 seconds]
05:52
sorbo_ has quit [Remote host closed the connection]
05:54
mgarciaisaia has joined #crystal-lang
06:02
Renich has joined #crystal-lang
06:03
mgarciaisaia has left #crystal-lang [#crystal-lang]
06:16
trapped has joined #crystal-lang
06:34
Renich has quit [Quit: leaving]
06:40
rok has joined #crystal-lang
06:56
bjz has joined #crystal-lang
07:02
bjz has quit [Ping timeout: 264 seconds]
07:04
bjz has joined #crystal-lang
07:26
Philpax has quit [Ping timeout: 276 seconds]
07:29
elia has joined #crystal-lang
07:33
rok has quit [Quit: rok]
07:43
sp4rrow has joined #crystal-lang
07:46
hangyas has quit [Read error: Connection reset by peer]
07:46
pawnbox_ has quit [Remote host closed the connection]
08:04
pawnbox has joined #crystal-lang
08:23
sp4rrow has quit [Read error: Connection reset by peer]
08:24
sp4rrow has joined #crystal-lang
08:28
trapped_ has joined #crystal-lang
08:30
sp4rrow has quit [Quit: The Internet needs a break and I need a cookie]
08:31
trapped has quit [Ping timeout: 260 seconds]
08:50
sp4rrow has joined #crystal-lang
09:34
sp4rrow has quit [Read error: Connection reset by peer]
09:35
sp4rrow has joined #crystal-lang
10:00
pawnbox has quit [Remote host closed the connection]
10:03
pawnbox has joined #crystal-lang
10:11
alsm has joined #crystal-lang
10:19
sp4rrow has quit [Quit: The Internet needs a break and I need a cookie]
10:41
pawnbox has quit [Remote host closed the connection]
10:43
pawnbox has joined #crystal-lang
10:56
ytti has joined #crystal-lang
11:01
trapped_ is now known as trapped
11:04
<
jokke >
RX14: you there?
11:05
<
jokke >
cool. I'm trying to debug something regarding crouter. I get the same error message even after your changes in my project that uses crouter. It's really hard to debug, since the message doesn't tell you much...
11:06
<
RX14 >
yep, any error in a handler just gets cut off
11:06
<
RX14 >
just comment out lines until it compiles
11:06
<
RX14 >
and then you know where the error is
11:06
<
RX14 >
thats what I did
11:06
<
RX14 >
it's a compil;er bug
11:06
<
RX14 >
that it gets cut off
11:06
<
RX14 >
should probably report it
11:18
<
jokke >
it's near impossible to find the bug like this
11:20
<
RX14 >
seems that syntax errors in proc don't really work
11:21
<
RX14 >
or something
12:00
elia has quit [Quit: Computer has gone to sleep.]
12:06
elia has joined #crystal-lang
12:27
pawnbox has quit [Remote host closed the connection]
12:41
pawnbox has joined #crystal-lang
12:42
pawnbox has quit [Remote host closed the connection]
12:42
pawnbox has joined #crystal-lang
12:52
marcosdsanchez has joined #crystal-lang
12:55
<
crystal-gh >
crystal/master fea85c6 Ary Borenszweig: Spec: document `before_each` and `after_each`. Closes #2371 [ci skip]
12:57
<
crystal-gh >
[crystal] asterite closed pull request #2380: Improving Deque#delete (master...improving-deque-delete)
https://git.io/vVT8Z
13:05
<
crystal-gh >
[crystal] asterite closed pull request #2367: fixed couple of typos in documentation (master...master)
https://git.io/vajND
13:16
<
crystal-gh >
crystal/master b07524c Ary Borenszweig: Merge pull request #2346 from crystal-lang/feature/format_check...
13:42
ozra_ has joined #crystal-lang
13:51
<
crystal-gh >
[crystal] arktisklada closed pull request #2381: Improving Enumerable#in_groups_of (master...reducing-enumerable-in-groups-of)
https://git.io/vVTaG
13:51
<
marcosdsanchez >
/leave
13:52
marcosdsanchez has left #crystal-lang [#crystal-lang]
13:53
SShrike has joined #crystal-lang
13:54
mgarciaisaia has joined #crystal-lang
13:54
SShrike has quit [Client Quit]
14:06
mgarciaisaia has left #crystal-lang [#crystal-lang]
14:12
<
BlaXpirit >
Is there any way to automatically add return type annotations into my code based on compiler knowledge?
14:15
<
BlaXpirit >
and why aren't they displayed in documentation?
14:15
<
RX14 >
aren't they if they are expliciit?
14:16
<
RX14 >
doc can't type untyped ones unless they are called because of the nature of the type system
14:16
<
asterite >
BlaXpirit: `def foo(x, y); x.bar(y); end` ... what's the return type? :-)
14:16
<
BlaXpirit >
well in my case more often than not they are static
14:17
<
asterite >
you mean the arguments have type annotations?
14:17
<
BlaXpirit >
def test(a : Bool); a ? 5 : nil; end
14:17
<
BlaXpirit >
so here the return type is surely Int32?
14:17
<
crystal-gh >
crystal/master 557c400 Ary Borenszweig: Compiler: fixed `protected` methods couldn't be called from a base type into a subclass
14:19
<
BlaXpirit >
and it would still be Int32 even without the Bool annotation, asterite
14:25
<
BlaXpirit >
I suppose this is very difficult
14:26
<
asterite >
BlaXpirit: no, not at all. It can be done
14:26
<
asterite >
the "problem" is that we would need to type all these methods even if they are not used, slowing down compilation times
14:27
<
RX14 >
asterite, but it might be worth it for docs generation
14:30
tony_ has joined #crystal-lang
15:16
<
BlaXpirit >
I really want docs to have this
15:17
<
BlaXpirit >
is there any reasonable way to get the type annotations now?
15:17
<
crystal-gh >
crystal/master 5ac0ea8 Ary Borenszweig: Compiler: fixed virtual `new` with only one subclass
15:23
tony_ has quit [Ping timeout: 268 seconds]
15:35
tony_ has joined #crystal-lang
15:40
<
crystal-gh >
crystal/master c6ad336 Ary Borenszweig: Compiler: uncommented some pending specs that now pass
15:40
<
crystal-gh >
crystal/master 9d91797 Ary Borenszweig: Compiler: fixed `to_s` for `foo(&.bar==(2))`. Fixes #2374
16:01
pawnbox has quit [Remote host closed the connection]
16:19
pawnbox has joined #crystal-lang
16:22
<
crystal-gh >
crystal/master 11de86c Ary Borenszweig: Compiler: missing clone in RegexLiteral. Fixes #2384
16:27
alsm has quit [Ping timeout: 260 seconds]
16:33
rok has joined #crystal-lang
16:40
elia has quit [Quit: Computer has gone to sleep.]
16:45
elia has joined #crystal-lang
16:47
<
crystal-gh >
crystal/master 0e23f32 Ary Borenszweig: Compiler: disallow using `typeof` inside `alias` declaration. Fixes #2338
16:48
mark2 has joined #crystal-lang
16:51
<
mark2 >
I have this code: url = from_git_config
16:51
<
mark2 >
url = Readline.readline("Repository url: ") if url.empty?
16:52
<
mark2 >
But I get a compile error for Nil (compile-time type is String?)
16:53
<
mark2 >
Actually is generated by an if condition: if url.starts_with?("git")
16:53
<
RX14 >
yeah, because there's no starts_with? method on nil
16:54
<
mark2 >
repository.cr:22: undefined method 'starts_with?' for Nil (compile-time type is String?)
16:54
<
RX14 >
you should be able to use .try
16:54
<
RX14 >
String? is the same as String | Nil
16:54
<
mark2 >
but my first assignment returns a string
16:54
<
crystal-gh >
crystal/master 03e5233 Ary Borenszweig: Added `Pointer#!`. Fixes #2361
16:55
<
RX14 >
can you gist your whole code?
16:55
<
BlaXpirit >
RX14, no need
16:55
<
BlaXpirit >
mark2, readline returns String | Nil
16:55
<
mark2 >
but why is `url` Nil since from_git_config returns a string
16:56
<
RX14 >
url will be String before url = Readline.readline("Repository url: ") if url.empty?
16:56
<
RX14 >
and be String? after
16:56
<
RX14 >
becayse Readline.readline("Repository url: ") returns String?
16:56
<
BlaXpirit >
url = Readline.readline("Repository url: ") || ""
16:56
<
BlaXpirit >
u can try this
16:56
<
BlaXpirit >
if user refuses to press enter, then an empty string will be obtained
16:57
<
mark2 >
I got it, it's working with url = Readline.readline("Repository url: ") || "", or if I do a String cast
16:58
elia has quit [Quit: Computer has gone to sleep.]
16:59
<
mark2 >
I still don't understand why at compile time is checking that assignment because I have the condition "if url.empty?"
17:00
<
mark2 >
It should not enter in that method
17:01
<
RX14 >
it's not the assingment
17:01
<
RX14 >
it's the method call as you said
17:01
<
RX14 >
changing the assignment changed the type of `url`
17:01
<
RX14 >
which fixes the error
17:03
endou_ has joined #crystal-lang
17:04
salvor- has joined #crystal-lang
17:05
_kfpratt has joined #crystal-lang
17:06
bjmllr_ has joined #crystal-lang
17:07
miketheman_ has joined #crystal-lang
17:07
salvor has quit [Ping timeout: 268 seconds]
17:07
iamstef has quit [Ping timeout: 268 seconds]
17:07
miketheman has quit [Ping timeout: 268 seconds]
17:07
mroth has quit [Ping timeout: 268 seconds]
17:07
jwaldrip has quit [Ping timeout: 268 seconds]
17:07
endou has quit [Ping timeout: 268 seconds]
17:07
bjmllr has quit [Ping timeout: 268 seconds]
17:07
kfpratt has quit [Ping timeout: 268 seconds]
17:07
rvchangue has quit [Ping timeout: 268 seconds]
17:07
tliff has quit [Ping timeout: 268 seconds]
17:07
<
mark2 >
I'm a step closer to make it work :) Thanks RX14
17:07
rvchangue_ has joined #crystal-lang
17:07
steamy is now known as jnylen
17:07
tliff has joined #crystal-lang
17:07
miketheman_ is now known as miketheman
17:07
rvchangue_ is now known as rvchangue
17:07
<
BlaXpirit >
mark2, url.empty? is not a problem, you can ignore all the code that precedes it
17:08
<
BlaXpirit >
Readline.readline() can return String or Nil, that's just it
17:08
<
BlaXpirit >
so code that follows it can't use this return value because it might be Nil
17:10
daemonwrangler has quit [Ping timeout: 248 seconds]
17:13
<
mark2 >
I ran in another similar issue.
17:14
<
mark2 >
Following code:
17:14
<
mark2 >
url = "git@github.com:owner/repo-oo.git"
17:14
<
mark2 >
match = url.match(/\:(\w+)\/(.*)\.git$/)
17:14
<
mark2 >
pp match[1]
17:14
<
mark2 >
And I got the error: undefined method '[]' for Nil (compile-time type is Regex::MatchData?)
17:15
<
RX14 >
the regex might not match
17:15
<
RX14 >
so the math result is nilable
17:15
<
RX14 >
so you need to nil check it
17:15
<
RX14 >
the crystal compiler ENFORCES nil safety
17:16
<
mark2 >
It's matching
17:16
<
BlaXpirit >
mark2, have you read the tutorial/documentation?
17:16
<
BlaXpirit >
>> url = "git@github.com:owner/repo-oo.git"; if match = url.match(/\:(\w+)\/(.*)\.git$/); pp match[1]; else; puts ":("; end
17:17
mroth has joined #crystal-lang
17:17
jwaldrip has joined #crystal-lang
17:17
<
mark2 >
I read the tutorials and the documentation
17:17
<
mark2 >
If I do the following match = url.match(/\:(\w+)\/(.*)\.git$/) as Regex::MatchData
17:18
<
mark2 >
I got the expected results match[1] = "owner"
17:18
<
BlaXpirit >
and you'll get a runtime error if it doesn't match, so all is good
17:19
<
RX14 >
mark2, you don't understand
17:19
<
RX14 >
the compiler can't tell whether it matches
17:19
<
RX14 >
not at compile time
17:19
mgarciaisaia1 has joined #crystal-lang
17:19
<
RX14 >
this is a compiled, statically typed langauge
17:19
<
BlaXpirit >
>> url = "git@github.com:owner/repo-oo.git"; match = url.match(/\:(\w+)\/(.*)\.git$/).not_nil!; pp match[1]
17:19
<
BlaXpirit >
in this case, same effect as 'as Regex::MatchData'
17:20
<
RX14 >
with one you get a more relavent error
17:20
<
mark2 >
I pretty sure that I need to change my way of thinking, I do ruby at the moment and it's seems a bit strange
17:20
<
RX14 >
have you used a statically typed langauge before, like java?
17:21
iamstef has joined #crystal-lang
17:21
<
mark2 >
This if first static lang
17:21
<
RX14 >
well yes, you'll have to adjust a lot
17:21
<
mark2 >
I did some C at university
17:21
daemonwrangler has joined #crystal-lang
17:21
<
RX14 >
you're trying to prove to the compiler that there is no nil
17:21
<
RX14 >
not to yourself
17:21
<
RX14 >
and the compiler can't read your mind
17:21
<
RX14 >
a regex doesn't always match
17:22
<
RX14 >
so you HAVE to handle that case
17:22
<
RX14 >
.not_nil! just handles said case by raising an exception
17:22
<
RX14 >
but it's usually better to do if match; <whatever>; else; handle error;
17:23
<
mark2 >
So the if condition is best (as a codding principle) than a cast?
17:24
<
BlaXpirit >
depending on the language
17:24
<
mark2 >
I want to start with the best practices
17:25
<
BlaXpirit >
if at some point you're 100% sure that it is what you think, then .not_nil! or cast is best. the program will crash if your expectations don't match but it's the easiest way to make it compile
17:25
<
RX14 >
as BlaXpirit said, they are for different cases
17:25
<
RX14 >
when you;re dealing with nil, not_nil! is best
17:25
<
RX14 >
if you're dealing with another union, use a cast
17:26
<
RX14 >
but if you're less than 100% sure that you know better than the compiler
17:26
<
RX14 >
and handle the error
17:26
<
RX14 >
not_nil! basically is saying to the compiler that you know better than it
17:27
<
BlaXpirit >
mark2, but also note that this || trick often drastically shortens the code, you use it instead of an `if` if you have a default value you want to use in case it's `nil`
17:28
<
RX14 >
it's another trick
17:28
<
mark2 >
Thanks a lot!! :)
17:28
<
RX14 >
|| is for providing a default value in case of nil
17:28
<
RX14 >
not for handling it by emitting a message or other ways
17:28
<
RX14 >
well, not usually
17:29
<
mark2 >
In just a few minutes with you I learn quite a few useful tricks, you guys rock!!
17:35
<
asterite >
BlaXpirit: I was reading the logs the other day and saw that you had troubles with Path and TypeNode. Please open an issue to discuss these things, they are important and interesting :-)
17:36
<
asterite >
One idea I had is that if a method can't be found in a Path node, then it can try to see if it denotes a type and then forward the method to it (as a TypeNode)
17:39
donpdonp has joined #crystal-lang
17:39
<
donpdonp >
given person = { name: "bob", age: 20 }, if I use person[:age], it has a mixed type of (Int32 | String). Can I cast it/force the type somehow
17:40
<
donpdonp >
Math.min(person[:age], 10) => Error: instantiating 'Math:Module#min((Int32 | String), Int32)'
17:40
<
RX14 >
no, you'll haveto cast
17:40
<
RX14 >
you probably want a record or class
17:40
<
donpdonp >
How would I do that?
17:41
<
RX14 >
instead of a hash
17:41
<
RX14 >
but the tuples are indexed by number
17:41
<
RX14 >
yeah use the record macro
17:41
<
BlaXpirit >
(which creates a struct in case it wasn't clear)
17:41
<
BlaXpirit >
asterite, would be awesome
17:42
<
RX14 >
>> record Person, name : String, age : UInt16; person = Person.new("test", 20); person.to_s
17:42
<
BlaXpirit >
though may confuse some people hopelessly
17:42
<
donpdonp >
are there docs for the record macro? im glancing through /docs
17:42
<
asterite >
BlaXpirit: I'll open an issue to discuss that. I might even try to implement it and see the consequences
17:42
mgarciaisaia1 has left #crystal-lang [#crystal-lang]
17:42
<
RX14 >
>> record Person, name : String, age : UInt16; person = Person.new(); person.to_s
17:42
<
RX14 >
>> record Person, name : String, age : UInt16; person = Person.new("test", 20_u16); person.to_s
17:42
<
BlaXpirit >
age: uint16 ? wut
17:43
<
asterite >
BlaXpirit: yes, the confusion is the downside. Alternatively we can have something like `resolve(...)` that will resolve a path to its type. But then you will have to invoke this in every macro "just in case" (I'll explain more in the issue)
17:43
<
crystal-gh >
crystal/master a1264fd Ary Borenszweig: Fixed #2385: List of overloads for static/class methods is duplicated for generic classes
17:44
<
donpdonp >
RX14: +1
17:44
<
RX14 >
you just need to have used the crystal docs to know where to look :3
17:50
mark2 has quit [Read error: Connection reset by peer]
17:50
rolha has joined #crystal-lang
17:58
marcosdsanchez has joined #crystal-lang
18:05
<
crystal-gh >
crystal/master 6b51033 Brian J. Cardiff: Playground: instrument values using blocks to catch exceptions per line. fix #2369.
18:05
dsounded has joined #crystal-lang
18:06
<
dsounded >
If module has another module which has same name as a high level class, can I call class with prefix :: as in Ruby ?
18:06
<
BlaXpirit >
dsounded, prefix :: means toplevel
18:08
<
dsounded >
so if Module::Name I can call ::Name to call class Name not module one ?
18:10
<
BlaXpirit >
yes, dsounded
18:11
<
BlaXpirit >
>> module Test; class Array; end; def test; ::Array.new; end; end; Test.test
18:11
<
BlaXpirit >
>> module Test; extend self; class Array; end; def test; ::Array.new; end; end; Test.test
18:11
<
BlaXpirit >
sigh what a bad example
18:12
<
BlaXpirit >
>> module Test; extend self; class Time; end; def test; ::Time.new; end; end; Test.test
18:12
<
BlaXpirit >
there we go, dsounded
18:18
dsounded has quit [Quit: Page closed]
18:31
rok has quit [Quit: rok]
18:32
rolha has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
18:40
<
donpdonp >
why isnt #dup, dup'ing?
18:41
marcosdsanchez has left #crystal-lang [#crystal-lang]
18:44
<
RX14 >
donpdonp, huh
18:44
<
RX14 >
donpdonp, oh
18:44
<
RX14 >
you have to override bup
18:45
<
donpdonp >
hahaha. ok
18:45
<
crystal-gh >
[crystal] bcardiff closed pull request #2356: Playground: add workbook support (master...workbook)
https://git.io/va56Y
18:45
<
RX14 >
also greatly simplifies your exampls
18:46
<
donpdonp >
ah property, i knew there had to be a way
18:46
<
RX14 >
shows use of the property macro and syntax for setting class variables in the ctor
18:46
ozra_ is now known as ozra
18:46
<
RX14 >
you can also do `property a : String` to comfile the type
18:46
<
donpdonp >
nod. the more typing the merrier.
18:47
<
RX14 >
you mean less
18:51
splattael has joined #crystal-lang
18:57
<
crystal-gh >
crystal/master e1841b2 Ary Borenszweig: Fixed #2194: preserve special variables in the whole method, even if "declared" inside a block
19:04
rolha has joined #crystal-lang
19:17
pawnbox has quit [Remote host closed the connection]
19:17
pawnbox has joined #crystal-lang
19:33
mgarciaisaia has joined #crystal-lang
19:44
mgarciaisaia has quit [Quit: Leaving.]
19:52
luislavena has joined #crystal-lang
19:59
<
crystal-gh >
crystal/master 20cfb75 Brian J. Cardiff: Playground: collect macro names in playground source and avoid instrumenting them. fix #2355
20:00
x0f has joined #crystal-lang
20:06
Ven has joined #crystal-lang
20:06
<
donpdonp >
its very good at formatting my crystal
20:07
<
donpdonp >
compiler feedback in-editor is amaze, too.
20:10
<
RX14 >
still prefer vim-crystal :3
20:10
<
BlaXpirit >
i'm looking for a clever way to turn CamelCase into snake_case in a macrto
20:11
<
BlaXpirit >
in a macro?
20:12
<
RX14 >
>> {% puts "aaa".gsub(/a/, "b") %}
20:12
<
RX14 >
BlaXpirit, ^
20:14
<
crystal-gh >
crystal/master ca3ab80 Ary Borenszweig: Fixed #2353: unable to use non-Int32 number as type argument
20:16
<
BlaXpirit >
RX14, that's nice but the block version doesnt work
20:16
<
RX14 >
why do you need the block version?
20:16
<
BlaXpirit >
to turn CamelCase into snake_case in a macro
20:16
<
RX14 >
why not do it with a normal regex
20:17
<
BlaXpirit >
what kind of regex has .lower
20:17
<
RX14 >
uhh thats a point
20:19
<
RX14 >
>> {% puts "TestThing".underscore %}
20:19
<
BlaXpirit >
holy smokes
20:19
<
RX14 >
CHECK THE DOCS
20:20
<
BlaXpirit >
what docs, there are no macro docs
20:20
<
BlaXpirit >
well i'll be damned
20:24
marcosdsanchez has joined #crystal-lang
20:31
rolha has quit [Remote host closed the connection]
20:31
rolha has joined #crystal-lang
20:32
trapped_ has joined #crystal-lang
20:33
Raimondii has joined #crystal-lang
20:36
trapped has quit [Ping timeout: 244 seconds]
20:36
Raimondi has quit [Ping timeout: 244 seconds]
20:40
<
crystal-gh >
crystal/master a83c8dc Ary Borenszweig: Forward `===` method when comparing against JSON::Any or YAML::Any
20:47
tony_ has quit [Ping timeout: 240 seconds]
20:48
Ven has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
20:49
tony_ has joined #crystal-lang
20:50
Ven has joined #crystal-lang
20:57
marcosdsanchez has left #crystal-lang [#crystal-lang]
20:57
marcosdsanchez has joined #crystal-lang
20:59
Rinkana has joined #crystal-lang
21:00
Rinkana has quit [Client Quit]
21:05
edjsu has quit [Quit: WeeChat 1.2]
21:08
ozra has quit [Read error: Connection reset by peer]
21:08
elia has joined #crystal-lang
21:09
ozra has joined #crystal-lang
21:11
rolha has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
21:15
Ven has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
21:16
trapped_ is now known as trappoed
21:16
trappoed is now known as trapped
21:16
bjz has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
21:16
bjz has joined #crystal-lang
21:20
rolha has joined #crystal-lang
21:22
bcardiff has joined #crystal-lang
21:25
bjz has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
21:25
<
bcardiff >
@emancu_ tools are just normal crystal apps. Depending on your need you will depend on crystal parser / compiler. For Crystal 0.11.1 I publish
https://github.com/bcardiff/crystal-tool-demo , yet with the new `crystal env` option it could be done better.
21:26
<
bcardiff >
if your tool needs to actualy build the source you will require a CRYSTAL_PATH setup when running the tool (or the binary will have hardcoded some of your path). This goes deep in the ./bin/crystal bash file.
21:35
sp4rrow has joined #crystal-lang
22:06
edjsu has joined #crystal-lang
22:19
<
crystal-gh >
crystal/master ec7a376 Brian J. Cardiff: Playground: trap compiler bug exception in playground and avoid shutting down the server
22:19
<
crystal-gh >
crystal/master 7c96ff7 Brian J. Cardiff: Playground: instrument UnaryExpression, BinaryOp, IsA, ReadInstanceVar expressions
22:20
bcardiff has quit [Quit: bcardiff]
22:21
marcosdsanchez has quit [Quit: leaving]
22:26
donpdonp has left #crystal-lang ["WeeChat 1.4"]
22:35
bcardiff has joined #crystal-lang
22:45
pawnbox has quit [Ping timeout: 264 seconds]
22:48
dome22xl has joined #crystal-lang
22:49
<
dome22xl >
So far i like however i discovered over the weekend they are evil with scoping
22:50
Philpax has joined #crystal-lang
22:59
<
dome22xl >
I think its more todo with macro abuse on a project i was hacking on pretty hard to read however
22:59
<
dome22xl >
i got quite interested in the macro coding and how it works
23:00
<
crystal-gh >
crystal/master 9864c98 Brian J. Cardiff: Playground: minor style adjustment. h1...h4 and ul li for better markdown look and feel in workbook.
23:03
trapped has quit [Read error: Connection reset by peer]
23:05
ytti has quit [*.net *.split]
23:11
mverzilli has joined #crystal-lang
23:26
tony_ has quit [Ping timeout: 260 seconds]
23:28
splattael has quit [Quit: Connection closed for inactivity]
23:42
bcardiff has quit [Quit: bcardiff]
23:54
dome22xl has quit [Read error: Connection reset by peer]
23:55
thelonelyghost has joined #crystal-lang