<sdogruyol>
@jhass what version of llvm require for building crystal
<sdogruyol>
jhass: o/
<jhass>
sdogruyol: 3.5.1
<jhass>
3.6 should be fine too
<sdogruyol>
jhass: had 3.6.2 but no succeed
Ven has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<sdogruyol>
meanwhile trying to install arch on virtualbox
<jhass>
I'm on 3.6.2
<jhass>
hehe, having fun with the beginner guide? :P
<sdogruyol>
lol
<sdogruyol>
not yet
<sdogruyol>
just dled the image
vjdhama_ has quit [Remote host closed the connection]
<sdogruyol>
i just booted and i'm in tty lol :D
trapped has joined #crystal-lang
<sdogruyol>
jhass: its good that it comes with zsh by default
Ven has joined #crystal-lang
<jhass>
could've mentioned antergos which comes with a gui installer... but where's the fun in that? ;P
<sdogruyol>
heheh
<BlaXpirit>
arch linux is so much fun. for me it was more and more difficult to install every time. the normal guide has turned into a potato, and beginner's guide is really not for beginners
<sdogruyol>
jhass: i dont know why but arch doesnt have key mapping for Turkish layout
<sdogruyol>
:(
<jhass>
sdogruyol: loadkeys tu or so?
<jhass>
tk?
<sdogruyol>
jhass: tr
<jhass>
right
<sdogruyol>
jhass: /usr/share/kbd/mac doesnt have that
<BlaXpirit>
was tk Tokelau or something
<sdogruyol>
lol
<jhass>
BlaXpirit: country code though, keymaps go by language code I think
<BlaXpirit>
you're right, my language is "uk" :p
<sdogruyol>
:D
<sdogruyol>
sometimes i really hate os x
<sdogruyol>
..
<jhass>
sdogruyol: maybe loadkeys trf is good enough
<jhass>
for the tty atleast, the X server one is a different system anyhow
<jhass>
or trq?
<jhass>
dunno what the mac one is closer to
<sdogruyol>
:D
<sdogruyol>
it's trq
Ven has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Ven has joined #crystal-lang
<jhass>
I guess then you can hack the mac_us one if worst comes to worst :P
<sdogruyol>
hahah
<sdogruyol>
for now i'M back to fixing up os x
<sdogruyol>
:S
<jhass>
what? you're saying you're not eager for an adventure into the mysterious worlds of keycodes and scancodes?
<sdogruyol>
jhass: i'm eager but not for now :P
Ven has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<jokke>
asterite: maybe you can help me: how can i spec for macro expansion errors? as in having a codesnippet with a macro, trying to expand it and testing for a compiler error.
<jhass>
vjdhama: yes, for the os x build
<jhass>
but mainly because I have no machine where I can explore how to get something else
<jokke>
asterite is in a very different time zone, right? :)
<sdogruyol>
jokke: yeah
<vjdhama>
jhass: i am on osx machine.
<jokke>
south america somewhere was it?
<sdogruyol>
jokke: they are sleeping right now probably 5 am
<sdogruyol>
jokke: argentina
<vjdhama>
jokke: argentina
<jokke>
ah, yeah that was it
<jhass>
jokke: buenos aires specifically iirc
<sdogruyol>
jhass: what do you think of kali?
vjdhama has quit [Remote host closed the connection]
<jhass>
what's there to think of it?
<sdogruyol>
jhass: lol
<sdogruyol>
jhass: as a distro
<jhass>
no I mean it does what it does just fine
<jhass>
and I don't know anything else that does the same
<jhass>
not sure I call it a distro though
<jhass>
it's not a distro you would use as a daily use OS
<sdogruyol>
:D
<jhass>
I mean you log into root, that's fine for what it is, but insane otherwise
<sdogruyol>
jhass: insane by what means
<jhass>
starting a desktop environment as root simply is if you want a system that you don't have to reinstall every week
<jhass>
they're not made for that
<sdogruyol>
jhass: heheh are you watching mr. robot?
vjdhama has quit [Remote host closed the connection]
<sdogruyol>
OMG
<sdogruyol>
it's passing :D
<sdogruyol>
jhass: <3
Ven has joined #crystal-lang
<sdogruyol>
finished in 2:16 :P
<dzv>
the installation process should be a lot easier
<jhass>
if you don't want to contribute to the compiler it's brew install crystal-lang and similar for other processes, what would you change?
<jhass>
er, for other OSes
<dzv>
installing all libraries should be handled with a single command even for the compiler
Ven has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Ven has joined #crystal-lang
<jhass>
I don't follow, you want to perform OS detection and curate lists with hundreds of mappings from linker flags to package names?
<sdogruyol>
dzv: are you talking about an installation script?
<dzv>
os detection yes and package installation yes with package version detection and installing dependent libraries from source if necessary. all are easily handled by chef, puppet or a variety of other tools
sdogruyol has quit [Remote host closed the connection]
vjdhama has joined #crystal-lang
<jhass>
"easily"
<jhass>
I know a lot of people who would disagree
<jhass>
those are insanely complex codebases with DSLs that are as complex to learn as a new language
<jhass>
RVM grew to 20kloc of shellscript to be able to handle that
<jhass>
sorry, but just now
<jhass>
*no
<dzv>
as opposed to every user doing it by hand? how is that easier?
<jhass>
what we can do is parse the linker errors and print a nicer error message
<jhass>
but I don't know, dev's should be used to those, you even get them from a bundle install if you're missing a lib
Ven has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<dzv>
being told "you're llvm install is too old, figure it out" is a shitty solution. curl && ./configure --prefix=./.libs && make && make install as a fallback mechanism is pretty easy to script and doesn't take 20k LOC
<jhass>
dzv: I'd suggest you try to maintain such a beast in a separate repo, crystal-installer or something. Maybe we can do something like pluggable subcommand support ala git. If you manage to support the major OSes (OS X, Debian, Ubuntu, Fedora, RHEL, CentOS) and keep up with the growth of the community we talk again
<dzv>
there's already an omnibus script that installs from source
<dzv>
it's used to build the releases
<jhass>
yes and it took me about 12 hours yesterday to automate building with it
<dzv>
i've easily spent > 6 hours getting crystal working on various os/s, often falling back to source because the os versions of different libs are too old
<jhass>
I already spent at least 100 hours merely troubleshooting RVM issues
<dzv>
that's weird. it's been pain free for me except for the occasional permission issue
<dzv>
a) rvm requires environment switching and is way more complicated. b) compiling from source is a single set of steps for every package we depend on which doesn't change between platforms. it's just configure && make && make install
<dzv>
why would you compare this to a shell script? shell scripts are hard to make portable. it doesn't have to be a shell script
<jhass>
my offer stands, maintain such a system for a year supporting the major OSes in their widely deployed versions (should give you about 12-18 targets) and then we can evaluate spending core dev time on maintaining it, until then I'd like to see other things
<jhass>
well, actually more like 24+ targets taking 32bit builds into account
<jhass>
the resulting binary, I'm talking about the compilation process
<buggs>
me too
<jhass>
well, try it on all_spec ;)
greengriminal has quit [Ping timeout: 260 seconds]
gamemanj has joined #crystal-lang
<buggs>
the problem is that after a build without it is slow
<jhass>
it's good enough for many (and I'd claim the majority) of usecases
greengriminal has joined #crystal-lang
greengriminal is now known as msg
msg is now known as Guest1825
Guest1825 has quit [Client Quit]
<buggs>
?
<jhass>
the binary execution speed
<crystal-gh>
[crystal] alanwillms opened pull request #1596: Suggest using the release flag when building (master...suggest-release-flag) http://git.io/vnbIc
Philpax has joined #crystal-lang
ssvb has joined #crystal-lang
sdogruyol has joined #crystal-lang
<sfcgeorge>
One thing I like about CoffeeScript is the shortcut for assigning instance variables in the constructor signature. Can Crystal do this? def initialize(@name); end
<sdogruyol>
sfcgeorge: yes
<sfcgeorge>
Hooray! That's a nice little improvement over Ruby :)
<sdogruyol>
sfcgeorge: that's the exact syntax
qard has joined #crystal-lang
<sdogruyol>
:D
BlaXpirit has quit [Quit: Konversation]
sdogruyol has quit []
<willl>
jhass: i had a similar idea with bm, but not on require, on use. If there is a way to see the release flag from user source
Philpax_ has joined #crystal-lang
Philpax has quit [Ping timeout: 265 seconds]
<jokke>
from what i've gathered from the websocket source the opcode send is always text
<jokke>
and close is an empty method
<jokke>
i don't quite get why
<jokke>
shouldn't it be possible to send binary packets or control packets as well?
<jhass>
willl: I'd like some more injected constants anyhow, not quite as extensive but the basics of RbConfig
<jokke>
especially the empty close method is confusion
<jhass>
so we could have things like CRYSTAL_CONFIG[:version] or so and CRYSTAL_CONFIG[:release
<jokke>
*confusing
<willl>
jhass: yeah, that'd be good. probably most build arguments
<jhass>
might even just do {{CRYSTAL_CONFIG}} I guess
<jhass>
so only the actually referenced stuff ends up as constants in the binary
Raimondi has quit [Quit: The road to wisdom?—Well, it's plain and simple to express: Err and err and err again, but less and less and less. — Piet Hein]
vjdhama has quit [Ping timeout: 244 seconds]
Philpax_ has quit [Ping timeout: 260 seconds]
vjdhama has joined #crystal-lang
fiveteesixone has joined #crystal-lang
<willl>
something only available in macros might be also easier to implement too
<asterite>
ifdef release
<asterite>
(it works already)
<willl>
hah :)
chino_ has joined #crystal-lang
vjdhama has quit [Read error: Connection reset by peer]
Ven has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
trapped has joined #crystal-lang
greengriminal has joined #crystal-lang
Dreamer3 has joined #crystal-lang
tomchapin has joined #crystal-lang
<dzv>
asterite, waj: do you know of a portable way to get the thread stack address? have you explored using GC_push_all_stack or setting altstack?
Raimondi has joined #crystal-lang
shama has joined #crystal-lang
<waj>
dzv: I didn't test your branch yet, but GC_register_altstack could indeed work!
<waj>
although I wonder if it's better to register just the stack used so far, instead of just sending STACK_SIZE
<jokke>
how would i add a UInt16 to a Slice(UInt8) ?
<dzv>
waj: how does that work exactly. stack used so far is only registered on fiber switch. what about the current fiber? how is that tracked when the stack grows?
fiveteesixone has quit [Remote host closed the connection]
fiveteesixone has joined #crystal-lang
<waj>
mm... maybe calling GC_register_altstack while executing the callback to GC_set_push_other_roots ?
<waj>
but, maybe it's too late. Another callback? I don't know
<dzv>
also, how is the stack cleared? if old objects are left at the end of the stack will they ever be gc'd?
<waj>
that's why it's important to get the current stack size
<dzv>
but how do you know the current stack size? stack size is only updated when the fiber is switched, not while it's running
<dzv>
and what zeroes the end of stack? does anything do that currently?
<Papierkorb>
is it currently somehow possible to (re-)load a .cr file at runtime?
<jhass>
no
<waj>
it's easy to get the current stack pointer and if you know in which fiber you're, you also know the stack base
<dzv>
that's not what i'm asking
<dzv>
stack_top is set when the fiber is switched. while the fiber runs the stack may grow. how does the gc know about the growth because it's not within the range of top and bottom?
endou_ has quit [Write error: Connection reset by peer]
<thor77>
jhass: thanks :)
leafybasil has joined #crystal-lang
<crystal-gh>
[crystal] vjdhama opened pull request #1600: Modified crystal init to check for pre-existing files and folders. (master...issue-1472-1555) http://git.io/vnNQ1
vjdhama_ has joined #crystal-lang
NeverDie has joined #crystal-lang
nakilon has joined #crystal-lang
vjdhama_ has quit [Ping timeout: 264 seconds]
ozra has quit [Ping timeout: 246 seconds]
chino_ has quit [Quit: Page closed]
vjdhama has joined #crystal-lang
<BlaXpirit>
one day i'll understand what macro def means
<vjdhama>
jhass: how would i go about spec file / folder creation.
rmosolgo has quit [Remote host closed the connection]
rmosolgo has quit [Remote host closed the connection]
vjdhama has quit [Remote host closed the connection]
vjdhama has joined #crystal-lang
<vjdhama>
jhass: another noob question > i am trying to run `init_spec` using `crystal init_spec.cr`. It gives me erroe bunch of errors. Am i doing something wrong.
<vjdhama>
*error
<jhass>
vjdhama: use bin/crystal when you work on the compiler
<vjdhama>
Aha
rmosolgo has joined #crystal-lang
apt-get has joined #crystal-lang
vjdhama has quit [Ping timeout: 256 seconds]
gamemanj has quit [Ping timeout: 265 seconds]
trapped has quit [Read error: Connection reset by peer]
vjdhama has joined #crystal-lang
feifan has quit [Ping timeout: 246 seconds]
feifan has joined #crystal-lang
apt-get has quit [Read error: No route to host]
apt-get has joined #crystal-lang
vjdhama has quit [Read error: Connection reset by peer]
ozra has joined #crystal-lang
alanwillms has quit [Quit: Saindo]
vjdhama has joined #crystal-lang
greengriminal has quit [Quit: Leaving]
vjdhama has quit [Read error: Connection reset by peer]
<crystal-gh>
[crystal] asterite pushed 2 new commits to master: http://git.io/vnA5R