jhass changed the topic of #crystal-lang to: The Crystal programming language | http://crystal-lang.org | Crystal 0.7.1 | Paste > 3 lines of text to https://gist.github.com | GH: https://github.com/manastech/crystal - Docs: http://crystal-lang.org/docs/ | API: http://crystal-lang.org/api/ | Logs: http://irclog.whitequark.org/crystal-lang
bcardiff has joined #crystal-lang
notfowl has joined #crystal-lang
notfowl is now known as fowl
datanoise has joined #crystal-lang
datanoise has quit [Ping timeout: 258 seconds]
bcardiff has quit [Quit: Leaving.]
vikaton has joined #crystal-lang
vikaton has quit []
waterlink1 has joined #crystal-lang
waterlink has quit [Ping timeout: 272 seconds]
waterlink1 has quit [Ping timeout: 245 seconds]
DerisiveLogic has quit [Remote host closed the connection]
DerisiveLogic has joined #crystal-lang
kulelu88 has quit [Quit: Leaving]
datanoise has joined #crystal-lang
datanoise has quit [Ping timeout: 245 seconds]
willlll has quit [Quit: willlll]
willlll has joined #crystal-lang
willlll has quit [Client Quit]
datanoise has joined #crystal-lang
willlll has joined #crystal-lang
<unshadow> Thanks
unshadow has quit [Quit: leaving]
JBat has joined #crystal-lang
havenwood has quit [Ping timeout: 250 seconds]
datanoise has quit [Ping timeout: 256 seconds]
willlll has quit [Quit: willlll]
willlll has joined #crystal-lang
willlll has quit [Client Quit]
willlll has joined #crystal-lang
willlll has quit [Client Quit]
havenwood has joined #crystal-lang
willlll has joined #crystal-lang
willlll has quit [Client Quit]
willlll has joined #crystal-lang
willlll has quit [Client Quit]
willlll has joined #crystal-lang
willlll has quit [Client Quit]
datanoise has joined #crystal-lang
datanoise has quit [Ping timeout: 255 seconds]
willlll has joined #crystal-lang
willlll has quit [Quit: willlll]
willlll has joined #crystal-lang
willlll has quit [Client Quit]
DerisiveLogic has quit [Ping timeout: 240 seconds]
datanoise has joined #crystal-lang
datanoise has quit [Ping timeout: 264 seconds]
JBat has quit [Quit: Computer has gone to sleep.]
ponga has joined #crystal-lang
unshadow has joined #crystal-lang
JBat has joined #crystal-lang
datanoise has joined #crystal-lang
datanoise has quit [Ping timeout: 265 seconds]
BlaXpirit has joined #crystal-lang
waterlink has joined #crystal-lang
waterlink1 has joined #crystal-lang
waterlink has quit [Read error: Connection reset by peer]
<unshadow> Is there a TO-DO list for future versions ? (or a road map)
<unshadow> >> a = [] of Int32; a.class == Array(Int32)
<DeBot> unshadow: # => true - http://carc.in/#/r/46
<jhass> unshadow: that question has been asked to the mailing list very recently ;)
<unshadow> A miling list ? I'll join at once ! :)
<unshadow> jhass, is the mailing list via the google groups, or do we have a real one ?
<jhass> it's a real one
<jhass> you don't need a google account
<unshadow> jhass, how can I join ? is there a link to the list ?
<jhass> I just linked a thread in it?
<jhass> just send an empty mail to crystal-lang+subscribe@googlegroups.com
<unshadow> Ok, so it is the google group, thats ok, I joined
<unshadow> thanks
Aleios has joined #crystal-lang
datanoise has joined #crystal-lang
datanoise has quit [Ping timeout: 258 seconds]
datanoise has joined #crystal-lang
datanoise has quit [Ping timeout: 240 seconds]
datanoise has joined #crystal-lang
datanoise has quit [Ping timeout: 264 seconds]
_havenn has joined #crystal-lang
havenwood has quit [Ping timeout: 256 seconds]
unshadow has quit [Quit: leaving]
Aleios has quit [Quit: WeeChat 1.1.1]
datanoise has joined #crystal-lang
datanoise has quit [Read error: Connection reset by peer]
_havenn is now known as havenwood
unshadow has joined #crystal-lang
DerisiveLogic has joined #crystal-lang
DerisiveLogic has quit [Remote host closed the connection]
DerisiveLogic has joined #crystal-lang
unshadow has quit [Ping timeout: 264 seconds]
unshadow has joined #crystal-lang
unshadow has quit [Quit: leaving]
ponga has quit [Quit: Leaving...]
CraigBuchek has joined #crystal-lang
shadeslayer has quit [Ping timeout: 272 seconds]
CraigBuchek has quit [Quit: Leaving.]
shadeslayer has joined #crystal-lang
willlll has joined #crystal-lang
bcardiff has joined #crystal-lang
willlll has quit [Quit: willlll]
shama has joined #crystal-lang
willlll has joined #crystal-lang
willlll has quit [Client Quit]
kulelu88 has joined #crystal-lang
willlll has joined #crystal-lang
willlll has quit [Client Quit]
shama has quit [Quit: (╯°□°)╯︵ɐɯɐɥs]
unshadow has joined #crystal-lang
JBat has quit [Quit: Computer has gone to sleep.]
<kulelu88> Does anyone have a Dockerfile to install Crystal?
<jhass> mh, do you really need one?
<jhass> I mean do you use a dockerfile for gcc?
strcmp1 has quit [Ping timeout: 252 seconds]
<kulelu88> jhass: I use docker as my virtualization tool.
<jhass> so that's a yes?
<kulelu88> I'd like to keep all my dev environments separated
willlll has joined #crystal-lang
<kulelu88> Hopefully my base ubuntu install has the gcc. but don't I need llvm?
<jhass> well, I'm not aware of any, but writing one should be easy, just embed the regular install instructons
<kulelu88> from source?
<jhass> oh, actually, it's right in the main repo :D https://github.com/manastech/crystal/blob/master/Dockerfile
<jhass> that's for the latest development version though
bcardiff has quit [Quit: Leaving.]
willlll has quit [Quit: willlll]
<kulelu88> jhass: If I have a base-ubuntu, what can I strip away?
<jhass> dunno, I only have a core list of packages for arch
bcardiff has joined #crystal-lang
bcardiff has quit [Quit: Leaving.]
<kulelu88> jhass: who is manastech?
<kulelu88> oh a company
<jhass> the company where the authors of crystal work at
<kulelu88> I'm trying to see what I can strip out
<jhass> 533M sandboxes/crystal/0.7.1/
<jhass> gonna get hard to get below that I think ;)
<kulelu88> jhass: from the dockerfile I mean
<kulelu88> I seem to have found a nice alternate dockerfile though
<jhass> oh, were?
<jhass> *where?
<kulelu88> Just to be clear, Crystal is a statically typed, compiled language, right?
<jhass> right
<kulelu88> are there any performance benchmarks I can see?
<jhass> some rough indications, though they're a bit low quality https://github.com/kostya/benchmarks
<kulelu88> jhass: and running a crystal webapp is as simple as dropping in a binary on a server?
<jhass> https://github.com/manastech/crystal/blob/master/Dockerfile.release seems better than the dockerfile you linked
<jhass> yeah
<jhass> note that both, crystal and its eco system are still in quite early development
<kulelu88> I'm going to test out a binary on a server. Will be fun
<jhass> it's good to toy, it's good to contribute to a developing community, I wouldn't base business critical stuff on it yet
<jhass> http://crystalshards.herokuapp.com/ if you want to look through some crystal based projects
<kulelu88> not even simple webapps that serve ads?
<jhass> if you put a reverse proxy in front to hide any quirks not considered in the shipped http server implementation, maybe
<kulelu88> jhass: yeah, I would probably run nginx in front
havenwood has quit []
<kulelu88> nobody should ever use their own http server =D
<jhass> I still think binding lwan so you could embed it could be fun
<kulelu88> I just want to compare writing Crystal vs. writing Nim
<jhass> look through my last link, there are a couple of early frameworks and sites built with them
<kulelu88> I'm glad there's support for postgres and a web framework, which means basic CRUD stuff is possible
<kulelu88> jhass: Can Crystal be considered a powerful language for building high-performance webapps?
<jhass> at the current stage, if you're willing to fill the holes in the standard library and build the webframework as you go with it, yes
<kulelu88> holes? What's lacking?
<jhass> crystal has an open class system, I often monkey patch stuff into stdlib while working on a project and upstream the patches later
<kulelu88> can you show an example of this?
<jhass> stuff, you'll simply run into holes from time to time
<jhass> yeah, here's my Process.run that can capture stderr: https://github.com/jhass/DeBot/blob/master/core_ext/src/core_ext/process.cr
<jhass> or here I called into the existing C binding because what I needed wasn't mapped out into the core class: https://github.com/jhass/carc.in/blob/master/src/carcin/base36.cr#L10
<kulelu88> the syntax looks so simple.
<jhass> do you know Ruby?
<kulelu88> I know Python
<kulelu88> but the syntax is similar
<jhass> crystals syntax is heavily inspired by Ruby
<kulelu88> I wonder how much cleaner it would've looked had it been Python
<jhass> I guess it'd look like Nim? :P anyway, cleaner is entirely subjective
<kulelu88> Nim does not look like Python
<kulelu88> Well not to me that is
<jhass> I'm happy it looks like Ruby and not like Python
<kulelu88> why so?
<jhass> because I like Ruby ;)
<kulelu88> haha. Well I don't mind. As long as I can use it for performance-based things, It's cool.
<kulelu88> Can't be hoping for someone to build something like that when Crystal seems good enough
<jhass> fun fact: crystal was written in Ruby before it became self hosted
<kulelu88> How exactly does 1 go about writing a new language?
<jhass> it's a program
<jhass> like when you write a program that takes CSV and turns it into SQL INSERT statements
<jhass> just a bit more text processing and analysis involved
<kulelu88> a program or a DSL?
<unshadow> >> a = 2 ; a == Int32
<DeBot> unshadow: # => false - http://carc.in/#/r/4i
<jhass> a program
<kulelu88> how do you get to go from "written in Ruby to compiled in Crystal itself?" ?
<jhass> you write a new compiler in the language you've written a compiler for in another language
<jhass> until you have a compiler that can compile its own code
<kulelu88> like recursion?
<kulelu88> well not the technique, but the principle
<jhass> a self hosted compiler probably has some recursive aspects, have to think about it :P
<unshadow> Who compiled the first compiler ? gcc or something
havenwood has joined #crystal-lang
<jhass> though it's an iterative process, you usually ensure compiler generation n can compile compiler generation n+1
<kulelu88> I should try this. Would be fun to be a language author of my own language. Then I can overlord and tell people to "feck off"
<jhass> unshadow: pretty sure the first assembler was entered into the machine with raw opcodes
<unshadow> Hmmm interesting read :)
<BlaXpirit> well of course
<jhass> now the philosophical part begins whether you consider a CPUs instruction set a language ;)
<kulelu88> It's all in the name though. What is longer or more dangerous than a Python?
<unshadow> Cobra ?
<kulelu88> What do you guys think of Viper?
<kulelu88> Cobra is taken :(
<kulelu88> So is Anaconda :(
<unshadow> Rattle snake
<havenwood> kulelu88: Common Garden Snake?
<unshadow> Black mamba
<kulelu88> What about Baselisk? =D muhahahaha
<jhass> snowsnake
<unshadow> Snake::snake
<kulelu88> it's not a base or based on lisp, it is a baselisk
<unshadow> Snake::snake.to_snake
<kulelu88> I shall officially, as the first action of language philosophy, ban ::
<unshadow> Noo
<kulelu88> no Perl Lisp stuff here
<unshadow> How can you know which is class and which is module ?
<unshadow> Module::class.method
<kulelu88> There shall be no OO also.
<kulelu88> If you want that, there is C++
<kulelu88> =D
<unshadow> >> puts "new snake language sounds .... Mha..."
<DeBot> unshadow: new snake language sounds .... Mha... - more at http://carc.in/#/r/4j
<unshadow> brb , rebooting a new rom
<jhass> >> Class.is_a? Module
<DeBot> jhass: Error in line 4: undefined constant Module - http://carc.in/#/r/4k
<jhass> :(
<jhass> well, that's true, in theory
<jhass> >> Module === Class
<DeBot> jhass: Error in line 4: undefined constant Module - http://carc.in/#/r/4l
<jhass> oh, right we still don't have Module faked
<jhass> >> module A; end; A.class
<DeBot> jhass: # => Class - http://carc.in/#/r/4m
unshadow has quit [Ping timeout: 244 seconds]
unshadow has joined #crystal-lang
<unshadow> I want 0.8 to come :)
<unshadow> jhass , what is usually the time between versions ?
<jhass> unshadow: so from the theoretical point of view, Class is a specialization of Module, it's a Module you can make instances of
<jhass> https://github.com/manastech/crystal/releases calculate the mean yourself ;)
<unshadow> Interesting, you cant create an instance of a module ?
<jhass> yes
<jhass> There's no Module#allocate, only Class#allocate
<unshadow> require "openssl"
<unshadow> >> require "openssl"; s = OpenSSL::SSL::Socket.new
<DeBot> unshadow: Error in line 4: wrong number of arguments for 'OpenSSL::SSL::Socket#initialize' (0 for 1, 2, 3) - http://carc.in/#/r/4n
<unshadow> Well.. Isnt OpenSSL an instance ?
<jhass> s points to an instance of Socket
<unshadow> Also , i see new versions are around once a month +/-
<jhass> OpenSSL is a constant that points to an instance of Module, SSL is a constant that points to an instance of Module, Socket is a constant that points to an instance of Class
<unshadow> and new initiate the class of socket
<unshadow> Im not that good with terminology :(
<jhass> yes, (well, actually allocate does, new is def self.new(*args, &block); obj = allocate; obj.initialize(*args, &block); obj; end;, basically
BlaXpirit has quit [Quit: Quit Konversation]
strcmp1 has joined #crystal-lang
orliesaurus has quit [Ping timeout: 246 seconds]
willlll has joined #crystal-lang
bcardiff has joined #crystal-lang
bcardiff has quit [Quit: Leaving.]
vikaton has joined #crystal-lang
zz_Cidan has quit [Ping timeout: 252 seconds]
Cidan has joined #crystal-lang
Cidan has quit [Ping timeout: 250 seconds]