<< 20-10-2014 >>

00:10:09*FreezerburnV joined #nimrod
00:11:21superfun[c]fowl: just curious, why did you implement a vtable for your entity system?
00:13:45fowlsuperfun[c], each component can have messages (methods) attached to them, the type info is a combination of components, so it has a vtable that is the aggregation of the components' messages
00:15:43fowlalso for unicast messages, which can only be fulfilled by one component at a time, when you create a new type info it has to figure out which unicast message to keep
00:20:12superfun[c]makes sense
00:20:26superfun[c]I just saw vtable and it popped out at me(too much c++)
00:22:09*darkf joined #nimrod
00:24:08fowlhttps://bitbucket.org/fowlmouth/entoody
00:25:12fowlthat is a rewrite of entitty
00:27:36Varriountfowl: Cool!
00:28:03superfun[c]I actually started messing around with implementing some monads in nim the other day, I thought your implementation of maybe_t was interesting
00:32:13*superfun[c] quit (Ping timeout: 246 seconds)
00:33:20*superfunc_ joined #nimrod
00:35:14EXetoCfowl: is entitty a pun?
00:42:11dom96_Araq: yes
00:46:34*superfunc_ quit (Ping timeout: 246 seconds)
00:48:31*superfunc_ joined #nimrod
00:56:25*gokr quit (Remote host closed the connection)
00:57:46*superfunc_ quit (Ping timeout: 246 seconds)
01:00:15*superfunc_ joined #nimrod
01:00:22superfunc_internet so bad
01:02:56fowlEXetoC, yes >_>
01:03:06EXetoChuehue
01:04:46*superfunc_ quit (Ping timeout: 246 seconds)
01:10:26FreezerburnVHm, I’m having a little trouble with a template. Can someone take a look at https://gist.github.com/Freezerburn/2bc79571eac1b0701fcc and let me know why the log template causes the error shown in the gist?
01:19:03EXetoCcan logChan be invoked without the parens? I'd think not
01:19:36FreezerburnVI don’t know. It’s just a TChannel
01:21:32EXetoCit is, if you manage to call it. I don't know if it can be called that way
01:21:46EXetoCcall/evaluate the template
01:21:54fowlFreezerburnV, does it work if you replace logchan with channels[2][] in log()?
01:22:04fowlEXetoC, it can
01:22:38FreezerburnVfowl: Nope. It just moves the error over to column 30
01:22:39fowlFreezerburnV, ah, the problem is your msg parameter in template
01:22:58*superfunc_ joined #nimrod
01:23:09EXetoCright, for the sake of all kinds of magic
01:23:23fowlFreezerburnV, the code that is resulting is message("error message": "error message"), because it is replacing the key "msg" with the code you sent to the function
01:23:41FreezerburnVOooh
01:24:30FreezerburnVfowl: Changing it to msgStr works. Thanks!
01:26:25fowlwhen a template fails to instantiate because of syntax the attempted syntax should be printed out
01:26:55fowlin a perfect world maybe
01:27:08FreezerburnVThat would be nice
01:29:58fowlEXetoC, do you know if semistatic[t] was renamed?
01:30:05superfunc_did we still need a yaml parser? I remember it being on the summer of code idea list. I made one in haskell last week, and translating should be easy
01:32:03fowlsemistatic was removed.. but why
01:34:42*johnsoft quit (Ping timeout: 255 seconds)
01:35:18*johnsoft joined #nimrod
01:35:58EXetoCI dunno
01:36:34fowlits the lamest bugfix i've ever seen https://github.com/Araq/Nimrod/issues/1472
01:39:17superfunc_lol ^
01:39:29*saml_ joined #nimrod
01:55:41*vendethiel quit (Quit: q+)
02:10:34*jpoirier joined #nimrod
02:11:16*superfunc_ quit (Ping timeout: 246 seconds)
02:19:33*superfunc_ joined #nimrod
02:28:59*ehaliewicz joined #nimrod
02:33:17*ehaliewicz quit (Remote host closed the connection)
02:38:51*darkf quit (Ping timeout: 265 seconds)
02:47:49*flaviu quit (Remote host closed the connection)
02:55:44superfunc_dom96_: bigbreak assumes the user will be using nimble, and not babel correct?
02:57:40*darkf joined #nimrod
02:58:13dom96_superfunc_: yes
02:58:58superfunc_ok, I'll throw up a PR for a fix to nim.cfg then
02:59:07superfunc_its currently looking under .babel for includes
03:01:48dom96_yeah, thanks.
03:03:39superfunc_np dude
03:03:42*xenagi quit (Read error: Connection reset by peer)
03:04:08*kshlm joined #nimrod
03:05:17dom96_superfunc_: Just fixed #61, please test it.
03:05:35superfunc_one sec
03:10:24superfunc_it seems to fix it, I'll grab my old babel copy later and make sure
03:12:27dom96_superfunc_: cool
03:12:46superfunc_is there any reason urlDecode was renamed to decodeUrl in jester?
03:16:16superfunc_err, in stdlib
03:16:28superfunc_I meant the error came about from jester
03:18:42dom96_dunno
03:18:53dom96_concise with conventions perhaps
03:18:58dom96_good night
03:19:08*saml_ quit (Quit: Leaving)
03:20:11superfunc_I can go through and make jester bigbreak compliant tomorrow if you'd like
03:23:47superfunc_is there any reason urlDecode was renamed to decodeUrl in jester?
03:40:29*FreezerburnV quit (Quit: FreezerburnV)
03:45:25*superfunc_ quit (Ping timeout: 246 seconds)
03:46:15fowlit seems the rules for accessing compile-time values between modules has changed
03:48:34*quasinoxen joined #nimrod
03:53:03*darkf_ joined #nimrod
03:55:42*darkf quit (Ping timeout: 265 seconds)
04:16:43*superfunc_ joined #nimrod
04:16:58*darkf_ is now known as darkf
04:26:57Varriountfowl: Howso?
04:37:57*johnsoft quit (Ping timeout: 260 seconds)
04:38:32*johnsoft joined #nimrod
04:40:01*superfunc_ quit (Ping timeout: 246 seconds)
04:43:49fowlVarriount, see #1581
04:53:36reactormonkwow, already at 1.5k. How long ago was #1k?
04:58:10*vissborg quit (Remote host closed the connection)
04:59:52*vissborg joined #nimrod
05:07:18*EXetoC quit (Quit: WeeChat 1.0.1)
05:10:24*kshlm quit (Remote host closed the connection)
05:25:42*kshlm joined #nimrod
05:36:27*gokr_ joined #nimrod
05:41:03*kaushal_ joined #nimrod
05:41:18*kshlm quit (Ping timeout: 272 seconds)
05:48:45*kaushal_ quit (Quit: Konversation terminated!)
05:53:07*bitcrusher joined #nimrod
05:54:13bitcrusheris this the official irc channel? are we going to move to #nim?
05:55:50Triplefoxwe have a #nimlang that people are in but not really using yet
05:56:58bitcrusheriono i actually prefer nimrod :)
06:01:24*gokr joined #nimrod
06:01:54*gokr_ quit (Ping timeout: 246 seconds)
06:25:26bitcrusher!seen dom96
06:25:26NimBotdom96 was last seen on Fri Oct 17 19:26:44 2014 joining #nimrod
06:29:55*gokr_ joined #nimrod
06:34:01*gokr quit (Ping timeout: 258 seconds)
06:35:48gokr_topic is outdated :)
07:05:32*Pisuke quit (Ping timeout: 272 seconds)
07:17:51*darkf_ joined #nimrod
07:18:35*darkf quit (Disconnected by services)
07:18:36*darkf_ is now known as darkf
07:34:02*Trustable joined #nimrod
07:36:08*jpoirier quit (Quit: Leaving)
07:37:28*kshlm joined #nimrod
07:37:36*kshlm quit (Changing host)
07:37:36*kshlm joined #nimrod
08:32:17*superfunc_ joined #nimrod
08:57:33superfunc_on the notion of making the naming consistent in the stdlib, do we want to get rid of underscores in function names, like epoll_create in lib/posix/epoll
08:58:12superfunc_the fact that its in the epoll module makes it clear as is, so it could be just create(), and from the callers perspective epoll.create()
09:03:00superfunc_The only issue with that is, if there is no name clash, you can use it without the module qualification
09:21:13TrustableWho can update http://nimrod-lang.org/news.xml ?
09:32:12superfunc_Either Araq or Filwit, I'd guess
09:49:43dom96_superfunc_: jester new-async is already bigbreak compliant
09:50:05dom96_I guess we'll move to #nim once 0.10.0 is released.
09:51:13superfunc_right on
09:52:19superfunc_anyone else having trouble cloning from github atm?
09:52:52*kshlm quit (Ping timeout: 240 seconds)
10:19:52*superfunc_ quit (Ping timeout: 246 seconds)
10:20:08*kshlm joined #nimrod
10:31:43*xyproto joined #nimrod
10:32:31xyprotoHi, when compiling the latest version of Nim, I get strtabs.nim(147) raiseFormat Exception and "Error: unhandled exception: format string: key not found: mingw [EInvalidValue]"
10:32:45xyprotoIs this a common issue? I'm trying to package it for Arch Linux.
10:34:14xyprotousing the v0.9.6 tag from the git repo
10:39:04superfuncHmm, why is it referring to mingw when building under linux
10:39:45xyprotosuperfunc: that's what baffled me as well
10:39:50superfuncWhich version of csources did you check out?
10:40:11xyprotoI'll paste the full PKGBUILD, 2 sec
10:41:15xyprotosuperfunc: http://ix.io/eQp
10:42:04xyprotothe error happens somewhere after ./tools/niminst/niminst --var:version=0.9.5 scripts compiler/nimrod.ini
10:42:14xyprotonot sure where version=0.9.5 comes from either
10:43:42superfunc0.9.5 was a development version, all the odd numbers are
10:44:00xyprotook. But the v0.9.6 tag is checked out
10:44:33superfuncHave you tried going in Nimrod and checking out csources manually?
10:45:02superfuncThen run build.sh in csources
10:45:26xyprotosuperfunc: pretty sure that's not the problem, but will try
10:46:36superfuncdom96_: ping
10:47:57dom96_superfunc: sup?
10:48:37superfuncYou might know why this dudes build is failing^^
10:48:49superfunchttp://ix.io/eQp
10:49:21xyproto"./koch boot -d:release" works fine
10:50:13superfuncCool
10:52:21dom96_is nimrtl the problem?
10:54:06xyprotonot sure
10:54:11xyprotoit's ./koch install that failes here
10:54:16xyproto*fails
10:54:58xyprotoeverything before that works fine
10:55:22xyprotoI can post the full output, if that helps
10:57:53superfuncAs a temporary workaround, you could just add Nimrod/bin to PATH
10:58:12xyprotosuperfunc: that's already being done
10:58:34xyprotoexport PATH="$srcdir/$pkgname/bin:$PATH"
10:59:45xyprotohere is the full stdout and stderr when building. stdout: http://ix.io/eQq stederr: http://ix.io/eQr
11:00:16xyproto(forgot to set the locale to english before building, so there is some norwegian output thrown in there, but the output from the nimrod-related tools is the same)
11:03:14xyprotoI see that "dist/mingw" is mentioned in the compiler/nimrod.ini file. Could it be that the [Windows] section is somehow used, even tough it's not supposed to, or that there is something wrong with the parsing of sections or comments?
11:03:54xyprotodom96_: ^
11:05:48*Pisuke joined #nimrod
11:14:43*kaushal_ joined #nimrod
11:15:05*kshlm quit (Ping timeout: 260 seconds)
11:29:03dom96_xyproto: You can always just copy the files manually instead of using koch install.
11:29:17dom96_I know it's tedious but I'm not sure what the problem is.
11:29:35dom96_It likely requires a patch which is a problem to do after a release.
11:44:47*gokr1 quit (Quit: Leaving.)
11:45:05Trustabledom96, please update the topic of this channel
11:46:37*Araq_ joined #nimrod
11:47:40Araq_xyproto: a fix for that is already in devel, but the release is tagged and I don't want to change the tag. However, only the build instructions need to be updated really. Will do it tonight.
11:48:08Araq_and no, it doesn't use mingw on linux ;-)
11:48:35Araq_the real problem is that I wasn't aware we tell people to use "koch install"
11:49:16Araq_there are too many places where we documented how Nim should be built/installed :-/
12:05:01*BitPuffin joined #nimrod
12:06:22*FreezerburnV joined #nimrod
12:18:28xyprotoAraq_: I see. Thanks for looking into it, will try the latest commit from the devel branch instead. Thanks.
12:27:46*BitPuffin quit (Remote host closed the connection)
12:27:53*Pisuke quit (Ping timeout: 260 seconds)
12:28:10*BitPuffin joined #nimrod
12:28:13xyprotoAraq_: the latest commit from the devel branch worked fine
12:28:31*gokr joined #nimrod
12:28:31*gokr quit (Read error: Connection reset by peer)
12:28:32xyprotodom96_: thanks for the support
12:28:36*gokr_ quit (Read error: Connection reset by peer)
12:28:44Araq_xyproto: so what's your opinion? re-tag the release?
12:28:48*gokr joined #nimrod
12:29:11xyprotoAraq_: yes, also the niminst --var:version=0.9.5 line is a bit confusing for a 0.9.6 release
12:29:41xyprotoAraq_: but the problem is solved here on my end, it's not a problem to depend on the commit until the next release tag
12:29:42Araq_that's caused by outdated csources ... :-/
12:30:04xyprotothat's weird, I'm checking out csources from git
12:30:08xyprotooh well
12:30:19xyprotoIt's all good. And good call on the new "nim" name :)
12:31:11xyprotoAraq_: should /usr/bin/nimrod be called /usr/bin/nim instead, from a packaging point of view?
12:31:38Araq_xyproto: not for 0.9.6. 0.10.0 will be 'nim'
12:31:50xyprotoAraq_: I see.
12:33:08xyprotoAraq_: btw, I wrote a "sdl2 hello world / getting started" sample application for several languages, and Nimrod was one of the most comfortable both to read and write. https://github.com/xyproto/hello_sdl2 if you should be interested
12:35:41*dom96 quit (Changing host)
12:35:41*dom96 joined #nimrod
12:42:45*FreezerburnV quit (Quit: FreezerburnV)
12:46:18*darkf quit (Quit: Leaving)
12:46:32*BitPuffin quit (Remote host closed the connection)
12:59:33xyprotoNimrod 0.9.6 is now available as an official package on Arch Linux, using commit b0179f9af5 from the devel branch
12:59:55xyproto(it will take a minute or two before it appears in [community])
13:01:18Araq_xyproto: does 'nimrod -v' produce 0.9.6 for this pakage?
13:01:59xyprotoAraq_: yes, Nimrod Compiler Version 0.9.6 (2014-10-20)
13:02:10Araq_ok good
13:03:37*nullmove joined #nimrod
13:13:14*gokr1 joined #nimrod
13:13:38*BlaXpirit joined #nimrod
13:16:49*BitPuffin joined #nimrod
13:17:29gokr1xyproto: This mingw thing someone mentioned yesterday and I think Araq made a commit...
13:20:45gokr1Hehe, or quoting Araq from then: "er where do we tell you to run fucking "koch install"?"
13:21:12gokr1The install.txt file doesn't recommend that anymore - readme.md is a bit old I think.
13:22:23gokr1Perhaps it was this: https://github.com/Araq/Nimrod/commit/4cca562c4a5386656c85008ba17865b67b479fc5
13:23:10gokr1later
13:25:58nullmovehi gokr1, your last article was great
13:30:14*gokr_ joined #nimrod
13:30:28*dom96_ quit (Quit: Leaving)
13:32:19*untitaker quit (Ping timeout: 245 seconds)
13:33:00*gokr quit (Ping timeout: 258 seconds)
13:39:17gokr_nullmove: which one? :)
13:39:36*untitaker joined #nimrod
13:41:04gokr_i posted a new today
13:41:18gokr_a fluffy one
13:41:25nullmoveyes the new one: http://goran.krampe.se/2014/10/20/i-missed-nim/
13:41:43nullmoveyour references were great, had a good time reading around :)
13:42:09gokr_thanks!
13:43:02gokr_Nim needs to get above radar
13:44:57nullmovespeaking of it, I noticed that the news about 0.9.6 release haven't been posted in HN
13:46:32nullmoveah, someone finally did it 12 minutes ago
13:50:46gokr_Next I would like to explore debugging and ide support, editors
13:50:59gokr_I suspect that is the weak spot.
13:52:15Araq_gokr_: I think it's better to remove some of your articles and instead "officially" release one of them each week
13:52:35Araq_so we can spam reddit and hn :-)
13:52:45Araq_but I don't know really
13:52:59gokr_Hehe, well, true - but I will write more.
13:53:25gokr_and not fond of removing
13:53:40Araq_the D reddit spamming is too obvious, we shouldn't copy that model
13:53:55xyprotogokr_: the mingw issue was resolved after advice from Araq_ to use a later commit. Thanks, though.
13:54:23gokr_But feel free to link them in somewhere
13:55:45gokr_and also, since Rust and Go are the main competition a more detailed comparison may be good to have on the site
13:56:46*johnsoft quit (Ping timeout: 240 seconds)
13:57:07bjzAraq_: do you mean D spamming on /r/programming? or on their own subreddit
13:57:13xyprotogokr_: and perhaps Julia
13:57:40Araq_bjz: on /r/programming of course
13:57:40*johnsoft joined #nimrod
13:57:46TrustableAraq_: http://nimrod-lang.org/news.xml needs to be updated
13:58:03Araq_Trustable: yeah, will do later
13:58:14bjzAraq_: ah ok - yeah I was turned off the D subreddit because of their automated forum bot thing
13:58:14Trustableok
13:58:46Araq_bjz: well I'm obviously very biased against D
13:59:19bjzAraq_: I don't really find the D posting too bad, but it would be better if it was more than just andrei doing it
13:59:40*bjz says this as a heavy Rust user
14:00:13bjzAraq_: I would definitely like to see more nimrod stuff being posted on proggit
14:00:18bjzand HN
14:00:48bjzit is a balancing act though
14:00:49*saml joined #nimrod
14:02:01gokr_How complete is the VM btw? Can it be used for debugging?
14:02:18bjzAraq_: re. HN posts, be sure not to ask for upvotes directly through the URL - they kill the thread if they see too many folks coming from the same source
14:02:41bjzAraq_: ie. it's killed automatically
14:02:45Araq_gokr_: no, it can't
14:05:24gokr_Or some virtual cpu? Eliot uses Bochs to debug his JIT. But is there some info on how to debug?
14:08:21Araq_gokr_: well I told you. try the visual studio plugin please
14:08:54Araq_debugging via .injectStmt is worth an article of its own
14:09:11gokr_I will, just curious on Linux since that is our server platform
14:09:57gokr_ok I will google it
14:10:21Araq_bjz: thanks for the advice.
14:12:42*Araq_ quit (Read error: Connection reset by peer)
14:14:24*Araq_ joined #nimrod
14:19:54*noam joined #nimrod
14:20:11*Araq_ quit (Quit: ChatZilla 0.9.91 [Firefox 33.0/20141011015303])
14:21:35*askatasuna joined #nimrod
14:30:52*BitPuffin quit (Ping timeout: 255 seconds)
14:33:35*BitPuffin joined #nimrod
14:41:56*gkoller joined #nimrod
14:48:15*gkoller quit (Quit: Textual IRC Client: www.textualapp.com)
15:06:49*Pisuke joined #nimrod
15:12:37*mko quit (Ping timeout: 260 seconds)
15:13:30*prosper_ joined #nimrod
15:16:04*gokr joined #nimrod
15:18:48*gokr_ quit (Ping timeout: 258 seconds)
15:42:33*Etheco joined #nimrod
15:43:15EthecoPossibly a silly question, but can Nimrod be run like a Daemon?
15:48:46TrustableEtheco: Do you mean the Nimrod compiler?
15:49:33Ethecoi think i just need to learn more, i assume i can have a loop thats True, that just pauses every 15secs
15:50:42Ethecojust need to figure out how to fork it into the background correctly.
16:03:12bjzAraq: is nimrod-lang.org meant to redirect to nim-lang.org?
16:06:51*mko joined #nimrod
16:19:49gokr1Etheco: On Linux?
16:20:22*mko quit (Quit: Bye.)
16:21:32gokr1Etheco: For a simple example of a daemon, check examples/httpserver2.nim. As you can see it has a main that basically does a "while true:" and uses "sleep(10)" to not busy loop.
16:21:32*gokr quit (Read error: Connection reset by peer)
16:21:48*gokr joined #nimrod
16:22:06gokr1Then in Unix at least - there is nothing special with a "daemon" prog - just run it in the background
16:25:05*prosper__ joined #nimrod
16:25:36*prosper_ quit (Read error: Connection reset by peer)
16:26:00Ethecoah sweet gokr1 thanks :)
16:26:21Ethecoyeh its linux, i am writing a maint daemon for servers and found nim and looks awesome
16:27:06gokr1Yeah, I just discovered Nim too actually.
16:27:55Ethecoand from what i read, i can compile so its fully independent also
16:28:10Ethecoso i don't need to install this and that to get it working, is that correct
16:28:40gokr1Yeah, Nim compiles to a single executable per default.
16:28:47Ethecoawesome :)
16:29:05*gokr_ joined #nimrod
16:29:15gokr1So just write a single file, add your imports at the top and "nimrod c myprogram.nim" and you get an executable called "myprogram".
16:29:33gokr1And use Babel to install libraries you wish to use - that are not in the stdlib.
16:29:53Ethecospot on, thanks :)
16:30:17gokr1And to get speed - add the "-d:release" option when compiling.
16:30:22gokr1That gives like 20x boost :)
16:30:25gokr1Or whatever.
16:30:29Ethecoah that the optimisation
16:30:45gokr1You can start by going into examples and "nimrod c somexeample.nim"
16:31:33*kaushal_ quit (Ping timeout: 255 seconds)
16:31:41gokr1yeah, it adds some optimization flags for the C compiler I think - and also doesn't stuff lots of debug thingies into the C source.
16:32:02Ethecoif i compile it on a 32bit machine
16:32:08Ethecowill this effect it being on a 64bit
16:32:29*gokr quit (Read error: Connection reset by peer)
16:32:37Ethecojust compiled (32bit machine) and moved the compiled file to another server and tried to run it after +x, but i am getting a ld-linux.so.2: bad ELF interpreter: No such file or directory
16:33:05gokr1Ehum.
16:33:49*gokr_ quit (Ping timeout: 260 seconds)
16:34:02gokr1Oh, it seems that means you are missing 32 bit files on that machine.
16:34:09gokr1What Linux distro?
16:34:22*gokr_ joined #nimrod
16:34:25Ethecocentos 64btit
16:34:40gokr1Ah, ok. Then I guess this link may help:
16:34:50gokr1http://stackoverflow.com/questions/14030306/lib-ld-linux-so-2-bad-elf-interpreter-no-such-file-or-directory
16:34:54gokr1I just googled it.
16:35:20Ethecoill try compile it on a 64bit server
16:35:25Ethecoand see if it still asks for that
16:35:44gokr1Yeah, if you do it on a 64 bit machine you should be fine.
16:35:52Ethecoawesome :) thats fine then
16:35:55Ethecothank you
16:35:58gokr1or on the 64 bit machine, do "yum install glibc.i686" and then it may work fine.
16:36:52Ethecogonna try build it to avoid installing extras
16:36:58gokr1sure
16:37:05Ethecothey will all be 64bit servers it goes on, just my local is 32bit sadly
16:37:18EthecoThank you very much for your time gokr1 *Thumbsup*
16:38:08gokr1No, problem, that's what IRC is for :)
16:42:45*gokr_ quit (Ping timeout: 246 seconds)
16:44:48*gokr_ joined #nimrod
16:51:16*gokr joined #nimrod
16:51:16*gokr_ quit (Read error: Connection reset by peer)
16:51:40*Matthias247 joined #nimrod
16:58:33*Matthias247 quit (Read error: Connection reset by peer)
17:00:24*Matthias247 joined #nimrod
17:04:10*prosper__ quit (Remote host closed the connection)
17:07:20*vendethiel joined #nimrod
17:09:15*Jesin quit (Quit: Leaving)
17:11:43*Jesin joined #nimrod
17:17:41*prosper_ joined #nimrod
17:17:52*Jesin quit (Quit: Leaving)
17:19:33*Jesin joined #nimrod
17:20:46*prosper_ quit (Remote host closed the connection)
17:37:44*Demos joined #nimrod
17:43:59*user__ joined #nimrod
17:47:03*nullmove quit (Ping timeout: 244 seconds)
18:00:34*Ven joined #nimrod
18:04:23*prosper_ joined #nimrod
18:10:17*user__ quit (Quit: Leaving)
18:14:46Varriountbloop
18:21:16*superfunc_ joined #nimrod
18:23:47superfunc_today was fun, all of my students in intro to java thought Nim was awesome. First question was: "If this is faster, and it doesn't look so awful, why are we using java?" lulz
18:26:21gokr1Nice!
18:28:06superfunc_it was a good thing no one came in to observe my teaching during the detour lol
18:28:33Ethecothey raise should a good point :D
18:28:40Ethecosuch*
18:29:13Ethecoalso gokr1 compiling on 64bit resolved my issues :)
18:35:27gokr1Etheco: Goodie
18:36:13*BitPuffin quit (Ping timeout: 258 seconds)
18:55:15*Demos quit (Ping timeout: 244 seconds)
18:56:17Varriountsuperfunc_: Can I be your student? My CS teacher is enamored with Java.
18:56:52Varriountsuperfunc: I tried to show some students Nimrod, and I think I broke their brains. They just stared at me with incomprehension.
18:57:08Varriount*some of my classmates in my CS class
18:58:28superfuncThat's surprising, nim is so much cleaner. What did you show them haha?
18:59:44Varriountsuperfunc: The front page.
19:00:58superfuncWow.
19:02:31VarriountThen again, this is an intro to CS class.
19:03:10superfuncFair enough. They are taking a lot of new info on
19:04:32Varriountsuperfunc: I'm just taking in how... dysfunctional parts of Java are.
19:04:52VarriountLike, how you can't instantiate a generic type.
19:06:02VarriountOr maybe it was an array of a generic type.
19:06:04gokr1Java is a sick hack.
19:06:58gokr1When it came it was a joke, then they added, added, added... into a monster. Some of the libs are quite allright though - I recall some concurrency libs that were fairly nicely constructed.
19:07:31gokr1Sad that IBM didn't take the fight with Sun at the time. (waiting to see if anyone understand what I mean)
19:11:20*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:15:23superfuncProbably before my time gokr1
19:15:36gokr1Hehe
19:16:03gokr1So at the time IBM was pushing Smalltalk fairly hard, and Sun invented Java - first aimed at consumer electronics.
19:16:29gokr1Smalltalk had mainly two commercial vendors - IBM and Parcplace. IBM of course much more muscle.
19:16:41gokr1Both Smalltalks very good.
19:17:13gokr1Then the web came, and Sun realized noone wanted Java in consumer electronics - so they threw it at the web instead. Applets.
19:17:49gokr1Anyway, so not much happened - but there was an interesting turning point at the OOPSLA conference.
19:18:26gokr1Not exactly sure which year that was... (googling) ... I was there.
19:18:31TriplefoxFunny how java ended up in consumer electronics anyway via android
19:18:48TriplefoxAnd the older phones
19:19:46VarriountI recall a quote from a google dev on why Java was chosen... something along the lines of 'all the other options suck'
19:20:15gokr1So, anyway - the turning point. Animorphic systems were at OOPSLA. Their booth was empty - but they had a single graph on a piece of paper on the wall.
19:20:48gokr1The paper showed Java vs their Java. And Smalltalk vs their Smalltalk.
19:20:54*q66[lap] quit (Quit: Textual IRC Client: www.textualapp.com)
19:21:03gokr1Basically their VMs were 5x faster.
19:21:25gokr1So this was the commercialization of the adaptive JIT tech that Strongtalk pioneered.
19:21:31gokr1Which originally came from Self.
19:21:51VarriountAnd was eventually used for the JVM?
19:22:09gokr1And I recall asking them what was their game plan - and they said (they were like only 8 people or so) "We are here to get bought!"
19:22:20gokr1So IBM or Sun.
19:23:04gokr1And it was Sun who did it. At this time IBM had started their "customer is always right" reformation - they weren't taking up any wars anymore.
19:23:28gokr1So Sun bought Animorphic/Longview tech - and that became HotSpot.
19:23:53gokr1Which propelled Java into much more interesting performance.
19:24:07*prosper_ quit (Read error: Connection reset by peer)
19:24:24gokr1Many things come from the Smalltalk roots. Including Eclipse.
19:24:35*prosper_ joined #nimrod
19:25:09gokr1IBM Smalltalk was called VisualAge (basically). Then they wrote a Java IDE in Smalltalk - and called that VisualAge for Java.
19:25:31gokr1Basically it was the Smalltalk IDE - just refitted to browse and debug Java code.
19:25:43gokr1It was the best Java IDE I have used.
19:26:02gokr1Then - since these guys were Smalltalkers - they felt that a proper Java IDE should be written in Java too.
19:26:12TriplefoxHa
19:26:13gokr1So thus Eclipse was born.
19:26:46gokr1And turned into some kind of Visual Studio clone instead.
19:26:53gokr1A pity.
19:27:04*q66[lap] joined #nimrod
19:27:54gokr1And Swing? I didn't like it much - but it too came from Smalltalk roots. IIRC it was the same people who wrote the similar framework for VisualWorks Smalltalk - called Chameleon I think.
19:28:56Matthias247hmm, I have a 4k monitor since last week. Now even Java looks better ;)
19:28:57gokr1Already in 1994 I worked in VisualWorks on Sun stations, and I could switch L&F of VisualWorks to OS/2 or Windows. I liked OS/2 actually. It of course ran bit identically on all machines, I could just copy the app over to the Mac or Windows and run it there.
19:29:37gokr1Its funny, Smalltalk did all this, and much more. The big problem? It was costly as hell.
19:31:19gokr1sorry for the memory lane spewage :)
19:36:18superfuncWow gokr1 thanks so much for the enlightenment
19:36:28*g4rg4m3|_ quit (Quit: Leaving)
19:36:50gokr1Not sure if you are ironic or not ;)
19:39:56Matthias247currently a lot of companies seem to introduce Java with OSGI in the IoT field
19:40:16superfuncI'm serious
19:40:17Matthias247had a view job interviews where this showed up recently
19:40:28Matthias247but I think it's not a very good fit
19:41:10*flaviu joined #nimrod
19:42:01gokr1Time machine: http://merlintec.com/old-self-interest/msg01011.html
19:42:08gokr1So it was in 1997 they bought it.
19:49:51*prosper_ quit (Read error: Connection reset by peer)
19:50:01*prosper_ joined #nimrod
19:55:26superfuncWould it be possible to have public and private sections of a module ala c++ so we don't need to explicitly mark each with *? Just curious
19:56:26superfuncI was thinking with a macro
19:56:29gokr1Feels like one of those questions that Araq will answer with ... templates! :)
19:56:33gokr1Or macro.
19:56:38Araqmacro.
19:57:22superfuncNeat
19:57:25*prosper_ quit (Read error: Connection reset by peer)
19:57:52*prosper_ joined #nimrod
20:02:49*prosper_ quit (Read error: Connection reset by peer)
20:03:45*prosper_ joined #nimrod
20:06:08*dapz joined #nimrod
20:11:01gokr1Btw, if anyone read my last Nim article ("I missed Nim") and have corrections for me - or things like "Oh, you failed to mention X". Go ahead.
20:11:15*ajitsingh joined #nimrod
20:11:53ajitsinghhi
20:11:57ajitsinghis anyone active
20:12:01ajitsinghneed some help with code
20:12:08ajitsinghis this the right place to discuss this?
20:12:23gokr1Depends on which language the code is in :)
20:12:33ajitsinghnimrod :p
20:12:36ajitsinghof course
20:12:47gokr1Hehe, just kidding. Go ahead
20:13:03ajitsinghso i was trying out the asynchttpserver module
20:13:13ajitsinghi am planning on writing a game in my spare time in nimrod
20:13:22ajitsinghbut i am getting a confusing error message
20:13:26ajitsinghthe code is this:
20:13:35ajitsingh""
20:13:38ajitsinghimport strutils, sockets, asynchttpserver
20:13:38ajitsinghfrom asyncdispatch import PFuture
20:13:38ajitsinghproc handler(request: TRequest): PFuture[void] {.closure.} =
20:13:38ajitsingh echo "hello"
20:13:38ajitsinghvar server = newAsyncHttpServer()
20:13:38ajitsinghdiscard server.serve(TPort(80), handler, "")
20:13:38ajitsinghimport strutils, sockets, asynchttpserver
20:13:39ajitsinghfrom asyncdispatch import PFuture
20:13:39ajitsinghproc handler(request: TRequest): PFuture[void] {.closure.} =
20:13:40ajitsingh echo "hello"
20:13:40ajitsinghvar server = newAsyncHttpServer()
20:13:41ajitsinghdiscard server.serve(TPort(80), handler, "")
20:13:43ajitsinghsorry about that
20:13:47ajitsingh==================================================================
20:13:51ajitsinghthe code is this
20:13:53ajitsinghimport strutils, sockets, asynchttpserver
20:13:53ajitsinghfrom asyncdispatch import PFuture
20:13:53ajitsinghproc handler(request: TRequest): PFuture[void] {.closure.} =
20:13:53ajitsingh echo "hello"
20:13:53ajitsinghvar server = newAsyncHttpServer()
20:13:53ajitsinghdiscard server.serve(TPort(80), handler, "")
20:14:11ajitsinghim getting this error that i cant seem to figure out
20:14:26ajitsinghmain.nim(8, 14) Error: type mismatch: got (PAsyncHttpServer, TPort, proc (TRequest): PFuture[void]{.closure.}, string)
20:14:26ajitsinghbut expected one of:
20:14:26ajitsinghasynchttpserver.serve(server: PAsyncHttpServer, port: TPort, callback: proc (TRequest): PFuture[void]{.closure.}, address: string): PFuture[void]
20:15:39ajitsinghto me the actual and expected look the same from the error message
20:15:45ajitsinghcant seem to figure out whats happening
20:15:46*Ven joined #nimrod
20:16:11Trustableajitsingh, please post your code on a website like pastebin or github gist instead of posting it here.
20:16:32ajitsinghoh ok yeah sure
20:16:47ajitsinghdid not know that
20:17:13Trustableno problem
20:17:13*superfunc__ joined #nimrod
20:17:42TrustableI think you need to add a second parameter of type string to your procedure handler()
20:19:06ajitsinghsorry didnt work
20:19:19ajitsinghim looking at the manual too and it does not expect another string argument
20:20:09Araqajitsingh: the aysnc await stuff has not been backported to 0.9.6, unfortunately
20:20:29Araq0.10.0 has it, but that's not officially released ...
20:20:49ajitsinghoh ok well that makes sense
20:20:58ajitsinghdoes the asynchttpserver use that stuff?
20:21:08ajitsinghbecause im definitely not using it in my code
20:21:19Araqyes
20:21:57ajitsinghcool ill wait for 0.10
20:22:04ajitsinghthanks for the help guys
20:22:09ajitsinghoh and great language btw
20:22:16ajitsinghlove some of the ideas
20:22:27superfunc__you can build 0.10.0 if you'd like
20:22:38ajitsinghfrom github?
20:22:41superfunc__yeah
20:22:50ajitsinghwill it build on windows?
20:22:51superfunc__git checkout nimrod_repo
20:23:01ajitsinghi currently dont have a running linux distro
20:23:01superfunc__git checkout bigbreak*
20:23:14superfunc__Araq may know
20:23:32Araqajitsingh: yes. we have really good windows support.
20:23:34superfunc__I don't see why not
20:23:58superfunc__just checkout the bigbreak branch of Nimrod and the bigbreak branch of csources when you clone that
20:24:06superfunc__then build with the normal steps from the repo
20:24:44ajitsinghok ill try that and see how that goes
20:25:34ajitsinghthanks for all the stuff :) cya
20:26:28superfunc__ajitsingh: right on, have fun!
20:28:41*q66[lap] quit (Quit: Textual IRC Client: www.textualapp.com)
20:29:27*q66[lap] joined #nimrod
20:29:49*gokr1 debugging fizzbuzz in KDevelop...
20:31:00gokr1Its cool!
20:31:20gokr1He he. It steps into all the mod and everything. Nice!
20:38:03superfunc__Araq: have you considered making a typeclass implementation explicit in the type declaration?
20:41:16*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:41:27Araqsuperfunc__: I considered to make typeclasses stable ...
20:42:00Araqonce they are actually useful we can improve upon their design
20:42:28Araqin particular, symbol lookup rules in generics really should be affected by typeclasses
20:42:42Araqwhat's your proposal?
20:45:59superfunc__for the syntax?
20:46:28superfunc__http://lpaste.net/112949
20:46:55Araqoh that's what you mean
20:47:53superfunc__sorry if I wasn't clear
20:47:56Araqwell I don't know. usually Nim likes to not do things like that so you can implement a typeclass without touching the definition of "ConcreteThing"
20:48:53superfunc__shouldn't users only be able to implement typeclasses with their own types, or their own typeclasses? this allows the language to define sane things for its builtin types
20:49:52Araqit's the same that Go does with its "interface" construct
20:50:48Araqdon't declare to fullfill an interface, simply fullfill it
20:51:00Araqand the compiler can type check anyway
20:51:03gokr1Yes, that's one of the beauties of this.
20:51:16gokr1"implicit"
20:51:59superfunc__I get the elegance argument, but I think there is something to be said for makling your intent explicit sometimes
20:52:19gokr1Well, its about being able to be polymorphic with code you don't control.
20:52:30gokr1Like libraries you use etc.
20:53:18superfunc__I think that's my point, I don't think I should be able to implement a typeclass for a type I didn't create
20:53:23gokr1Of course, in a world where libraries are distributed in source form - and you don't mind monkey patching them. All good. ;)
20:54:29Araqsuperfunc__: you definitely should be able to do that
20:54:31gokr1Why trying to control people like that? Its IMHO misguided.
20:54:31superfunc__If I really need to make a builtin type, like seq[] do something, I could just wrap it in a simple single field type and define its implementation of the TC interface
20:55:12gokr1Its like the whole sealed, final, private blabla in the Java world - drove me nuts.
20:55:24Araqgokr1: +1
20:55:38gokr1If I *know* what I am doing, I want to be able to do it. Fine, warn me, but don't stop me :)
20:55:53superfunc__That's a fair point
20:56:04ajitsinghhi guys
20:56:16ajitsinghi tried building the bigbreak branch
20:56:17superfunc__I think I need to mull on it more, I had a good point this morning, (I think ;))
20:56:31*prosper_ quit (Remote host closed the connection)
20:57:09Araqsuperfunc__: paranoia is a poor language designer.
20:57:11ajitsinghon windows its failing with this error http://pastebin.com/E7pzLE8x -- please take a look when you are free :)
20:57:13gokr1I have been toying at similar implicit interfaces in Smalltalk (although one can claim its what Smalltalk has anyway) - when I saw Go had it - I went "ooh, nice". And when I read about typeclasses in Nim - "oooooooohhhh, NICE!" :)
20:57:48superfunc__Araq: fair. I suppose the case of someone accidentally implementing a typeclass is really unlikely
20:57:58superfunc__near impossible, really
20:58:06gokr1Hehe. Well, a 1000 monkeys...
20:58:24superfunc__because they'd also have to call a function constrained on that TC they accidentally implemented
20:58:25gokr1No, but really - the implicitness is a superb aspect of it.
20:59:06Araqsuperfunc__: no, it's the other way round. In fact types WILL "accidentally" implement a TC
20:59:33superfunc__for basic ones like Eq, Ord yeah,
20:59:38gokr1Araq: So debugging with KDevelop seems to work perfectly fine - of course, variables have funky names - but that's expected, right?
21:00:04Araqgokr1: local vars are often not mangled. sometimes it's unavoidable though.
21:00:27gokr1Can stuff like that be mapped?
21:00:54Araqif you rewrite the Dwarf debugging information
21:01:07Araqcan be done but it's quite some work
21:01:20*Demos joined #nimrod
21:01:55*flaviu quit (Remote host closed the connection)
21:02:00*nande joined #nimrod
21:02:17superfunc__Araq: so the idea is more that, with implicitness, things will naturally fall into these categories(typeclasses), leading to more useful, generic functions?
21:02:21*flaviu joined #nimrod
21:02:46Araqajitsingh: that error makes little sense. do you use an old nimrod compiler?
21:02:56superfunc__i.e. proc[T: Ord](t1, t2: T) = ... will work on just about anything that is implicitly orderable
21:03:11Araqsuperfunc__: yes.
21:03:16ajitsinghim using the one that i just built from the csources
21:03:17gokr1And this... ENDB guy... its not compatible with anything, right?
21:03:23ajitsinghits version is 0.9.5
21:03:43Araqajitsingh: it should be nim.exe, not nimrod.exe
21:03:58superfunc__That makes sense. Thanks. I guess I need to just get out of the mental mindset of being overly explicit with everything(blame my C++ years)
21:04:37gokr1superfunc__: You have me here, Smalltalk freak. The opposite :)
21:04:52ajitsinghis there a specific branch of csources that i should checkout
21:05:01ajitsinghi just built the master
21:05:09fowlaraq did you see #1581
21:05:09Araqajitsingh: yes. the bigbreak branch.
21:05:16superfunc__gokr1: One of my professors in undergrad worked at sun during that time period you were discussing, I just realized
21:05:27Araqfowl: the .compileTime var issue? yes, it's weird.
21:05:44gokr1"time period" sounds like... dinos roaming.
21:05:55gokr1But yeah, I am a dino I guess.
21:06:10fowlAraq, i dont think you have a proper test for that behavior, i only saw one testing compiletime vars inside a module
21:06:22fowlAraq, anyways my entity system relies heavily on that behavior
21:07:06superfunc__entitty*
21:07:08superfunc__ftfy
21:07:11gokr1fowl: Ever looked at Urho3D?
21:07:35*FreezerburnV joined #nimrod
21:07:48fowlgokr1, no, never heard of it
21:08:04gokr1Check it out. IMHO the best open source gaming engine.
21:08:32*Matthias247 quit (Read error: Connection reset by peer)
21:08:44gokr1We have just started trying to use it in our product.
21:09:16gokr1After extensive reviewing open source engines.
21:09:29Araqfowl: it's easy to fix, you can do it
21:09:45Araqvmgen.checkCanEval
21:11:15Araqif {sfCompileTime, sfGlobal} <= s.flags: return
21:12:07*Etheco quit (Read error: Connection reset by peer)
21:14:00*askatasuna quit (Ping timeout: 246 seconds)
21:23:21*Trustable quit (Quit: Leaving)
21:23:36*Mat3 joined #nimrod
21:23:40Mat3hi all
21:23:53Araqhi Mat3
21:24:07Mat3hi Araq
21:26:38superfunc__yo
21:27:31*FreezerburnV quit (Quit: FreezerburnV)
21:29:19gokr1So... "--debuginfo" adds ... stuff for gdb? And "--lineDir:on" adds the line mappings or?
21:33:16*superfunc__ quit (Ping timeout: 246 seconds)
21:33:42Araqyes
21:37:46*Fran__ joined #nimrod
21:38:12*Francisco quit (Ping timeout: 245 seconds)
21:39:28ajitsinghhi araq
21:39:35ajitsinghso i built the 0.10 version
21:39:48ajitsinghit still fails, but its giving a slightly different error
21:39:56ajitsinghive pasted it here http://pastebin.com/c9VnR1W6
21:41:02gokr1locks! ;)
21:41:16*gokr1 points to Araq vaguely ...
21:41:54*Joe_knock joined #nimrod
21:41:59ajitsinghcan i add something -- the documentation says nothing about locks
21:42:23Araqajitsingh: don't use .closure for top level procs
21:42:52ajitsinghdone
21:43:07ajitsinghdidnt affect the error though :/
21:48:50Mat3why is 'AsyncHttpServer' written as 'asynchttpserver' in the error message ? Does Nim 0.10 convert label to lower case ?
21:49:01Mat3 labels
21:49:33fowlMat3, thats the module name, it is lowercase
21:53:02*bitcrusher quit (Read error: Connection reset by peer)
21:53:44gokr1Ha, just found an article I was going to mention to you Araq - but luckily I skimmed the comments and you had already commented "You just described how Nimrod works. Please check it out." :)
21:55:36Mat3fowl: hmm, ok
21:55:45Araqajitsingh: I can reproduce. I'm puzzled too.
21:56:21ajitsingh:D now we are getting somewhere
21:56:40ajitsinghalthough im sure you weren't intending for it to come out like that :D
21:57:13fowlajitsingh, try setting it up like the example
21:57:20*bjz quit (Ping timeout: 250 seconds)
21:57:34ajitsinghwhat example?
21:57:52ajitsingh@fowl
21:57:53fowlhttps://github.com/Araq/Nimrod/blob/bigbreak/lib/pure/asynchttpserver.nim#L12
22:01:21ajitsingharaq: do i need to explicitly enable await async stuff?
22:01:26Mat3ciao
22:01:37*Mat3 quit (Quit: Verlassend)
22:01:38ajitsinghthe example does not compile either
22:01:49ajitsinghfails with invalid pragma {.async.}
22:02:06ajitsinghand on removing that fails with undeclared identifier await
22:04:59*FreezerburnV joined #nimrod
22:06:18Araqajitsingh: well thanks for reporting. looks like we still have quite some work ahead of us.
22:08:04ajitsinghno problem :) and thanks for all the help
22:12:46Varriountsuperfunc_: So, I just finished a CS midterm
22:14:00VarriountMy old enemy, 'ambiguity', has paired up with my new enemy, 'big O notation', to create lots of... trouble.
22:15:18Joe_knockAraq: How ya?
22:15:19*dapz quit (Read error: Connection reset by peer)
22:17:00AraqJoe_knock: sleeping
22:17:08Joe_knockaah.
22:19:59superfuncVarriount: how so?
22:21:57*ajitsingh quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
22:40:44gokr1Argh.
22:41:19gokr1Ok, so I was playing around with objdump and readelf - and also checking the C generated. So KDevelop shows "res_88032" in the variables pane.
22:41:34*askatasuna joined #nimrod
22:41:44gokr1That's the loop var "i" in fizzbuzz. I can't for my life find it in any symbol table.
22:42:24gokr1I was just playing with the idea of creating a separate symbol file, to get the proper names.
22:45:26*Fran__ quit (Ping timeout: 250 seconds)
22:54:09*Fran__ joined #nimrod
22:58:48*FreezerburnV quit (Quit: FreezerburnV)
23:04:22*Fran__ quit (Ping timeout: 240 seconds)
23:05:17*Fran__ joined #nimrod
23:15:23*BlaXpirit quit (Quit: Quit Konversation)
23:21:25*dapz joined #nimrod
23:22:53*FreezerburnV joined #nimrod
23:28:02Varriountsuperfunc: Well, it's hard to determine the big O notation of something when you can't see it's implementation.
23:28:54VarriountWhat is the worst case complexity of getting the length of a linked list? It could be O(1), if the length is tracked, or O(N), if it's not.
23:32:48*FreezerburnV quit (Quit: FreezerburnV)
23:37:32*FreezerburnV joined #nimrod