<< 11-10-2013 >>

00:02:30OrionPKthanks fowl
00:03:44VarriountBitPuffin, trying to compile nimrod on Dragonfly?
00:04:35BitPuffinVarriount: no, on plain freebsd
00:06:58OrionPKwould be nice if I could call call().toSeq() instead of having to call .toSeq(call())
00:08:29BitPuffinOrionPK: why wouldn't that work?
00:08:36OrionPKdunno, doesnt compile though
00:08:59*ltbarcly joined #nimrod
00:09:01BitPuffinAraq: attempted a workaround where I use the 0.9.2 release to compile koch and then bootstrap but that didn't work either
00:10:01BitPuffinAraq: the funny thing is that the files it says do not exist exist
00:11:33fowlOrionPK, not sure why you cant
00:13:16OrionPKI get Error: type mismatch: got (TFile)
00:13:29OrionPKusing the "lines" iterator in system module
00:13:32VarriountBitPuffin, make sure to explicitly add them to the linker
00:13:47OrionPKinput is TFile, lines(input).toSeq() gives that compile time error
00:14:08Varriountfor windows, I have to add "-Isrc" etc whenever I'm building nimrod.
00:15:21BitPuffinhrm
00:15:25fowlOrionPK, i get errors doing it too
00:15:30BitPuffinVarriount: did you build on dragonfly?
00:15:52VarriountI just said, "for windows"
00:16:11VarriountNo, I did not
00:16:43VarriountI mentioned it, because I read in the logs today that someone mentioned dragonfly
00:16:45OrionPKfowl issue with expr templates maybe?
00:18:27fowltemplate foo(x:expr):expr = x
00:18:31fowl42.foo works fine
00:19:18BitPuffinVarriount: well I was thinking maybe you did both
00:19:39VarriountI am a programmer, not a miracle worker.
00:20:30VarriountThough I've used linux in the past, and I know how to get around in it, most of my knowledge about it is theoretical
00:22:43VarriountBitPuffin, I commend you for your bravery, delving into the battlefield of an OS constructed by programmers.
00:23:10VarriountSuch constructs don't generally take into account user friendliness
00:24:05*ltbarcly quit (Quit: Computer has gone to sleep.)
00:25:09*ltbarcly joined #nimrod
00:26:32*ltbarcly quit (Client Quit)
00:27:26BitPuffinVarriount: pretty sure all OSs are constructed by programmers :P
00:28:05fowli heard windows was spawned from random masturbation
00:28:54Varriountfowl, you're talking about Mac OSX
00:29:07VarriountWindows is the one created by binge drinking.
00:29:11BitPuffinI think you are talking about both
00:31:19BitPuffinI cannot fathom
00:31:21BitPuffinWHY
00:31:24BitPuffindoes it create a usr directory
00:31:27BitPuffinit makes no sense
00:31:48fowlyes it does
00:32:11fowlit is the missing first /
00:38:47OrionPKhttps://github.com/Araq/Nimrod/issues/619
00:50:10VarriountOrionPK, try surounding the something() with parens
00:51:09OrionPKname
00:51:12OrionPKnah*
00:51:13OrionPKdoesnt work
00:51:19OrionPKtype mismatch: got ()
00:51:22OrionPKvar info = (something()).toSeq()
00:51:36BitPuffinfowl: but why
00:52:06fowlidk? freebsd is weird
00:52:12BitPuffinnot really
00:54:59VarriountOrionPK, the price of somewhat ambiguous grammer
00:55:23OrionPKHmm?
00:59:05fowlOrionPK, you should note that happens with sequtils.toseq too
00:59:32OrionPKright, but I think it's a compiler issue that if solved would fix toSeq
00:59:40OrionPKadd a comment :P
01:00:39fowlk
01:03:07fowlnimrod syntax is on github
01:03:09fowlbtw
01:03:12fowluse ```nimrod
01:03:16OrionPKyeah, i know
01:03:25OrionPKI just dont know the markdown syntax :P
01:03:41fowli just told you
01:03:44fowlopen with that instead of ```
01:03:50OrionPKlol
01:03:56OrionPKI know *now*, thanks
01:04:11fowlyep
01:04:16OrionPKbetter?
01:04:42OrionPKi wonder if your example is optimized away or something
01:09:33fowlworks if i do something with it
01:09:36fowlvar y = x + 1
01:09:36fowly
01:09:40OrionPKmmk
01:09:47OrionPKjust a thing w/ iterator i guess then
01:15:34*cablehea_ quit (Remote host closed the connection)
01:16:02*cablehead joined #nimrod
01:18:50VarriountWaaaiiitttiiinnggg for test to run
01:19:26VarriountThen I can finally hunt down bugs.
01:20:52*cablehead quit (Ping timeout: 265 seconds)
01:28:13*DAddYE quit (Remote host closed the connection)
01:47:58*cablehead joined #nimrod
02:02:06Varriountcablehead, what king of isp do you have?
02:02:23OrionPKpotato
02:05:01fowllol
02:05:05fowlpotato with some wires in it
02:09:28*BitPuffin quit (Ping timeout: 264 seconds)
02:09:51VarriountSeriously, why all the ping timeouts?
02:10:29OrionPKnot just him tho
02:11:08*Varriount never times out...
02:14:04*cablehead quit (Remote host closed the connection)
02:14:33*cablehead joined #nimrod
02:14:56EXetoCI guess your internets are pretty good then
02:16:25*cablehead quit (Read error: Connection reset by peer)
02:16:43*cablehead joined #nimrod
02:16:56*Varriount goes to wavecable.com
02:17:48VarriountOh. My. God.
02:18:04VarriountMy Eyes! -> http://www.wavebroadband.com/
02:19:56EXetoClooks like shit
02:20:02EXetoCit's also broken. in firefox anyway
02:20:12fowllol
02:20:25EXetoCoverlaps etc
02:29:24*DAddYE joined #nimrod
02:30:20*gdos quit (Quit: *GONE*)
02:36:11*cablehead quit (Remote host closed the connection)
02:36:15*DAddYE quit (Ping timeout: 252 seconds)
02:36:37*cablehead joined #nimrod
02:38:30*ltbarcly joined #nimrod
02:41:12*cablehead quit (Ping timeout: 252 seconds)
02:44:16*fowl quit (*.net *.split)
02:44:33*fowl joined #nimrod
02:44:44*fowl quit (Changing host)
02:44:44*fowl joined #nimrod
03:17:52*fowl quit (Quit: Leaving)
03:24:52*ltbarcly quit (Quit: Computer has gone to sleep.)
03:32:09*DAddYE joined #nimrod
03:34:23*OrionPK quit (*.net *.split)
03:34:23*Varriount quit (*.net *.split)
03:34:49*Varriount joined #nimrod
03:34:49*OrionPK joined #nimrod
03:35:45*wlhlm joined #nimrod
03:35:58VarriountYay! You guys are back!
03:36:03*Varriount hugs OrionPK
03:36:45*DAddYE quit (Ping timeout: 252 seconds)
03:41:14*EXetoC quit (Quit: WeeChat 0.4.1)
03:44:51OrionPKyay
03:45:32VarriountOrionPK, are you using Linux as your OS?
03:50:28OrionPKosx and windows primarily
03:52:42VarriountI don't suppose you host the OSX Build bot, do you?
03:52:59VarriountOrionPK ^
03:56:56OrionPKnope, not I
03:57:07OrionPKcouldnt say who does
03:57:18VarriountOrionPK, then could you do me a favor?
03:57:24OrionPKmm maybe
03:57:33OrionPKim knackered right now, though, so it'll have to wait
03:59:48OrionPKgoing to bed, night
03:59:54*OrionPK quit (Read error: Connection reset by peer)
04:03:30*gdos joined #nimrod
04:04:41VarriountHello gdos
04:05:09gdoshi guys.
04:05:47VarriountWhat OS are you using at the moment?
04:06:01VarriountAnd do you have a recent build of nimrod?
04:10:04*brson quit (Ping timeout: 264 seconds)
04:12:15*brson joined #nimrod
04:32:57*DAddYE joined #nimrod
04:33:40*ltbarcly joined #nimrod
04:39:15*wlhlm quit (Ping timeout: 260 seconds)
04:39:21*DAddYE quit (Ping timeout: 245 seconds)
04:44:11*brson quit (Ping timeout: 248 seconds)
04:48:56*Demos joined #nimrod
04:52:30Demoshow would I go about calling nimrod from c#? just dump out a C library and link to it?
05:10:28*ltbarcly quit (Quit: Computer has gone to sleep.)
05:17:18*ltbarcly joined #nimrod
05:35:40*DAddYE joined #nimrod
05:40:11*DAddYE quit (Ping timeout: 245 seconds)
06:21:09*q66 joined #nimrod
06:36:10*DAddYE joined #nimrod
06:36:55Demoswell if anyone cares you copy the data structures into C# and export procs with {.cdecl,exportc,dynlib.} then you P/Invoke them from C#
06:37:05DemosI just love glue!
06:43:04*DAddYE quit (Ping timeout: 264 seconds)
06:46:49*Demos quit (Read error: Connection reset by peer)
06:58:23*ltbarcly quit (Quit: Computer has gone to sleep.)
07:39:11*DAddYE joined #nimrod
07:43:31*DAddYE quit (Ping timeout: 245 seconds)
08:00:18*Araq_ joined #nimrod
08:39:45*DAddYE joined #nimrod
08:46:26*DAddYE quit (Ping timeout: 264 seconds)
08:53:53*Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258])
09:42:42*DAddYE joined #nimrod
09:47:21*DAddYE quit (Ping timeout: 272 seconds)
10:34:03*BitPuffin joined #nimrod
10:43:11*DAddYE joined #nimrod
10:43:23*Araq_ joined #nimrod
10:49:41*DAddYE quit (Ping timeout: 248 seconds)
11:38:36BitPuffindom96: are you here? :)
11:39:25BitPuffindom96: I need a little help, I put some js files in public/js/ in my app but referring to them either with or without makeUri gives me a 404 in the server
11:46:12*DAddYE joined #nimrod
11:53:23*DAddYE quit (Ping timeout: 272 seconds)
12:19:52*EXetoC joined #nimrod
12:48:25dom96hello
12:49:13*DAddYE joined #nimrod
12:50:31dom96BitPuffin: Keep in mind that 'public' is not part of the url
12:55:33*DAddYE quit (Ping timeout: 252 seconds)
12:59:41BitPuffindom96: oooh
12:59:46BitPuffindom96: that might be it then :P
13:02:31*Ricky_Ricardo joined #nimrod
13:27:08*Endy joined #nimrod
13:33:50*ltbarcly joined #nimrod
13:33:55*ltbarcly quit (Client Quit)
13:50:55*Endy quit (Ping timeout: 272 seconds)
13:52:11*DAddYE joined #nimrod
13:58:04*DAddYE quit (Ping timeout: 264 seconds)
13:58:20BitPuffindom96: how do I destroy a cookie?
13:58:39EXetoCany hard object will do
13:58:53dom96flamethrower
13:59:22BitPuffinoh come on guys :P
13:59:28BitPuffinwater is obviously super effective
14:00:00dom96true. Just throw some water on top of that PC of yours.
14:01:26*Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258])
14:01:33BitPuffindom96: but seriously, in jester
14:01:37BitPuffinthere is only setCookie
14:01:42BitPuffinno dieCookieDie
14:01:59dom96I quite honestly can't remember how to remove cookies
14:03:27BitPuffindom96: There doesn't seem to be anything, I guess one could perhaps setCookie("value", "", daysForward(0)= ?
14:03:53dom96look up how to do it using HTTP
14:04:53Ricky_RicardoI believe there is a header that will set expiration. Don't know about revoking (if that's what you're trying to do)
14:17:58EXetoCbig, static web elements that are unaffected by scrolling sure are annoying
14:18:08EXetoCfortunately it's relatively rare
14:19:26*shevy quit (Ping timeout: 240 seconds)
14:20:35EXetoCmy tab bar is 6 rows tall though so that doesn't exactly help. http://wrongsideofmemphis.com/2013/03/25/80-chars-per-line-is-great/
14:25:27*Ricky_Ricardo quit (Quit: Ricky_Ricardo)
14:33:08*shevy joined #nimrod
14:38:06*wlhlm joined #nimrod
14:38:31*gdos quit (Ping timeout: 245 seconds)
14:41:18BitPuffinAraq: minix not supported by nimrod? :P
14:54:11*DAddYE joined #nimrod
14:57:19*profmakx quit (Ping timeout: 246 seconds)
14:58:15*profmakx joined #nimrod
14:58:38*profmakx is now known as Guest38413
15:00:52*DAddYE quit (Ping timeout: 260 seconds)
15:06:40*Guest38413 quit (Changing host)
15:06:40*Guest38413 joined #nimrod
15:06:47*Guest38413 is now known as profmakx
15:23:39*Endy joined #nimrod
15:24:51*zanoni quit (Remote host closed the connection)
15:25:13*zanoni joined #nimrod
15:28:54BitPuffinoh wait
15:29:00BitPuffinguess watch isn't being called
15:29:35BitPuffinor wait
15:29:37BitPuffinit is
15:29:39BitPuffinhrm
15:30:30BitPuffinsorry
15:30:34BitPuffinWRONG CHANNEL GUIZE
15:45:32*zanoni quit (Remote host closed the connection)
15:45:46*ltbarcly joined #nimrod
15:45:47*ltbarcly quit (Client Quit)
15:55:28*dyu joined #nimrod
15:56:11shevyhehe
16:03:08*fowl joined #nimrod
16:06:48*gdos joined #nimrod
16:19:31*gdos quit (Remote host closed the connection)
16:20:41*[1]Endy joined #nimrod
16:21:29*io2 joined #nimrod
16:22:41*shodan45 joined #nimrod
16:24:27*Endy quit (Ping timeout: 272 seconds)
16:24:29*[1]Endy is now known as Endy
16:30:03*EXetoC quit (Read error: Connection reset by peer)
16:31:27*EXetoC joined #nimrod
16:39:15*dyu quit (Quit: Leaving)
16:44:08*io2 quit (Ping timeout: 240 seconds)
16:44:11*io2_ joined #nimrod
17:00:47*io2_ quit ()
17:04:56*brson joined #nimrod
17:09:11*Associat0r joined #nimrod
17:09:12*Associat0r quit (Changing host)
17:09:12*Associat0r joined #nimrod
17:10:50*DAddYE joined #nimrod
17:17:02*ltbarcly joined #nimrod
17:18:04Varriountdom96, you there?
17:18:08dom96Varriount: yes
17:19:00VarriountWhen was the linux builder compiled?
17:19:13dom96Varriount: Your builder is currently spamming #nimbuild with disconnects btw
17:19:17VarriountAs in, what code base is it using?
17:19:27Varriountdom96, Sorry, I took care of it.
17:24:20dom96Varriount: Last compiled in July.
17:25:50Varriountdom96, I think there's a big regression in ftpclient.nim, and the only reason your builder's aren't affected is because they were built with an older code base.
17:26:11dom96why ftpclient in particular?
17:26:26VarriountBecause ftpclient is what errors when I run the builder
17:26:33dom96what's the error?
17:27:21VarriountSpecifically, it's trying to use sockets.send on a nonblocking socket
17:27:23VarriountError: unhandled exception: This function cannot be used on non-blocking sockets. [EInvalidValue]
17:27:43dom96Do you have a traceback?
17:28:06VarriountTraceback (most recent call last)
17:28:06Varriountftpclient.nim(610) ftpclient
17:28:06Varriountftpclient.nim(257) connect
17:28:06Varriountftpclient.nim(132) send
17:28:06Varriountsockets.nim(1515) send
17:28:06VarriountError: unhandled exception: This function cannot be used on non-blocking sockets. [EInvalidValue]
17:29:23VarriountActually, the line numbers might be different for you. I wrapped a couple of blocks of code in the blockingOperation template, which stopped it from erroring there
17:29:44AraqI'm here
17:29:51Araqanything important?
17:29:59Araqcause I will leave in 2 minutes
17:30:11VarriountI'm either seeing a major flaw in ftpclient, or going insane.
17:30:14dom96Araq: When will you be back?
17:30:52Araqdunno. 2-3 hours
17:32:29dom96interesting. It does look like a bug.
17:33:27Varriountdom96, what happens if you run ftpclient.nim as an executable (compiled)
17:34:52dom96I think I added that error to send recently
17:34:59dom96And indeed ftpclient is incorrect.
17:35:38*OrionPK joined #nimrod
17:35:54VarriountYay! I'm not insane!
17:37:01Araqtime is up. bye
17:37:11VarriountBye Araq
17:41:23dom96But yeah, just add blockingOperation above line 132
17:51:40VarriountIt's working!
17:52:26dom96:D
18:01:47dom96In that case I will make the change and commit the code.
18:02:48Varriountdom96, Doesn't that make the AsyncFTPClient... Not Asyncronous?
18:03:37dom96kinda, it's asynchronous only for file transfers
18:07:56Varriount:D -> http://build.nimrod-code.org/
18:12:14*cablehead joined #nimrod
18:12:32EXetoCI installed the recommended vim plugins for nimrod.nim, and now I'm presented with diagnostics and everything
18:12:41EXetoCthis shit is the future
18:13:08VarriountHm, maybe I should try vim again. I'm currently using sublime text for most things.
18:13:20VarriountEXetoC, screenshot?
18:18:25EXetoCno time, shop closes soon :> it just adds a bar that displays stuff when on a line with ">>" on the left side
18:19:12*XAMPP quit (Read error: Connection reset by peer)
18:20:04NimBotAraq/Nimrod master 173ca8d Dominik Picheta [+0 ±1 -0]: Fixed async send in ftpclient module.
18:22:48*Endy quit (Ping timeout: 240 seconds)
18:40:51dom96Varriount: Why did your builder disconnect?
18:46:27Varriountdom96, "builder.exe stopped working" - windows error message
18:46:38dom96D:
18:46:39VarriountIn other words, it segfaulted
18:46:46VarriountOh wait, not builder.exe
18:46:54Varriountclient.exe, I think
18:47:07dom96huh
18:47:19VarriountLemme see if I can find the event log
18:47:47dom96If builder segfaulted then it must be the same problem that happens on linux. i.e. the corruption
18:47:53VarriountI've gotta go in 3 minutes
18:48:20dom96no worries
18:51:13BitPuffinFrictional games new sci fi horror game revealed! http://youtu.be/TWHVkMIP1b8
18:51:19BitPuffindom96: :)
18:51:37dom96:O
18:52:35Varriountdom96, Error log here -> http://pastebin.com/GWq6hrQg
18:52:42*zanoni joined #nimrod
18:52:47VarriountGotta go for now, bye
18:52:52*Varriount is now known as Varaway
18:55:50dom96BitPuffin: Now THAT is looking awesome.
18:56:04dom962015 COME ONN
18:56:55OrionPKgame not written in nimrod?
18:56:56BitPuffindom96: yeah I know! That was definitely the scariest part of the trailer lol
18:57:16BitPuffinOrionPK: if it was it would have been out already :P
18:57:22OrionPKlol
18:57:46OrionPKcant wait to watch people play this game on youtube
18:58:00dom96lol.
18:58:19dom96Have you guys played the new Amnesia yet?
18:58:32OrionPKfuck no, i've watched it played a few times on youtube though :P
18:58:58OrionPKi cant handle scary video games
18:59:06OrionPKi love horrorr movies, but horror games are too much
18:59:21dom96I played both Penumbra and the first Amnesia.
18:59:37dom96I haven't completed either.
19:00:45OrionPK:D
19:01:38OrionPKwe need a concerted effort to build a game in nimrod I think
19:01:52OrionPKnot an overly ambitious one either, just a fun simple one
19:02:15dom96I agree.
19:05:42dom96Games are difficult though, mainly because art is required and few people can do art.
19:05:53EXetoCtic-tac-toe or something?
19:05:55OrionPKdepends
19:06:09OrionPKfor story driven games, most definitely
19:06:24OrionPKfor simple, non-AAA games, you dont need a lot of art chops
19:06:29fowldead space 2 creeped me the f out
19:06:44OrionPKalso you can do a lot w/ procedural graphics
19:06:50OrionPKwithout being a great artist
19:08:03fowljust a mathematician
19:08:31OrionPK:D
19:09:01OrionPKi made a pretty cool looking 3d space environment w/ procedurally generated nebulae several years back
19:09:07EXetoCI've been thinking of making something like dwarf fortress, except with *slightly* less crap graphics
19:09:38EXetoCshouldn't be too hard to make if it's tile-based and all
19:09:53fowli had something close to treasure arena a while back
19:10:06fowlmore rpg like
19:14:45BitPuffinoops
19:14:50BitPuffinand I am building a big game in nimro
19:15:11BitPuffind
19:15:18BitPuffinyou know like, 3d and shit
19:15:24EXetoCit seems a little simplistic, but some RPG elements could add some depth to it
19:15:24fowlcool
19:15:34BitPuffinanyways
19:15:35dom96let just create a minecraft clone
19:15:38BitPuffintime to bike the dawg
19:15:44fowlclonecraft
19:15:52dom96nimcraft
19:16:09fowlblock: block: block:
19:16:33EXetoClol
19:16:44EXetoCthat's an awesome idea fowl
19:16:46dom96break; break; break :D
19:17:13EXetoCbrilliant
19:17:44EXetoCobfuscated macro awesomeness
19:18:47OrionPKheh
19:21:55OrionPKhow about an r-type clone
19:26:55dom96I don't think i've ever played it, but I am familiar with the genre.
19:27:12fowlwill return to being productive after i see the last two episodes of breaking bad
19:32:23EXetoCover a thousand people must watch that show. I keep hearing about it
19:34:04*Varaway is now known as Varriount
19:34:09*Varriount is back
19:34:12fowlway > 1000
19:35:27VarriountAnyone know if using a try..except statement gives any penalty?
19:35:43Varriount*penalty, performance/memory wise?
19:36:43dom96I bet it does, but how significant I do not know.
19:36:44OrionPKprobably
19:36:46OrionPKdo a benchmark
19:38:00VarriountI'm just wondering If I can get away with doing a full context manager template, to emulate python's 'with' statement.
19:46:52EXetoCI'm sure you can
19:48:23*Endy joined #nimrod
19:49:27EXetoCthe overhead is quite small judging from what I've read
19:49:54*Associat0r quit (Quit: Associat0r)
19:50:23*Associat0r joined #nimrod
19:50:30EXetoCit doesn't add any noticeable overhead compared to C style return value checking, right?
19:51:12dom96I'm not sure about the details but I have a hunch that it does.
19:51:54OrionPKcheck what it generates when it compiles to C
19:53:02*Endy quit (Ping timeout: 264 seconds)
19:55:06dom96Cumberbatch AMA :O
19:55:17OrionPKlink/
19:55:55dom96http://www.reddit.com/r/IAmA/comments/1o8l5f/i_am_benedict_cumberbatch_ama/
19:59:16*dom96 should stop procrastinating
20:01:02VarriountHm. Looking through winlean.nim.. I se a few uses of int..
20:01:09*Varriount wonders...
20:04:10Varriountdom96, Do you know who wrote the winlean.nim code?
20:04:39dom96https://github.com/Araq/Nimrod/commits/master/lib/windows/winlean.nim
20:05:55fowlVarriount, most ints in wrappers should be cint
20:06:09VarriountYeah, but some aren't
20:06:30VarriountI found one in TerminateProcess that is a plain int
20:07:27EXetoCdom96: you might be right. the overhead should be fairly insignificant on x64 though, which is nice
20:12:23VarriountHow would one get the actual code of a statement in a template? Like, a string form of the statement passed?
20:13:49*wlhlm quit (Ping timeout: 265 seconds)
20:14:41*fowl quit (Read error: Operation timed out)
20:18:14dom96Varriount: astToStr
20:20:10EXetoCis anyone using that function for anything practical?
20:20:15VarriountI am
20:20:22dom96EXetoC: It's used in assert.
20:20:37VarriountI'm making a print template that prints that name and the value of the variable is is given.
20:22:04EXetoCoh yeah, that's what I used it for :>
20:24:31VarriountEXetoC, care to share?
20:27:23shevyhuh
20:27:28shevyI can not build nimrod from another directory?
20:27:31shevysh ../build.sh
20:27:39shevygcc: error: build/2_1/nimrod.c: No such file or directory
20:28:26Varriountshevy, I believe the build script uses relative paths.
20:28:26EXetoCmaybe just ./build.sh? after changing dir
20:28:44shevyEXetoC yes that works but I tried to build inside a build directory
20:30:38AraqVarriount: 'try' is expensive for the C backend, close to 0 cost for the c++ backend
20:31:07VarriountAraq, you're back!
20:31:09OrionPKwhats the advantage to the C backend over the C++ backend
20:31:23OrionPKother than just being more stable
20:31:41*io2 joined #nimrod
20:31:52*fowl joined #nimrod
20:33:06AraqOrionPK: can't think of any advantage except faster compile times
20:33:28OrionPKhm
20:34:25Araqthough it's very hard to generate correct C++
20:34:30Araqthanks to "const"
20:34:34VarriountAraq, is there a list of all the basic data types available (without importing any modules besides the implicit system) available in nimrod
20:34:57Araqwell system.nim has generated docs
20:35:05EXetoCVarriount: will share it soon
20:35:07OrionPKwas that the reason why you chose to go with C back end
20:35:58AraqI dunno, I think it's because my mindstorm supported C but not C++ :P
20:36:06VarriountOrionPK, C is to C++ what a toaster is to a rocket.
20:36:19VarriountAt least, in terms of convolution
20:36:23OrionPKlol
20:36:43OrionPKVarriount, you can write very C-like C++ and compile it with a C++ compiler, and then obtain some benefits of C++
20:36:48Araqplus as I said C's type system is much more forgiving when it comes to 'const'
20:36:49OrionPKlike try..catch performance boost
20:37:02OrionPKor even having try..catch at all built into the language)
20:37:51Araqyeah you also have a chance of handling stuff properly that doesn't map to a flat array of bytes
20:37:52OrionPKobviously wouldnt be pretty idiomatic C++ you generate
20:37:52OrionPKbut
20:37:54OrionPKwho cares
20:37:58OrionPKthe nimrod is what matters
20:38:24Araqactually producing idiomatic code is important for performance
20:38:48Araqcompilers tend to optimize idiomatic code pretty well
20:38:56Araqand everything else ... not so much
20:38:57OrionPKwouldnt idiomatic C code perform fairly well with a C++ compiler, generally speaking?
20:39:00EXetoCwhen will symbols be bound by default? some time before next release?
20:39:16AraqEXetoC: it's in a branch, I only need to merge it
20:39:24EXetoCok
20:40:08VarriountSymbols?
20:40:52AraqOrionPK: surely C++ compilers handle the C subset well
20:41:30EXetoCVarriount: see 'bind' in the manual
20:42:27EXetoCit avoids having to export certain symbols that are used in templates
20:42:33OrionPKAraq, thats what I said right? :P the C subset that is actually compileable anyway
20:42:52EXetoCif used in another module for example. you'll get the idea soon. uploading my code now
20:44:05EXetoCVarriount: https://gist.github.com/EXetoC/6941738
20:44:12OrionPKif there are advantages to be gained for runtime performance at the cost of compile time performance.. that seems worth it to me
20:44:14EXetoCis that what you mean? it's pretty simple
20:44:45OrionPKeven to switch nimrod to a C++ backend as the default
20:45:08EXetoCI think fast compilations are important, but usually you'll only need maximum performance when shipping anyway
20:45:42EXetoCwhich is rare in comparison, but it might be worth a mention
20:46:01OrionPKwhat, shipping nimrod code? :P
20:46:12OrionPKor rather shipping nimrod bits
20:47:12EXetoCyeah shipping/releasing
20:48:36OrionPKI imagine it's easier to implement a lot of high level concepts that nimrod utilizes in the C++ backend
20:48:39EXetoCVarriount: just pass it an expression. it should compile still
20:48:43OrionPKhigh level things like "try..catch" xD
20:48:53EXetoCright
20:49:21OrionPKand I dont think you would really lose any platform support, would you?
20:50:59AraqOrionPK: except 'try' there is nothing C++ adds which is useful for the backend
20:51:27Araqexcept perhaps the C++11 styled atomic stuff
20:52:30OrionPKyeah, atomics, maybe in the future the await stuff might be interesting to add language support for
20:52:41EXetoCmaybe that low level guy wants to have a go at an efficient C backend impl
20:53:39AraqEXetoC: what do you mean?
20:55:55EXetoCAraq: A C impl that is just as fast. that would require some platform-specific code though
20:56:10EXetoCbut he's working on a low level backend, isn't he?
20:56:39OrionPKis it even possible to do efficient try/catch with C even with platform specific code?
20:56:42Araqafaik he finished x86 32/64 code generation and is working on the embedded targets
20:57:46AraqOrionPK: it's not possible; you need to generate some kind of stack maps
20:58:06OrionPKright, so the limitation is C
20:58:10Araqit's a pervasive thing not something you can "fix" with some inline assembler
20:58:12OrionPKnot the C generator
20:59:27Araqyes; C is only a "portable assembler" if you have no idea about what an assembler can do
20:59:29OrionPKaraq have you given any thought to await type functionality?
20:59:47EXetoCI wonder how optimized his targets are. I'm sure that's a priority nevertheless
20:59:53Araqwe're working on it, the implementation is C#-like, OrionPK
21:00:03OrionPKexcellent :D
21:00:33OrionPKwould something like that not be easier to implement with a C++11 backend than C backend?
21:00:47EXetoCdom96: will that too be ready by christmas?
21:01:06VarriountAraq, you have a minute? I would like you to look at these data type lengths, and tell me if there are any parts of nimrod that need to be changed because of them.
21:01:10EXetoClet's make this the best christmas ever
21:01:10Varriounthttps://gist.github.com/Varriount/6941963
21:01:20EXetoCI need to implement something awesome quick
21:01:27dom96maybe :P
21:01:32VarriountMake an ascii table generator
21:01:46VarriountI just spend 25 minutes on a ascii table by hand.
21:01:50Varriount*spent
21:03:38AraqVarriount: I fixed sizeof(culong): 8 but didn't commit
21:03:53EXetoCthat should be simple enough for a nub like me
21:04:11Araqthe rest is correct
21:04:23VarriountAraq, Ah, ok. I'm still trying to track down the mysterious socket problem for win64
21:05:09VarriountAraq, I saw that there were some types in winlean that used plain ints, and wondered if they were supposed to be that way.
21:05:36Araqin general I put some thought into the winlean types
21:05:48Araqcan't say the same for windows.nim because it has been translated
21:06:40OrionPKby C# like, something like this? https://gist.github.com/onionhammer/724e32faa960de4600c5
21:07:12Araqquite, yes
21:07:23Araqsyntax is slightly different
21:07:40OrionPKlet me guess, more {..}'s ? :P
21:07:57Araqproc foo {.async.} =
21:08:04OrionPKahhhh I was right
21:08:06Araq let x = await(gah(bah))
21:08:18OrionPKbut await gah(blah) would also work, wouldnt it?
21:08:42Araqwe'll see
21:08:46OrionPKyou can call procs without () around them
21:08:48OrionPKcant u?
21:08:52Araqit requires grammar changes
21:09:08Araqcurrently you can only omit the () if it's a statement
21:09:16OrionPKah
21:09:58OrionPKimo async procedures warrant their own keyword or w/e
21:10:02OrionPKinstead of just 'proc'
21:10:57Araqyeah yeah yeah
21:11:03Araqand so do "threads"
21:11:43OrionPKwell, I think typing {.thread.} is tedious, but..
21:11:59OrionPKi hadnt thought of making it "thread" instead of "proc"
21:11:59EXetoCcould the brackets and/or dots be removed from the pragma syntax? would that cause problems?
21:12:31AraqEXetoC: only in edge cases, so yeah we can do that
21:12:33EXetoCI hate modifier keys, but again I'm happy with the syntax overall :>
21:13:03Araqhowever we could also make use of «» for instance
21:13:07Araqunicode ftw
21:13:09VarriountOrionPK, That's what IDE Utilities are for
21:13:17OrionPKAporia?
21:13:34VarriountI haven't used it, I can't get GTK to compile.
21:13:48OrionPKjust download the binaries
21:14:01EXetoC©n®þ←↓→đð®€ł®€łœ©®€ßđð©ŋđðŋđð”ħđœ®€ł€łœ®þ®←þđðß®€ł©®ł»”↓®€ł I suck at generating unicode chars
21:14:08VarriountWhere?
21:14:24OrionPKwhat platform?
21:14:33OrionPKhttp://www.gtk.org/download/win32.php
21:14:40EXetoCþ←↓đðß©ħđnðµł@€ł→œ↓þ®←þþœ→↓¨æøĸħłŋðħªðßðħðŋª»ħ«””µ I found both!
21:14:42AraqEXetoC: well you'll learn «» I'm sure and if not you can use {. .}
21:14:44OrionPKhttp://www.gtk.org/download/index.php
21:14:58*io2 quit ()
21:14:59Araqno, download my stuff instead
21:15:02VarriountOrionPK, The 64 bit binary is out of date.
21:15:11OrionPKwhy not just { } instead of {. .}
21:15:17EXetoC«»«»«»«»«»«»«»«»«»«»
21:15:19dom96Varriount: http://forum.nimrod-code.org/t/131/2#642
21:15:27EXetoCpeople will be hatin' though
21:15:43OrionPKmy IRC client does not support this unicode business :p
21:15:47AraqOrionPK: ok that can be made to work too :P
21:16:01EXetoCit's altgr-z/x for me. much better
21:16:37VarriountPersonally, I like the {. .} - It makes the pragmas stand out.
21:16:49OrionPKit's nice for them to stand out, but it's also annoying to have to type them
21:17:00EXetoCyep
21:17:08VarriountOrionPK, autocomplete.
21:17:08OrionPKjust awkward on the keyboard
21:17:22OrionPKat least with a traditional qwerty keyboard, Im sure all you hackers are on dvorak
21:17:36AraqVarriount: yeah but when I designed the language I didn't imagine they would be everywhere and excessively used
21:17:47EXetoCI suppose I could make a snippet for that
21:17:51Araqso ... it makes sense to beautify them
21:18:08Varriount*shrug* Ok. I'm all for beautification
21:18:16OrionPKwoo! go beautify!
21:18:23dom96I like that they stand out too, they're also easy to highlight this way.
21:18:24OrionPKi'm all on board with making pragmas prettier
21:18:42OrionPKsyntax highlighting could make them stand out more dom96
21:18:48Araqdom96: oh that's a good point
21:18:51OrionPKinstead of making the syntax itself ugly
21:19:01EXetoCand that's something you could toggle anyway
21:19:03Araqthey are easy for regex based parsers
21:19:12Araqhmm
21:19:15OrionPKyeah but thats not something you should worry about imo
21:19:25OrionPKhow syntax highlighter writers are going to be taxed :P
21:20:01EXetoCas long as we don't enter C++ territory :>
21:20:06OrionPKcould just add loads of other keywords in like C++...
21:20:07OrionPK:P
21:20:26OrionPKproc await const myProcName() = :P
21:20:47OrionPKproc await template thread myProcName()
21:21:12VarriountGod no.
21:21:22dom96/kick OrionPK
21:21:23Araqbtw template vs macro is a design flaw in the language but it's too late to change that imo
21:21:24OrionPK:D
21:21:27dom96:P
21:21:42Araqwhether it's a macro or a template is only an implementation detail
21:21:52VarriountAraq, don't be afraid to depracate.
21:21:52Araqso the language should only expose "macro"
21:22:05VarriountOtherwise nimrod could end up like C++
21:22:18OrionPKyeah, deprecating things now is better than after 1.0
21:22:23EXetoCsounds like a search/replace will almost do
21:22:34AraqVarriount: ok but perfect is the enemy of good
21:23:02Araqand the successful languages all stopped at one point to improve and went for stability instead
21:23:17VarriountC++ : 50 million features, all trying to fix each other.
21:23:21OrionPKwhat if pragmas went on the next line
21:23:28VarriountOr returns
21:23:34OrionPKunder the proc declaration
21:23:40Araqwell we can fix this template vs macro issue after 1.0 too
21:23:53Araqwhen we know how it should work
21:23:54profmakxand then there was python!
21:24:03Araqbecause now I only know it's wrong :P
21:24:08VarriountI've always wondered why languages don't do something like:
21:24:13Araqnot how to make it better ;-)
21:24:22Varriountdef foo(x:int, y:string):
21:24:27Varriount returns int
21:24:48Varriount (body)
21:24:55Varriountreturn 5
21:25:02Varriount^ return 5
21:25:03AraqVarriount: that's kind of what Ada does
21:25:07OrionPKhow about ! for pragmas, that stands out
21:25:09Araqand it's verbose and sucks
21:25:14OrionPK\proc someProc(a: int) !async!
21:25:30EXetoCdef\nfoo\n(\nint x\nint y\n)\n
21:25:39AraqOrionPK: most of these things vanish as soon as you realize that nimrod supports user defined operators
21:26:04Araqleaving you with nicely few alternatives how the syntax should look like :P
21:26:06OrionPKAraq yeah but you'd process away the pragmas before getting to the user defined stuff, right?
21:26:15Araqwrong
21:26:17OrionPK:S
21:26:41OrionPKare you saying you could write code like that now with user defined operators?
21:26:46OrionPKproc someProc(a: int) !async!
21:26:46EXetoCd\nfoo\nint x\nint y#pragmas\nrettype\nbody that's a little more compact character-wise
21:26:49dom96proc someProc(a: int) ~ async =
21:26:55OrionPKooh I like that dom
21:27:04OrionPKlike the proc jizzed out some pragmas
21:27:08dom96lol
21:27:13AraqOrionPK: not quite but proc someProc(a: int): !gah works
21:28:08OrionPKwell, { } would still be an improvement upon {. .}, can we agree on that?
21:28:20OrionPKdunno if it makes it harder to parse..
21:28:24Araqactually we can't as {. } already works
21:28:31Araqand keeps it easy to syntax highlight
21:28:57EXetoCp foo#a, b: int#pragmas#rettype\n body
21:28:59EXetoCnailed it
21:29:00VarriountBesides pragmas, is there anywhere else nimrod uses {}?
21:29:08EXetoCno wait, # is for comments
21:29:11EXetoCVarriount: sets
21:29:20AraqVarriount: yes, set and table constructors
21:29:25EXetoCiz awesome
21:29:36OrionPKhow about //
21:29:37OrionPK:P
21:29:44OrionPKwe'll be the opposite of C
21:29:51OrionPK/ for pragmas and # for comments
21:29:57OrionPK //*
21:30:10VarriountWhat about `
21:30:41AraqVarriount: already used to turn operators into ordinary identifiers
21:30:46OrionPK /pragma/
21:30:50Araq`+`(a, b)
21:30:57Varriount~?
21:30:57OrionPKseparate with /
21:31:03OrionPKthat would look pretty, right?
21:31:10*Associat0r quit (Quit: Associat0r)
21:31:27OrionPKproc someProc(..) /async/thread/ = ...
21:31:53OrionPKor async,thread
21:32:07OrionPKsince you wouldnt want to make it seem thread belonged to async (in this isntance)
21:34:15fowlhi alternate syntax easy to add, so do it if the syntax bothers you so much
21:36:00EXetoClemme just submit a poll first :>
21:36:15OrionPKobviously i like nimrod's syntax by-and-large
21:36:17*ltbarcly quit (Quit: Computer has gone to sleep.)
21:36:28OrionPKand I like to bend other people to my will
21:36:29OrionPKso
21:36:36fowlof course, its just the small things that bother you, right
21:37:04EXetoCyep!
21:40:40EXetoCnot really, but they started it
21:40:46EXetoCor was it me?
21:41:36*gurug33k joined #nimrod
21:42:11VarriountMy only irritation with nimrod is that the syntax for return types is a bit funky (but it does make sense), and that the syntax can seem a bit ambiguous/context sensitive at times.
21:42:43VarriountBut those are minor annoyances, I have those with every language.
21:43:00fowlsyntax for return types?
21:43:22OrionPKyou mean : type?
21:43:31Varriountproc name(params): type =
21:43:46OrionPKi mean, it's the same as parameter types
21:43:49OrionPKit's consistent
21:43:50VarriountIt's the ': type =' equals
21:43:52EXetoCthat I consider minor, and it's not hard to type, but to each his own
21:44:20AraqI picked : type = over -> type: because it made more sense to me
21:44:41Araqbut it's a close call and we had to re-introduce -> for the 'do' notation
21:44:52fowlsupport both
21:44:53fowlseriously
21:45:05fowli can probably do that
21:45:10Araqwe do support -> and : for procs too iirc
21:45:13VarriountNo, please don't
21:45:30fowlnope
21:45:57VarriountI would like my fingers to stay in their normal shape, thankyouverymuch
21:46:20AraqVarriount: supporting "both" means you don't have to adapt
21:46:37fowlAraq, i think i can make that change
21:46:37EXetoCwell, he said both, but that seems unnecessary unless the purpose is migration
21:47:11Araq*shrug* oh well, just leave it as it is
21:47:25Araqthe people who care already don't like it
21:47:30fowlitd just be nice that it can be consistent with do()->:
21:47:36Araqand there is no chance to get them back
21:47:52Araqbecause it's not python-like enough anyway
21:48:05dom96personally I would like: (int, int) -> string for proc types instead of having to write: proc (a: int, b: int): string.
21:48:15fowl^
21:48:17*ltbarcly joined #nimrod
21:49:25fowli'd also say that ^ should mean pointer, [4] ^ int should be an array of four pointer to int
21:49:27fowlbut thats just me
21:52:56EXetoCdom96: that's a shortcut though so it serves a purpose, but you lose some self-documentation in that case
21:59:50dom96yeah, so you will be able to choose between the shortcut and the full syntax.
22:01:30EXetoCis it often obvious for you what the args are for?
22:01:48BitPuffinAraq: I managed to compile nimrod on netbsd
22:02:08BitPuffinAraq: But when compiling babel it looks for lib in the babel directory instead of the nimrod directory
22:02:38EXetoCBitPuffin: you are on fire. might I suggest templeos next?
22:02:44AraqBitPuffin: interesting how did you fix the /usr vs usr issue?
22:02:53dom96EXetoC: yes
22:03:01fowlEXetoC, haha
22:03:16fowlEXetoC, i tried that before it was all biblified
22:03:23fowlso many blinking things
22:03:54EXetoC:>
22:03:59dom96Actually, in regards to templeos wouldn't the guy that made it find Nimrod in line with his beliefs because of his obsession with the bible and the fact that Nimrod is a name from the bible?
22:04:38EXetoCdom96: no wait, when is the actual name omitted in a declaration?
22:04:51EXetoCgood point
22:05:00*ltbarcly quit (Quit: Computer has gone to sleep.)
22:05:12EXetoCdid you just omit that part?
22:05:13fowlEXetoC, it can be omitted in C
22:08:53EXetoCnothing comes to mind, but ok I believe you
22:10:04*ltbarcly joined #nimrod
22:10:19fowltry it typedef (*foo)(int,char*);
22:10:24*ltbarcly quit (Client Quit)
22:10:38fowler
22:10:39fowlu know
22:10:40dom96If you ever used Haskell all you would see is: Type -> Int -> String -> (Type2 -> Int)
22:11:42dom96The type for map for example is: (a -> b) -> [a] -> [b]
22:12:00fowlint foo(int) {} should be valid c
22:12:12BitPuffinAraq: I didn't
22:12:19BitPuffinAraq: it worked on netbsd but not freebsd
22:12:37BitPuffinAraq: still didn't show the / though :s
22:13:00EXetoCfowl: oh. I meant the actual name of the function, which would be foo in this case
22:13:07EXetoCanyway, nevermind
22:14:22BitPuffinEXetoC: hahaha wasn't that the christian psycho os?
22:15:06EXetoCBitPuffin: he's not that crazy, really. check out his tunes on youtube
22:15:56BitPuffinEXetoC: lol: :) some other time
22:18:15BitPuffinAraq: Where do you think I should look for the error?
22:19:13EXetoChttp://www.youtube.com/watch?v=u3DcbkR1Ugc hm, weren't some of these tunes slightly more rubbish?
22:21:19EXetoCok I need to shut up and maybe do something of value
22:22:44BitPuffinAraq: It is when running babel install that it fails btw, not when compiling babel
22:22:47fowlsongs by god and me
22:22:54fowlgod and i*
22:23:17BitPuffinAraq: So the error must be something that it checks the process path or something to find the lib directory, but since we are invoking babel and not nimrod the executable is in the wrong place
22:23:21BitPuffinAraq: that's my guess at least
22:23:21AraqBitPuffin: I don't know and please stop bothering me for now
22:23:36Araqthere are much more important things to do than bsd support
22:25:08BitPuffinmaybe the issue is with babel actually
22:25:24BitPuffinsince it is when running babel install it fails
22:25:47BitPuffinAraq: funny that you support Mac OSX then :p
22:29:15BitPuffinanyways dom96 I am having a look at babel
22:29:27EXetoCbut isn't the market share several times higher?
22:29:33EXetoCor are they fairly compatible still?
22:33:19BitPuffinWhat's the procedure for getting the path of the current process?
22:33:53EXetoCdidn't you answer that question for me though? :p
22:34:40BitPuffinEXetoC: I dunno xD
22:34:55gurug33kfor desktop I doubt anyone uses netbsd
22:35:21gurug33kbut for servers may be more ppl use *BSD than OS X I guess
22:35:37BitPuffinyeah most definitely
22:35:41BitPuffinespecially freebsd
22:36:32gurug33kalthou I have some mac mini servers and they do work very well
22:36:46gurug33kin general there is more support for OSX stuff as many developers use OS X I think
22:36:52BitPuffinyeah, but most system admins don't use OSX for servers
22:36:55gurug33kjust like since ppl use it they want to work on it
22:36:57BitPuffinmost use Linux :P
22:37:06BitPuffinand I think osx is probably somewhere in the bottom
22:37:11gurug33kyes of course linux #1
22:38:00gurug33kbut many web programmers use OS X lot of ruby ppl this is why they made the brew to install some stuff that didn't usually install that easily on OSX
22:38:35EXetoC"be careful when using boiling water" thank you internet
22:39:48BitPuffingurug33k: sure they might be using osx for coding, but usually not for deployment
22:40:02gurug33kyes right
22:40:54BitPuffinAraq: And I am not currently asking YOU to fix it, I am just wondering what modules might be relevant to look at. Since you have the entire project structure in the head
22:53:25*brson quit (Quit: leaving)
22:53:43*brson joined #nimrod
23:03:01BitPuffinAraq: Anyways, don't complain that people don't want to help you fix bugs if you don't even take the time pointing them in the right direction. Just saying, finding your way around a compiler is a daunting task if you didn't write it yourself.
23:14:27dom96Araq already spends a lot of his time helping people, you can't expect him to spend his whole time answering your questions.
23:17:22BitPuffinI'm not expecting that
23:18:43BitPuffinI'm just saying if he expects people to help him fix stuff, he needs to help them help him
23:23:20fowlim writing game state stuff... again
23:23:35fowlthis time i should save the code so i dont have to do it.. again
23:24:05EXetoCthat's not a bad idea
23:28:05BitPuffinfowl: maybe turn it in to a lib?
23:28:46fowlnow im realizing that it needs to be more specialized
23:29:07fowlso taking half of the code from fowltek/sdl2/engine and merging it into the game state manager
23:48:04OrionPKwriting your own engine?
23:49:00fowljust a basic one