<< 22-03-2017 >>

00:01:18*Matthias247 quit (Read error: Connection reset by peer)
00:02:20*ftsf_ joined #nim
00:09:47*onionhammer quit (Read error: Connection reset by peer)
00:10:47*onionhammer joined #nim
00:11:04*Vladar quit (Remote host closed the connection)
00:22:45ftsf_morning!
00:33:18*gokr quit (Quit: Leaving.)
00:36:59*chemist69 quit (Ping timeout: 264 seconds)
00:41:53*chemist69 joined #nim
00:46:40*sz0 joined #nim
00:56:50zachcarterhey ftsf_
00:57:12ftsf_ahoy zachcarter
01:07:48*def-pri-pub joined #nim
01:12:06FromGitter<Varriount> Meep
01:16:34zachcarterhey Varriount
01:24:36*pie__ quit (Ping timeout: 240 seconds)
01:25:06*jh32 quit (Ping timeout: 245 seconds)
01:32:47raussHi
01:59:59*Nobabs27 joined #nim
02:05:51*yglukhov joined #nim
02:10:17*yglukhov quit (Ping timeout: 260 seconds)
02:15:20*brson quit (Quit: leaving)
02:16:31*krux02 quit (Remote host closed the connection)
02:37:02*user0___ joined #nim
02:37:28*user0___ quit (Client Quit)
02:41:05*chemist69 quit (Ping timeout: 260 seconds)
02:54:34*chemist69 joined #nim
03:03:12*rauss quit (Quit: WeeChat 1.7)
03:04:46*dexterk__ quit (Quit: Konversation terminated!)
03:05:54*user0___ joined #nim
03:24:04*kulelu88 joined #nim
03:25:10*user0___ quit (Quit: user0___)
03:44:09*Yaiyan is now known as Ieuan
03:53:32*Nobabs27 quit (Quit: Leaving)
04:09:24*def-pri-pub quit (Quit: Lost terminal)
04:28:43kulelu88Does interaction with a file require the full file-path ?
04:29:32ftsf_nope
04:29:40ftsf_relative paths work too
04:29:50ftsf_no different to any other language
04:29:53kulelu88I am attempting to run my code against a file but I get an SQL error
04:30:00kulelu88the executable and file are in the same folder
04:30:18ftsf_maybe i missed some context. is this from nim?
04:30:26kulelu88yes, let me show you my code
04:32:31kulelu88ftsf_: https://www.zerobin.net/?82708fa2b603453f#ru5ig1afIkjm9wJIda86T2hUrTwmNeXDfsOsazH/sic=
04:33:39kulelu88the error: Error: unhandled exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SOURCE wp_posts.sql' at line 1 [DbError]
04:34:14ftsf_right, so it's an SQL problem. check the (My)SQL manual?
04:34:24ftsf_not to do with nim
04:35:15kulelu88when I run this within MySQL it works though
04:35:48ftsf_could be that command is only in the MySQL cli
04:35:53ftsf_not part of the MySQL server
04:37:00kulelu88you may actually be right ftsf
04:38:14ftsf_it's been known to happen in the past
04:38:34kulelu88ftsf: when I say: let db = open("localhost", "root", "pass", "db1"), how do I access each value in that statement? like, db.user = "root" ?
04:38:46*harrisi joined #nim
04:39:00ftsf_i'm not sure
04:39:30ftsf_i suspect you can't (unless you change the wrapper)
04:40:03ftsf_might need to use the lower level mysql wrapper https://nim-lang.org/docs/mysql.html
04:40:16dyce[m]is this still an issue? https://forum.nim-lang.org/t/2596
04:40:20ftsf_db.user may work?
04:40:41dyce[m]in 0.16
04:43:11kulelu88ftsf: how do I add a newline to a statement ?
04:43:26ftsf_statement & "\n" ?
05:16:52*yglukhov joined #nim
05:19:57*bungoman quit (Read error: Connection reset by peer)
05:24:24*sz0 quit (Quit: Connection closed for inactivity)
05:33:43*yglukhov_ joined #nim
05:33:43*yglukhov quit (Read error: Connection reset by peer)
06:00:19*vlad1777d joined #nim
06:08:57*chemist69 quit (Ping timeout: 256 seconds)
06:14:07*chemist69 joined #nim
06:18:12kulelu88how do I execute bash commands from my program?
06:19:42ftsf_https://nim-lang.org/docs/osproc.html
06:21:24ftsf_with poEvalCommand
06:21:43ftsf_be careful with it =)
06:22:22kulelu88ftsf_: this is what I want to run: https://dev.mysql.com/doc/refman/5.7/en/mysql-batch-commands.html . "mysql db_name < file.sql
06:22:51ftsf_yeah
06:22:58kulelu88no rm -rf ;)
06:23:22ftsf_as long as you don't let someone else enter the value
06:23:58kulelu88ftsf_: why does the documentation not have clear examples for usage? I see the code there, but not how to use it
06:24:22ftsf_because no one has added it y et
06:25:17ftsf_execProcess("mysql db_name < file.sql")
06:25:33kulelu88how does poEval come in there?
06:25:54ftsf_read the documentation on that page =) it's by default with that command.
06:36:13*tankfeeder joined #nim
06:51:03*nsf joined #nim
07:02:08*zachcarter quit (Quit: zachcarter)
07:05:29*ftsf_ quit (Quit: :q!)
07:42:24*Vladar joined #nim
07:57:17FromGitter<vegansk> Wow, Travis build of Nim fails with the message: "The job exceeded the maximum time limit for jobs, and has been terminated."
08:09:29*couven92 joined #nim
08:10:38*rokups joined #nim
08:17:47*chemist69 quit (Ping timeout: 264 seconds)
08:22:01*chemist69 joined #nim
08:27:45*gokr joined #nim
08:48:13*Andris_zbx joined #nim
09:00:22euantordyce[m]: Not sure, but from that forum I assume that the attachment proc is reading the file then writing it to the socket. I wonder why it doesn't just use `sendfile()`...
09:05:29*gokr quit (Ping timeout: 240 seconds)
09:09:53*couven92 quit (Quit: Client disconnecting)
09:25:38FromGitter<vegansk> @dom96, why do we need asyncfutures.injectStacktrace if we have exported ``errorStackTrace`` field from FutureBase? It breaks this message handling for example (https://github.com/vegansk/nimfp/blob/d5579acffa67735407f90cccf5ab877450b87133/tests/fp/test_futurem.nim#L46). I'm trying to get the message "Oops", but I get "Oops\n.... (and here is the stacktrace"
09:29:49*gokr joined #nim
09:40:46*bjz joined #nim
09:44:49*xet7 quit (Ping timeout: 260 seconds)
09:44:55*vlad1777d quit (Remote host closed the connection)
09:45:15FromGitter<vegansk> Nethermind, found workaround
09:50:25*antranig1 is now known as antranigv
09:50:38*Matthias247 joined #nim
10:02:06*gokr quit (Read error: No route to host)
10:04:33*couven92 joined #nim
10:06:14*kulelu88 quit (Quit: Leaving)
10:06:33*gangstacat quit (Quit: Ĝis)
10:13:28FromGitter<brechtm> is it possible to define const class variables?
10:14:29FromGitter<vegansk> @brechtm , const or variables? Maybe you mean immutable fields?
10:14:43*gangstacat joined #nim
10:15:09FromGitter<brechtm> @vegansk I'd like to associate the const with my class
10:15:50FromGitter<brechtm> Suppose I have a class "Camera", I could of course define const CAMERA_DELAY, but I would like to make it part of the class definition if possible
10:17:30FromGitter<vegansk> You need something line this: ⏎ ⏎ ```proc CAMERA_DELAY(t: typedesc[Camera]): int {.inline.} = 10 ⏎ echo Camera.CAMERA_DELAY``` [https://gitter.im/nim-lang/Nim?at=58d24f39b809ca5f4a6dcc97]
10:18:40FromGitter<brechtm> @vegansk Thanks... I'm off to learn about typedesc and .inline. now ;-)
10:19:53FromGitter<vegansk> @brechtm , and don't forget that Nim has no classes :-)
10:20:09FromGitter<brechtm> right
10:20:54FromGitter<brechtm> so perhaps the idiomatic way would be to simply define const CAMERA_DELAY?
10:21:33FromGitter<vegansk> Yes.
10:21:36FromGitter<Varriount> @brechtm I advise that you discard the idea that Nim object/reference types are classes... There are some similarities, however classes have l have things like static members/methods, vtables, and the like.
10:22:32FromGitter<brechtm> I'm coming from the Python world, so I'm still in that mindset
10:24:13FromGitter<brechtm> So it is perhaps not recommended to make use of the class macro?
10:24:49FromGitter<brechtm> Ah, it may not even be part of the stdlib: https://nim-by-example.github.io/oop_macro/
10:26:01FromGitter<vegansk> @brechtm , you don't need it. Describe what you want to do? Do you want to implement some type and methods for it?
10:26:13*chemist69 quit (Ping timeout: 256 seconds)
10:26:17FromGitter<brechtm> @vegansk Yes, just basic stuff
10:26:55*gangstacat quit (Quit: Ĝis)
10:28:35FromGitter<vegansk> Camera class: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=58d251d27b3f37e754227530]
10:28:48*kulelu88 joined #nim
10:28:58FromGitter<brechtm> @vegansk Yup, that's what I'm doing
10:29:12*chemist69 joined #nim
10:29:23FromGitter<vegansk> Then you don't need ``class`` macro
10:30:18FromGitter<brechtm> From what I understand, the class macro only offers Python-like class definition syntax?
10:30:42kulelu88I have this piece of code: execProcess("mysql --user=" & user & " --password=" & pass & " --database=" & dbname & " < " & filename & ""), but when compiling, I get this error: test.nim(5, 3) Error: value of type 'TaintedString' has to be discarded . what does this mean?
10:31:23FromGitter<andreaferretti> @brechtm no, it generates methods, which use dynamic dispatch. You don't need those if types can be determined statically (i.e. quite often)
10:31:45FromGitter<brechtm> @andreaferretti I see... thanks
10:32:04FromGitter<andreaferretti> just stick to types and procs unless you find something that is not easily implemented in terms of those
10:32:30FromGitter<vegansk> @andreaferretti, it's true :-) I have no methods in my libraries :-)
10:39:41kulelu88How do I discard an execProcess ?
10:40:22FromGitter<vegansk> ```code paste, see link```
10:40:41FromGitter<vegansk> https://nim-lang.org/docs/manual.html#statements-and-expressions-discard-statement
10:40:57kulelu88@vegansk : see my message above
10:41:54FromGitter<vegansk> @kulelu88, read the manual about ``discard``
10:43:00kulelu88@vegansk I have read that already, but when I do: discard execProcess , it still doesn't compile
10:43:53cheatfatekulelu88, but i think it doesn't compile with different error
10:43:59FromGitter<vegansk> I see no ``discard`` statement in your code
10:44:28*vlad1777d joined #nim
10:44:36kulelu88cheatfate: same error
10:45:17FromGitter<brechtm> kulelu88: paste your complete program code to a pastebin? I assume it's not long?
10:45:19*bjz_ joined #nim
10:46:12cheatfatekulelu88, really, or you just trolling us?
10:46:16cheatfateimport osproc
10:46:16cheatfatediscard execProcess("asd")
10:46:26cheatfatecompiles without any problem
10:47:07*bjz quit (Ping timeout: 260 seconds)
10:47:17*gangstacat joined #nim
10:47:35kulelu88@brechtm : https://www.zerobin.net/?d9844b3176051c51#y7awoGb7KjFjwQXrElnR25kasgrFOUsyryOdGHXnFWk=
10:47:39kulelu88cheatfate: ^^
10:47:53cheatfateomg
10:48:01cheatfatereally?
10:48:02FromGitter<vegansk> :smile:
10:48:26kulelu88its internal, I know its a horrific thing to do code-wise
10:48:42FromGitter<vegansk> @kulelu, reread my example.
10:49:24kulelu88@vegansk what example?
10:49:29FromGitter<brechtm> @kulelu88 you added a second execProcess() and discarded that?
10:49:57FromGitter<brechtm> @kulelu88 You need to discard your existing execProcess()
10:50:13kulelu88@brechtm no, I am trying to discard the first one, because it throws this error: test.nim(6, 14) Error: value of type 'TaintedString' has to be discarded
10:50:34cheatfatekulelu88, also you attempt to execute sql statements will not be succeeded in such way `<` redirection works only in `shell`
10:50:55cheatfatekulelu88, look at your code and search for `discard`
10:51:34kulelu88cheatfate: I am going through hell to try to import a .sql file into a database. I had to take an extreme measure of using a mysql command via osproc
10:52:58cheatfatekulelu88, use `poEvalCommand` in your options for execProcess
10:53:22FromGitter<brechtm> @kulelu88 compiles fine over here, if the second execProcess call (what's that for anyway?) is removed and the first execProcess's result is discarded
10:53:38cheatfateahh ok execProcess will do it for, i have mistaken
10:53:43kulelu88@brechtm how do I discard the first one?
10:53:59FromGitter<brechtm> @kulelu88 add "discard" in front
10:54:26kulelu88by saying: discard execProcess (...) it first runs it, then discards it?
10:54:27FromGitter<brechtm> @kulelu88 but this should be obvious if you read the documentation on discard, I think...
10:54:57FromGitter<brechtm> @kulelu88 yes
10:55:13FromGitter<brechtm> well, it discards the result
10:56:05kulelu88I like nim, its a very powerful language, but to be honest, the documentation is not too great. the lack of examples makes it difficult to understand what the libraries are intended to do
10:56:08FromGitter<brechtm> it is still being executed of course
10:56:32cheatfatekulelu88, execProcess return value must not be discarded, because you need to check this value if your import was successful
10:56:43FromGitter<brechtm> @kulelu88 which language(s) do you have experience with?
10:57:05kulelu88@brechtm Python (mostly)
10:57:37FromGitter<vegansk> @kulelu88, I sent you a link to the documentation,. it says: ``The discard statement evaluates its expression for side-effects and throws the expression's resulting value away.``. What's wrong with it? Did you read it?
10:58:26FromGitter<brechtm> Yes, the docs on discard seem to be very clear.
10:59:06FromGitter<vegansk> And btw, you can make some PRs to improve the documentation if it seems not good.
10:59:18kulelu88"evaluates its expression" would make more sense by saying "the discard statement will execute all code following the `discard` keyword and then it will throw any resulting value from the executed expression away"
11:01:13FromGitter<andreaferretti> don't know - for me it is clearer as stated now in the docs
11:01:23FromGitter<vegansk> https://nim-lang.org/docs/manual.html#statements-and-expressions: ``Nim uses the common statement/expression paradigm: Statements do not produce a value in contrast to expressions``. It means that expressions produces values. To produce the value, expression must be evaluated. Is it unclear?
11:02:09stisaIt's not the discard statement that executes it though, it's executed regardless, you could have var myresult = procthatreturnssomthing(...), discard is "I don't care about the returned value
11:02:50kulelu88the question is, `why` does it need to be discarded ?
11:03:19FromGitter<brechtm> @kulelu88 Just wondering, how experienced are you with programming in general? I can understand the docs may be more difficult to understand for a beginner.
11:03:28FromGitter<vegansk> Because you *must* handle the result, or tell ther compiler that you really don't need it
11:03:57FromGitter<andreaferretti> it is just a safety net
11:04:04kulelu88@brechtm I know my way around Python quite well. I could have likely achieved a full PoC in Python by now, but I am trying to do this in Nim
11:04:10FromGitter<vegansk> And I think that it's a killer feature of Nim :smile:
11:04:13FromGitter<brechtm> ... because many procs return an error code. Discarding an error code is a bad idea, so it is made explicit in Nim.
11:04:19FromGitter<andreaferretti> if this wasn't required you may be ignoring the return value because of distraction
11:04:35FromGitter<andreaferretti> in fact, you *are* ignoring the return value right now :-)
11:04:43kulelu88I've never known of needing to dispose of a return value in Python
11:04:45FromGitter<andreaferretti> even though it may signal failure
11:04:59FromGitter<andreaferretti> yup, in fact python is much less safe
11:05:06FromGitter<andreaferretti> it does not even have types
11:05:17FromGitter<andreaferretti> nim prefers to check things statically where possible
11:05:39FromGitter<andreaferretti> it is a help from the compiler
11:05:54FromGitter<andreaferretti> which reminds you that you are not handling the failure case correctly
11:05:58kulelu88I don't get why I'm being assumed to be a beginner though. the language does have its quirks which aren't obvious to someone who isn't a "seasoned nim developer"
11:06:21FromGitter<brechtm> @kulelu88 I think this may be because in Python errors are handled more using exceptions, where in Nim error return codes are used more (at least when interacting with C code)
11:06:40FromGitter<andreaferretti> I guess that was because the phrase `evaluate its expression` was not clear to you, but I can only speculate
11:06:47FromGitter<andreaferretti> I did not assume anythin
11:07:04FromGitter<brechtm> yes, that's the reason
11:07:18FromGitter<brechtm> ... I assumed you *may* have been a beginner
11:08:17kulelu88like cheatfate said that I need the return value from execProcess, but the documentation doesn't tell you how to store this return value (except in a variable, but then it isn't clear how to execute execProcess, unless calling the variable is enough, or that I am just mentally tired now)
11:09:23FromGitter<andreaferretti> the right way would be to assign the result to a variable and then do something with this variable - i.e. check whether the result was successful and if not handle the failure
11:09:46kulelu88unless saying this: let outp = execProcess("nim c -r mytestfile.nim") ... is enough to both store the return value AND execute execProcess
11:10:33FromGitter<andreaferretti> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=58d25ba86d7eb18404f394d2]
11:11:22kulelu88oh, now I get it.
11:11:51kulelu88okay that makes a lot more sense
11:12:00kulelu88I wish that example was in the documentation instead
11:13:39FromGitter<vegansk> @kulelu88, do you use continuation passing style in python when calling functions? I guess no, and you use something like ``x = f(y)``. What's the difference?
11:14:53kulelu88@vegansk when code starts to get complex to the point where it makes no sense to someone who hasn't written it, I refactor that code
11:16:13FromGitter<vegansk> </thread>
11:19:16kulelu88gitter/slack people, yeah ...
11:21:13*vlad1777d quit (Remote host closed the connection)
11:28:14kulelu88cheatfate: I hope you don't mind me asking, but knowing how my execProcess string looks like, what is the return value? it specifies that it is a string. is it the exact string I input or something else?
11:28:31*zachcarter joined #nim
11:30:58*krux02 joined #nim
11:35:32*bjz_ quit (Ping timeout: 260 seconds)
11:35:48*bjz joined #nim
11:37:51FromGitter<brechtm> @kulelu88 read the docs on execProcess and print the string returned in your program?
11:39:31stisakulele88 I think it's what the command you executed would print to the console
11:40:45kulelu88which is blank though. I ran the command raw and it shows no output. Does that mean I should do if/else checks with: if outcome == "": ... ?
11:46:04*PMunch joined #nim
11:46:14stisadepends on the command, I don't know what mysql prints when something goes wrong
11:46:29*shashlick quit (Ping timeout: 246 seconds)
11:47:30FromGitter<brechtm> You should check the return code of mysql to check if anything went wrong. I'm not sure how the return code is handled by execProcess. Perhaps translated to an exception?
11:47:32*shashlick joined #nim
11:55:11*nhywyll joined #nim
11:59:46Araqkulelu88 afaics this whole redirection thing with '<' is causing trouble
12:00:01Araqlet p = runProcess(...)
12:00:25kulelu88Araq: actually, I just tested the code using dicard execProcess and it worked. now I am just doing a sanity check on my horrific code
12:01:02Araqlet inp = p.inputStream
12:01:11Araqinp.write(data)
12:01:15Araqinp.flush()
12:01:24Araqp.close()
12:01:38Araqdon't use the shell for this.
12:01:56kulelu88thank you Araq . I will refactor the code to use what you wrote instead
12:03:06Araqif it works, please create a PR for osproc's docs.
12:03:10Araqthey need examples.
12:04:04*zaquest quit (Remote host closed the connection)
12:04:56*zaquest joined #nim
12:21:14*gokr joined #nim
12:25:29*gokr quit (Ping timeout: 240 seconds)
12:27:56*zachcarter quit (Quit: zachcarter)
12:42:36*gokr joined #nim
12:44:09PMunchHmm Araq, I'm trying to convert some of the DC (painting on surfaces) headers from wxWidgets
12:44:56PMunchHow would you convert something like #if defined(__WXMSW__) which checks for Windows compatibility portably
12:45:22Araqwhen defined(windows)
12:45:57PMunchYeah, but these are still running through your wx.c2nim file
12:46:21PMunchIf we should try to not modify them after they are auto-generated
12:50:01Araqwell what did I do with these things the last time?
12:50:12Araqdon't remember. do what I did. I had my reasons.
12:51:54krux02Araq: what was it that I need to do, so that my editor doesn't show me anymore the error messages in included files
12:55:19krux02emacs uses nimsuggest
12:55:45krux02And that one emits a lot of error messages.
13:03:47PMunchHmm, the error message "Error: redefinition of 'WxDC'" would be more helpful if it told you were it was defined first..
13:10:16*zaquest quit (Quit: Leaving)
13:12:21*krux02 quit (Quit: Leaving)
13:18:17*nhywyll quit (Quit: nhywyll)
13:20:50*zachcarter joined #nim
13:23:48*couven92 quit (Quit: Leaving)
13:24:06*couven92 joined #nim
13:24:51PMunchAraq, did you ever encounter these: http://ix.io/paE
13:27:18*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
13:27:59zachcarterI’ve installed nim according to the website on arch linux (downloading the nim tar file and extracting and running build.sh) and installed nimble with koch
13:28:08zachcarterI’m getting the following error when trying to install nake : http://imgur.com/a/QLWqU
13:28:19zachcartercan anyone help me? I’m not an arch-linux user normally, generally I use osx
13:29:00PMunchIt does say that nake is already installed
13:29:08PMunchSo maybe you don't need to install it?
13:29:16PMunchThat being said Nim is available in the AUR for Arch
13:29:25zachcarterah okay thank you I’ll install it that way
13:29:52PMunchNake too by the looks of it
13:30:05zachcartermaybe - but typing nake doesn’t do anything for me - not sure if it’s installed and not on my path or what
13:30:34PMunchWell nake is also in the repositories so you should be good installing from there :)
13:30:53zachcarterah okay thanks PMunch
13:31:11PMunchNo problem
13:31:25PMunchAnd remember, on Linux always check your package manager first :)
13:31:31zachcartergotcha
13:33:58*zaquest joined #nim
13:40:41*dexterk joined #nim
14:01:27*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
14:06:02*gokr quit (Ping timeout: 260 seconds)
14:10:48*vlad1777d joined #nim
14:22:55FromGitter<brechtm> @zachcarter I think I might have run into the same error when trying to install nake using nimble. The solution was to upgrade Nim to the devel version (I was using 0.16.0)
14:23:20FromGitter<brechtm> That was on macOS though
14:26:55*krux02 joined #nim
14:32:18krux02I am on arch linux, with devel branch version of Nim, and nimble install nake does work just fine
14:34:07krux02zachcarter, use the development version of Nim. I do it too, and then nake will also compile just fine
14:36:27zachcarterokay thanks
14:38:09zachcarterkrux02: that’s what I tried doing previously and it didn’t work but I’ll try again
14:38:16demi-i want to say i have that problem too and it ended up making me not use nake for stuff and using nimble tasks instead
14:38:37demi-but iirc, araq has said that mac users should be using devel, not 0.16.0 anyway due to a more serious bug
14:39:54zachcarterah yeah devel on my mac works fine
14:40:04zachcarterI just have problems with ubuntu / arch
14:40:17zachcartergetting nim / nimble / nake to play nicely when checking everything out from git
14:40:42FromGitter<brechtm> @zachcarter but from the devel branch?
14:41:05zachcarterI think that’s the default branch right?
14:41:15zachcarterpretty sure ti is
14:41:16zachcarterit is*
14:41:26FromGitter<brechtm> @zachcarter master is the default for git... not sure if that can be changed
14:41:33zachcarterit can be on github
14:42:58FromGitter<brechtm> @zachcarter I guess git will checkout master if not specified...
14:44:00demi-brechtm, git has a primary branch, which by default gets named "master", but you can name it anything you want when you initialize the repo. github supports changing primary branches through the web UI, when you do a `git checkout`, it will checkout the primary branch (whatever it is called)
14:44:43FromGitter<brechtm> ah, it does indeed checkout devel when cloning the Nim repo!
14:46:12demi-sorry, i meant clone, not checkout
14:46:28demi-checkout without an argument might also do that, i haven't checked
14:46:30krux02demi-, svn background?
14:48:22demi-krux02: me? not especially
14:49:04krux02just because svn checkout is equivalent to git clone
14:50:03krux02but doesn't really matter
14:54:05FromGitter<brechtm> is it possible to automatically initialize an object's attributes?
14:54:38FromGitter<brechtm> iwith default values, without having to
14:54:59FromGitter<brechtm> i.e. with default values, without passing them on object instantiation
14:57:24chemist69zachcarter: I am using Nim on Arch. The best way imho is to clone the repo (https://github.com/nim-lang/Nim) and follow the instructions of the Readme (at the end of `Compiling`)
14:57:48chemist69same on Ubuntu.
14:58:21*tankfeeder quit (Quit: Leaving)
14:58:26*sz0 joined #nim
14:59:09FromGitter<brechtm> Is there something like repl.it for Nim?
14:59:40chemist69zachcarter: add <nimdir>/bin and ~/.nimble/bin to your PATH and you're good to go.
15:00:10chemist69you not even need to use sudo once.
15:01:19chemist69brechtm: there are a few packages in nimble, but I haven't tried them.
15:01:57chemist69nrpl, tnim
15:02:14stisabrechtm is that similar to https://glot.io/new/nim ?
15:02:35*ftsf quit (Quit: Leaving)
15:07:30FromGitter<brechtm> @stisa yes, thanks!
15:13:12FromGitter<brechtm> @chemist sorry, I was talking about an online Nim editor/compiler, not an interactive REPL
15:13:31chemist69ok, np
15:30:19*yglukhov_ quit (Remote host closed the connection)
15:36:38*yglukhov joined #nim
15:41:17*yglukhov quit (Ping timeout: 256 seconds)
15:56:16*brson joined #nim
15:56:39FromGitter<Varriount> <3 glot.io
16:03:15*xet7 joined #nim
16:04:29demi-Araq: i am attempting to port a header using c2nim and the header has a number of compiler and platform specific defines that rely on C style defines that don't translate into nim due to starting with underscores, is there a way to handle this case?
16:15:57Araq#mangle rule
16:27:30*yglukhov joined #nim
16:29:36krux02Araq: you mentioned once you would help me to get "include" have a better support in text editors
16:29:58*yglukhov quit (Remote host closed the connection)
16:30:07federico3Araq: c2nim does not support per-user .cfg files, right? Do you create mangle rules for common manglings (e.g. uint8_t -> uint8) in each header file?
16:30:59krux02I would really like to write the stuff needed, so that I get the correct symbols in files that are included from other files
16:34:01*couven92 quit (Quit: Client disconnecting)
16:35:36*arnetheduck quit (Ping timeout: 240 seconds)
16:36:56*yglukhov joined #nim
16:43:40*yglukhov quit (Remote host closed the connection)
16:48:35krux02aparently I got it working
16:48:55krux02you could have said, that all I need is an empty project.nim.cfg
16:50:53krux02or I don't know now I have no errors anymore
16:51:08krux02this is too much friction to write nim code
16:53:03*Andris_zbx quit (Remote host closed the connection)
16:55:44FromGitter<vegansk> @brechtm, standard object constructor fills the fields with zero values. You can try this (https://github.com/vegansk/nimboost/blob/master/tests/boost/test_typeutils.nim#L117-L120). One of the feature of the ``data`` macro is generating the object constructor with default values.
16:55:56demi-federico3: that specific rule example you gave should be built-in as it is part of the c standard library now
16:58:41krux02Araq: can you give me a nimsuggest tutorial?
17:00:29krux02when I execute nim-find-project-path in emacs, it tells me myproject.nim.cfg
17:00:43krux02should that be passed to nimsuggest as a parameter?
17:00:45krux02I don't know
17:00:55krux02but that is what nim-mode does
17:01:07krux02and the result is no errors at all.
17:02:41*couven92 joined #nim
17:04:25*sz0 quit (Quit: Connection closed for inactivity)
17:11:40*yglukhov joined #nim
17:16:59Araqfederico3: it does support that, look at wxWidgets wrapper foo.c2nim files
17:17:18Araqkrux02: just pass it a directory if you don't know the main nim file (only works with devel)
17:17:21Araqgotta go, bye
17:19:39krux02I am on devel
17:19:57krux02I know the main nim file
17:23:58dom96hi guys
17:33:22federico3hi dom96
17:43:45*Trustable joined #nim
17:50:02*brson quit (Read error: Connection reset by peer)
17:51:45krux02what should I put in myproject.nim.cfg?
17:55:28*brson joined #nim
17:59:35yglukhovstring index which is equal to its len is not out of bounds. is this intended? or a bug?
18:02:47def-yglukhov: well, that's the \0
18:03:11*bjz joined #nim
18:05:20yglukhovdef-: so? is it semantically correct to refer to trailing \0?
18:06:06yglukhovstring.len says there is no \0 in the end. i'd say \0 is an implementation detail to ease C interop.
18:06:12def-not sure, C style functions will want to access that to figure the end
18:07:03yglukhovC funcs dont use nim bounds checks so they don't care =)
18:07:58dom96yglukhov: it is correct to refer to it
18:07:59*brson quit (Read error: Connection reset by peer)
18:08:20dom96It's useful when parsing and used a lot in that context
18:09:00yglukhovdom96: does this code look correct? https://github.com/nim-lang/Nim/issues/5592
18:09:12yglukhovdom96: btw, seen my pr to jester?
18:10:39*brson joined #nim
18:13:42krux02don't override the \0, bad things might happen
18:15:10krux02C has two ways to handle string lengths.
18:15:16*sz0 joined #nim
18:15:17yglukhovdon't let me do it! =)
18:15:46krux02The standard library has all string operations also on sized strings without '\0' at the end
18:15:59krux02but don't rely on that
18:16:12krux02most c libraries just use 0 terminated strings
18:16:24yglukhovkrux02: thats kinda not what i'm asking about.
18:17:20krux02ok, then it's not really clear to me what the question is
18:17:42yglukhovshould the exception happen? https://github.com/nim-lang/Nim/issues/5592
18:18:10krux02To the question intended/bug it is obviously intended.
18:18:41krux02well I would say, yes
18:19:08krux02overriding the terminating 0 -> bad things might happen
18:20:02krux02but reading it should be fine
18:20:19yglukhovnot only overriding, but even reading it, i'd say. from idiomatic nim perspective
18:20:47*brson quit (Ping timeout: 264 seconds)
18:21:01*jjido joined #nim
18:21:46krux02maybe you are right, from the nim side the terminating 0 should be inaccessable
18:21:55krux02but it should be documented that it is there
18:22:17krux02so that people can safley use nimString in a C context without also be required to pass the length
18:22:24yglukhovi suppose its already documented somewhere...
18:22:45*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
18:22:56yglukhovwell, thumbs up to the issue then! =)
18:25:29krux02I did it, then you could also give a thumbs up for my issue: https://github.com/nim-lang/Nim/issues/5493
18:26:56*jivank_ joined #nim
18:28:22*brson joined #nim
18:29:29jivank_cheatfate: as soon as i can get back to my windows box i'll let you know if the exe that nim produced is also 32bit. but i assume there shouldnt be issues using 32bit nim with 64bit windows?
18:29:50cheatfatewe have issues before with 32bit
18:31:33yglukhovkrux02: done. your hack would not work if someone using your lib messes with arch flags.
18:32:09*brson quit (Read error: Connection reset by peer)
18:32:35yglukhovkrux02: however, you can still generate the needed part of the shader code in runtime, i guess
18:32:37*jjido quit (Ping timeout: 260 seconds)
18:33:16jivank_cheatfate: alright i can try to reproduce with 64bit nim
18:33:27krux02yglukhov, generating the parts at runtime is something I would like to avoid, because at some point i plan to include support for shader checking at compile time
18:34:00krux02so that my inline shader code is passed to a checker, and I can generate error messages for the shader part
18:34:44krux02at the moment that doesn't work yet, because I cannot properly emit error messages into string literals, but there is not much that needs to be added, so that it works.
18:35:02yglukhovkrux02: have you considered using my nimsl btw? i have ideas how to make it support uniforms/varyings/ifdefs in arbitrary places
18:35:08krux02I can't check a shader that does not exist at compile time
18:35:55krux02if i remember correctly that was the project that compiled nim to glsl?!
18:36:04*rauss joined #nim
18:36:11yglukhovyup
18:36:28yglukhovi think hlsl backend is also possible
18:37:40krux02honestly I have thought of it, but there are several things that would be required to be mapped to nim
18:37:54krux02not everything is trivial
18:38:04krux02for example the layout stuff
18:38:35krux02or the offset parameters
18:38:51yglukhov{.pragma syntax.} ? =)
18:39:09krux02the problem is, that glsl is documented, a nim version of it would not be documented
18:39:26krux02and then there are in/out qualifiers for function parameters
18:39:34krux02inout is var
18:39:45krux02but how to encode just out?
18:39:46yglukhovout is var as well
18:39:53yglukhovin is just nothing
18:40:39krux02that is the problem, both inout and out are var
18:40:52krux02so how to translate var? as out or as inout?
18:41:36krux02ok, can I talk to you in 20 minutes, I have to change the office?
18:41:36yglukhovwhy bother? just pick the one that matches nim's var semantics.
18:42:23krux02that would be inout then
18:42:25yglukhovdunno, but im here almost all the time
18:42:34yglukhovexcept when sleeping =)
18:42:37krux02not sure if the excludes possible optimizations
18:42:44krux02ok
18:42:47krux02have to go now
18:43:14*krux02 quit (Quit: Leaving)
18:47:50cheatfatejivank_, its better to post source you used to reproduce to issue
18:55:43*yglukhov quit (Remote host closed the connection)
19:03:42*deavmi__ joined #nim
19:07:16*deavmi__ left #nim (#nim)
19:13:15*kulelu88 quit (Quit: Leaving)
19:15:01FromGitter<rsirres> tryin to do some async stuff with nim and wondering whether there is a similar pair of functions: resolve and reject ?
19:18:16*bjz joined #nim
19:20:41dom96yglukhov: Sorry, I only skimmed it so far.
19:22:31dom96rsirres: what would those operations do?
19:22:35*rauss quit (Ping timeout: 264 seconds)
19:23:36*yglukhov joined #nim
19:23:58FromGitter<rsirres> ``````
19:24:03FromGitter<rsirres> var p = new Promise(function(resolve, reject) { ⏎ ⏎ // Do an async task async task and then... ⏎ ⏎ if(/* good condition */) { ... [https://gitter.im/nim-lang/Nim?at=58d2cf517b3f37e7542514c5]
19:24:24*rauss joined #nim
19:26:26dom96Still not sure what resolve/reject does here
19:26:50dom96what are you trying to accomplish?
19:27:17cheatfateresolve/reject complete()/fail()
19:27:57cheatfatersirres: check code of asyncdispatch.nim for examples
19:28:09FromGitter<rsirres> I try to add middleware
19:28:16*krux02 joined #nim
19:28:18FromGitter<rsirres> to my web framework
19:29:32FromGitter<rsirres> and I need a way to let the caller know when a Future (or Promise) failed or succeeded
19:30:11FromGitter<rsirres> @cheatfate thx
19:31:50krux02yglukhov, I am back
19:31:59yglukhovstill here =)
19:43:42krux02yglukhov, ready to talk about your nim to glsl compiler?
19:45:05yglukhovsure
19:46:08dom96yglukhov: merged your PR thanks (see my comment in the PR though)
19:46:20*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
19:47:56*brson joined #nim
19:48:16yglukhovdom96: thanks!
19:55:08demi-hmmm, i'm using the `times` module and initializing a variable as `let local_time = getLocalTime(getTime())` and it is saying it cannot prove that this ever gets initialized? is there a way i can work around this since it says it will be a compiler error in the future?
19:57:33dom96demi-: I guess that's an issue with the `times` module, not your code.
19:58:11demi-right, can i do anything to mitigate that?
19:59:58dom96You can fix the issue in the `times` module, if you're up for that.
20:01:17demi-¯\_(ツ)_/¯
20:05:54dom96:\
20:13:10*Snircle joined #nim
20:17:51demi-don't have time to dig into it right now, will at least open a new github issue about it
20:22:36krux02yglukhov, I looked at your code again, I am not sure how you handle or plan to handle uniforms
20:24:33yglukhovkrux02: currently they are defined as args of the "root" function. i want to add another way. proof of concept: https://github.com/yglukhov/nimsl/blob/master/nimsl/private/var_decls.nim#L74
20:25:36dom96demi-: it's cool
20:25:39krux02so is it the "u" prefix?
20:25:59dom96Anyone else find errors like: Error: type mismatch: got (int, float64) for `*` annoying?
20:26:36krux02dom96, that is not annoying, that means you use types inconsistently
20:27:06krux02int and float64 can not be converted in any direction without loss
20:27:27Araqyay.... somebody agrees with me :-)
20:27:44yglukhovkrux02: no, all args not "var" and not starting with "v" prefix are uniforms.
20:27:49PMunchhttp://serv.peterme.net/devlog/cross-platform-guis-and-nim-macros.html
20:27:50krux02int32 to float64 would be possible without loss
20:27:59demi-pretty sure you can create floats that equivalent to integer values
20:28:09PMunchWrote a little something on creating GUIs with wxnim
20:28:24krux02is there any support for texturing?
20:28:47PMunchdom96, I've found them annoying but there are good reasons for them..
20:28:56yglukhovkrux02: but thats unwieldy for complex shaders. thats why i want to allow varying/uniform definitions in arbitrary places.
20:29:19krux02texture mapping is the most magical thing in glsl, and I guess the number one reason why you would not want to write your own sofware renderer
20:29:47PMunchAnd I can't think of a good way that both satisfies those reasons and makes it easier to use..
20:29:50yglukhovkrux02: samplers are not yet implemented. its easy to support them in codegen, but a bit harder to do in software renderer
20:29:58PMunchShort of defining a whole new set of operations..
20:30:24dom96Well, I end up with type conversion in way more places than i'd like
20:30:33dom96*conversions
20:30:47yglukhovkrux02: though i it doesn't look THAT hard to support samplers in software renderer
20:31:05krux02well texture is implemented in a way, that it does mipmapping and anisotropic filtering
20:31:29krux02that is something that can't be solved locally by evaluationg the result of a single fragment
20:31:59krux02and why do you want a software renderer?
20:32:15*rokups quit (Quit: Connection closed for inactivity)
20:33:04krux02I agree that there is a lot that would be very nice if it would be available at both glsl side, and at cpu side
20:33:18yglukhovkrux02: that is not necessary for software. sw is not meant to reproduce hw quality. the main purpose is to allow more debugging options.
20:33:57krux02ok that's true, but I would skip the software renderer for now
20:34:13krux02the should be an empty texture proc that does nothing
20:34:22krux02only there for the code generation
20:34:23yglukhovwhen implementing some custom effects, you can echo, or debug with gdb, etc
20:35:10krux02yea debugging nim with gdb is really an improvement ... but yes generally I do agree
20:35:10yglukhovkrux02: totally. sw samplers could just return black every time. no problem.
20:35:48krux02One thing that I invested quite some time into is framebuffer support
20:36:03krux02framebuffers allow an arbirary amount of outputs in the fragment shader
20:36:20krux02each of the renders into a different texture
20:36:23*zachcarter quit (Ping timeout: 264 seconds)
20:36:37Araqkrux02: what else do you need to know about nimsuggest?
20:37:01yglukhovkrux02: i suppose thats some recent opengl. not webgl, and not ES2.0?
20:37:37krux02Araq, I am trying to make my project show the correct error messages in emacs in included files. Currently that is not the case.
20:37:56krux02I looked a bit how nim-mode works internally
20:38:33krux02when i have a project.nim.cfg, this file is passed as the root of the project to the instance of nimsuggest
20:38:38krux02I think that is wrong
20:39:04krux02it should be the root of the project, so a nim file, not a cfg file
20:39:14krux02but I don't know, I couldn't find good documentation
20:40:52krux02yglukhov, not that recent, they are indeed in ES2.0 http://docs.gl/gl3/glGenFramebuffers
20:42:43krux02Araq, the big question is, what file/folder exactly does nimsuggest need to have as an argument, so that I see the correct error messages? And how to I properly resolve that?
20:42:46yglukhovkrux02: framebuffers themselves yes, but not multiple framebuffer targets, afair. i mean, in some recent opengl you can output arbitrary number of channels to multiple framebuffers in single fragment shader.
20:44:27krux02yglukhov, you are right, in openglES I can only have one color attachment.
20:44:35krux02in ES2
20:44:43krux02in ES3 I can have more
20:46:55*rauss quit (Quit: WeeChat 1.7)
20:47:58PMunchHmm Araq, for some reason you need 0.16.1 to run the genui macro. Can you think of a reason
20:48:18PMunchIt seems to compile fine but generates invalid code..
20:52:51krux02Araq, when I pass just the folder, the includes are not resolved properly
20:54:01krux02yglukhov, I can help you integrate your nim2glsl compiler in my macro library, if you want that
20:54:16krux02I think it should be easy to do that
20:55:58krux02If you can see it, I have different sections in the code, and one of them is for example fragmentMain, where a tripple string literal resides
20:56:40*vlad1777d quit (Remote host closed the connection)
20:57:13krux02those sections are quite flexible, I could add one section that allows to use your nim2glsl compiler for both the fragment shader and the other shaders
20:59:07krux02the only problem I see right now, is that varyings are not visible in the nim type system
20:59:53krux02I decided to do varyings as string literals in case there would come something I would not be prepared for.
21:00:35krux02It turned out to be wise, because "flat" is an important attribute for varyings
21:01:06yglukhovkrux02: well in nimsl varyings can be part of nim type system.
21:01:56krux02I know, because they are part of the function parameters
21:03:06yglukhovkrux02: anyways, i would welcome nimsl users. and would appreciate feedback on it.
21:03:15yglukhovand prs :D
21:03:46krux02so do I :D
21:04:10krux02have you once tried to compile my examples?
21:06:14yglukhovyep. quite some time ago.
21:06:59krux02cool
21:07:10*nsf quit (Quit: WeeChat 1.7)
21:07:26krux02not all of them even work, I think I should add comments to those that did not get maintenance for quite some time
21:07:37krux02how do you like it?
21:11:38yglukhovthe effects are interesting. i could not see though how to do shader source sompositing in runtime though. and tbh i did not spend a lot of time tinkering with it.
21:12:29yglukhovin fact nimsl is not yet good at it as well, but it is designed to be as non-intrusive as possible.
21:31:54krux02yglukhov, what do you mean with source compositing?
21:33:15yglukhovkrux02: shader source generated in runtime. by mixing several "post-effects".
21:33:50krux02well I don't support source generation at runtime at all.
21:34:01krux02but I see that more as a feature as something that is desired
21:34:16krux02It took a a while that all my shaders are 100% generated at compile time
21:34:45krux02it's great, because I can print the complete shader code at compile time as debug information
21:35:41krux02one idea I had was to write all generated shaders to files
21:35:45Araqkrux02: can you elaborate? nimsuggest on dir detects main.nim file
21:35:58krux02and then put code at runtime that reloads them at runtime, when they are changed
21:36:01Araqbecause of the existance of main.nim.cfg or similar
21:36:12krux02so that shaders can be modified in a running game/program
21:36:14yglukhovrod game engine used to use compile-time generated shaders as well, but then we figured we need a post-effect system, like color correction, tinting, etc to be applied to different nodes like sprites, text, etc. and now we have it.
21:36:33krux02Araq: is it required to be called main.nim?
21:36:54krux02because for me it is not call main.nim it is called program.nim
21:37:01krux02project.nim
21:37:35Araqno, that's just an example
21:37:59Araqwhat's important is that you have x.nim and also x.nimble or x.nim.cfg
21:38:00krux02so what is the naming convention to detect the "main"?
21:38:13Araqso that the entry point can be detected.
21:38:15krux02I have x.nim and x.nimble
21:38:21Araqin the same dir?
21:38:24krux02yes
21:38:28Araqhmmm
21:38:39Araqthen it should work
21:38:51yglukhovwhats wrong with forum mail list? i no longer get any notifications :(
21:39:20krux02Error: invalid module name: ''
21:39:25*Trustable quit (Remote host closed the connection)
21:39:46krux02Hint: [Processing]
21:39:46krux02Error: cannot open ''
21:40:29*j75__ quit (Ping timeout: 258 seconds)
21:40:48Araqkrux02: ok, then something else is wrong
21:40:57*gokr joined #nim
21:41:20krux02yglukhov, what kind of post processing do you mean? I support framebuffers, that allows all kinds of post processing steps.
21:42:24yglukhovkrux02: tint. color fill. gradient fill. channel levels. HLS color balance. have a look at rod components ;)
21:42:30*pie__ joined #nim
21:43:30yglukhovkrux02: e.g. https://github.com/yglukhov/rod/blob/master/rod/component/color_fill.nim
21:43:44krux02it has a nakefile nimble and nims
21:43:53krux02too many options
21:44:38yglukhovnake
21:44:44yglukhovto run the editor
21:47:07krux02This looks very familiar to me
21:47:37krux02I was working with OpenFlipper (geometry processing framework) and that program had something very similar
21:47:43krux02I think
21:47:49krux02I hated it
21:48:14krux02I explicitly want to make sure everything is resolved at compile time as far as possible
21:48:32krux02post processing is important
21:48:53krux02I don't know if your version is better than the one I got to know
21:49:34krux02I have to execute it to give a better answer
21:49:44krux02sorry this one was with prejudice
21:50:27yglukhov"resolved at compile time" - yeah, i want that too. but we're not there yet. and that's not #1 priority.
21:51:23*pie__ quit (Quit: Leaving)
21:52:31krux02I just started the editor
21:53:19*j75__ joined #nim
21:53:31krux02I instantly see that the editor has a very different goal than what I want for my system
21:56:08yglukhovkrux02: thats a game scene editor.
21:57:03krux02but I want my library for mostly procedural generation
22:03:16krux02to elaborate, my goal is to write effectively game rules in a rule editor
22:03:30krux02then write some rules for level generation
22:03:34krux02and then run the game
22:03:59krux02That is the main reason why I chose Nim as my language
22:04:07yglukhovoh that interesting.
22:04:48krux02I don't know exactly how I will do it, but I don't want the classical system
22:05:15krux02the classical system is "Hey we did all game mechanics for you, all you need to do is create the content and you have the game"
22:05:20krux02I hate it
22:05:31krux02I don't want the 100'th animation system
22:06:08krux02or 10000th first person shooter
22:06:42*zachcarter joined #nim
22:06:52krux02I already have a language in mind and also started to implement a language for more interesting data structures
22:07:05krux02game data structures are mainly graphs
22:07:44krux02so I want a language that let's me describe the type system of the graphs, and then all the code for the graph is generated
22:08:12krux02and then I hope I can interate a bit faster on more interesting game ideas
22:08:30krux02graphics should be abstract, but still 3D
22:09:02yglukhovcool. i'd love to see that working =)
22:10:17Araqyou could always develop the 2nd RTS. I would buy it.
22:10:31Araqno idea why the genre is effectively dead.
22:11:22yglukhovAraq: the 1st is starcraft? :D
22:12:13cheatfateAraq, the genre is dead because moba is alive...
22:12:28AraqI need to become more famous. then the company named after a storm will pay me for shameless advertisements
22:13:31Araqwell there is DoW 3 in development. but they kinda screwed it already
22:14:11Araqcheatfate: yeah but moba is boring
22:14:48cheatfateAraq, i know but is the main reason why rts is dead... and dow3 will be same shit like coh2
22:15:02krux02what is DoW3?
22:15:09cheatfateDawn of War 3
22:15:20krux02ah yea I remember
22:15:36cheatfateDawn of War 2 is a legend
22:15:41krux02I think more of a turn based game for the beginning
22:15:54krux02it easier to implement the network code for
22:15:54cheatfateand people playing dow2 even now
22:16:13krux02RTS most people play the old games
22:16:26krux02Age of Empires 2 is not dead
22:16:39cheatfatekrux02, turn based games nowadays uses hybrid moves which allows people to play at the same time...
22:16:56cheatfateAge of Empires Online was pretty good
22:17:09krux02yea I know, I played Age of Wonders 2 (shadow magic)
22:17:18krux02cheatfate, haha
22:18:46Araqdow2? meh, never grew on me. I loved dow 1.
22:18:51krux02I think more about adaping a simple board game for the beginning, but with good controls
22:19:07krux02little content, simple rules, abstract graphics, but good controls
22:19:12cheatfateThis stupid punks even screwed Mass Effect
22:19:46krux02My favorite is still Total Annihilation.
22:20:08krux02I also have Planetary Annihilation, but without the 256 colors, it's not the same
22:20:20krux02no the problem are different ones
22:20:46krux02I supported Planetary Annihilation on kickstarter
22:21:28krux02Technically it is ok, but it does not have the magic that Total Annihilation has, and the Planet system looks cool, but effectively it is not that good
22:22:24krux02Dos anyone here agree, that Warcraft 3 is not really an RTS?
22:22:39cheatfatenever played w3
22:22:49cheatfatemy games was dune, dune2, c&c, red alert
22:23:03krux02I played them, too
22:23:05cheatfatew1, w2
22:23:10krux02yes them too
22:23:13cheatfatedow1, dow2
22:23:17krux02but w1 was the last one I played
22:23:29krux02and dune one I played on a tablet with a stylus
22:23:45cheatfatenope i have played it on 386DX40 :)
22:24:06krux02when I first played dune 2 I already knew age of empires
22:24:08krux02I hated it
22:24:16krux02it was much later that I gave it a chance
22:24:25krux02but I couldn't beat the last stage
22:25:06zachcartersweet
22:25:32zachcartergot the compilation of dependencies for the game framework building automatically and all our examples automated, android just builds for now
22:25:42zachcarterfor linux and osx anyway
22:25:46Araqkrux02: Warcraft 3 *is* definitely an RTS and a masterpiece.
22:26:11*brson quit (Ping timeout: 264 seconds)
22:26:29krux02Araq: nah, too much hero fiddling
22:26:36Araqthough they fucked up the lore.
22:26:54cheatfateAraq, lore? blizzard stole whole lore from warhammer
22:27:05cheatfatejust renamed races
22:27:08krux02but I don't want to argue on the quality of the game, there are just too many people who like the game, I am just not one of them.
22:27:14Araqcheatfate: yes and no.
22:27:21PMunchMy favourite will always be Stronghold Crusader
22:27:23Araqbut either way it went downhill :P
22:27:28krux02But I think a game that is so hero centered is not an RTS at it's core anymore
22:27:34krux02RTS should not be about heros
22:27:51Araqok, time to move it to #nim-offtopic
22:28:09krux02yes Stronghold, also a great series of real RTS games
22:28:28krux02yea I agree here, too
22:28:44AraqPMunch: nice blog article
22:28:46krux02I have to say goodnight for today anyway
22:28:53krux02bye
22:29:00PMunchThanks Araq ):
22:29:02PMunch:)*
22:32:49*chemist69 quit (Ping timeout: 240 seconds)
22:32:51*zachcarter quit (Read error: Connection reset by peer)
22:34:43*PMunch quit (Quit: leaving)
22:37:19*zachcarter joined #nim
22:37:22*chemist69 joined #nim
22:42:35*brson joined #nim
22:48:17*krux02 quit (Quit: Leaving)
22:51:15*yglukhov quit (Remote host closed the connection)
22:55:03*Vladar quit (Quit: Leaving)
22:57:14*bjz joined #nim
22:58:45*Tiberium joined #nim
23:13:20*Jesin quit (Quit: Leaving)
23:14:43*couven92 quit (Read error: Connection reset by peer)
23:16:49*Jesin joined #nim
23:17:17Tiberiumhmm, what's the most full-fledged IDE for nim?
23:17:21Tiberiumhi everyone :)
23:22:42FromGitter<Varriount> Tiberium: Hard to say. I see VSCode referenced most often.
23:22:59TiberiumFromGitter, ah, there's gitter, I'll join now
23:23:00FromGitterTiberium, I'm a bot, *bleep, bloop*. I relay messages between here and https://gitter.im/nim-lang/Nim
23:23:16FromGitter<TiberiumPY> I'm here
23:27:08FromGitter<TiberiumPY> I'm a beginner in nim, coming from python world :)
23:27:44FromGitter<TiberiumPY> nim seems to be *slightly* harder than python, but really faster
23:27:54FromGitter<TiberiumPY> and those 50kb executables... oh
23:40:07FromGitter<Varriount> Well, the executable size depends on a number of things.
23:40:35FromGitter<Varriount> I think there was a blog post floating around on how small you can actually make a Nim executable.
23:42:30FromGitter<TiberiumPY> btw, vscode is good for nim
23:48:12*ftsf joined #nim
23:55:07*Tiberium quit (Remote host closed the connection)
23:55:26*zachcarter quit (Quit: zachcarter)
23:56:51*Matthias247 quit (Read error: Connection reset by peer)